1// Package compute provides access to the Compute Engine API.
2//
3// See https://developers.google.com/compute/docs/reference/latest/
4//
5// Usage example:
6//
7//   import "google.golang.org/api/compute/v1"
8//   ...
9//   computeService, err := compute.New(oauthHttpClient)
10package compute // import "google.golang.org/api/compute/v1"
11
12import (
13	"bytes"
14	"encoding/json"
15	"errors"
16	"fmt"
17	context "golang.org/x/net/context"
18	ctxhttp "golang.org/x/net/context/ctxhttp"
19	gensupport "google.golang.org/api/gensupport"
20	googleapi "google.golang.org/api/googleapi"
21	"io"
22	"net/http"
23	"net/url"
24	"strconv"
25	"strings"
26)
27
28// Always reference these packages, just in case the auto-generated code
29// below doesn't.
30var _ = bytes.NewBuffer
31var _ = strconv.Itoa
32var _ = fmt.Sprintf
33var _ = json.NewDecoder
34var _ = io.Copy
35var _ = url.Parse
36var _ = gensupport.MarshalJSON
37var _ = googleapi.Version
38var _ = errors.New
39var _ = strings.Replace
40var _ = context.Canceled
41var _ = ctxhttp.Do
42
43const apiId = "compute:v1"
44const apiName = "compute"
45const apiVersion = "v1"
46const basePath = "https://www.googleapis.com/compute/v1/projects/"
47
48// OAuth2 scopes used by this API.
49const (
50	// View and manage your data across Google Cloud Platform services
51	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
52
53	// View and manage your Google Compute Engine resources
54	ComputeScope = "https://www.googleapis.com/auth/compute"
55
56	// View your Google Compute Engine resources
57	ComputeReadonlyScope = "https://www.googleapis.com/auth/compute.readonly"
58
59	// Manage your data and permissions in Google Cloud Storage
60	DevstorageFullControlScope = "https://www.googleapis.com/auth/devstorage.full_control"
61
62	// View your data in Google Cloud Storage
63	DevstorageReadOnlyScope = "https://www.googleapis.com/auth/devstorage.read_only"
64
65	// Manage your data in Google Cloud Storage
66	DevstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write"
67)
68
69func New(client *http.Client) (*Service, error) {
70	if client == nil {
71		return nil, errors.New("client is nil")
72	}
73	s := &Service{client: client, BasePath: basePath}
74	s.AcceleratorTypes = NewAcceleratorTypesService(s)
75	s.Addresses = NewAddressesService(s)
76	s.Autoscalers = NewAutoscalersService(s)
77	s.BackendBuckets = NewBackendBucketsService(s)
78	s.BackendServices = NewBackendServicesService(s)
79	s.DiskTypes = NewDiskTypesService(s)
80	s.Disks = NewDisksService(s)
81	s.Firewalls = NewFirewallsService(s)
82	s.ForwardingRules = NewForwardingRulesService(s)
83	s.GlobalAddresses = NewGlobalAddressesService(s)
84	s.GlobalForwardingRules = NewGlobalForwardingRulesService(s)
85	s.GlobalOperations = NewGlobalOperationsService(s)
86	s.HealthChecks = NewHealthChecksService(s)
87	s.HttpHealthChecks = NewHttpHealthChecksService(s)
88	s.HttpsHealthChecks = NewHttpsHealthChecksService(s)
89	s.Images = NewImagesService(s)
90	s.InstanceGroupManagers = NewInstanceGroupManagersService(s)
91	s.InstanceGroups = NewInstanceGroupsService(s)
92	s.InstanceTemplates = NewInstanceTemplatesService(s)
93	s.Instances = NewInstancesService(s)
94	s.InterconnectAttachments = NewInterconnectAttachmentsService(s)
95	s.InterconnectLocations = NewInterconnectLocationsService(s)
96	s.Interconnects = NewInterconnectsService(s)
97	s.LicenseCodes = NewLicenseCodesService(s)
98	s.Licenses = NewLicensesService(s)
99	s.MachineTypes = NewMachineTypesService(s)
100	s.Networks = NewNetworksService(s)
101	s.Projects = NewProjectsService(s)
102	s.RegionAutoscalers = NewRegionAutoscalersService(s)
103	s.RegionBackendServices = NewRegionBackendServicesService(s)
104	s.RegionCommitments = NewRegionCommitmentsService(s)
105	s.RegionInstanceGroupManagers = NewRegionInstanceGroupManagersService(s)
106	s.RegionInstanceGroups = NewRegionInstanceGroupsService(s)
107	s.RegionOperations = NewRegionOperationsService(s)
108	s.Regions = NewRegionsService(s)
109	s.Routers = NewRoutersService(s)
110	s.Routes = NewRoutesService(s)
111	s.Snapshots = NewSnapshotsService(s)
112	s.SslCertificates = NewSslCertificatesService(s)
113	s.SslPolicies = NewSslPoliciesService(s)
114	s.Subnetworks = NewSubnetworksService(s)
115	s.TargetHttpProxies = NewTargetHttpProxiesService(s)
116	s.TargetHttpsProxies = NewTargetHttpsProxiesService(s)
117	s.TargetInstances = NewTargetInstancesService(s)
118	s.TargetPools = NewTargetPoolsService(s)
119	s.TargetSslProxies = NewTargetSslProxiesService(s)
120	s.TargetTcpProxies = NewTargetTcpProxiesService(s)
121	s.TargetVpnGateways = NewTargetVpnGatewaysService(s)
122	s.UrlMaps = NewUrlMapsService(s)
123	s.VpnTunnels = NewVpnTunnelsService(s)
124	s.ZoneOperations = NewZoneOperationsService(s)
125	s.Zones = NewZonesService(s)
126	return s, nil
127}
128
129type Service struct {
130	client    *http.Client
131	BasePath  string // API endpoint base URL
132	UserAgent string // optional additional User-Agent fragment
133
134	AcceleratorTypes *AcceleratorTypesService
135
136	Addresses *AddressesService
137
138	Autoscalers *AutoscalersService
139
140	BackendBuckets *BackendBucketsService
141
142	BackendServices *BackendServicesService
143
144	DiskTypes *DiskTypesService
145
146	Disks *DisksService
147
148	Firewalls *FirewallsService
149
150	ForwardingRules *ForwardingRulesService
151
152	GlobalAddresses *GlobalAddressesService
153
154	GlobalForwardingRules *GlobalForwardingRulesService
155
156	GlobalOperations *GlobalOperationsService
157
158	HealthChecks *HealthChecksService
159
160	HttpHealthChecks *HttpHealthChecksService
161
162	HttpsHealthChecks *HttpsHealthChecksService
163
164	Images *ImagesService
165
166	InstanceGroupManagers *InstanceGroupManagersService
167
168	InstanceGroups *InstanceGroupsService
169
170	InstanceTemplates *InstanceTemplatesService
171
172	Instances *InstancesService
173
174	InterconnectAttachments *InterconnectAttachmentsService
175
176	InterconnectLocations *InterconnectLocationsService
177
178	Interconnects *InterconnectsService
179
180	LicenseCodes *LicenseCodesService
181
182	Licenses *LicensesService
183
184	MachineTypes *MachineTypesService
185
186	Networks *NetworksService
187
188	Projects *ProjectsService
189
190	RegionAutoscalers *RegionAutoscalersService
191
192	RegionBackendServices *RegionBackendServicesService
193
194	RegionCommitments *RegionCommitmentsService
195
196	RegionInstanceGroupManagers *RegionInstanceGroupManagersService
197
198	RegionInstanceGroups *RegionInstanceGroupsService
199
200	RegionOperations *RegionOperationsService
201
202	Regions *RegionsService
203
204	Routers *RoutersService
205
206	Routes *RoutesService
207
208	Snapshots *SnapshotsService
209
210	SslCertificates *SslCertificatesService
211
212	SslPolicies *SslPoliciesService
213
214	Subnetworks *SubnetworksService
215
216	TargetHttpProxies *TargetHttpProxiesService
217
218	TargetHttpsProxies *TargetHttpsProxiesService
219
220	TargetInstances *TargetInstancesService
221
222	TargetPools *TargetPoolsService
223
224	TargetSslProxies *TargetSslProxiesService
225
226	TargetTcpProxies *TargetTcpProxiesService
227
228	TargetVpnGateways *TargetVpnGatewaysService
229
230	UrlMaps *UrlMapsService
231
232	VpnTunnels *VpnTunnelsService
233
234	ZoneOperations *ZoneOperationsService
235
236	Zones *ZonesService
237}
238
239func (s *Service) userAgent() string {
240	if s.UserAgent == "" {
241		return googleapi.UserAgent
242	}
243	return googleapi.UserAgent + " " + s.UserAgent
244}
245
246func NewAcceleratorTypesService(s *Service) *AcceleratorTypesService {
247	rs := &AcceleratorTypesService{s: s}
248	return rs
249}
250
251type AcceleratorTypesService struct {
252	s *Service
253}
254
255func NewAddressesService(s *Service) *AddressesService {
256	rs := &AddressesService{s: s}
257	return rs
258}
259
260type AddressesService struct {
261	s *Service
262}
263
264func NewAutoscalersService(s *Service) *AutoscalersService {
265	rs := &AutoscalersService{s: s}
266	return rs
267}
268
269type AutoscalersService struct {
270	s *Service
271}
272
273func NewBackendBucketsService(s *Service) *BackendBucketsService {
274	rs := &BackendBucketsService{s: s}
275	return rs
276}
277
278type BackendBucketsService struct {
279	s *Service
280}
281
282func NewBackendServicesService(s *Service) *BackendServicesService {
283	rs := &BackendServicesService{s: s}
284	return rs
285}
286
287type BackendServicesService struct {
288	s *Service
289}
290
291func NewDiskTypesService(s *Service) *DiskTypesService {
292	rs := &DiskTypesService{s: s}
293	return rs
294}
295
296type DiskTypesService struct {
297	s *Service
298}
299
300func NewDisksService(s *Service) *DisksService {
301	rs := &DisksService{s: s}
302	return rs
303}
304
305type DisksService struct {
306	s *Service
307}
308
309func NewFirewallsService(s *Service) *FirewallsService {
310	rs := &FirewallsService{s: s}
311	return rs
312}
313
314type FirewallsService struct {
315	s *Service
316}
317
318func NewForwardingRulesService(s *Service) *ForwardingRulesService {
319	rs := &ForwardingRulesService{s: s}
320	return rs
321}
322
323type ForwardingRulesService struct {
324	s *Service
325}
326
327func NewGlobalAddressesService(s *Service) *GlobalAddressesService {
328	rs := &GlobalAddressesService{s: s}
329	return rs
330}
331
332type GlobalAddressesService struct {
333	s *Service
334}
335
336func NewGlobalForwardingRulesService(s *Service) *GlobalForwardingRulesService {
337	rs := &GlobalForwardingRulesService{s: s}
338	return rs
339}
340
341type GlobalForwardingRulesService struct {
342	s *Service
343}
344
345func NewGlobalOperationsService(s *Service) *GlobalOperationsService {
346	rs := &GlobalOperationsService{s: s}
347	return rs
348}
349
350type GlobalOperationsService struct {
351	s *Service
352}
353
354func NewHealthChecksService(s *Service) *HealthChecksService {
355	rs := &HealthChecksService{s: s}
356	return rs
357}
358
359type HealthChecksService struct {
360	s *Service
361}
362
363func NewHttpHealthChecksService(s *Service) *HttpHealthChecksService {
364	rs := &HttpHealthChecksService{s: s}
365	return rs
366}
367
368type HttpHealthChecksService struct {
369	s *Service
370}
371
372func NewHttpsHealthChecksService(s *Service) *HttpsHealthChecksService {
373	rs := &HttpsHealthChecksService{s: s}
374	return rs
375}
376
377type HttpsHealthChecksService struct {
378	s *Service
379}
380
381func NewImagesService(s *Service) *ImagesService {
382	rs := &ImagesService{s: s}
383	return rs
384}
385
386type ImagesService struct {
387	s *Service
388}
389
390func NewInstanceGroupManagersService(s *Service) *InstanceGroupManagersService {
391	rs := &InstanceGroupManagersService{s: s}
392	return rs
393}
394
395type InstanceGroupManagersService struct {
396	s *Service
397}
398
399func NewInstanceGroupsService(s *Service) *InstanceGroupsService {
400	rs := &InstanceGroupsService{s: s}
401	return rs
402}
403
404type InstanceGroupsService struct {
405	s *Service
406}
407
408func NewInstanceTemplatesService(s *Service) *InstanceTemplatesService {
409	rs := &InstanceTemplatesService{s: s}
410	return rs
411}
412
413type InstanceTemplatesService struct {
414	s *Service
415}
416
417func NewInstancesService(s *Service) *InstancesService {
418	rs := &InstancesService{s: s}
419	return rs
420}
421
422type InstancesService struct {
423	s *Service
424}
425
426func NewInterconnectAttachmentsService(s *Service) *InterconnectAttachmentsService {
427	rs := &InterconnectAttachmentsService{s: s}
428	return rs
429}
430
431type InterconnectAttachmentsService struct {
432	s *Service
433}
434
435func NewInterconnectLocationsService(s *Service) *InterconnectLocationsService {
436	rs := &InterconnectLocationsService{s: s}
437	return rs
438}
439
440type InterconnectLocationsService struct {
441	s *Service
442}
443
444func NewInterconnectsService(s *Service) *InterconnectsService {
445	rs := &InterconnectsService{s: s}
446	return rs
447}
448
449type InterconnectsService struct {
450	s *Service
451}
452
453func NewLicenseCodesService(s *Service) *LicenseCodesService {
454	rs := &LicenseCodesService{s: s}
455	return rs
456}
457
458type LicenseCodesService struct {
459	s *Service
460}
461
462func NewLicensesService(s *Service) *LicensesService {
463	rs := &LicensesService{s: s}
464	return rs
465}
466
467type LicensesService struct {
468	s *Service
469}
470
471func NewMachineTypesService(s *Service) *MachineTypesService {
472	rs := &MachineTypesService{s: s}
473	return rs
474}
475
476type MachineTypesService struct {
477	s *Service
478}
479
480func NewNetworksService(s *Service) *NetworksService {
481	rs := &NetworksService{s: s}
482	return rs
483}
484
485type NetworksService struct {
486	s *Service
487}
488
489func NewProjectsService(s *Service) *ProjectsService {
490	rs := &ProjectsService{s: s}
491	return rs
492}
493
494type ProjectsService struct {
495	s *Service
496}
497
498func NewRegionAutoscalersService(s *Service) *RegionAutoscalersService {
499	rs := &RegionAutoscalersService{s: s}
500	return rs
501}
502
503type RegionAutoscalersService struct {
504	s *Service
505}
506
507func NewRegionBackendServicesService(s *Service) *RegionBackendServicesService {
508	rs := &RegionBackendServicesService{s: s}
509	return rs
510}
511
512type RegionBackendServicesService struct {
513	s *Service
514}
515
516func NewRegionCommitmentsService(s *Service) *RegionCommitmentsService {
517	rs := &RegionCommitmentsService{s: s}
518	return rs
519}
520
521type RegionCommitmentsService struct {
522	s *Service
523}
524
525func NewRegionInstanceGroupManagersService(s *Service) *RegionInstanceGroupManagersService {
526	rs := &RegionInstanceGroupManagersService{s: s}
527	return rs
528}
529
530type RegionInstanceGroupManagersService struct {
531	s *Service
532}
533
534func NewRegionInstanceGroupsService(s *Service) *RegionInstanceGroupsService {
535	rs := &RegionInstanceGroupsService{s: s}
536	return rs
537}
538
539type RegionInstanceGroupsService struct {
540	s *Service
541}
542
543func NewRegionOperationsService(s *Service) *RegionOperationsService {
544	rs := &RegionOperationsService{s: s}
545	return rs
546}
547
548type RegionOperationsService struct {
549	s *Service
550}
551
552func NewRegionsService(s *Service) *RegionsService {
553	rs := &RegionsService{s: s}
554	return rs
555}
556
557type RegionsService struct {
558	s *Service
559}
560
561func NewRoutersService(s *Service) *RoutersService {
562	rs := &RoutersService{s: s}
563	return rs
564}
565
566type RoutersService struct {
567	s *Service
568}
569
570func NewRoutesService(s *Service) *RoutesService {
571	rs := &RoutesService{s: s}
572	return rs
573}
574
575type RoutesService struct {
576	s *Service
577}
578
579func NewSnapshotsService(s *Service) *SnapshotsService {
580	rs := &SnapshotsService{s: s}
581	return rs
582}
583
584type SnapshotsService struct {
585	s *Service
586}
587
588func NewSslCertificatesService(s *Service) *SslCertificatesService {
589	rs := &SslCertificatesService{s: s}
590	return rs
591}
592
593type SslCertificatesService struct {
594	s *Service
595}
596
597func NewSslPoliciesService(s *Service) *SslPoliciesService {
598	rs := &SslPoliciesService{s: s}
599	return rs
600}
601
602type SslPoliciesService struct {
603	s *Service
604}
605
606func NewSubnetworksService(s *Service) *SubnetworksService {
607	rs := &SubnetworksService{s: s}
608	return rs
609}
610
611type SubnetworksService struct {
612	s *Service
613}
614
615func NewTargetHttpProxiesService(s *Service) *TargetHttpProxiesService {
616	rs := &TargetHttpProxiesService{s: s}
617	return rs
618}
619
620type TargetHttpProxiesService struct {
621	s *Service
622}
623
624func NewTargetHttpsProxiesService(s *Service) *TargetHttpsProxiesService {
625	rs := &TargetHttpsProxiesService{s: s}
626	return rs
627}
628
629type TargetHttpsProxiesService struct {
630	s *Service
631}
632
633func NewTargetInstancesService(s *Service) *TargetInstancesService {
634	rs := &TargetInstancesService{s: s}
635	return rs
636}
637
638type TargetInstancesService struct {
639	s *Service
640}
641
642func NewTargetPoolsService(s *Service) *TargetPoolsService {
643	rs := &TargetPoolsService{s: s}
644	return rs
645}
646
647type TargetPoolsService struct {
648	s *Service
649}
650
651func NewTargetSslProxiesService(s *Service) *TargetSslProxiesService {
652	rs := &TargetSslProxiesService{s: s}
653	return rs
654}
655
656type TargetSslProxiesService struct {
657	s *Service
658}
659
660func NewTargetTcpProxiesService(s *Service) *TargetTcpProxiesService {
661	rs := &TargetTcpProxiesService{s: s}
662	return rs
663}
664
665type TargetTcpProxiesService struct {
666	s *Service
667}
668
669func NewTargetVpnGatewaysService(s *Service) *TargetVpnGatewaysService {
670	rs := &TargetVpnGatewaysService{s: s}
671	return rs
672}
673
674type TargetVpnGatewaysService struct {
675	s *Service
676}
677
678func NewUrlMapsService(s *Service) *UrlMapsService {
679	rs := &UrlMapsService{s: s}
680	return rs
681}
682
683type UrlMapsService struct {
684	s *Service
685}
686
687func NewVpnTunnelsService(s *Service) *VpnTunnelsService {
688	rs := &VpnTunnelsService{s: s}
689	return rs
690}
691
692type VpnTunnelsService struct {
693	s *Service
694}
695
696func NewZoneOperationsService(s *Service) *ZoneOperationsService {
697	rs := &ZoneOperationsService{s: s}
698	return rs
699}
700
701type ZoneOperationsService struct {
702	s *Service
703}
704
705func NewZonesService(s *Service) *ZonesService {
706	rs := &ZonesService{s: s}
707	return rs
708}
709
710type ZonesService struct {
711	s *Service
712}
713
714// AcceleratorConfig: A specification of the type and number of
715// accelerator cards attached to the instance.
716type AcceleratorConfig struct {
717	// AcceleratorCount: The number of the guest accelerator cards exposed
718	// to this instance.
719	AcceleratorCount int64 `json:"acceleratorCount,omitempty"`
720
721	// AcceleratorType: Full or partial URL of the accelerator type resource
722	// to attach to this instance. If you are creating an instance template,
723	// specify only the accelerator name.
724	AcceleratorType string `json:"acceleratorType,omitempty"`
725
726	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
727	// unconditionally include in API requests. By default, fields with
728	// empty values are omitted from API requests. However, any non-pointer,
729	// non-interface field appearing in ForceSendFields will be sent to the
730	// server regardless of whether the field is empty or not. This may be
731	// used to include empty fields in Patch requests.
732	ForceSendFields []string `json:"-"`
733
734	// NullFields is a list of field names (e.g. "AcceleratorCount") to
735	// include in API requests with the JSON null value. By default, fields
736	// with empty values are omitted from API requests. However, any field
737	// with an empty value appearing in NullFields will be sent to the
738	// server as null. It is an error if a field in this list has a
739	// non-empty value. This may be used to include null fields in Patch
740	// requests.
741	NullFields []string `json:"-"`
742}
743
744func (s *AcceleratorConfig) MarshalJSON() ([]byte, error) {
745	type NoMethod AcceleratorConfig
746	raw := NoMethod(*s)
747	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
748}
749
750// AcceleratorType: An Accelerator Type resource. (== resource_for
751// beta.acceleratorTypes ==) (== resource_for v1.acceleratorTypes ==)
752type AcceleratorType struct {
753	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
754	// format.
755	CreationTimestamp string `json:"creationTimestamp,omitempty"`
756
757	// Deprecated: [Output Only] The deprecation status associated with this
758	// accelerator type.
759	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
760
761	// Description: [Output Only] An optional textual description of the
762	// resource.
763	Description string `json:"description,omitempty"`
764
765	// Id: [Output Only] The unique identifier for the resource. This
766	// identifier is defined by the server.
767	Id uint64 `json:"id,omitempty,string"`
768
769	// Kind: [Output Only] The type of the resource. Always
770	// compute#acceleratorType for accelerator types.
771	Kind string `json:"kind,omitempty"`
772
773	// MaximumCardsPerInstance: [Output Only] Maximum accelerator cards
774	// allowed per instance.
775	MaximumCardsPerInstance int64 `json:"maximumCardsPerInstance,omitempty"`
776
777	// Name: [Output Only] Name of the resource.
778	Name string `json:"name,omitempty"`
779
780	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
781	// resource.
782	SelfLink string `json:"selfLink,omitempty"`
783
784	// Zone: [Output Only] The name of the zone where the accelerator type
785	// resides, such as us-central1-a. You must specify this field as part
786	// of the HTTP request URL. It is not settable as a field in the request
787	// body.
788	Zone string `json:"zone,omitempty"`
789
790	// ServerResponse contains the HTTP response code and headers from the
791	// server.
792	googleapi.ServerResponse `json:"-"`
793
794	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
795	// to unconditionally include in API requests. By default, fields with
796	// empty values are omitted from API requests. However, any non-pointer,
797	// non-interface field appearing in ForceSendFields will be sent to the
798	// server regardless of whether the field is empty or not. This may be
799	// used to include empty fields in Patch requests.
800	ForceSendFields []string `json:"-"`
801
802	// NullFields is a list of field names (e.g. "CreationTimestamp") to
803	// include in API requests with the JSON null value. By default, fields
804	// with empty values are omitted from API requests. However, any field
805	// with an empty value appearing in NullFields will be sent to the
806	// server as null. It is an error if a field in this list has a
807	// non-empty value. This may be used to include null fields in Patch
808	// requests.
809	NullFields []string `json:"-"`
810}
811
812func (s *AcceleratorType) MarshalJSON() ([]byte, error) {
813	type NoMethod AcceleratorType
814	raw := NoMethod(*s)
815	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
816}
817
818type AcceleratorTypeAggregatedList struct {
819	// Id: [Output Only] Unique identifier for the resource; defined by the
820	// server.
821	Id string `json:"id,omitempty"`
822
823	// Items: A list of AcceleratorTypesScopedList resources.
824	Items map[string]AcceleratorTypesScopedList `json:"items,omitempty"`
825
826	// Kind: [Output Only] Type of resource. Always
827	// compute#acceleratorTypeAggregatedList for aggregated lists of
828	// accelerator types.
829	Kind string `json:"kind,omitempty"`
830
831	// NextPageToken: [Output Only] This token allows you to get the next
832	// page of results for list requests. If the number of results is larger
833	// than maxResults, use the nextPageToken as a value for the query
834	// parameter pageToken in the next list request. Subsequent list
835	// requests will have their own nextPageToken to continue paging through
836	// the results.
837	NextPageToken string `json:"nextPageToken,omitempty"`
838
839	// SelfLink: [Output Only] Server-defined URL for this resource.
840	SelfLink string `json:"selfLink,omitempty"`
841
842	// Warning: [Output Only] Informational warning message.
843	Warning *AcceleratorTypeAggregatedListWarning `json:"warning,omitempty"`
844
845	// ServerResponse contains the HTTP response code and headers from the
846	// server.
847	googleapi.ServerResponse `json:"-"`
848
849	// ForceSendFields is a list of field names (e.g. "Id") to
850	// unconditionally include in API requests. By default, fields with
851	// empty values are omitted from API requests. However, any non-pointer,
852	// non-interface field appearing in ForceSendFields will be sent to the
853	// server regardless of whether the field is empty or not. This may be
854	// used to include empty fields in Patch requests.
855	ForceSendFields []string `json:"-"`
856
857	// NullFields is a list of field names (e.g. "Id") to include in API
858	// requests with the JSON null value. By default, fields with empty
859	// values are omitted from API requests. However, any field with an
860	// empty value appearing in NullFields will be sent to the server as
861	// null. It is an error if a field in this list has a non-empty value.
862	// This may be used to include null fields in Patch requests.
863	NullFields []string `json:"-"`
864}
865
866func (s *AcceleratorTypeAggregatedList) MarshalJSON() ([]byte, error) {
867	type NoMethod AcceleratorTypeAggregatedList
868	raw := NoMethod(*s)
869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
870}
871
872// AcceleratorTypeAggregatedListWarning: [Output Only] Informational
873// warning message.
874type AcceleratorTypeAggregatedListWarning struct {
875	// Code: [Output Only] A warning code, if applicable. For example,
876	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
877	// the response.
878	//
879	// Possible values:
880	//   "CLEANUP_FAILED"
881	//   "DEPRECATED_RESOURCE_USED"
882	//   "DEPRECATED_TYPE_USED"
883	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
884	//   "EXPERIMENTAL_TYPE_USED"
885	//   "EXTERNAL_API_WARNING"
886	//   "FIELD_VALUE_OVERRIDEN"
887	//   "INJECTED_KERNELS_DEPRECATED"
888	//   "MISSING_TYPE_DEPENDENCY"
889	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
890	//   "NEXT_HOP_CANNOT_IP_FORWARD"
891	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
892	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
893	//   "NEXT_HOP_NOT_RUNNING"
894	//   "NOT_CRITICAL_ERROR"
895	//   "NO_RESULTS_ON_PAGE"
896	//   "REQUIRED_TOS_AGREEMENT"
897	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
898	//   "RESOURCE_NOT_DELETED"
899	//   "SCHEMA_VALIDATION_IGNORED"
900	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
901	//   "UNDECLARED_PROPERTIES"
902	//   "UNREACHABLE"
903	Code string `json:"code,omitempty"`
904
905	// Data: [Output Only] Metadata about this warning in key: value format.
906	// For example:
907	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
908	Data []*AcceleratorTypeAggregatedListWarningData `json:"data,omitempty"`
909
910	// Message: [Output Only] A human-readable description of the warning
911	// code.
912	Message string `json:"message,omitempty"`
913
914	// ForceSendFields is a list of field names (e.g. "Code") to
915	// unconditionally include in API requests. By default, fields with
916	// empty values are omitted from API requests. However, any non-pointer,
917	// non-interface field appearing in ForceSendFields will be sent to the
918	// server regardless of whether the field is empty or not. This may be
919	// used to include empty fields in Patch requests.
920	ForceSendFields []string `json:"-"`
921
922	// NullFields is a list of field names (e.g. "Code") to include in API
923	// requests with the JSON null value. By default, fields with empty
924	// values are omitted from API requests. However, any field with an
925	// empty value appearing in NullFields will be sent to the server as
926	// null. It is an error if a field in this list has a non-empty value.
927	// This may be used to include null fields in Patch requests.
928	NullFields []string `json:"-"`
929}
930
931func (s *AcceleratorTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
932	type NoMethod AcceleratorTypeAggregatedListWarning
933	raw := NoMethod(*s)
934	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
935}
936
937type AcceleratorTypeAggregatedListWarningData struct {
938	// Key: [Output Only] A key that provides more detail on the warning
939	// being returned. For example, for warnings where there are no results
940	// in a list request for a particular zone, this key might be scope and
941	// the key value might be the zone name. Other examples might be a key
942	// indicating a deprecated resource and a suggested replacement, or a
943	// warning about invalid network settings (for example, if an instance
944	// attempts to perform IP forwarding but is not enabled for IP
945	// forwarding).
946	Key string `json:"key,omitempty"`
947
948	// Value: [Output Only] A warning data value corresponding to the key.
949	Value string `json:"value,omitempty"`
950
951	// ForceSendFields is a list of field names (e.g. "Key") to
952	// unconditionally include in API requests. By default, fields with
953	// empty values are omitted from API requests. However, any non-pointer,
954	// non-interface field appearing in ForceSendFields will be sent to the
955	// server regardless of whether the field is empty or not. This may be
956	// used to include empty fields in Patch requests.
957	ForceSendFields []string `json:"-"`
958
959	// NullFields is a list of field names (e.g. "Key") to include in API
960	// requests with the JSON null value. By default, fields with empty
961	// values are omitted from API requests. However, any field with an
962	// empty value appearing in NullFields will be sent to the server as
963	// null. It is an error if a field in this list has a non-empty value.
964	// This may be used to include null fields in Patch requests.
965	NullFields []string `json:"-"`
966}
967
968func (s *AcceleratorTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
969	type NoMethod AcceleratorTypeAggregatedListWarningData
970	raw := NoMethod(*s)
971	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
972}
973
974// AcceleratorTypeList: Contains a list of accelerator types.
975type AcceleratorTypeList struct {
976	// Id: [Output Only] Unique identifier for the resource; defined by the
977	// server.
978	Id string `json:"id,omitempty"`
979
980	// Items: A list of AcceleratorType resources.
981	Items []*AcceleratorType `json:"items,omitempty"`
982
983	// Kind: [Output Only] Type of resource. Always
984	// compute#acceleratorTypeList for lists of accelerator types.
985	Kind string `json:"kind,omitempty"`
986
987	// NextPageToken: [Output Only] This token allows you to get the next
988	// page of results for list requests. If the number of results is larger
989	// than maxResults, use the nextPageToken as a value for the query
990	// parameter pageToken in the next list request. Subsequent list
991	// requests will have their own nextPageToken to continue paging through
992	// the results.
993	NextPageToken string `json:"nextPageToken,omitempty"`
994
995	// SelfLink: [Output Only] Server-defined URL for this resource.
996	SelfLink string `json:"selfLink,omitempty"`
997
998	// Warning: [Output Only] Informational warning message.
999	Warning *AcceleratorTypeListWarning `json:"warning,omitempty"`
1000
1001	// ServerResponse contains the HTTP response code and headers from the
1002	// server.
1003	googleapi.ServerResponse `json:"-"`
1004
1005	// ForceSendFields is a list of field names (e.g. "Id") to
1006	// unconditionally include in API requests. By default, fields with
1007	// empty values are omitted from API requests. However, any non-pointer,
1008	// non-interface field appearing in ForceSendFields will be sent to the
1009	// server regardless of whether the field is empty or not. This may be
1010	// used to include empty fields in Patch requests.
1011	ForceSendFields []string `json:"-"`
1012
1013	// NullFields is a list of field names (e.g. "Id") to include in API
1014	// requests with the JSON null value. By default, fields with empty
1015	// values are omitted from API requests. However, any field with an
1016	// empty value appearing in NullFields will be sent to the server as
1017	// null. It is an error if a field in this list has a non-empty value.
1018	// This may be used to include null fields in Patch requests.
1019	NullFields []string `json:"-"`
1020}
1021
1022func (s *AcceleratorTypeList) MarshalJSON() ([]byte, error) {
1023	type NoMethod AcceleratorTypeList
1024	raw := NoMethod(*s)
1025	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1026}
1027
1028// AcceleratorTypeListWarning: [Output Only] Informational warning
1029// message.
1030type AcceleratorTypeListWarning struct {
1031	// Code: [Output Only] A warning code, if applicable. For example,
1032	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1033	// the response.
1034	//
1035	// Possible values:
1036	//   "CLEANUP_FAILED"
1037	//   "DEPRECATED_RESOURCE_USED"
1038	//   "DEPRECATED_TYPE_USED"
1039	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1040	//   "EXPERIMENTAL_TYPE_USED"
1041	//   "EXTERNAL_API_WARNING"
1042	//   "FIELD_VALUE_OVERRIDEN"
1043	//   "INJECTED_KERNELS_DEPRECATED"
1044	//   "MISSING_TYPE_DEPENDENCY"
1045	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1046	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1047	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1048	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1049	//   "NEXT_HOP_NOT_RUNNING"
1050	//   "NOT_CRITICAL_ERROR"
1051	//   "NO_RESULTS_ON_PAGE"
1052	//   "REQUIRED_TOS_AGREEMENT"
1053	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1054	//   "RESOURCE_NOT_DELETED"
1055	//   "SCHEMA_VALIDATION_IGNORED"
1056	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1057	//   "UNDECLARED_PROPERTIES"
1058	//   "UNREACHABLE"
1059	Code string `json:"code,omitempty"`
1060
1061	// Data: [Output Only] Metadata about this warning in key: value format.
1062	// For example:
1063	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1064	Data []*AcceleratorTypeListWarningData `json:"data,omitempty"`
1065
1066	// Message: [Output Only] A human-readable description of the warning
1067	// code.
1068	Message string `json:"message,omitempty"`
1069
1070	// ForceSendFields is a list of field names (e.g. "Code") to
1071	// unconditionally include in API requests. By default, fields with
1072	// empty values are omitted from API requests. However, any non-pointer,
1073	// non-interface field appearing in ForceSendFields will be sent to the
1074	// server regardless of whether the field is empty or not. This may be
1075	// used to include empty fields in Patch requests.
1076	ForceSendFields []string `json:"-"`
1077
1078	// NullFields is a list of field names (e.g. "Code") to include in API
1079	// requests with the JSON null value. By default, fields with empty
1080	// values are omitted from API requests. However, any field with an
1081	// empty value appearing in NullFields will be sent to the server as
1082	// null. It is an error if a field in this list has a non-empty value.
1083	// This may be used to include null fields in Patch requests.
1084	NullFields []string `json:"-"`
1085}
1086
1087func (s *AcceleratorTypeListWarning) MarshalJSON() ([]byte, error) {
1088	type NoMethod AcceleratorTypeListWarning
1089	raw := NoMethod(*s)
1090	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1091}
1092
1093type AcceleratorTypeListWarningData struct {
1094	// Key: [Output Only] A key that provides more detail on the warning
1095	// being returned. For example, for warnings where there are no results
1096	// in a list request for a particular zone, this key might be scope and
1097	// the key value might be the zone name. Other examples might be a key
1098	// indicating a deprecated resource and a suggested replacement, or a
1099	// warning about invalid network settings (for example, if an instance
1100	// attempts to perform IP forwarding but is not enabled for IP
1101	// forwarding).
1102	Key string `json:"key,omitempty"`
1103
1104	// Value: [Output Only] A warning data value corresponding to the key.
1105	Value string `json:"value,omitempty"`
1106
1107	// ForceSendFields is a list of field names (e.g. "Key") to
1108	// unconditionally include in API requests. By default, fields with
1109	// empty values are omitted from API requests. However, any non-pointer,
1110	// non-interface field appearing in ForceSendFields will be sent to the
1111	// server regardless of whether the field is empty or not. This may be
1112	// used to include empty fields in Patch requests.
1113	ForceSendFields []string `json:"-"`
1114
1115	// NullFields is a list of field names (e.g. "Key") to include in API
1116	// requests with the JSON null value. By default, fields with empty
1117	// values are omitted from API requests. However, any field with an
1118	// empty value appearing in NullFields will be sent to the server as
1119	// null. It is an error if a field in this list has a non-empty value.
1120	// This may be used to include null fields in Patch requests.
1121	NullFields []string `json:"-"`
1122}
1123
1124func (s *AcceleratorTypeListWarningData) MarshalJSON() ([]byte, error) {
1125	type NoMethod AcceleratorTypeListWarningData
1126	raw := NoMethod(*s)
1127	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1128}
1129
1130type AcceleratorTypesScopedList struct {
1131	// AcceleratorTypes: [Output Only] A list of accelerator types contained
1132	// in this scope.
1133	AcceleratorTypes []*AcceleratorType `json:"acceleratorTypes,omitempty"`
1134
1135	// Warning: [Output Only] An informational warning that appears when the
1136	// accelerator types list is empty.
1137	Warning *AcceleratorTypesScopedListWarning `json:"warning,omitempty"`
1138
1139	// ForceSendFields is a list of field names (e.g. "AcceleratorTypes") to
1140	// unconditionally include in API requests. By default, fields with
1141	// empty values are omitted from API requests. However, any non-pointer,
1142	// non-interface field appearing in ForceSendFields will be sent to the
1143	// server regardless of whether the field is empty or not. This may be
1144	// used to include empty fields in Patch requests.
1145	ForceSendFields []string `json:"-"`
1146
1147	// NullFields is a list of field names (e.g. "AcceleratorTypes") to
1148	// include in API requests with the JSON null value. By default, fields
1149	// with empty values are omitted from API requests. However, any field
1150	// with an empty value appearing in NullFields will be sent to the
1151	// server as null. It is an error if a field in this list has a
1152	// non-empty value. This may be used to include null fields in Patch
1153	// requests.
1154	NullFields []string `json:"-"`
1155}
1156
1157func (s *AcceleratorTypesScopedList) MarshalJSON() ([]byte, error) {
1158	type NoMethod AcceleratorTypesScopedList
1159	raw := NoMethod(*s)
1160	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1161}
1162
1163// AcceleratorTypesScopedListWarning: [Output Only] An informational
1164// warning that appears when the accelerator types list is empty.
1165type AcceleratorTypesScopedListWarning struct {
1166	// Code: [Output Only] A warning code, if applicable. For example,
1167	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1168	// the response.
1169	//
1170	// Possible values:
1171	//   "CLEANUP_FAILED"
1172	//   "DEPRECATED_RESOURCE_USED"
1173	//   "DEPRECATED_TYPE_USED"
1174	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1175	//   "EXPERIMENTAL_TYPE_USED"
1176	//   "EXTERNAL_API_WARNING"
1177	//   "FIELD_VALUE_OVERRIDEN"
1178	//   "INJECTED_KERNELS_DEPRECATED"
1179	//   "MISSING_TYPE_DEPENDENCY"
1180	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1181	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1182	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1183	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1184	//   "NEXT_HOP_NOT_RUNNING"
1185	//   "NOT_CRITICAL_ERROR"
1186	//   "NO_RESULTS_ON_PAGE"
1187	//   "REQUIRED_TOS_AGREEMENT"
1188	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1189	//   "RESOURCE_NOT_DELETED"
1190	//   "SCHEMA_VALIDATION_IGNORED"
1191	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1192	//   "UNDECLARED_PROPERTIES"
1193	//   "UNREACHABLE"
1194	Code string `json:"code,omitempty"`
1195
1196	// Data: [Output Only] Metadata about this warning in key: value format.
1197	// For example:
1198	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1199	Data []*AcceleratorTypesScopedListWarningData `json:"data,omitempty"`
1200
1201	// Message: [Output Only] A human-readable description of the warning
1202	// code.
1203	Message string `json:"message,omitempty"`
1204
1205	// ForceSendFields is a list of field names (e.g. "Code") to
1206	// unconditionally include in API requests. By default, fields with
1207	// empty values are omitted from API requests. However, any non-pointer,
1208	// non-interface field appearing in ForceSendFields will be sent to the
1209	// server regardless of whether the field is empty or not. This may be
1210	// used to include empty fields in Patch requests.
1211	ForceSendFields []string `json:"-"`
1212
1213	// NullFields is a list of field names (e.g. "Code") to include in API
1214	// requests with the JSON null value. By default, fields with empty
1215	// values are omitted from API requests. However, any field with an
1216	// empty value appearing in NullFields will be sent to the server as
1217	// null. It is an error if a field in this list has a non-empty value.
1218	// This may be used to include null fields in Patch requests.
1219	NullFields []string `json:"-"`
1220}
1221
1222func (s *AcceleratorTypesScopedListWarning) MarshalJSON() ([]byte, error) {
1223	type NoMethod AcceleratorTypesScopedListWarning
1224	raw := NoMethod(*s)
1225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1226}
1227
1228type AcceleratorTypesScopedListWarningData struct {
1229	// Key: [Output Only] A key that provides more detail on the warning
1230	// being returned. For example, for warnings where there are no results
1231	// in a list request for a particular zone, this key might be scope and
1232	// the key value might be the zone name. Other examples might be a key
1233	// indicating a deprecated resource and a suggested replacement, or a
1234	// warning about invalid network settings (for example, if an instance
1235	// attempts to perform IP forwarding but is not enabled for IP
1236	// forwarding).
1237	Key string `json:"key,omitempty"`
1238
1239	// Value: [Output Only] A warning data value corresponding to the key.
1240	Value string `json:"value,omitempty"`
1241
1242	// ForceSendFields is a list of field names (e.g. "Key") to
1243	// unconditionally include in API requests. By default, fields with
1244	// empty values are omitted from API requests. However, any non-pointer,
1245	// non-interface field appearing in ForceSendFields will be sent to the
1246	// server regardless of whether the field is empty or not. This may be
1247	// used to include empty fields in Patch requests.
1248	ForceSendFields []string `json:"-"`
1249
1250	// NullFields is a list of field names (e.g. "Key") to include in API
1251	// requests with the JSON null value. By default, fields with empty
1252	// values are omitted from API requests. However, any field with an
1253	// empty value appearing in NullFields will be sent to the server as
1254	// null. It is an error if a field in this list has a non-empty value.
1255	// This may be used to include null fields in Patch requests.
1256	NullFields []string `json:"-"`
1257}
1258
1259func (s *AcceleratorTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
1260	type NoMethod AcceleratorTypesScopedListWarningData
1261	raw := NoMethod(*s)
1262	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1263}
1264
1265// AccessConfig: An access configuration attached to an instance's
1266// network interface. Only one access config per instance is supported.
1267type AccessConfig struct {
1268	// Kind: [Output Only] Type of the resource. Always compute#accessConfig
1269	// for access configs.
1270	Kind string `json:"kind,omitempty"`
1271
1272	// Name: The name of this access configuration. The default and
1273	// recommended name is External NAT but you can use any arbitrary string
1274	// you would like. For example, My external IP or Network Access.
1275	Name string `json:"name,omitempty"`
1276
1277	// NatIP: An external IP address associated with this instance. Specify
1278	// an unused static external IP address available to the project or
1279	// leave this field undefined to use an IP from a shared ephemeral IP
1280	// address pool. If you specify a static external IP address, it must
1281	// live in the same region as the zone of the instance.
1282	NatIP string `json:"natIP,omitempty"`
1283
1284	// PublicPtrDomainName: The DNS domain name for the public PTR record.
1285	// This field can only be set when the set_public_ptr field is enabled.
1286	PublicPtrDomainName string `json:"publicPtrDomainName,omitempty"`
1287
1288	// SetPublicPtr: Specifies whether a public DNS ?PTR? record should be
1289	// created to map the external IP address of the instance to a DNS
1290	// domain name.
1291	SetPublicPtr bool `json:"setPublicPtr,omitempty"`
1292
1293	// Type: The type of configuration. The default and only option is
1294	// ONE_TO_ONE_NAT.
1295	//
1296	// Possible values:
1297	//   "ONE_TO_ONE_NAT" (default)
1298	Type string `json:"type,omitempty"`
1299
1300	// ForceSendFields is a list of field names (e.g. "Kind") to
1301	// unconditionally include in API requests. By default, fields with
1302	// empty values are omitted from API requests. However, any non-pointer,
1303	// non-interface field appearing in ForceSendFields will be sent to the
1304	// server regardless of whether the field is empty or not. This may be
1305	// used to include empty fields in Patch requests.
1306	ForceSendFields []string `json:"-"`
1307
1308	// NullFields is a list of field names (e.g. "Kind") to include in API
1309	// requests with the JSON null value. By default, fields with empty
1310	// values are omitted from API requests. However, any field with an
1311	// empty value appearing in NullFields will be sent to the server as
1312	// null. It is an error if a field in this list has a non-empty value.
1313	// This may be used to include null fields in Patch requests.
1314	NullFields []string `json:"-"`
1315}
1316
1317func (s *AccessConfig) MarshalJSON() ([]byte, error) {
1318	type NoMethod AccessConfig
1319	raw := NoMethod(*s)
1320	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1321}
1322
1323// Address: A reserved address resource. (== resource_for beta.addresses
1324// ==) (== resource_for v1.addresses ==) (== resource_for
1325// beta.globalAddresses ==) (== resource_for v1.globalAddresses ==)
1326type Address struct {
1327	// Address: The static IP address represented by this resource.
1328	Address string `json:"address,omitempty"`
1329
1330	// AddressType: The type of address to reserve, either INTERNAL or
1331	// EXTERNAL. If unspecified, defaults to EXTERNAL.
1332	//
1333	// Possible values:
1334	//   "EXTERNAL"
1335	//   "INTERNAL"
1336	//   "UNSPECIFIED_TYPE"
1337	AddressType string `json:"addressType,omitempty"`
1338
1339	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1340	// format.
1341	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1342
1343	// Description: An optional description of this resource. Provide this
1344	// property when you create the resource.
1345	Description string `json:"description,omitempty"`
1346
1347	// Id: [Output Only] The unique identifier for the resource. This
1348	// identifier is defined by the server.
1349	Id uint64 `json:"id,omitempty,string"`
1350
1351	// IpVersion: The IP Version that will be used by this address. Valid
1352	// options are IPV4 or IPV6. This can only be specified for a global
1353	// address.
1354	//
1355	// Possible values:
1356	//   "IPV4"
1357	//   "IPV6"
1358	//   "UNSPECIFIED_VERSION"
1359	IpVersion string `json:"ipVersion,omitempty"`
1360
1361	// Kind: [Output Only] Type of the resource. Always compute#address for
1362	// addresses.
1363	Kind string `json:"kind,omitempty"`
1364
1365	// Name: Name of the resource. Provided by the client when the resource
1366	// is created. The name must be 1-63 characters long, and comply with
1367	// RFC1035. Specifically, the name must be 1-63 characters long and
1368	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
1369	// the first character must be a lowercase letter, and all following
1370	// characters must be a dash, lowercase letter, or digit, except the
1371	// last character, which cannot be a dash.
1372	Name string `json:"name,omitempty"`
1373
1374	// Region: [Output Only] URL of the region where the regional address
1375	// resides. This field is not applicable to global addresses. You must
1376	// specify this field as part of the HTTP request URL. You cannot set
1377	// this field in the request body.
1378	Region string `json:"region,omitempty"`
1379
1380	// SelfLink: [Output Only] Server-defined URL for the resource.
1381	SelfLink string `json:"selfLink,omitempty"`
1382
1383	// Status: [Output Only] The status of the address, which can be one of
1384	// RESERVING, RESERVED, or IN_USE. An address that is RESERVING is
1385	// currently in the process of being reserved. A RESERVED address is
1386	// currently reserved and available to use. An IN_USE address is
1387	// currently being used by another resource and is not available.
1388	//
1389	// Possible values:
1390	//   "IN_USE"
1391	//   "RESERVED"
1392	Status string `json:"status,omitempty"`
1393
1394	// Subnetwork: The URL of the subnetwork in which to reserve the
1395	// address. If an IP address is specified, it must be within the
1396	// subnetwork's IP range. This field can only be used with INTERNAL type
1397	// with GCE_ENDPOINT/DNS_RESOLVER purposes.
1398	Subnetwork string `json:"subnetwork,omitempty"`
1399
1400	// Users: [Output Only] The URLs of the resources that are using this
1401	// address.
1402	Users []string `json:"users,omitempty"`
1403
1404	// ServerResponse contains the HTTP response code and headers from the
1405	// server.
1406	googleapi.ServerResponse `json:"-"`
1407
1408	// ForceSendFields is a list of field names (e.g. "Address") to
1409	// unconditionally include in API requests. By default, fields with
1410	// empty values are omitted from API requests. However, any non-pointer,
1411	// non-interface field appearing in ForceSendFields will be sent to the
1412	// server regardless of whether the field is empty or not. This may be
1413	// used to include empty fields in Patch requests.
1414	ForceSendFields []string `json:"-"`
1415
1416	// NullFields is a list of field names (e.g. "Address") to include in
1417	// API requests with the JSON null value. By default, fields with empty
1418	// values are omitted from API requests. However, any field with an
1419	// empty value appearing in NullFields will be sent to the server as
1420	// null. It is an error if a field in this list has a non-empty value.
1421	// This may be used to include null fields in Patch requests.
1422	NullFields []string `json:"-"`
1423}
1424
1425func (s *Address) MarshalJSON() ([]byte, error) {
1426	type NoMethod Address
1427	raw := NoMethod(*s)
1428	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1429}
1430
1431type AddressAggregatedList struct {
1432	// Id: [Output Only] Unique identifier for the resource; defined by the
1433	// server.
1434	Id string `json:"id,omitempty"`
1435
1436	// Items: A list of AddressesScopedList resources.
1437	Items map[string]AddressesScopedList `json:"items,omitempty"`
1438
1439	// Kind: [Output Only] Type of resource. Always
1440	// compute#addressAggregatedList for aggregated lists of addresses.
1441	Kind string `json:"kind,omitempty"`
1442
1443	// NextPageToken: [Output Only] This token allows you to get the next
1444	// page of results for list requests. If the number of results is larger
1445	// than maxResults, use the nextPageToken as a value for the query
1446	// parameter pageToken in the next list request. Subsequent list
1447	// requests will have their own nextPageToken to continue paging through
1448	// the results.
1449	NextPageToken string `json:"nextPageToken,omitempty"`
1450
1451	// SelfLink: [Output Only] Server-defined URL for this resource.
1452	SelfLink string `json:"selfLink,omitempty"`
1453
1454	// Warning: [Output Only] Informational warning message.
1455	Warning *AddressAggregatedListWarning `json:"warning,omitempty"`
1456
1457	// ServerResponse contains the HTTP response code and headers from the
1458	// server.
1459	googleapi.ServerResponse `json:"-"`
1460
1461	// ForceSendFields is a list of field names (e.g. "Id") to
1462	// unconditionally include in API requests. By default, fields with
1463	// empty values are omitted from API requests. However, any non-pointer,
1464	// non-interface field appearing in ForceSendFields will be sent to the
1465	// server regardless of whether the field is empty or not. This may be
1466	// used to include empty fields in Patch requests.
1467	ForceSendFields []string `json:"-"`
1468
1469	// NullFields is a list of field names (e.g. "Id") to include in API
1470	// requests with the JSON null value. By default, fields with empty
1471	// values are omitted from API requests. However, any field with an
1472	// empty value appearing in NullFields will be sent to the server as
1473	// null. It is an error if a field in this list has a non-empty value.
1474	// This may be used to include null fields in Patch requests.
1475	NullFields []string `json:"-"`
1476}
1477
1478func (s *AddressAggregatedList) MarshalJSON() ([]byte, error) {
1479	type NoMethod AddressAggregatedList
1480	raw := NoMethod(*s)
1481	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1482}
1483
1484// AddressAggregatedListWarning: [Output Only] Informational warning
1485// message.
1486type AddressAggregatedListWarning struct {
1487	// Code: [Output Only] A warning code, if applicable. For example,
1488	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1489	// the response.
1490	//
1491	// Possible values:
1492	//   "CLEANUP_FAILED"
1493	//   "DEPRECATED_RESOURCE_USED"
1494	//   "DEPRECATED_TYPE_USED"
1495	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1496	//   "EXPERIMENTAL_TYPE_USED"
1497	//   "EXTERNAL_API_WARNING"
1498	//   "FIELD_VALUE_OVERRIDEN"
1499	//   "INJECTED_KERNELS_DEPRECATED"
1500	//   "MISSING_TYPE_DEPENDENCY"
1501	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1502	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1503	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1504	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1505	//   "NEXT_HOP_NOT_RUNNING"
1506	//   "NOT_CRITICAL_ERROR"
1507	//   "NO_RESULTS_ON_PAGE"
1508	//   "REQUIRED_TOS_AGREEMENT"
1509	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1510	//   "RESOURCE_NOT_DELETED"
1511	//   "SCHEMA_VALIDATION_IGNORED"
1512	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1513	//   "UNDECLARED_PROPERTIES"
1514	//   "UNREACHABLE"
1515	Code string `json:"code,omitempty"`
1516
1517	// Data: [Output Only] Metadata about this warning in key: value format.
1518	// For example:
1519	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1520	Data []*AddressAggregatedListWarningData `json:"data,omitempty"`
1521
1522	// Message: [Output Only] A human-readable description of the warning
1523	// code.
1524	Message string `json:"message,omitempty"`
1525
1526	// ForceSendFields is a list of field names (e.g. "Code") to
1527	// unconditionally include in API requests. By default, fields with
1528	// empty values are omitted from API requests. However, any non-pointer,
1529	// non-interface field appearing in ForceSendFields will be sent to the
1530	// server regardless of whether the field is empty or not. This may be
1531	// used to include empty fields in Patch requests.
1532	ForceSendFields []string `json:"-"`
1533
1534	// NullFields is a list of field names (e.g. "Code") to include in API
1535	// requests with the JSON null value. By default, fields with empty
1536	// values are omitted from API requests. However, any field with an
1537	// empty value appearing in NullFields will be sent to the server as
1538	// null. It is an error if a field in this list has a non-empty value.
1539	// This may be used to include null fields in Patch requests.
1540	NullFields []string `json:"-"`
1541}
1542
1543func (s *AddressAggregatedListWarning) MarshalJSON() ([]byte, error) {
1544	type NoMethod AddressAggregatedListWarning
1545	raw := NoMethod(*s)
1546	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1547}
1548
1549type AddressAggregatedListWarningData struct {
1550	// Key: [Output Only] A key that provides more detail on the warning
1551	// being returned. For example, for warnings where there are no results
1552	// in a list request for a particular zone, this key might be scope and
1553	// the key value might be the zone name. Other examples might be a key
1554	// indicating a deprecated resource and a suggested replacement, or a
1555	// warning about invalid network settings (for example, if an instance
1556	// attempts to perform IP forwarding but is not enabled for IP
1557	// forwarding).
1558	Key string `json:"key,omitempty"`
1559
1560	// Value: [Output Only] A warning data value corresponding to the key.
1561	Value string `json:"value,omitempty"`
1562
1563	// ForceSendFields is a list of field names (e.g. "Key") to
1564	// unconditionally include in API requests. By default, fields with
1565	// empty values are omitted from API requests. However, any non-pointer,
1566	// non-interface field appearing in ForceSendFields will be sent to the
1567	// server regardless of whether the field is empty or not. This may be
1568	// used to include empty fields in Patch requests.
1569	ForceSendFields []string `json:"-"`
1570
1571	// NullFields is a list of field names (e.g. "Key") to include in API
1572	// requests with the JSON null value. By default, fields with empty
1573	// values are omitted from API requests. However, any field with an
1574	// empty value appearing in NullFields will be sent to the server as
1575	// null. It is an error if a field in this list has a non-empty value.
1576	// This may be used to include null fields in Patch requests.
1577	NullFields []string `json:"-"`
1578}
1579
1580func (s *AddressAggregatedListWarningData) MarshalJSON() ([]byte, error) {
1581	type NoMethod AddressAggregatedListWarningData
1582	raw := NoMethod(*s)
1583	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1584}
1585
1586// AddressList: Contains a list of addresses.
1587type AddressList struct {
1588	// Id: [Output Only] Unique identifier for the resource; defined by the
1589	// server.
1590	Id string `json:"id,omitempty"`
1591
1592	// Items: A list of Address resources.
1593	Items []*Address `json:"items,omitempty"`
1594
1595	// Kind: [Output Only] Type of resource. Always compute#addressList for
1596	// lists of addresses.
1597	Kind string `json:"kind,omitempty"`
1598
1599	// NextPageToken: [Output Only] This token allows you to get the next
1600	// page of results for list requests. If the number of results is larger
1601	// than maxResults, use the nextPageToken as a value for the query
1602	// parameter pageToken in the next list request. Subsequent list
1603	// requests will have their own nextPageToken to continue paging through
1604	// the results.
1605	NextPageToken string `json:"nextPageToken,omitempty"`
1606
1607	// SelfLink: [Output Only] Server-defined URL for this resource.
1608	SelfLink string `json:"selfLink,omitempty"`
1609
1610	// Warning: [Output Only] Informational warning message.
1611	Warning *AddressListWarning `json:"warning,omitempty"`
1612
1613	// ServerResponse contains the HTTP response code and headers from the
1614	// server.
1615	googleapi.ServerResponse `json:"-"`
1616
1617	// ForceSendFields is a list of field names (e.g. "Id") to
1618	// unconditionally include in API requests. By default, fields with
1619	// empty values are omitted from API requests. However, any non-pointer,
1620	// non-interface field appearing in ForceSendFields will be sent to the
1621	// server regardless of whether the field is empty or not. This may be
1622	// used to include empty fields in Patch requests.
1623	ForceSendFields []string `json:"-"`
1624
1625	// NullFields is a list of field names (e.g. "Id") to include in API
1626	// requests with the JSON null value. By default, fields with empty
1627	// values are omitted from API requests. However, any field with an
1628	// empty value appearing in NullFields will be sent to the server as
1629	// null. It is an error if a field in this list has a non-empty value.
1630	// This may be used to include null fields in Patch requests.
1631	NullFields []string `json:"-"`
1632}
1633
1634func (s *AddressList) MarshalJSON() ([]byte, error) {
1635	type NoMethod AddressList
1636	raw := NoMethod(*s)
1637	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1638}
1639
1640// AddressListWarning: [Output Only] Informational warning message.
1641type AddressListWarning struct {
1642	// Code: [Output Only] A warning code, if applicable. For example,
1643	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1644	// the response.
1645	//
1646	// Possible values:
1647	//   "CLEANUP_FAILED"
1648	//   "DEPRECATED_RESOURCE_USED"
1649	//   "DEPRECATED_TYPE_USED"
1650	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1651	//   "EXPERIMENTAL_TYPE_USED"
1652	//   "EXTERNAL_API_WARNING"
1653	//   "FIELD_VALUE_OVERRIDEN"
1654	//   "INJECTED_KERNELS_DEPRECATED"
1655	//   "MISSING_TYPE_DEPENDENCY"
1656	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1657	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1658	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1659	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1660	//   "NEXT_HOP_NOT_RUNNING"
1661	//   "NOT_CRITICAL_ERROR"
1662	//   "NO_RESULTS_ON_PAGE"
1663	//   "REQUIRED_TOS_AGREEMENT"
1664	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1665	//   "RESOURCE_NOT_DELETED"
1666	//   "SCHEMA_VALIDATION_IGNORED"
1667	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1668	//   "UNDECLARED_PROPERTIES"
1669	//   "UNREACHABLE"
1670	Code string `json:"code,omitempty"`
1671
1672	// Data: [Output Only] Metadata about this warning in key: value format.
1673	// For example:
1674	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1675	Data []*AddressListWarningData `json:"data,omitempty"`
1676
1677	// Message: [Output Only] A human-readable description of the warning
1678	// code.
1679	Message string `json:"message,omitempty"`
1680
1681	// ForceSendFields is a list of field names (e.g. "Code") to
1682	// unconditionally include in API requests. By default, fields with
1683	// empty values are omitted from API requests. However, any non-pointer,
1684	// non-interface field appearing in ForceSendFields will be sent to the
1685	// server regardless of whether the field is empty or not. This may be
1686	// used to include empty fields in Patch requests.
1687	ForceSendFields []string `json:"-"`
1688
1689	// NullFields is a list of field names (e.g. "Code") to include in API
1690	// requests with the JSON null value. By default, fields with empty
1691	// values are omitted from API requests. However, any field with an
1692	// empty value appearing in NullFields will be sent to the server as
1693	// null. It is an error if a field in this list has a non-empty value.
1694	// This may be used to include null fields in Patch requests.
1695	NullFields []string `json:"-"`
1696}
1697
1698func (s *AddressListWarning) MarshalJSON() ([]byte, error) {
1699	type NoMethod AddressListWarning
1700	raw := NoMethod(*s)
1701	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1702}
1703
1704type AddressListWarningData struct {
1705	// Key: [Output Only] A key that provides more detail on the warning
1706	// being returned. For example, for warnings where there are no results
1707	// in a list request for a particular zone, this key might be scope and
1708	// the key value might be the zone name. Other examples might be a key
1709	// indicating a deprecated resource and a suggested replacement, or a
1710	// warning about invalid network settings (for example, if an instance
1711	// attempts to perform IP forwarding but is not enabled for IP
1712	// forwarding).
1713	Key string `json:"key,omitempty"`
1714
1715	// Value: [Output Only] A warning data value corresponding to the key.
1716	Value string `json:"value,omitempty"`
1717
1718	// ForceSendFields is a list of field names (e.g. "Key") to
1719	// unconditionally include in API requests. By default, fields with
1720	// empty values are omitted from API requests. However, any non-pointer,
1721	// non-interface field appearing in ForceSendFields will be sent to the
1722	// server regardless of whether the field is empty or not. This may be
1723	// used to include empty fields in Patch requests.
1724	ForceSendFields []string `json:"-"`
1725
1726	// NullFields is a list of field names (e.g. "Key") to include in API
1727	// requests with the JSON null value. By default, fields with empty
1728	// values are omitted from API requests. However, any field with an
1729	// empty value appearing in NullFields will be sent to the server as
1730	// null. It is an error if a field in this list has a non-empty value.
1731	// This may be used to include null fields in Patch requests.
1732	NullFields []string `json:"-"`
1733}
1734
1735func (s *AddressListWarningData) MarshalJSON() ([]byte, error) {
1736	type NoMethod AddressListWarningData
1737	raw := NoMethod(*s)
1738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1739}
1740
1741type AddressesScopedList struct {
1742	// Addresses: [Output Only] A list of addresses contained in this scope.
1743	Addresses []*Address `json:"addresses,omitempty"`
1744
1745	// Warning: [Output Only] Informational warning which replaces the list
1746	// of addresses when the list is empty.
1747	Warning *AddressesScopedListWarning `json:"warning,omitempty"`
1748
1749	// ForceSendFields is a list of field names (e.g. "Addresses") to
1750	// unconditionally include in API requests. By default, fields with
1751	// empty values are omitted from API requests. However, any non-pointer,
1752	// non-interface field appearing in ForceSendFields will be sent to the
1753	// server regardless of whether the field is empty or not. This may be
1754	// used to include empty fields in Patch requests.
1755	ForceSendFields []string `json:"-"`
1756
1757	// NullFields is a list of field names (e.g. "Addresses") to include in
1758	// API requests with the JSON null value. By default, fields with empty
1759	// values are omitted from API requests. However, any field with an
1760	// empty value appearing in NullFields will be sent to the server as
1761	// null. It is an error if a field in this list has a non-empty value.
1762	// This may be used to include null fields in Patch requests.
1763	NullFields []string `json:"-"`
1764}
1765
1766func (s *AddressesScopedList) MarshalJSON() ([]byte, error) {
1767	type NoMethod AddressesScopedList
1768	raw := NoMethod(*s)
1769	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1770}
1771
1772// AddressesScopedListWarning: [Output Only] Informational warning which
1773// replaces the list of addresses when the list is empty.
1774type AddressesScopedListWarning struct {
1775	// Code: [Output Only] A warning code, if applicable. For example,
1776	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1777	// the response.
1778	//
1779	// Possible values:
1780	//   "CLEANUP_FAILED"
1781	//   "DEPRECATED_RESOURCE_USED"
1782	//   "DEPRECATED_TYPE_USED"
1783	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1784	//   "EXPERIMENTAL_TYPE_USED"
1785	//   "EXTERNAL_API_WARNING"
1786	//   "FIELD_VALUE_OVERRIDEN"
1787	//   "INJECTED_KERNELS_DEPRECATED"
1788	//   "MISSING_TYPE_DEPENDENCY"
1789	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1790	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1791	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1792	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1793	//   "NEXT_HOP_NOT_RUNNING"
1794	//   "NOT_CRITICAL_ERROR"
1795	//   "NO_RESULTS_ON_PAGE"
1796	//   "REQUIRED_TOS_AGREEMENT"
1797	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1798	//   "RESOURCE_NOT_DELETED"
1799	//   "SCHEMA_VALIDATION_IGNORED"
1800	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1801	//   "UNDECLARED_PROPERTIES"
1802	//   "UNREACHABLE"
1803	Code string `json:"code,omitempty"`
1804
1805	// Data: [Output Only] Metadata about this warning in key: value format.
1806	// For example:
1807	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1808	Data []*AddressesScopedListWarningData `json:"data,omitempty"`
1809
1810	// Message: [Output Only] A human-readable description of the warning
1811	// code.
1812	Message string `json:"message,omitempty"`
1813
1814	// ForceSendFields is a list of field names (e.g. "Code") to
1815	// unconditionally include in API requests. By default, fields with
1816	// empty values are omitted from API requests. However, any non-pointer,
1817	// non-interface field appearing in ForceSendFields will be sent to the
1818	// server regardless of whether the field is empty or not. This may be
1819	// used to include empty fields in Patch requests.
1820	ForceSendFields []string `json:"-"`
1821
1822	// NullFields is a list of field names (e.g. "Code") to include in API
1823	// requests with the JSON null value. By default, fields with empty
1824	// values are omitted from API requests. However, any field with an
1825	// empty value appearing in NullFields will be sent to the server as
1826	// null. It is an error if a field in this list has a non-empty value.
1827	// This may be used to include null fields in Patch requests.
1828	NullFields []string `json:"-"`
1829}
1830
1831func (s *AddressesScopedListWarning) MarshalJSON() ([]byte, error) {
1832	type NoMethod AddressesScopedListWarning
1833	raw := NoMethod(*s)
1834	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1835}
1836
1837type AddressesScopedListWarningData struct {
1838	// Key: [Output Only] A key that provides more detail on the warning
1839	// being returned. For example, for warnings where there are no results
1840	// in a list request for a particular zone, this key might be scope and
1841	// the key value might be the zone name. Other examples might be a key
1842	// indicating a deprecated resource and a suggested replacement, or a
1843	// warning about invalid network settings (for example, if an instance
1844	// attempts to perform IP forwarding but is not enabled for IP
1845	// forwarding).
1846	Key string `json:"key,omitempty"`
1847
1848	// Value: [Output Only] A warning data value corresponding to the key.
1849	Value string `json:"value,omitempty"`
1850
1851	// ForceSendFields is a list of field names (e.g. "Key") to
1852	// unconditionally include in API requests. By default, fields with
1853	// empty values are omitted from API requests. However, any non-pointer,
1854	// non-interface field appearing in ForceSendFields will be sent to the
1855	// server regardless of whether the field is empty or not. This may be
1856	// used to include empty fields in Patch requests.
1857	ForceSendFields []string `json:"-"`
1858
1859	// NullFields is a list of field names (e.g. "Key") to include in API
1860	// requests with the JSON null value. By default, fields with empty
1861	// values are omitted from API requests. However, any field with an
1862	// empty value appearing in NullFields will be sent to the server as
1863	// null. It is an error if a field in this list has a non-empty value.
1864	// This may be used to include null fields in Patch requests.
1865	NullFields []string `json:"-"`
1866}
1867
1868func (s *AddressesScopedListWarningData) MarshalJSON() ([]byte, error) {
1869	type NoMethod AddressesScopedListWarningData
1870	raw := NoMethod(*s)
1871	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1872}
1873
1874// AliasIpRange: An alias IP range attached to an instance's network
1875// interface.
1876type AliasIpRange struct {
1877	// IpCidrRange: The IP CIDR range represented by this alias IP range.
1878	// This IP CIDR range must belong to the specified subnetwork and cannot
1879	// contain IP addresses reserved by system or used by other network
1880	// interfaces. This range may be a single IP address (e.g. 10.2.3.4), a
1881	// netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
1882	IpCidrRange string `json:"ipCidrRange,omitempty"`
1883
1884	// SubnetworkRangeName: Optional subnetwork secondary range name
1885	// specifying the secondary range from which to allocate the IP CIDR
1886	// range for this alias IP range. If left unspecified, the primary range
1887	// of the subnetwork will be used.
1888	SubnetworkRangeName string `json:"subnetworkRangeName,omitempty"`
1889
1890	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
1891	// unconditionally include in API requests. By default, fields with
1892	// empty values are omitted from API requests. However, any non-pointer,
1893	// non-interface field appearing in ForceSendFields will be sent to the
1894	// server regardless of whether the field is empty or not. This may be
1895	// used to include empty fields in Patch requests.
1896	ForceSendFields []string `json:"-"`
1897
1898	// NullFields is a list of field names (e.g. "IpCidrRange") to include
1899	// in API requests with the JSON null value. By default, fields with
1900	// empty values are omitted from API requests. However, any field with
1901	// an empty value appearing in NullFields will be sent to the server as
1902	// null. It is an error if a field in this list has a non-empty value.
1903	// This may be used to include null fields in Patch requests.
1904	NullFields []string `json:"-"`
1905}
1906
1907func (s *AliasIpRange) MarshalJSON() ([]byte, error) {
1908	type NoMethod AliasIpRange
1909	raw := NoMethod(*s)
1910	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1911}
1912
1913// AttachedDisk: An instance-attached disk resource.
1914type AttachedDisk struct {
1915	// AutoDelete: Specifies whether the disk will be auto-deleted when the
1916	// instance is deleted (but not when the disk is detached from the
1917	// instance).
1918	AutoDelete bool `json:"autoDelete,omitempty"`
1919
1920	// Boot: Indicates that this is a boot disk. The virtual machine will
1921	// use the first partition of the disk for its root filesystem.
1922	Boot bool `json:"boot,omitempty"`
1923
1924	// DeviceName: Specifies a unique device name of your choice that is
1925	// reflected into the /dev/disk/by-id/google-* tree of a Linux operating
1926	// system running within the instance. This name can be used to
1927	// reference the device for mounting, resizing, and so on, from within
1928	// the instance.
1929	//
1930	// If not specified, the server chooses a default device name to apply
1931	// to this disk, in the form persistent-disks-x, where x is a number
1932	// assigned by Google Compute Engine. This field is only applicable for
1933	// persistent disks.
1934	DeviceName string `json:"deviceName,omitempty"`
1935
1936	// DiskEncryptionKey: Encrypts or decrypts a disk using a
1937	// customer-supplied encryption key.
1938	//
1939	// If you are creating a new disk, this field encrypts the new disk
1940	// using an encryption key that you provide. If you are attaching an
1941	// existing disk that is already encrypted, this field decrypts the disk
1942	// using the customer-supplied encryption key.
1943	//
1944	// If you encrypt a disk using a customer-supplied key, you must provide
1945	// the same key again when you attempt to use this resource at a later
1946	// time. For example, you must provide the key when you create a
1947	// snapshot or an image from the disk or when you attach the disk to a
1948	// virtual machine instance.
1949	//
1950	// If you do not provide an encryption key, then the disk will be
1951	// encrypted using an automatically generated key and you do not need to
1952	// provide a key to use the disk later.
1953	//
1954	// Instance templates do not store customer-supplied encryption keys, so
1955	// you cannot use your own keys to encrypt disks in a managed instance
1956	// group.
1957	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
1958
1959	// GuestOsFeatures: A list of features to enable on the guest operating
1960	// system. Applicable only for bootable images. Read  Enabling guest
1961	// operating system features to see a list of available options.
1962	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
1963
1964	// Index: [Output Only] A zero-based index to this disk, where 0 is
1965	// reserved for the boot disk. If you have many disks attached to an
1966	// instance, each disk would have a unique index number.
1967	Index int64 `json:"index,omitempty"`
1968
1969	// InitializeParams: [Input Only] Specifies the parameters for a new
1970	// disk that will be created alongside the new instance. Use
1971	// initialization parameters to create boot disks or local SSDs attached
1972	// to the new instance.
1973	//
1974	// This property is mutually exclusive with the source property; you can
1975	// only define one or the other, but not both.
1976	InitializeParams *AttachedDiskInitializeParams `json:"initializeParams,omitempty"`
1977
1978	// Interface: Specifies the disk interface to use for attaching this
1979	// disk, which is either SCSI or NVME. The default is SCSI. Persistent
1980	// disks must always use SCSI and the request will fail if you attempt
1981	// to attach a persistent disk in any other format than SCSI. Local SSDs
1982	// can use either NVME or SCSI. For performance characteristics of SCSI
1983	// over NVMe, see Local SSD performance.
1984	//
1985	// Possible values:
1986	//   "NVME"
1987	//   "SCSI"
1988	Interface string `json:"interface,omitempty"`
1989
1990	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk
1991	// for attached disks.
1992	Kind string `json:"kind,omitempty"`
1993
1994	// Licenses: [Output Only] Any valid publicly visible licenses.
1995	Licenses []string `json:"licenses,omitempty"`
1996
1997	// Mode: The mode in which to attach this disk, either READ_WRITE or
1998	// READ_ONLY. If not specified, the default is to attach the disk in
1999	// READ_WRITE mode.
2000	//
2001	// Possible values:
2002	//   "READ_ONLY"
2003	//   "READ_WRITE"
2004	Mode string `json:"mode,omitempty"`
2005
2006	// Source: Specifies a valid partial or full URL to an existing
2007	// Persistent Disk resource. When creating a new instance, one of
2008	// initializeParams.sourceImage or disks.source is required except for
2009	// local SSD.
2010	//
2011	// If desired, you can also attach existing non-root persistent disks
2012	// using this property. This field is only applicable for persistent
2013	// disks.
2014	//
2015	// Note that for InstanceTemplate, specify the disk name, not the URL
2016	// for the disk.
2017	Source string `json:"source,omitempty"`
2018
2019	// Type: Specifies the type of the disk, either SCRATCH or PERSISTENT.
2020	// If not specified, the default is PERSISTENT.
2021	//
2022	// Possible values:
2023	//   "PERSISTENT"
2024	//   "SCRATCH"
2025	Type string `json:"type,omitempty"`
2026
2027	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
2028	// unconditionally include in API requests. By default, fields with
2029	// empty values are omitted from API requests. However, any non-pointer,
2030	// non-interface field appearing in ForceSendFields will be sent to the
2031	// server regardless of whether the field is empty or not. This may be
2032	// used to include empty fields in Patch requests.
2033	ForceSendFields []string `json:"-"`
2034
2035	// NullFields is a list of field names (e.g. "AutoDelete") to include in
2036	// API requests with the JSON null value. By default, fields with empty
2037	// values are omitted from API requests. However, any field with an
2038	// empty value appearing in NullFields will be sent to the server as
2039	// null. It is an error if a field in this list has a non-empty value.
2040	// This may be used to include null fields in Patch requests.
2041	NullFields []string `json:"-"`
2042}
2043
2044func (s *AttachedDisk) MarshalJSON() ([]byte, error) {
2045	type NoMethod AttachedDisk
2046	raw := NoMethod(*s)
2047	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2048}
2049
2050// AttachedDiskInitializeParams: [Input Only] Specifies the parameters
2051// for a new disk that will be created alongside the new instance. Use
2052// initialization parameters to create boot disks or local SSDs attached
2053// to the new instance.
2054//
2055// This property is mutually exclusive with the source property; you can
2056// only define one or the other, but not both.
2057type AttachedDiskInitializeParams struct {
2058	// DiskName: Specifies the disk name. If not specified, the default is
2059	// to use the name of the instance.
2060	DiskName string `json:"diskName,omitempty"`
2061
2062	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
2063	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2064
2065	// DiskType: Specifies the disk type to use to create the instance. If
2066	// not specified, the default is pd-standard, specified using the full
2067	// URL. For
2068	// example:
2069	// https://www.googleapis.com/compute/v1/projects/project/zones/
2070	// zone/diskTypes/pd-standard
2071	//
2072	//
2073	// Other values include pd-ssd and local-ssd. If you define this field,
2074	// you can provide either the full or partial URL. For example, the
2075	// following are valid values:
2076	// -
2077	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/diskType
2078	// - projects/project/zones/zone/diskTypes/diskType
2079	// - zones/zone/diskTypes/diskType  Note that for InstanceTemplate, this
2080	// is the name of the disk type, not URL.
2081	DiskType string `json:"diskType,omitempty"`
2082
2083	// Labels: Labels to apply to this disk. These can be later modified by
2084	// the disks.setLabels method. This field is only applicable for
2085	// persistent disks.
2086	Labels map[string]string `json:"labels,omitempty"`
2087
2088	// SourceImage: The source image to create this disk. When creating a
2089	// new instance, one of initializeParams.sourceImage or disks.source is
2090	// required except for local SSD.
2091	//
2092	// To create a disk with one of the public operating system images,
2093	// specify the image by its family name. For example, specify
2094	// family/debian-8 to use the latest Debian 8
2095	// image:
2096	// projects/debian-cloud/global/images/family/debian-8
2097	//
2098	//
2099	// Alternati
2100	// vely, use a specific version of a public operating system
2101	// image:
2102	// projects/debian-cloud/global/images/debian-8-jessie-vYYYYMMDD
2103	//
2104	//
2105	//
2106	// To create a disk with a custom image that you created, specify the
2107	// image name in the following
2108	// format:
2109	// global/images/my-custom-image
2110	//
2111	//
2112	// You can also specify a custom image by its image family, which
2113	// returns the latest version of the image in that family. Replace the
2114	// image name with
2115	// family/family-name:
2116	// global/images/family/my-image-family
2117	//
2118	//
2119	// If the source image is deleted later, this field will not be set.
2120	SourceImage string `json:"sourceImage,omitempty"`
2121
2122	// SourceImageEncryptionKey: The customer-supplied encryption key of the
2123	// source image. Required if the source image is protected by a
2124	// customer-supplied encryption key.
2125	//
2126	// Instance templates do not store customer-supplied encryption keys, so
2127	// you cannot create disks for instances in a managed instance group if
2128	// the source images are encrypted with your own keys.
2129	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
2130
2131	// ForceSendFields is a list of field names (e.g. "DiskName") to
2132	// unconditionally include in API requests. By default, fields with
2133	// empty values are omitted from API requests. However, any non-pointer,
2134	// non-interface field appearing in ForceSendFields will be sent to the
2135	// server regardless of whether the field is empty or not. This may be
2136	// used to include empty fields in Patch requests.
2137	ForceSendFields []string `json:"-"`
2138
2139	// NullFields is a list of field names (e.g. "DiskName") to include in
2140	// API requests with the JSON null value. By default, fields with empty
2141	// values are omitted from API requests. However, any field with an
2142	// empty value appearing in NullFields will be sent to the server as
2143	// null. It is an error if a field in this list has a non-empty value.
2144	// This may be used to include null fields in Patch requests.
2145	NullFields []string `json:"-"`
2146}
2147
2148func (s *AttachedDiskInitializeParams) MarshalJSON() ([]byte, error) {
2149	type NoMethod AttachedDiskInitializeParams
2150	raw := NoMethod(*s)
2151	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2152}
2153
2154// Autoscaler: Represents an Autoscaler resource. Autoscalers allow you
2155// to automatically scale virtual machine instances in managed instance
2156// groups according to an autoscaling policy that you define. For more
2157// information, read Autoscaling Groups of Instances. (== resource_for
2158// beta.autoscalers ==) (== resource_for v1.autoscalers ==) (==
2159// resource_for beta.regionAutoscalers ==) (== resource_for
2160// v1.regionAutoscalers ==)
2161type Autoscaler struct {
2162	// AutoscalingPolicy: The configuration parameters for the autoscaling
2163	// algorithm. You can define one or more of the policies for an
2164	// autoscaler: cpuUtilization, customMetricUtilizations, and
2165	// loadBalancingUtilization.
2166	//
2167	// If none of these are specified, the default will be to autoscale
2168	// based on cpuUtilization to 0.6 or 60%.
2169	AutoscalingPolicy *AutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
2170
2171	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
2172	// format.
2173	CreationTimestamp string `json:"creationTimestamp,omitempty"`
2174
2175	// Description: An optional description of this resource. Provide this
2176	// property when you create the resource.
2177	Description string `json:"description,omitempty"`
2178
2179	// Id: [Output Only] The unique identifier for the resource. This
2180	// identifier is defined by the server.
2181	Id uint64 `json:"id,omitempty,string"`
2182
2183	// Kind: [Output Only] Type of the resource. Always compute#autoscaler
2184	// for autoscalers.
2185	Kind string `json:"kind,omitempty"`
2186
2187	// Name: Name of the resource. Provided by the client when the resource
2188	// is created. The name must be 1-63 characters long, and comply with
2189	// RFC1035. Specifically, the name must be 1-63 characters long and
2190	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
2191	// the first character must be a lowercase letter, and all following
2192	// characters must be a dash, lowercase letter, or digit, except the
2193	// last character, which cannot be a dash.
2194	Name string `json:"name,omitempty"`
2195
2196	// Region: [Output Only] URL of the region where the instance group
2197	// resides (for autoscalers living in regional scope).
2198	Region string `json:"region,omitempty"`
2199
2200	// SelfLink: [Output Only] Server-defined URL for the resource.
2201	SelfLink string `json:"selfLink,omitempty"`
2202
2203	// Status: [Output Only] The status of the autoscaler configuration.
2204	//
2205	// Possible values:
2206	//   "ACTIVE"
2207	//   "DELETING"
2208	//   "ERROR"
2209	//   "PENDING"
2210	Status string `json:"status,omitempty"`
2211
2212	// StatusDetails: [Output Only] Human-readable details about the current
2213	// state of the autoscaler. Read the documentation for Commonly returned
2214	// status messages for examples of status messages you might encounter.
2215	StatusDetails []*AutoscalerStatusDetails `json:"statusDetails,omitempty"`
2216
2217	// Target: URL of the managed instance group that this autoscaler will
2218	// scale.
2219	Target string `json:"target,omitempty"`
2220
2221	// Zone: [Output Only] URL of the zone where the instance group resides
2222	// (for autoscalers living in zonal scope).
2223	Zone string `json:"zone,omitempty"`
2224
2225	// ServerResponse contains the HTTP response code and headers from the
2226	// server.
2227	googleapi.ServerResponse `json:"-"`
2228
2229	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
2230	// to unconditionally include in API requests. By default, fields with
2231	// empty values are omitted from API requests. However, any non-pointer,
2232	// non-interface field appearing in ForceSendFields will be sent to the
2233	// server regardless of whether the field is empty or not. This may be
2234	// used to include empty fields in Patch requests.
2235	ForceSendFields []string `json:"-"`
2236
2237	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
2238	// include in API requests with the JSON null value. By default, fields
2239	// with empty values are omitted from API requests. However, any field
2240	// with an empty value appearing in NullFields will be sent to the
2241	// server as null. It is an error if a field in this list has a
2242	// non-empty value. This may be used to include null fields in Patch
2243	// requests.
2244	NullFields []string `json:"-"`
2245}
2246
2247func (s *Autoscaler) MarshalJSON() ([]byte, error) {
2248	type NoMethod Autoscaler
2249	raw := NoMethod(*s)
2250	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2251}
2252
2253type AutoscalerAggregatedList struct {
2254	// Id: [Output Only] Unique identifier for the resource; defined by the
2255	// server.
2256	Id string `json:"id,omitempty"`
2257
2258	// Items: A list of AutoscalersScopedList resources.
2259	Items map[string]AutoscalersScopedList `json:"items,omitempty"`
2260
2261	// Kind: [Output Only] Type of resource. Always
2262	// compute#autoscalerAggregatedList for aggregated lists of autoscalers.
2263	Kind string `json:"kind,omitempty"`
2264
2265	// NextPageToken: [Output Only] This token allows you to get the next
2266	// page of results for list requests. If the number of results is larger
2267	// than maxResults, use the nextPageToken as a value for the query
2268	// parameter pageToken in the next list request. Subsequent list
2269	// requests will have their own nextPageToken to continue paging through
2270	// the results.
2271	NextPageToken string `json:"nextPageToken,omitempty"`
2272
2273	// SelfLink: [Output Only] Server-defined URL for this resource.
2274	SelfLink string `json:"selfLink,omitempty"`
2275
2276	// Warning: [Output Only] Informational warning message.
2277	Warning *AutoscalerAggregatedListWarning `json:"warning,omitempty"`
2278
2279	// ServerResponse contains the HTTP response code and headers from the
2280	// server.
2281	googleapi.ServerResponse `json:"-"`
2282
2283	// ForceSendFields is a list of field names (e.g. "Id") to
2284	// unconditionally include in API requests. By default, fields with
2285	// empty values are omitted from API requests. However, any non-pointer,
2286	// non-interface field appearing in ForceSendFields will be sent to the
2287	// server regardless of whether the field is empty or not. This may be
2288	// used to include empty fields in Patch requests.
2289	ForceSendFields []string `json:"-"`
2290
2291	// NullFields is a list of field names (e.g. "Id") to include in API
2292	// requests with the JSON null value. By default, fields with empty
2293	// values are omitted from API requests. However, any field with an
2294	// empty value appearing in NullFields will be sent to the server as
2295	// null. It is an error if a field in this list has a non-empty value.
2296	// This may be used to include null fields in Patch requests.
2297	NullFields []string `json:"-"`
2298}
2299
2300func (s *AutoscalerAggregatedList) MarshalJSON() ([]byte, error) {
2301	type NoMethod AutoscalerAggregatedList
2302	raw := NoMethod(*s)
2303	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2304}
2305
2306// AutoscalerAggregatedListWarning: [Output Only] Informational warning
2307// message.
2308type AutoscalerAggregatedListWarning struct {
2309	// Code: [Output Only] A warning code, if applicable. For example,
2310	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2311	// the response.
2312	//
2313	// Possible values:
2314	//   "CLEANUP_FAILED"
2315	//   "DEPRECATED_RESOURCE_USED"
2316	//   "DEPRECATED_TYPE_USED"
2317	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2318	//   "EXPERIMENTAL_TYPE_USED"
2319	//   "EXTERNAL_API_WARNING"
2320	//   "FIELD_VALUE_OVERRIDEN"
2321	//   "INJECTED_KERNELS_DEPRECATED"
2322	//   "MISSING_TYPE_DEPENDENCY"
2323	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2324	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2325	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2326	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2327	//   "NEXT_HOP_NOT_RUNNING"
2328	//   "NOT_CRITICAL_ERROR"
2329	//   "NO_RESULTS_ON_PAGE"
2330	//   "REQUIRED_TOS_AGREEMENT"
2331	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2332	//   "RESOURCE_NOT_DELETED"
2333	//   "SCHEMA_VALIDATION_IGNORED"
2334	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2335	//   "UNDECLARED_PROPERTIES"
2336	//   "UNREACHABLE"
2337	Code string `json:"code,omitempty"`
2338
2339	// Data: [Output Only] Metadata about this warning in key: value format.
2340	// For example:
2341	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2342	Data []*AutoscalerAggregatedListWarningData `json:"data,omitempty"`
2343
2344	// Message: [Output Only] A human-readable description of the warning
2345	// code.
2346	Message string `json:"message,omitempty"`
2347
2348	// ForceSendFields is a list of field names (e.g. "Code") to
2349	// unconditionally include in API requests. By default, fields with
2350	// empty values are omitted from API requests. However, any non-pointer,
2351	// non-interface field appearing in ForceSendFields will be sent to the
2352	// server regardless of whether the field is empty or not. This may be
2353	// used to include empty fields in Patch requests.
2354	ForceSendFields []string `json:"-"`
2355
2356	// NullFields is a list of field names (e.g. "Code") to include in API
2357	// requests with the JSON null value. By default, fields with empty
2358	// values are omitted from API requests. However, any field with an
2359	// empty value appearing in NullFields will be sent to the server as
2360	// null. It is an error if a field in this list has a non-empty value.
2361	// This may be used to include null fields in Patch requests.
2362	NullFields []string `json:"-"`
2363}
2364
2365func (s *AutoscalerAggregatedListWarning) MarshalJSON() ([]byte, error) {
2366	type NoMethod AutoscalerAggregatedListWarning
2367	raw := NoMethod(*s)
2368	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2369}
2370
2371type AutoscalerAggregatedListWarningData struct {
2372	// Key: [Output Only] A key that provides more detail on the warning
2373	// being returned. For example, for warnings where there are no results
2374	// in a list request for a particular zone, this key might be scope and
2375	// the key value might be the zone name. Other examples might be a key
2376	// indicating a deprecated resource and a suggested replacement, or a
2377	// warning about invalid network settings (for example, if an instance
2378	// attempts to perform IP forwarding but is not enabled for IP
2379	// forwarding).
2380	Key string `json:"key,omitempty"`
2381
2382	// Value: [Output Only] A warning data value corresponding to the key.
2383	Value string `json:"value,omitempty"`
2384
2385	// ForceSendFields is a list of field names (e.g. "Key") to
2386	// unconditionally include in API requests. By default, fields with
2387	// empty values are omitted from API requests. However, any non-pointer,
2388	// non-interface field appearing in ForceSendFields will be sent to the
2389	// server regardless of whether the field is empty or not. This may be
2390	// used to include empty fields in Patch requests.
2391	ForceSendFields []string `json:"-"`
2392
2393	// NullFields is a list of field names (e.g. "Key") to include in API
2394	// requests with the JSON null value. By default, fields with empty
2395	// values are omitted from API requests. However, any field with an
2396	// empty value appearing in NullFields will be sent to the server as
2397	// null. It is an error if a field in this list has a non-empty value.
2398	// This may be used to include null fields in Patch requests.
2399	NullFields []string `json:"-"`
2400}
2401
2402func (s *AutoscalerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
2403	type NoMethod AutoscalerAggregatedListWarningData
2404	raw := NoMethod(*s)
2405	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2406}
2407
2408// AutoscalerList: Contains a list of Autoscaler resources.
2409type AutoscalerList struct {
2410	// Id: [Output Only] Unique identifier for the resource; defined by the
2411	// server.
2412	Id string `json:"id,omitempty"`
2413
2414	// Items: A list of Autoscaler resources.
2415	Items []*Autoscaler `json:"items,omitempty"`
2416
2417	// Kind: [Output Only] Type of resource. Always compute#autoscalerList
2418	// for lists of autoscalers.
2419	Kind string `json:"kind,omitempty"`
2420
2421	// NextPageToken: [Output Only] This token allows you to get the next
2422	// page of results for list requests. If the number of results is larger
2423	// than maxResults, use the nextPageToken as a value for the query
2424	// parameter pageToken in the next list request. Subsequent list
2425	// requests will have their own nextPageToken to continue paging through
2426	// the results.
2427	NextPageToken string `json:"nextPageToken,omitempty"`
2428
2429	// SelfLink: [Output Only] Server-defined URL for this resource.
2430	SelfLink string `json:"selfLink,omitempty"`
2431
2432	// Warning: [Output Only] Informational warning message.
2433	Warning *AutoscalerListWarning `json:"warning,omitempty"`
2434
2435	// ServerResponse contains the HTTP response code and headers from the
2436	// server.
2437	googleapi.ServerResponse `json:"-"`
2438
2439	// ForceSendFields is a list of field names (e.g. "Id") to
2440	// unconditionally include in API requests. By default, fields with
2441	// empty values are omitted from API requests. However, any non-pointer,
2442	// non-interface field appearing in ForceSendFields will be sent to the
2443	// server regardless of whether the field is empty or not. This may be
2444	// used to include empty fields in Patch requests.
2445	ForceSendFields []string `json:"-"`
2446
2447	// NullFields is a list of field names (e.g. "Id") to include in API
2448	// requests with the JSON null value. By default, fields with empty
2449	// values are omitted from API requests. However, any field with an
2450	// empty value appearing in NullFields will be sent to the server as
2451	// null. It is an error if a field in this list has a non-empty value.
2452	// This may be used to include null fields in Patch requests.
2453	NullFields []string `json:"-"`
2454}
2455
2456func (s *AutoscalerList) MarshalJSON() ([]byte, error) {
2457	type NoMethod AutoscalerList
2458	raw := NoMethod(*s)
2459	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2460}
2461
2462// AutoscalerListWarning: [Output Only] Informational warning message.
2463type AutoscalerListWarning struct {
2464	// Code: [Output Only] A warning code, if applicable. For example,
2465	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2466	// the response.
2467	//
2468	// Possible values:
2469	//   "CLEANUP_FAILED"
2470	//   "DEPRECATED_RESOURCE_USED"
2471	//   "DEPRECATED_TYPE_USED"
2472	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2473	//   "EXPERIMENTAL_TYPE_USED"
2474	//   "EXTERNAL_API_WARNING"
2475	//   "FIELD_VALUE_OVERRIDEN"
2476	//   "INJECTED_KERNELS_DEPRECATED"
2477	//   "MISSING_TYPE_DEPENDENCY"
2478	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2479	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2480	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2481	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2482	//   "NEXT_HOP_NOT_RUNNING"
2483	//   "NOT_CRITICAL_ERROR"
2484	//   "NO_RESULTS_ON_PAGE"
2485	//   "REQUIRED_TOS_AGREEMENT"
2486	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2487	//   "RESOURCE_NOT_DELETED"
2488	//   "SCHEMA_VALIDATION_IGNORED"
2489	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2490	//   "UNDECLARED_PROPERTIES"
2491	//   "UNREACHABLE"
2492	Code string `json:"code,omitempty"`
2493
2494	// Data: [Output Only] Metadata about this warning in key: value format.
2495	// For example:
2496	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2497	Data []*AutoscalerListWarningData `json:"data,omitempty"`
2498
2499	// Message: [Output Only] A human-readable description of the warning
2500	// code.
2501	Message string `json:"message,omitempty"`
2502
2503	// ForceSendFields is a list of field names (e.g. "Code") to
2504	// unconditionally include in API requests. By default, fields with
2505	// empty values are omitted from API requests. However, any non-pointer,
2506	// non-interface field appearing in ForceSendFields will be sent to the
2507	// server regardless of whether the field is empty or not. This may be
2508	// used to include empty fields in Patch requests.
2509	ForceSendFields []string `json:"-"`
2510
2511	// NullFields is a list of field names (e.g. "Code") to include in API
2512	// requests with the JSON null value. By default, fields with empty
2513	// values are omitted from API requests. However, any field with an
2514	// empty value appearing in NullFields will be sent to the server as
2515	// null. It is an error if a field in this list has a non-empty value.
2516	// This may be used to include null fields in Patch requests.
2517	NullFields []string `json:"-"`
2518}
2519
2520func (s *AutoscalerListWarning) MarshalJSON() ([]byte, error) {
2521	type NoMethod AutoscalerListWarning
2522	raw := NoMethod(*s)
2523	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2524}
2525
2526type AutoscalerListWarningData struct {
2527	// Key: [Output Only] A key that provides more detail on the warning
2528	// being returned. For example, for warnings where there are no results
2529	// in a list request for a particular zone, this key might be scope and
2530	// the key value might be the zone name. Other examples might be a key
2531	// indicating a deprecated resource and a suggested replacement, or a
2532	// warning about invalid network settings (for example, if an instance
2533	// attempts to perform IP forwarding but is not enabled for IP
2534	// forwarding).
2535	Key string `json:"key,omitempty"`
2536
2537	// Value: [Output Only] A warning data value corresponding to the key.
2538	Value string `json:"value,omitempty"`
2539
2540	// ForceSendFields is a list of field names (e.g. "Key") to
2541	// unconditionally include in API requests. By default, fields with
2542	// empty values are omitted from API requests. However, any non-pointer,
2543	// non-interface field appearing in ForceSendFields will be sent to the
2544	// server regardless of whether the field is empty or not. This may be
2545	// used to include empty fields in Patch requests.
2546	ForceSendFields []string `json:"-"`
2547
2548	// NullFields is a list of field names (e.g. "Key") to include in API
2549	// requests with the JSON null value. By default, fields with empty
2550	// values are omitted from API requests. However, any field with an
2551	// empty value appearing in NullFields will be sent to the server as
2552	// null. It is an error if a field in this list has a non-empty value.
2553	// This may be used to include null fields in Patch requests.
2554	NullFields []string `json:"-"`
2555}
2556
2557func (s *AutoscalerListWarningData) MarshalJSON() ([]byte, error) {
2558	type NoMethod AutoscalerListWarningData
2559	raw := NoMethod(*s)
2560	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2561}
2562
2563type AutoscalerStatusDetails struct {
2564	// Message: The status message.
2565	Message string `json:"message,omitempty"`
2566
2567	// Type: The type of error returned.
2568	//
2569	// Possible values:
2570	//   "ALL_INSTANCES_UNHEALTHY"
2571	//   "BACKEND_SERVICE_DOES_NOT_EXIST"
2572	//   "CAPPED_AT_MAX_NUM_REPLICAS"
2573	//   "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE"
2574	//   "CUSTOM_METRIC_INVALID"
2575	//   "MIN_EQUALS_MAX"
2576	//   "MISSING_CUSTOM_METRIC_DATA_POINTS"
2577	//   "MISSING_LOAD_BALANCING_DATA_POINTS"
2578	//   "MORE_THAN_ONE_BACKEND_SERVICE"
2579	//   "NOT_ENOUGH_QUOTA_AVAILABLE"
2580	//   "REGION_RESOURCE_STOCKOUT"
2581	//   "SCALING_TARGET_DOES_NOT_EXIST"
2582	//   "UNKNOWN"
2583	//   "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION"
2584	//   "ZONE_RESOURCE_STOCKOUT"
2585	Type string `json:"type,omitempty"`
2586
2587	// ForceSendFields is a list of field names (e.g. "Message") to
2588	// unconditionally include in API requests. By default, fields with
2589	// empty values are omitted from API requests. However, any non-pointer,
2590	// non-interface field appearing in ForceSendFields will be sent to the
2591	// server regardless of whether the field is empty or not. This may be
2592	// used to include empty fields in Patch requests.
2593	ForceSendFields []string `json:"-"`
2594
2595	// NullFields is a list of field names (e.g. "Message") to include in
2596	// API requests with the JSON null value. By default, fields with empty
2597	// values are omitted from API requests. However, any field with an
2598	// empty value appearing in NullFields will be sent to the server as
2599	// null. It is an error if a field in this list has a non-empty value.
2600	// This may be used to include null fields in Patch requests.
2601	NullFields []string `json:"-"`
2602}
2603
2604func (s *AutoscalerStatusDetails) MarshalJSON() ([]byte, error) {
2605	type NoMethod AutoscalerStatusDetails
2606	raw := NoMethod(*s)
2607	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2608}
2609
2610type AutoscalersScopedList struct {
2611	// Autoscalers: [Output Only] A list of autoscalers contained in this
2612	// scope.
2613	Autoscalers []*Autoscaler `json:"autoscalers,omitempty"`
2614
2615	// Warning: [Output Only] Informational warning which replaces the list
2616	// of autoscalers when the list is empty.
2617	Warning *AutoscalersScopedListWarning `json:"warning,omitempty"`
2618
2619	// ForceSendFields is a list of field names (e.g. "Autoscalers") to
2620	// unconditionally include in API requests. By default, fields with
2621	// empty values are omitted from API requests. However, any non-pointer,
2622	// non-interface field appearing in ForceSendFields will be sent to the
2623	// server regardless of whether the field is empty or not. This may be
2624	// used to include empty fields in Patch requests.
2625	ForceSendFields []string `json:"-"`
2626
2627	// NullFields is a list of field names (e.g. "Autoscalers") to include
2628	// in API requests with the JSON null value. By default, fields with
2629	// empty values are omitted from API requests. However, any field with
2630	// an empty value appearing in NullFields will be sent to the server as
2631	// null. It is an error if a field in this list has a non-empty value.
2632	// This may be used to include null fields in Patch requests.
2633	NullFields []string `json:"-"`
2634}
2635
2636func (s *AutoscalersScopedList) MarshalJSON() ([]byte, error) {
2637	type NoMethod AutoscalersScopedList
2638	raw := NoMethod(*s)
2639	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2640}
2641
2642// AutoscalersScopedListWarning: [Output Only] Informational warning
2643// which replaces the list of autoscalers when the list is empty.
2644type AutoscalersScopedListWarning struct {
2645	// Code: [Output Only] A warning code, if applicable. For example,
2646	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2647	// the response.
2648	//
2649	// Possible values:
2650	//   "CLEANUP_FAILED"
2651	//   "DEPRECATED_RESOURCE_USED"
2652	//   "DEPRECATED_TYPE_USED"
2653	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2654	//   "EXPERIMENTAL_TYPE_USED"
2655	//   "EXTERNAL_API_WARNING"
2656	//   "FIELD_VALUE_OVERRIDEN"
2657	//   "INJECTED_KERNELS_DEPRECATED"
2658	//   "MISSING_TYPE_DEPENDENCY"
2659	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2660	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2661	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2662	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2663	//   "NEXT_HOP_NOT_RUNNING"
2664	//   "NOT_CRITICAL_ERROR"
2665	//   "NO_RESULTS_ON_PAGE"
2666	//   "REQUIRED_TOS_AGREEMENT"
2667	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2668	//   "RESOURCE_NOT_DELETED"
2669	//   "SCHEMA_VALIDATION_IGNORED"
2670	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2671	//   "UNDECLARED_PROPERTIES"
2672	//   "UNREACHABLE"
2673	Code string `json:"code,omitempty"`
2674
2675	// Data: [Output Only] Metadata about this warning in key: value format.
2676	// For example:
2677	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2678	Data []*AutoscalersScopedListWarningData `json:"data,omitempty"`
2679
2680	// Message: [Output Only] A human-readable description of the warning
2681	// code.
2682	Message string `json:"message,omitempty"`
2683
2684	// ForceSendFields is a list of field names (e.g. "Code") to
2685	// unconditionally include in API requests. By default, fields with
2686	// empty values are omitted from API requests. However, any non-pointer,
2687	// non-interface field appearing in ForceSendFields will be sent to the
2688	// server regardless of whether the field is empty or not. This may be
2689	// used to include empty fields in Patch requests.
2690	ForceSendFields []string `json:"-"`
2691
2692	// NullFields is a list of field names (e.g. "Code") to include in API
2693	// requests with the JSON null value. By default, fields with empty
2694	// values are omitted from API requests. However, any field with an
2695	// empty value appearing in NullFields will be sent to the server as
2696	// null. It is an error if a field in this list has a non-empty value.
2697	// This may be used to include null fields in Patch requests.
2698	NullFields []string `json:"-"`
2699}
2700
2701func (s *AutoscalersScopedListWarning) MarshalJSON() ([]byte, error) {
2702	type NoMethod AutoscalersScopedListWarning
2703	raw := NoMethod(*s)
2704	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2705}
2706
2707type AutoscalersScopedListWarningData struct {
2708	// Key: [Output Only] A key that provides more detail on the warning
2709	// being returned. For example, for warnings where there are no results
2710	// in a list request for a particular zone, this key might be scope and
2711	// the key value might be the zone name. Other examples might be a key
2712	// indicating a deprecated resource and a suggested replacement, or a
2713	// warning about invalid network settings (for example, if an instance
2714	// attempts to perform IP forwarding but is not enabled for IP
2715	// forwarding).
2716	Key string `json:"key,omitempty"`
2717
2718	// Value: [Output Only] A warning data value corresponding to the key.
2719	Value string `json:"value,omitempty"`
2720
2721	// ForceSendFields is a list of field names (e.g. "Key") to
2722	// unconditionally include in API requests. By default, fields with
2723	// empty values are omitted from API requests. However, any non-pointer,
2724	// non-interface field appearing in ForceSendFields will be sent to the
2725	// server regardless of whether the field is empty or not. This may be
2726	// used to include empty fields in Patch requests.
2727	ForceSendFields []string `json:"-"`
2728
2729	// NullFields is a list of field names (e.g. "Key") to include in API
2730	// requests with the JSON null value. By default, fields with empty
2731	// values are omitted from API requests. However, any field with an
2732	// empty value appearing in NullFields will be sent to the server as
2733	// null. It is an error if a field in this list has a non-empty value.
2734	// This may be used to include null fields in Patch requests.
2735	NullFields []string `json:"-"`
2736}
2737
2738func (s *AutoscalersScopedListWarningData) MarshalJSON() ([]byte, error) {
2739	type NoMethod AutoscalersScopedListWarningData
2740	raw := NoMethod(*s)
2741	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2742}
2743
2744// AutoscalingPolicy: Cloud Autoscaler policy.
2745type AutoscalingPolicy struct {
2746	// CoolDownPeriodSec: The number of seconds that the autoscaler should
2747	// wait before it starts collecting information from a new instance.
2748	// This prevents the autoscaler from collecting information when the
2749	// instance is initializing, during which the collected usage would not
2750	// be reliable. The default time autoscaler waits is 60
2751	// seconds.
2752	//
2753	// Virtual machine initialization times might vary because of numerous
2754	// factors. We recommend that you test how long an instance may take to
2755	// initialize. To do this, create an instance and time the startup
2756	// process.
2757	CoolDownPeriodSec int64 `json:"coolDownPeriodSec,omitempty"`
2758
2759	// CpuUtilization: Defines the CPU utilization policy that allows the
2760	// autoscaler to scale based on the average CPU utilization of a managed
2761	// instance group.
2762	CpuUtilization *AutoscalingPolicyCpuUtilization `json:"cpuUtilization,omitempty"`
2763
2764	// CustomMetricUtilizations: Configuration parameters of autoscaling
2765	// based on a custom metric.
2766	CustomMetricUtilizations []*AutoscalingPolicyCustomMetricUtilization `json:"customMetricUtilizations,omitempty"`
2767
2768	// LoadBalancingUtilization: Configuration parameters of autoscaling
2769	// based on load balancer.
2770	LoadBalancingUtilization *AutoscalingPolicyLoadBalancingUtilization `json:"loadBalancingUtilization,omitempty"`
2771
2772	// MaxNumReplicas: The maximum number of instances that the autoscaler
2773	// can scale up to. This is required when creating or updating an
2774	// autoscaler. The maximum number of replicas should not be lower than
2775	// minimal number of replicas.
2776	MaxNumReplicas int64 `json:"maxNumReplicas,omitempty"`
2777
2778	// MinNumReplicas: The minimum number of replicas that the autoscaler
2779	// can scale down to. This cannot be less than 0. If not provided,
2780	// autoscaler will choose a default value depending on maximum number of
2781	// instances allowed.
2782	MinNumReplicas int64 `json:"minNumReplicas,omitempty"`
2783
2784	// ForceSendFields is a list of field names (e.g. "CoolDownPeriodSec")
2785	// to unconditionally include in API requests. By default, fields with
2786	// empty values are omitted from API requests. However, any non-pointer,
2787	// non-interface field appearing in ForceSendFields will be sent to the
2788	// server regardless of whether the field is empty or not. This may be
2789	// used to include empty fields in Patch requests.
2790	ForceSendFields []string `json:"-"`
2791
2792	// NullFields is a list of field names (e.g. "CoolDownPeriodSec") to
2793	// include in API requests with the JSON null value. By default, fields
2794	// with empty values are omitted from API requests. However, any field
2795	// with an empty value appearing in NullFields will be sent to the
2796	// server as null. It is an error if a field in this list has a
2797	// non-empty value. This may be used to include null fields in Patch
2798	// requests.
2799	NullFields []string `json:"-"`
2800}
2801
2802func (s *AutoscalingPolicy) MarshalJSON() ([]byte, error) {
2803	type NoMethod AutoscalingPolicy
2804	raw := NoMethod(*s)
2805	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2806}
2807
2808// AutoscalingPolicyCpuUtilization: CPU utilization policy.
2809type AutoscalingPolicyCpuUtilization struct {
2810	// UtilizationTarget: The target CPU utilization that the autoscaler
2811	// should maintain. Must be a float value in the range (0, 1]. If not
2812	// specified, the default is 0.6.
2813	//
2814	// If the CPU level is below the target utilization, the autoscaler
2815	// scales down the number of instances until it reaches the minimum
2816	// number of instances you specified or until the average CPU of your
2817	// instances reaches the target utilization.
2818	//
2819	// If the average CPU is above the target utilization, the autoscaler
2820	// scales up until it reaches the maximum number of instances you
2821	// specified or until the average utilization reaches the target
2822	// utilization.
2823	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
2824
2825	// ForceSendFields is a list of field names (e.g. "UtilizationTarget")
2826	// to unconditionally include in API requests. By default, fields with
2827	// empty values are omitted from API requests. However, any non-pointer,
2828	// non-interface field appearing in ForceSendFields will be sent to the
2829	// server regardless of whether the field is empty or not. This may be
2830	// used to include empty fields in Patch requests.
2831	ForceSendFields []string `json:"-"`
2832
2833	// NullFields is a list of field names (e.g. "UtilizationTarget") to
2834	// include in API requests with the JSON null value. By default, fields
2835	// with empty values are omitted from API requests. However, any field
2836	// with an empty value appearing in NullFields will be sent to the
2837	// server as null. It is an error if a field in this list has a
2838	// non-empty value. This may be used to include null fields in Patch
2839	// requests.
2840	NullFields []string `json:"-"`
2841}
2842
2843func (s *AutoscalingPolicyCpuUtilization) MarshalJSON() ([]byte, error) {
2844	type NoMethod AutoscalingPolicyCpuUtilization
2845	raw := NoMethod(*s)
2846	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2847}
2848
2849func (s *AutoscalingPolicyCpuUtilization) UnmarshalJSON(data []byte) error {
2850	type NoMethod AutoscalingPolicyCpuUtilization
2851	var s1 struct {
2852		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
2853		*NoMethod
2854	}
2855	s1.NoMethod = (*NoMethod)(s)
2856	if err := json.Unmarshal(data, &s1); err != nil {
2857		return err
2858	}
2859	s.UtilizationTarget = float64(s1.UtilizationTarget)
2860	return nil
2861}
2862
2863// AutoscalingPolicyCustomMetricUtilization: Custom utilization metric
2864// policy.
2865type AutoscalingPolicyCustomMetricUtilization struct {
2866	// Metric: The identifier (type) of the Stackdriver Monitoring metric.
2867	// The metric cannot have negative values.
2868	//
2869	// The metric must have a value type of INT64 or DOUBLE.
2870	Metric string `json:"metric,omitempty"`
2871
2872	// UtilizationTarget: The target value of the metric that autoscaler
2873	// should maintain. This must be a positive value. A utilization metric
2874	// scales number of virtual machines handling requests to increase or
2875	// decrease proportionally to the metric.
2876	//
2877	// For example, a good metric to use as a utilization_target is
2878	// compute.googleapis.com/instance/network/received_bytes_count. The
2879	// autoscaler will work to keep this value constant for each of the
2880	// instances.
2881	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
2882
2883	// UtilizationTargetType: Defines how target utilization value is
2884	// expressed for a Stackdriver Monitoring metric. Either GAUGE,
2885	// DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default
2886	// is GAUGE.
2887	//
2888	// Possible values:
2889	//   "DELTA_PER_MINUTE"
2890	//   "DELTA_PER_SECOND"
2891	//   "GAUGE"
2892	UtilizationTargetType string `json:"utilizationTargetType,omitempty"`
2893
2894	// ForceSendFields is a list of field names (e.g. "Metric") to
2895	// unconditionally include in API requests. By default, fields with
2896	// empty values are omitted from API requests. However, any non-pointer,
2897	// non-interface field appearing in ForceSendFields will be sent to the
2898	// server regardless of whether the field is empty or not. This may be
2899	// used to include empty fields in Patch requests.
2900	ForceSendFields []string `json:"-"`
2901
2902	// NullFields is a list of field names (e.g. "Metric") to include in API
2903	// requests with the JSON null value. By default, fields with empty
2904	// values are omitted from API requests. However, any field with an
2905	// empty value appearing in NullFields will be sent to the server as
2906	// null. It is an error if a field in this list has a non-empty value.
2907	// This may be used to include null fields in Patch requests.
2908	NullFields []string `json:"-"`
2909}
2910
2911func (s *AutoscalingPolicyCustomMetricUtilization) MarshalJSON() ([]byte, error) {
2912	type NoMethod AutoscalingPolicyCustomMetricUtilization
2913	raw := NoMethod(*s)
2914	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2915}
2916
2917func (s *AutoscalingPolicyCustomMetricUtilization) UnmarshalJSON(data []byte) error {
2918	type NoMethod AutoscalingPolicyCustomMetricUtilization
2919	var s1 struct {
2920		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
2921		*NoMethod
2922	}
2923	s1.NoMethod = (*NoMethod)(s)
2924	if err := json.Unmarshal(data, &s1); err != nil {
2925		return err
2926	}
2927	s.UtilizationTarget = float64(s1.UtilizationTarget)
2928	return nil
2929}
2930
2931// AutoscalingPolicyLoadBalancingUtilization: Configuration parameters
2932// of autoscaling based on load balancing.
2933type AutoscalingPolicyLoadBalancingUtilization struct {
2934	// UtilizationTarget: Fraction of backend capacity utilization (set in
2935	// HTTP(s) load balancing configuration) that autoscaler should
2936	// maintain. Must be a positive float value. If not defined, the default
2937	// is 0.8.
2938	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
2939
2940	// ForceSendFields is a list of field names (e.g. "UtilizationTarget")
2941	// to unconditionally include in API requests. By default, fields with
2942	// empty values are omitted from API requests. However, any non-pointer,
2943	// non-interface field appearing in ForceSendFields will be sent to the
2944	// server regardless of whether the field is empty or not. This may be
2945	// used to include empty fields in Patch requests.
2946	ForceSendFields []string `json:"-"`
2947
2948	// NullFields is a list of field names (e.g. "UtilizationTarget") to
2949	// include in API requests with the JSON null value. By default, fields
2950	// with empty values are omitted from API requests. However, any field
2951	// with an empty value appearing in NullFields will be sent to the
2952	// server as null. It is an error if a field in this list has a
2953	// non-empty value. This may be used to include null fields in Patch
2954	// requests.
2955	NullFields []string `json:"-"`
2956}
2957
2958func (s *AutoscalingPolicyLoadBalancingUtilization) MarshalJSON() ([]byte, error) {
2959	type NoMethod AutoscalingPolicyLoadBalancingUtilization
2960	raw := NoMethod(*s)
2961	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2962}
2963
2964func (s *AutoscalingPolicyLoadBalancingUtilization) UnmarshalJSON(data []byte) error {
2965	type NoMethod AutoscalingPolicyLoadBalancingUtilization
2966	var s1 struct {
2967		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
2968		*NoMethod
2969	}
2970	s1.NoMethod = (*NoMethod)(s)
2971	if err := json.Unmarshal(data, &s1); err != nil {
2972		return err
2973	}
2974	s.UtilizationTarget = float64(s1.UtilizationTarget)
2975	return nil
2976}
2977
2978// Backend: Message containing information of one individual backend.
2979type Backend struct {
2980	// BalancingMode: Specifies the balancing mode for this backend. For
2981	// global HTTP(S) or TCP/SSL load balancing, the default is UTILIZATION.
2982	// Valid values are UTILIZATION, RATE (for HTTP(S)) and CONNECTION (for
2983	// TCP/SSL).
2984	//
2985	// For Internal Load Balancing, the default and only supported mode is
2986	// CONNECTION.
2987	//
2988	// Possible values:
2989	//   "CONNECTION"
2990	//   "RATE"
2991	//   "UTILIZATION"
2992	BalancingMode string `json:"balancingMode,omitempty"`
2993
2994	// CapacityScaler: A multiplier applied to the group's maximum servicing
2995	// capacity (based on UTILIZATION, RATE or CONNECTION). Default value is
2996	// 1, which means the group will serve up to 100% of its configured
2997	// capacity (depending on balancingMode). A setting of 0 means the group
2998	// is completely drained, offering 0% of its available Capacity. Valid
2999	// range is [0.0,1.0].
3000	//
3001	// This cannot be used for internal load balancing.
3002	CapacityScaler float64 `json:"capacityScaler,omitempty"`
3003
3004	// Description: An optional description of this resource. Provide this
3005	// property when you create the resource.
3006	Description string `json:"description,omitempty"`
3007
3008	// Group: The fully-qualified URL of a Instance Group resource. This
3009	// instance group defines the list of instances that serve traffic.
3010	// Member virtual machine instances from each instance group must live
3011	// in the same zone as the instance group itself. No two backends in a
3012	// backend service are allowed to use same Instance Group
3013	// resource.
3014	//
3015	// Note that you must specify an Instance Group resource using the
3016	// fully-qualified URL, rather than a partial URL.
3017	//
3018	// When the BackendService has load balancing scheme INTERNAL, the
3019	// instance group must be within the same region as the BackendService.
3020	Group string `json:"group,omitempty"`
3021
3022	// MaxConnections: The max number of simultaneous connections for the
3023	// group. Can be used with either CONNECTION or UTILIZATION balancing
3024	// modes. For CONNECTION mode, either maxConnections or
3025	// maxConnectionsPerInstance must be set.
3026	//
3027	// This cannot be used for internal load balancing.
3028	MaxConnections int64 `json:"maxConnections,omitempty"`
3029
3030	// MaxConnectionsPerInstance: The max number of simultaneous connections
3031	// that a single backend instance can handle. This is used to calculate
3032	// the capacity of the group. Can be used in either CONNECTION or
3033	// UTILIZATION balancing modes. For CONNECTION mode, either
3034	// maxConnections or maxConnectionsPerInstance must be set.
3035	//
3036	// This cannot be used for internal load balancing.
3037	MaxConnectionsPerInstance int64 `json:"maxConnectionsPerInstance,omitempty"`
3038
3039	// MaxRate: The max requests per second (RPS) of the group. Can be used
3040	// with either RATE or UTILIZATION balancing modes, but required if RATE
3041	// mode. For RATE mode, either maxRate or maxRatePerInstance must be
3042	// set.
3043	//
3044	// This cannot be used for internal load balancing.
3045	MaxRate int64 `json:"maxRate,omitempty"`
3046
3047	// MaxRatePerInstance: The max requests per second (RPS) that a single
3048	// backend instance can handle. This is used to calculate the capacity
3049	// of the group. Can be used in either balancing mode. For RATE mode,
3050	// either maxRate or maxRatePerInstance must be set.
3051	//
3052	// This cannot be used for internal load balancing.
3053	MaxRatePerInstance float64 `json:"maxRatePerInstance,omitempty"`
3054
3055	// MaxUtilization: Used when balancingMode is UTILIZATION. This ratio
3056	// defines the CPU utilization target for the group. The default is 0.8.
3057	// Valid range is [0.0, 1.0].
3058	//
3059	// This cannot be used for internal load balancing.
3060	MaxUtilization float64 `json:"maxUtilization,omitempty"`
3061
3062	// ForceSendFields is a list of field names (e.g. "BalancingMode") to
3063	// unconditionally include in API requests. By default, fields with
3064	// empty values are omitted from API requests. However, any non-pointer,
3065	// non-interface field appearing in ForceSendFields will be sent to the
3066	// server regardless of whether the field is empty or not. This may be
3067	// used to include empty fields in Patch requests.
3068	ForceSendFields []string `json:"-"`
3069
3070	// NullFields is a list of field names (e.g. "BalancingMode") to include
3071	// in API requests with the JSON null value. By default, fields with
3072	// empty values are omitted from API requests. However, any field with
3073	// an empty value appearing in NullFields will be sent to the server as
3074	// null. It is an error if a field in this list has a non-empty value.
3075	// This may be used to include null fields in Patch requests.
3076	NullFields []string `json:"-"`
3077}
3078
3079func (s *Backend) MarshalJSON() ([]byte, error) {
3080	type NoMethod Backend
3081	raw := NoMethod(*s)
3082	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3083}
3084
3085func (s *Backend) UnmarshalJSON(data []byte) error {
3086	type NoMethod Backend
3087	var s1 struct {
3088		CapacityScaler     gensupport.JSONFloat64 `json:"capacityScaler"`
3089		MaxRatePerInstance gensupport.JSONFloat64 `json:"maxRatePerInstance"`
3090		MaxUtilization     gensupport.JSONFloat64 `json:"maxUtilization"`
3091		*NoMethod
3092	}
3093	s1.NoMethod = (*NoMethod)(s)
3094	if err := json.Unmarshal(data, &s1); err != nil {
3095		return err
3096	}
3097	s.CapacityScaler = float64(s1.CapacityScaler)
3098	s.MaxRatePerInstance = float64(s1.MaxRatePerInstance)
3099	s.MaxUtilization = float64(s1.MaxUtilization)
3100	return nil
3101}
3102
3103// BackendBucket: A BackendBucket resource. This resource defines a
3104// Cloud Storage bucket.
3105type BackendBucket struct {
3106	// BucketName: Cloud Storage bucket name.
3107	BucketName string `json:"bucketName,omitempty"`
3108
3109	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
3110	// format.
3111	CreationTimestamp string `json:"creationTimestamp,omitempty"`
3112
3113	// Description: An optional textual description of the resource;
3114	// provided by the client when the resource is created.
3115	Description string `json:"description,omitempty"`
3116
3117	// EnableCdn: If true, enable Cloud CDN for this BackendBucket.
3118	EnableCdn bool `json:"enableCdn,omitempty"`
3119
3120	// Id: [Output Only] Unique identifier for the resource; defined by the
3121	// server.
3122	Id uint64 `json:"id,omitempty,string"`
3123
3124	// Kind: Type of the resource.
3125	Kind string `json:"kind,omitempty"`
3126
3127	// Name: Name of the resource. Provided by the client when the resource
3128	// is created. The name must be 1-63 characters long, and comply with
3129	// RFC1035. Specifically, the name must be 1-63 characters long and
3130	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
3131	// the first character must be a lowercase letter, and all following
3132	// characters must be a dash, lowercase letter, or digit, except the
3133	// last character, which cannot be a dash.
3134	Name string `json:"name,omitempty"`
3135
3136	// SelfLink: [Output Only] Server-defined URL for the resource.
3137	SelfLink string `json:"selfLink,omitempty"`
3138
3139	// ServerResponse contains the HTTP response code and headers from the
3140	// server.
3141	googleapi.ServerResponse `json:"-"`
3142
3143	// ForceSendFields is a list of field names (e.g. "BucketName") to
3144	// unconditionally include in API requests. By default, fields with
3145	// empty values are omitted from API requests. However, any non-pointer,
3146	// non-interface field appearing in ForceSendFields will be sent to the
3147	// server regardless of whether the field is empty or not. This may be
3148	// used to include empty fields in Patch requests.
3149	ForceSendFields []string `json:"-"`
3150
3151	// NullFields is a list of field names (e.g. "BucketName") to include in
3152	// API requests with the JSON null value. By default, fields with empty
3153	// values are omitted from API requests. However, any field with an
3154	// empty value appearing in NullFields will be sent to the server as
3155	// null. It is an error if a field in this list has a non-empty value.
3156	// This may be used to include null fields in Patch requests.
3157	NullFields []string `json:"-"`
3158}
3159
3160func (s *BackendBucket) MarshalJSON() ([]byte, error) {
3161	type NoMethod BackendBucket
3162	raw := NoMethod(*s)
3163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3164}
3165
3166// BackendBucketList: Contains a list of BackendBucket resources.
3167type BackendBucketList struct {
3168	// Id: [Output Only] Unique identifier for the resource; defined by the
3169	// server.
3170	Id string `json:"id,omitempty"`
3171
3172	// Items: A list of BackendBucket resources.
3173	Items []*BackendBucket `json:"items,omitempty"`
3174
3175	// Kind: Type of resource.
3176	Kind string `json:"kind,omitempty"`
3177
3178	// NextPageToken: [Output Only] This token allows you to get the next
3179	// page of results for list requests. If the number of results is larger
3180	// than maxResults, use the nextPageToken as a value for the query
3181	// parameter pageToken in the next list request. Subsequent list
3182	// requests will have their own nextPageToken to continue paging through
3183	// the results.
3184	NextPageToken string `json:"nextPageToken,omitempty"`
3185
3186	// SelfLink: [Output Only] Server-defined URL for this resource.
3187	SelfLink string `json:"selfLink,omitempty"`
3188
3189	// Warning: [Output Only] Informational warning message.
3190	Warning *BackendBucketListWarning `json:"warning,omitempty"`
3191
3192	// ServerResponse contains the HTTP response code and headers from the
3193	// server.
3194	googleapi.ServerResponse `json:"-"`
3195
3196	// ForceSendFields is a list of field names (e.g. "Id") to
3197	// unconditionally include in API requests. By default, fields with
3198	// empty values are omitted from API requests. However, any non-pointer,
3199	// non-interface field appearing in ForceSendFields will be sent to the
3200	// server regardless of whether the field is empty or not. This may be
3201	// used to include empty fields in Patch requests.
3202	ForceSendFields []string `json:"-"`
3203
3204	// NullFields is a list of field names (e.g. "Id") to include in API
3205	// requests with the JSON null value. By default, fields with empty
3206	// values are omitted from API requests. However, any field with an
3207	// empty value appearing in NullFields will be sent to the server as
3208	// null. It is an error if a field in this list has a non-empty value.
3209	// This may be used to include null fields in Patch requests.
3210	NullFields []string `json:"-"`
3211}
3212
3213func (s *BackendBucketList) MarshalJSON() ([]byte, error) {
3214	type NoMethod BackendBucketList
3215	raw := NoMethod(*s)
3216	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3217}
3218
3219// BackendBucketListWarning: [Output Only] Informational warning
3220// message.
3221type BackendBucketListWarning struct {
3222	// Code: [Output Only] A warning code, if applicable. For example,
3223	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3224	// the response.
3225	//
3226	// Possible values:
3227	//   "CLEANUP_FAILED"
3228	//   "DEPRECATED_RESOURCE_USED"
3229	//   "DEPRECATED_TYPE_USED"
3230	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3231	//   "EXPERIMENTAL_TYPE_USED"
3232	//   "EXTERNAL_API_WARNING"
3233	//   "FIELD_VALUE_OVERRIDEN"
3234	//   "INJECTED_KERNELS_DEPRECATED"
3235	//   "MISSING_TYPE_DEPENDENCY"
3236	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3237	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3238	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3239	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3240	//   "NEXT_HOP_NOT_RUNNING"
3241	//   "NOT_CRITICAL_ERROR"
3242	//   "NO_RESULTS_ON_PAGE"
3243	//   "REQUIRED_TOS_AGREEMENT"
3244	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3245	//   "RESOURCE_NOT_DELETED"
3246	//   "SCHEMA_VALIDATION_IGNORED"
3247	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3248	//   "UNDECLARED_PROPERTIES"
3249	//   "UNREACHABLE"
3250	Code string `json:"code,omitempty"`
3251
3252	// Data: [Output Only] Metadata about this warning in key: value format.
3253	// For example:
3254	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3255	Data []*BackendBucketListWarningData `json:"data,omitempty"`
3256
3257	// Message: [Output Only] A human-readable description of the warning
3258	// code.
3259	Message string `json:"message,omitempty"`
3260
3261	// ForceSendFields is a list of field names (e.g. "Code") to
3262	// unconditionally include in API requests. By default, fields with
3263	// empty values are omitted from API requests. However, any non-pointer,
3264	// non-interface field appearing in ForceSendFields will be sent to the
3265	// server regardless of whether the field is empty or not. This may be
3266	// used to include empty fields in Patch requests.
3267	ForceSendFields []string `json:"-"`
3268
3269	// NullFields is a list of field names (e.g. "Code") to include in API
3270	// requests with the JSON null value. By default, fields with empty
3271	// values are omitted from API requests. However, any field with an
3272	// empty value appearing in NullFields will be sent to the server as
3273	// null. It is an error if a field in this list has a non-empty value.
3274	// This may be used to include null fields in Patch requests.
3275	NullFields []string `json:"-"`
3276}
3277
3278func (s *BackendBucketListWarning) MarshalJSON() ([]byte, error) {
3279	type NoMethod BackendBucketListWarning
3280	raw := NoMethod(*s)
3281	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3282}
3283
3284type BackendBucketListWarningData struct {
3285	// Key: [Output Only] A key that provides more detail on the warning
3286	// being returned. For example, for warnings where there are no results
3287	// in a list request for a particular zone, this key might be scope and
3288	// the key value might be the zone name. Other examples might be a key
3289	// indicating a deprecated resource and a suggested replacement, or a
3290	// warning about invalid network settings (for example, if an instance
3291	// attempts to perform IP forwarding but is not enabled for IP
3292	// forwarding).
3293	Key string `json:"key,omitempty"`
3294
3295	// Value: [Output Only] A warning data value corresponding to the key.
3296	Value string `json:"value,omitempty"`
3297
3298	// ForceSendFields is a list of field names (e.g. "Key") to
3299	// unconditionally include in API requests. By default, fields with
3300	// empty values are omitted from API requests. However, any non-pointer,
3301	// non-interface field appearing in ForceSendFields will be sent to the
3302	// server regardless of whether the field is empty or not. This may be
3303	// used to include empty fields in Patch requests.
3304	ForceSendFields []string `json:"-"`
3305
3306	// NullFields is a list of field names (e.g. "Key") to include in API
3307	// requests with the JSON null value. By default, fields with empty
3308	// values are omitted from API requests. However, any field with an
3309	// empty value appearing in NullFields will be sent to the server as
3310	// null. It is an error if a field in this list has a non-empty value.
3311	// This may be used to include null fields in Patch requests.
3312	NullFields []string `json:"-"`
3313}
3314
3315func (s *BackendBucketListWarningData) MarshalJSON() ([]byte, error) {
3316	type NoMethod BackendBucketListWarningData
3317	raw := NoMethod(*s)
3318	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3319}
3320
3321// BackendService: A BackendService resource. This resource defines a
3322// group of backend virtual machines and their serving capacity. (==
3323// resource_for v1.backendService ==) (== resource_for
3324// beta.backendService ==)
3325type BackendService struct {
3326	// AffinityCookieTtlSec: Lifetime of cookies in seconds if
3327	// session_affinity is GENERATED_COOKIE. If set to 0, the cookie is
3328	// non-persistent and lasts only until the end of the browser session
3329	// (or equivalent). The maximum allowed value for TTL is one day.
3330	//
3331	// When the load balancing scheme is INTERNAL, this field is not used.
3332	AffinityCookieTtlSec int64 `json:"affinityCookieTtlSec,omitempty"`
3333
3334	// Backends: The list of backends that serve this BackendService.
3335	Backends []*Backend `json:"backends,omitempty"`
3336
3337	// CdnPolicy: Cloud CDN configuration for this BackendService.
3338	CdnPolicy *BackendServiceCdnPolicy `json:"cdnPolicy,omitempty"`
3339
3340	ConnectionDraining *ConnectionDraining `json:"connectionDraining,omitempty"`
3341
3342	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
3343	// format.
3344	CreationTimestamp string `json:"creationTimestamp,omitempty"`
3345
3346	// Description: An optional description of this resource. Provide this
3347	// property when you create the resource.
3348	Description string `json:"description,omitempty"`
3349
3350	// EnableCDN: If true, enable Cloud CDN for this BackendService.
3351	//
3352	// When the load balancing scheme is INTERNAL, this field is not used.
3353	EnableCDN bool `json:"enableCDN,omitempty"`
3354
3355	// Fingerprint: Fingerprint of this resource. A hash of the contents
3356	// stored in this object. This field is used in optimistic locking. This
3357	// field will be ignored when inserting a BackendService. An up-to-date
3358	// fingerprint must be provided in order to update the BackendService.
3359	Fingerprint string `json:"fingerprint,omitempty"`
3360
3361	// HealthChecks: The list of URLs to the HttpHealthCheck or
3362	// HttpsHealthCheck resource for health checking this BackendService.
3363	// Currently at most one health check can be specified, and a health
3364	// check is required for Compute Engine backend services. A health check
3365	// must not be specified for App Engine backend and Cloud Function
3366	// backend.
3367	//
3368	// For internal load balancing, a URL to a HealthCheck resource must be
3369	// specified instead.
3370	HealthChecks []string `json:"healthChecks,omitempty"`
3371
3372	Iap *BackendServiceIAP `json:"iap,omitempty"`
3373
3374	// Id: [Output Only] The unique identifier for the resource. This
3375	// identifier is defined by the server.
3376	Id uint64 `json:"id,omitempty,string"`
3377
3378	// Kind: [Output Only] Type of resource. Always compute#backendService
3379	// for backend services.
3380	Kind string `json:"kind,omitempty"`
3381
3382	// LoadBalancingScheme: Indicates whether the backend service will be
3383	// used with internal or external load balancing. A backend service
3384	// created for one type of load balancing cannot be used with the other.
3385	// Possible values are INTERNAL and EXTERNAL.
3386	//
3387	// Possible values:
3388	//   "EXTERNAL"
3389	//   "INTERNAL"
3390	//   "INVALID_LOAD_BALANCING_SCHEME"
3391	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
3392
3393	// Name: Name of the resource. Provided by the client when the resource
3394	// is created. The name must be 1-63 characters long, and comply with
3395	// RFC1035. Specifically, the name must be 1-63 characters long and
3396	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
3397	// the first character must be a lowercase letter, and all following
3398	// characters must be a dash, lowercase letter, or digit, except the
3399	// last character, which cannot be a dash.
3400	Name string `json:"name,omitempty"`
3401
3402	// Port: Deprecated in favor of portName. The TCP port to connect on the
3403	// backend. The default value is 80.
3404	//
3405	// This cannot be used for internal load balancing.
3406	Port int64 `json:"port,omitempty"`
3407
3408	// PortName: Name of backend port. The same name should appear in the
3409	// instance groups referenced by this service. Required when the load
3410	// balancing scheme is EXTERNAL.
3411	//
3412	// When the load balancing scheme is INTERNAL, this field is not used.
3413	PortName string `json:"portName,omitempty"`
3414
3415	// Protocol: The protocol this BackendService uses to communicate with
3416	// backends.
3417	//
3418	// Possible values are HTTP, HTTPS, TCP, and SSL. The default is
3419	// HTTP.
3420	//
3421	// For internal load balancing, the possible values are TCP and UDP, and
3422	// the default is TCP.
3423	//
3424	// Possible values:
3425	//   "HTTP"
3426	//   "HTTPS"
3427	//   "SSL"
3428	//   "TCP"
3429	//   "UDP"
3430	Protocol string `json:"protocol,omitempty"`
3431
3432	// Region: [Output Only] URL of the region where the regional backend
3433	// service resides. This field is not applicable to global backend
3434	// services. You must specify this field as part of the HTTP request
3435	// URL. It is not settable as a field in the request body.
3436	Region string `json:"region,omitempty"`
3437
3438	// SelfLink: [Output Only] Server-defined URL for the resource.
3439	SelfLink string `json:"selfLink,omitempty"`
3440
3441	// SessionAffinity: Type of session affinity to use. The default is
3442	// NONE.
3443	//
3444	// When the load balancing scheme is EXTERNAL, can be NONE, CLIENT_IP,
3445	// or GENERATED_COOKIE.
3446	//
3447	// When the load balancing scheme is INTERNAL, can be NONE, CLIENT_IP,
3448	// CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
3449	//
3450	// When the protocol is UDP, this field is not used.
3451	//
3452	// Possible values:
3453	//   "CLIENT_IP"
3454	//   "CLIENT_IP_PORT_PROTO"
3455	//   "CLIENT_IP_PROTO"
3456	//   "GENERATED_COOKIE"
3457	//   "NONE"
3458	SessionAffinity string `json:"sessionAffinity,omitempty"`
3459
3460	// TimeoutSec: How many seconds to wait for the backend before
3461	// considering it a failed request. Default is 30 seconds.
3462	TimeoutSec int64 `json:"timeoutSec,omitempty"`
3463
3464	// ServerResponse contains the HTTP response code and headers from the
3465	// server.
3466	googleapi.ServerResponse `json:"-"`
3467
3468	// ForceSendFields is a list of field names (e.g.
3469	// "AffinityCookieTtlSec") to unconditionally include in API requests.
3470	// By default, fields with empty values are omitted from API requests.
3471	// However, any non-pointer, non-interface field appearing in
3472	// ForceSendFields will be sent to the server regardless of whether the
3473	// field is empty or not. This may be used to include empty fields in
3474	// Patch requests.
3475	ForceSendFields []string `json:"-"`
3476
3477	// NullFields is a list of field names (e.g. "AffinityCookieTtlSec") to
3478	// include in API requests with the JSON null value. By default, fields
3479	// with empty values are omitted from API requests. However, any field
3480	// with an empty value appearing in NullFields will be sent to the
3481	// server as null. It is an error if a field in this list has a
3482	// non-empty value. This may be used to include null fields in Patch
3483	// requests.
3484	NullFields []string `json:"-"`
3485}
3486
3487func (s *BackendService) MarshalJSON() ([]byte, error) {
3488	type NoMethod BackendService
3489	raw := NoMethod(*s)
3490	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3491}
3492
3493// BackendServiceAggregatedList: Contains a list of
3494// BackendServicesScopedList.
3495type BackendServiceAggregatedList struct {
3496	// Id: [Output Only] Unique identifier for the resource; defined by the
3497	// server.
3498	Id string `json:"id,omitempty"`
3499
3500	// Items: A list of BackendServicesScopedList resources.
3501	Items map[string]BackendServicesScopedList `json:"items,omitempty"`
3502
3503	// Kind: Type of resource.
3504	Kind string `json:"kind,omitempty"`
3505
3506	// NextPageToken: [Output Only] This token allows you to get the next
3507	// page of results for list requests. If the number of results is larger
3508	// than maxResults, use the nextPageToken as a value for the query
3509	// parameter pageToken in the next list request. Subsequent list
3510	// requests will have their own nextPageToken to continue paging through
3511	// the results.
3512	NextPageToken string `json:"nextPageToken,omitempty"`
3513
3514	// SelfLink: [Output Only] Server-defined URL for this resource.
3515	SelfLink string `json:"selfLink,omitempty"`
3516
3517	// Warning: [Output Only] Informational warning message.
3518	Warning *BackendServiceAggregatedListWarning `json:"warning,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. "Id") 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. "Id") to include in API
3533	// requests with the JSON null value. By default, fields with empty
3534	// values are omitted from API requests. However, any field with an
3535	// empty value appearing in NullFields will be sent to the server as
3536	// null. It is an error if a field in this list has a non-empty value.
3537	// This may be used to include null fields in Patch requests.
3538	NullFields []string `json:"-"`
3539}
3540
3541func (s *BackendServiceAggregatedList) MarshalJSON() ([]byte, error) {
3542	type NoMethod BackendServiceAggregatedList
3543	raw := NoMethod(*s)
3544	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3545}
3546
3547// BackendServiceAggregatedListWarning: [Output Only] Informational
3548// warning message.
3549type BackendServiceAggregatedListWarning struct {
3550	// Code: [Output Only] A warning code, if applicable. For example,
3551	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3552	// the response.
3553	//
3554	// Possible values:
3555	//   "CLEANUP_FAILED"
3556	//   "DEPRECATED_RESOURCE_USED"
3557	//   "DEPRECATED_TYPE_USED"
3558	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3559	//   "EXPERIMENTAL_TYPE_USED"
3560	//   "EXTERNAL_API_WARNING"
3561	//   "FIELD_VALUE_OVERRIDEN"
3562	//   "INJECTED_KERNELS_DEPRECATED"
3563	//   "MISSING_TYPE_DEPENDENCY"
3564	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3565	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3566	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3567	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3568	//   "NEXT_HOP_NOT_RUNNING"
3569	//   "NOT_CRITICAL_ERROR"
3570	//   "NO_RESULTS_ON_PAGE"
3571	//   "REQUIRED_TOS_AGREEMENT"
3572	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3573	//   "RESOURCE_NOT_DELETED"
3574	//   "SCHEMA_VALIDATION_IGNORED"
3575	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3576	//   "UNDECLARED_PROPERTIES"
3577	//   "UNREACHABLE"
3578	Code string `json:"code,omitempty"`
3579
3580	// Data: [Output Only] Metadata about this warning in key: value format.
3581	// For example:
3582	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3583	Data []*BackendServiceAggregatedListWarningData `json:"data,omitempty"`
3584
3585	// Message: [Output Only] A human-readable description of the warning
3586	// code.
3587	Message string `json:"message,omitempty"`
3588
3589	// ForceSendFields is a list of field names (e.g. "Code") to
3590	// unconditionally include in API requests. By default, fields with
3591	// empty values are omitted from API requests. However, any non-pointer,
3592	// non-interface field appearing in ForceSendFields will be sent to the
3593	// server regardless of whether the field is empty or not. This may be
3594	// used to include empty fields in Patch requests.
3595	ForceSendFields []string `json:"-"`
3596
3597	// NullFields is a list of field names (e.g. "Code") to include in API
3598	// requests with the JSON null value. By default, fields with empty
3599	// values are omitted from API requests. However, any field with an
3600	// empty value appearing in NullFields will be sent to the server as
3601	// null. It is an error if a field in this list has a non-empty value.
3602	// This may be used to include null fields in Patch requests.
3603	NullFields []string `json:"-"`
3604}
3605
3606func (s *BackendServiceAggregatedListWarning) MarshalJSON() ([]byte, error) {
3607	type NoMethod BackendServiceAggregatedListWarning
3608	raw := NoMethod(*s)
3609	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3610}
3611
3612type BackendServiceAggregatedListWarningData struct {
3613	// Key: [Output Only] A key that provides more detail on the warning
3614	// being returned. For example, for warnings where there are no results
3615	// in a list request for a particular zone, this key might be scope and
3616	// the key value might be the zone name. Other examples might be a key
3617	// indicating a deprecated resource and a suggested replacement, or a
3618	// warning about invalid network settings (for example, if an instance
3619	// attempts to perform IP forwarding but is not enabled for IP
3620	// forwarding).
3621	Key string `json:"key,omitempty"`
3622
3623	// Value: [Output Only] A warning data value corresponding to the key.
3624	Value string `json:"value,omitempty"`
3625
3626	// ForceSendFields is a list of field names (e.g. "Key") to
3627	// unconditionally include in API requests. By default, fields with
3628	// empty values are omitted from API requests. However, any non-pointer,
3629	// non-interface field appearing in ForceSendFields will be sent to the
3630	// server regardless of whether the field is empty or not. This may be
3631	// used to include empty fields in Patch requests.
3632	ForceSendFields []string `json:"-"`
3633
3634	// NullFields is a list of field names (e.g. "Key") to include in API
3635	// requests with the JSON null value. By default, fields with empty
3636	// values are omitted from API requests. However, any field with an
3637	// empty value appearing in NullFields will be sent to the server as
3638	// null. It is an error if a field in this list has a non-empty value.
3639	// This may be used to include null fields in Patch requests.
3640	NullFields []string `json:"-"`
3641}
3642
3643func (s *BackendServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
3644	type NoMethod BackendServiceAggregatedListWarningData
3645	raw := NoMethod(*s)
3646	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3647}
3648
3649// BackendServiceCdnPolicy: Message containing Cloud CDN configuration
3650// for a backend service.
3651type BackendServiceCdnPolicy struct {
3652	// CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy.
3653	CacheKeyPolicy *CacheKeyPolicy `json:"cacheKeyPolicy,omitempty"`
3654
3655	// ForceSendFields is a list of field names (e.g. "CacheKeyPolicy") to
3656	// unconditionally include in API requests. By default, fields with
3657	// empty values are omitted from API requests. However, any non-pointer,
3658	// non-interface field appearing in ForceSendFields will be sent to the
3659	// server regardless of whether the field is empty or not. This may be
3660	// used to include empty fields in Patch requests.
3661	ForceSendFields []string `json:"-"`
3662
3663	// NullFields is a list of field names (e.g. "CacheKeyPolicy") to
3664	// include in API requests with the JSON null value. By default, fields
3665	// with empty values are omitted from API requests. However, any field
3666	// with an empty value appearing in NullFields will be sent to the
3667	// server as null. It is an error if a field in this list has a
3668	// non-empty value. This may be used to include null fields in Patch
3669	// requests.
3670	NullFields []string `json:"-"`
3671}
3672
3673func (s *BackendServiceCdnPolicy) MarshalJSON() ([]byte, error) {
3674	type NoMethod BackendServiceCdnPolicy
3675	raw := NoMethod(*s)
3676	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3677}
3678
3679type BackendServiceGroupHealth struct {
3680	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
3681
3682	// Kind: [Output Only] Type of resource. Always
3683	// compute#backendServiceGroupHealth for the health of backend services.
3684	Kind string `json:"kind,omitempty"`
3685
3686	// ServerResponse contains the HTTP response code and headers from the
3687	// server.
3688	googleapi.ServerResponse `json:"-"`
3689
3690	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
3691	// unconditionally include in API requests. By default, fields with
3692	// empty values are omitted from API requests. However, any non-pointer,
3693	// non-interface field appearing in ForceSendFields will be sent to the
3694	// server regardless of whether the field is empty or not. This may be
3695	// used to include empty fields in Patch requests.
3696	ForceSendFields []string `json:"-"`
3697
3698	// NullFields is a list of field names (e.g. "HealthStatus") to include
3699	// in API requests with the JSON null value. By default, fields with
3700	// empty values are omitted from API requests. However, any field with
3701	// an empty value appearing in NullFields will be sent to the server as
3702	// null. It is an error if a field in this list has a non-empty value.
3703	// This may be used to include null fields in Patch requests.
3704	NullFields []string `json:"-"`
3705}
3706
3707func (s *BackendServiceGroupHealth) MarshalJSON() ([]byte, error) {
3708	type NoMethod BackendServiceGroupHealth
3709	raw := NoMethod(*s)
3710	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3711}
3712
3713// BackendServiceIAP: Identity-Aware Proxy
3714type BackendServiceIAP struct {
3715	Enabled bool `json:"enabled,omitempty"`
3716
3717	Oauth2ClientId string `json:"oauth2ClientId,omitempty"`
3718
3719	Oauth2ClientSecret string `json:"oauth2ClientSecret,omitempty"`
3720
3721	// Oauth2ClientSecretSha256: [Output Only] SHA256 hash value for the
3722	// field oauth2_client_secret above.
3723	Oauth2ClientSecretSha256 string `json:"oauth2ClientSecretSha256,omitempty"`
3724
3725	// ForceSendFields is a list of field names (e.g. "Enabled") to
3726	// unconditionally include in API requests. By default, fields with
3727	// empty values are omitted from API requests. However, any non-pointer,
3728	// non-interface field appearing in ForceSendFields will be sent to the
3729	// server regardless of whether the field is empty or not. This may be
3730	// used to include empty fields in Patch requests.
3731	ForceSendFields []string `json:"-"`
3732
3733	// NullFields is a list of field names (e.g. "Enabled") to include in
3734	// API requests with the JSON null value. By default, fields with empty
3735	// values are omitted from API requests. However, any field with an
3736	// empty value appearing in NullFields will be sent to the server as
3737	// null. It is an error if a field in this list has a non-empty value.
3738	// This may be used to include null fields in Patch requests.
3739	NullFields []string `json:"-"`
3740}
3741
3742func (s *BackendServiceIAP) MarshalJSON() ([]byte, error) {
3743	type NoMethod BackendServiceIAP
3744	raw := NoMethod(*s)
3745	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3746}
3747
3748// BackendServiceList: Contains a list of BackendService resources.
3749type BackendServiceList struct {
3750	// Id: [Output Only] Unique identifier for the resource; defined by the
3751	// server.
3752	Id string `json:"id,omitempty"`
3753
3754	// Items: A list of BackendService resources.
3755	Items []*BackendService `json:"items,omitempty"`
3756
3757	// Kind: [Output Only] Type of resource. Always
3758	// compute#backendServiceList for lists of backend services.
3759	Kind string `json:"kind,omitempty"`
3760
3761	// NextPageToken: [Output Only] This token allows you to get the next
3762	// page of results for list requests. If the number of results is larger
3763	// than maxResults, use the nextPageToken as a value for the query
3764	// parameter pageToken in the next list request. Subsequent list
3765	// requests will have their own nextPageToken to continue paging through
3766	// the results.
3767	NextPageToken string `json:"nextPageToken,omitempty"`
3768
3769	// SelfLink: [Output Only] Server-defined URL for this resource.
3770	SelfLink string `json:"selfLink,omitempty"`
3771
3772	// Warning: [Output Only] Informational warning message.
3773	Warning *BackendServiceListWarning `json:"warning,omitempty"`
3774
3775	// ServerResponse contains the HTTP response code and headers from the
3776	// server.
3777	googleapi.ServerResponse `json:"-"`
3778
3779	// ForceSendFields is a list of field names (e.g. "Id") to
3780	// unconditionally include in API requests. By default, fields with
3781	// empty values are omitted from API requests. However, any non-pointer,
3782	// non-interface field appearing in ForceSendFields will be sent to the
3783	// server regardless of whether the field is empty or not. This may be
3784	// used to include empty fields in Patch requests.
3785	ForceSendFields []string `json:"-"`
3786
3787	// NullFields is a list of field names (e.g. "Id") to include in API
3788	// requests with the JSON null value. By default, fields with empty
3789	// values are omitted from API requests. However, any field with an
3790	// empty value appearing in NullFields will be sent to the server as
3791	// null. It is an error if a field in this list has a non-empty value.
3792	// This may be used to include null fields in Patch requests.
3793	NullFields []string `json:"-"`
3794}
3795
3796func (s *BackendServiceList) MarshalJSON() ([]byte, error) {
3797	type NoMethod BackendServiceList
3798	raw := NoMethod(*s)
3799	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3800}
3801
3802// BackendServiceListWarning: [Output Only] Informational warning
3803// message.
3804type BackendServiceListWarning struct {
3805	// Code: [Output Only] A warning code, if applicable. For example,
3806	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3807	// the response.
3808	//
3809	// Possible values:
3810	//   "CLEANUP_FAILED"
3811	//   "DEPRECATED_RESOURCE_USED"
3812	//   "DEPRECATED_TYPE_USED"
3813	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3814	//   "EXPERIMENTAL_TYPE_USED"
3815	//   "EXTERNAL_API_WARNING"
3816	//   "FIELD_VALUE_OVERRIDEN"
3817	//   "INJECTED_KERNELS_DEPRECATED"
3818	//   "MISSING_TYPE_DEPENDENCY"
3819	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3820	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3821	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3822	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3823	//   "NEXT_HOP_NOT_RUNNING"
3824	//   "NOT_CRITICAL_ERROR"
3825	//   "NO_RESULTS_ON_PAGE"
3826	//   "REQUIRED_TOS_AGREEMENT"
3827	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3828	//   "RESOURCE_NOT_DELETED"
3829	//   "SCHEMA_VALIDATION_IGNORED"
3830	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3831	//   "UNDECLARED_PROPERTIES"
3832	//   "UNREACHABLE"
3833	Code string `json:"code,omitempty"`
3834
3835	// Data: [Output Only] Metadata about this warning in key: value format.
3836	// For example:
3837	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3838	Data []*BackendServiceListWarningData `json:"data,omitempty"`
3839
3840	// Message: [Output Only] A human-readable description of the warning
3841	// code.
3842	Message string `json:"message,omitempty"`
3843
3844	// ForceSendFields is a list of field names (e.g. "Code") to
3845	// unconditionally include in API requests. By default, fields with
3846	// empty values are omitted from API requests. However, any non-pointer,
3847	// non-interface field appearing in ForceSendFields will be sent to the
3848	// server regardless of whether the field is empty or not. This may be
3849	// used to include empty fields in Patch requests.
3850	ForceSendFields []string `json:"-"`
3851
3852	// NullFields is a list of field names (e.g. "Code") to include in API
3853	// requests with the JSON null value. By default, fields with empty
3854	// values are omitted from API requests. However, any field with an
3855	// empty value appearing in NullFields will be sent to the server as
3856	// null. It is an error if a field in this list has a non-empty value.
3857	// This may be used to include null fields in Patch requests.
3858	NullFields []string `json:"-"`
3859}
3860
3861func (s *BackendServiceListWarning) MarshalJSON() ([]byte, error) {
3862	type NoMethod BackendServiceListWarning
3863	raw := NoMethod(*s)
3864	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3865}
3866
3867type BackendServiceListWarningData struct {
3868	// Key: [Output Only] A key that provides more detail on the warning
3869	// being returned. For example, for warnings where there are no results
3870	// in a list request for a particular zone, this key might be scope and
3871	// the key value might be the zone name. Other examples might be a key
3872	// indicating a deprecated resource and a suggested replacement, or a
3873	// warning about invalid network settings (for example, if an instance
3874	// attempts to perform IP forwarding but is not enabled for IP
3875	// forwarding).
3876	Key string `json:"key,omitempty"`
3877
3878	// Value: [Output Only] A warning data value corresponding to the key.
3879	Value string `json:"value,omitempty"`
3880
3881	// ForceSendFields is a list of field names (e.g. "Key") to
3882	// unconditionally include in API requests. By default, fields with
3883	// empty values are omitted from API requests. However, any non-pointer,
3884	// non-interface field appearing in ForceSendFields will be sent to the
3885	// server regardless of whether the field is empty or not. This may be
3886	// used to include empty fields in Patch requests.
3887	ForceSendFields []string `json:"-"`
3888
3889	// NullFields is a list of field names (e.g. "Key") to include in API
3890	// requests with the JSON null value. By default, fields with empty
3891	// values are omitted from API requests. However, any field with an
3892	// empty value appearing in NullFields will be sent to the server as
3893	// null. It is an error if a field in this list has a non-empty value.
3894	// This may be used to include null fields in Patch requests.
3895	NullFields []string `json:"-"`
3896}
3897
3898func (s *BackendServiceListWarningData) MarshalJSON() ([]byte, error) {
3899	type NoMethod BackendServiceListWarningData
3900	raw := NoMethod(*s)
3901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3902}
3903
3904type BackendServicesScopedList struct {
3905	// BackendServices: A list of BackendServices contained in this scope.
3906	BackendServices []*BackendService `json:"backendServices,omitempty"`
3907
3908	// Warning: Informational warning which replaces the list of backend
3909	// services when the list is empty.
3910	Warning *BackendServicesScopedListWarning `json:"warning,omitempty"`
3911
3912	// ForceSendFields is a list of field names (e.g. "BackendServices") to
3913	// unconditionally include in API requests. By default, fields with
3914	// empty values are omitted from API requests. However, any non-pointer,
3915	// non-interface field appearing in ForceSendFields will be sent to the
3916	// server regardless of whether the field is empty or not. This may be
3917	// used to include empty fields in Patch requests.
3918	ForceSendFields []string `json:"-"`
3919
3920	// NullFields is a list of field names (e.g. "BackendServices") to
3921	// include in API requests with the JSON null value. By default, fields
3922	// with empty values are omitted from API requests. However, any field
3923	// with an empty value appearing in NullFields will be sent to the
3924	// server as null. It is an error if a field in this list has a
3925	// non-empty value. This may be used to include null fields in Patch
3926	// requests.
3927	NullFields []string `json:"-"`
3928}
3929
3930func (s *BackendServicesScopedList) MarshalJSON() ([]byte, error) {
3931	type NoMethod BackendServicesScopedList
3932	raw := NoMethod(*s)
3933	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3934}
3935
3936// BackendServicesScopedListWarning: Informational warning which
3937// replaces the list of backend services when the list is empty.
3938type BackendServicesScopedListWarning struct {
3939	// Code: [Output Only] A warning code, if applicable. For example,
3940	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3941	// the response.
3942	//
3943	// Possible values:
3944	//   "CLEANUP_FAILED"
3945	//   "DEPRECATED_RESOURCE_USED"
3946	//   "DEPRECATED_TYPE_USED"
3947	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3948	//   "EXPERIMENTAL_TYPE_USED"
3949	//   "EXTERNAL_API_WARNING"
3950	//   "FIELD_VALUE_OVERRIDEN"
3951	//   "INJECTED_KERNELS_DEPRECATED"
3952	//   "MISSING_TYPE_DEPENDENCY"
3953	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3954	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3955	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3956	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3957	//   "NEXT_HOP_NOT_RUNNING"
3958	//   "NOT_CRITICAL_ERROR"
3959	//   "NO_RESULTS_ON_PAGE"
3960	//   "REQUIRED_TOS_AGREEMENT"
3961	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3962	//   "RESOURCE_NOT_DELETED"
3963	//   "SCHEMA_VALIDATION_IGNORED"
3964	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3965	//   "UNDECLARED_PROPERTIES"
3966	//   "UNREACHABLE"
3967	Code string `json:"code,omitempty"`
3968
3969	// Data: [Output Only] Metadata about this warning in key: value format.
3970	// For example:
3971	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3972	Data []*BackendServicesScopedListWarningData `json:"data,omitempty"`
3973
3974	// Message: [Output Only] A human-readable description of the warning
3975	// code.
3976	Message string `json:"message,omitempty"`
3977
3978	// ForceSendFields is a list of field names (e.g. "Code") to
3979	// unconditionally include in API requests. By default, fields with
3980	// empty values are omitted from API requests. However, any non-pointer,
3981	// non-interface field appearing in ForceSendFields will be sent to the
3982	// server regardless of whether the field is empty or not. This may be
3983	// used to include empty fields in Patch requests.
3984	ForceSendFields []string `json:"-"`
3985
3986	// NullFields is a list of field names (e.g. "Code") to include in API
3987	// requests with the JSON null value. By default, fields with empty
3988	// values are omitted from API requests. However, any field with an
3989	// empty value appearing in NullFields will be sent to the server as
3990	// null. It is an error if a field in this list has a non-empty value.
3991	// This may be used to include null fields in Patch requests.
3992	NullFields []string `json:"-"`
3993}
3994
3995func (s *BackendServicesScopedListWarning) MarshalJSON() ([]byte, error) {
3996	type NoMethod BackendServicesScopedListWarning
3997	raw := NoMethod(*s)
3998	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3999}
4000
4001type BackendServicesScopedListWarningData struct {
4002	// Key: [Output Only] A key that provides more detail on the warning
4003	// being returned. For example, for warnings where there are no results
4004	// in a list request for a particular zone, this key might be scope and
4005	// the key value might be the zone name. Other examples might be a key
4006	// indicating a deprecated resource and a suggested replacement, or a
4007	// warning about invalid network settings (for example, if an instance
4008	// attempts to perform IP forwarding but is not enabled for IP
4009	// forwarding).
4010	Key string `json:"key,omitempty"`
4011
4012	// Value: [Output Only] A warning data value corresponding to the key.
4013	Value string `json:"value,omitempty"`
4014
4015	// ForceSendFields is a list of field names (e.g. "Key") to
4016	// unconditionally include in API requests. By default, fields with
4017	// empty values are omitted from API requests. However, any non-pointer,
4018	// non-interface field appearing in ForceSendFields will be sent to the
4019	// server regardless of whether the field is empty or not. This may be
4020	// used to include empty fields in Patch requests.
4021	ForceSendFields []string `json:"-"`
4022
4023	// NullFields is a list of field names (e.g. "Key") to include in API
4024	// requests with the JSON null value. By default, fields with empty
4025	// values are omitted from API requests. However, any field with an
4026	// empty value appearing in NullFields will be sent to the server as
4027	// null. It is an error if a field in this list has a non-empty value.
4028	// This may be used to include null fields in Patch requests.
4029	NullFields []string `json:"-"`
4030}
4031
4032func (s *BackendServicesScopedListWarningData) MarshalJSON() ([]byte, error) {
4033	type NoMethod BackendServicesScopedListWarningData
4034	raw := NoMethod(*s)
4035	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4036}
4037
4038type CacheInvalidationRule struct {
4039	// Host: If set, this invalidation rule will only apply to requests with
4040	// a Host header matching host.
4041	Host string `json:"host,omitempty"`
4042
4043	Path string `json:"path,omitempty"`
4044
4045	// ForceSendFields is a list of field names (e.g. "Host") to
4046	// unconditionally include in API requests. By default, fields with
4047	// empty values are omitted from API requests. However, any non-pointer,
4048	// non-interface field appearing in ForceSendFields will be sent to the
4049	// server regardless of whether the field is empty or not. This may be
4050	// used to include empty fields in Patch requests.
4051	ForceSendFields []string `json:"-"`
4052
4053	// NullFields is a list of field names (e.g. "Host") to include in API
4054	// requests with the JSON null value. By default, fields with empty
4055	// values are omitted from API requests. However, any field with an
4056	// empty value appearing in NullFields will be sent to the server as
4057	// null. It is an error if a field in this list has a non-empty value.
4058	// This may be used to include null fields in Patch requests.
4059	NullFields []string `json:"-"`
4060}
4061
4062func (s *CacheInvalidationRule) MarshalJSON() ([]byte, error) {
4063	type NoMethod CacheInvalidationRule
4064	raw := NoMethod(*s)
4065	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4066}
4067
4068// CacheKeyPolicy: Message containing what to include in the cache key
4069// for a request for Cloud CDN.
4070type CacheKeyPolicy struct {
4071	// IncludeHost: If true, requests to different hosts will be cached
4072	// separately.
4073	IncludeHost bool `json:"includeHost,omitempty"`
4074
4075	// IncludeProtocol: If true, http and https requests will be cached
4076	// separately.
4077	IncludeProtocol bool `json:"includeProtocol,omitempty"`
4078
4079	// IncludeQueryString: If true, include query string parameters in the
4080	// cache key according to query_string_whitelist and
4081	// query_string_blacklist. If neither is set, the entire query string
4082	// will be included. If false, the query string will be excluded from
4083	// the cache key entirely.
4084	IncludeQueryString bool `json:"includeQueryString,omitempty"`
4085
4086	// QueryStringBlacklist: Names of query string parameters to exclude in
4087	// cache keys. All other parameters will be included. Either specify
4088	// query_string_whitelist or query_string_blacklist, not both. '&' and
4089	// '=' will be percent encoded and not treated as delimiters.
4090	QueryStringBlacklist []string `json:"queryStringBlacklist,omitempty"`
4091
4092	// QueryStringWhitelist: Names of query string parameters to include in
4093	// cache keys. All other parameters will be excluded. Either specify
4094	// query_string_whitelist or query_string_blacklist, not both. '&' and
4095	// '=' will be percent encoded and not treated as delimiters.
4096	QueryStringWhitelist []string `json:"queryStringWhitelist,omitempty"`
4097
4098	// ForceSendFields is a list of field names (e.g. "IncludeHost") to
4099	// unconditionally include in API requests. By default, fields with
4100	// empty values are omitted from API requests. However, any non-pointer,
4101	// non-interface field appearing in ForceSendFields will be sent to the
4102	// server regardless of whether the field is empty or not. This may be
4103	// used to include empty fields in Patch requests.
4104	ForceSendFields []string `json:"-"`
4105
4106	// NullFields is a list of field names (e.g. "IncludeHost") to include
4107	// in API requests with the JSON null value. By default, fields with
4108	// empty values are omitted from API requests. However, any field with
4109	// an empty value appearing in NullFields will be sent to the server as
4110	// null. It is an error if a field in this list has a non-empty value.
4111	// This may be used to include null fields in Patch requests.
4112	NullFields []string `json:"-"`
4113}
4114
4115func (s *CacheKeyPolicy) MarshalJSON() ([]byte, error) {
4116	type NoMethod CacheKeyPolicy
4117	raw := NoMethod(*s)
4118	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4119}
4120
4121// Commitment: Represents a Commitment resource. Creating a Commitment
4122// resource means that you are purchasing a committed use contract with
4123// an explicit start and end time. You can create commitments based on
4124// vCPUs and memory usage and receive discounted rates. For full
4125// details, read Signing Up for Committed Use Discounts.
4126//
4127// Committed use discounts are subject to Google Cloud Platform's
4128// Service Specific Terms. By purchasing a committed use discount, you
4129// agree to these terms. Committed use discounts will not renew, so you
4130// must purchase a new commitment to continue receiving discounts. (==
4131// resource_for beta.commitments ==) (== resource_for v1.commitments ==)
4132type Commitment struct {
4133	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4134	// format.
4135	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4136
4137	// Description: An optional description of this resource. Provide this
4138	// property when you create the resource.
4139	Description string `json:"description,omitempty"`
4140
4141	// EndTimestamp: [Output Only] Commitment end time in RFC3339 text
4142	// format.
4143	EndTimestamp string `json:"endTimestamp,omitempty"`
4144
4145	// Id: [Output Only] The unique identifier for the resource. This
4146	// identifier is defined by the server.
4147	Id uint64 `json:"id,omitempty,string"`
4148
4149	// Kind: [Output Only] Type of the resource. Always compute#commitment
4150	// for commitments.
4151	Kind string `json:"kind,omitempty"`
4152
4153	// Name: Name of the resource. Provided by the client when the resource
4154	// is created. The name must be 1-63 characters long, and comply with
4155	// RFC1035. Specifically, the name must be 1-63 characters long and
4156	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
4157	// the first character must be a lowercase letter, and all following
4158	// characters must be a dash, lowercase letter, or digit, except the
4159	// last character, which cannot be a dash.
4160	Name string `json:"name,omitempty"`
4161
4162	// Plan: The plan for this commitment, which determines duration and
4163	// discount rate. The currently supported plans are TWELVE_MONTH (1
4164	// year), and THIRTY_SIX_MONTH (3 years).
4165	//
4166	// Possible values:
4167	//   "INVALID"
4168	//   "THIRTY_SIX_MONTH"
4169	//   "TWELVE_MONTH"
4170	Plan string `json:"plan,omitempty"`
4171
4172	// Region: [Output Only] URL of the region where this commitment may be
4173	// used.
4174	Region string `json:"region,omitempty"`
4175
4176	// Resources: A list of commitment amounts for particular resources.
4177	// Note that VCPU and MEMORY resource commitments must occur together.
4178	Resources []*ResourceCommitment `json:"resources,omitempty"`
4179
4180	// SelfLink: [Output Only] Server-defined URL for the resource.
4181	SelfLink string `json:"selfLink,omitempty"`
4182
4183	// StartTimestamp: [Output Only] Commitment start time in RFC3339 text
4184	// format.
4185	StartTimestamp string `json:"startTimestamp,omitempty"`
4186
4187	// Status: [Output Only] Status of the commitment with regards to
4188	// eventual expiration (each commitment has an end date defined). One of
4189	// the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
4190	//
4191	// Possible values:
4192	//   "ACTIVE"
4193	//   "CREATING"
4194	//   "EXPIRED"
4195	//   "NOT_YET_ACTIVE"
4196	Status string `json:"status,omitempty"`
4197
4198	// StatusMessage: [Output Only] An optional, human-readable explanation
4199	// of the status.
4200	StatusMessage string `json:"statusMessage,omitempty"`
4201
4202	// ServerResponse contains the HTTP response code and headers from the
4203	// server.
4204	googleapi.ServerResponse `json:"-"`
4205
4206	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
4207	// to unconditionally include in API requests. By default, fields with
4208	// empty values are omitted from API requests. However, any non-pointer,
4209	// non-interface field appearing in ForceSendFields will be sent to the
4210	// server regardless of whether the field is empty or not. This may be
4211	// used to include empty fields in Patch requests.
4212	ForceSendFields []string `json:"-"`
4213
4214	// NullFields is a list of field names (e.g. "CreationTimestamp") to
4215	// include in API requests with the JSON null value. By default, fields
4216	// with empty values are omitted from API requests. However, any field
4217	// with an empty value appearing in NullFields will be sent to the
4218	// server as null. It is an error if a field in this list has a
4219	// non-empty value. This may be used to include null fields in Patch
4220	// requests.
4221	NullFields []string `json:"-"`
4222}
4223
4224func (s *Commitment) MarshalJSON() ([]byte, error) {
4225	type NoMethod Commitment
4226	raw := NoMethod(*s)
4227	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4228}
4229
4230type CommitmentAggregatedList struct {
4231	// Id: [Output Only] Unique identifier for the resource; defined by the
4232	// server.
4233	Id string `json:"id,omitempty"`
4234
4235	// Items: A list of CommitmentsScopedList resources.
4236	Items map[string]CommitmentsScopedList `json:"items,omitempty"`
4237
4238	// Kind: [Output Only] Type of resource. Always
4239	// compute#commitmentAggregatedList for aggregated lists of commitments.
4240	Kind string `json:"kind,omitempty"`
4241
4242	// NextPageToken: [Output Only] This token allows you to get the next
4243	// page of results for list requests. If the number of results is larger
4244	// than maxResults, use the nextPageToken as a value for the query
4245	// parameter pageToken in the next list request. Subsequent list
4246	// requests will have their own nextPageToken to continue paging through
4247	// the results.
4248	NextPageToken string `json:"nextPageToken,omitempty"`
4249
4250	// SelfLink: [Output Only] Server-defined URL for this resource.
4251	SelfLink string `json:"selfLink,omitempty"`
4252
4253	// Warning: [Output Only] Informational warning message.
4254	Warning *CommitmentAggregatedListWarning `json:"warning,omitempty"`
4255
4256	// ServerResponse contains the HTTP response code and headers from the
4257	// server.
4258	googleapi.ServerResponse `json:"-"`
4259
4260	// ForceSendFields is a list of field names (e.g. "Id") to
4261	// unconditionally include in API requests. By default, fields with
4262	// empty values are omitted from API requests. However, any non-pointer,
4263	// non-interface field appearing in ForceSendFields will be sent to the
4264	// server regardless of whether the field is empty or not. This may be
4265	// used to include empty fields in Patch requests.
4266	ForceSendFields []string `json:"-"`
4267
4268	// NullFields is a list of field names (e.g. "Id") to include in API
4269	// requests with the JSON null value. By default, fields with empty
4270	// values are omitted from API requests. However, any field with an
4271	// empty value appearing in NullFields will be sent to the server as
4272	// null. It is an error if a field in this list has a non-empty value.
4273	// This may be used to include null fields in Patch requests.
4274	NullFields []string `json:"-"`
4275}
4276
4277func (s *CommitmentAggregatedList) MarshalJSON() ([]byte, error) {
4278	type NoMethod CommitmentAggregatedList
4279	raw := NoMethod(*s)
4280	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4281}
4282
4283// CommitmentAggregatedListWarning: [Output Only] Informational warning
4284// message.
4285type CommitmentAggregatedListWarning struct {
4286	// Code: [Output Only] A warning code, if applicable. For example,
4287	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4288	// the response.
4289	//
4290	// Possible values:
4291	//   "CLEANUP_FAILED"
4292	//   "DEPRECATED_RESOURCE_USED"
4293	//   "DEPRECATED_TYPE_USED"
4294	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4295	//   "EXPERIMENTAL_TYPE_USED"
4296	//   "EXTERNAL_API_WARNING"
4297	//   "FIELD_VALUE_OVERRIDEN"
4298	//   "INJECTED_KERNELS_DEPRECATED"
4299	//   "MISSING_TYPE_DEPENDENCY"
4300	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4301	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4302	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4303	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4304	//   "NEXT_HOP_NOT_RUNNING"
4305	//   "NOT_CRITICAL_ERROR"
4306	//   "NO_RESULTS_ON_PAGE"
4307	//   "REQUIRED_TOS_AGREEMENT"
4308	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4309	//   "RESOURCE_NOT_DELETED"
4310	//   "SCHEMA_VALIDATION_IGNORED"
4311	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4312	//   "UNDECLARED_PROPERTIES"
4313	//   "UNREACHABLE"
4314	Code string `json:"code,omitempty"`
4315
4316	// Data: [Output Only] Metadata about this warning in key: value format.
4317	// For example:
4318	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4319	Data []*CommitmentAggregatedListWarningData `json:"data,omitempty"`
4320
4321	// Message: [Output Only] A human-readable description of the warning
4322	// code.
4323	Message string `json:"message,omitempty"`
4324
4325	// ForceSendFields is a list of field names (e.g. "Code") to
4326	// unconditionally include in API requests. By default, fields with
4327	// empty values are omitted from API requests. However, any non-pointer,
4328	// non-interface field appearing in ForceSendFields will be sent to the
4329	// server regardless of whether the field is empty or not. This may be
4330	// used to include empty fields in Patch requests.
4331	ForceSendFields []string `json:"-"`
4332
4333	// NullFields is a list of field names (e.g. "Code") to include in API
4334	// requests with the JSON null value. By default, fields with empty
4335	// values are omitted from API requests. However, any field with an
4336	// empty value appearing in NullFields will be sent to the server as
4337	// null. It is an error if a field in this list has a non-empty value.
4338	// This may be used to include null fields in Patch requests.
4339	NullFields []string `json:"-"`
4340}
4341
4342func (s *CommitmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
4343	type NoMethod CommitmentAggregatedListWarning
4344	raw := NoMethod(*s)
4345	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4346}
4347
4348type CommitmentAggregatedListWarningData struct {
4349	// Key: [Output Only] A key that provides more detail on the warning
4350	// being returned. For example, for warnings where there are no results
4351	// in a list request for a particular zone, this key might be scope and
4352	// the key value might be the zone name. Other examples might be a key
4353	// indicating a deprecated resource and a suggested replacement, or a
4354	// warning about invalid network settings (for example, if an instance
4355	// attempts to perform IP forwarding but is not enabled for IP
4356	// forwarding).
4357	Key string `json:"key,omitempty"`
4358
4359	// Value: [Output Only] A warning data value corresponding to the key.
4360	Value string `json:"value,omitempty"`
4361
4362	// ForceSendFields is a list of field names (e.g. "Key") to
4363	// unconditionally include in API requests. By default, fields with
4364	// empty values are omitted from API requests. However, any non-pointer,
4365	// non-interface field appearing in ForceSendFields will be sent to the
4366	// server regardless of whether the field is empty or not. This may be
4367	// used to include empty fields in Patch requests.
4368	ForceSendFields []string `json:"-"`
4369
4370	// NullFields is a list of field names (e.g. "Key") to include in API
4371	// requests with the JSON null value. By default, fields with empty
4372	// values are omitted from API requests. However, any field with an
4373	// empty value appearing in NullFields will be sent to the server as
4374	// null. It is an error if a field in this list has a non-empty value.
4375	// This may be used to include null fields in Patch requests.
4376	NullFields []string `json:"-"`
4377}
4378
4379func (s *CommitmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
4380	type NoMethod CommitmentAggregatedListWarningData
4381	raw := NoMethod(*s)
4382	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4383}
4384
4385// CommitmentList: Contains a list of Commitment resources.
4386type CommitmentList struct {
4387	// Id: [Output Only] Unique identifier for the resource; defined by the
4388	// server.
4389	Id string `json:"id,omitempty"`
4390
4391	// Items: A list of Commitment resources.
4392	Items []*Commitment `json:"items,omitempty"`
4393
4394	// Kind: [Output Only] Type of resource. Always compute#commitmentList
4395	// for lists of commitments.
4396	Kind string `json:"kind,omitempty"`
4397
4398	// NextPageToken: [Output Only] This token allows you to get the next
4399	// page of results for list requests. If the number of results is larger
4400	// than maxResults, use the nextPageToken as a value for the query
4401	// parameter pageToken in the next list request. Subsequent list
4402	// requests will have their own nextPageToken to continue paging through
4403	// the results.
4404	NextPageToken string `json:"nextPageToken,omitempty"`
4405
4406	// SelfLink: [Output Only] Server-defined URL for this resource.
4407	SelfLink string `json:"selfLink,omitempty"`
4408
4409	// Warning: [Output Only] Informational warning message.
4410	Warning *CommitmentListWarning `json:"warning,omitempty"`
4411
4412	// ServerResponse contains the HTTP response code and headers from the
4413	// server.
4414	googleapi.ServerResponse `json:"-"`
4415
4416	// ForceSendFields is a list of field names (e.g. "Id") to
4417	// unconditionally include in API requests. By default, fields with
4418	// empty values are omitted from API requests. However, any non-pointer,
4419	// non-interface field appearing in ForceSendFields will be sent to the
4420	// server regardless of whether the field is empty or not. This may be
4421	// used to include empty fields in Patch requests.
4422	ForceSendFields []string `json:"-"`
4423
4424	// NullFields is a list of field names (e.g. "Id") to include in API
4425	// requests with the JSON null value. By default, fields with empty
4426	// values are omitted from API requests. However, any field with an
4427	// empty value appearing in NullFields will be sent to the server as
4428	// null. It is an error if a field in this list has a non-empty value.
4429	// This may be used to include null fields in Patch requests.
4430	NullFields []string `json:"-"`
4431}
4432
4433func (s *CommitmentList) MarshalJSON() ([]byte, error) {
4434	type NoMethod CommitmentList
4435	raw := NoMethod(*s)
4436	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4437}
4438
4439// CommitmentListWarning: [Output Only] Informational warning message.
4440type CommitmentListWarning struct {
4441	// Code: [Output Only] A warning code, if applicable. For example,
4442	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4443	// the response.
4444	//
4445	// Possible values:
4446	//   "CLEANUP_FAILED"
4447	//   "DEPRECATED_RESOURCE_USED"
4448	//   "DEPRECATED_TYPE_USED"
4449	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4450	//   "EXPERIMENTAL_TYPE_USED"
4451	//   "EXTERNAL_API_WARNING"
4452	//   "FIELD_VALUE_OVERRIDEN"
4453	//   "INJECTED_KERNELS_DEPRECATED"
4454	//   "MISSING_TYPE_DEPENDENCY"
4455	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4456	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4457	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4458	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4459	//   "NEXT_HOP_NOT_RUNNING"
4460	//   "NOT_CRITICAL_ERROR"
4461	//   "NO_RESULTS_ON_PAGE"
4462	//   "REQUIRED_TOS_AGREEMENT"
4463	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4464	//   "RESOURCE_NOT_DELETED"
4465	//   "SCHEMA_VALIDATION_IGNORED"
4466	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4467	//   "UNDECLARED_PROPERTIES"
4468	//   "UNREACHABLE"
4469	Code string `json:"code,omitempty"`
4470
4471	// Data: [Output Only] Metadata about this warning in key: value format.
4472	// For example:
4473	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4474	Data []*CommitmentListWarningData `json:"data,omitempty"`
4475
4476	// Message: [Output Only] A human-readable description of the warning
4477	// code.
4478	Message string `json:"message,omitempty"`
4479
4480	// ForceSendFields is a list of field names (e.g. "Code") to
4481	// unconditionally include in API requests. By default, fields with
4482	// empty values are omitted from API requests. However, any non-pointer,
4483	// non-interface field appearing in ForceSendFields will be sent to the
4484	// server regardless of whether the field is empty or not. This may be
4485	// used to include empty fields in Patch requests.
4486	ForceSendFields []string `json:"-"`
4487
4488	// NullFields is a list of field names (e.g. "Code") to include in API
4489	// requests with the JSON null value. By default, fields with empty
4490	// values are omitted from API requests. However, any field with an
4491	// empty value appearing in NullFields will be sent to the server as
4492	// null. It is an error if a field in this list has a non-empty value.
4493	// This may be used to include null fields in Patch requests.
4494	NullFields []string `json:"-"`
4495}
4496
4497func (s *CommitmentListWarning) MarshalJSON() ([]byte, error) {
4498	type NoMethod CommitmentListWarning
4499	raw := NoMethod(*s)
4500	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4501}
4502
4503type CommitmentListWarningData struct {
4504	// Key: [Output Only] A key that provides more detail on the warning
4505	// being returned. For example, for warnings where there are no results
4506	// in a list request for a particular zone, this key might be scope and
4507	// the key value might be the zone name. Other examples might be a key
4508	// indicating a deprecated resource and a suggested replacement, or a
4509	// warning about invalid network settings (for example, if an instance
4510	// attempts to perform IP forwarding but is not enabled for IP
4511	// forwarding).
4512	Key string `json:"key,omitempty"`
4513
4514	// Value: [Output Only] A warning data value corresponding to the key.
4515	Value string `json:"value,omitempty"`
4516
4517	// ForceSendFields is a list of field names (e.g. "Key") to
4518	// unconditionally include in API requests. By default, fields with
4519	// empty values are omitted from API requests. However, any non-pointer,
4520	// non-interface field appearing in ForceSendFields will be sent to the
4521	// server regardless of whether the field is empty or not. This may be
4522	// used to include empty fields in Patch requests.
4523	ForceSendFields []string `json:"-"`
4524
4525	// NullFields is a list of field names (e.g. "Key") to include in API
4526	// requests with the JSON null value. By default, fields with empty
4527	// values are omitted from API requests. However, any field with an
4528	// empty value appearing in NullFields will be sent to the server as
4529	// null. It is an error if a field in this list has a non-empty value.
4530	// This may be used to include null fields in Patch requests.
4531	NullFields []string `json:"-"`
4532}
4533
4534func (s *CommitmentListWarningData) MarshalJSON() ([]byte, error) {
4535	type NoMethod CommitmentListWarningData
4536	raw := NoMethod(*s)
4537	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4538}
4539
4540type CommitmentsScopedList struct {
4541	// Commitments: [Output Only] A list of commitments contained in this
4542	// scope.
4543	Commitments []*Commitment `json:"commitments,omitempty"`
4544
4545	// Warning: [Output Only] Informational warning which replaces the list
4546	// of commitments when the list is empty.
4547	Warning *CommitmentsScopedListWarning `json:"warning,omitempty"`
4548
4549	// ForceSendFields is a list of field names (e.g. "Commitments") to
4550	// unconditionally include in API requests. By default, fields with
4551	// empty values are omitted from API requests. However, any non-pointer,
4552	// non-interface field appearing in ForceSendFields will be sent to the
4553	// server regardless of whether the field is empty or not. This may be
4554	// used to include empty fields in Patch requests.
4555	ForceSendFields []string `json:"-"`
4556
4557	// NullFields is a list of field names (e.g. "Commitments") to include
4558	// in API requests with the JSON null value. By default, fields with
4559	// empty values are omitted from API requests. However, any field with
4560	// an empty value appearing in NullFields will be sent to the server as
4561	// null. It is an error if a field in this list has a non-empty value.
4562	// This may be used to include null fields in Patch requests.
4563	NullFields []string `json:"-"`
4564}
4565
4566func (s *CommitmentsScopedList) MarshalJSON() ([]byte, error) {
4567	type NoMethod CommitmentsScopedList
4568	raw := NoMethod(*s)
4569	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4570}
4571
4572// CommitmentsScopedListWarning: [Output Only] Informational warning
4573// which replaces the list of commitments when the list is empty.
4574type CommitmentsScopedListWarning struct {
4575	// Code: [Output Only] A warning code, if applicable. For example,
4576	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4577	// the response.
4578	//
4579	// Possible values:
4580	//   "CLEANUP_FAILED"
4581	//   "DEPRECATED_RESOURCE_USED"
4582	//   "DEPRECATED_TYPE_USED"
4583	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4584	//   "EXPERIMENTAL_TYPE_USED"
4585	//   "EXTERNAL_API_WARNING"
4586	//   "FIELD_VALUE_OVERRIDEN"
4587	//   "INJECTED_KERNELS_DEPRECATED"
4588	//   "MISSING_TYPE_DEPENDENCY"
4589	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4590	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4591	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4592	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4593	//   "NEXT_HOP_NOT_RUNNING"
4594	//   "NOT_CRITICAL_ERROR"
4595	//   "NO_RESULTS_ON_PAGE"
4596	//   "REQUIRED_TOS_AGREEMENT"
4597	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4598	//   "RESOURCE_NOT_DELETED"
4599	//   "SCHEMA_VALIDATION_IGNORED"
4600	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4601	//   "UNDECLARED_PROPERTIES"
4602	//   "UNREACHABLE"
4603	Code string `json:"code,omitempty"`
4604
4605	// Data: [Output Only] Metadata about this warning in key: value format.
4606	// For example:
4607	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4608	Data []*CommitmentsScopedListWarningData `json:"data,omitempty"`
4609
4610	// Message: [Output Only] A human-readable description of the warning
4611	// code.
4612	Message string `json:"message,omitempty"`
4613
4614	// ForceSendFields is a list of field names (e.g. "Code") to
4615	// unconditionally include in API requests. By default, fields with
4616	// empty values are omitted from API requests. However, any non-pointer,
4617	// non-interface field appearing in ForceSendFields will be sent to the
4618	// server regardless of whether the field is empty or not. This may be
4619	// used to include empty fields in Patch requests.
4620	ForceSendFields []string `json:"-"`
4621
4622	// NullFields is a list of field names (e.g. "Code") to include in API
4623	// requests with the JSON null value. By default, fields with empty
4624	// values are omitted from API requests. However, any field with an
4625	// empty value appearing in NullFields will be sent to the server as
4626	// null. It is an error if a field in this list has a non-empty value.
4627	// This may be used to include null fields in Patch requests.
4628	NullFields []string `json:"-"`
4629}
4630
4631func (s *CommitmentsScopedListWarning) MarshalJSON() ([]byte, error) {
4632	type NoMethod CommitmentsScopedListWarning
4633	raw := NoMethod(*s)
4634	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4635}
4636
4637type CommitmentsScopedListWarningData struct {
4638	// Key: [Output Only] A key that provides more detail on the warning
4639	// being returned. For example, for warnings where there are no results
4640	// in a list request for a particular zone, this key might be scope and
4641	// the key value might be the zone name. Other examples might be a key
4642	// indicating a deprecated resource and a suggested replacement, or a
4643	// warning about invalid network settings (for example, if an instance
4644	// attempts to perform IP forwarding but is not enabled for IP
4645	// forwarding).
4646	Key string `json:"key,omitempty"`
4647
4648	// Value: [Output Only] A warning data value corresponding to the key.
4649	Value string `json:"value,omitempty"`
4650
4651	// ForceSendFields is a list of field names (e.g. "Key") to
4652	// unconditionally include in API requests. By default, fields with
4653	// empty values are omitted from API requests. However, any non-pointer,
4654	// non-interface field appearing in ForceSendFields will be sent to the
4655	// server regardless of whether the field is empty or not. This may be
4656	// used to include empty fields in Patch requests.
4657	ForceSendFields []string `json:"-"`
4658
4659	// NullFields is a list of field names (e.g. "Key") to include in API
4660	// requests with the JSON null value. By default, fields with empty
4661	// values are omitted from API requests. However, any field with an
4662	// empty value appearing in NullFields will be sent to the server as
4663	// null. It is an error if a field in this list has a non-empty value.
4664	// This may be used to include null fields in Patch requests.
4665	NullFields []string `json:"-"`
4666}
4667
4668func (s *CommitmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
4669	type NoMethod CommitmentsScopedListWarningData
4670	raw := NoMethod(*s)
4671	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4672}
4673
4674// ConnectionDraining: Message containing connection draining
4675// configuration.
4676type ConnectionDraining struct {
4677	// DrainingTimeoutSec: Time for which instance will be drained (not
4678	// accept new connections, but still work to finish started).
4679	DrainingTimeoutSec int64 `json:"drainingTimeoutSec,omitempty"`
4680
4681	// ForceSendFields is a list of field names (e.g. "DrainingTimeoutSec")
4682	// to unconditionally include in API requests. By default, fields with
4683	// empty values are omitted from API requests. However, any non-pointer,
4684	// non-interface field appearing in ForceSendFields will be sent to the
4685	// server regardless of whether the field is empty or not. This may be
4686	// used to include empty fields in Patch requests.
4687	ForceSendFields []string `json:"-"`
4688
4689	// NullFields is a list of field names (e.g. "DrainingTimeoutSec") to
4690	// include in API requests with the JSON null value. By default, fields
4691	// with empty values are omitted from API requests. However, any field
4692	// with an empty value appearing in NullFields will be sent to the
4693	// server as null. It is an error if a field in this list has a
4694	// non-empty value. This may be used to include null fields in Patch
4695	// requests.
4696	NullFields []string `json:"-"`
4697}
4698
4699func (s *ConnectionDraining) MarshalJSON() ([]byte, error) {
4700	type NoMethod ConnectionDraining
4701	raw := NoMethod(*s)
4702	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4703}
4704
4705// CustomerEncryptionKey: Represents a customer-supplied encryption key
4706type CustomerEncryptionKey struct {
4707	// RawKey: Specifies a 256-bit customer-supplied encryption key, encoded
4708	// in RFC 4648 base64 to either encrypt or decrypt this resource.
4709	RawKey string `json:"rawKey,omitempty"`
4710
4711	// Sha256: [Output only] The RFC 4648 base64 encoded SHA-256 hash of the
4712	// customer-supplied encryption key that protects this resource.
4713	Sha256 string `json:"sha256,omitempty"`
4714
4715	// ForceSendFields is a list of field names (e.g. "RawKey") to
4716	// unconditionally include in API requests. By default, fields with
4717	// empty values are omitted from API requests. However, any non-pointer,
4718	// non-interface field appearing in ForceSendFields will be sent to the
4719	// server regardless of whether the field is empty or not. This may be
4720	// used to include empty fields in Patch requests.
4721	ForceSendFields []string `json:"-"`
4722
4723	// NullFields is a list of field names (e.g. "RawKey") to include in API
4724	// requests with the JSON null value. By default, fields with empty
4725	// values are omitted from API requests. However, any field with an
4726	// empty value appearing in NullFields will be sent to the server as
4727	// null. It is an error if a field in this list has a non-empty value.
4728	// This may be used to include null fields in Patch requests.
4729	NullFields []string `json:"-"`
4730}
4731
4732func (s *CustomerEncryptionKey) MarshalJSON() ([]byte, error) {
4733	type NoMethod CustomerEncryptionKey
4734	raw := NoMethod(*s)
4735	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4736}
4737
4738type CustomerEncryptionKeyProtectedDisk struct {
4739	// DiskEncryptionKey: Decrypts data associated with the disk with a
4740	// customer-supplied encryption key.
4741	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
4742
4743	// Source: Specifies a valid partial or full URL to an existing
4744	// Persistent Disk resource. This field is only applicable for
4745	// persistent disks.
4746	Source string `json:"source,omitempty"`
4747
4748	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
4749	// to unconditionally include in API requests. By default, fields with
4750	// empty values are omitted from API requests. However, any non-pointer,
4751	// non-interface field appearing in ForceSendFields will be sent to the
4752	// server regardless of whether the field is empty or not. This may be
4753	// used to include empty fields in Patch requests.
4754	ForceSendFields []string `json:"-"`
4755
4756	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to
4757	// include in API requests with the JSON null value. By default, fields
4758	// with empty values are omitted from API requests. However, any field
4759	// with an empty value appearing in NullFields will be sent to the
4760	// server as null. It is an error if a field in this list has a
4761	// non-empty value. This may be used to include null fields in Patch
4762	// requests.
4763	NullFields []string `json:"-"`
4764}
4765
4766func (s *CustomerEncryptionKeyProtectedDisk) MarshalJSON() ([]byte, error) {
4767	type NoMethod CustomerEncryptionKeyProtectedDisk
4768	raw := NoMethod(*s)
4769	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4770}
4771
4772// DeprecationStatus: Deprecation status for a public resource.
4773type DeprecationStatus struct {
4774	// Deleted: An optional RFC3339 timestamp on or after which the state of
4775	// this resource is intended to change to DELETED. This is only
4776	// informational and the status will not change unless the client
4777	// explicitly changes it.
4778	Deleted string `json:"deleted,omitempty"`
4779
4780	// Deprecated: An optional RFC3339 timestamp on or after which the state
4781	// of this resource is intended to change to DEPRECATED. This is only
4782	// informational and the status will not change unless the client
4783	// explicitly changes it.
4784	Deprecated string `json:"deprecated,omitempty"`
4785
4786	// Obsolete: An optional RFC3339 timestamp on or after which the state
4787	// of this resource is intended to change to OBSOLETE. This is only
4788	// informational and the status will not change unless the client
4789	// explicitly changes it.
4790	Obsolete string `json:"obsolete,omitempty"`
4791
4792	// Replacement: The URL of the suggested replacement for a deprecated
4793	// resource. The suggested replacement resource must be the same kind of
4794	// resource as the deprecated resource.
4795	Replacement string `json:"replacement,omitempty"`
4796
4797	// State: The deprecation state of this resource. This can be
4798	// DEPRECATED, OBSOLETE, or DELETED. Operations which create a new
4799	// resource using a DEPRECATED resource will return successfully, but
4800	// with a warning indicating the deprecated resource and recommending
4801	// its replacement. Operations which use OBSOLETE or DELETED resources
4802	// will be rejected and result in an error.
4803	//
4804	// Possible values:
4805	//   "DELETED"
4806	//   "DEPRECATED"
4807	//   "OBSOLETE"
4808	State string `json:"state,omitempty"`
4809
4810	// ForceSendFields is a list of field names (e.g. "Deleted") to
4811	// unconditionally include in API requests. By default, fields with
4812	// empty values are omitted from API requests. However, any non-pointer,
4813	// non-interface field appearing in ForceSendFields will be sent to the
4814	// server regardless of whether the field is empty or not. This may be
4815	// used to include empty fields in Patch requests.
4816	ForceSendFields []string `json:"-"`
4817
4818	// NullFields is a list of field names (e.g. "Deleted") to include in
4819	// API requests with the JSON null value. By default, fields with empty
4820	// values are omitted from API requests. However, any field with an
4821	// empty value appearing in NullFields will be sent to the server as
4822	// null. It is an error if a field in this list has a non-empty value.
4823	// This may be used to include null fields in Patch requests.
4824	NullFields []string `json:"-"`
4825}
4826
4827func (s *DeprecationStatus) MarshalJSON() ([]byte, error) {
4828	type NoMethod DeprecationStatus
4829	raw := NoMethod(*s)
4830	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4831}
4832
4833// Disk: A Disk resource. (== resource_for beta.disks ==) (==
4834// resource_for v1.disks ==)
4835type Disk struct {
4836	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4837	// format.
4838	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4839
4840	// Description: An optional description of this resource. Provide this
4841	// property when you create the resource.
4842	Description string `json:"description,omitempty"`
4843
4844	// DiskEncryptionKey: Encrypts the disk using a customer-supplied
4845	// encryption key.
4846	//
4847	// After you encrypt a disk with a customer-supplied key, you must
4848	// provide the same key if you use the disk later (e.g. to create a disk
4849	// snapshot or an image, or to attach the disk to a virtual
4850	// machine).
4851	//
4852	// Customer-supplied encryption keys do not protect access to metadata
4853	// of the disk.
4854	//
4855	// If you do not provide an encryption key when creating the disk, then
4856	// the disk will be encrypted using an automatically generated key and
4857	// you do not need to provide a key to use the disk later.
4858	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
4859
4860	// GuestOsFeatures: A list of features to enable on the guest operating
4861	// system. Applicable only for bootable images. Read  Enabling guest
4862	// operating system features to see a list of available options.
4863	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
4864
4865	// Id: [Output Only] The unique identifier for the resource. This
4866	// identifier is defined by the server.
4867	Id uint64 `json:"id,omitempty,string"`
4868
4869	// Kind: [Output Only] Type of the resource. Always compute#disk for
4870	// disks.
4871	Kind string `json:"kind,omitempty"`
4872
4873	// LabelFingerprint: A fingerprint for the labels being applied to this
4874	// disk, which is essentially a hash of the labels set used for
4875	// optimistic locking. The fingerprint is initially generated by Compute
4876	// Engine and changes after every request to modify or update labels.
4877	// You must always provide an up-to-date fingerprint hash in order to
4878	// update or change labels.
4879	//
4880	// To see the latest fingerprint, make a get() request to retrieve a
4881	// disk.
4882	LabelFingerprint string `json:"labelFingerprint,omitempty"`
4883
4884	// Labels: Labels to apply to this disk. These can be later modified by
4885	// the setLabels method.
4886	Labels map[string]string `json:"labels,omitempty"`
4887
4888	// LastAttachTimestamp: [Output Only] Last attach timestamp in RFC3339
4889	// text format.
4890	LastAttachTimestamp string `json:"lastAttachTimestamp,omitempty"`
4891
4892	// LastDetachTimestamp: [Output Only] Last detach timestamp in RFC3339
4893	// text format.
4894	LastDetachTimestamp string `json:"lastDetachTimestamp,omitempty"`
4895
4896	// LicenseCodes: Integer license codes indicating which licenses are
4897	// attached to this disk.
4898	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
4899
4900	// Licenses: Any applicable publicly visible licenses.
4901	Licenses []string `json:"licenses,omitempty"`
4902
4903	// Name: Name of the resource. Provided by the client when the resource
4904	// is created. The name must be 1-63 characters long, and comply with
4905	// RFC1035. Specifically, the name must be 1-63 characters long and
4906	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
4907	// the first character must be a lowercase letter, and all following
4908	// characters must be a dash, lowercase letter, or digit, except the
4909	// last character, which cannot be a dash.
4910	Name string `json:"name,omitempty"`
4911
4912	// Options: Internal use only.
4913	Options string `json:"options,omitempty"`
4914
4915	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
4916	// resource.
4917	SelfLink string `json:"selfLink,omitempty"`
4918
4919	// SizeGb: Size of the persistent disk, specified in GB. You can specify
4920	// this field when creating a persistent disk using the sourceImage or
4921	// sourceSnapshot parameter, or specify it alone to create an empty
4922	// persistent disk.
4923	//
4924	// If you specify this field along with sourceImage or sourceSnapshot,
4925	// the value of sizeGb must not be less than the size of the sourceImage
4926	// or the size of the snapshot. Acceptable values are 1 to 65536,
4927	// inclusive.
4928	SizeGb int64 `json:"sizeGb,omitempty,string"`
4929
4930	// SourceImage: The source image used to create this disk. If the source
4931	// image is deleted, this field will not be set.
4932	//
4933	// To create a disk with one of the public operating system images,
4934	// specify the image by its family name. For example, specify
4935	// family/debian-8 to use the latest Debian 8
4936	// image:
4937	// projects/debian-cloud/global/images/family/debian-8
4938	//
4939	//
4940	// Alternati
4941	// vely, use a specific version of a public operating system
4942	// image:
4943	// projects/debian-cloud/global/images/debian-8-jessie-vYYYYMMDD
4944	//
4945	//
4946	//
4947	// To create a disk with a custom image that you created, specify the
4948	// image name in the following
4949	// format:
4950	// global/images/my-custom-image
4951	//
4952	//
4953	// You can also specify a custom image by its image family, which
4954	// returns the latest version of the image in that family. Replace the
4955	// image name with
4956	// family/family-name:
4957	// global/images/family/my-image-family
4958	SourceImage string `json:"sourceImage,omitempty"`
4959
4960	// SourceImageEncryptionKey: The customer-supplied encryption key of the
4961	// source image. Required if the source image is protected by a
4962	// customer-supplied encryption key.
4963	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
4964
4965	// SourceImageId: [Output Only] The ID value of the image used to create
4966	// this disk. This value identifies the exact image that was used to
4967	// create this persistent disk. For example, if you created the
4968	// persistent disk from an image that was later deleted and recreated
4969	// under the same name, the source image ID would identify the exact
4970	// version of the image that was used.
4971	SourceImageId string `json:"sourceImageId,omitempty"`
4972
4973	// SourceSnapshot: The source snapshot used to create this disk. You can
4974	// provide this as a partial or full URL to the resource. For example,
4975	// the following are valid values:
4976	// -
4977	// https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot
4978	// - projects/project/global/snapshots/snapshot
4979	// - global/snapshots/snapshot
4980	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
4981
4982	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
4983	// the source snapshot. Required if the source snapshot is protected by
4984	// a customer-supplied encryption key.
4985	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
4986
4987	// SourceSnapshotId: [Output Only] The unique ID of the snapshot used to
4988	// create this disk. This value identifies the exact snapshot that was
4989	// used to create this persistent disk. For example, if you created the
4990	// persistent disk from a snapshot that was later deleted and recreated
4991	// under the same name, the source snapshot ID would identify the exact
4992	// version of the snapshot that was used.
4993	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
4994
4995	// Status: [Output Only] The status of disk creation.
4996	//
4997	// Possible values:
4998	//   "CREATING"
4999	//   "FAILED"
5000	//   "READY"
5001	//   "RESTORING"
5002	Status string `json:"status,omitempty"`
5003
5004	// Type: URL of the disk type resource describing which disk type to use
5005	// to create the disk. Provide this when creating the disk. For example:
5006	// project/zones/zone/diskTypes/pd-standard or pd-ssd
5007	Type string `json:"type,omitempty"`
5008
5009	// Users: [Output Only] Links to the users of the disk (attached
5010	// instances) in form: project/zones/zone/instances/instance
5011	Users []string `json:"users,omitempty"`
5012
5013	// Zone: [Output Only] URL of the zone where the disk resides. You must
5014	// specify this field as part of the HTTP request URL. It is not
5015	// settable as a field in the request body.
5016	Zone string `json:"zone,omitempty"`
5017
5018	// ServerResponse contains the HTTP response code and headers from the
5019	// server.
5020	googleapi.ServerResponse `json:"-"`
5021
5022	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
5023	// to unconditionally include in API requests. By default, fields with
5024	// empty values are omitted from API requests. However, any non-pointer,
5025	// non-interface field appearing in ForceSendFields will be sent to the
5026	// server regardless of whether the field is empty or not. This may be
5027	// used to include empty fields in Patch requests.
5028	ForceSendFields []string `json:"-"`
5029
5030	// NullFields is a list of field names (e.g. "CreationTimestamp") to
5031	// include in API requests with the JSON null value. By default, fields
5032	// with empty values are omitted from API requests. However, any field
5033	// with an empty value appearing in NullFields will be sent to the
5034	// server as null. It is an error if a field in this list has a
5035	// non-empty value. This may be used to include null fields in Patch
5036	// requests.
5037	NullFields []string `json:"-"`
5038}
5039
5040func (s *Disk) MarshalJSON() ([]byte, error) {
5041	type NoMethod Disk
5042	raw := NoMethod(*s)
5043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5044}
5045
5046type DiskAggregatedList struct {
5047	// Id: [Output Only] Unique identifier for the resource; defined by the
5048	// server.
5049	Id string `json:"id,omitempty"`
5050
5051	// Items: A list of DisksScopedList resources.
5052	Items map[string]DisksScopedList `json:"items,omitempty"`
5053
5054	// Kind: [Output Only] Type of resource. Always
5055	// compute#diskAggregatedList for aggregated lists of persistent disks.
5056	Kind string `json:"kind,omitempty"`
5057
5058	// NextPageToken: [Output Only] This token allows you to get the next
5059	// page of results for list requests. If the number of results is larger
5060	// than maxResults, use the nextPageToken as a value for the query
5061	// parameter pageToken in the next list request. Subsequent list
5062	// requests will have their own nextPageToken to continue paging through
5063	// the results.
5064	NextPageToken string `json:"nextPageToken,omitempty"`
5065
5066	// SelfLink: [Output Only] Server-defined URL for this resource.
5067	SelfLink string `json:"selfLink,omitempty"`
5068
5069	// Warning: [Output Only] Informational warning message.
5070	Warning *DiskAggregatedListWarning `json:"warning,omitempty"`
5071
5072	// ServerResponse contains the HTTP response code and headers from the
5073	// server.
5074	googleapi.ServerResponse `json:"-"`
5075
5076	// ForceSendFields is a list of field names (e.g. "Id") to
5077	// unconditionally include in API requests. By default, fields with
5078	// empty values are omitted from API requests. However, any non-pointer,
5079	// non-interface field appearing in ForceSendFields will be sent to the
5080	// server regardless of whether the field is empty or not. This may be
5081	// used to include empty fields in Patch requests.
5082	ForceSendFields []string `json:"-"`
5083
5084	// NullFields is a list of field names (e.g. "Id") to include in API
5085	// requests with the JSON null value. By default, fields with empty
5086	// values are omitted from API requests. However, any field with an
5087	// empty value appearing in NullFields will be sent to the server as
5088	// null. It is an error if a field in this list has a non-empty value.
5089	// This may be used to include null fields in Patch requests.
5090	NullFields []string `json:"-"`
5091}
5092
5093func (s *DiskAggregatedList) MarshalJSON() ([]byte, error) {
5094	type NoMethod DiskAggregatedList
5095	raw := NoMethod(*s)
5096	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5097}
5098
5099// DiskAggregatedListWarning: [Output Only] Informational warning
5100// message.
5101type DiskAggregatedListWarning struct {
5102	// Code: [Output Only] A warning code, if applicable. For example,
5103	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5104	// the response.
5105	//
5106	// Possible values:
5107	//   "CLEANUP_FAILED"
5108	//   "DEPRECATED_RESOURCE_USED"
5109	//   "DEPRECATED_TYPE_USED"
5110	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5111	//   "EXPERIMENTAL_TYPE_USED"
5112	//   "EXTERNAL_API_WARNING"
5113	//   "FIELD_VALUE_OVERRIDEN"
5114	//   "INJECTED_KERNELS_DEPRECATED"
5115	//   "MISSING_TYPE_DEPENDENCY"
5116	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5117	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5118	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5119	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5120	//   "NEXT_HOP_NOT_RUNNING"
5121	//   "NOT_CRITICAL_ERROR"
5122	//   "NO_RESULTS_ON_PAGE"
5123	//   "REQUIRED_TOS_AGREEMENT"
5124	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5125	//   "RESOURCE_NOT_DELETED"
5126	//   "SCHEMA_VALIDATION_IGNORED"
5127	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5128	//   "UNDECLARED_PROPERTIES"
5129	//   "UNREACHABLE"
5130	Code string `json:"code,omitempty"`
5131
5132	// Data: [Output Only] Metadata about this warning in key: value format.
5133	// For example:
5134	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5135	Data []*DiskAggregatedListWarningData `json:"data,omitempty"`
5136
5137	// Message: [Output Only] A human-readable description of the warning
5138	// code.
5139	Message string `json:"message,omitempty"`
5140
5141	// ForceSendFields is a list of field names (e.g. "Code") to
5142	// unconditionally include in API requests. By default, fields with
5143	// empty values are omitted from API requests. However, any non-pointer,
5144	// non-interface field appearing in ForceSendFields will be sent to the
5145	// server regardless of whether the field is empty or not. This may be
5146	// used to include empty fields in Patch requests.
5147	ForceSendFields []string `json:"-"`
5148
5149	// NullFields is a list of field names (e.g. "Code") to include in API
5150	// requests with the JSON null value. By default, fields with empty
5151	// values are omitted from API requests. However, any field with an
5152	// empty value appearing in NullFields will be sent to the server as
5153	// null. It is an error if a field in this list has a non-empty value.
5154	// This may be used to include null fields in Patch requests.
5155	NullFields []string `json:"-"`
5156}
5157
5158func (s *DiskAggregatedListWarning) MarshalJSON() ([]byte, error) {
5159	type NoMethod DiskAggregatedListWarning
5160	raw := NoMethod(*s)
5161	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5162}
5163
5164type DiskAggregatedListWarningData struct {
5165	// Key: [Output Only] A key that provides more detail on the warning
5166	// being returned. For example, for warnings where there are no results
5167	// in a list request for a particular zone, this key might be scope and
5168	// the key value might be the zone name. Other examples might be a key
5169	// indicating a deprecated resource and a suggested replacement, or a
5170	// warning about invalid network settings (for example, if an instance
5171	// attempts to perform IP forwarding but is not enabled for IP
5172	// forwarding).
5173	Key string `json:"key,omitempty"`
5174
5175	// Value: [Output Only] A warning data value corresponding to the key.
5176	Value string `json:"value,omitempty"`
5177
5178	// ForceSendFields is a list of field names (e.g. "Key") to
5179	// unconditionally include in API requests. By default, fields with
5180	// empty values are omitted from API requests. However, any non-pointer,
5181	// non-interface field appearing in ForceSendFields will be sent to the
5182	// server regardless of whether the field is empty or not. This may be
5183	// used to include empty fields in Patch requests.
5184	ForceSendFields []string `json:"-"`
5185
5186	// NullFields is a list of field names (e.g. "Key") to include in API
5187	// requests with the JSON null value. By default, fields with empty
5188	// values are omitted from API requests. However, any field with an
5189	// empty value appearing in NullFields will be sent to the server as
5190	// null. It is an error if a field in this list has a non-empty value.
5191	// This may be used to include null fields in Patch requests.
5192	NullFields []string `json:"-"`
5193}
5194
5195func (s *DiskAggregatedListWarningData) MarshalJSON() ([]byte, error) {
5196	type NoMethod DiskAggregatedListWarningData
5197	raw := NoMethod(*s)
5198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5199}
5200
5201// DiskList: A list of Disk resources.
5202type DiskList struct {
5203	// Id: [Output Only] Unique identifier for the resource; defined by the
5204	// server.
5205	Id string `json:"id,omitempty"`
5206
5207	// Items: A list of Disk resources.
5208	Items []*Disk `json:"items,omitempty"`
5209
5210	// Kind: [Output Only] Type of resource. Always compute#diskList for
5211	// lists of disks.
5212	Kind string `json:"kind,omitempty"`
5213
5214	// NextPageToken: [Output Only] This token allows you to get the next
5215	// page of results for list requests. If the number of results is larger
5216	// than maxResults, use the nextPageToken as a value for the query
5217	// parameter pageToken in the next list request. Subsequent list
5218	// requests will have their own nextPageToken to continue paging through
5219	// the results.
5220	NextPageToken string `json:"nextPageToken,omitempty"`
5221
5222	// SelfLink: [Output Only] Server-defined URL for this resource.
5223	SelfLink string `json:"selfLink,omitempty"`
5224
5225	// Warning: [Output Only] Informational warning message.
5226	Warning *DiskListWarning `json:"warning,omitempty"`
5227
5228	// ServerResponse contains the HTTP response code and headers from the
5229	// server.
5230	googleapi.ServerResponse `json:"-"`
5231
5232	// ForceSendFields is a list of field names (e.g. "Id") to
5233	// unconditionally include in API requests. By default, fields with
5234	// empty values are omitted from API requests. However, any non-pointer,
5235	// non-interface field appearing in ForceSendFields will be sent to the
5236	// server regardless of whether the field is empty or not. This may be
5237	// used to include empty fields in Patch requests.
5238	ForceSendFields []string `json:"-"`
5239
5240	// NullFields is a list of field names (e.g. "Id") to include in API
5241	// requests with the JSON null value. By default, fields with empty
5242	// values are omitted from API requests. However, any field with an
5243	// empty value appearing in NullFields will be sent to the server as
5244	// null. It is an error if a field in this list has a non-empty value.
5245	// This may be used to include null fields in Patch requests.
5246	NullFields []string `json:"-"`
5247}
5248
5249func (s *DiskList) MarshalJSON() ([]byte, error) {
5250	type NoMethod DiskList
5251	raw := NoMethod(*s)
5252	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5253}
5254
5255// DiskListWarning: [Output Only] Informational warning message.
5256type DiskListWarning struct {
5257	// Code: [Output Only] A warning code, if applicable. For example,
5258	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5259	// the response.
5260	//
5261	// Possible values:
5262	//   "CLEANUP_FAILED"
5263	//   "DEPRECATED_RESOURCE_USED"
5264	//   "DEPRECATED_TYPE_USED"
5265	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5266	//   "EXPERIMENTAL_TYPE_USED"
5267	//   "EXTERNAL_API_WARNING"
5268	//   "FIELD_VALUE_OVERRIDEN"
5269	//   "INJECTED_KERNELS_DEPRECATED"
5270	//   "MISSING_TYPE_DEPENDENCY"
5271	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5272	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5273	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5274	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5275	//   "NEXT_HOP_NOT_RUNNING"
5276	//   "NOT_CRITICAL_ERROR"
5277	//   "NO_RESULTS_ON_PAGE"
5278	//   "REQUIRED_TOS_AGREEMENT"
5279	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5280	//   "RESOURCE_NOT_DELETED"
5281	//   "SCHEMA_VALIDATION_IGNORED"
5282	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5283	//   "UNDECLARED_PROPERTIES"
5284	//   "UNREACHABLE"
5285	Code string `json:"code,omitempty"`
5286
5287	// Data: [Output Only] Metadata about this warning in key: value format.
5288	// For example:
5289	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5290	Data []*DiskListWarningData `json:"data,omitempty"`
5291
5292	// Message: [Output Only] A human-readable description of the warning
5293	// code.
5294	Message string `json:"message,omitempty"`
5295
5296	// ForceSendFields is a list of field names (e.g. "Code") to
5297	// unconditionally include in API requests. By default, fields with
5298	// empty values are omitted from API requests. However, any non-pointer,
5299	// non-interface field appearing in ForceSendFields will be sent to the
5300	// server regardless of whether the field is empty or not. This may be
5301	// used to include empty fields in Patch requests.
5302	ForceSendFields []string `json:"-"`
5303
5304	// NullFields is a list of field names (e.g. "Code") to include in API
5305	// requests with the JSON null value. By default, fields with empty
5306	// values are omitted from API requests. However, any field with an
5307	// empty value appearing in NullFields will be sent to the server as
5308	// null. It is an error if a field in this list has a non-empty value.
5309	// This may be used to include null fields in Patch requests.
5310	NullFields []string `json:"-"`
5311}
5312
5313func (s *DiskListWarning) MarshalJSON() ([]byte, error) {
5314	type NoMethod DiskListWarning
5315	raw := NoMethod(*s)
5316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5317}
5318
5319type DiskListWarningData struct {
5320	// Key: [Output Only] A key that provides more detail on the warning
5321	// being returned. For example, for warnings where there are no results
5322	// in a list request for a particular zone, this key might be scope and
5323	// the key value might be the zone name. Other examples might be a key
5324	// indicating a deprecated resource and a suggested replacement, or a
5325	// warning about invalid network settings (for example, if an instance
5326	// attempts to perform IP forwarding but is not enabled for IP
5327	// forwarding).
5328	Key string `json:"key,omitempty"`
5329
5330	// Value: [Output Only] A warning data value corresponding to the key.
5331	Value string `json:"value,omitempty"`
5332
5333	// ForceSendFields is a list of field names (e.g. "Key") to
5334	// unconditionally include in API requests. By default, fields with
5335	// empty values are omitted from API requests. However, any non-pointer,
5336	// non-interface field appearing in ForceSendFields will be sent to the
5337	// server regardless of whether the field is empty or not. This may be
5338	// used to include empty fields in Patch requests.
5339	ForceSendFields []string `json:"-"`
5340
5341	// NullFields is a list of field names (e.g. "Key") to include in API
5342	// requests with the JSON null value. By default, fields with empty
5343	// values are omitted from API requests. However, any field with an
5344	// empty value appearing in NullFields will be sent to the server as
5345	// null. It is an error if a field in this list has a non-empty value.
5346	// This may be used to include null fields in Patch requests.
5347	NullFields []string `json:"-"`
5348}
5349
5350func (s *DiskListWarningData) MarshalJSON() ([]byte, error) {
5351	type NoMethod DiskListWarningData
5352	raw := NoMethod(*s)
5353	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5354}
5355
5356type DiskMoveRequest struct {
5357	// DestinationZone: The URL of the destination zone to move the disk.
5358	// This can be a full or partial URL. For example, the following are all
5359	// valid URLs to a zone:
5360	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
5361	//
5362	// - projects/project/zones/zone
5363	// - zones/zone
5364	DestinationZone string `json:"destinationZone,omitempty"`
5365
5366	// TargetDisk: The URL of the target disk to move. This can be a full or
5367	// partial URL. For example, the following are all valid URLs to a disk:
5368	//
5369	// -
5370	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
5371	// - projects/project/zones/zone/disks/disk
5372	// - zones/zone/disks/disk
5373	TargetDisk string `json:"targetDisk,omitempty"`
5374
5375	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
5376	// unconditionally include in API requests. By default, fields with
5377	// empty values are omitted from API requests. However, any non-pointer,
5378	// non-interface field appearing in ForceSendFields will be sent to the
5379	// server regardless of whether the field is empty or not. This may be
5380	// used to include empty fields in Patch requests.
5381	ForceSendFields []string `json:"-"`
5382
5383	// NullFields is a list of field names (e.g. "DestinationZone") to
5384	// include in API requests with the JSON null value. By default, fields
5385	// with empty values are omitted from API requests. However, any field
5386	// with an empty value appearing in NullFields will be sent to the
5387	// server as null. It is an error if a field in this list has a
5388	// non-empty value. This may be used to include null fields in Patch
5389	// requests.
5390	NullFields []string `json:"-"`
5391}
5392
5393func (s *DiskMoveRequest) MarshalJSON() ([]byte, error) {
5394	type NoMethod DiskMoveRequest
5395	raw := NoMethod(*s)
5396	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5397}
5398
5399// DiskType: A DiskType resource. (== resource_for beta.diskTypes ==)
5400// (== resource_for v1.diskTypes ==)
5401type DiskType struct {
5402	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
5403	// format.
5404	CreationTimestamp string `json:"creationTimestamp,omitempty"`
5405
5406	// DefaultDiskSizeGb: [Output Only] Server-defined default disk size in
5407	// GB.
5408	DefaultDiskSizeGb int64 `json:"defaultDiskSizeGb,omitempty,string"`
5409
5410	// Deprecated: [Output Only] The deprecation status associated with this
5411	// disk type.
5412	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
5413
5414	// Description: [Output Only] An optional description of this resource.
5415	Description string `json:"description,omitempty"`
5416
5417	// Id: [Output Only] The unique identifier for the resource. This
5418	// identifier is defined by the server.
5419	Id uint64 `json:"id,omitempty,string"`
5420
5421	// Kind: [Output Only] Type of the resource. Always compute#diskType for
5422	// disk types.
5423	Kind string `json:"kind,omitempty"`
5424
5425	// Name: [Output Only] Name of the resource.
5426	Name string `json:"name,omitempty"`
5427
5428	// SelfLink: [Output Only] Server-defined URL for the resource.
5429	SelfLink string `json:"selfLink,omitempty"`
5430
5431	// ValidDiskSize: [Output Only] An optional textual description of the
5432	// valid disk size, such as "10GB-10TB".
5433	ValidDiskSize string `json:"validDiskSize,omitempty"`
5434
5435	// Zone: [Output Only] URL of the zone where the disk type resides. You
5436	// must specify this field as part of the HTTP request URL. It is not
5437	// settable as a field in the request body.
5438	Zone string `json:"zone,omitempty"`
5439
5440	// ServerResponse contains the HTTP response code and headers from the
5441	// server.
5442	googleapi.ServerResponse `json:"-"`
5443
5444	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
5445	// to unconditionally include in API requests. By default, fields with
5446	// empty values are omitted from API requests. However, any non-pointer,
5447	// non-interface field appearing in ForceSendFields will be sent to the
5448	// server regardless of whether the field is empty or not. This may be
5449	// used to include empty fields in Patch requests.
5450	ForceSendFields []string `json:"-"`
5451
5452	// NullFields is a list of field names (e.g. "CreationTimestamp") to
5453	// include in API requests with the JSON null value. By default, fields
5454	// with empty values are omitted from API requests. However, any field
5455	// with an empty value appearing in NullFields will be sent to the
5456	// server as null. It is an error if a field in this list has a
5457	// non-empty value. This may be used to include null fields in Patch
5458	// requests.
5459	NullFields []string `json:"-"`
5460}
5461
5462func (s *DiskType) MarshalJSON() ([]byte, error) {
5463	type NoMethod DiskType
5464	raw := NoMethod(*s)
5465	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5466}
5467
5468type DiskTypeAggregatedList struct {
5469	// Id: [Output Only] Unique identifier for the resource; defined by the
5470	// server.
5471	Id string `json:"id,omitempty"`
5472
5473	// Items: A list of DiskTypesScopedList resources.
5474	Items map[string]DiskTypesScopedList `json:"items,omitempty"`
5475
5476	// Kind: [Output Only] Type of resource. Always
5477	// compute#diskTypeAggregatedList.
5478	Kind string `json:"kind,omitempty"`
5479
5480	// NextPageToken: [Output Only] This token allows you to get the next
5481	// page of results for list requests. If the number of results is larger
5482	// than maxResults, use the nextPageToken as a value for the query
5483	// parameter pageToken in the next list request. Subsequent list
5484	// requests will have their own nextPageToken to continue paging through
5485	// the results.
5486	NextPageToken string `json:"nextPageToken,omitempty"`
5487
5488	// SelfLink: [Output Only] Server-defined URL for this resource.
5489	SelfLink string `json:"selfLink,omitempty"`
5490
5491	// Warning: [Output Only] Informational warning message.
5492	Warning *DiskTypeAggregatedListWarning `json:"warning,omitempty"`
5493
5494	// ServerResponse contains the HTTP response code and headers from the
5495	// server.
5496	googleapi.ServerResponse `json:"-"`
5497
5498	// ForceSendFields is a list of field names (e.g. "Id") to
5499	// unconditionally include in API requests. By default, fields with
5500	// empty values are omitted from API requests. However, any non-pointer,
5501	// non-interface field appearing in ForceSendFields will be sent to the
5502	// server regardless of whether the field is empty or not. This may be
5503	// used to include empty fields in Patch requests.
5504	ForceSendFields []string `json:"-"`
5505
5506	// NullFields is a list of field names (e.g. "Id") to include in API
5507	// requests with the JSON null value. By default, fields with empty
5508	// values are omitted from API requests. However, any field with an
5509	// empty value appearing in NullFields will be sent to the server as
5510	// null. It is an error if a field in this list has a non-empty value.
5511	// This may be used to include null fields in Patch requests.
5512	NullFields []string `json:"-"`
5513}
5514
5515func (s *DiskTypeAggregatedList) MarshalJSON() ([]byte, error) {
5516	type NoMethod DiskTypeAggregatedList
5517	raw := NoMethod(*s)
5518	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5519}
5520
5521// DiskTypeAggregatedListWarning: [Output Only] Informational warning
5522// message.
5523type DiskTypeAggregatedListWarning struct {
5524	// Code: [Output Only] A warning code, if applicable. For example,
5525	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5526	// the response.
5527	//
5528	// Possible values:
5529	//   "CLEANUP_FAILED"
5530	//   "DEPRECATED_RESOURCE_USED"
5531	//   "DEPRECATED_TYPE_USED"
5532	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5533	//   "EXPERIMENTAL_TYPE_USED"
5534	//   "EXTERNAL_API_WARNING"
5535	//   "FIELD_VALUE_OVERRIDEN"
5536	//   "INJECTED_KERNELS_DEPRECATED"
5537	//   "MISSING_TYPE_DEPENDENCY"
5538	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5539	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5540	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5541	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5542	//   "NEXT_HOP_NOT_RUNNING"
5543	//   "NOT_CRITICAL_ERROR"
5544	//   "NO_RESULTS_ON_PAGE"
5545	//   "REQUIRED_TOS_AGREEMENT"
5546	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5547	//   "RESOURCE_NOT_DELETED"
5548	//   "SCHEMA_VALIDATION_IGNORED"
5549	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5550	//   "UNDECLARED_PROPERTIES"
5551	//   "UNREACHABLE"
5552	Code string `json:"code,omitempty"`
5553
5554	// Data: [Output Only] Metadata about this warning in key: value format.
5555	// For example:
5556	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5557	Data []*DiskTypeAggregatedListWarningData `json:"data,omitempty"`
5558
5559	// Message: [Output Only] A human-readable description of the warning
5560	// code.
5561	Message string `json:"message,omitempty"`
5562
5563	// ForceSendFields is a list of field names (e.g. "Code") to
5564	// unconditionally include in API requests. By default, fields with
5565	// empty values are omitted from API requests. However, any non-pointer,
5566	// non-interface field appearing in ForceSendFields will be sent to the
5567	// server regardless of whether the field is empty or not. This may be
5568	// used to include empty fields in Patch requests.
5569	ForceSendFields []string `json:"-"`
5570
5571	// NullFields is a list of field names (e.g. "Code") to include in API
5572	// requests with the JSON null value. By default, fields with empty
5573	// values are omitted from API requests. However, any field with an
5574	// empty value appearing in NullFields will be sent to the server as
5575	// null. It is an error if a field in this list has a non-empty value.
5576	// This may be used to include null fields in Patch requests.
5577	NullFields []string `json:"-"`
5578}
5579
5580func (s *DiskTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
5581	type NoMethod DiskTypeAggregatedListWarning
5582	raw := NoMethod(*s)
5583	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5584}
5585
5586type DiskTypeAggregatedListWarningData struct {
5587	// Key: [Output Only] A key that provides more detail on the warning
5588	// being returned. For example, for warnings where there are no results
5589	// in a list request for a particular zone, this key might be scope and
5590	// the key value might be the zone name. Other examples might be a key
5591	// indicating a deprecated resource and a suggested replacement, or a
5592	// warning about invalid network settings (for example, if an instance
5593	// attempts to perform IP forwarding but is not enabled for IP
5594	// forwarding).
5595	Key string `json:"key,omitempty"`
5596
5597	// Value: [Output Only] A warning data value corresponding to the key.
5598	Value string `json:"value,omitempty"`
5599
5600	// ForceSendFields is a list of field names (e.g. "Key") to
5601	// unconditionally include in API requests. By default, fields with
5602	// empty values are omitted from API requests. However, any non-pointer,
5603	// non-interface field appearing in ForceSendFields will be sent to the
5604	// server regardless of whether the field is empty or not. This may be
5605	// used to include empty fields in Patch requests.
5606	ForceSendFields []string `json:"-"`
5607
5608	// NullFields is a list of field names (e.g. "Key") to include in API
5609	// requests with the JSON null value. By default, fields with empty
5610	// values are omitted from API requests. However, any field with an
5611	// empty value appearing in NullFields will be sent to the server as
5612	// null. It is an error if a field in this list has a non-empty value.
5613	// This may be used to include null fields in Patch requests.
5614	NullFields []string `json:"-"`
5615}
5616
5617func (s *DiskTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
5618	type NoMethod DiskTypeAggregatedListWarningData
5619	raw := NoMethod(*s)
5620	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5621}
5622
5623// DiskTypeList: Contains a list of disk types.
5624type DiskTypeList struct {
5625	// Id: [Output Only] Unique identifier for the resource; defined by the
5626	// server.
5627	Id string `json:"id,omitempty"`
5628
5629	// Items: A list of DiskType resources.
5630	Items []*DiskType `json:"items,omitempty"`
5631
5632	// Kind: [Output Only] Type of resource. Always compute#diskTypeList for
5633	// disk types.
5634	Kind string `json:"kind,omitempty"`
5635
5636	// NextPageToken: [Output Only] This token allows you to get the next
5637	// page of results for list requests. If the number of results is larger
5638	// than maxResults, use the nextPageToken as a value for the query
5639	// parameter pageToken in the next list request. Subsequent list
5640	// requests will have their own nextPageToken to continue paging through
5641	// the results.
5642	NextPageToken string `json:"nextPageToken,omitempty"`
5643
5644	// SelfLink: [Output Only] Server-defined URL for this resource.
5645	SelfLink string `json:"selfLink,omitempty"`
5646
5647	// Warning: [Output Only] Informational warning message.
5648	Warning *DiskTypeListWarning `json:"warning,omitempty"`
5649
5650	// ServerResponse contains the HTTP response code and headers from the
5651	// server.
5652	googleapi.ServerResponse `json:"-"`
5653
5654	// ForceSendFields is a list of field names (e.g. "Id") to
5655	// unconditionally include in API requests. By default, fields with
5656	// empty values are omitted from API requests. However, any non-pointer,
5657	// non-interface field appearing in ForceSendFields will be sent to the
5658	// server regardless of whether the field is empty or not. This may be
5659	// used to include empty fields in Patch requests.
5660	ForceSendFields []string `json:"-"`
5661
5662	// NullFields is a list of field names (e.g. "Id") to include in API
5663	// requests with the JSON null value. By default, fields with empty
5664	// values are omitted from API requests. However, any field with an
5665	// empty value appearing in NullFields will be sent to the server as
5666	// null. It is an error if a field in this list has a non-empty value.
5667	// This may be used to include null fields in Patch requests.
5668	NullFields []string `json:"-"`
5669}
5670
5671func (s *DiskTypeList) MarshalJSON() ([]byte, error) {
5672	type NoMethod DiskTypeList
5673	raw := NoMethod(*s)
5674	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5675}
5676
5677// DiskTypeListWarning: [Output Only] Informational warning message.
5678type DiskTypeListWarning struct {
5679	// Code: [Output Only] A warning code, if applicable. For example,
5680	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5681	// the response.
5682	//
5683	// Possible values:
5684	//   "CLEANUP_FAILED"
5685	//   "DEPRECATED_RESOURCE_USED"
5686	//   "DEPRECATED_TYPE_USED"
5687	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5688	//   "EXPERIMENTAL_TYPE_USED"
5689	//   "EXTERNAL_API_WARNING"
5690	//   "FIELD_VALUE_OVERRIDEN"
5691	//   "INJECTED_KERNELS_DEPRECATED"
5692	//   "MISSING_TYPE_DEPENDENCY"
5693	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5694	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5695	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5696	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5697	//   "NEXT_HOP_NOT_RUNNING"
5698	//   "NOT_CRITICAL_ERROR"
5699	//   "NO_RESULTS_ON_PAGE"
5700	//   "REQUIRED_TOS_AGREEMENT"
5701	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5702	//   "RESOURCE_NOT_DELETED"
5703	//   "SCHEMA_VALIDATION_IGNORED"
5704	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5705	//   "UNDECLARED_PROPERTIES"
5706	//   "UNREACHABLE"
5707	Code string `json:"code,omitempty"`
5708
5709	// Data: [Output Only] Metadata about this warning in key: value format.
5710	// For example:
5711	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5712	Data []*DiskTypeListWarningData `json:"data,omitempty"`
5713
5714	// Message: [Output Only] A human-readable description of the warning
5715	// code.
5716	Message string `json:"message,omitempty"`
5717
5718	// ForceSendFields is a list of field names (e.g. "Code") to
5719	// unconditionally include in API requests. By default, fields with
5720	// empty values are omitted from API requests. However, any non-pointer,
5721	// non-interface field appearing in ForceSendFields will be sent to the
5722	// server regardless of whether the field is empty or not. This may be
5723	// used to include empty fields in Patch requests.
5724	ForceSendFields []string `json:"-"`
5725
5726	// NullFields is a list of field names (e.g. "Code") to include in API
5727	// requests with the JSON null value. By default, fields with empty
5728	// values are omitted from API requests. However, any field with an
5729	// empty value appearing in NullFields will be sent to the server as
5730	// null. It is an error if a field in this list has a non-empty value.
5731	// This may be used to include null fields in Patch requests.
5732	NullFields []string `json:"-"`
5733}
5734
5735func (s *DiskTypeListWarning) MarshalJSON() ([]byte, error) {
5736	type NoMethod DiskTypeListWarning
5737	raw := NoMethod(*s)
5738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5739}
5740
5741type DiskTypeListWarningData struct {
5742	// Key: [Output Only] A key that provides more detail on the warning
5743	// being returned. For example, for warnings where there are no results
5744	// in a list request for a particular zone, this key might be scope and
5745	// the key value might be the zone name. Other examples might be a key
5746	// indicating a deprecated resource and a suggested replacement, or a
5747	// warning about invalid network settings (for example, if an instance
5748	// attempts to perform IP forwarding but is not enabled for IP
5749	// forwarding).
5750	Key string `json:"key,omitempty"`
5751
5752	// Value: [Output Only] A warning data value corresponding to the key.
5753	Value string `json:"value,omitempty"`
5754
5755	// ForceSendFields is a list of field names (e.g. "Key") to
5756	// unconditionally include in API requests. By default, fields with
5757	// empty values are omitted from API requests. However, any non-pointer,
5758	// non-interface field appearing in ForceSendFields will be sent to the
5759	// server regardless of whether the field is empty or not. This may be
5760	// used to include empty fields in Patch requests.
5761	ForceSendFields []string `json:"-"`
5762
5763	// NullFields is a list of field names (e.g. "Key") to include in API
5764	// requests with the JSON null value. By default, fields with empty
5765	// values are omitted from API requests. However, any field with an
5766	// empty value appearing in NullFields will be sent to the server as
5767	// null. It is an error if a field in this list has a non-empty value.
5768	// This may be used to include null fields in Patch requests.
5769	NullFields []string `json:"-"`
5770}
5771
5772func (s *DiskTypeListWarningData) MarshalJSON() ([]byte, error) {
5773	type NoMethod DiskTypeListWarningData
5774	raw := NoMethod(*s)
5775	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5776}
5777
5778type DiskTypesScopedList struct {
5779	// DiskTypes: [Output Only] A list of disk types contained in this
5780	// scope.
5781	DiskTypes []*DiskType `json:"diskTypes,omitempty"`
5782
5783	// Warning: [Output Only] Informational warning which replaces the list
5784	// of disk types when the list is empty.
5785	Warning *DiskTypesScopedListWarning `json:"warning,omitempty"`
5786
5787	// ForceSendFields is a list of field names (e.g. "DiskTypes") to
5788	// unconditionally include in API requests. By default, fields with
5789	// empty values are omitted from API requests. However, any non-pointer,
5790	// non-interface field appearing in ForceSendFields will be sent to the
5791	// server regardless of whether the field is empty or not. This may be
5792	// used to include empty fields in Patch requests.
5793	ForceSendFields []string `json:"-"`
5794
5795	// NullFields is a list of field names (e.g. "DiskTypes") to include in
5796	// API requests with the JSON null value. By default, fields with empty
5797	// values are omitted from API requests. However, any field with an
5798	// empty value appearing in NullFields will be sent to the server as
5799	// null. It is an error if a field in this list has a non-empty value.
5800	// This may be used to include null fields in Patch requests.
5801	NullFields []string `json:"-"`
5802}
5803
5804func (s *DiskTypesScopedList) MarshalJSON() ([]byte, error) {
5805	type NoMethod DiskTypesScopedList
5806	raw := NoMethod(*s)
5807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5808}
5809
5810// DiskTypesScopedListWarning: [Output Only] Informational warning which
5811// replaces the list of disk types when the list is empty.
5812type DiskTypesScopedListWarning struct {
5813	// Code: [Output Only] A warning code, if applicable. For example,
5814	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5815	// the response.
5816	//
5817	// Possible values:
5818	//   "CLEANUP_FAILED"
5819	//   "DEPRECATED_RESOURCE_USED"
5820	//   "DEPRECATED_TYPE_USED"
5821	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5822	//   "EXPERIMENTAL_TYPE_USED"
5823	//   "EXTERNAL_API_WARNING"
5824	//   "FIELD_VALUE_OVERRIDEN"
5825	//   "INJECTED_KERNELS_DEPRECATED"
5826	//   "MISSING_TYPE_DEPENDENCY"
5827	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5828	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5829	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5830	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5831	//   "NEXT_HOP_NOT_RUNNING"
5832	//   "NOT_CRITICAL_ERROR"
5833	//   "NO_RESULTS_ON_PAGE"
5834	//   "REQUIRED_TOS_AGREEMENT"
5835	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5836	//   "RESOURCE_NOT_DELETED"
5837	//   "SCHEMA_VALIDATION_IGNORED"
5838	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5839	//   "UNDECLARED_PROPERTIES"
5840	//   "UNREACHABLE"
5841	Code string `json:"code,omitempty"`
5842
5843	// Data: [Output Only] Metadata about this warning in key: value format.
5844	// For example:
5845	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5846	Data []*DiskTypesScopedListWarningData `json:"data,omitempty"`
5847
5848	// Message: [Output Only] A human-readable description of the warning
5849	// code.
5850	Message string `json:"message,omitempty"`
5851
5852	// ForceSendFields is a list of field names (e.g. "Code") to
5853	// unconditionally include in API requests. By default, fields with
5854	// empty values are omitted from API requests. However, any non-pointer,
5855	// non-interface field appearing in ForceSendFields will be sent to the
5856	// server regardless of whether the field is empty or not. This may be
5857	// used to include empty fields in Patch requests.
5858	ForceSendFields []string `json:"-"`
5859
5860	// NullFields is a list of field names (e.g. "Code") to include in API
5861	// requests with the JSON null value. By default, fields with empty
5862	// values are omitted from API requests. However, any field with an
5863	// empty value appearing in NullFields will be sent to the server as
5864	// null. It is an error if a field in this list has a non-empty value.
5865	// This may be used to include null fields in Patch requests.
5866	NullFields []string `json:"-"`
5867}
5868
5869func (s *DiskTypesScopedListWarning) MarshalJSON() ([]byte, error) {
5870	type NoMethod DiskTypesScopedListWarning
5871	raw := NoMethod(*s)
5872	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5873}
5874
5875type DiskTypesScopedListWarningData struct {
5876	// Key: [Output Only] A key that provides more detail on the warning
5877	// being returned. For example, for warnings where there are no results
5878	// in a list request for a particular zone, this key might be scope and
5879	// the key value might be the zone name. Other examples might be a key
5880	// indicating a deprecated resource and a suggested replacement, or a
5881	// warning about invalid network settings (for example, if an instance
5882	// attempts to perform IP forwarding but is not enabled for IP
5883	// forwarding).
5884	Key string `json:"key,omitempty"`
5885
5886	// Value: [Output Only] A warning data value corresponding to the key.
5887	Value string `json:"value,omitempty"`
5888
5889	// ForceSendFields is a list of field names (e.g. "Key") to
5890	// unconditionally include in API requests. By default, fields with
5891	// empty values are omitted from API requests. However, any non-pointer,
5892	// non-interface field appearing in ForceSendFields will be sent to the
5893	// server regardless of whether the field is empty or not. This may be
5894	// used to include empty fields in Patch requests.
5895	ForceSendFields []string `json:"-"`
5896
5897	// NullFields is a list of field names (e.g. "Key") to include in API
5898	// requests with the JSON null value. By default, fields with empty
5899	// values are omitted from API requests. However, any field with an
5900	// empty value appearing in NullFields will be sent to the server as
5901	// null. It is an error if a field in this list has a non-empty value.
5902	// This may be used to include null fields in Patch requests.
5903	NullFields []string `json:"-"`
5904}
5905
5906func (s *DiskTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
5907	type NoMethod DiskTypesScopedListWarningData
5908	raw := NoMethod(*s)
5909	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5910}
5911
5912type DisksResizeRequest struct {
5913	// SizeGb: The new size of the persistent disk, which is specified in
5914	// GB.
5915	SizeGb int64 `json:"sizeGb,omitempty,string"`
5916
5917	// ForceSendFields is a list of field names (e.g. "SizeGb") to
5918	// unconditionally include in API requests. By default, fields with
5919	// empty values are omitted from API requests. However, any non-pointer,
5920	// non-interface field appearing in ForceSendFields will be sent to the
5921	// server regardless of whether the field is empty or not. This may be
5922	// used to include empty fields in Patch requests.
5923	ForceSendFields []string `json:"-"`
5924
5925	// NullFields is a list of field names (e.g. "SizeGb") to include in API
5926	// requests with the JSON null value. By default, fields with empty
5927	// values are omitted from API requests. However, any field with an
5928	// empty value appearing in NullFields will be sent to the server as
5929	// null. It is an error if a field in this list has a non-empty value.
5930	// This may be used to include null fields in Patch requests.
5931	NullFields []string `json:"-"`
5932}
5933
5934func (s *DisksResizeRequest) MarshalJSON() ([]byte, error) {
5935	type NoMethod DisksResizeRequest
5936	raw := NoMethod(*s)
5937	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5938}
5939
5940type DisksScopedList struct {
5941	// Disks: [Output Only] A list of disks contained in this scope.
5942	Disks []*Disk `json:"disks,omitempty"`
5943
5944	// Warning: [Output Only] Informational warning which replaces the list
5945	// of disks when the list is empty.
5946	Warning *DisksScopedListWarning `json:"warning,omitempty"`
5947
5948	// ForceSendFields is a list of field names (e.g. "Disks") to
5949	// unconditionally include in API requests. By default, fields with
5950	// empty values are omitted from API requests. However, any non-pointer,
5951	// non-interface field appearing in ForceSendFields will be sent to the
5952	// server regardless of whether the field is empty or not. This may be
5953	// used to include empty fields in Patch requests.
5954	ForceSendFields []string `json:"-"`
5955
5956	// NullFields is a list of field names (e.g. "Disks") to include in API
5957	// requests with the JSON null value. By default, fields with empty
5958	// values are omitted from API requests. However, any field with an
5959	// empty value appearing in NullFields will be sent to the server as
5960	// null. It is an error if a field in this list has a non-empty value.
5961	// This may be used to include null fields in Patch requests.
5962	NullFields []string `json:"-"`
5963}
5964
5965func (s *DisksScopedList) MarshalJSON() ([]byte, error) {
5966	type NoMethod DisksScopedList
5967	raw := NoMethod(*s)
5968	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5969}
5970
5971// DisksScopedListWarning: [Output Only] Informational warning which
5972// replaces the list of disks when the list is empty.
5973type DisksScopedListWarning struct {
5974	// Code: [Output Only] A warning code, if applicable. For example,
5975	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5976	// the response.
5977	//
5978	// Possible values:
5979	//   "CLEANUP_FAILED"
5980	//   "DEPRECATED_RESOURCE_USED"
5981	//   "DEPRECATED_TYPE_USED"
5982	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5983	//   "EXPERIMENTAL_TYPE_USED"
5984	//   "EXTERNAL_API_WARNING"
5985	//   "FIELD_VALUE_OVERRIDEN"
5986	//   "INJECTED_KERNELS_DEPRECATED"
5987	//   "MISSING_TYPE_DEPENDENCY"
5988	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5989	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5990	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5991	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5992	//   "NEXT_HOP_NOT_RUNNING"
5993	//   "NOT_CRITICAL_ERROR"
5994	//   "NO_RESULTS_ON_PAGE"
5995	//   "REQUIRED_TOS_AGREEMENT"
5996	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5997	//   "RESOURCE_NOT_DELETED"
5998	//   "SCHEMA_VALIDATION_IGNORED"
5999	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6000	//   "UNDECLARED_PROPERTIES"
6001	//   "UNREACHABLE"
6002	Code string `json:"code,omitempty"`
6003
6004	// Data: [Output Only] Metadata about this warning in key: value format.
6005	// For example:
6006	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6007	Data []*DisksScopedListWarningData `json:"data,omitempty"`
6008
6009	// Message: [Output Only] A human-readable description of the warning
6010	// code.
6011	Message string `json:"message,omitempty"`
6012
6013	// ForceSendFields is a list of field names (e.g. "Code") to
6014	// unconditionally include in API requests. By default, fields with
6015	// empty values are omitted from API requests. However, any non-pointer,
6016	// non-interface field appearing in ForceSendFields will be sent to the
6017	// server regardless of whether the field is empty or not. This may be
6018	// used to include empty fields in Patch requests.
6019	ForceSendFields []string `json:"-"`
6020
6021	// NullFields is a list of field names (e.g. "Code") to include in API
6022	// requests with the JSON null value. By default, fields with empty
6023	// values are omitted from API requests. However, any field with an
6024	// empty value appearing in NullFields will be sent to the server as
6025	// null. It is an error if a field in this list has a non-empty value.
6026	// This may be used to include null fields in Patch requests.
6027	NullFields []string `json:"-"`
6028}
6029
6030func (s *DisksScopedListWarning) MarshalJSON() ([]byte, error) {
6031	type NoMethod DisksScopedListWarning
6032	raw := NoMethod(*s)
6033	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6034}
6035
6036type DisksScopedListWarningData struct {
6037	// Key: [Output Only] A key that provides more detail on the warning
6038	// being returned. For example, for warnings where there are no results
6039	// in a list request for a particular zone, this key might be scope and
6040	// the key value might be the zone name. Other examples might be a key
6041	// indicating a deprecated resource and a suggested replacement, or a
6042	// warning about invalid network settings (for example, if an instance
6043	// attempts to perform IP forwarding but is not enabled for IP
6044	// forwarding).
6045	Key string `json:"key,omitempty"`
6046
6047	// Value: [Output Only] A warning data value corresponding to the key.
6048	Value string `json:"value,omitempty"`
6049
6050	// ForceSendFields is a list of field names (e.g. "Key") to
6051	// unconditionally include in API requests. By default, fields with
6052	// empty values are omitted from API requests. However, any non-pointer,
6053	// non-interface field appearing in ForceSendFields will be sent to the
6054	// server regardless of whether the field is empty or not. This may be
6055	// used to include empty fields in Patch requests.
6056	ForceSendFields []string `json:"-"`
6057
6058	// NullFields is a list of field names (e.g. "Key") to include in API
6059	// requests with the JSON null value. By default, fields with empty
6060	// values are omitted from API requests. However, any field with an
6061	// empty value appearing in NullFields will be sent to the server as
6062	// null. It is an error if a field in this list has a non-empty value.
6063	// This may be used to include null fields in Patch requests.
6064	NullFields []string `json:"-"`
6065}
6066
6067func (s *DisksScopedListWarningData) MarshalJSON() ([]byte, error) {
6068	type NoMethod DisksScopedListWarningData
6069	raw := NoMethod(*s)
6070	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6071}
6072
6073// Firewall: Represents a Firewall resource.
6074type Firewall struct {
6075	// Allowed: The list of ALLOW rules specified by this firewall. Each
6076	// rule specifies a protocol and port-range tuple that describes a
6077	// permitted connection.
6078	Allowed []*FirewallAllowed `json:"allowed,omitempty"`
6079
6080	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
6081	// format.
6082	CreationTimestamp string `json:"creationTimestamp,omitempty"`
6083
6084	// Denied: The list of DENY rules specified by this firewall. Each rule
6085	// specifies a protocol and port-range tuple that describes a denied
6086	// connection.
6087	Denied []*FirewallDenied `json:"denied,omitempty"`
6088
6089	// Description: An optional description of this resource. Provide this
6090	// property when you create the resource.
6091	Description string `json:"description,omitempty"`
6092
6093	// DestinationRanges: If destination ranges are specified, the firewall
6094	// will apply only to traffic that has destination IP address in these
6095	// ranges. These ranges must be expressed in CIDR format. Only IPv4 is
6096	// supported.
6097	DestinationRanges []string `json:"destinationRanges,omitempty"`
6098
6099	// Direction: Direction of traffic to which this firewall applies;
6100	// default is INGRESS. Note: For INGRESS traffic, it is NOT supported to
6101	// specify destinationRanges; For EGRESS traffic, it is NOT supported to
6102	// specify sourceRanges OR sourceTags.
6103	//
6104	// Possible values:
6105	//   "EGRESS"
6106	//   "INGRESS"
6107	Direction string `json:"direction,omitempty"`
6108
6109	// Id: [Output Only] The unique identifier for the resource. This
6110	// identifier is defined by the server.
6111	Id uint64 `json:"id,omitempty,string"`
6112
6113	// Kind: [Output Only] Type of the resource. Always compute#firewall for
6114	// firewall rules.
6115	Kind string `json:"kind,omitempty"`
6116
6117	// Name: Name of the resource; provided by the client when the resource
6118	// is created. The name must be 1-63 characters long, and comply with
6119	// RFC1035. Specifically, the name must be 1-63 characters long and
6120	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
6121	// the first character must be a lowercase letter, and all following
6122	// characters must be a dash, lowercase letter, or digit, except the
6123	// last character, which cannot be a dash.
6124	Name string `json:"name,omitempty"`
6125
6126	// Network: URL of the network resource for this firewall rule. If not
6127	// specified when creating a firewall rule, the default network is
6128	// used:
6129	// global/networks/default
6130	// If you choose to specify this property, you can specify the network
6131	// as a full or partial URL. For example, the following are all valid
6132	// URLs:
6133	// -
6134	// https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
6135	// - projects/myproject/global/networks/my-network
6136	// - global/networks/default
6137	Network string `json:"network,omitempty"`
6138
6139	// Priority: Priority for this rule. This is an integer between 0 and
6140	// 65535, both inclusive. When not specified, the value assumed is 1000.
6141	// Relative priorities determine precedence of conflicting rules. Lower
6142	// value of priority implies higher precedence (eg, a rule with priority
6143	// 0 has higher precedence than a rule with priority 1). DENY rules take
6144	// precedence over ALLOW rules having equal priority.
6145	Priority int64 `json:"priority,omitempty"`
6146
6147	// SelfLink: [Output Only] Server-defined URL for the resource.
6148	SelfLink string `json:"selfLink,omitempty"`
6149
6150	// SourceRanges: If source ranges are specified, the firewall will apply
6151	// only to traffic that has source IP address in these ranges. These
6152	// ranges must be expressed in CIDR format. One or both of sourceRanges
6153	// and sourceTags may be set. If both properties are set, the firewall
6154	// will apply to traffic that has source IP address within sourceRanges
6155	// OR the source IP that belongs to a tag listed in the sourceTags
6156	// property. The connection does not need to match both properties for
6157	// the firewall to apply. Only IPv4 is supported.
6158	SourceRanges []string `json:"sourceRanges,omitempty"`
6159
6160	// SourceServiceAccounts: If source service accounts are specified, the
6161	// firewall will apply only to traffic originating from an instance with
6162	// a service account in this list. Source service accounts cannot be
6163	// used to control traffic to an instance's external IP address because
6164	// service accounts are associated with an instance, not an IP address.
6165	// sourceRanges can be set at the same time as sourceServiceAccounts. If
6166	// both are set, the firewall will apply to traffic that has source IP
6167	// address within sourceRanges OR the source IP belongs to an instance
6168	// with service account listed in sourceServiceAccount. The connection
6169	// does not need to match both properties for the firewall to apply.
6170	// sourceServiceAccounts cannot be used at the same time as sourceTags
6171	// or targetTags.
6172	SourceServiceAccounts []string `json:"sourceServiceAccounts,omitempty"`
6173
6174	// SourceTags: If source tags are specified, the firewall rule applies
6175	// only to traffic with source IPs that match the primary network
6176	// interfaces of VM instances that have the tag and are in the same VPC
6177	// network. Source tags cannot be used to control traffic to an
6178	// instance's external IP address, it only applies to traffic between
6179	// instances in the same virtual network. Because tags are associated
6180	// with instances, not IP addresses. One or both of sourceRanges and
6181	// sourceTags may be set. If both properties are set, the firewall will
6182	// apply to traffic that has source IP address within sourceRanges OR
6183	// the source IP that belongs to a tag listed in the sourceTags
6184	// property. The connection does not need to match both properties for
6185	// the firewall to apply.
6186	SourceTags []string `json:"sourceTags,omitempty"`
6187
6188	// TargetServiceAccounts: A list of service accounts indicating sets of
6189	// instances located in the network that may make network connections as
6190	// specified in allowed[]. targetServiceAccounts cannot be used at the
6191	// same time as targetTags or sourceTags. If neither
6192	// targetServiceAccounts nor targetTags are specified, the firewall rule
6193	// applies to all instances on the specified network.
6194	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
6195
6196	// TargetTags: A list of tags that controls which instances the firewall
6197	// rule applies to. If targetTags are specified, then the firewall rule
6198	// applies only to instances in the VPC network that have one of those
6199	// tags. If no targetTags are specified, the firewall rule applies to
6200	// all instances on the specified network.
6201	TargetTags []string `json:"targetTags,omitempty"`
6202
6203	// ServerResponse contains the HTTP response code and headers from the
6204	// server.
6205	googleapi.ServerResponse `json:"-"`
6206
6207	// ForceSendFields is a list of field names (e.g. "Allowed") to
6208	// unconditionally include in API requests. By default, fields with
6209	// empty values are omitted from API requests. However, any non-pointer,
6210	// non-interface field appearing in ForceSendFields will be sent to the
6211	// server regardless of whether the field is empty or not. This may be
6212	// used to include empty fields in Patch requests.
6213	ForceSendFields []string `json:"-"`
6214
6215	// NullFields is a list of field names (e.g. "Allowed") to include in
6216	// API requests with the JSON null value. By default, fields with empty
6217	// values are omitted from API requests. However, any field with an
6218	// empty value appearing in NullFields will be sent to the server as
6219	// null. It is an error if a field in this list has a non-empty value.
6220	// This may be used to include null fields in Patch requests.
6221	NullFields []string `json:"-"`
6222}
6223
6224func (s *Firewall) MarshalJSON() ([]byte, error) {
6225	type NoMethod Firewall
6226	raw := NoMethod(*s)
6227	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6228}
6229
6230type FirewallAllowed struct {
6231	// IPProtocol: The IP protocol to which this rule applies. The protocol
6232	// type is required when creating a firewall rule. This value can either
6233	// be one of the following well known protocol strings (tcp, udp, icmp,
6234	// esp, ah, ipip, sctp), or the IP protocol number.
6235	IPProtocol string `json:"IPProtocol,omitempty"`
6236
6237	// Ports: An optional list of ports to which this rule applies. This
6238	// field is only applicable for UDP or TCP protocol. Each entry must be
6239	// either an integer or a range. If not specified, this rule applies to
6240	// connections through any port.
6241	//
6242	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
6243	Ports []string `json:"ports,omitempty"`
6244
6245	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
6246	// unconditionally include in API requests. By default, fields with
6247	// empty values are omitted from API requests. However, any non-pointer,
6248	// non-interface field appearing in ForceSendFields will be sent to the
6249	// server regardless of whether the field is empty or not. This may be
6250	// used to include empty fields in Patch requests.
6251	ForceSendFields []string `json:"-"`
6252
6253	// NullFields is a list of field names (e.g. "IPProtocol") to include in
6254	// API requests with the JSON null value. By default, fields with empty
6255	// values are omitted from API requests. However, any field with an
6256	// empty value appearing in NullFields will be sent to the server as
6257	// null. It is an error if a field in this list has a non-empty value.
6258	// This may be used to include null fields in Patch requests.
6259	NullFields []string `json:"-"`
6260}
6261
6262func (s *FirewallAllowed) MarshalJSON() ([]byte, error) {
6263	type NoMethod FirewallAllowed
6264	raw := NoMethod(*s)
6265	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6266}
6267
6268type FirewallDenied struct {
6269	// IPProtocol: The IP protocol to which this rule applies. The protocol
6270	// type is required when creating a firewall rule. This value can either
6271	// be one of the following well known protocol strings (tcp, udp, icmp,
6272	// esp, ah, ipip, sctp), or the IP protocol number.
6273	IPProtocol string `json:"IPProtocol,omitempty"`
6274
6275	// Ports: An optional list of ports to which this rule applies. This
6276	// field is only applicable for UDP or TCP protocol. Each entry must be
6277	// either an integer or a range. If not specified, this rule applies to
6278	// connections through any port.
6279	//
6280	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
6281	Ports []string `json:"ports,omitempty"`
6282
6283	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
6284	// unconditionally include in API requests. By default, fields with
6285	// empty values are omitted from API requests. However, any non-pointer,
6286	// non-interface field appearing in ForceSendFields will be sent to the
6287	// server regardless of whether the field is empty or not. This may be
6288	// used to include empty fields in Patch requests.
6289	ForceSendFields []string `json:"-"`
6290
6291	// NullFields is a list of field names (e.g. "IPProtocol") to include in
6292	// API requests with the JSON null value. By default, fields with empty
6293	// values are omitted from API requests. However, any field with an
6294	// empty value appearing in NullFields will be sent to the server as
6295	// null. It is an error if a field in this list has a non-empty value.
6296	// This may be used to include null fields in Patch requests.
6297	NullFields []string `json:"-"`
6298}
6299
6300func (s *FirewallDenied) MarshalJSON() ([]byte, error) {
6301	type NoMethod FirewallDenied
6302	raw := NoMethod(*s)
6303	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6304}
6305
6306// FirewallList: Contains a list of firewalls.
6307type FirewallList struct {
6308	// Id: [Output Only] Unique identifier for the resource; defined by the
6309	// server.
6310	Id string `json:"id,omitempty"`
6311
6312	// Items: A list of Firewall resources.
6313	Items []*Firewall `json:"items,omitempty"`
6314
6315	// Kind: [Output Only] Type of resource. Always compute#firewallList for
6316	// lists of firewalls.
6317	Kind string `json:"kind,omitempty"`
6318
6319	// NextPageToken: [Output Only] This token allows you to get the next
6320	// page of results for list requests. If the number of results is larger
6321	// than maxResults, use the nextPageToken as a value for the query
6322	// parameter pageToken in the next list request. Subsequent list
6323	// requests will have their own nextPageToken to continue paging through
6324	// the results.
6325	NextPageToken string `json:"nextPageToken,omitempty"`
6326
6327	// SelfLink: [Output Only] Server-defined URL for this resource.
6328	SelfLink string `json:"selfLink,omitempty"`
6329
6330	// Warning: [Output Only] Informational warning message.
6331	Warning *FirewallListWarning `json:"warning,omitempty"`
6332
6333	// ServerResponse contains the HTTP response code and headers from the
6334	// server.
6335	googleapi.ServerResponse `json:"-"`
6336
6337	// ForceSendFields is a list of field names (e.g. "Id") to
6338	// unconditionally include in API requests. By default, fields with
6339	// empty values are omitted from API requests. However, any non-pointer,
6340	// non-interface field appearing in ForceSendFields will be sent to the
6341	// server regardless of whether the field is empty or not. This may be
6342	// used to include empty fields in Patch requests.
6343	ForceSendFields []string `json:"-"`
6344
6345	// NullFields is a list of field names (e.g. "Id") to include in API
6346	// requests with the JSON null value. By default, fields with empty
6347	// values are omitted from API requests. However, any field with an
6348	// empty value appearing in NullFields will be sent to the server as
6349	// null. It is an error if a field in this list has a non-empty value.
6350	// This may be used to include null fields in Patch requests.
6351	NullFields []string `json:"-"`
6352}
6353
6354func (s *FirewallList) MarshalJSON() ([]byte, error) {
6355	type NoMethod FirewallList
6356	raw := NoMethod(*s)
6357	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6358}
6359
6360// FirewallListWarning: [Output Only] Informational warning message.
6361type FirewallListWarning struct {
6362	// Code: [Output Only] A warning code, if applicable. For example,
6363	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6364	// the response.
6365	//
6366	// Possible values:
6367	//   "CLEANUP_FAILED"
6368	//   "DEPRECATED_RESOURCE_USED"
6369	//   "DEPRECATED_TYPE_USED"
6370	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6371	//   "EXPERIMENTAL_TYPE_USED"
6372	//   "EXTERNAL_API_WARNING"
6373	//   "FIELD_VALUE_OVERRIDEN"
6374	//   "INJECTED_KERNELS_DEPRECATED"
6375	//   "MISSING_TYPE_DEPENDENCY"
6376	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6377	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6378	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6379	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6380	//   "NEXT_HOP_NOT_RUNNING"
6381	//   "NOT_CRITICAL_ERROR"
6382	//   "NO_RESULTS_ON_PAGE"
6383	//   "REQUIRED_TOS_AGREEMENT"
6384	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6385	//   "RESOURCE_NOT_DELETED"
6386	//   "SCHEMA_VALIDATION_IGNORED"
6387	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6388	//   "UNDECLARED_PROPERTIES"
6389	//   "UNREACHABLE"
6390	Code string `json:"code,omitempty"`
6391
6392	// Data: [Output Only] Metadata about this warning in key: value format.
6393	// For example:
6394	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6395	Data []*FirewallListWarningData `json:"data,omitempty"`
6396
6397	// Message: [Output Only] A human-readable description of the warning
6398	// code.
6399	Message string `json:"message,omitempty"`
6400
6401	// ForceSendFields is a list of field names (e.g. "Code") to
6402	// unconditionally include in API requests. By default, fields with
6403	// empty values are omitted from API requests. However, any non-pointer,
6404	// non-interface field appearing in ForceSendFields will be sent to the
6405	// server regardless of whether the field is empty or not. This may be
6406	// used to include empty fields in Patch requests.
6407	ForceSendFields []string `json:"-"`
6408
6409	// NullFields is a list of field names (e.g. "Code") to include in API
6410	// requests with the JSON null value. By default, fields with empty
6411	// values are omitted from API requests. However, any field with an
6412	// empty value appearing in NullFields will be sent to the server as
6413	// null. It is an error if a field in this list has a non-empty value.
6414	// This may be used to include null fields in Patch requests.
6415	NullFields []string `json:"-"`
6416}
6417
6418func (s *FirewallListWarning) MarshalJSON() ([]byte, error) {
6419	type NoMethod FirewallListWarning
6420	raw := NoMethod(*s)
6421	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6422}
6423
6424type FirewallListWarningData struct {
6425	// Key: [Output Only] A key that provides more detail on the warning
6426	// being returned. For example, for warnings where there are no results
6427	// in a list request for a particular zone, this key might be scope and
6428	// the key value might be the zone name. Other examples might be a key
6429	// indicating a deprecated resource and a suggested replacement, or a
6430	// warning about invalid network settings (for example, if an instance
6431	// attempts to perform IP forwarding but is not enabled for IP
6432	// forwarding).
6433	Key string `json:"key,omitempty"`
6434
6435	// Value: [Output Only] A warning data value corresponding to the key.
6436	Value string `json:"value,omitempty"`
6437
6438	// ForceSendFields is a list of field names (e.g. "Key") to
6439	// unconditionally include in API requests. By default, fields with
6440	// empty values are omitted from API requests. However, any non-pointer,
6441	// non-interface field appearing in ForceSendFields will be sent to the
6442	// server regardless of whether the field is empty or not. This may be
6443	// used to include empty fields in Patch requests.
6444	ForceSendFields []string `json:"-"`
6445
6446	// NullFields is a list of field names (e.g. "Key") to include in API
6447	// requests with the JSON null value. By default, fields with empty
6448	// values are omitted from API requests. However, any field with an
6449	// empty value appearing in NullFields will be sent to the server as
6450	// null. It is an error if a field in this list has a non-empty value.
6451	// This may be used to include null fields in Patch requests.
6452	NullFields []string `json:"-"`
6453}
6454
6455func (s *FirewallListWarningData) MarshalJSON() ([]byte, error) {
6456	type NoMethod FirewallListWarningData
6457	raw := NoMethod(*s)
6458	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6459}
6460
6461// ForwardingRule: A ForwardingRule resource. A ForwardingRule resource
6462// specifies which pool of target virtual machines to forward a packet
6463// to if it matches the given [IPAddress, IPProtocol, ports] tuple. (==
6464// resource_for beta.forwardingRules ==) (== resource_for
6465// v1.forwardingRules ==) (== resource_for beta.globalForwardingRules
6466// ==) (== resource_for v1.globalForwardingRules ==) (== resource_for
6467// beta.regionForwardingRules ==) (== resource_for
6468// v1.regionForwardingRules ==)
6469type ForwardingRule struct {
6470	// IPAddress: The IP address that this forwarding rule is serving on
6471	// behalf of.
6472	//
6473	// Addresses are restricted based on the forwarding rule's load
6474	// balancing scheme (EXTERNAL or INTERNAL) and scope (global or
6475	// regional).
6476	//
6477	// When the load balancing scheme is EXTERNAL, for global forwarding
6478	// rules, the address must be a global IP, and for regional forwarding
6479	// rules, the address must live in the same region as the forwarding
6480	// rule. If this field is empty, an ephemeral IPv4 address from the same
6481	// scope (global or regional) will be assigned. A regional forwarding
6482	// rule supports IPv4 only. A global forwarding rule supports either
6483	// IPv4 or IPv6.
6484	//
6485	// When the load balancing scheme is INTERNAL, this can only be an RFC
6486	// 1918 IP address belonging to the network/subnet configured for the
6487	// forwarding rule. By default, if this field is empty, an ephemeral
6488	// internal IP address will be automatically allocated from the IP range
6489	// of the subnet or network configured for this forwarding rule.
6490	//
6491	// An address can be specified either by a literal IP address or a URL
6492	// reference to an existing Address resource. The following examples are
6493	// all valid:
6494	// - 100.1.2.3
6495	// -
6496	// https://www.googleapis.com/compute/v1/projects/project/regions/region/addresses/address
6497	// - projects/project/regions/region/addresses/address
6498	// - regions/region/addresses/address
6499	// - global/addresses/address
6500	// - address
6501	IPAddress string `json:"IPAddress,omitempty"`
6502
6503	// IPProtocol: The IP protocol to which this rule applies. Valid options
6504	// are TCP, UDP, ESP, AH, SCTP or ICMP.
6505	//
6506	// When the load balancing scheme is INTERNAL, only TCP and UDP are
6507	// valid.
6508	//
6509	// Possible values:
6510	//   "AH"
6511	//   "ESP"
6512	//   "ICMP"
6513	//   "SCTP"
6514	//   "TCP"
6515	//   "UDP"
6516	IPProtocol string `json:"IPProtocol,omitempty"`
6517
6518	// BackendService: This field is not used for external load
6519	// balancing.
6520	//
6521	// For internal load balancing, this field identifies the BackendService
6522	// resource to receive the matched traffic.
6523	BackendService string `json:"backendService,omitempty"`
6524
6525	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
6526	// format.
6527	CreationTimestamp string `json:"creationTimestamp,omitempty"`
6528
6529	// Description: An optional description of this resource. Provide this
6530	// property when you create the resource.
6531	Description string `json:"description,omitempty"`
6532
6533	// Id: [Output Only] The unique identifier for the resource. This
6534	// identifier is defined by the server.
6535	Id uint64 `json:"id,omitempty,string"`
6536
6537	// IpVersion: The IP Version that will be used by this forwarding rule.
6538	// Valid options are IPV4 or IPV6. This can only be specified for a
6539	// global forwarding rule.
6540	//
6541	// Possible values:
6542	//   "IPV4"
6543	//   "IPV6"
6544	//   "UNSPECIFIED_VERSION"
6545	IpVersion string `json:"ipVersion,omitempty"`
6546
6547	// Kind: [Output Only] Type of the resource. Always
6548	// compute#forwardingRule for Forwarding Rule resources.
6549	Kind string `json:"kind,omitempty"`
6550
6551	// LoadBalancingScheme: This signifies what the ForwardingRule will be
6552	// used for and can only take the following values: INTERNAL, EXTERNAL
6553	// The value of INTERNAL means that this will be used for Internal
6554	// Network Load Balancing (TCP, UDP). The value of EXTERNAL means that
6555	// this will be used for External Load Balancing (HTTP(S) LB, External
6556	// TCP/UDP LB, SSL Proxy)
6557	//
6558	// Possible values:
6559	//   "EXTERNAL"
6560	//   "INTERNAL"
6561	//   "INVALID"
6562	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
6563
6564	// Name: Name of the resource; provided by the client when the resource
6565	// is created. The name must be 1-63 characters long, and comply with
6566	// RFC1035. Specifically, the name must be 1-63 characters long and
6567	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
6568	// the first character must be a lowercase letter, and all following
6569	// characters must be a dash, lowercase letter, or digit, except the
6570	// last character, which cannot be a dash.
6571	Name string `json:"name,omitempty"`
6572
6573	// Network: This field is not used for external load balancing.
6574	//
6575	// For internal load balancing, this field identifies the network that
6576	// the load balanced IP should belong to for this Forwarding Rule. If
6577	// this field is not specified, the default network will be used.
6578	Network string `json:"network,omitempty"`
6579
6580	// PortRange: This field is used along with the target field for
6581	// TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy,
6582	// TargetVpnGateway, TargetPool, TargetInstance.
6583	//
6584	// Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets
6585	// addressed to ports in the specified range will be forwarded to
6586	// target. Forwarding rules with the same [IPAddress, IPProtocol] pair
6587	// must have disjoint port ranges.
6588	//
6589	// Some types of forwarding target have constraints on the acceptable
6590	// ports:
6591	// - TargetHttpProxy: 80, 8080
6592	// - TargetHttpsProxy: 443
6593	// - TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
6594	// 995, 1688, 1883, 5222
6595	// - TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
6596	// 995, 1688, 1883, 5222
6597	// - TargetVpnGateway: 500, 4500
6598	PortRange string `json:"portRange,omitempty"`
6599
6600	// Ports: This field is used along with the backend_service field for
6601	// internal load balancing.
6602	//
6603	// When the load balancing scheme is INTERNAL, a single port or a comma
6604	// separated list of ports can be configured. Only packets addressed to
6605	// these ports will be forwarded to the backends configured with this
6606	// forwarding rule.
6607	//
6608	// You may specify a maximum of up to 5 ports.
6609	Ports []string `json:"ports,omitempty"`
6610
6611	// Region: [Output Only] URL of the region where the regional forwarding
6612	// rule resides. This field is not applicable to global forwarding
6613	// rules. You must specify this field as part of the HTTP request URL.
6614	// It is not settable as a field in the request body.
6615	Region string `json:"region,omitempty"`
6616
6617	// SelfLink: [Output Only] Server-defined URL for the resource.
6618	SelfLink string `json:"selfLink,omitempty"`
6619
6620	// Subnetwork: This field is not used for external load balancing.
6621	//
6622	// For internal load balancing, this field identifies the subnetwork
6623	// that the load balanced IP should belong to for this Forwarding
6624	// Rule.
6625	//
6626	// If the network specified is in auto subnet mode, this field is
6627	// optional. However, if the network is in custom subnet mode, a
6628	// subnetwork must be specified.
6629	Subnetwork string `json:"subnetwork,omitempty"`
6630
6631	// Target: The URL of the target resource to receive the matched
6632	// traffic. For regional forwarding rules, this target must live in the
6633	// same region as the forwarding rule. For global forwarding rules, this
6634	// target must be a global load balancing resource. The forwarded
6635	// traffic must be of a type appropriate to the target object.
6636	Target string `json:"target,omitempty"`
6637
6638	// ServerResponse contains the HTTP response code and headers from the
6639	// server.
6640	googleapi.ServerResponse `json:"-"`
6641
6642	// ForceSendFields is a list of field names (e.g. "IPAddress") to
6643	// unconditionally include in API requests. By default, fields with
6644	// empty values are omitted from API requests. However, any non-pointer,
6645	// non-interface field appearing in ForceSendFields will be sent to the
6646	// server regardless of whether the field is empty or not. This may be
6647	// used to include empty fields in Patch requests.
6648	ForceSendFields []string `json:"-"`
6649
6650	// NullFields is a list of field names (e.g. "IPAddress") to include in
6651	// API requests with the JSON null value. By default, fields with empty
6652	// values are omitted from API requests. However, any field with an
6653	// empty value appearing in NullFields will be sent to the server as
6654	// null. It is an error if a field in this list has a non-empty value.
6655	// This may be used to include null fields in Patch requests.
6656	NullFields []string `json:"-"`
6657}
6658
6659func (s *ForwardingRule) MarshalJSON() ([]byte, error) {
6660	type NoMethod ForwardingRule
6661	raw := NoMethod(*s)
6662	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6663}
6664
6665type ForwardingRuleAggregatedList struct {
6666	// Id: [Output Only] Unique identifier for the resource; defined by the
6667	// server.
6668	Id string `json:"id,omitempty"`
6669
6670	// Items: A list of ForwardingRulesScopedList resources.
6671	Items map[string]ForwardingRulesScopedList `json:"items,omitempty"`
6672
6673	// Kind: [Output Only] Type of resource. Always
6674	// compute#forwardingRuleAggregatedList for lists of forwarding rules.
6675	Kind string `json:"kind,omitempty"`
6676
6677	// NextPageToken: [Output Only] This token allows you to get the next
6678	// page of results for list requests. If the number of results is larger
6679	// than maxResults, use the nextPageToken as a value for the query
6680	// parameter pageToken in the next list request. Subsequent list
6681	// requests will have their own nextPageToken to continue paging through
6682	// the results.
6683	NextPageToken string `json:"nextPageToken,omitempty"`
6684
6685	// SelfLink: [Output Only] Server-defined URL for this resource.
6686	SelfLink string `json:"selfLink,omitempty"`
6687
6688	// Warning: [Output Only] Informational warning message.
6689	Warning *ForwardingRuleAggregatedListWarning `json:"warning,omitempty"`
6690
6691	// ServerResponse contains the HTTP response code and headers from the
6692	// server.
6693	googleapi.ServerResponse `json:"-"`
6694
6695	// ForceSendFields is a list of field names (e.g. "Id") to
6696	// unconditionally include in API requests. By default, fields with
6697	// empty values are omitted from API requests. However, any non-pointer,
6698	// non-interface field appearing in ForceSendFields will be sent to the
6699	// server regardless of whether the field is empty or not. This may be
6700	// used to include empty fields in Patch requests.
6701	ForceSendFields []string `json:"-"`
6702
6703	// NullFields is a list of field names (e.g. "Id") to include in API
6704	// requests with the JSON null value. By default, fields with empty
6705	// values are omitted from API requests. However, any field with an
6706	// empty value appearing in NullFields will be sent to the server as
6707	// null. It is an error if a field in this list has a non-empty value.
6708	// This may be used to include null fields in Patch requests.
6709	NullFields []string `json:"-"`
6710}
6711
6712func (s *ForwardingRuleAggregatedList) MarshalJSON() ([]byte, error) {
6713	type NoMethod ForwardingRuleAggregatedList
6714	raw := NoMethod(*s)
6715	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6716}
6717
6718// ForwardingRuleAggregatedListWarning: [Output Only] Informational
6719// warning message.
6720type ForwardingRuleAggregatedListWarning struct {
6721	// Code: [Output Only] A warning code, if applicable. For example,
6722	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6723	// the response.
6724	//
6725	// Possible values:
6726	//   "CLEANUP_FAILED"
6727	//   "DEPRECATED_RESOURCE_USED"
6728	//   "DEPRECATED_TYPE_USED"
6729	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6730	//   "EXPERIMENTAL_TYPE_USED"
6731	//   "EXTERNAL_API_WARNING"
6732	//   "FIELD_VALUE_OVERRIDEN"
6733	//   "INJECTED_KERNELS_DEPRECATED"
6734	//   "MISSING_TYPE_DEPENDENCY"
6735	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6736	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6737	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6738	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6739	//   "NEXT_HOP_NOT_RUNNING"
6740	//   "NOT_CRITICAL_ERROR"
6741	//   "NO_RESULTS_ON_PAGE"
6742	//   "REQUIRED_TOS_AGREEMENT"
6743	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6744	//   "RESOURCE_NOT_DELETED"
6745	//   "SCHEMA_VALIDATION_IGNORED"
6746	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6747	//   "UNDECLARED_PROPERTIES"
6748	//   "UNREACHABLE"
6749	Code string `json:"code,omitempty"`
6750
6751	// Data: [Output Only] Metadata about this warning in key: value format.
6752	// For example:
6753	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6754	Data []*ForwardingRuleAggregatedListWarningData `json:"data,omitempty"`
6755
6756	// Message: [Output Only] A human-readable description of the warning
6757	// code.
6758	Message string `json:"message,omitempty"`
6759
6760	// ForceSendFields is a list of field names (e.g. "Code") to
6761	// unconditionally include in API requests. By default, fields with
6762	// empty values are omitted from API requests. However, any non-pointer,
6763	// non-interface field appearing in ForceSendFields will be sent to the
6764	// server regardless of whether the field is empty or not. This may be
6765	// used to include empty fields in Patch requests.
6766	ForceSendFields []string `json:"-"`
6767
6768	// NullFields is a list of field names (e.g. "Code") to include in API
6769	// requests with the JSON null value. By default, fields with empty
6770	// values are omitted from API requests. However, any field with an
6771	// empty value appearing in NullFields will be sent to the server as
6772	// null. It is an error if a field in this list has a non-empty value.
6773	// This may be used to include null fields in Patch requests.
6774	NullFields []string `json:"-"`
6775}
6776
6777func (s *ForwardingRuleAggregatedListWarning) MarshalJSON() ([]byte, error) {
6778	type NoMethod ForwardingRuleAggregatedListWarning
6779	raw := NoMethod(*s)
6780	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6781}
6782
6783type ForwardingRuleAggregatedListWarningData struct {
6784	// Key: [Output Only] A key that provides more detail on the warning
6785	// being returned. For example, for warnings where there are no results
6786	// in a list request for a particular zone, this key might be scope and
6787	// the key value might be the zone name. Other examples might be a key
6788	// indicating a deprecated resource and a suggested replacement, or a
6789	// warning about invalid network settings (for example, if an instance
6790	// attempts to perform IP forwarding but is not enabled for IP
6791	// forwarding).
6792	Key string `json:"key,omitempty"`
6793
6794	// Value: [Output Only] A warning data value corresponding to the key.
6795	Value string `json:"value,omitempty"`
6796
6797	// ForceSendFields is a list of field names (e.g. "Key") to
6798	// unconditionally include in API requests. By default, fields with
6799	// empty values are omitted from API requests. However, any non-pointer,
6800	// non-interface field appearing in ForceSendFields will be sent to the
6801	// server regardless of whether the field is empty or not. This may be
6802	// used to include empty fields in Patch requests.
6803	ForceSendFields []string `json:"-"`
6804
6805	// NullFields is a list of field names (e.g. "Key") to include in API
6806	// requests with the JSON null value. By default, fields with empty
6807	// values are omitted from API requests. However, any field with an
6808	// empty value appearing in NullFields will be sent to the server as
6809	// null. It is an error if a field in this list has a non-empty value.
6810	// This may be used to include null fields in Patch requests.
6811	NullFields []string `json:"-"`
6812}
6813
6814func (s *ForwardingRuleAggregatedListWarningData) MarshalJSON() ([]byte, error) {
6815	type NoMethod ForwardingRuleAggregatedListWarningData
6816	raw := NoMethod(*s)
6817	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6818}
6819
6820// ForwardingRuleList: Contains a list of ForwardingRule resources.
6821type ForwardingRuleList struct {
6822	// Id: [Output Only] Unique identifier for the resource; defined by the
6823	// server.
6824	Id string `json:"id,omitempty"`
6825
6826	// Items: A list of ForwardingRule resources.
6827	Items []*ForwardingRule `json:"items,omitempty"`
6828
6829	// Kind: Type of resource.
6830	Kind string `json:"kind,omitempty"`
6831
6832	// NextPageToken: [Output Only] This token allows you to get the next
6833	// page of results for list requests. If the number of results is larger
6834	// than maxResults, use the nextPageToken as a value for the query
6835	// parameter pageToken in the next list request. Subsequent list
6836	// requests will have their own nextPageToken to continue paging through
6837	// the results.
6838	NextPageToken string `json:"nextPageToken,omitempty"`
6839
6840	// SelfLink: [Output Only] Server-defined URL for this resource.
6841	SelfLink string `json:"selfLink,omitempty"`
6842
6843	// Warning: [Output Only] Informational warning message.
6844	Warning *ForwardingRuleListWarning `json:"warning,omitempty"`
6845
6846	// ServerResponse contains the HTTP response code and headers from the
6847	// server.
6848	googleapi.ServerResponse `json:"-"`
6849
6850	// ForceSendFields is a list of field names (e.g. "Id") to
6851	// unconditionally include in API requests. By default, fields with
6852	// empty values are omitted from API requests. However, any non-pointer,
6853	// non-interface field appearing in ForceSendFields will be sent to the
6854	// server regardless of whether the field is empty or not. This may be
6855	// used to include empty fields in Patch requests.
6856	ForceSendFields []string `json:"-"`
6857
6858	// NullFields is a list of field names (e.g. "Id") to include in API
6859	// requests with the JSON null value. By default, fields with empty
6860	// values are omitted from API requests. However, any field with an
6861	// empty value appearing in NullFields will be sent to the server as
6862	// null. It is an error if a field in this list has a non-empty value.
6863	// This may be used to include null fields in Patch requests.
6864	NullFields []string `json:"-"`
6865}
6866
6867func (s *ForwardingRuleList) MarshalJSON() ([]byte, error) {
6868	type NoMethod ForwardingRuleList
6869	raw := NoMethod(*s)
6870	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6871}
6872
6873// ForwardingRuleListWarning: [Output Only] Informational warning
6874// message.
6875type ForwardingRuleListWarning struct {
6876	// Code: [Output Only] A warning code, if applicable. For example,
6877	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6878	// the response.
6879	//
6880	// Possible values:
6881	//   "CLEANUP_FAILED"
6882	//   "DEPRECATED_RESOURCE_USED"
6883	//   "DEPRECATED_TYPE_USED"
6884	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6885	//   "EXPERIMENTAL_TYPE_USED"
6886	//   "EXTERNAL_API_WARNING"
6887	//   "FIELD_VALUE_OVERRIDEN"
6888	//   "INJECTED_KERNELS_DEPRECATED"
6889	//   "MISSING_TYPE_DEPENDENCY"
6890	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6891	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6892	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6893	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6894	//   "NEXT_HOP_NOT_RUNNING"
6895	//   "NOT_CRITICAL_ERROR"
6896	//   "NO_RESULTS_ON_PAGE"
6897	//   "REQUIRED_TOS_AGREEMENT"
6898	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6899	//   "RESOURCE_NOT_DELETED"
6900	//   "SCHEMA_VALIDATION_IGNORED"
6901	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6902	//   "UNDECLARED_PROPERTIES"
6903	//   "UNREACHABLE"
6904	Code string `json:"code,omitempty"`
6905
6906	// Data: [Output Only] Metadata about this warning in key: value format.
6907	// For example:
6908	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6909	Data []*ForwardingRuleListWarningData `json:"data,omitempty"`
6910
6911	// Message: [Output Only] A human-readable description of the warning
6912	// code.
6913	Message string `json:"message,omitempty"`
6914
6915	// ForceSendFields is a list of field names (e.g. "Code") to
6916	// unconditionally include in API requests. By default, fields with
6917	// empty values are omitted from API requests. However, any non-pointer,
6918	// non-interface field appearing in ForceSendFields will be sent to the
6919	// server regardless of whether the field is empty or not. This may be
6920	// used to include empty fields in Patch requests.
6921	ForceSendFields []string `json:"-"`
6922
6923	// NullFields is a list of field names (e.g. "Code") to include in API
6924	// requests with the JSON null value. By default, fields with empty
6925	// values are omitted from API requests. However, any field with an
6926	// empty value appearing in NullFields will be sent to the server as
6927	// null. It is an error if a field in this list has a non-empty value.
6928	// This may be used to include null fields in Patch requests.
6929	NullFields []string `json:"-"`
6930}
6931
6932func (s *ForwardingRuleListWarning) MarshalJSON() ([]byte, error) {
6933	type NoMethod ForwardingRuleListWarning
6934	raw := NoMethod(*s)
6935	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6936}
6937
6938type ForwardingRuleListWarningData struct {
6939	// Key: [Output Only] A key that provides more detail on the warning
6940	// being returned. For example, for warnings where there are no results
6941	// in a list request for a particular zone, this key might be scope and
6942	// the key value might be the zone name. Other examples might be a key
6943	// indicating a deprecated resource and a suggested replacement, or a
6944	// warning about invalid network settings (for example, if an instance
6945	// attempts to perform IP forwarding but is not enabled for IP
6946	// forwarding).
6947	Key string `json:"key,omitempty"`
6948
6949	// Value: [Output Only] A warning data value corresponding to the key.
6950	Value string `json:"value,omitempty"`
6951
6952	// ForceSendFields is a list of field names (e.g. "Key") to
6953	// unconditionally include in API requests. By default, fields with
6954	// empty values are omitted from API requests. However, any non-pointer,
6955	// non-interface field appearing in ForceSendFields will be sent to the
6956	// server regardless of whether the field is empty or not. This may be
6957	// used to include empty fields in Patch requests.
6958	ForceSendFields []string `json:"-"`
6959
6960	// NullFields is a list of field names (e.g. "Key") to include in API
6961	// requests with the JSON null value. By default, fields with empty
6962	// values are omitted from API requests. However, any field with an
6963	// empty value appearing in NullFields will be sent to the server as
6964	// null. It is an error if a field in this list has a non-empty value.
6965	// This may be used to include null fields in Patch requests.
6966	NullFields []string `json:"-"`
6967}
6968
6969func (s *ForwardingRuleListWarningData) MarshalJSON() ([]byte, error) {
6970	type NoMethod ForwardingRuleListWarningData
6971	raw := NoMethod(*s)
6972	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6973}
6974
6975type ForwardingRulesScopedList struct {
6976	// ForwardingRules: A list of forwarding rules contained in this scope.
6977	ForwardingRules []*ForwardingRule `json:"forwardingRules,omitempty"`
6978
6979	// Warning: Informational warning which replaces the list of forwarding
6980	// rules when the list is empty.
6981	Warning *ForwardingRulesScopedListWarning `json:"warning,omitempty"`
6982
6983	// ForceSendFields is a list of field names (e.g. "ForwardingRules") to
6984	// unconditionally include in API requests. By default, fields with
6985	// empty values are omitted from API requests. However, any non-pointer,
6986	// non-interface field appearing in ForceSendFields will be sent to the
6987	// server regardless of whether the field is empty or not. This may be
6988	// used to include empty fields in Patch requests.
6989	ForceSendFields []string `json:"-"`
6990
6991	// NullFields is a list of field names (e.g. "ForwardingRules") to
6992	// include in API requests with the JSON null value. By default, fields
6993	// with empty values are omitted from API requests. However, any field
6994	// with an empty value appearing in NullFields will be sent to the
6995	// server as null. It is an error if a field in this list has a
6996	// non-empty value. This may be used to include null fields in Patch
6997	// requests.
6998	NullFields []string `json:"-"`
6999}
7000
7001func (s *ForwardingRulesScopedList) MarshalJSON() ([]byte, error) {
7002	type NoMethod ForwardingRulesScopedList
7003	raw := NoMethod(*s)
7004	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7005}
7006
7007// ForwardingRulesScopedListWarning: Informational warning which
7008// replaces the list of forwarding rules when the list is empty.
7009type ForwardingRulesScopedListWarning struct {
7010	// Code: [Output Only] A warning code, if applicable. For example,
7011	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7012	// the response.
7013	//
7014	// Possible values:
7015	//   "CLEANUP_FAILED"
7016	//   "DEPRECATED_RESOURCE_USED"
7017	//   "DEPRECATED_TYPE_USED"
7018	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7019	//   "EXPERIMENTAL_TYPE_USED"
7020	//   "EXTERNAL_API_WARNING"
7021	//   "FIELD_VALUE_OVERRIDEN"
7022	//   "INJECTED_KERNELS_DEPRECATED"
7023	//   "MISSING_TYPE_DEPENDENCY"
7024	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7025	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7026	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7027	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7028	//   "NEXT_HOP_NOT_RUNNING"
7029	//   "NOT_CRITICAL_ERROR"
7030	//   "NO_RESULTS_ON_PAGE"
7031	//   "REQUIRED_TOS_AGREEMENT"
7032	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7033	//   "RESOURCE_NOT_DELETED"
7034	//   "SCHEMA_VALIDATION_IGNORED"
7035	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7036	//   "UNDECLARED_PROPERTIES"
7037	//   "UNREACHABLE"
7038	Code string `json:"code,omitempty"`
7039
7040	// Data: [Output Only] Metadata about this warning in key: value format.
7041	// For example:
7042	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7043	Data []*ForwardingRulesScopedListWarningData `json:"data,omitempty"`
7044
7045	// Message: [Output Only] A human-readable description of the warning
7046	// code.
7047	Message string `json:"message,omitempty"`
7048
7049	// ForceSendFields is a list of field names (e.g. "Code") to
7050	// unconditionally include in API requests. By default, fields with
7051	// empty values are omitted from API requests. However, any non-pointer,
7052	// non-interface field appearing in ForceSendFields will be sent to the
7053	// server regardless of whether the field is empty or not. This may be
7054	// used to include empty fields in Patch requests.
7055	ForceSendFields []string `json:"-"`
7056
7057	// NullFields is a list of field names (e.g. "Code") to include in API
7058	// requests with the JSON null value. By default, fields with empty
7059	// values are omitted from API requests. However, any field with an
7060	// empty value appearing in NullFields will be sent to the server as
7061	// null. It is an error if a field in this list has a non-empty value.
7062	// This may be used to include null fields in Patch requests.
7063	NullFields []string `json:"-"`
7064}
7065
7066func (s *ForwardingRulesScopedListWarning) MarshalJSON() ([]byte, error) {
7067	type NoMethod ForwardingRulesScopedListWarning
7068	raw := NoMethod(*s)
7069	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7070}
7071
7072type ForwardingRulesScopedListWarningData struct {
7073	// Key: [Output Only] A key that provides more detail on the warning
7074	// being returned. For example, for warnings where there are no results
7075	// in a list request for a particular zone, this key might be scope and
7076	// the key value might be the zone name. Other examples might be a key
7077	// indicating a deprecated resource and a suggested replacement, or a
7078	// warning about invalid network settings (for example, if an instance
7079	// attempts to perform IP forwarding but is not enabled for IP
7080	// forwarding).
7081	Key string `json:"key,omitempty"`
7082
7083	// Value: [Output Only] A warning data value corresponding to the key.
7084	Value string `json:"value,omitempty"`
7085
7086	// ForceSendFields is a list of field names (e.g. "Key") to
7087	// unconditionally include in API requests. By default, fields with
7088	// empty values are omitted from API requests. However, any non-pointer,
7089	// non-interface field appearing in ForceSendFields will be sent to the
7090	// server regardless of whether the field is empty or not. This may be
7091	// used to include empty fields in Patch requests.
7092	ForceSendFields []string `json:"-"`
7093
7094	// NullFields is a list of field names (e.g. "Key") to include in API
7095	// requests with the JSON null value. By default, fields with empty
7096	// values are omitted from API requests. However, any field with an
7097	// empty value appearing in NullFields will be sent to the server as
7098	// null. It is an error if a field in this list has a non-empty value.
7099	// This may be used to include null fields in Patch requests.
7100	NullFields []string `json:"-"`
7101}
7102
7103func (s *ForwardingRulesScopedListWarningData) MarshalJSON() ([]byte, error) {
7104	type NoMethod ForwardingRulesScopedListWarningData
7105	raw := NoMethod(*s)
7106	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7107}
7108
7109type GlobalSetLabelsRequest struct {
7110	// LabelFingerprint: The fingerprint of the previous set of labels for
7111	// this resource, used to detect conflicts. The fingerprint is initially
7112	// generated by Compute Engine and changes after every request to modify
7113	// or update labels. You must always provide an up-to-date fingerprint
7114	// hash when updating or changing labels. Make a get() request to the
7115	// resource to get the latest fingerprint.
7116	LabelFingerprint string `json:"labelFingerprint,omitempty"`
7117
7118	// Labels: A list of labels to apply for this resource. Each label key &
7119	// value must comply with RFC1035. Specifically, the name must be 1-63
7120	// characters long and match the regular expression
7121	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
7122	// a lowercase letter, and all following characters must be a dash,
7123	// lowercase letter, or digit, except the last character, which cannot
7124	// be a dash. For example, "webserver-frontend": "images". A label value
7125	// can also be empty (e.g. "my-label": "").
7126	Labels map[string]string `json:"labels,omitempty"`
7127
7128	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
7129	// unconditionally include in API requests. By default, fields with
7130	// empty values are omitted from API requests. However, any non-pointer,
7131	// non-interface field appearing in ForceSendFields will be sent to the
7132	// server regardless of whether the field is empty or not. This may be
7133	// used to include empty fields in Patch requests.
7134	ForceSendFields []string `json:"-"`
7135
7136	// NullFields is a list of field names (e.g. "LabelFingerprint") to
7137	// include in API requests with the JSON null value. By default, fields
7138	// with empty values are omitted from API requests. However, any field
7139	// with an empty value appearing in NullFields will be sent to the
7140	// server as null. It is an error if a field in this list has a
7141	// non-empty value. This may be used to include null fields in Patch
7142	// requests.
7143	NullFields []string `json:"-"`
7144}
7145
7146func (s *GlobalSetLabelsRequest) MarshalJSON() ([]byte, error) {
7147	type NoMethod GlobalSetLabelsRequest
7148	raw := NoMethod(*s)
7149	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7150}
7151
7152// GuestOsFeature: Guest OS features.
7153type GuestOsFeature struct {
7154	// Type: The ID of a supported feature. Read  Enabling guest operating
7155	// system features to see a list of available options.
7156	//
7157	// Possible values:
7158	//   "FEATURE_TYPE_UNSPECIFIED"
7159	//   "MULTI_IP_SUBNET"
7160	//   "SECURE_BOOT"
7161	//   "UEFI_COMPATIBLE"
7162	//   "VIRTIO_SCSI_MULTIQUEUE"
7163	//   "WINDOWS"
7164	Type string `json:"type,omitempty"`
7165
7166	// ForceSendFields is a list of field names (e.g. "Type") to
7167	// unconditionally include in API requests. By default, fields with
7168	// empty values are omitted from API requests. However, any non-pointer,
7169	// non-interface field appearing in ForceSendFields will be sent to the
7170	// server regardless of whether the field is empty or not. This may be
7171	// used to include empty fields in Patch requests.
7172	ForceSendFields []string `json:"-"`
7173
7174	// NullFields is a list of field names (e.g. "Type") to include in API
7175	// requests with the JSON null value. By default, fields with empty
7176	// values are omitted from API requests. However, any field with an
7177	// empty value appearing in NullFields will be sent to the server as
7178	// null. It is an error if a field in this list has a non-empty value.
7179	// This may be used to include null fields in Patch requests.
7180	NullFields []string `json:"-"`
7181}
7182
7183func (s *GuestOsFeature) MarshalJSON() ([]byte, error) {
7184	type NoMethod GuestOsFeature
7185	raw := NoMethod(*s)
7186	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7187}
7188
7189type HTTPHealthCheck struct {
7190	// Host: The value of the host header in the HTTP health check request.
7191	// If left empty (default value), the IP on behalf of which this health
7192	// check is performed will be used.
7193	Host string `json:"host,omitempty"`
7194
7195	// Port: The TCP port number for the health check request. The default
7196	// value is 80. Valid values are 1 through 65535.
7197	Port int64 `json:"port,omitempty"`
7198
7199	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
7200	// both port and port_name are defined, port takes precedence.
7201	PortName string `json:"portName,omitempty"`
7202
7203	// ProxyHeader: Specifies the type of proxy header to append before
7204	// sending data to the backend, either NONE or PROXY_V1. The default is
7205	// NONE.
7206	//
7207	// Possible values:
7208	//   "NONE"
7209	//   "PROXY_V1"
7210	ProxyHeader string `json:"proxyHeader,omitempty"`
7211
7212	// RequestPath: The request path of the HTTP health check request. The
7213	// default value is /.
7214	RequestPath string `json:"requestPath,omitempty"`
7215
7216	// ForceSendFields is a list of field names (e.g. "Host") to
7217	// unconditionally include in API requests. By default, fields with
7218	// empty values are omitted from API requests. However, any non-pointer,
7219	// non-interface field appearing in ForceSendFields will be sent to the
7220	// server regardless of whether the field is empty or not. This may be
7221	// used to include empty fields in Patch requests.
7222	ForceSendFields []string `json:"-"`
7223
7224	// NullFields is a list of field names (e.g. "Host") to include in API
7225	// requests with the JSON null value. By default, fields with empty
7226	// values are omitted from API requests. However, any field with an
7227	// empty value appearing in NullFields will be sent to the server as
7228	// null. It is an error if a field in this list has a non-empty value.
7229	// This may be used to include null fields in Patch requests.
7230	NullFields []string `json:"-"`
7231}
7232
7233func (s *HTTPHealthCheck) MarshalJSON() ([]byte, error) {
7234	type NoMethod HTTPHealthCheck
7235	raw := NoMethod(*s)
7236	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7237}
7238
7239type HTTPSHealthCheck struct {
7240	// Host: The value of the host header in the HTTPS health check request.
7241	// If left empty (default value), the IP on behalf of which this health
7242	// check is performed will be used.
7243	Host string `json:"host,omitempty"`
7244
7245	// Port: The TCP port number for the health check request. The default
7246	// value is 443. Valid values are 1 through 65535.
7247	Port int64 `json:"port,omitempty"`
7248
7249	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
7250	// both port and port_name are defined, port takes precedence.
7251	PortName string `json:"portName,omitempty"`
7252
7253	// ProxyHeader: Specifies the type of proxy header to append before
7254	// sending data to the backend, either NONE or PROXY_V1. The default is
7255	// NONE.
7256	//
7257	// Possible values:
7258	//   "NONE"
7259	//   "PROXY_V1"
7260	ProxyHeader string `json:"proxyHeader,omitempty"`
7261
7262	// RequestPath: The request path of the HTTPS health check request. The
7263	// default value is /.
7264	RequestPath string `json:"requestPath,omitempty"`
7265
7266	// ForceSendFields is a list of field names (e.g. "Host") to
7267	// unconditionally include in API requests. By default, fields with
7268	// empty values are omitted from API requests. However, any non-pointer,
7269	// non-interface field appearing in ForceSendFields will be sent to the
7270	// server regardless of whether the field is empty or not. This may be
7271	// used to include empty fields in Patch requests.
7272	ForceSendFields []string `json:"-"`
7273
7274	// NullFields is a list of field names (e.g. "Host") to include in API
7275	// requests with the JSON null value. By default, fields with empty
7276	// values are omitted from API requests. However, any field with an
7277	// empty value appearing in NullFields will be sent to the server as
7278	// null. It is an error if a field in this list has a non-empty value.
7279	// This may be used to include null fields in Patch requests.
7280	NullFields []string `json:"-"`
7281}
7282
7283func (s *HTTPSHealthCheck) MarshalJSON() ([]byte, error) {
7284	type NoMethod HTTPSHealthCheck
7285	raw := NoMethod(*s)
7286	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7287}
7288
7289// HealthCheck: An HealthCheck resource. This resource defines a
7290// template for how individual virtual machines should be checked for
7291// health, via one of the supported protocols.
7292type HealthCheck struct {
7293	// CheckIntervalSec: How often (in seconds) to send a health check. The
7294	// default value is 5 seconds.
7295	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
7296
7297	// CreationTimestamp: [Output Only] Creation timestamp in 3339 text
7298	// format.
7299	CreationTimestamp string `json:"creationTimestamp,omitempty"`
7300
7301	// Description: An optional description of this resource. Provide this
7302	// property when you create the resource.
7303	Description string `json:"description,omitempty"`
7304
7305	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
7306	// after this many consecutive successes. The default value is 2.
7307	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
7308
7309	HttpHealthCheck *HTTPHealthCheck `json:"httpHealthCheck,omitempty"`
7310
7311	HttpsHealthCheck *HTTPSHealthCheck `json:"httpsHealthCheck,omitempty"`
7312
7313	// Id: [Output Only] The unique identifier for the resource. This
7314	// identifier is defined by the server.
7315	Id uint64 `json:"id,omitempty,string"`
7316
7317	// Kind: Type of the resource.
7318	Kind string `json:"kind,omitempty"`
7319
7320	// Name: Name of the resource. Provided by the client when the resource
7321	// is created. The name must be 1-63 characters long, and comply with
7322	// RFC1035. Specifically, the name must be 1-63 characters long and
7323	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
7324	// the first character must be a lowercase letter, and all following
7325	// characters must be a dash, lowercase letter, or digit, except the
7326	// last character, which cannot be a dash.
7327	Name string `json:"name,omitempty"`
7328
7329	// SelfLink: [Output Only] Server-defined URL for the resource.
7330	SelfLink string `json:"selfLink,omitempty"`
7331
7332	SslHealthCheck *SSLHealthCheck `json:"sslHealthCheck,omitempty"`
7333
7334	TcpHealthCheck *TCPHealthCheck `json:"tcpHealthCheck,omitempty"`
7335
7336	// TimeoutSec: How long (in seconds) to wait before claiming failure.
7337	// The default value is 5 seconds. It is invalid for timeoutSec to have
7338	// greater value than checkIntervalSec.
7339	TimeoutSec int64 `json:"timeoutSec,omitempty"`
7340
7341	// Type: Specifies the type of the healthCheck, either TCP, SSL, HTTP or
7342	// HTTPS. If not specified, the default is TCP. Exactly one of the
7343	// protocol-specific health check field must be specified, which must
7344	// match type field.
7345	//
7346	// Possible values:
7347	//   "HTTP"
7348	//   "HTTPS"
7349	//   "INVALID"
7350	//   "SSL"
7351	//   "TCP"
7352	Type string `json:"type,omitempty"`
7353
7354	// UnhealthyThreshold: A so-far healthy instance will be marked
7355	// unhealthy after this many consecutive failures. The default value is
7356	// 2.
7357	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
7358
7359	// ServerResponse contains the HTTP response code and headers from the
7360	// server.
7361	googleapi.ServerResponse `json:"-"`
7362
7363	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
7364	// unconditionally include in API requests. By default, fields with
7365	// empty values are omitted from API requests. However, any non-pointer,
7366	// non-interface field appearing in ForceSendFields will be sent to the
7367	// server regardless of whether the field is empty or not. This may be
7368	// used to include empty fields in Patch requests.
7369	ForceSendFields []string `json:"-"`
7370
7371	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
7372	// include in API requests with the JSON null value. By default, fields
7373	// with empty values are omitted from API requests. However, any field
7374	// with an empty value appearing in NullFields will be sent to the
7375	// server as null. It is an error if a field in this list has a
7376	// non-empty value. This may be used to include null fields in Patch
7377	// requests.
7378	NullFields []string `json:"-"`
7379}
7380
7381func (s *HealthCheck) MarshalJSON() ([]byte, error) {
7382	type NoMethod HealthCheck
7383	raw := NoMethod(*s)
7384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7385}
7386
7387// HealthCheckList: Contains a list of HealthCheck resources.
7388type HealthCheckList struct {
7389	// Id: [Output Only] Unique identifier for the resource; defined by the
7390	// server.
7391	Id string `json:"id,omitempty"`
7392
7393	// Items: A list of HealthCheck resources.
7394	Items []*HealthCheck `json:"items,omitempty"`
7395
7396	// Kind: Type of resource.
7397	Kind string `json:"kind,omitempty"`
7398
7399	// NextPageToken: [Output Only] This token allows you to get the next
7400	// page of results for list requests. If the number of results is larger
7401	// than maxResults, use the nextPageToken as a value for the query
7402	// parameter pageToken in the next list request. Subsequent list
7403	// requests will have their own nextPageToken to continue paging through
7404	// the results.
7405	NextPageToken string `json:"nextPageToken,omitempty"`
7406
7407	// SelfLink: [Output Only] Server-defined URL for this resource.
7408	SelfLink string `json:"selfLink,omitempty"`
7409
7410	// Warning: [Output Only] Informational warning message.
7411	Warning *HealthCheckListWarning `json:"warning,omitempty"`
7412
7413	// ServerResponse contains the HTTP response code and headers from the
7414	// server.
7415	googleapi.ServerResponse `json:"-"`
7416
7417	// ForceSendFields is a list of field names (e.g. "Id") to
7418	// unconditionally include in API requests. By default, fields with
7419	// empty values are omitted from API requests. However, any non-pointer,
7420	// non-interface field appearing in ForceSendFields will be sent to the
7421	// server regardless of whether the field is empty or not. This may be
7422	// used to include empty fields in Patch requests.
7423	ForceSendFields []string `json:"-"`
7424
7425	// NullFields is a list of field names (e.g. "Id") to include in API
7426	// requests with the JSON null value. By default, fields with empty
7427	// values are omitted from API requests. However, any field with an
7428	// empty value appearing in NullFields will be sent to the server as
7429	// null. It is an error if a field in this list has a non-empty value.
7430	// This may be used to include null fields in Patch requests.
7431	NullFields []string `json:"-"`
7432}
7433
7434func (s *HealthCheckList) MarshalJSON() ([]byte, error) {
7435	type NoMethod HealthCheckList
7436	raw := NoMethod(*s)
7437	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7438}
7439
7440// HealthCheckListWarning: [Output Only] Informational warning message.
7441type HealthCheckListWarning struct {
7442	// Code: [Output Only] A warning code, if applicable. For example,
7443	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7444	// the response.
7445	//
7446	// Possible values:
7447	//   "CLEANUP_FAILED"
7448	//   "DEPRECATED_RESOURCE_USED"
7449	//   "DEPRECATED_TYPE_USED"
7450	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7451	//   "EXPERIMENTAL_TYPE_USED"
7452	//   "EXTERNAL_API_WARNING"
7453	//   "FIELD_VALUE_OVERRIDEN"
7454	//   "INJECTED_KERNELS_DEPRECATED"
7455	//   "MISSING_TYPE_DEPENDENCY"
7456	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7457	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7458	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7459	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7460	//   "NEXT_HOP_NOT_RUNNING"
7461	//   "NOT_CRITICAL_ERROR"
7462	//   "NO_RESULTS_ON_PAGE"
7463	//   "REQUIRED_TOS_AGREEMENT"
7464	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7465	//   "RESOURCE_NOT_DELETED"
7466	//   "SCHEMA_VALIDATION_IGNORED"
7467	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7468	//   "UNDECLARED_PROPERTIES"
7469	//   "UNREACHABLE"
7470	Code string `json:"code,omitempty"`
7471
7472	// Data: [Output Only] Metadata about this warning in key: value format.
7473	// For example:
7474	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7475	Data []*HealthCheckListWarningData `json:"data,omitempty"`
7476
7477	// Message: [Output Only] A human-readable description of the warning
7478	// code.
7479	Message string `json:"message,omitempty"`
7480
7481	// ForceSendFields is a list of field names (e.g. "Code") to
7482	// unconditionally include in API requests. By default, fields with
7483	// empty values are omitted from API requests. However, any non-pointer,
7484	// non-interface field appearing in ForceSendFields will be sent to the
7485	// server regardless of whether the field is empty or not. This may be
7486	// used to include empty fields in Patch requests.
7487	ForceSendFields []string `json:"-"`
7488
7489	// NullFields is a list of field names (e.g. "Code") to include in API
7490	// requests with the JSON null value. By default, fields with empty
7491	// values are omitted from API requests. However, any field with an
7492	// empty value appearing in NullFields will be sent to the server as
7493	// null. It is an error if a field in this list has a non-empty value.
7494	// This may be used to include null fields in Patch requests.
7495	NullFields []string `json:"-"`
7496}
7497
7498func (s *HealthCheckListWarning) MarshalJSON() ([]byte, error) {
7499	type NoMethod HealthCheckListWarning
7500	raw := NoMethod(*s)
7501	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7502}
7503
7504type HealthCheckListWarningData struct {
7505	// Key: [Output Only] A key that provides more detail on the warning
7506	// being returned. For example, for warnings where there are no results
7507	// in a list request for a particular zone, this key might be scope and
7508	// the key value might be the zone name. Other examples might be a key
7509	// indicating a deprecated resource and a suggested replacement, or a
7510	// warning about invalid network settings (for example, if an instance
7511	// attempts to perform IP forwarding but is not enabled for IP
7512	// forwarding).
7513	Key string `json:"key,omitempty"`
7514
7515	// Value: [Output Only] A warning data value corresponding to the key.
7516	Value string `json:"value,omitempty"`
7517
7518	// ForceSendFields is a list of field names (e.g. "Key") to
7519	// unconditionally include in API requests. By default, fields with
7520	// empty values are omitted from API requests. However, any non-pointer,
7521	// non-interface field appearing in ForceSendFields will be sent to the
7522	// server regardless of whether the field is empty or not. This may be
7523	// used to include empty fields in Patch requests.
7524	ForceSendFields []string `json:"-"`
7525
7526	// NullFields is a list of field names (e.g. "Key") to include in API
7527	// requests with the JSON null value. By default, fields with empty
7528	// values are omitted from API requests. However, any field with an
7529	// empty value appearing in NullFields will be sent to the server as
7530	// null. It is an error if a field in this list has a non-empty value.
7531	// This may be used to include null fields in Patch requests.
7532	NullFields []string `json:"-"`
7533}
7534
7535func (s *HealthCheckListWarningData) MarshalJSON() ([]byte, error) {
7536	type NoMethod HealthCheckListWarningData
7537	raw := NoMethod(*s)
7538	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7539}
7540
7541// HealthCheckReference: A full or valid partial URL to a health check.
7542// For example, the following are valid URLs:
7543// -
7544// https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check
7545// - projects/project-id/global/httpHealthChecks/health-check
7546// - global/httpHealthChecks/health-check
7547type HealthCheckReference struct {
7548	HealthCheck string `json:"healthCheck,omitempty"`
7549
7550	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
7551	// unconditionally include in API requests. By default, fields with
7552	// empty values are omitted from API requests. However, any non-pointer,
7553	// non-interface field appearing in ForceSendFields will be sent to the
7554	// server regardless of whether the field is empty or not. This may be
7555	// used to include empty fields in Patch requests.
7556	ForceSendFields []string `json:"-"`
7557
7558	// NullFields is a list of field names (e.g. "HealthCheck") to include
7559	// in API requests with the JSON null value. By default, fields with
7560	// empty values are omitted from API requests. However, any field with
7561	// an empty value appearing in NullFields will be sent to the server as
7562	// null. It is an error if a field in this list has a non-empty value.
7563	// This may be used to include null fields in Patch requests.
7564	NullFields []string `json:"-"`
7565}
7566
7567func (s *HealthCheckReference) MarshalJSON() ([]byte, error) {
7568	type NoMethod HealthCheckReference
7569	raw := NoMethod(*s)
7570	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7571}
7572
7573type HealthStatus struct {
7574	// HealthState: Health state of the instance.
7575	//
7576	// Possible values:
7577	//   "HEALTHY"
7578	//   "UNHEALTHY"
7579	HealthState string `json:"healthState,omitempty"`
7580
7581	// Instance: URL of the instance resource.
7582	Instance string `json:"instance,omitempty"`
7583
7584	// IpAddress: The IP address represented by this resource.
7585	IpAddress string `json:"ipAddress,omitempty"`
7586
7587	// Port: The port on the instance.
7588	Port int64 `json:"port,omitempty"`
7589
7590	// ForceSendFields is a list of field names (e.g. "HealthState") to
7591	// unconditionally include in API requests. By default, fields with
7592	// empty values are omitted from API requests. However, any non-pointer,
7593	// non-interface field appearing in ForceSendFields will be sent to the
7594	// server regardless of whether the field is empty or not. This may be
7595	// used to include empty fields in Patch requests.
7596	ForceSendFields []string `json:"-"`
7597
7598	// NullFields is a list of field names (e.g. "HealthState") to include
7599	// in API requests with the JSON null value. By default, fields with
7600	// empty values are omitted from API requests. However, any field with
7601	// an empty value appearing in NullFields will be sent to the server as
7602	// null. It is an error if a field in this list has a non-empty value.
7603	// This may be used to include null fields in Patch requests.
7604	NullFields []string `json:"-"`
7605}
7606
7607func (s *HealthStatus) MarshalJSON() ([]byte, error) {
7608	type NoMethod HealthStatus
7609	raw := NoMethod(*s)
7610	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7611}
7612
7613// HostRule: UrlMaps A host-matching rule for a URL. If matched, will
7614// use the named PathMatcher to select the BackendService.
7615type HostRule struct {
7616	// Description: An optional description of this resource. Provide this
7617	// property when you create the resource.
7618	Description string `json:"description,omitempty"`
7619
7620	// Hosts: The list of host patterns to match. They must be valid
7621	// hostnames, except * will match any string of ([a-z0-9-.]*). In that
7622	// case, * must be the first character and must be followed in the
7623	// pattern by either - or ..
7624	Hosts []string `json:"hosts,omitempty"`
7625
7626	// PathMatcher: The name of the PathMatcher to use to match the path
7627	// portion of the URL if the hostRule matches the URL's host portion.
7628	PathMatcher string `json:"pathMatcher,omitempty"`
7629
7630	// ForceSendFields is a list of field names (e.g. "Description") to
7631	// unconditionally include in API requests. By default, fields with
7632	// empty values are omitted from API requests. However, any non-pointer,
7633	// non-interface field appearing in ForceSendFields will be sent to the
7634	// server regardless of whether the field is empty or not. This may be
7635	// used to include empty fields in Patch requests.
7636	ForceSendFields []string `json:"-"`
7637
7638	// NullFields is a list of field names (e.g. "Description") to include
7639	// in API requests with the JSON null value. By default, fields with
7640	// empty values are omitted from API requests. However, any field with
7641	// an empty value appearing in NullFields will be sent to the server as
7642	// null. It is an error if a field in this list has a non-empty value.
7643	// This may be used to include null fields in Patch requests.
7644	NullFields []string `json:"-"`
7645}
7646
7647func (s *HostRule) MarshalJSON() ([]byte, error) {
7648	type NoMethod HostRule
7649	raw := NoMethod(*s)
7650	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7651}
7652
7653// HttpHealthCheck: An HttpHealthCheck resource. This resource defines a
7654// template for how individual instances should be checked for health,
7655// via HTTP.
7656type HttpHealthCheck struct {
7657	// CheckIntervalSec: How often (in seconds) to send a health check. The
7658	// default value is 5 seconds.
7659	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
7660
7661	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
7662	// format.
7663	CreationTimestamp string `json:"creationTimestamp,omitempty"`
7664
7665	// Description: An optional description of this resource. Provide this
7666	// property when you create the resource.
7667	Description string `json:"description,omitempty"`
7668
7669	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
7670	// after this many consecutive successes. The default value is 2.
7671	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
7672
7673	// Host: The value of the host header in the HTTP health check request.
7674	// If left empty (default value), the public IP on behalf of which this
7675	// health check is performed will be used.
7676	Host string `json:"host,omitempty"`
7677
7678	// Id: [Output Only] The unique identifier for the resource. This
7679	// identifier is defined by the server.
7680	Id uint64 `json:"id,omitempty,string"`
7681
7682	// Kind: [Output Only] Type of the resource. Always
7683	// compute#httpHealthCheck for HTTP health checks.
7684	Kind string `json:"kind,omitempty"`
7685
7686	// Name: Name of the resource. Provided by the client when the resource
7687	// is created. The name must be 1-63 characters long, and comply with
7688	// RFC1035. Specifically, the name must be 1-63 characters long and
7689	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
7690	// the first character must be a lowercase letter, and all following
7691	// characters must be a dash, lowercase letter, or digit, except the
7692	// last character, which cannot be a dash.
7693	Name string `json:"name,omitempty"`
7694
7695	// Port: The TCP port number for the HTTP health check request. The
7696	// default value is 80.
7697	Port int64 `json:"port,omitempty"`
7698
7699	// RequestPath: The request path of the HTTP health check request. The
7700	// default value is /.
7701	RequestPath string `json:"requestPath,omitempty"`
7702
7703	// SelfLink: [Output Only] Server-defined URL for the resource.
7704	SelfLink string `json:"selfLink,omitempty"`
7705
7706	// TimeoutSec: How long (in seconds) to wait before claiming failure.
7707	// The default value is 5 seconds. It is invalid for timeoutSec to have
7708	// greater value than checkIntervalSec.
7709	TimeoutSec int64 `json:"timeoutSec,omitempty"`
7710
7711	// UnhealthyThreshold: A so-far healthy instance will be marked
7712	// unhealthy after this many consecutive failures. The default value is
7713	// 2.
7714	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
7715
7716	// ServerResponse contains the HTTP response code and headers from the
7717	// server.
7718	googleapi.ServerResponse `json:"-"`
7719
7720	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
7721	// unconditionally include in API requests. By default, fields with
7722	// empty values are omitted from API requests. However, any non-pointer,
7723	// non-interface field appearing in ForceSendFields will be sent to the
7724	// server regardless of whether the field is empty or not. This may be
7725	// used to include empty fields in Patch requests.
7726	ForceSendFields []string `json:"-"`
7727
7728	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
7729	// include in API requests with the JSON null value. By default, fields
7730	// with empty values are omitted from API requests. However, any field
7731	// with an empty value appearing in NullFields will be sent to the
7732	// server as null. It is an error if a field in this list has a
7733	// non-empty value. This may be used to include null fields in Patch
7734	// requests.
7735	NullFields []string `json:"-"`
7736}
7737
7738func (s *HttpHealthCheck) MarshalJSON() ([]byte, error) {
7739	type NoMethod HttpHealthCheck
7740	raw := NoMethod(*s)
7741	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7742}
7743
7744// HttpHealthCheckList: Contains a list of HttpHealthCheck resources.
7745type HttpHealthCheckList struct {
7746	// Id: [Output Only] Unique identifier for the resource; defined by the
7747	// server.
7748	Id string `json:"id,omitempty"`
7749
7750	// Items: A list of HttpHealthCheck resources.
7751	Items []*HttpHealthCheck `json:"items,omitempty"`
7752
7753	// Kind: Type of resource.
7754	Kind string `json:"kind,omitempty"`
7755
7756	// NextPageToken: [Output Only] This token allows you to get the next
7757	// page of results for list requests. If the number of results is larger
7758	// than maxResults, use the nextPageToken as a value for the query
7759	// parameter pageToken in the next list request. Subsequent list
7760	// requests will have their own nextPageToken to continue paging through
7761	// the results.
7762	NextPageToken string `json:"nextPageToken,omitempty"`
7763
7764	// SelfLink: [Output Only] Server-defined URL for this resource.
7765	SelfLink string `json:"selfLink,omitempty"`
7766
7767	// Warning: [Output Only] Informational warning message.
7768	Warning *HttpHealthCheckListWarning `json:"warning,omitempty"`
7769
7770	// ServerResponse contains the HTTP response code and headers from the
7771	// server.
7772	googleapi.ServerResponse `json:"-"`
7773
7774	// ForceSendFields is a list of field names (e.g. "Id") to
7775	// unconditionally include in API requests. By default, fields with
7776	// empty values are omitted from API requests. However, any non-pointer,
7777	// non-interface field appearing in ForceSendFields will be sent to the
7778	// server regardless of whether the field is empty or not. This may be
7779	// used to include empty fields in Patch requests.
7780	ForceSendFields []string `json:"-"`
7781
7782	// NullFields is a list of field names (e.g. "Id") to include in API
7783	// requests with the JSON null value. By default, fields with empty
7784	// values are omitted from API requests. However, any field with an
7785	// empty value appearing in NullFields will be sent to the server as
7786	// null. It is an error if a field in this list has a non-empty value.
7787	// This may be used to include null fields in Patch requests.
7788	NullFields []string `json:"-"`
7789}
7790
7791func (s *HttpHealthCheckList) MarshalJSON() ([]byte, error) {
7792	type NoMethod HttpHealthCheckList
7793	raw := NoMethod(*s)
7794	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7795}
7796
7797// HttpHealthCheckListWarning: [Output Only] Informational warning
7798// message.
7799type HttpHealthCheckListWarning struct {
7800	// Code: [Output Only] A warning code, if applicable. For example,
7801	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7802	// the response.
7803	//
7804	// Possible values:
7805	//   "CLEANUP_FAILED"
7806	//   "DEPRECATED_RESOURCE_USED"
7807	//   "DEPRECATED_TYPE_USED"
7808	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7809	//   "EXPERIMENTAL_TYPE_USED"
7810	//   "EXTERNAL_API_WARNING"
7811	//   "FIELD_VALUE_OVERRIDEN"
7812	//   "INJECTED_KERNELS_DEPRECATED"
7813	//   "MISSING_TYPE_DEPENDENCY"
7814	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7815	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7816	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7817	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7818	//   "NEXT_HOP_NOT_RUNNING"
7819	//   "NOT_CRITICAL_ERROR"
7820	//   "NO_RESULTS_ON_PAGE"
7821	//   "REQUIRED_TOS_AGREEMENT"
7822	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7823	//   "RESOURCE_NOT_DELETED"
7824	//   "SCHEMA_VALIDATION_IGNORED"
7825	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7826	//   "UNDECLARED_PROPERTIES"
7827	//   "UNREACHABLE"
7828	Code string `json:"code,omitempty"`
7829
7830	// Data: [Output Only] Metadata about this warning in key: value format.
7831	// For example:
7832	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7833	Data []*HttpHealthCheckListWarningData `json:"data,omitempty"`
7834
7835	// Message: [Output Only] A human-readable description of the warning
7836	// code.
7837	Message string `json:"message,omitempty"`
7838
7839	// ForceSendFields is a list of field names (e.g. "Code") to
7840	// unconditionally include in API requests. By default, fields with
7841	// empty values are omitted from API requests. However, any non-pointer,
7842	// non-interface field appearing in ForceSendFields will be sent to the
7843	// server regardless of whether the field is empty or not. This may be
7844	// used to include empty fields in Patch requests.
7845	ForceSendFields []string `json:"-"`
7846
7847	// NullFields is a list of field names (e.g. "Code") to include in API
7848	// requests with the JSON null value. By default, fields with empty
7849	// values are omitted from API requests. However, any field with an
7850	// empty value appearing in NullFields will be sent to the server as
7851	// null. It is an error if a field in this list has a non-empty value.
7852	// This may be used to include null fields in Patch requests.
7853	NullFields []string `json:"-"`
7854}
7855
7856func (s *HttpHealthCheckListWarning) MarshalJSON() ([]byte, error) {
7857	type NoMethod HttpHealthCheckListWarning
7858	raw := NoMethod(*s)
7859	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7860}
7861
7862type HttpHealthCheckListWarningData struct {
7863	// Key: [Output Only] A key that provides more detail on the warning
7864	// being returned. For example, for warnings where there are no results
7865	// in a list request for a particular zone, this key might be scope and
7866	// the key value might be the zone name. Other examples might be a key
7867	// indicating a deprecated resource and a suggested replacement, or a
7868	// warning about invalid network settings (for example, if an instance
7869	// attempts to perform IP forwarding but is not enabled for IP
7870	// forwarding).
7871	Key string `json:"key,omitempty"`
7872
7873	// Value: [Output Only] A warning data value corresponding to the key.
7874	Value string `json:"value,omitempty"`
7875
7876	// ForceSendFields is a list of field names (e.g. "Key") to
7877	// unconditionally include in API requests. By default, fields with
7878	// empty values are omitted from API requests. However, any non-pointer,
7879	// non-interface field appearing in ForceSendFields will be sent to the
7880	// server regardless of whether the field is empty or not. This may be
7881	// used to include empty fields in Patch requests.
7882	ForceSendFields []string `json:"-"`
7883
7884	// NullFields is a list of field names (e.g. "Key") to include in API
7885	// requests with the JSON null value. By default, fields with empty
7886	// values are omitted from API requests. However, any field with an
7887	// empty value appearing in NullFields will be sent to the server as
7888	// null. It is an error if a field in this list has a non-empty value.
7889	// This may be used to include null fields in Patch requests.
7890	NullFields []string `json:"-"`
7891}
7892
7893func (s *HttpHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
7894	type NoMethod HttpHealthCheckListWarningData
7895	raw := NoMethod(*s)
7896	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7897}
7898
7899// HttpsHealthCheck: An HttpsHealthCheck resource. This resource defines
7900// a template for how individual instances should be checked for health,
7901// via HTTPS.
7902type HttpsHealthCheck struct {
7903	// CheckIntervalSec: How often (in seconds) to send a health check. The
7904	// default value is 5 seconds.
7905	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
7906
7907	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
7908	// format.
7909	CreationTimestamp string `json:"creationTimestamp,omitempty"`
7910
7911	// Description: An optional description of this resource. Provide this
7912	// property when you create the resource.
7913	Description string `json:"description,omitempty"`
7914
7915	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
7916	// after this many consecutive successes. The default value is 2.
7917	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
7918
7919	// Host: The value of the host header in the HTTPS health check request.
7920	// If left empty (default value), the public IP on behalf of which this
7921	// health check is performed will be used.
7922	Host string `json:"host,omitempty"`
7923
7924	// Id: [Output Only] The unique identifier for the resource. This
7925	// identifier is defined by the server.
7926	Id uint64 `json:"id,omitempty,string"`
7927
7928	// Kind: Type of the resource.
7929	Kind string `json:"kind,omitempty"`
7930
7931	// Name: Name of the resource. Provided by the client when the resource
7932	// is created. The name must be 1-63 characters long, and comply with
7933	// RFC1035. Specifically, the name must be 1-63 characters long and
7934	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
7935	// the first character must be a lowercase letter, and all following
7936	// characters must be a dash, lowercase letter, or digit, except the
7937	// last character, which cannot be a dash.
7938	Name string `json:"name,omitempty"`
7939
7940	// Port: The TCP port number for the HTTPS health check request. The
7941	// default value is 443.
7942	Port int64 `json:"port,omitempty"`
7943
7944	// RequestPath: The request path of the HTTPS health check request. The
7945	// default value is "/".
7946	RequestPath string `json:"requestPath,omitempty"`
7947
7948	// SelfLink: [Output Only] Server-defined URL for the resource.
7949	SelfLink string `json:"selfLink,omitempty"`
7950
7951	// TimeoutSec: How long (in seconds) to wait before claiming failure.
7952	// The default value is 5 seconds. It is invalid for timeoutSec to have
7953	// a greater value than checkIntervalSec.
7954	TimeoutSec int64 `json:"timeoutSec,omitempty"`
7955
7956	// UnhealthyThreshold: A so-far healthy instance will be marked
7957	// unhealthy after this many consecutive failures. The default value is
7958	// 2.
7959	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
7960
7961	// ServerResponse contains the HTTP response code and headers from the
7962	// server.
7963	googleapi.ServerResponse `json:"-"`
7964
7965	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
7966	// unconditionally include in API requests. By default, fields with
7967	// empty values are omitted from API requests. However, any non-pointer,
7968	// non-interface field appearing in ForceSendFields will be sent to the
7969	// server regardless of whether the field is empty or not. This may be
7970	// used to include empty fields in Patch requests.
7971	ForceSendFields []string `json:"-"`
7972
7973	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
7974	// include in API requests with the JSON null value. By default, fields
7975	// with empty values are omitted from API requests. However, any field
7976	// with an empty value appearing in NullFields will be sent to the
7977	// server as null. It is an error if a field in this list has a
7978	// non-empty value. This may be used to include null fields in Patch
7979	// requests.
7980	NullFields []string `json:"-"`
7981}
7982
7983func (s *HttpsHealthCheck) MarshalJSON() ([]byte, error) {
7984	type NoMethod HttpsHealthCheck
7985	raw := NoMethod(*s)
7986	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7987}
7988
7989// HttpsHealthCheckList: Contains a list of HttpsHealthCheck resources.
7990type HttpsHealthCheckList struct {
7991	// Id: [Output Only] Unique identifier for the resource; defined by the
7992	// server.
7993	Id string `json:"id,omitempty"`
7994
7995	// Items: A list of HttpsHealthCheck resources.
7996	Items []*HttpsHealthCheck `json:"items,omitempty"`
7997
7998	// Kind: Type of resource.
7999	Kind string `json:"kind,omitempty"`
8000
8001	// NextPageToken: [Output Only] This token allows you to get the next
8002	// page of results for list requests. If the number of results is larger
8003	// than maxResults, use the nextPageToken as a value for the query
8004	// parameter pageToken in the next list request. Subsequent list
8005	// requests will have their own nextPageToken to continue paging through
8006	// the results.
8007	NextPageToken string `json:"nextPageToken,omitempty"`
8008
8009	// SelfLink: [Output Only] Server-defined URL for this resource.
8010	SelfLink string `json:"selfLink,omitempty"`
8011
8012	// Warning: [Output Only] Informational warning message.
8013	Warning *HttpsHealthCheckListWarning `json:"warning,omitempty"`
8014
8015	// ServerResponse contains the HTTP response code and headers from the
8016	// server.
8017	googleapi.ServerResponse `json:"-"`
8018
8019	// ForceSendFields is a list of field names (e.g. "Id") to
8020	// unconditionally include in API requests. By default, fields with
8021	// empty values are omitted from API requests. However, any non-pointer,
8022	// non-interface field appearing in ForceSendFields will be sent to the
8023	// server regardless of whether the field is empty or not. This may be
8024	// used to include empty fields in Patch requests.
8025	ForceSendFields []string `json:"-"`
8026
8027	// NullFields is a list of field names (e.g. "Id") to include in API
8028	// requests with the JSON null value. By default, fields with empty
8029	// values are omitted from API requests. However, any field with an
8030	// empty value appearing in NullFields will be sent to the server as
8031	// null. It is an error if a field in this list has a non-empty value.
8032	// This may be used to include null fields in Patch requests.
8033	NullFields []string `json:"-"`
8034}
8035
8036func (s *HttpsHealthCheckList) MarshalJSON() ([]byte, error) {
8037	type NoMethod HttpsHealthCheckList
8038	raw := NoMethod(*s)
8039	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8040}
8041
8042// HttpsHealthCheckListWarning: [Output Only] Informational warning
8043// message.
8044type HttpsHealthCheckListWarning struct {
8045	// Code: [Output Only] A warning code, if applicable. For example,
8046	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8047	// the response.
8048	//
8049	// Possible values:
8050	//   "CLEANUP_FAILED"
8051	//   "DEPRECATED_RESOURCE_USED"
8052	//   "DEPRECATED_TYPE_USED"
8053	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8054	//   "EXPERIMENTAL_TYPE_USED"
8055	//   "EXTERNAL_API_WARNING"
8056	//   "FIELD_VALUE_OVERRIDEN"
8057	//   "INJECTED_KERNELS_DEPRECATED"
8058	//   "MISSING_TYPE_DEPENDENCY"
8059	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8060	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8061	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8062	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8063	//   "NEXT_HOP_NOT_RUNNING"
8064	//   "NOT_CRITICAL_ERROR"
8065	//   "NO_RESULTS_ON_PAGE"
8066	//   "REQUIRED_TOS_AGREEMENT"
8067	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8068	//   "RESOURCE_NOT_DELETED"
8069	//   "SCHEMA_VALIDATION_IGNORED"
8070	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8071	//   "UNDECLARED_PROPERTIES"
8072	//   "UNREACHABLE"
8073	Code string `json:"code,omitempty"`
8074
8075	// Data: [Output Only] Metadata about this warning in key: value format.
8076	// For example:
8077	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8078	Data []*HttpsHealthCheckListWarningData `json:"data,omitempty"`
8079
8080	// Message: [Output Only] A human-readable description of the warning
8081	// code.
8082	Message string `json:"message,omitempty"`
8083
8084	// ForceSendFields is a list of field names (e.g. "Code") to
8085	// unconditionally include in API requests. By default, fields with
8086	// empty values are omitted from API requests. However, any non-pointer,
8087	// non-interface field appearing in ForceSendFields will be sent to the
8088	// server regardless of whether the field is empty or not. This may be
8089	// used to include empty fields in Patch requests.
8090	ForceSendFields []string `json:"-"`
8091
8092	// NullFields is a list of field names (e.g. "Code") to include in API
8093	// requests with the JSON null value. By default, fields with empty
8094	// values are omitted from API requests. However, any field with an
8095	// empty value appearing in NullFields will be sent to the server as
8096	// null. It is an error if a field in this list has a non-empty value.
8097	// This may be used to include null fields in Patch requests.
8098	NullFields []string `json:"-"`
8099}
8100
8101func (s *HttpsHealthCheckListWarning) MarshalJSON() ([]byte, error) {
8102	type NoMethod HttpsHealthCheckListWarning
8103	raw := NoMethod(*s)
8104	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8105}
8106
8107type HttpsHealthCheckListWarningData struct {
8108	// Key: [Output Only] A key that provides more detail on the warning
8109	// being returned. For example, for warnings where there are no results
8110	// in a list request for a particular zone, this key might be scope and
8111	// the key value might be the zone name. Other examples might be a key
8112	// indicating a deprecated resource and a suggested replacement, or a
8113	// warning about invalid network settings (for example, if an instance
8114	// attempts to perform IP forwarding but is not enabled for IP
8115	// forwarding).
8116	Key string `json:"key,omitempty"`
8117
8118	// Value: [Output Only] A warning data value corresponding to the key.
8119	Value string `json:"value,omitempty"`
8120
8121	// ForceSendFields is a list of field names (e.g. "Key") to
8122	// unconditionally include in API requests. By default, fields with
8123	// empty values are omitted from API requests. However, any non-pointer,
8124	// non-interface field appearing in ForceSendFields will be sent to the
8125	// server regardless of whether the field is empty or not. This may be
8126	// used to include empty fields in Patch requests.
8127	ForceSendFields []string `json:"-"`
8128
8129	// NullFields is a list of field names (e.g. "Key") to include in API
8130	// requests with the JSON null value. By default, fields with empty
8131	// values are omitted from API requests. However, any field with an
8132	// empty value appearing in NullFields will be sent to the server as
8133	// null. It is an error if a field in this list has a non-empty value.
8134	// This may be used to include null fields in Patch requests.
8135	NullFields []string `json:"-"`
8136}
8137
8138func (s *HttpsHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
8139	type NoMethod HttpsHealthCheckListWarningData
8140	raw := NoMethod(*s)
8141	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8142}
8143
8144// Image: An Image resource. (== resource_for beta.images ==) (==
8145// resource_for v1.images ==)
8146type Image struct {
8147	// ArchiveSizeBytes: Size of the image tar.gz archive stored in Google
8148	// Cloud Storage (in bytes).
8149	ArchiveSizeBytes int64 `json:"archiveSizeBytes,omitempty,string"`
8150
8151	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
8152	// format.
8153	CreationTimestamp string `json:"creationTimestamp,omitempty"`
8154
8155	// Deprecated: The deprecation status associated with this image.
8156	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
8157
8158	// Description: An optional description of this resource. Provide this
8159	// property when you create the resource.
8160	Description string `json:"description,omitempty"`
8161
8162	// DiskSizeGb: Size of the image when restored onto a persistent disk
8163	// (in GB).
8164	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
8165
8166	// Family: The name of the image family to which this image belongs. You
8167	// can create disks by specifying an image family instead of a specific
8168	// image name. The image family always returns its latest image that is
8169	// not deprecated. The name of the image family must comply with
8170	// RFC1035.
8171	Family string `json:"family,omitempty"`
8172
8173	// GuestOsFeatures: A list of features to enable on the guest operating
8174	// system. Applicable only for bootable images. Read  Enabling guest
8175	// operating system features to see a list of available options.
8176	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
8177
8178	// Id: [Output Only] The unique identifier for the resource. This
8179	// identifier is defined by the server.
8180	Id uint64 `json:"id,omitempty,string"`
8181
8182	// ImageEncryptionKey: Encrypts the image using a customer-supplied
8183	// encryption key.
8184	//
8185	// After you encrypt an image with a customer-supplied key, you must
8186	// provide the same key if you use the image later (e.g. to create a
8187	// disk from the image).
8188	//
8189	// Customer-supplied encryption keys do not protect access to metadata
8190	// of the disk.
8191	//
8192	// If you do not provide an encryption key when creating the image, then
8193	// the disk will be encrypted using an automatically generated key and
8194	// you do not need to provide a key to use the image later.
8195	ImageEncryptionKey *CustomerEncryptionKey `json:"imageEncryptionKey,omitempty"`
8196
8197	// Kind: [Output Only] Type of the resource. Always compute#image for
8198	// images.
8199	Kind string `json:"kind,omitempty"`
8200
8201	// LabelFingerprint: A fingerprint for the labels being applied to this
8202	// image, which is essentially a hash of the labels used for optimistic
8203	// locking. The fingerprint is initially generated by Compute Engine and
8204	// changes after every request to modify or update labels. You must
8205	// always provide an up-to-date fingerprint hash in order to update or
8206	// change labels.
8207	//
8208	// To see the latest fingerprint, make a get() request to retrieve an
8209	// image.
8210	LabelFingerprint string `json:"labelFingerprint,omitempty"`
8211
8212	// Labels: Labels to apply to this image. These can be later modified by
8213	// the setLabels method.
8214	Labels map[string]string `json:"labels,omitempty"`
8215
8216	// LicenseCodes: Integer license codes indicating which licenses are
8217	// attached to this image.
8218	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
8219
8220	// Licenses: Any applicable license URI.
8221	Licenses []string `json:"licenses,omitempty"`
8222
8223	// Name: Name of the resource; provided by the client when the resource
8224	// is created. The name must be 1-63 characters long, and comply with
8225	// RFC1035. Specifically, the name must be 1-63 characters long and
8226	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
8227	// the first character must be a lowercase letter, and all following
8228	// characters must be a dash, lowercase letter, or digit, except the
8229	// last character, which cannot be a dash.
8230	Name string `json:"name,omitempty"`
8231
8232	// RawDisk: The parameters of the raw disk image.
8233	RawDisk *ImageRawDisk `json:"rawDisk,omitempty"`
8234
8235	// SelfLink: [Output Only] Server-defined URL for the resource.
8236	SelfLink string `json:"selfLink,omitempty"`
8237
8238	// SourceDisk: URL of the source disk used to create this image. This
8239	// can be a full or valid partial URL. You must provide either this
8240	// property or the rawDisk.source property but not both to create an
8241	// image. For example, the following are valid values:
8242	// -
8243	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
8244	// - projects/project/zones/zone/disks/disk
8245	// - zones/zone/disks/disk
8246	SourceDisk string `json:"sourceDisk,omitempty"`
8247
8248	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
8249	// source disk. Required if the source disk is protected by a
8250	// customer-supplied encryption key.
8251	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
8252
8253	// SourceDiskId: The ID value of the disk used to create this image.
8254	// This value may be used to determine whether the image was taken from
8255	// the current or a previous instance of a given disk name.
8256	SourceDiskId string `json:"sourceDiskId,omitempty"`
8257
8258	// SourceImage: URL of the source image used to create this image. This
8259	// can be a full or valid partial URL. You must provide exactly one of:
8260	//
8261	// - this property, or
8262	// - the rawDisk.source property, or
8263	// - the sourceDisk property   in order to create an image.
8264	SourceImage string `json:"sourceImage,omitempty"`
8265
8266	// SourceImageEncryptionKey: The customer-supplied encryption key of the
8267	// source image. Required if the source image is protected by a
8268	// customer-supplied encryption key.
8269	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
8270
8271	// SourceImageId: [Output Only] The ID value of the image used to create
8272	// this image. This value may be used to determine whether the image was
8273	// taken from the current or a previous instance of a given image name.
8274	SourceImageId string `json:"sourceImageId,omitempty"`
8275
8276	// SourceSnapshot: URL of the source snapshot used to create this image.
8277	// This can be a full or valid partial URL. You must provide exactly one
8278	// of:
8279	// - this property, or
8280	// - the sourceImage property, or
8281	// - the rawDisk.source property, or
8282	// - the sourceDisk property   in order to create an image.
8283	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
8284
8285	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
8286	// the source snapshot. Required if the source snapshot is protected by
8287	// a customer-supplied encryption key.
8288	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
8289
8290	// SourceSnapshotId: [Output Only] The ID value of the snapshot used to
8291	// create this image. This value may be used to determine whether the
8292	// snapshot was taken from the current or a previous instance of a given
8293	// snapshot name.
8294	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
8295
8296	// SourceType: The type of the image used to create this disk. The
8297	// default and only value is RAW
8298	//
8299	// Possible values:
8300	//   "RAW" (default)
8301	SourceType string `json:"sourceType,omitempty"`
8302
8303	// Status: [Output Only] The status of the image. An image can be used
8304	// to create other resources, such as instances, only after the image
8305	// has been successfully created and the status is set to READY.
8306	// Possible values are FAILED, PENDING, or READY.
8307	//
8308	// Possible values:
8309	//   "FAILED"
8310	//   "PENDING"
8311	//   "READY"
8312	Status string `json:"status,omitempty"`
8313
8314	// ServerResponse contains the HTTP response code and headers from the
8315	// server.
8316	googleapi.ServerResponse `json:"-"`
8317
8318	// ForceSendFields is a list of field names (e.g. "ArchiveSizeBytes") to
8319	// unconditionally include in API requests. By default, fields with
8320	// empty values are omitted from API requests. However, any non-pointer,
8321	// non-interface field appearing in ForceSendFields will be sent to the
8322	// server regardless of whether the field is empty or not. This may be
8323	// used to include empty fields in Patch requests.
8324	ForceSendFields []string `json:"-"`
8325
8326	// NullFields is a list of field names (e.g. "ArchiveSizeBytes") to
8327	// include in API requests with the JSON null value. By default, fields
8328	// with empty values are omitted from API requests. However, any field
8329	// with an empty value appearing in NullFields will be sent to the
8330	// server as null. It is an error if a field in this list has a
8331	// non-empty value. This may be used to include null fields in Patch
8332	// requests.
8333	NullFields []string `json:"-"`
8334}
8335
8336func (s *Image) MarshalJSON() ([]byte, error) {
8337	type NoMethod Image
8338	raw := NoMethod(*s)
8339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8340}
8341
8342// ImageRawDisk: The parameters of the raw disk image.
8343type ImageRawDisk struct {
8344	// ContainerType: The format used to encode and transmit the block
8345	// device, which should be TAR. This is just a container and
8346	// transmission format and not a runtime format. Provided by the client
8347	// when the disk image is created.
8348	//
8349	// Possible values:
8350	//   "TAR"
8351	ContainerType string `json:"containerType,omitempty"`
8352
8353	// Sha1Checksum: An optional SHA1 checksum of the disk image before
8354	// unpackaging; provided by the client when the disk image is created.
8355	Sha1Checksum string `json:"sha1Checksum,omitempty"`
8356
8357	// Source: The full Google Cloud Storage URL where the disk image is
8358	// stored. You must provide either this property or the sourceDisk
8359	// property but not both.
8360	Source string `json:"source,omitempty"`
8361
8362	// ForceSendFields is a list of field names (e.g. "ContainerType") to
8363	// unconditionally include in API requests. By default, fields with
8364	// empty values are omitted from API requests. However, any non-pointer,
8365	// non-interface field appearing in ForceSendFields will be sent to the
8366	// server regardless of whether the field is empty or not. This may be
8367	// used to include empty fields in Patch requests.
8368	ForceSendFields []string `json:"-"`
8369
8370	// NullFields is a list of field names (e.g. "ContainerType") to include
8371	// in API requests with the JSON null value. By default, fields with
8372	// empty values are omitted from API requests. However, any field with
8373	// an empty value appearing in NullFields will be sent to the server as
8374	// null. It is an error if a field in this list has a non-empty value.
8375	// This may be used to include null fields in Patch requests.
8376	NullFields []string `json:"-"`
8377}
8378
8379func (s *ImageRawDisk) MarshalJSON() ([]byte, error) {
8380	type NoMethod ImageRawDisk
8381	raw := NoMethod(*s)
8382	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8383}
8384
8385// ImageList: Contains a list of images.
8386type ImageList struct {
8387	// Id: [Output Only] Unique identifier for the resource; defined by the
8388	// server.
8389	Id string `json:"id,omitempty"`
8390
8391	// Items: A list of Image resources.
8392	Items []*Image `json:"items,omitempty"`
8393
8394	// Kind: Type of resource.
8395	Kind string `json:"kind,omitempty"`
8396
8397	// NextPageToken: [Output Only] This token allows you to get the next
8398	// page of results for list requests. If the number of results is larger
8399	// than maxResults, use the nextPageToken as a value for the query
8400	// parameter pageToken in the next list request. Subsequent list
8401	// requests will have their own nextPageToken to continue paging through
8402	// the results.
8403	NextPageToken string `json:"nextPageToken,omitempty"`
8404
8405	// SelfLink: [Output Only] Server-defined URL for this resource.
8406	SelfLink string `json:"selfLink,omitempty"`
8407
8408	// Warning: [Output Only] Informational warning message.
8409	Warning *ImageListWarning `json:"warning,omitempty"`
8410
8411	// ServerResponse contains the HTTP response code and headers from the
8412	// server.
8413	googleapi.ServerResponse `json:"-"`
8414
8415	// ForceSendFields is a list of field names (e.g. "Id") to
8416	// unconditionally include in API requests. By default, fields with
8417	// empty values are omitted from API requests. However, any non-pointer,
8418	// non-interface field appearing in ForceSendFields will be sent to the
8419	// server regardless of whether the field is empty or not. This may be
8420	// used to include empty fields in Patch requests.
8421	ForceSendFields []string `json:"-"`
8422
8423	// NullFields is a list of field names (e.g. "Id") to include in API
8424	// requests with the JSON null value. By default, fields with empty
8425	// values are omitted from API requests. However, any field with an
8426	// empty value appearing in NullFields will be sent to the server as
8427	// null. It is an error if a field in this list has a non-empty value.
8428	// This may be used to include null fields in Patch requests.
8429	NullFields []string `json:"-"`
8430}
8431
8432func (s *ImageList) MarshalJSON() ([]byte, error) {
8433	type NoMethod ImageList
8434	raw := NoMethod(*s)
8435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8436}
8437
8438// ImageListWarning: [Output Only] Informational warning message.
8439type ImageListWarning struct {
8440	// Code: [Output Only] A warning code, if applicable. For example,
8441	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8442	// the response.
8443	//
8444	// Possible values:
8445	//   "CLEANUP_FAILED"
8446	//   "DEPRECATED_RESOURCE_USED"
8447	//   "DEPRECATED_TYPE_USED"
8448	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8449	//   "EXPERIMENTAL_TYPE_USED"
8450	//   "EXTERNAL_API_WARNING"
8451	//   "FIELD_VALUE_OVERRIDEN"
8452	//   "INJECTED_KERNELS_DEPRECATED"
8453	//   "MISSING_TYPE_DEPENDENCY"
8454	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8455	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8456	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8457	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8458	//   "NEXT_HOP_NOT_RUNNING"
8459	//   "NOT_CRITICAL_ERROR"
8460	//   "NO_RESULTS_ON_PAGE"
8461	//   "REQUIRED_TOS_AGREEMENT"
8462	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8463	//   "RESOURCE_NOT_DELETED"
8464	//   "SCHEMA_VALIDATION_IGNORED"
8465	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8466	//   "UNDECLARED_PROPERTIES"
8467	//   "UNREACHABLE"
8468	Code string `json:"code,omitempty"`
8469
8470	// Data: [Output Only] Metadata about this warning in key: value format.
8471	// For example:
8472	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8473	Data []*ImageListWarningData `json:"data,omitempty"`
8474
8475	// Message: [Output Only] A human-readable description of the warning
8476	// code.
8477	Message string `json:"message,omitempty"`
8478
8479	// ForceSendFields is a list of field names (e.g. "Code") to
8480	// unconditionally include in API requests. By default, fields with
8481	// empty values are omitted from API requests. However, any non-pointer,
8482	// non-interface field appearing in ForceSendFields will be sent to the
8483	// server regardless of whether the field is empty or not. This may be
8484	// used to include empty fields in Patch requests.
8485	ForceSendFields []string `json:"-"`
8486
8487	// NullFields is a list of field names (e.g. "Code") to include in API
8488	// requests with the JSON null value. By default, fields with empty
8489	// values are omitted from API requests. However, any field with an
8490	// empty value appearing in NullFields will be sent to the server as
8491	// null. It is an error if a field in this list has a non-empty value.
8492	// This may be used to include null fields in Patch requests.
8493	NullFields []string `json:"-"`
8494}
8495
8496func (s *ImageListWarning) MarshalJSON() ([]byte, error) {
8497	type NoMethod ImageListWarning
8498	raw := NoMethod(*s)
8499	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8500}
8501
8502type ImageListWarningData struct {
8503	// Key: [Output Only] A key that provides more detail on the warning
8504	// being returned. For example, for warnings where there are no results
8505	// in a list request for a particular zone, this key might be scope and
8506	// the key value might be the zone name. Other examples might be a key
8507	// indicating a deprecated resource and a suggested replacement, or a
8508	// warning about invalid network settings (for example, if an instance
8509	// attempts to perform IP forwarding but is not enabled for IP
8510	// forwarding).
8511	Key string `json:"key,omitempty"`
8512
8513	// Value: [Output Only] A warning data value corresponding to the key.
8514	Value string `json:"value,omitempty"`
8515
8516	// ForceSendFields is a list of field names (e.g. "Key") to
8517	// unconditionally include in API requests. By default, fields with
8518	// empty values are omitted from API requests. However, any non-pointer,
8519	// non-interface field appearing in ForceSendFields will be sent to the
8520	// server regardless of whether the field is empty or not. This may be
8521	// used to include empty fields in Patch requests.
8522	ForceSendFields []string `json:"-"`
8523
8524	// NullFields is a list of field names (e.g. "Key") to include in API
8525	// requests with the JSON null value. By default, fields with empty
8526	// values are omitted from API requests. However, any field with an
8527	// empty value appearing in NullFields will be sent to the server as
8528	// null. It is an error if a field in this list has a non-empty value.
8529	// This may be used to include null fields in Patch requests.
8530	NullFields []string `json:"-"`
8531}
8532
8533func (s *ImageListWarningData) MarshalJSON() ([]byte, error) {
8534	type NoMethod ImageListWarningData
8535	raw := NoMethod(*s)
8536	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8537}
8538
8539// Instance: An Instance resource. (== resource_for beta.instances ==)
8540// (== resource_for v1.instances ==)
8541type Instance struct {
8542	// CanIpForward: Allows this instance to send and receive packets with
8543	// non-matching destination or source IPs. This is required if you plan
8544	// to use this instance to forward routes. For more information, see
8545	// Enabling IP Forwarding.
8546	CanIpForward bool `json:"canIpForward,omitempty"`
8547
8548	// CpuPlatform: [Output Only] The CPU platform used by this instance.
8549	CpuPlatform string `json:"cpuPlatform,omitempty"`
8550
8551	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
8552	// format.
8553	CreationTimestamp string `json:"creationTimestamp,omitempty"`
8554
8555	// DeletionProtection: Whether the resource should be protected against
8556	// deletion.
8557	DeletionProtection bool `json:"deletionProtection,omitempty"`
8558
8559	// Description: An optional description of this resource. Provide this
8560	// property when you create the resource.
8561	Description string `json:"description,omitempty"`
8562
8563	// Disks: Array of disks associated with this instance. Persistent disks
8564	// must be created before you can assign them.
8565	Disks []*AttachedDisk `json:"disks,omitempty"`
8566
8567	// GuestAccelerators: A list of the type and count of accelerator cards
8568	// attached to the instance.
8569	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
8570
8571	// Id: [Output Only] The unique identifier for the resource. This
8572	// identifier is defined by the server.
8573	Id uint64 `json:"id,omitempty,string"`
8574
8575	// Kind: [Output Only] Type of the resource. Always compute#instance for
8576	// instances.
8577	Kind string `json:"kind,omitempty"`
8578
8579	// LabelFingerprint: A fingerprint for this request, which is
8580	// essentially a hash of the label's contents and used for optimistic
8581	// locking. The fingerprint is initially generated by Compute Engine and
8582	// changes after every request to modify or update labels. You must
8583	// always provide an up-to-date fingerprint hash in order to update or
8584	// change labels.
8585	//
8586	// To see the latest fingerprint, make get() request to the instance.
8587	LabelFingerprint string `json:"labelFingerprint,omitempty"`
8588
8589	// Labels: Labels to apply to this instance. These can be later modified
8590	// by the setLabels method.
8591	Labels map[string]string `json:"labels,omitempty"`
8592
8593	// MachineType: Full or partial URL of the machine type resource to use
8594	// for this instance, in the format:
8595	// zones/zone/machineTypes/machine-type. This is provided by the client
8596	// when the instance is created. For example, the following is a valid
8597	// partial url to a predefined machine
8598	// type:
8599	// zones/us-central1-f/machineTypes/n1-standard-1
8600	//
8601	//
8602	// To create a custom machine type, provide a URL to a machine type in
8603	// the following format, where CPUS is 1 or an even number up to 32 (2,
8604	// 4, 6, ... 24, etc), and MEMORY is the total memory for this instance.
8605	// Memory must be a multiple of 256 MB and must be supplied in MB (e.g.
8606	// 5 GB of memory is 5120
8607	// MB):
8608	// zones/zone/machineTypes/custom-CPUS-MEMORY
8609	//
8610	//
8611	// For example: zones/us-central1-f/machineTypes/custom-4-5120
8612	//
8613	// For a full list of restrictions, read the Specifications for custom
8614	// machine types.
8615	MachineType string `json:"machineType,omitempty"`
8616
8617	// Metadata: The metadata key/value pairs assigned to this instance.
8618	// This includes custom metadata and predefined keys.
8619	Metadata *Metadata `json:"metadata,omitempty"`
8620
8621	// MinCpuPlatform: Specifies a minimum CPU platform for the VM instance.
8622	// Applicable values are the friendly names of CPU platforms, such as
8623	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
8624	// Bridge".
8625	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
8626
8627	// Name: The name of the resource, provided by the client when initially
8628	// creating the resource. The resource name must be 1-63 characters
8629	// long, and comply with RFC1035. Specifically, the name must be 1-63
8630	// characters long and match the regular expression
8631	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
8632	// a lowercase letter, and all following characters must be a dash,
8633	// lowercase letter, or digit, except the last character, which cannot
8634	// be a dash.
8635	Name string `json:"name,omitempty"`
8636
8637	// NetworkInterfaces: An array of network configurations for this
8638	// instance. These specify how interfaces are configured to interact
8639	// with other network services, such as connecting to the internet.
8640	// Multiple interfaces are supported per instance.
8641	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
8642
8643	// Scheduling: Sets the scheduling options for this instance.
8644	Scheduling *Scheduling `json:"scheduling,omitempty"`
8645
8646	// SelfLink: [Output Only] Server-defined URL for this resource.
8647	SelfLink string `json:"selfLink,omitempty"`
8648
8649	// ServiceAccounts: A list of service accounts, with their specified
8650	// scopes, authorized for this instance. Only one service account per VM
8651	// instance is supported.
8652	//
8653	// Service accounts generate access tokens that can be accessed through
8654	// the metadata server and used to authenticate applications on the
8655	// instance. See Service Accounts for more information.
8656	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
8657
8658	// StartRestricted: [Output Only] Whether a VM has been restricted for
8659	// start because Compute Engine has detected suspicious activity.
8660	StartRestricted bool `json:"startRestricted,omitempty"`
8661
8662	// Status: [Output Only] The status of the instance. One of the
8663	// following values: PROVISIONING, STAGING, RUNNING, STOPPING, STOPPED,
8664	// SUSPENDING, SUSPENDED, and TERMINATED.
8665	//
8666	// Possible values:
8667	//   "PROVISIONING"
8668	//   "RUNNING"
8669	//   "STAGING"
8670	//   "STOPPED"
8671	//   "STOPPING"
8672	//   "SUSPENDED"
8673	//   "SUSPENDING"
8674	//   "TERMINATED"
8675	Status string `json:"status,omitempty"`
8676
8677	// StatusMessage: [Output Only] An optional, human-readable explanation
8678	// of the status.
8679	StatusMessage string `json:"statusMessage,omitempty"`
8680
8681	// Tags: A list of tags to apply to this instance. Tags are used to
8682	// identify valid sources or targets for network firewalls and are
8683	// specified by the client during instance creation. The tags can be
8684	// later modified by the setTags method. Each tag within the list must
8685	// comply with RFC1035.
8686	Tags *Tags `json:"tags,omitempty"`
8687
8688	// Zone: [Output Only] URL of the zone where the instance resides. You
8689	// must specify this field as part of the HTTP request URL. It is not
8690	// settable as a field in the request body.
8691	Zone string `json:"zone,omitempty"`
8692
8693	// ServerResponse contains the HTTP response code and headers from the
8694	// server.
8695	googleapi.ServerResponse `json:"-"`
8696
8697	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
8698	// unconditionally include in API requests. By default, fields with
8699	// empty values are omitted from API requests. However, any non-pointer,
8700	// non-interface field appearing in ForceSendFields will be sent to the
8701	// server regardless of whether the field is empty or not. This may be
8702	// used to include empty fields in Patch requests.
8703	ForceSendFields []string `json:"-"`
8704
8705	// NullFields is a list of field names (e.g. "CanIpForward") to include
8706	// in API requests with the JSON null value. By default, fields with
8707	// empty values are omitted from API requests. However, any field with
8708	// an empty value appearing in NullFields will be sent to the server as
8709	// null. It is an error if a field in this list has a non-empty value.
8710	// This may be used to include null fields in Patch requests.
8711	NullFields []string `json:"-"`
8712}
8713
8714func (s *Instance) MarshalJSON() ([]byte, error) {
8715	type NoMethod Instance
8716	raw := NoMethod(*s)
8717	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8718}
8719
8720type InstanceAggregatedList struct {
8721	// Id: [Output Only] Unique identifier for the resource; defined by the
8722	// server.
8723	Id string `json:"id,omitempty"`
8724
8725	// Items: A list of InstancesScopedList resources.
8726	Items map[string]InstancesScopedList `json:"items,omitempty"`
8727
8728	// Kind: [Output Only] Type of resource. Always
8729	// compute#instanceAggregatedList for aggregated lists of Instance
8730	// resources.
8731	Kind string `json:"kind,omitempty"`
8732
8733	// NextPageToken: [Output Only] This token allows you to get the next
8734	// page of results for list requests. If the number of results is larger
8735	// than maxResults, use the nextPageToken as a value for the query
8736	// parameter pageToken in the next list request. Subsequent list
8737	// requests will have their own nextPageToken to continue paging through
8738	// the results.
8739	NextPageToken string `json:"nextPageToken,omitempty"`
8740
8741	// SelfLink: [Output Only] Server-defined URL for this resource.
8742	SelfLink string `json:"selfLink,omitempty"`
8743
8744	// Warning: [Output Only] Informational warning message.
8745	Warning *InstanceAggregatedListWarning `json:"warning,omitempty"`
8746
8747	// ServerResponse contains the HTTP response code and headers from the
8748	// server.
8749	googleapi.ServerResponse `json:"-"`
8750
8751	// ForceSendFields is a list of field names (e.g. "Id") to
8752	// unconditionally include in API requests. By default, fields with
8753	// empty values are omitted from API requests. However, any non-pointer,
8754	// non-interface field appearing in ForceSendFields will be sent to the
8755	// server regardless of whether the field is empty or not. This may be
8756	// used to include empty fields in Patch requests.
8757	ForceSendFields []string `json:"-"`
8758
8759	// NullFields is a list of field names (e.g. "Id") to include in API
8760	// requests with the JSON null value. By default, fields with empty
8761	// values are omitted from API requests. However, any field with an
8762	// empty value appearing in NullFields will be sent to the server as
8763	// null. It is an error if a field in this list has a non-empty value.
8764	// This may be used to include null fields in Patch requests.
8765	NullFields []string `json:"-"`
8766}
8767
8768func (s *InstanceAggregatedList) MarshalJSON() ([]byte, error) {
8769	type NoMethod InstanceAggregatedList
8770	raw := NoMethod(*s)
8771	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8772}
8773
8774// InstanceAggregatedListWarning: [Output Only] Informational warning
8775// message.
8776type InstanceAggregatedListWarning struct {
8777	// Code: [Output Only] A warning code, if applicable. For example,
8778	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8779	// the response.
8780	//
8781	// Possible values:
8782	//   "CLEANUP_FAILED"
8783	//   "DEPRECATED_RESOURCE_USED"
8784	//   "DEPRECATED_TYPE_USED"
8785	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8786	//   "EXPERIMENTAL_TYPE_USED"
8787	//   "EXTERNAL_API_WARNING"
8788	//   "FIELD_VALUE_OVERRIDEN"
8789	//   "INJECTED_KERNELS_DEPRECATED"
8790	//   "MISSING_TYPE_DEPENDENCY"
8791	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8792	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8793	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8794	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8795	//   "NEXT_HOP_NOT_RUNNING"
8796	//   "NOT_CRITICAL_ERROR"
8797	//   "NO_RESULTS_ON_PAGE"
8798	//   "REQUIRED_TOS_AGREEMENT"
8799	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8800	//   "RESOURCE_NOT_DELETED"
8801	//   "SCHEMA_VALIDATION_IGNORED"
8802	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8803	//   "UNDECLARED_PROPERTIES"
8804	//   "UNREACHABLE"
8805	Code string `json:"code,omitempty"`
8806
8807	// Data: [Output Only] Metadata about this warning in key: value format.
8808	// For example:
8809	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8810	Data []*InstanceAggregatedListWarningData `json:"data,omitempty"`
8811
8812	// Message: [Output Only] A human-readable description of the warning
8813	// code.
8814	Message string `json:"message,omitempty"`
8815
8816	// ForceSendFields is a list of field names (e.g. "Code") to
8817	// unconditionally include in API requests. By default, fields with
8818	// empty values are omitted from API requests. However, any non-pointer,
8819	// non-interface field appearing in ForceSendFields will be sent to the
8820	// server regardless of whether the field is empty or not. This may be
8821	// used to include empty fields in Patch requests.
8822	ForceSendFields []string `json:"-"`
8823
8824	// NullFields is a list of field names (e.g. "Code") to include in API
8825	// requests with the JSON null value. By default, fields with empty
8826	// values are omitted from API requests. However, any field with an
8827	// empty value appearing in NullFields will be sent to the server as
8828	// null. It is an error if a field in this list has a non-empty value.
8829	// This may be used to include null fields in Patch requests.
8830	NullFields []string `json:"-"`
8831}
8832
8833func (s *InstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
8834	type NoMethod InstanceAggregatedListWarning
8835	raw := NoMethod(*s)
8836	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8837}
8838
8839type InstanceAggregatedListWarningData struct {
8840	// Key: [Output Only] A key that provides more detail on the warning
8841	// being returned. For example, for warnings where there are no results
8842	// in a list request for a particular zone, this key might be scope and
8843	// the key value might be the zone name. Other examples might be a key
8844	// indicating a deprecated resource and a suggested replacement, or a
8845	// warning about invalid network settings (for example, if an instance
8846	// attempts to perform IP forwarding but is not enabled for IP
8847	// forwarding).
8848	Key string `json:"key,omitempty"`
8849
8850	// Value: [Output Only] A warning data value corresponding to the key.
8851	Value string `json:"value,omitempty"`
8852
8853	// ForceSendFields is a list of field names (e.g. "Key") to
8854	// unconditionally include in API requests. By default, fields with
8855	// empty values are omitted from API requests. However, any non-pointer,
8856	// non-interface field appearing in ForceSendFields will be sent to the
8857	// server regardless of whether the field is empty or not. This may be
8858	// used to include empty fields in Patch requests.
8859	ForceSendFields []string `json:"-"`
8860
8861	// NullFields is a list of field names (e.g. "Key") to include in API
8862	// requests with the JSON null value. By default, fields with empty
8863	// values are omitted from API requests. However, any field with an
8864	// empty value appearing in NullFields will be sent to the server as
8865	// null. It is an error if a field in this list has a non-empty value.
8866	// This may be used to include null fields in Patch requests.
8867	NullFields []string `json:"-"`
8868}
8869
8870func (s *InstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
8871	type NoMethod InstanceAggregatedListWarningData
8872	raw := NoMethod(*s)
8873	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8874}
8875
8876// InstanceGroup: InstanceGroups (== resource_for beta.instanceGroups
8877// ==) (== resource_for v1.instanceGroups ==) (== resource_for
8878// beta.regionInstanceGroups ==) (== resource_for
8879// v1.regionInstanceGroups ==)
8880type InstanceGroup struct {
8881	// CreationTimestamp: [Output Only] The creation timestamp for this
8882	// instance group in RFC3339 text format.
8883	CreationTimestamp string `json:"creationTimestamp,omitempty"`
8884
8885	// Description: An optional description of this resource. Provide this
8886	// property when you create the resource.
8887	Description string `json:"description,omitempty"`
8888
8889	// Fingerprint: [Output Only] The fingerprint of the named ports. The
8890	// system uses this fingerprint to detect conflicts when multiple users
8891	// change the named ports concurrently.
8892	Fingerprint string `json:"fingerprint,omitempty"`
8893
8894	// Id: [Output Only] A unique identifier for this instance group,
8895	// generated by the server.
8896	Id uint64 `json:"id,omitempty,string"`
8897
8898	// Kind: [Output Only] The resource type, which is always
8899	// compute#instanceGroup for instance groups.
8900	Kind string `json:"kind,omitempty"`
8901
8902	// Name: The name of the instance group. The name must be 1-63
8903	// characters long, and comply with RFC1035.
8904	Name string `json:"name,omitempty"`
8905
8906	// NamedPorts: Assigns a name to a port number. For example: {name:
8907	// "http", port: 80}
8908	//
8909	// This allows the system to reference ports by the assigned name
8910	// instead of a port number. Named ports can also contain multiple
8911	// ports. For example: [{name: "http", port: 80},{name: "http", port:
8912	// 8080}]
8913	//
8914	// Named ports apply to all instances in this instance group.
8915	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
8916
8917	// Network: The URL of the network to which all instances in the
8918	// instance group belong.
8919	Network string `json:"network,omitempty"`
8920
8921	// Region: [Output Only] The URL of the region where the instance group
8922	// is located (for regional resources).
8923	Region string `json:"region,omitempty"`
8924
8925	// SelfLink: [Output Only] The URL for this instance group. The server
8926	// generates this URL.
8927	SelfLink string `json:"selfLink,omitempty"`
8928
8929	// Size: [Output Only] The total number of instances in the instance
8930	// group.
8931	Size int64 `json:"size,omitempty"`
8932
8933	// Subnetwork: [Output Only] The URL of the subnetwork to which all
8934	// instances in the instance group belong.
8935	Subnetwork string `json:"subnetwork,omitempty"`
8936
8937	// Zone: [Output Only] The URL of the zone where the instance group is
8938	// located (for zonal resources).
8939	Zone string `json:"zone,omitempty"`
8940
8941	// ServerResponse contains the HTTP response code and headers from the
8942	// server.
8943	googleapi.ServerResponse `json:"-"`
8944
8945	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
8946	// to unconditionally include in API requests. By default, fields with
8947	// empty values are omitted from API requests. However, any non-pointer,
8948	// non-interface field appearing in ForceSendFields will be sent to the
8949	// server regardless of whether the field is empty or not. This may be
8950	// used to include empty fields in Patch requests.
8951	ForceSendFields []string `json:"-"`
8952
8953	// NullFields is a list of field names (e.g. "CreationTimestamp") to
8954	// include in API requests with the JSON null value. By default, fields
8955	// with empty values are omitted from API requests. However, any field
8956	// with an empty value appearing in NullFields will be sent to the
8957	// server as null. It is an error if a field in this list has a
8958	// non-empty value. This may be used to include null fields in Patch
8959	// requests.
8960	NullFields []string `json:"-"`
8961}
8962
8963func (s *InstanceGroup) MarshalJSON() ([]byte, error) {
8964	type NoMethod InstanceGroup
8965	raw := NoMethod(*s)
8966	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8967}
8968
8969type InstanceGroupAggregatedList struct {
8970	// Id: [Output Only] Unique identifier for the resource; defined by the
8971	// server.
8972	Id string `json:"id,omitempty"`
8973
8974	// Items: A list of InstanceGroupsScopedList resources.
8975	Items map[string]InstanceGroupsScopedList `json:"items,omitempty"`
8976
8977	// Kind: [Output Only] The resource type, which is always
8978	// compute#instanceGroupAggregatedList for aggregated lists of instance
8979	// groups.
8980	Kind string `json:"kind,omitempty"`
8981
8982	// NextPageToken: [Output Only] This token allows you to get the next
8983	// page of results for list requests. If the number of results is larger
8984	// than maxResults, use the nextPageToken as a value for the query
8985	// parameter pageToken in the next list request. Subsequent list
8986	// requests will have their own nextPageToken to continue paging through
8987	// the results.
8988	NextPageToken string `json:"nextPageToken,omitempty"`
8989
8990	// SelfLink: [Output Only] Server-defined URL for this resource.
8991	SelfLink string `json:"selfLink,omitempty"`
8992
8993	// Warning: [Output Only] Informational warning message.
8994	Warning *InstanceGroupAggregatedListWarning `json:"warning,omitempty"`
8995
8996	// ServerResponse contains the HTTP response code and headers from the
8997	// server.
8998	googleapi.ServerResponse `json:"-"`
8999
9000	// ForceSendFields is a list of field names (e.g. "Id") to
9001	// unconditionally include in API requests. By default, fields with
9002	// empty values are omitted from API requests. However, any non-pointer,
9003	// non-interface field appearing in ForceSendFields will be sent to the
9004	// server regardless of whether the field is empty or not. This may be
9005	// used to include empty fields in Patch requests.
9006	ForceSendFields []string `json:"-"`
9007
9008	// NullFields is a list of field names (e.g. "Id") to include in API
9009	// requests with the JSON null value. By default, fields with empty
9010	// values are omitted from API requests. However, any field with an
9011	// empty value appearing in NullFields will be sent to the server as
9012	// null. It is an error if a field in this list has a non-empty value.
9013	// This may be used to include null fields in Patch requests.
9014	NullFields []string `json:"-"`
9015}
9016
9017func (s *InstanceGroupAggregatedList) MarshalJSON() ([]byte, error) {
9018	type NoMethod InstanceGroupAggregatedList
9019	raw := NoMethod(*s)
9020	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9021}
9022
9023// InstanceGroupAggregatedListWarning: [Output Only] Informational
9024// warning message.
9025type InstanceGroupAggregatedListWarning struct {
9026	// Code: [Output Only] A warning code, if applicable. For example,
9027	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9028	// the response.
9029	//
9030	// Possible values:
9031	//   "CLEANUP_FAILED"
9032	//   "DEPRECATED_RESOURCE_USED"
9033	//   "DEPRECATED_TYPE_USED"
9034	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9035	//   "EXPERIMENTAL_TYPE_USED"
9036	//   "EXTERNAL_API_WARNING"
9037	//   "FIELD_VALUE_OVERRIDEN"
9038	//   "INJECTED_KERNELS_DEPRECATED"
9039	//   "MISSING_TYPE_DEPENDENCY"
9040	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9041	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9042	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9043	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9044	//   "NEXT_HOP_NOT_RUNNING"
9045	//   "NOT_CRITICAL_ERROR"
9046	//   "NO_RESULTS_ON_PAGE"
9047	//   "REQUIRED_TOS_AGREEMENT"
9048	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9049	//   "RESOURCE_NOT_DELETED"
9050	//   "SCHEMA_VALIDATION_IGNORED"
9051	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9052	//   "UNDECLARED_PROPERTIES"
9053	//   "UNREACHABLE"
9054	Code string `json:"code,omitempty"`
9055
9056	// Data: [Output Only] Metadata about this warning in key: value format.
9057	// For example:
9058	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9059	Data []*InstanceGroupAggregatedListWarningData `json:"data,omitempty"`
9060
9061	// Message: [Output Only] A human-readable description of the warning
9062	// code.
9063	Message string `json:"message,omitempty"`
9064
9065	// ForceSendFields is a list of field names (e.g. "Code") to
9066	// unconditionally include in API requests. By default, fields with
9067	// empty values are omitted from API requests. However, any non-pointer,
9068	// non-interface field appearing in ForceSendFields will be sent to the
9069	// server regardless of whether the field is empty or not. This may be
9070	// used to include empty fields in Patch requests.
9071	ForceSendFields []string `json:"-"`
9072
9073	// NullFields is a list of field names (e.g. "Code") to include in API
9074	// requests with the JSON null value. By default, fields with empty
9075	// values are omitted from API requests. However, any field with an
9076	// empty value appearing in NullFields will be sent to the server as
9077	// null. It is an error if a field in this list has a non-empty value.
9078	// This may be used to include null fields in Patch requests.
9079	NullFields []string `json:"-"`
9080}
9081
9082func (s *InstanceGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
9083	type NoMethod InstanceGroupAggregatedListWarning
9084	raw := NoMethod(*s)
9085	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9086}
9087
9088type InstanceGroupAggregatedListWarningData struct {
9089	// Key: [Output Only] A key that provides more detail on the warning
9090	// being returned. For example, for warnings where there are no results
9091	// in a list request for a particular zone, this key might be scope and
9092	// the key value might be the zone name. Other examples might be a key
9093	// indicating a deprecated resource and a suggested replacement, or a
9094	// warning about invalid network settings (for example, if an instance
9095	// attempts to perform IP forwarding but is not enabled for IP
9096	// forwarding).
9097	Key string `json:"key,omitempty"`
9098
9099	// Value: [Output Only] A warning data value corresponding to the key.
9100	Value string `json:"value,omitempty"`
9101
9102	// ForceSendFields is a list of field names (e.g. "Key") to
9103	// unconditionally include in API requests. By default, fields with
9104	// empty values are omitted from API requests. However, any non-pointer,
9105	// non-interface field appearing in ForceSendFields will be sent to the
9106	// server regardless of whether the field is empty or not. This may be
9107	// used to include empty fields in Patch requests.
9108	ForceSendFields []string `json:"-"`
9109
9110	// NullFields is a list of field names (e.g. "Key") to include in API
9111	// requests with the JSON null value. By default, fields with empty
9112	// values are omitted from API requests. However, any field with an
9113	// empty value appearing in NullFields will be sent to the server as
9114	// null. It is an error if a field in this list has a non-empty value.
9115	// This may be used to include null fields in Patch requests.
9116	NullFields []string `json:"-"`
9117}
9118
9119func (s *InstanceGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
9120	type NoMethod InstanceGroupAggregatedListWarningData
9121	raw := NoMethod(*s)
9122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9123}
9124
9125// InstanceGroupList: A list of InstanceGroup resources.
9126type InstanceGroupList struct {
9127	// Id: [Output Only] Unique identifier for the resource; defined by the
9128	// server.
9129	Id string `json:"id,omitempty"`
9130
9131	// Items: A list of InstanceGroup resources.
9132	Items []*InstanceGroup `json:"items,omitempty"`
9133
9134	// Kind: [Output Only] The resource type, which is always
9135	// compute#instanceGroupList for instance group lists.
9136	Kind string `json:"kind,omitempty"`
9137
9138	// NextPageToken: [Output Only] This token allows you to get the next
9139	// page of results for list requests. If the number of results is larger
9140	// than maxResults, use the nextPageToken as a value for the query
9141	// parameter pageToken in the next list request. Subsequent list
9142	// requests will have their own nextPageToken to continue paging through
9143	// the results.
9144	NextPageToken string `json:"nextPageToken,omitempty"`
9145
9146	// SelfLink: [Output Only] Server-defined URL for this resource.
9147	SelfLink string `json:"selfLink,omitempty"`
9148
9149	// Warning: [Output Only] Informational warning message.
9150	Warning *InstanceGroupListWarning `json:"warning,omitempty"`
9151
9152	// ServerResponse contains the HTTP response code and headers from the
9153	// server.
9154	googleapi.ServerResponse `json:"-"`
9155
9156	// ForceSendFields is a list of field names (e.g. "Id") to
9157	// unconditionally include in API requests. By default, fields with
9158	// empty values are omitted from API requests. However, any non-pointer,
9159	// non-interface field appearing in ForceSendFields will be sent to the
9160	// server regardless of whether the field is empty or not. This may be
9161	// used to include empty fields in Patch requests.
9162	ForceSendFields []string `json:"-"`
9163
9164	// NullFields is a list of field names (e.g. "Id") to include in API
9165	// requests with the JSON null value. By default, fields with empty
9166	// values are omitted from API requests. However, any field with an
9167	// empty value appearing in NullFields will be sent to the server as
9168	// null. It is an error if a field in this list has a non-empty value.
9169	// This may be used to include null fields in Patch requests.
9170	NullFields []string `json:"-"`
9171}
9172
9173func (s *InstanceGroupList) MarshalJSON() ([]byte, error) {
9174	type NoMethod InstanceGroupList
9175	raw := NoMethod(*s)
9176	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9177}
9178
9179// InstanceGroupListWarning: [Output Only] Informational warning
9180// message.
9181type InstanceGroupListWarning struct {
9182	// Code: [Output Only] A warning code, if applicable. For example,
9183	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9184	// the response.
9185	//
9186	// Possible values:
9187	//   "CLEANUP_FAILED"
9188	//   "DEPRECATED_RESOURCE_USED"
9189	//   "DEPRECATED_TYPE_USED"
9190	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9191	//   "EXPERIMENTAL_TYPE_USED"
9192	//   "EXTERNAL_API_WARNING"
9193	//   "FIELD_VALUE_OVERRIDEN"
9194	//   "INJECTED_KERNELS_DEPRECATED"
9195	//   "MISSING_TYPE_DEPENDENCY"
9196	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9197	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9198	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9199	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9200	//   "NEXT_HOP_NOT_RUNNING"
9201	//   "NOT_CRITICAL_ERROR"
9202	//   "NO_RESULTS_ON_PAGE"
9203	//   "REQUIRED_TOS_AGREEMENT"
9204	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9205	//   "RESOURCE_NOT_DELETED"
9206	//   "SCHEMA_VALIDATION_IGNORED"
9207	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9208	//   "UNDECLARED_PROPERTIES"
9209	//   "UNREACHABLE"
9210	Code string `json:"code,omitempty"`
9211
9212	// Data: [Output Only] Metadata about this warning in key: value format.
9213	// For example:
9214	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9215	Data []*InstanceGroupListWarningData `json:"data,omitempty"`
9216
9217	// Message: [Output Only] A human-readable description of the warning
9218	// code.
9219	Message string `json:"message,omitempty"`
9220
9221	// ForceSendFields is a list of field names (e.g. "Code") to
9222	// unconditionally include in API requests. By default, fields with
9223	// empty values are omitted from API requests. However, any non-pointer,
9224	// non-interface field appearing in ForceSendFields will be sent to the
9225	// server regardless of whether the field is empty or not. This may be
9226	// used to include empty fields in Patch requests.
9227	ForceSendFields []string `json:"-"`
9228
9229	// NullFields is a list of field names (e.g. "Code") to include in API
9230	// requests with the JSON null value. By default, fields with empty
9231	// values are omitted from API requests. However, any field with an
9232	// empty value appearing in NullFields will be sent to the server as
9233	// null. It is an error if a field in this list has a non-empty value.
9234	// This may be used to include null fields in Patch requests.
9235	NullFields []string `json:"-"`
9236}
9237
9238func (s *InstanceGroupListWarning) MarshalJSON() ([]byte, error) {
9239	type NoMethod InstanceGroupListWarning
9240	raw := NoMethod(*s)
9241	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9242}
9243
9244type InstanceGroupListWarningData struct {
9245	// Key: [Output Only] A key that provides more detail on the warning
9246	// being returned. For example, for warnings where there are no results
9247	// in a list request for a particular zone, this key might be scope and
9248	// the key value might be the zone name. Other examples might be a key
9249	// indicating a deprecated resource and a suggested replacement, or a
9250	// warning about invalid network settings (for example, if an instance
9251	// attempts to perform IP forwarding but is not enabled for IP
9252	// forwarding).
9253	Key string `json:"key,omitempty"`
9254
9255	// Value: [Output Only] A warning data value corresponding to the key.
9256	Value string `json:"value,omitempty"`
9257
9258	// ForceSendFields is a list of field names (e.g. "Key") to
9259	// unconditionally include in API requests. By default, fields with
9260	// empty values are omitted from API requests. However, any non-pointer,
9261	// non-interface field appearing in ForceSendFields will be sent to the
9262	// server regardless of whether the field is empty or not. This may be
9263	// used to include empty fields in Patch requests.
9264	ForceSendFields []string `json:"-"`
9265
9266	// NullFields is a list of field names (e.g. "Key") to include in API
9267	// requests with the JSON null value. By default, fields with empty
9268	// values are omitted from API requests. However, any field with an
9269	// empty value appearing in NullFields will be sent to the server as
9270	// null. It is an error if a field in this list has a non-empty value.
9271	// This may be used to include null fields in Patch requests.
9272	NullFields []string `json:"-"`
9273}
9274
9275func (s *InstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
9276	type NoMethod InstanceGroupListWarningData
9277	raw := NoMethod(*s)
9278	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9279}
9280
9281// InstanceGroupManager: An Instance Group Manager resource. (==
9282// resource_for beta.instanceGroupManagers ==) (== resource_for
9283// v1.instanceGroupManagers ==) (== resource_for
9284// beta.regionInstanceGroupManagers ==) (== resource_for
9285// v1.regionInstanceGroupManagers ==)
9286type InstanceGroupManager struct {
9287	// BaseInstanceName: The base instance name to use for instances in this
9288	// group. The value must be 1-58 characters long. Instances are named by
9289	// appending a hyphen and a random four-character string to the base
9290	// instance name. The base instance name must comply with RFC1035.
9291	BaseInstanceName string `json:"baseInstanceName,omitempty"`
9292
9293	// CreationTimestamp: [Output Only] The creation timestamp for this
9294	// managed instance group in RFC3339 text format.
9295	CreationTimestamp string `json:"creationTimestamp,omitempty"`
9296
9297	// CurrentActions: [Output Only] The list of instance actions and the
9298	// number of instances in this managed instance group that are scheduled
9299	// for each of those actions.
9300	CurrentActions *InstanceGroupManagerActionsSummary `json:"currentActions,omitempty"`
9301
9302	// Description: An optional description of this resource. Provide this
9303	// property when you create the resource.
9304	Description string `json:"description,omitempty"`
9305
9306	// Fingerprint: Fingerprint of this resource. This field may be used in
9307	// optimistic locking. It will be ignored when inserting an
9308	// InstanceGroupManager. An up-to-date fingerprint must be provided in
9309	// order to update the InstanceGroupManager or the field need to be
9310	// unset.
9311	Fingerprint string `json:"fingerprint,omitempty"`
9312
9313	// Id: [Output Only] A unique identifier for this resource type. The
9314	// server generates this identifier.
9315	Id uint64 `json:"id,omitempty,string"`
9316
9317	// InstanceGroup: [Output Only] The URL of the Instance Group resource.
9318	InstanceGroup string `json:"instanceGroup,omitempty"`
9319
9320	// InstanceTemplate: The URL of the instance template that is specified
9321	// for this managed instance group. The group uses this template to
9322	// create all new instances in the managed instance group.
9323	InstanceTemplate string `json:"instanceTemplate,omitempty"`
9324
9325	// Kind: [Output Only] The resource type, which is always
9326	// compute#instanceGroupManager for managed instance groups.
9327	Kind string `json:"kind,omitempty"`
9328
9329	// Name: The name of the managed instance group. The name must be 1-63
9330	// characters long, and comply with RFC1035.
9331	Name string `json:"name,omitempty"`
9332
9333	// NamedPorts: Named ports configured for the Instance Groups
9334	// complementary to this Instance Group Manager.
9335	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
9336
9337	// Region: [Output Only] The URL of the region where the managed
9338	// instance group resides (for regional resources).
9339	Region string `json:"region,omitempty"`
9340
9341	// SelfLink: [Output Only] The URL for this managed instance group. The
9342	// server defines this URL.
9343	SelfLink string `json:"selfLink,omitempty"`
9344
9345	// TargetPools: The URLs for all TargetPool resources to which instances
9346	// in the instanceGroup field are added. The target pools automatically
9347	// apply to all of the instances in the managed instance group.
9348	TargetPools []string `json:"targetPools,omitempty"`
9349
9350	// TargetSize: The target number of running instances for this managed
9351	// instance group. Deleting or abandoning instances reduces this number.
9352	// Resizing the group changes this number.
9353	TargetSize int64 `json:"targetSize,omitempty"`
9354
9355	// Zone: [Output Only] The URL of the zone where the managed instance
9356	// group is located (for zonal resources).
9357	Zone string `json:"zone,omitempty"`
9358
9359	// ServerResponse contains the HTTP response code and headers from the
9360	// server.
9361	googleapi.ServerResponse `json:"-"`
9362
9363	// ForceSendFields is a list of field names (e.g. "BaseInstanceName") to
9364	// unconditionally include in API requests. By default, fields with
9365	// empty values are omitted from API requests. However, any non-pointer,
9366	// non-interface field appearing in ForceSendFields will be sent to the
9367	// server regardless of whether the field is empty or not. This may be
9368	// used to include empty fields in Patch requests.
9369	ForceSendFields []string `json:"-"`
9370
9371	// NullFields is a list of field names (e.g. "BaseInstanceName") to
9372	// include in API requests with the JSON null value. By default, fields
9373	// with empty values are omitted from API requests. However, any field
9374	// with an empty value appearing in NullFields will be sent to the
9375	// server as null. It is an error if a field in this list has a
9376	// non-empty value. This may be used to include null fields in Patch
9377	// requests.
9378	NullFields []string `json:"-"`
9379}
9380
9381func (s *InstanceGroupManager) MarshalJSON() ([]byte, error) {
9382	type NoMethod InstanceGroupManager
9383	raw := NoMethod(*s)
9384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9385}
9386
9387type InstanceGroupManagerActionsSummary struct {
9388	// Abandoning: [Output Only] The total number of instances in the
9389	// managed instance group that are scheduled to be abandoned. Abandoning
9390	// an instance removes it from the managed instance group without
9391	// deleting it.
9392	Abandoning int64 `json:"abandoning,omitempty"`
9393
9394	// Creating: [Output Only] The number of instances in the managed
9395	// instance group that are scheduled to be created or are currently
9396	// being created. If the group fails to create any of these instances,
9397	// it tries again until it creates the instance successfully.
9398	//
9399	// If you have disabled creation retries, this field will not be
9400	// populated; instead, the creatingWithoutRetries field will be
9401	// populated.
9402	Creating int64 `json:"creating,omitempty"`
9403
9404	// CreatingWithoutRetries: [Output Only] The number of instances that
9405	// the managed instance group will attempt to create. The group attempts
9406	// to create each instance only once. If the group fails to create any
9407	// of these instances, it decreases the group's targetSize value
9408	// accordingly.
9409	CreatingWithoutRetries int64 `json:"creatingWithoutRetries,omitempty"`
9410
9411	// Deleting: [Output Only] The number of instances in the managed
9412	// instance group that are scheduled to be deleted or are currently
9413	// being deleted.
9414	Deleting int64 `json:"deleting,omitempty"`
9415
9416	// None: [Output Only] The number of instances in the managed instance
9417	// group that are running and have no scheduled actions.
9418	None int64 `json:"none,omitempty"`
9419
9420	// Recreating: [Output Only] The number of instances in the managed
9421	// instance group that are scheduled to be recreated or are currently
9422	// being being recreated. Recreating an instance deletes the existing
9423	// root persistent disk and creates a new disk from the image that is
9424	// defined in the instance template.
9425	Recreating int64 `json:"recreating,omitempty"`
9426
9427	// Refreshing: [Output Only] The number of instances in the managed
9428	// instance group that are being reconfigured with properties that do
9429	// not require a restart or a recreate action. For example, setting or
9430	// removing target pools for the instance.
9431	Refreshing int64 `json:"refreshing,omitempty"`
9432
9433	// Restarting: [Output Only] The number of instances in the managed
9434	// instance group that are scheduled to be restarted or are currently
9435	// being restarted.
9436	Restarting int64 `json:"restarting,omitempty"`
9437
9438	// ForceSendFields is a list of field names (e.g. "Abandoning") to
9439	// unconditionally include in API requests. By default, fields with
9440	// empty values are omitted from API requests. However, any non-pointer,
9441	// non-interface field appearing in ForceSendFields will be sent to the
9442	// server regardless of whether the field is empty or not. This may be
9443	// used to include empty fields in Patch requests.
9444	ForceSendFields []string `json:"-"`
9445
9446	// NullFields is a list of field names (e.g. "Abandoning") to include in
9447	// API requests with the JSON null value. By default, fields with empty
9448	// values are omitted from API requests. However, any field with an
9449	// empty value appearing in NullFields will be sent to the server as
9450	// null. It is an error if a field in this list has a non-empty value.
9451	// This may be used to include null fields in Patch requests.
9452	NullFields []string `json:"-"`
9453}
9454
9455func (s *InstanceGroupManagerActionsSummary) MarshalJSON() ([]byte, error) {
9456	type NoMethod InstanceGroupManagerActionsSummary
9457	raw := NoMethod(*s)
9458	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9459}
9460
9461type InstanceGroupManagerAggregatedList struct {
9462	// Id: [Output Only] Unique identifier for the resource; defined by the
9463	// server.
9464	Id string `json:"id,omitempty"`
9465
9466	// Items: A list of InstanceGroupManagersScopedList resources.
9467	Items map[string]InstanceGroupManagersScopedList `json:"items,omitempty"`
9468
9469	// Kind: [Output Only] The resource type, which is always
9470	// compute#instanceGroupManagerAggregatedList for an aggregated list of
9471	// managed instance groups.
9472	Kind string `json:"kind,omitempty"`
9473
9474	// NextPageToken: [Output Only] This token allows you to get the next
9475	// page of results for list requests. If the number of results is larger
9476	// than maxResults, use the nextPageToken as a value for the query
9477	// parameter pageToken in the next list request. Subsequent list
9478	// requests will have their own nextPageToken to continue paging through
9479	// the results.
9480	NextPageToken string `json:"nextPageToken,omitempty"`
9481
9482	// SelfLink: [Output Only] Server-defined URL for this resource.
9483	SelfLink string `json:"selfLink,omitempty"`
9484
9485	// Warning: [Output Only] Informational warning message.
9486	Warning *InstanceGroupManagerAggregatedListWarning `json:"warning,omitempty"`
9487
9488	// ServerResponse contains the HTTP response code and headers from the
9489	// server.
9490	googleapi.ServerResponse `json:"-"`
9491
9492	// ForceSendFields is a list of field names (e.g. "Id") to
9493	// unconditionally include in API requests. By default, fields with
9494	// empty values are omitted from API requests. However, any non-pointer,
9495	// non-interface field appearing in ForceSendFields will be sent to the
9496	// server regardless of whether the field is empty or not. This may be
9497	// used to include empty fields in Patch requests.
9498	ForceSendFields []string `json:"-"`
9499
9500	// NullFields is a list of field names (e.g. "Id") to include in API
9501	// requests with the JSON null value. By default, fields with empty
9502	// values are omitted from API requests. However, any field with an
9503	// empty value appearing in NullFields will be sent to the server as
9504	// null. It is an error if a field in this list has a non-empty value.
9505	// This may be used to include null fields in Patch requests.
9506	NullFields []string `json:"-"`
9507}
9508
9509func (s *InstanceGroupManagerAggregatedList) MarshalJSON() ([]byte, error) {
9510	type NoMethod InstanceGroupManagerAggregatedList
9511	raw := NoMethod(*s)
9512	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9513}
9514
9515// InstanceGroupManagerAggregatedListWarning: [Output Only]
9516// Informational warning message.
9517type InstanceGroupManagerAggregatedListWarning struct {
9518	// Code: [Output Only] A warning code, if applicable. For example,
9519	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9520	// the response.
9521	//
9522	// Possible values:
9523	//   "CLEANUP_FAILED"
9524	//   "DEPRECATED_RESOURCE_USED"
9525	//   "DEPRECATED_TYPE_USED"
9526	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9527	//   "EXPERIMENTAL_TYPE_USED"
9528	//   "EXTERNAL_API_WARNING"
9529	//   "FIELD_VALUE_OVERRIDEN"
9530	//   "INJECTED_KERNELS_DEPRECATED"
9531	//   "MISSING_TYPE_DEPENDENCY"
9532	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9533	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9534	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9535	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9536	//   "NEXT_HOP_NOT_RUNNING"
9537	//   "NOT_CRITICAL_ERROR"
9538	//   "NO_RESULTS_ON_PAGE"
9539	//   "REQUIRED_TOS_AGREEMENT"
9540	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9541	//   "RESOURCE_NOT_DELETED"
9542	//   "SCHEMA_VALIDATION_IGNORED"
9543	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9544	//   "UNDECLARED_PROPERTIES"
9545	//   "UNREACHABLE"
9546	Code string `json:"code,omitempty"`
9547
9548	// Data: [Output Only] Metadata about this warning in key: value format.
9549	// For example:
9550	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9551	Data []*InstanceGroupManagerAggregatedListWarningData `json:"data,omitempty"`
9552
9553	// Message: [Output Only] A human-readable description of the warning
9554	// code.
9555	Message string `json:"message,omitempty"`
9556
9557	// ForceSendFields is a list of field names (e.g. "Code") to
9558	// unconditionally include in API requests. By default, fields with
9559	// empty values are omitted from API requests. However, any non-pointer,
9560	// non-interface field appearing in ForceSendFields will be sent to the
9561	// server regardless of whether the field is empty or not. This may be
9562	// used to include empty fields in Patch requests.
9563	ForceSendFields []string `json:"-"`
9564
9565	// NullFields is a list of field names (e.g. "Code") to include in API
9566	// requests with the JSON null value. By default, fields with empty
9567	// values are omitted from API requests. However, any field with an
9568	// empty value appearing in NullFields will be sent to the server as
9569	// null. It is an error if a field in this list has a non-empty value.
9570	// This may be used to include null fields in Patch requests.
9571	NullFields []string `json:"-"`
9572}
9573
9574func (s *InstanceGroupManagerAggregatedListWarning) MarshalJSON() ([]byte, error) {
9575	type NoMethod InstanceGroupManagerAggregatedListWarning
9576	raw := NoMethod(*s)
9577	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9578}
9579
9580type InstanceGroupManagerAggregatedListWarningData struct {
9581	// Key: [Output Only] A key that provides more detail on the warning
9582	// being returned. For example, for warnings where there are no results
9583	// in a list request for a particular zone, this key might be scope and
9584	// the key value might be the zone name. Other examples might be a key
9585	// indicating a deprecated resource and a suggested replacement, or a
9586	// warning about invalid network settings (for example, if an instance
9587	// attempts to perform IP forwarding but is not enabled for IP
9588	// forwarding).
9589	Key string `json:"key,omitempty"`
9590
9591	// Value: [Output Only] A warning data value corresponding to the key.
9592	Value string `json:"value,omitempty"`
9593
9594	// ForceSendFields is a list of field names (e.g. "Key") to
9595	// unconditionally include in API requests. By default, fields with
9596	// empty values are omitted from API requests. However, any non-pointer,
9597	// non-interface field appearing in ForceSendFields will be sent to the
9598	// server regardless of whether the field is empty or not. This may be
9599	// used to include empty fields in Patch requests.
9600	ForceSendFields []string `json:"-"`
9601
9602	// NullFields is a list of field names (e.g. "Key") to include in API
9603	// requests with the JSON null value. By default, fields with empty
9604	// values are omitted from API requests. However, any field with an
9605	// empty value appearing in NullFields will be sent to the server as
9606	// null. It is an error if a field in this list has a non-empty value.
9607	// This may be used to include null fields in Patch requests.
9608	NullFields []string `json:"-"`
9609}
9610
9611func (s *InstanceGroupManagerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
9612	type NoMethod InstanceGroupManagerAggregatedListWarningData
9613	raw := NoMethod(*s)
9614	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9615}
9616
9617// InstanceGroupManagerList: [Output Only] A list of managed instance
9618// groups.
9619type InstanceGroupManagerList struct {
9620	// Id: [Output Only] Unique identifier for the resource; defined by the
9621	// server.
9622	Id string `json:"id,omitempty"`
9623
9624	// Items: A list of InstanceGroupManager resources.
9625	Items []*InstanceGroupManager `json:"items,omitempty"`
9626
9627	// Kind: [Output Only] The resource type, which is always
9628	// compute#instanceGroupManagerList for a list of managed instance
9629	// groups.
9630	Kind string `json:"kind,omitempty"`
9631
9632	// NextPageToken: [Output Only] This token allows you to get the next
9633	// page of results for list requests. If the number of results is larger
9634	// than maxResults, use the nextPageToken as a value for the query
9635	// parameter pageToken in the next list request. Subsequent list
9636	// requests will have their own nextPageToken to continue paging through
9637	// the results.
9638	NextPageToken string `json:"nextPageToken,omitempty"`
9639
9640	// SelfLink: [Output Only] Server-defined URL for this resource.
9641	SelfLink string `json:"selfLink,omitempty"`
9642
9643	// Warning: [Output Only] Informational warning message.
9644	Warning *InstanceGroupManagerListWarning `json:"warning,omitempty"`
9645
9646	// ServerResponse contains the HTTP response code and headers from the
9647	// server.
9648	googleapi.ServerResponse `json:"-"`
9649
9650	// ForceSendFields is a list of field names (e.g. "Id") to
9651	// unconditionally include in API requests. By default, fields with
9652	// empty values are omitted from API requests. However, any non-pointer,
9653	// non-interface field appearing in ForceSendFields will be sent to the
9654	// server regardless of whether the field is empty or not. This may be
9655	// used to include empty fields in Patch requests.
9656	ForceSendFields []string `json:"-"`
9657
9658	// NullFields is a list of field names (e.g. "Id") to include in API
9659	// requests with the JSON null value. By default, fields with empty
9660	// values are omitted from API requests. However, any field with an
9661	// empty value appearing in NullFields will be sent to the server as
9662	// null. It is an error if a field in this list has a non-empty value.
9663	// This may be used to include null fields in Patch requests.
9664	NullFields []string `json:"-"`
9665}
9666
9667func (s *InstanceGroupManagerList) MarshalJSON() ([]byte, error) {
9668	type NoMethod InstanceGroupManagerList
9669	raw := NoMethod(*s)
9670	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9671}
9672
9673// InstanceGroupManagerListWarning: [Output Only] Informational warning
9674// message.
9675type InstanceGroupManagerListWarning struct {
9676	// Code: [Output Only] A warning code, if applicable. For example,
9677	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9678	// the response.
9679	//
9680	// Possible values:
9681	//   "CLEANUP_FAILED"
9682	//   "DEPRECATED_RESOURCE_USED"
9683	//   "DEPRECATED_TYPE_USED"
9684	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9685	//   "EXPERIMENTAL_TYPE_USED"
9686	//   "EXTERNAL_API_WARNING"
9687	//   "FIELD_VALUE_OVERRIDEN"
9688	//   "INJECTED_KERNELS_DEPRECATED"
9689	//   "MISSING_TYPE_DEPENDENCY"
9690	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9691	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9692	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9693	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9694	//   "NEXT_HOP_NOT_RUNNING"
9695	//   "NOT_CRITICAL_ERROR"
9696	//   "NO_RESULTS_ON_PAGE"
9697	//   "REQUIRED_TOS_AGREEMENT"
9698	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9699	//   "RESOURCE_NOT_DELETED"
9700	//   "SCHEMA_VALIDATION_IGNORED"
9701	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9702	//   "UNDECLARED_PROPERTIES"
9703	//   "UNREACHABLE"
9704	Code string `json:"code,omitempty"`
9705
9706	// Data: [Output Only] Metadata about this warning in key: value format.
9707	// For example:
9708	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9709	Data []*InstanceGroupManagerListWarningData `json:"data,omitempty"`
9710
9711	// Message: [Output Only] A human-readable description of the warning
9712	// code.
9713	Message string `json:"message,omitempty"`
9714
9715	// ForceSendFields is a list of field names (e.g. "Code") to
9716	// unconditionally include in API requests. By default, fields with
9717	// empty values are omitted from API requests. However, any non-pointer,
9718	// non-interface field appearing in ForceSendFields will be sent to the
9719	// server regardless of whether the field is empty or not. This may be
9720	// used to include empty fields in Patch requests.
9721	ForceSendFields []string `json:"-"`
9722
9723	// NullFields is a list of field names (e.g. "Code") to include in API
9724	// requests with the JSON null value. By default, fields with empty
9725	// values are omitted from API requests. However, any field with an
9726	// empty value appearing in NullFields will be sent to the server as
9727	// null. It is an error if a field in this list has a non-empty value.
9728	// This may be used to include null fields in Patch requests.
9729	NullFields []string `json:"-"`
9730}
9731
9732func (s *InstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
9733	type NoMethod InstanceGroupManagerListWarning
9734	raw := NoMethod(*s)
9735	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9736}
9737
9738type InstanceGroupManagerListWarningData struct {
9739	// Key: [Output Only] A key that provides more detail on the warning
9740	// being returned. For example, for warnings where there are no results
9741	// in a list request for a particular zone, this key might be scope and
9742	// the key value might be the zone name. Other examples might be a key
9743	// indicating a deprecated resource and a suggested replacement, or a
9744	// warning about invalid network settings (for example, if an instance
9745	// attempts to perform IP forwarding but is not enabled for IP
9746	// forwarding).
9747	Key string `json:"key,omitempty"`
9748
9749	// Value: [Output Only] A warning data value corresponding to the key.
9750	Value string `json:"value,omitempty"`
9751
9752	// ForceSendFields is a list of field names (e.g. "Key") to
9753	// unconditionally include in API requests. By default, fields with
9754	// empty values are omitted from API requests. However, any non-pointer,
9755	// non-interface field appearing in ForceSendFields will be sent to the
9756	// server regardless of whether the field is empty or not. This may be
9757	// used to include empty fields in Patch requests.
9758	ForceSendFields []string `json:"-"`
9759
9760	// NullFields is a list of field names (e.g. "Key") to include in API
9761	// requests with the JSON null value. By default, fields with empty
9762	// values are omitted from API requests. However, any field with an
9763	// empty value appearing in NullFields will be sent to the server as
9764	// null. It is an error if a field in this list has a non-empty value.
9765	// This may be used to include null fields in Patch requests.
9766	NullFields []string `json:"-"`
9767}
9768
9769func (s *InstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
9770	type NoMethod InstanceGroupManagerListWarningData
9771	raw := NoMethod(*s)
9772	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9773}
9774
9775type InstanceGroupManagersAbandonInstancesRequest struct {
9776	// Instances: The URLs of one or more instances to abandon. This can be
9777	// a full URL or a partial URL, such as
9778	// zones/[ZONE]/instances/[INSTANCE_NAME].
9779	Instances []string `json:"instances,omitempty"`
9780
9781	// ForceSendFields is a list of field names (e.g. "Instances") to
9782	// unconditionally include in API requests. By default, fields with
9783	// empty values are omitted from API requests. However, any non-pointer,
9784	// non-interface field appearing in ForceSendFields will be sent to the
9785	// server regardless of whether the field is empty or not. This may be
9786	// used to include empty fields in Patch requests.
9787	ForceSendFields []string `json:"-"`
9788
9789	// NullFields is a list of field names (e.g. "Instances") to include in
9790	// API requests with the JSON null value. By default, fields with empty
9791	// values are omitted from API requests. However, any field with an
9792	// empty value appearing in NullFields will be sent to the server as
9793	// null. It is an error if a field in this list has a non-empty value.
9794	// This may be used to include null fields in Patch requests.
9795	NullFields []string `json:"-"`
9796}
9797
9798func (s *InstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
9799	type NoMethod InstanceGroupManagersAbandonInstancesRequest
9800	raw := NoMethod(*s)
9801	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9802}
9803
9804type InstanceGroupManagersDeleteInstancesRequest struct {
9805	// Instances: The URLs of one or more instances to delete. This can be a
9806	// full URL or a partial URL, such as
9807	// zones/[ZONE]/instances/[INSTANCE_NAME].
9808	Instances []string `json:"instances,omitempty"`
9809
9810	// ForceSendFields is a list of field names (e.g. "Instances") to
9811	// unconditionally include in API requests. By default, fields with
9812	// empty values are omitted from API requests. However, any non-pointer,
9813	// non-interface field appearing in ForceSendFields will be sent to the
9814	// server regardless of whether the field is empty or not. This may be
9815	// used to include empty fields in Patch requests.
9816	ForceSendFields []string `json:"-"`
9817
9818	// NullFields is a list of field names (e.g. "Instances") to include in
9819	// API requests with the JSON null value. By default, fields with empty
9820	// values are omitted from API requests. However, any field with an
9821	// empty value appearing in NullFields will be sent to the server as
9822	// null. It is an error if a field in this list has a non-empty value.
9823	// This may be used to include null fields in Patch requests.
9824	NullFields []string `json:"-"`
9825}
9826
9827func (s *InstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
9828	type NoMethod InstanceGroupManagersDeleteInstancesRequest
9829	raw := NoMethod(*s)
9830	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9831}
9832
9833type InstanceGroupManagersListManagedInstancesResponse struct {
9834	// ManagedInstances: [Output Only] The list of instances in the managed
9835	// instance group.
9836	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
9837
9838	// ServerResponse contains the HTTP response code and headers from the
9839	// server.
9840	googleapi.ServerResponse `json:"-"`
9841
9842	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
9843	// unconditionally include in API requests. By default, fields with
9844	// empty values are omitted from API requests. However, any non-pointer,
9845	// non-interface field appearing in ForceSendFields will be sent to the
9846	// server regardless of whether the field is empty or not. This may be
9847	// used to include empty fields in Patch requests.
9848	ForceSendFields []string `json:"-"`
9849
9850	// NullFields is a list of field names (e.g. "ManagedInstances") to
9851	// include in API requests with the JSON null value. By default, fields
9852	// with empty values are omitted from API requests. However, any field
9853	// with an empty value appearing in NullFields will be sent to the
9854	// server as null. It is an error if a field in this list has a
9855	// non-empty value. This may be used to include null fields in Patch
9856	// requests.
9857	NullFields []string `json:"-"`
9858}
9859
9860func (s *InstanceGroupManagersListManagedInstancesResponse) MarshalJSON() ([]byte, error) {
9861	type NoMethod InstanceGroupManagersListManagedInstancesResponse
9862	raw := NoMethod(*s)
9863	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9864}
9865
9866type InstanceGroupManagersRecreateInstancesRequest struct {
9867	// Instances: The URLs of one or more instances to recreate. This can be
9868	// a full URL or a partial URL, such as
9869	// zones/[ZONE]/instances/[INSTANCE_NAME].
9870	Instances []string `json:"instances,omitempty"`
9871
9872	// ForceSendFields is a list of field names (e.g. "Instances") to
9873	// unconditionally include in API requests. By default, fields with
9874	// empty values are omitted from API requests. However, any non-pointer,
9875	// non-interface field appearing in ForceSendFields will be sent to the
9876	// server regardless of whether the field is empty or not. This may be
9877	// used to include empty fields in Patch requests.
9878	ForceSendFields []string `json:"-"`
9879
9880	// NullFields is a list of field names (e.g. "Instances") to include in
9881	// API requests with the JSON null value. By default, fields with empty
9882	// values are omitted from API requests. However, any field with an
9883	// empty value appearing in NullFields will be sent to the server as
9884	// null. It is an error if a field in this list has a non-empty value.
9885	// This may be used to include null fields in Patch requests.
9886	NullFields []string `json:"-"`
9887}
9888
9889func (s *InstanceGroupManagersRecreateInstancesRequest) MarshalJSON() ([]byte, error) {
9890	type NoMethod InstanceGroupManagersRecreateInstancesRequest
9891	raw := NoMethod(*s)
9892	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9893}
9894
9895type InstanceGroupManagersScopedList struct {
9896	// InstanceGroupManagers: [Output Only] The list of managed instance
9897	// groups that are contained in the specified project and zone.
9898	InstanceGroupManagers []*InstanceGroupManager `json:"instanceGroupManagers,omitempty"`
9899
9900	// Warning: [Output Only] The warning that replaces the list of managed
9901	// instance groups when the list is empty.
9902	Warning *InstanceGroupManagersScopedListWarning `json:"warning,omitempty"`
9903
9904	// ForceSendFields is a list of field names (e.g.
9905	// "InstanceGroupManagers") to unconditionally include in API requests.
9906	// By default, fields with empty values are omitted from API requests.
9907	// However, any non-pointer, non-interface field appearing in
9908	// ForceSendFields will be sent to the server regardless of whether the
9909	// field is empty or not. This may be used to include empty fields in
9910	// Patch requests.
9911	ForceSendFields []string `json:"-"`
9912
9913	// NullFields is a list of field names (e.g. "InstanceGroupManagers") to
9914	// include in API requests with the JSON null value. By default, fields
9915	// with empty values are omitted from API requests. However, any field
9916	// with an empty value appearing in NullFields will be sent to the
9917	// server as null. It is an error if a field in this list has a
9918	// non-empty value. This may be used to include null fields in Patch
9919	// requests.
9920	NullFields []string `json:"-"`
9921}
9922
9923func (s *InstanceGroupManagersScopedList) MarshalJSON() ([]byte, error) {
9924	type NoMethod InstanceGroupManagersScopedList
9925	raw := NoMethod(*s)
9926	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9927}
9928
9929// InstanceGroupManagersScopedListWarning: [Output Only] The warning
9930// that replaces the list of managed instance groups when the list is
9931// empty.
9932type InstanceGroupManagersScopedListWarning struct {
9933	// Code: [Output Only] A warning code, if applicable. For example,
9934	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9935	// the response.
9936	//
9937	// Possible values:
9938	//   "CLEANUP_FAILED"
9939	//   "DEPRECATED_RESOURCE_USED"
9940	//   "DEPRECATED_TYPE_USED"
9941	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9942	//   "EXPERIMENTAL_TYPE_USED"
9943	//   "EXTERNAL_API_WARNING"
9944	//   "FIELD_VALUE_OVERRIDEN"
9945	//   "INJECTED_KERNELS_DEPRECATED"
9946	//   "MISSING_TYPE_DEPENDENCY"
9947	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9948	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9949	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9950	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9951	//   "NEXT_HOP_NOT_RUNNING"
9952	//   "NOT_CRITICAL_ERROR"
9953	//   "NO_RESULTS_ON_PAGE"
9954	//   "REQUIRED_TOS_AGREEMENT"
9955	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9956	//   "RESOURCE_NOT_DELETED"
9957	//   "SCHEMA_VALIDATION_IGNORED"
9958	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9959	//   "UNDECLARED_PROPERTIES"
9960	//   "UNREACHABLE"
9961	Code string `json:"code,omitempty"`
9962
9963	// Data: [Output Only] Metadata about this warning in key: value format.
9964	// For example:
9965	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9966	Data []*InstanceGroupManagersScopedListWarningData `json:"data,omitempty"`
9967
9968	// Message: [Output Only] A human-readable description of the warning
9969	// code.
9970	Message string `json:"message,omitempty"`
9971
9972	// ForceSendFields is a list of field names (e.g. "Code") to
9973	// unconditionally include in API requests. By default, fields with
9974	// empty values are omitted from API requests. However, any non-pointer,
9975	// non-interface field appearing in ForceSendFields will be sent to the
9976	// server regardless of whether the field is empty or not. This may be
9977	// used to include empty fields in Patch requests.
9978	ForceSendFields []string `json:"-"`
9979
9980	// NullFields is a list of field names (e.g. "Code") to include in API
9981	// requests with the JSON null value. By default, fields with empty
9982	// values are omitted from API requests. However, any field with an
9983	// empty value appearing in NullFields will be sent to the server as
9984	// null. It is an error if a field in this list has a non-empty value.
9985	// This may be used to include null fields in Patch requests.
9986	NullFields []string `json:"-"`
9987}
9988
9989func (s *InstanceGroupManagersScopedListWarning) MarshalJSON() ([]byte, error) {
9990	type NoMethod InstanceGroupManagersScopedListWarning
9991	raw := NoMethod(*s)
9992	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9993}
9994
9995type InstanceGroupManagersScopedListWarningData struct {
9996	// Key: [Output Only] A key that provides more detail on the warning
9997	// being returned. For example, for warnings where there are no results
9998	// in a list request for a particular zone, this key might be scope and
9999	// the key value might be the zone name. Other examples might be a key
10000	// indicating a deprecated resource and a suggested replacement, or a
10001	// warning about invalid network settings (for example, if an instance
10002	// attempts to perform IP forwarding but is not enabled for IP
10003	// forwarding).
10004	Key string `json:"key,omitempty"`
10005
10006	// Value: [Output Only] A warning data value corresponding to the key.
10007	Value string `json:"value,omitempty"`
10008
10009	// ForceSendFields is a list of field names (e.g. "Key") to
10010	// unconditionally include in API requests. By default, fields with
10011	// empty values are omitted from API requests. However, any non-pointer,
10012	// non-interface field appearing in ForceSendFields will be sent to the
10013	// server regardless of whether the field is empty or not. This may be
10014	// used to include empty fields in Patch requests.
10015	ForceSendFields []string `json:"-"`
10016
10017	// NullFields is a list of field names (e.g. "Key") to include in API
10018	// requests with the JSON null value. By default, fields with empty
10019	// values are omitted from API requests. However, any field with an
10020	// empty value appearing in NullFields will be sent to the server as
10021	// null. It is an error if a field in this list has a non-empty value.
10022	// This may be used to include null fields in Patch requests.
10023	NullFields []string `json:"-"`
10024}
10025
10026func (s *InstanceGroupManagersScopedListWarningData) MarshalJSON() ([]byte, error) {
10027	type NoMethod InstanceGroupManagersScopedListWarningData
10028	raw := NoMethod(*s)
10029	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10030}
10031
10032type InstanceGroupManagersSetInstanceTemplateRequest struct {
10033	// InstanceTemplate: The URL of the instance template that is specified
10034	// for this managed instance group. The group uses this template to
10035	// create all new instances in the managed instance group.
10036	InstanceTemplate string `json:"instanceTemplate,omitempty"`
10037
10038	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
10039	// unconditionally include in API requests. By default, fields with
10040	// empty values are omitted from API requests. However, any non-pointer,
10041	// non-interface field appearing in ForceSendFields will be sent to the
10042	// server regardless of whether the field is empty or not. This may be
10043	// used to include empty fields in Patch requests.
10044	ForceSendFields []string `json:"-"`
10045
10046	// NullFields is a list of field names (e.g. "InstanceTemplate") to
10047	// include in API requests with the JSON null value. By default, fields
10048	// with empty values are omitted from API requests. However, any field
10049	// with an empty value appearing in NullFields will be sent to the
10050	// server as null. It is an error if a field in this list has a
10051	// non-empty value. This may be used to include null fields in Patch
10052	// requests.
10053	NullFields []string `json:"-"`
10054}
10055
10056func (s *InstanceGroupManagersSetInstanceTemplateRequest) MarshalJSON() ([]byte, error) {
10057	type NoMethod InstanceGroupManagersSetInstanceTemplateRequest
10058	raw := NoMethod(*s)
10059	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10060}
10061
10062type InstanceGroupManagersSetTargetPoolsRequest struct {
10063	// Fingerprint: The fingerprint of the target pools information. Use
10064	// this optional property to prevent conflicts when multiple users
10065	// change the target pools settings concurrently. Obtain the fingerprint
10066	// with the instanceGroupManagers.get method. Then, include the
10067	// fingerprint in your request to ensure that you do not overwrite
10068	// changes that were applied from another concurrent request.
10069	Fingerprint string `json:"fingerprint,omitempty"`
10070
10071	// TargetPools: The list of target pool URLs that instances in this
10072	// managed instance group belong to. The managed instance group applies
10073	// these target pools to all of the instances in the group. Existing
10074	// instances and new instances in the group all receive these target
10075	// pool settings.
10076	TargetPools []string `json:"targetPools,omitempty"`
10077
10078	// ForceSendFields is a list of field names (e.g. "Fingerprint") 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. "Fingerprint") to include
10087	// in API requests with the JSON null value. By default, fields with
10088	// empty values are omitted from API requests. However, any field with
10089	// an 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 *InstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
10096	type NoMethod InstanceGroupManagersSetTargetPoolsRequest
10097	raw := NoMethod(*s)
10098	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10099}
10100
10101type InstanceGroupsAddInstancesRequest struct {
10102	// Instances: The list of instances to add to the instance group.
10103	Instances []*InstanceReference `json:"instances,omitempty"`
10104
10105	// ForceSendFields is a list of field names (e.g. "Instances") to
10106	// unconditionally include in API requests. By default, fields with
10107	// empty values are omitted from API requests. However, any non-pointer,
10108	// non-interface field appearing in ForceSendFields will be sent to the
10109	// server regardless of whether the field is empty or not. This may be
10110	// used to include empty fields in Patch requests.
10111	ForceSendFields []string `json:"-"`
10112
10113	// NullFields is a list of field names (e.g. "Instances") to include in
10114	// API requests with the JSON null value. By default, fields with empty
10115	// values are omitted from API requests. However, any field with an
10116	// empty value appearing in NullFields will be sent to the server as
10117	// null. It is an error if a field in this list has a non-empty value.
10118	// This may be used to include null fields in Patch requests.
10119	NullFields []string `json:"-"`
10120}
10121
10122func (s *InstanceGroupsAddInstancesRequest) MarshalJSON() ([]byte, error) {
10123	type NoMethod InstanceGroupsAddInstancesRequest
10124	raw := NoMethod(*s)
10125	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10126}
10127
10128type InstanceGroupsListInstances struct {
10129	// Id: [Output Only] Unique identifier for the resource; defined by the
10130	// server.
10131	Id string `json:"id,omitempty"`
10132
10133	// Items: A list of InstanceWithNamedPorts resources.
10134	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
10135
10136	// Kind: [Output Only] The resource type, which is always
10137	// compute#instanceGroupsListInstances for the list of instances in the
10138	// specified instance group.
10139	Kind string `json:"kind,omitempty"`
10140
10141	// NextPageToken: [Output Only] This token allows you to get the next
10142	// page of results for list requests. If the number of results is larger
10143	// than maxResults, use the nextPageToken as a value for the query
10144	// parameter pageToken in the next list request. Subsequent list
10145	// requests will have their own nextPageToken to continue paging through
10146	// the results.
10147	NextPageToken string `json:"nextPageToken,omitempty"`
10148
10149	// SelfLink: [Output Only] Server-defined URL for this resource.
10150	SelfLink string `json:"selfLink,omitempty"`
10151
10152	// Warning: [Output Only] Informational warning message.
10153	Warning *InstanceGroupsListInstancesWarning `json:"warning,omitempty"`
10154
10155	// ServerResponse contains the HTTP response code and headers from the
10156	// server.
10157	googleapi.ServerResponse `json:"-"`
10158
10159	// ForceSendFields is a list of field names (e.g. "Id") to
10160	// unconditionally include in API requests. By default, fields with
10161	// empty values are omitted from API requests. However, any non-pointer,
10162	// non-interface field appearing in ForceSendFields will be sent to the
10163	// server regardless of whether the field is empty or not. This may be
10164	// used to include empty fields in Patch requests.
10165	ForceSendFields []string `json:"-"`
10166
10167	// NullFields is a list of field names (e.g. "Id") to include in API
10168	// requests with the JSON null value. By default, fields with empty
10169	// values are omitted from API requests. However, any field with an
10170	// empty value appearing in NullFields will be sent to the server as
10171	// null. It is an error if a field in this list has a non-empty value.
10172	// This may be used to include null fields in Patch requests.
10173	NullFields []string `json:"-"`
10174}
10175
10176func (s *InstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
10177	type NoMethod InstanceGroupsListInstances
10178	raw := NoMethod(*s)
10179	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10180}
10181
10182// InstanceGroupsListInstancesWarning: [Output Only] Informational
10183// warning message.
10184type InstanceGroupsListInstancesWarning struct {
10185	// Code: [Output Only] A warning code, if applicable. For example,
10186	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10187	// the response.
10188	//
10189	// Possible values:
10190	//   "CLEANUP_FAILED"
10191	//   "DEPRECATED_RESOURCE_USED"
10192	//   "DEPRECATED_TYPE_USED"
10193	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10194	//   "EXPERIMENTAL_TYPE_USED"
10195	//   "EXTERNAL_API_WARNING"
10196	//   "FIELD_VALUE_OVERRIDEN"
10197	//   "INJECTED_KERNELS_DEPRECATED"
10198	//   "MISSING_TYPE_DEPENDENCY"
10199	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10200	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10201	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10202	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10203	//   "NEXT_HOP_NOT_RUNNING"
10204	//   "NOT_CRITICAL_ERROR"
10205	//   "NO_RESULTS_ON_PAGE"
10206	//   "REQUIRED_TOS_AGREEMENT"
10207	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10208	//   "RESOURCE_NOT_DELETED"
10209	//   "SCHEMA_VALIDATION_IGNORED"
10210	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10211	//   "UNDECLARED_PROPERTIES"
10212	//   "UNREACHABLE"
10213	Code string `json:"code,omitempty"`
10214
10215	// Data: [Output Only] Metadata about this warning in key: value format.
10216	// For example:
10217	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10218	Data []*InstanceGroupsListInstancesWarningData `json:"data,omitempty"`
10219
10220	// Message: [Output Only] A human-readable description of the warning
10221	// code.
10222	Message string `json:"message,omitempty"`
10223
10224	// ForceSendFields is a list of field names (e.g. "Code") to
10225	// unconditionally include in API requests. By default, fields with
10226	// empty values are omitted from API requests. However, any non-pointer,
10227	// non-interface field appearing in ForceSendFields will be sent to the
10228	// server regardless of whether the field is empty or not. This may be
10229	// used to include empty fields in Patch requests.
10230	ForceSendFields []string `json:"-"`
10231
10232	// NullFields is a list of field names (e.g. "Code") to include in API
10233	// requests with the JSON null value. By default, fields with empty
10234	// values are omitted from API requests. However, any field with an
10235	// empty value appearing in NullFields will be sent to the server as
10236	// null. It is an error if a field in this list has a non-empty value.
10237	// This may be used to include null fields in Patch requests.
10238	NullFields []string `json:"-"`
10239}
10240
10241func (s *InstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
10242	type NoMethod InstanceGroupsListInstancesWarning
10243	raw := NoMethod(*s)
10244	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10245}
10246
10247type InstanceGroupsListInstancesWarningData struct {
10248	// Key: [Output Only] A key that provides more detail on the warning
10249	// being returned. For example, for warnings where there are no results
10250	// in a list request for a particular zone, this key might be scope and
10251	// the key value might be the zone name. Other examples might be a key
10252	// indicating a deprecated resource and a suggested replacement, or a
10253	// warning about invalid network settings (for example, if an instance
10254	// attempts to perform IP forwarding but is not enabled for IP
10255	// forwarding).
10256	Key string `json:"key,omitempty"`
10257
10258	// Value: [Output Only] A warning data value corresponding to the key.
10259	Value string `json:"value,omitempty"`
10260
10261	// ForceSendFields is a list of field names (e.g. "Key") to
10262	// unconditionally include in API requests. By default, fields with
10263	// empty values are omitted from API requests. However, any non-pointer,
10264	// non-interface field appearing in ForceSendFields will be sent to the
10265	// server regardless of whether the field is empty or not. This may be
10266	// used to include empty fields in Patch requests.
10267	ForceSendFields []string `json:"-"`
10268
10269	// NullFields is a list of field names (e.g. "Key") to include in API
10270	// requests with the JSON null value. By default, fields with empty
10271	// values are omitted from API requests. However, any field with an
10272	// empty value appearing in NullFields will be sent to the server as
10273	// null. It is an error if a field in this list has a non-empty value.
10274	// This may be used to include null fields in Patch requests.
10275	NullFields []string `json:"-"`
10276}
10277
10278func (s *InstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
10279	type NoMethod InstanceGroupsListInstancesWarningData
10280	raw := NoMethod(*s)
10281	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10282}
10283
10284type InstanceGroupsListInstancesRequest struct {
10285	// InstanceState: A filter for the state of the instances in the
10286	// instance group. Valid options are ALL or RUNNING. If you do not
10287	// specify this parameter the list includes all instances regardless of
10288	// their state.
10289	//
10290	// Possible values:
10291	//   "ALL"
10292	//   "RUNNING"
10293	InstanceState string `json:"instanceState,omitempty"`
10294
10295	// ForceSendFields is a list of field names (e.g. "InstanceState") to
10296	// unconditionally include in API requests. By default, fields with
10297	// empty values are omitted from API requests. However, any non-pointer,
10298	// non-interface field appearing in ForceSendFields will be sent to the
10299	// server regardless of whether the field is empty or not. This may be
10300	// used to include empty fields in Patch requests.
10301	ForceSendFields []string `json:"-"`
10302
10303	// NullFields is a list of field names (e.g. "InstanceState") to include
10304	// in API requests with the JSON null value. By default, fields with
10305	// empty values are omitted from API requests. However, any field with
10306	// an empty value appearing in NullFields will be sent to the server as
10307	// null. It is an error if a field in this list has a non-empty value.
10308	// This may be used to include null fields in Patch requests.
10309	NullFields []string `json:"-"`
10310}
10311
10312func (s *InstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
10313	type NoMethod InstanceGroupsListInstancesRequest
10314	raw := NoMethod(*s)
10315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10316}
10317
10318type InstanceGroupsRemoveInstancesRequest struct {
10319	// Instances: The list of instances to remove from the instance group.
10320	Instances []*InstanceReference `json:"instances,omitempty"`
10321
10322	// ForceSendFields is a list of field names (e.g. "Instances") to
10323	// unconditionally include in API requests. By default, fields with
10324	// empty values are omitted from API requests. However, any non-pointer,
10325	// non-interface field appearing in ForceSendFields will be sent to the
10326	// server regardless of whether the field is empty or not. This may be
10327	// used to include empty fields in Patch requests.
10328	ForceSendFields []string `json:"-"`
10329
10330	// NullFields is a list of field names (e.g. "Instances") to include in
10331	// API requests with the JSON null value. By default, fields with empty
10332	// values are omitted from API requests. However, any field with an
10333	// empty value appearing in NullFields will be sent to the server as
10334	// null. It is an error if a field in this list has a non-empty value.
10335	// This may be used to include null fields in Patch requests.
10336	NullFields []string `json:"-"`
10337}
10338
10339func (s *InstanceGroupsRemoveInstancesRequest) MarshalJSON() ([]byte, error) {
10340	type NoMethod InstanceGroupsRemoveInstancesRequest
10341	raw := NoMethod(*s)
10342	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10343}
10344
10345type InstanceGroupsScopedList struct {
10346	// InstanceGroups: [Output Only] The list of instance groups that are
10347	// contained in this scope.
10348	InstanceGroups []*InstanceGroup `json:"instanceGroups,omitempty"`
10349
10350	// Warning: [Output Only] An informational warning that replaces the
10351	// list of instance groups when the list is empty.
10352	Warning *InstanceGroupsScopedListWarning `json:"warning,omitempty"`
10353
10354	// ForceSendFields is a list of field names (e.g. "InstanceGroups") to
10355	// unconditionally include in API requests. By default, fields with
10356	// empty values are omitted from API requests. However, any non-pointer,
10357	// non-interface field appearing in ForceSendFields will be sent to the
10358	// server regardless of whether the field is empty or not. This may be
10359	// used to include empty fields in Patch requests.
10360	ForceSendFields []string `json:"-"`
10361
10362	// NullFields is a list of field names (e.g. "InstanceGroups") to
10363	// include in API requests with the JSON null value. By default, fields
10364	// with empty values are omitted from API requests. However, any field
10365	// with an empty value appearing in NullFields will be sent to the
10366	// server as null. It is an error if a field in this list has a
10367	// non-empty value. This may be used to include null fields in Patch
10368	// requests.
10369	NullFields []string `json:"-"`
10370}
10371
10372func (s *InstanceGroupsScopedList) MarshalJSON() ([]byte, error) {
10373	type NoMethod InstanceGroupsScopedList
10374	raw := NoMethod(*s)
10375	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10376}
10377
10378// InstanceGroupsScopedListWarning: [Output Only] An informational
10379// warning that replaces the list of instance groups when the list is
10380// empty.
10381type InstanceGroupsScopedListWarning struct {
10382	// Code: [Output Only] A warning code, if applicable. For example,
10383	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10384	// the response.
10385	//
10386	// Possible values:
10387	//   "CLEANUP_FAILED"
10388	//   "DEPRECATED_RESOURCE_USED"
10389	//   "DEPRECATED_TYPE_USED"
10390	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10391	//   "EXPERIMENTAL_TYPE_USED"
10392	//   "EXTERNAL_API_WARNING"
10393	//   "FIELD_VALUE_OVERRIDEN"
10394	//   "INJECTED_KERNELS_DEPRECATED"
10395	//   "MISSING_TYPE_DEPENDENCY"
10396	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10397	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10398	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10399	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10400	//   "NEXT_HOP_NOT_RUNNING"
10401	//   "NOT_CRITICAL_ERROR"
10402	//   "NO_RESULTS_ON_PAGE"
10403	//   "REQUIRED_TOS_AGREEMENT"
10404	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10405	//   "RESOURCE_NOT_DELETED"
10406	//   "SCHEMA_VALIDATION_IGNORED"
10407	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10408	//   "UNDECLARED_PROPERTIES"
10409	//   "UNREACHABLE"
10410	Code string `json:"code,omitempty"`
10411
10412	// Data: [Output Only] Metadata about this warning in key: value format.
10413	// For example:
10414	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10415	Data []*InstanceGroupsScopedListWarningData `json:"data,omitempty"`
10416
10417	// Message: [Output Only] A human-readable description of the warning
10418	// code.
10419	Message string `json:"message,omitempty"`
10420
10421	// ForceSendFields is a list of field names (e.g. "Code") to
10422	// unconditionally include in API requests. By default, fields with
10423	// empty values are omitted from API requests. However, any non-pointer,
10424	// non-interface field appearing in ForceSendFields will be sent to the
10425	// server regardless of whether the field is empty or not. This may be
10426	// used to include empty fields in Patch requests.
10427	ForceSendFields []string `json:"-"`
10428
10429	// NullFields is a list of field names (e.g. "Code") to include in API
10430	// requests with the JSON null value. By default, fields with empty
10431	// values are omitted from API requests. However, any field with an
10432	// empty value appearing in NullFields will be sent to the server as
10433	// null. It is an error if a field in this list has a non-empty value.
10434	// This may be used to include null fields in Patch requests.
10435	NullFields []string `json:"-"`
10436}
10437
10438func (s *InstanceGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
10439	type NoMethod InstanceGroupsScopedListWarning
10440	raw := NoMethod(*s)
10441	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10442}
10443
10444type InstanceGroupsScopedListWarningData struct {
10445	// Key: [Output Only] A key that provides more detail on the warning
10446	// being returned. For example, for warnings where there are no results
10447	// in a list request for a particular zone, this key might be scope and
10448	// the key value might be the zone name. Other examples might be a key
10449	// indicating a deprecated resource and a suggested replacement, or a
10450	// warning about invalid network settings (for example, if an instance
10451	// attempts to perform IP forwarding but is not enabled for IP
10452	// forwarding).
10453	Key string `json:"key,omitempty"`
10454
10455	// Value: [Output Only] A warning data value corresponding to the key.
10456	Value string `json:"value,omitempty"`
10457
10458	// ForceSendFields is a list of field names (e.g. "Key") to
10459	// unconditionally include in API requests. By default, fields with
10460	// empty values are omitted from API requests. However, any non-pointer,
10461	// non-interface field appearing in ForceSendFields will be sent to the
10462	// server regardless of whether the field is empty or not. This may be
10463	// used to include empty fields in Patch requests.
10464	ForceSendFields []string `json:"-"`
10465
10466	// NullFields is a list of field names (e.g. "Key") to include in API
10467	// requests with the JSON null value. By default, fields with empty
10468	// values are omitted from API requests. However, any field with an
10469	// empty value appearing in NullFields will be sent to the server as
10470	// null. It is an error if a field in this list has a non-empty value.
10471	// This may be used to include null fields in Patch requests.
10472	NullFields []string `json:"-"`
10473}
10474
10475func (s *InstanceGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
10476	type NoMethod InstanceGroupsScopedListWarningData
10477	raw := NoMethod(*s)
10478	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10479}
10480
10481type InstanceGroupsSetNamedPortsRequest struct {
10482	// Fingerprint: The fingerprint of the named ports information for this
10483	// instance group. Use this optional property to prevent conflicts when
10484	// multiple users change the named ports settings concurrently. Obtain
10485	// the fingerprint with the instanceGroups.get method. Then, include the
10486	// fingerprint in your request to ensure that you do not overwrite
10487	// changes that were applied from another concurrent request.
10488	Fingerprint string `json:"fingerprint,omitempty"`
10489
10490	// NamedPorts: The list of named ports to set for this instance group.
10491	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
10492
10493	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
10494	// unconditionally include in API requests. By default, fields with
10495	// empty values are omitted from API requests. However, any non-pointer,
10496	// non-interface field appearing in ForceSendFields will be sent to the
10497	// server regardless of whether the field is empty or not. This may be
10498	// used to include empty fields in Patch requests.
10499	ForceSendFields []string `json:"-"`
10500
10501	// NullFields is a list of field names (e.g. "Fingerprint") to include
10502	// in API requests with the JSON null value. By default, fields with
10503	// empty values are omitted from API requests. However, any field with
10504	// an empty value appearing in NullFields will be sent to the server as
10505	// null. It is an error if a field in this list has a non-empty value.
10506	// This may be used to include null fields in Patch requests.
10507	NullFields []string `json:"-"`
10508}
10509
10510func (s *InstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
10511	type NoMethod InstanceGroupsSetNamedPortsRequest
10512	raw := NoMethod(*s)
10513	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10514}
10515
10516// InstanceList: Contains a list of instances.
10517type InstanceList struct {
10518	// Id: [Output Only] Unique identifier for the resource; defined by the
10519	// server.
10520	Id string `json:"id,omitempty"`
10521
10522	// Items: A list of Instance resources.
10523	Items []*Instance `json:"items,omitempty"`
10524
10525	// Kind: [Output Only] Type of resource. Always compute#instanceList for
10526	// lists of Instance resources.
10527	Kind string `json:"kind,omitempty"`
10528
10529	// NextPageToken: [Output Only] This token allows you to get the next
10530	// page of results for list requests. If the number of results is larger
10531	// than maxResults, use the nextPageToken as a value for the query
10532	// parameter pageToken in the next list request. Subsequent list
10533	// requests will have their own nextPageToken to continue paging through
10534	// the results.
10535	NextPageToken string `json:"nextPageToken,omitempty"`
10536
10537	// SelfLink: [Output Only] Server-defined URL for this resource.
10538	SelfLink string `json:"selfLink,omitempty"`
10539
10540	// Warning: [Output Only] Informational warning message.
10541	Warning *InstanceListWarning `json:"warning,omitempty"`
10542
10543	// ServerResponse contains the HTTP response code and headers from the
10544	// server.
10545	googleapi.ServerResponse `json:"-"`
10546
10547	// ForceSendFields is a list of field names (e.g. "Id") to
10548	// unconditionally include in API requests. By default, fields with
10549	// empty values are omitted from API requests. However, any non-pointer,
10550	// non-interface field appearing in ForceSendFields will be sent to the
10551	// server regardless of whether the field is empty or not. This may be
10552	// used to include empty fields in Patch requests.
10553	ForceSendFields []string `json:"-"`
10554
10555	// NullFields is a list of field names (e.g. "Id") to include in API
10556	// requests with the JSON null value. By default, fields with empty
10557	// values are omitted from API requests. However, any field with an
10558	// empty value appearing in NullFields will be sent to the server as
10559	// null. It is an error if a field in this list has a non-empty value.
10560	// This may be used to include null fields in Patch requests.
10561	NullFields []string `json:"-"`
10562}
10563
10564func (s *InstanceList) MarshalJSON() ([]byte, error) {
10565	type NoMethod InstanceList
10566	raw := NoMethod(*s)
10567	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10568}
10569
10570// InstanceListWarning: [Output Only] Informational warning message.
10571type InstanceListWarning struct {
10572	// Code: [Output Only] A warning code, if applicable. For example,
10573	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10574	// the response.
10575	//
10576	// Possible values:
10577	//   "CLEANUP_FAILED"
10578	//   "DEPRECATED_RESOURCE_USED"
10579	//   "DEPRECATED_TYPE_USED"
10580	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10581	//   "EXPERIMENTAL_TYPE_USED"
10582	//   "EXTERNAL_API_WARNING"
10583	//   "FIELD_VALUE_OVERRIDEN"
10584	//   "INJECTED_KERNELS_DEPRECATED"
10585	//   "MISSING_TYPE_DEPENDENCY"
10586	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10587	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10588	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10589	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10590	//   "NEXT_HOP_NOT_RUNNING"
10591	//   "NOT_CRITICAL_ERROR"
10592	//   "NO_RESULTS_ON_PAGE"
10593	//   "REQUIRED_TOS_AGREEMENT"
10594	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10595	//   "RESOURCE_NOT_DELETED"
10596	//   "SCHEMA_VALIDATION_IGNORED"
10597	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10598	//   "UNDECLARED_PROPERTIES"
10599	//   "UNREACHABLE"
10600	Code string `json:"code,omitempty"`
10601
10602	// Data: [Output Only] Metadata about this warning in key: value format.
10603	// For example:
10604	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10605	Data []*InstanceListWarningData `json:"data,omitempty"`
10606
10607	// Message: [Output Only] A human-readable description of the warning
10608	// code.
10609	Message string `json:"message,omitempty"`
10610
10611	// ForceSendFields is a list of field names (e.g. "Code") to
10612	// unconditionally include in API requests. By default, fields with
10613	// empty values are omitted from API requests. However, any non-pointer,
10614	// non-interface field appearing in ForceSendFields will be sent to the
10615	// server regardless of whether the field is empty or not. This may be
10616	// used to include empty fields in Patch requests.
10617	ForceSendFields []string `json:"-"`
10618
10619	// NullFields is a list of field names (e.g. "Code") to include in API
10620	// requests with the JSON null value. By default, fields with empty
10621	// values are omitted from API requests. However, any field with an
10622	// empty value appearing in NullFields will be sent to the server as
10623	// null. It is an error if a field in this list has a non-empty value.
10624	// This may be used to include null fields in Patch requests.
10625	NullFields []string `json:"-"`
10626}
10627
10628func (s *InstanceListWarning) MarshalJSON() ([]byte, error) {
10629	type NoMethod InstanceListWarning
10630	raw := NoMethod(*s)
10631	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10632}
10633
10634type InstanceListWarningData struct {
10635	// Key: [Output Only] A key that provides more detail on the warning
10636	// being returned. For example, for warnings where there are no results
10637	// in a list request for a particular zone, this key might be scope and
10638	// the key value might be the zone name. Other examples might be a key
10639	// indicating a deprecated resource and a suggested replacement, or a
10640	// warning about invalid network settings (for example, if an instance
10641	// attempts to perform IP forwarding but is not enabled for IP
10642	// forwarding).
10643	Key string `json:"key,omitempty"`
10644
10645	// Value: [Output Only] A warning data value corresponding to the key.
10646	Value string `json:"value,omitempty"`
10647
10648	// ForceSendFields is a list of field names (e.g. "Key") to
10649	// unconditionally include in API requests. By default, fields with
10650	// empty values are omitted from API requests. However, any non-pointer,
10651	// non-interface field appearing in ForceSendFields will be sent to the
10652	// server regardless of whether the field is empty or not. This may be
10653	// used to include empty fields in Patch requests.
10654	ForceSendFields []string `json:"-"`
10655
10656	// NullFields is a list of field names (e.g. "Key") to include in API
10657	// requests with the JSON null value. By default, fields with empty
10658	// values are omitted from API requests. However, any field with an
10659	// empty value appearing in NullFields will be sent to the server as
10660	// null. It is an error if a field in this list has a non-empty value.
10661	// This may be used to include null fields in Patch requests.
10662	NullFields []string `json:"-"`
10663}
10664
10665func (s *InstanceListWarningData) MarshalJSON() ([]byte, error) {
10666	type NoMethod InstanceListWarningData
10667	raw := NoMethod(*s)
10668	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10669}
10670
10671// InstanceListReferrers: Contains a list of instance referrers.
10672type InstanceListReferrers struct {
10673	// Id: [Output Only] Unique identifier for the resource; defined by the
10674	// server.
10675	Id string `json:"id,omitempty"`
10676
10677	// Items: A list of Reference resources.
10678	Items []*Reference `json:"items,omitempty"`
10679
10680	// Kind: [Output Only] Type of resource. Always
10681	// compute#instanceListReferrers for lists of Instance referrers.
10682	Kind string `json:"kind,omitempty"`
10683
10684	// NextPageToken: [Output Only] This token allows you to get the next
10685	// page of results for list requests. If the number of results is larger
10686	// than maxResults, use the nextPageToken as a value for the query
10687	// parameter pageToken in the next list request. Subsequent list
10688	// requests will have their own nextPageToken to continue paging through
10689	// the results.
10690	NextPageToken string `json:"nextPageToken,omitempty"`
10691
10692	// SelfLink: [Output Only] Server-defined URL for this resource.
10693	SelfLink string `json:"selfLink,omitempty"`
10694
10695	// Warning: [Output Only] Informational warning message.
10696	Warning *InstanceListReferrersWarning `json:"warning,omitempty"`
10697
10698	// ServerResponse contains the HTTP response code and headers from the
10699	// server.
10700	googleapi.ServerResponse `json:"-"`
10701
10702	// ForceSendFields is a list of field names (e.g. "Id") to
10703	// unconditionally include in API requests. By default, fields with
10704	// empty values are omitted from API requests. However, any non-pointer,
10705	// non-interface field appearing in ForceSendFields will be sent to the
10706	// server regardless of whether the field is empty or not. This may be
10707	// used to include empty fields in Patch requests.
10708	ForceSendFields []string `json:"-"`
10709
10710	// NullFields is a list of field names (e.g. "Id") to include in API
10711	// requests with the JSON null value. By default, fields with empty
10712	// values are omitted from API requests. However, any field with an
10713	// empty value appearing in NullFields will be sent to the server as
10714	// null. It is an error if a field in this list has a non-empty value.
10715	// This may be used to include null fields in Patch requests.
10716	NullFields []string `json:"-"`
10717}
10718
10719func (s *InstanceListReferrers) MarshalJSON() ([]byte, error) {
10720	type NoMethod InstanceListReferrers
10721	raw := NoMethod(*s)
10722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10723}
10724
10725// InstanceListReferrersWarning: [Output Only] Informational warning
10726// message.
10727type InstanceListReferrersWarning struct {
10728	// Code: [Output Only] A warning code, if applicable. For example,
10729	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10730	// the response.
10731	//
10732	// Possible values:
10733	//   "CLEANUP_FAILED"
10734	//   "DEPRECATED_RESOURCE_USED"
10735	//   "DEPRECATED_TYPE_USED"
10736	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10737	//   "EXPERIMENTAL_TYPE_USED"
10738	//   "EXTERNAL_API_WARNING"
10739	//   "FIELD_VALUE_OVERRIDEN"
10740	//   "INJECTED_KERNELS_DEPRECATED"
10741	//   "MISSING_TYPE_DEPENDENCY"
10742	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10743	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10744	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10745	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10746	//   "NEXT_HOP_NOT_RUNNING"
10747	//   "NOT_CRITICAL_ERROR"
10748	//   "NO_RESULTS_ON_PAGE"
10749	//   "REQUIRED_TOS_AGREEMENT"
10750	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10751	//   "RESOURCE_NOT_DELETED"
10752	//   "SCHEMA_VALIDATION_IGNORED"
10753	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10754	//   "UNDECLARED_PROPERTIES"
10755	//   "UNREACHABLE"
10756	Code string `json:"code,omitempty"`
10757
10758	// Data: [Output Only] Metadata about this warning in key: value format.
10759	// For example:
10760	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10761	Data []*InstanceListReferrersWarningData `json:"data,omitempty"`
10762
10763	// Message: [Output Only] A human-readable description of the warning
10764	// code.
10765	Message string `json:"message,omitempty"`
10766
10767	// ForceSendFields is a list of field names (e.g. "Code") to
10768	// unconditionally include in API requests. By default, fields with
10769	// empty values are omitted from API requests. However, any non-pointer,
10770	// non-interface field appearing in ForceSendFields will be sent to the
10771	// server regardless of whether the field is empty or not. This may be
10772	// used to include empty fields in Patch requests.
10773	ForceSendFields []string `json:"-"`
10774
10775	// NullFields is a list of field names (e.g. "Code") to include in API
10776	// requests with the JSON null value. By default, fields with empty
10777	// values are omitted from API requests. However, any field with an
10778	// empty value appearing in NullFields will be sent to the server as
10779	// null. It is an error if a field in this list has a non-empty value.
10780	// This may be used to include null fields in Patch requests.
10781	NullFields []string `json:"-"`
10782}
10783
10784func (s *InstanceListReferrersWarning) MarshalJSON() ([]byte, error) {
10785	type NoMethod InstanceListReferrersWarning
10786	raw := NoMethod(*s)
10787	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10788}
10789
10790type InstanceListReferrersWarningData struct {
10791	// Key: [Output Only] A key that provides more detail on the warning
10792	// being returned. For example, for warnings where there are no results
10793	// in a list request for a particular zone, this key might be scope and
10794	// the key value might be the zone name. Other examples might be a key
10795	// indicating a deprecated resource and a suggested replacement, or a
10796	// warning about invalid network settings (for example, if an instance
10797	// attempts to perform IP forwarding but is not enabled for IP
10798	// forwarding).
10799	Key string `json:"key,omitempty"`
10800
10801	// Value: [Output Only] A warning data value corresponding to the key.
10802	Value string `json:"value,omitempty"`
10803
10804	// ForceSendFields is a list of field names (e.g. "Key") to
10805	// unconditionally include in API requests. By default, fields with
10806	// empty values are omitted from API requests. However, any non-pointer,
10807	// non-interface field appearing in ForceSendFields will be sent to the
10808	// server regardless of whether the field is empty or not. This may be
10809	// used to include empty fields in Patch requests.
10810	ForceSendFields []string `json:"-"`
10811
10812	// NullFields is a list of field names (e.g. "Key") to include in API
10813	// requests with the JSON null value. By default, fields with empty
10814	// values are omitted from API requests. However, any field with an
10815	// empty value appearing in NullFields will be sent to the server as
10816	// null. It is an error if a field in this list has a non-empty value.
10817	// This may be used to include null fields in Patch requests.
10818	NullFields []string `json:"-"`
10819}
10820
10821func (s *InstanceListReferrersWarningData) MarshalJSON() ([]byte, error) {
10822	type NoMethod InstanceListReferrersWarningData
10823	raw := NoMethod(*s)
10824	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10825}
10826
10827type InstanceMoveRequest struct {
10828	// DestinationZone: The URL of the destination zone to move the
10829	// instance. This can be a full or partial URL. For example, the
10830	// following are all valid URLs to a zone:
10831	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
10832	//
10833	// - projects/project/zones/zone
10834	// - zones/zone
10835	DestinationZone string `json:"destinationZone,omitempty"`
10836
10837	// TargetInstance: The URL of the target instance to move. This can be a
10838	// full or partial URL. For example, the following are all valid URLs to
10839	// an instance:
10840	// -
10841	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
10842	// - projects/project/zones/zone/instances/instance
10843	// - zones/zone/instances/instance
10844	TargetInstance string `json:"targetInstance,omitempty"`
10845
10846	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
10847	// unconditionally include in API requests. By default, fields with
10848	// empty values are omitted from API requests. However, any non-pointer,
10849	// non-interface field appearing in ForceSendFields will be sent to the
10850	// server regardless of whether the field is empty or not. This may be
10851	// used to include empty fields in Patch requests.
10852	ForceSendFields []string `json:"-"`
10853
10854	// NullFields is a list of field names (e.g. "DestinationZone") to
10855	// include in API requests with the JSON null value. By default, fields
10856	// with empty values are omitted from API requests. However, any field
10857	// with an empty value appearing in NullFields will be sent to the
10858	// server as null. It is an error if a field in this list has a
10859	// non-empty value. This may be used to include null fields in Patch
10860	// requests.
10861	NullFields []string `json:"-"`
10862}
10863
10864func (s *InstanceMoveRequest) MarshalJSON() ([]byte, error) {
10865	type NoMethod InstanceMoveRequest
10866	raw := NoMethod(*s)
10867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10868}
10869
10870type InstanceProperties struct {
10871	// CanIpForward: Enables instances created based on this template to
10872	// send packets with source IP addresses other than their own and
10873	// receive packets with destination IP addresses other than their own.
10874	// If these instances will be used as an IP gateway or it will be set as
10875	// the next-hop in a Route resource, specify true. If unsure, leave this
10876	// set to false. See the Enable IP forwarding documentation for more
10877	// information.
10878	CanIpForward bool `json:"canIpForward,omitempty"`
10879
10880	// Description: An optional text description for the instances that are
10881	// created from this instance template.
10882	Description string `json:"description,omitempty"`
10883
10884	// Disks: An array of disks that are associated with the instances that
10885	// are created from this template.
10886	Disks []*AttachedDisk `json:"disks,omitempty"`
10887
10888	// GuestAccelerators: A list of guest accelerator cards' type and count
10889	// to use for instances created from the instance template.
10890	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
10891
10892	// Labels: Labels to apply to instances that are created from this
10893	// template.
10894	Labels map[string]string `json:"labels,omitempty"`
10895
10896	// MachineType: The machine type to use for instances that are created
10897	// from this template.
10898	MachineType string `json:"machineType,omitempty"`
10899
10900	// Metadata: The metadata key/value pairs to assign to instances that
10901	// are created from this template. These pairs can consist of custom
10902	// metadata or predefined keys. See Project and instance metadata for
10903	// more information.
10904	Metadata *Metadata `json:"metadata,omitempty"`
10905
10906	// MinCpuPlatform: Minimum cpu/platform to be used by this instance. The
10907	// instance may be scheduled on the specified or newer cpu/platform.
10908	// Applicable values are the friendly names of CPU platforms, such as
10909	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
10910	// Bridge". For more information, read Specifying a Minimum CPU
10911	// Platform.
10912	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
10913
10914	// NetworkInterfaces: An array of network access configurations for this
10915	// interface.
10916	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
10917
10918	// Scheduling: Specifies the scheduling options for the instances that
10919	// are created from this template.
10920	Scheduling *Scheduling `json:"scheduling,omitempty"`
10921
10922	// ServiceAccounts: A list of service accounts with specified scopes.
10923	// Access tokens for these service accounts are available to the
10924	// instances that are created from this template. Use metadata queries
10925	// to obtain the access tokens for these instances.
10926	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
10927
10928	// Tags: A list of tags to apply to the instances that are created from
10929	// this template. The tags identify valid sources or targets for network
10930	// firewalls. The setTags method can modify this list of tags. Each tag
10931	// within the list must comply with RFC1035.
10932	Tags *Tags `json:"tags,omitempty"`
10933
10934	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
10935	// unconditionally include in API requests. By default, fields with
10936	// empty values are omitted from API requests. However, any non-pointer,
10937	// non-interface field appearing in ForceSendFields will be sent to the
10938	// server regardless of whether the field is empty or not. This may be
10939	// used to include empty fields in Patch requests.
10940	ForceSendFields []string `json:"-"`
10941
10942	// NullFields is a list of field names (e.g. "CanIpForward") to include
10943	// in API requests with the JSON null value. By default, fields with
10944	// empty values are omitted from API requests. However, any field with
10945	// an empty value appearing in NullFields will be sent to the server as
10946	// null. It is an error if a field in this list has a non-empty value.
10947	// This may be used to include null fields in Patch requests.
10948	NullFields []string `json:"-"`
10949}
10950
10951func (s *InstanceProperties) MarshalJSON() ([]byte, error) {
10952	type NoMethod InstanceProperties
10953	raw := NoMethod(*s)
10954	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10955}
10956
10957type InstanceReference struct {
10958	// Instance: The URL for a specific instance.
10959	Instance string `json:"instance,omitempty"`
10960
10961	// ForceSendFields is a list of field names (e.g. "Instance") to
10962	// unconditionally include in API requests. By default, fields with
10963	// empty values are omitted from API requests. However, any non-pointer,
10964	// non-interface field appearing in ForceSendFields will be sent to the
10965	// server regardless of whether the field is empty or not. This may be
10966	// used to include empty fields in Patch requests.
10967	ForceSendFields []string `json:"-"`
10968
10969	// NullFields is a list of field names (e.g. "Instance") to include in
10970	// API requests with the JSON null value. By default, fields with empty
10971	// values are omitted from API requests. However, any field with an
10972	// empty value appearing in NullFields will be sent to the server as
10973	// null. It is an error if a field in this list has a non-empty value.
10974	// This may be used to include null fields in Patch requests.
10975	NullFields []string `json:"-"`
10976}
10977
10978func (s *InstanceReference) MarshalJSON() ([]byte, error) {
10979	type NoMethod InstanceReference
10980	raw := NoMethod(*s)
10981	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10982}
10983
10984// InstanceTemplate: An Instance Template resource. (== resource_for
10985// beta.instanceTemplates ==) (== resource_for v1.instanceTemplates ==)
10986type InstanceTemplate struct {
10987	// CreationTimestamp: [Output Only] The creation timestamp for this
10988	// instance template in RFC3339 text format.
10989	CreationTimestamp string `json:"creationTimestamp,omitempty"`
10990
10991	// Description: An optional description of this resource. Provide this
10992	// property when you create the resource.
10993	Description string `json:"description,omitempty"`
10994
10995	// Id: [Output Only] A unique identifier for this instance template. The
10996	// server defines this identifier.
10997	Id uint64 `json:"id,omitempty,string"`
10998
10999	// Kind: [Output Only] The resource type, which is always
11000	// compute#instanceTemplate for instance templates.
11001	Kind string `json:"kind,omitempty"`
11002
11003	// Name: Name of the resource; provided by the client when the resource
11004	// is created. The name must be 1-63 characters long, and comply with
11005	// RFC1035. Specifically, the name must be 1-63 characters long and
11006	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
11007	// the first character must be a lowercase letter, and all following
11008	// characters must be a dash, lowercase letter, or digit, except the
11009	// last character, which cannot be a dash.
11010	Name string `json:"name,omitempty"`
11011
11012	// Properties: The instance properties for this instance template.
11013	Properties *InstanceProperties `json:"properties,omitempty"`
11014
11015	// SelfLink: [Output Only] The URL for this instance template. The
11016	// server defines this URL.
11017	SelfLink string `json:"selfLink,omitempty"`
11018
11019	// ServerResponse contains the HTTP response code and headers from the
11020	// server.
11021	googleapi.ServerResponse `json:"-"`
11022
11023	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
11024	// to unconditionally include in API requests. By default, fields with
11025	// empty values are omitted from API requests. However, any non-pointer,
11026	// non-interface field appearing in ForceSendFields will be sent to the
11027	// server regardless of whether the field is empty or not. This may be
11028	// used to include empty fields in Patch requests.
11029	ForceSendFields []string `json:"-"`
11030
11031	// NullFields is a list of field names (e.g. "CreationTimestamp") to
11032	// include in API requests with the JSON null value. By default, fields
11033	// with empty values are omitted from API requests. However, any field
11034	// with an empty value appearing in NullFields will be sent to the
11035	// server as null. It is an error if a field in this list has a
11036	// non-empty value. This may be used to include null fields in Patch
11037	// requests.
11038	NullFields []string `json:"-"`
11039}
11040
11041func (s *InstanceTemplate) MarshalJSON() ([]byte, error) {
11042	type NoMethod InstanceTemplate
11043	raw := NoMethod(*s)
11044	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11045}
11046
11047// InstanceTemplateList: A list of instance templates.
11048type InstanceTemplateList struct {
11049	// Id: [Output Only] Unique identifier for the resource; defined by the
11050	// server.
11051	Id string `json:"id,omitempty"`
11052
11053	// Items: A list of InstanceTemplate resources.
11054	Items []*InstanceTemplate `json:"items,omitempty"`
11055
11056	// Kind: [Output Only] The resource type, which is always
11057	// compute#instanceTemplatesListResponse for instance template lists.
11058	Kind string `json:"kind,omitempty"`
11059
11060	// NextPageToken: [Output Only] This token allows you to get the next
11061	// page of results for list requests. If the number of results is larger
11062	// than maxResults, use the nextPageToken as a value for the query
11063	// parameter pageToken in the next list request. Subsequent list
11064	// requests will have their own nextPageToken to continue paging through
11065	// the results.
11066	NextPageToken string `json:"nextPageToken,omitempty"`
11067
11068	// SelfLink: [Output Only] Server-defined URL for this resource.
11069	SelfLink string `json:"selfLink,omitempty"`
11070
11071	// Warning: [Output Only] Informational warning message.
11072	Warning *InstanceTemplateListWarning `json:"warning,omitempty"`
11073
11074	// ServerResponse contains the HTTP response code and headers from the
11075	// server.
11076	googleapi.ServerResponse `json:"-"`
11077
11078	// ForceSendFields is a list of field names (e.g. "Id") to
11079	// unconditionally include in API requests. By default, fields with
11080	// empty values are omitted from API requests. However, any non-pointer,
11081	// non-interface field appearing in ForceSendFields will be sent to the
11082	// server regardless of whether the field is empty or not. This may be
11083	// used to include empty fields in Patch requests.
11084	ForceSendFields []string `json:"-"`
11085
11086	// NullFields is a list of field names (e.g. "Id") to include in API
11087	// requests with the JSON null value. By default, fields with empty
11088	// values are omitted from API requests. However, any field with an
11089	// empty value appearing in NullFields will be sent to the server as
11090	// null. It is an error if a field in this list has a non-empty value.
11091	// This may be used to include null fields in Patch requests.
11092	NullFields []string `json:"-"`
11093}
11094
11095func (s *InstanceTemplateList) MarshalJSON() ([]byte, error) {
11096	type NoMethod InstanceTemplateList
11097	raw := NoMethod(*s)
11098	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11099}
11100
11101// InstanceTemplateListWarning: [Output Only] Informational warning
11102// message.
11103type InstanceTemplateListWarning struct {
11104	// Code: [Output Only] A warning code, if applicable. For example,
11105	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11106	// the response.
11107	//
11108	// Possible values:
11109	//   "CLEANUP_FAILED"
11110	//   "DEPRECATED_RESOURCE_USED"
11111	//   "DEPRECATED_TYPE_USED"
11112	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11113	//   "EXPERIMENTAL_TYPE_USED"
11114	//   "EXTERNAL_API_WARNING"
11115	//   "FIELD_VALUE_OVERRIDEN"
11116	//   "INJECTED_KERNELS_DEPRECATED"
11117	//   "MISSING_TYPE_DEPENDENCY"
11118	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11119	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11120	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11121	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11122	//   "NEXT_HOP_NOT_RUNNING"
11123	//   "NOT_CRITICAL_ERROR"
11124	//   "NO_RESULTS_ON_PAGE"
11125	//   "REQUIRED_TOS_AGREEMENT"
11126	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11127	//   "RESOURCE_NOT_DELETED"
11128	//   "SCHEMA_VALIDATION_IGNORED"
11129	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11130	//   "UNDECLARED_PROPERTIES"
11131	//   "UNREACHABLE"
11132	Code string `json:"code,omitempty"`
11133
11134	// Data: [Output Only] Metadata about this warning in key: value format.
11135	// For example:
11136	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11137	Data []*InstanceTemplateListWarningData `json:"data,omitempty"`
11138
11139	// Message: [Output Only] A human-readable description of the warning
11140	// code.
11141	Message string `json:"message,omitempty"`
11142
11143	// ForceSendFields is a list of field names (e.g. "Code") to
11144	// unconditionally include in API requests. By default, fields with
11145	// empty values are omitted from API requests. However, any non-pointer,
11146	// non-interface field appearing in ForceSendFields will be sent to the
11147	// server regardless of whether the field is empty or not. This may be
11148	// used to include empty fields in Patch requests.
11149	ForceSendFields []string `json:"-"`
11150
11151	// NullFields is a list of field names (e.g. "Code") to include in API
11152	// requests with the JSON null value. By default, fields with empty
11153	// values are omitted from API requests. However, any field with an
11154	// empty value appearing in NullFields will be sent to the server as
11155	// null. It is an error if a field in this list has a non-empty value.
11156	// This may be used to include null fields in Patch requests.
11157	NullFields []string `json:"-"`
11158}
11159
11160func (s *InstanceTemplateListWarning) MarshalJSON() ([]byte, error) {
11161	type NoMethod InstanceTemplateListWarning
11162	raw := NoMethod(*s)
11163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11164}
11165
11166type InstanceTemplateListWarningData struct {
11167	// Key: [Output Only] A key that provides more detail on the warning
11168	// being returned. For example, for warnings where there are no results
11169	// in a list request for a particular zone, this key might be scope and
11170	// the key value might be the zone name. Other examples might be a key
11171	// indicating a deprecated resource and a suggested replacement, or a
11172	// warning about invalid network settings (for example, if an instance
11173	// attempts to perform IP forwarding but is not enabled for IP
11174	// forwarding).
11175	Key string `json:"key,omitempty"`
11176
11177	// Value: [Output Only] A warning data value corresponding to the key.
11178	Value string `json:"value,omitempty"`
11179
11180	// ForceSendFields is a list of field names (e.g. "Key") to
11181	// unconditionally include in API requests. By default, fields with
11182	// empty values are omitted from API requests. However, any non-pointer,
11183	// non-interface field appearing in ForceSendFields will be sent to the
11184	// server regardless of whether the field is empty or not. This may be
11185	// used to include empty fields in Patch requests.
11186	ForceSendFields []string `json:"-"`
11187
11188	// NullFields is a list of field names (e.g. "Key") to include in API
11189	// requests with the JSON null value. By default, fields with empty
11190	// values are omitted from API requests. However, any field with an
11191	// empty value appearing in NullFields will be sent to the server as
11192	// null. It is an error if a field in this list has a non-empty value.
11193	// This may be used to include null fields in Patch requests.
11194	NullFields []string `json:"-"`
11195}
11196
11197func (s *InstanceTemplateListWarningData) MarshalJSON() ([]byte, error) {
11198	type NoMethod InstanceTemplateListWarningData
11199	raw := NoMethod(*s)
11200	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11201}
11202
11203type InstanceWithNamedPorts struct {
11204	// Instance: [Output Only] The URL of the instance.
11205	Instance string `json:"instance,omitempty"`
11206
11207	// NamedPorts: [Output Only] The named ports that belong to this
11208	// instance group.
11209	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
11210
11211	// Status: [Output Only] The status of the instance.
11212	//
11213	// Possible values:
11214	//   "PROVISIONING"
11215	//   "RUNNING"
11216	//   "STAGING"
11217	//   "STOPPED"
11218	//   "STOPPING"
11219	//   "SUSPENDED"
11220	//   "SUSPENDING"
11221	//   "TERMINATED"
11222	Status string `json:"status,omitempty"`
11223
11224	// ForceSendFields is a list of field names (e.g. "Instance") to
11225	// unconditionally include in API requests. By default, fields with
11226	// empty values are omitted from API requests. However, any non-pointer,
11227	// non-interface field appearing in ForceSendFields will be sent to the
11228	// server regardless of whether the field is empty or not. This may be
11229	// used to include empty fields in Patch requests.
11230	ForceSendFields []string `json:"-"`
11231
11232	// NullFields is a list of field names (e.g. "Instance") to include in
11233	// API requests with the JSON null value. By default, fields with empty
11234	// values are omitted from API requests. However, any field with an
11235	// empty value appearing in NullFields will be sent to the server as
11236	// null. It is an error if a field in this list has a non-empty value.
11237	// This may be used to include null fields in Patch requests.
11238	NullFields []string `json:"-"`
11239}
11240
11241func (s *InstanceWithNamedPorts) MarshalJSON() ([]byte, error) {
11242	type NoMethod InstanceWithNamedPorts
11243	raw := NoMethod(*s)
11244	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11245}
11246
11247type InstancesScopedList struct {
11248	// Instances: [Output Only] A list of instances contained in this scope.
11249	Instances []*Instance `json:"instances,omitempty"`
11250
11251	// Warning: [Output Only] Informational warning which replaces the list
11252	// of instances when the list is empty.
11253	Warning *InstancesScopedListWarning `json:"warning,omitempty"`
11254
11255	// ForceSendFields is a list of field names (e.g. "Instances") to
11256	// unconditionally include in API requests. By default, fields with
11257	// empty values are omitted from API requests. However, any non-pointer,
11258	// non-interface field appearing in ForceSendFields will be sent to the
11259	// server regardless of whether the field is empty or not. This may be
11260	// used to include empty fields in Patch requests.
11261	ForceSendFields []string `json:"-"`
11262
11263	// NullFields is a list of field names (e.g. "Instances") to include in
11264	// API requests with the JSON null value. By default, fields with empty
11265	// values are omitted from API requests. However, any field with an
11266	// empty value appearing in NullFields will be sent to the server as
11267	// null. It is an error if a field in this list has a non-empty value.
11268	// This may be used to include null fields in Patch requests.
11269	NullFields []string `json:"-"`
11270}
11271
11272func (s *InstancesScopedList) MarshalJSON() ([]byte, error) {
11273	type NoMethod InstancesScopedList
11274	raw := NoMethod(*s)
11275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11276}
11277
11278// InstancesScopedListWarning: [Output Only] Informational warning which
11279// replaces the list of instances when the list is empty.
11280type InstancesScopedListWarning struct {
11281	// Code: [Output Only] A warning code, if applicable. For example,
11282	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11283	// the response.
11284	//
11285	// Possible values:
11286	//   "CLEANUP_FAILED"
11287	//   "DEPRECATED_RESOURCE_USED"
11288	//   "DEPRECATED_TYPE_USED"
11289	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11290	//   "EXPERIMENTAL_TYPE_USED"
11291	//   "EXTERNAL_API_WARNING"
11292	//   "FIELD_VALUE_OVERRIDEN"
11293	//   "INJECTED_KERNELS_DEPRECATED"
11294	//   "MISSING_TYPE_DEPENDENCY"
11295	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11296	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11297	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11298	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11299	//   "NEXT_HOP_NOT_RUNNING"
11300	//   "NOT_CRITICAL_ERROR"
11301	//   "NO_RESULTS_ON_PAGE"
11302	//   "REQUIRED_TOS_AGREEMENT"
11303	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11304	//   "RESOURCE_NOT_DELETED"
11305	//   "SCHEMA_VALIDATION_IGNORED"
11306	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11307	//   "UNDECLARED_PROPERTIES"
11308	//   "UNREACHABLE"
11309	Code string `json:"code,omitempty"`
11310
11311	// Data: [Output Only] Metadata about this warning in key: value format.
11312	// For example:
11313	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11314	Data []*InstancesScopedListWarningData `json:"data,omitempty"`
11315
11316	// Message: [Output Only] A human-readable description of the warning
11317	// code.
11318	Message string `json:"message,omitempty"`
11319
11320	// ForceSendFields is a list of field names (e.g. "Code") to
11321	// unconditionally include in API requests. By default, fields with
11322	// empty values are omitted from API requests. However, any non-pointer,
11323	// non-interface field appearing in ForceSendFields will be sent to the
11324	// server regardless of whether the field is empty or not. This may be
11325	// used to include empty fields in Patch requests.
11326	ForceSendFields []string `json:"-"`
11327
11328	// NullFields is a list of field names (e.g. "Code") to include in API
11329	// requests with the JSON null value. By default, fields with empty
11330	// values are omitted from API requests. However, any field with an
11331	// empty value appearing in NullFields will be sent to the server as
11332	// null. It is an error if a field in this list has a non-empty value.
11333	// This may be used to include null fields in Patch requests.
11334	NullFields []string `json:"-"`
11335}
11336
11337func (s *InstancesScopedListWarning) MarshalJSON() ([]byte, error) {
11338	type NoMethod InstancesScopedListWarning
11339	raw := NoMethod(*s)
11340	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11341}
11342
11343type InstancesScopedListWarningData struct {
11344	// Key: [Output Only] A key that provides more detail on the warning
11345	// being returned. For example, for warnings where there are no results
11346	// in a list request for a particular zone, this key might be scope and
11347	// the key value might be the zone name. Other examples might be a key
11348	// indicating a deprecated resource and a suggested replacement, or a
11349	// warning about invalid network settings (for example, if an instance
11350	// attempts to perform IP forwarding but is not enabled for IP
11351	// forwarding).
11352	Key string `json:"key,omitempty"`
11353
11354	// Value: [Output Only] A warning data value corresponding to the key.
11355	Value string `json:"value,omitempty"`
11356
11357	// ForceSendFields is a list of field names (e.g. "Key") to
11358	// unconditionally include in API requests. By default, fields with
11359	// empty values are omitted from API requests. However, any non-pointer,
11360	// non-interface field appearing in ForceSendFields will be sent to the
11361	// server regardless of whether the field is empty or not. This may be
11362	// used to include empty fields in Patch requests.
11363	ForceSendFields []string `json:"-"`
11364
11365	// NullFields is a list of field names (e.g. "Key") to include in API
11366	// requests with the JSON null value. By default, fields with empty
11367	// values are omitted from API requests. However, any field with an
11368	// empty value appearing in NullFields will be sent to the server as
11369	// null. It is an error if a field in this list has a non-empty value.
11370	// This may be used to include null fields in Patch requests.
11371	NullFields []string `json:"-"`
11372}
11373
11374func (s *InstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
11375	type NoMethod InstancesScopedListWarningData
11376	raw := NoMethod(*s)
11377	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11378}
11379
11380type InstancesSetLabelsRequest struct {
11381	// LabelFingerprint: Fingerprint of the previous set of labels for this
11382	// resource, used to prevent conflicts. Provide the latest fingerprint
11383	// value when making a request to add or change labels.
11384	LabelFingerprint string `json:"labelFingerprint,omitempty"`
11385
11386	Labels map[string]string `json:"labels,omitempty"`
11387
11388	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
11389	// unconditionally include in API requests. By default, fields with
11390	// empty values are omitted from API requests. However, any non-pointer,
11391	// non-interface field appearing in ForceSendFields will be sent to the
11392	// server regardless of whether the field is empty or not. This may be
11393	// used to include empty fields in Patch requests.
11394	ForceSendFields []string `json:"-"`
11395
11396	// NullFields is a list of field names (e.g. "LabelFingerprint") to
11397	// include in API requests with the JSON null value. By default, fields
11398	// with empty values are omitted from API requests. However, any field
11399	// with an empty value appearing in NullFields will be sent to the
11400	// server as null. It is an error if a field in this list has a
11401	// non-empty value. This may be used to include null fields in Patch
11402	// requests.
11403	NullFields []string `json:"-"`
11404}
11405
11406func (s *InstancesSetLabelsRequest) MarshalJSON() ([]byte, error) {
11407	type NoMethod InstancesSetLabelsRequest
11408	raw := NoMethod(*s)
11409	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11410}
11411
11412type InstancesSetMachineResourcesRequest struct {
11413	// GuestAccelerators: A list of the type and count of accelerator cards
11414	// attached to the instance.
11415	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
11416
11417	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
11418	// to unconditionally include in API requests. By default, fields with
11419	// empty values are omitted from API requests. However, any non-pointer,
11420	// non-interface field appearing in ForceSendFields will be sent to the
11421	// server regardless of whether the field is empty or not. This may be
11422	// used to include empty fields in Patch requests.
11423	ForceSendFields []string `json:"-"`
11424
11425	// NullFields is a list of field names (e.g. "GuestAccelerators") to
11426	// include in API requests with the JSON null value. By default, fields
11427	// with empty values are omitted from API requests. However, any field
11428	// with an empty value appearing in NullFields will be sent to the
11429	// server as null. It is an error if a field in this list has a
11430	// non-empty value. This may be used to include null fields in Patch
11431	// requests.
11432	NullFields []string `json:"-"`
11433}
11434
11435func (s *InstancesSetMachineResourcesRequest) MarshalJSON() ([]byte, error) {
11436	type NoMethod InstancesSetMachineResourcesRequest
11437	raw := NoMethod(*s)
11438	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11439}
11440
11441type InstancesSetMachineTypeRequest struct {
11442	// MachineType: Full or partial URL of the machine type resource. See
11443	// Machine Types for a full list of machine types. For example:
11444	// zones/us-central1-f/machineTypes/n1-standard-1
11445	MachineType string `json:"machineType,omitempty"`
11446
11447	// ForceSendFields is a list of field names (e.g. "MachineType") to
11448	// unconditionally include in API requests. By default, fields with
11449	// empty values are omitted from API requests. However, any non-pointer,
11450	// non-interface field appearing in ForceSendFields will be sent to the
11451	// server regardless of whether the field is empty or not. This may be
11452	// used to include empty fields in Patch requests.
11453	ForceSendFields []string `json:"-"`
11454
11455	// NullFields is a list of field names (e.g. "MachineType") to include
11456	// in API requests with the JSON null value. By default, fields with
11457	// empty values are omitted from API requests. However, any field with
11458	// an empty value appearing in NullFields will be sent to the server as
11459	// null. It is an error if a field in this list has a non-empty value.
11460	// This may be used to include null fields in Patch requests.
11461	NullFields []string `json:"-"`
11462}
11463
11464func (s *InstancesSetMachineTypeRequest) MarshalJSON() ([]byte, error) {
11465	type NoMethod InstancesSetMachineTypeRequest
11466	raw := NoMethod(*s)
11467	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11468}
11469
11470type InstancesSetMinCpuPlatformRequest struct {
11471	// MinCpuPlatform: Minimum cpu/platform this instance should be started
11472	// at.
11473	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
11474
11475	// ForceSendFields is a list of field names (e.g. "MinCpuPlatform") to
11476	// unconditionally include in API requests. By default, fields with
11477	// empty values are omitted from API requests. However, any non-pointer,
11478	// non-interface field appearing in ForceSendFields will be sent to the
11479	// server regardless of whether the field is empty or not. This may be
11480	// used to include empty fields in Patch requests.
11481	ForceSendFields []string `json:"-"`
11482
11483	// NullFields is a list of field names (e.g. "MinCpuPlatform") to
11484	// include in API requests with the JSON null value. By default, fields
11485	// with empty values are omitted from API requests. However, any field
11486	// with an empty value appearing in NullFields will be sent to the
11487	// server as null. It is an error if a field in this list has a
11488	// non-empty value. This may be used to include null fields in Patch
11489	// requests.
11490	NullFields []string `json:"-"`
11491}
11492
11493func (s *InstancesSetMinCpuPlatformRequest) MarshalJSON() ([]byte, error) {
11494	type NoMethod InstancesSetMinCpuPlatformRequest
11495	raw := NoMethod(*s)
11496	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11497}
11498
11499type InstancesSetServiceAccountRequest struct {
11500	// Email: Email address of the service account.
11501	Email string `json:"email,omitempty"`
11502
11503	// Scopes: The list of scopes to be made available for this service
11504	// account.
11505	Scopes []string `json:"scopes,omitempty"`
11506
11507	// ForceSendFields is a list of field names (e.g. "Email") to
11508	// unconditionally include in API requests. By default, fields with
11509	// empty values are omitted from API requests. However, any non-pointer,
11510	// non-interface field appearing in ForceSendFields will be sent to the
11511	// server regardless of whether the field is empty or not. This may be
11512	// used to include empty fields in Patch requests.
11513	ForceSendFields []string `json:"-"`
11514
11515	// NullFields is a list of field names (e.g. "Email") to include in API
11516	// requests with the JSON null value. By default, fields with empty
11517	// values are omitted from API requests. However, any field with an
11518	// empty value appearing in NullFields will be sent to the server as
11519	// null. It is an error if a field in this list has a non-empty value.
11520	// This may be used to include null fields in Patch requests.
11521	NullFields []string `json:"-"`
11522}
11523
11524func (s *InstancesSetServiceAccountRequest) MarshalJSON() ([]byte, error) {
11525	type NoMethod InstancesSetServiceAccountRequest
11526	raw := NoMethod(*s)
11527	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11528}
11529
11530type InstancesStartWithEncryptionKeyRequest struct {
11531	// Disks: Array of disks associated with this instance that are
11532	// protected with a customer-supplied encryption key.
11533	//
11534	// In order to start the instance, the disk url and its corresponding
11535	// key must be provided.
11536	//
11537	// If the disk is not protected with a customer-supplied encryption key
11538	// it should not be specified.
11539	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
11540
11541	// ForceSendFields is a list of field names (e.g. "Disks") to
11542	// unconditionally include in API requests. By default, fields with
11543	// empty values are omitted from API requests. However, any non-pointer,
11544	// non-interface field appearing in ForceSendFields will be sent to the
11545	// server regardless of whether the field is empty or not. This may be
11546	// used to include empty fields in Patch requests.
11547	ForceSendFields []string `json:"-"`
11548
11549	// NullFields is a list of field names (e.g. "Disks") to include in API
11550	// requests with the JSON null value. By default, fields with empty
11551	// values are omitted from API requests. However, any field with an
11552	// empty value appearing in NullFields will be sent to the server as
11553	// null. It is an error if a field in this list has a non-empty value.
11554	// This may be used to include null fields in Patch requests.
11555	NullFields []string `json:"-"`
11556}
11557
11558func (s *InstancesStartWithEncryptionKeyRequest) MarshalJSON() ([]byte, error) {
11559	type NoMethod InstancesStartWithEncryptionKeyRequest
11560	raw := NoMethod(*s)
11561	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11562}
11563
11564// Interconnect: Represents an Interconnects resource. The Interconnects
11565// resource is a dedicated connection between Google's network and your
11566// on-premises network. For more information, see the  Dedicated
11567// overview page. (== resource_for v1.interconnects ==) (== resource_for
11568// beta.interconnects ==)
11569type Interconnect struct {
11570	// AdminEnabled: Administrative status of the interconnect. When this is
11571	// set to true, the Interconnect is functional and can carry traffic.
11572	// When set to false, no packets can be carried over the interconnect
11573	// and no BGP routes are exchanged over it. By default, the status is
11574	// set to true.
11575	AdminEnabled bool `json:"adminEnabled,omitempty"`
11576
11577	// CircuitInfos: [Output Only] A list of CircuitInfo objects, that
11578	// describe the individual circuits in this LAG.
11579	CircuitInfos []*InterconnectCircuitInfo `json:"circuitInfos,omitempty"`
11580
11581	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
11582	// format.
11583	CreationTimestamp string `json:"creationTimestamp,omitempty"`
11584
11585	// CustomerName: Customer name, to put in the Letter of Authorization as
11586	// the party authorized to request a crossconnect.
11587	CustomerName string `json:"customerName,omitempty"`
11588
11589	// Description: An optional description of this resource. Provide this
11590	// property when you create the resource.
11591	Description string `json:"description,omitempty"`
11592
11593	// ExpectedOutages: [Output Only] A list of outages expected for this
11594	// Interconnect.
11595	ExpectedOutages []*InterconnectOutageNotification `json:"expectedOutages,omitempty"`
11596
11597	// GoogleIpAddress: [Output Only] IP address configured on the Google
11598	// side of the Interconnect link. This can be used only for ping tests.
11599	GoogleIpAddress string `json:"googleIpAddress,omitempty"`
11600
11601	// GoogleReferenceId: [Output Only] Google reference ID; to be used when
11602	// raising support tickets with Google or otherwise to debug backend
11603	// connectivity issues.
11604	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
11605
11606	// Id: [Output Only] The unique identifier for the resource. This
11607	// identifier is defined by the server.
11608	Id uint64 `json:"id,omitempty,string"`
11609
11610	// InterconnectAttachments: [Output Only] A list of the URLs of all
11611	// InterconnectAttachments configured to use this Interconnect.
11612	InterconnectAttachments []string `json:"interconnectAttachments,omitempty"`
11613
11614	// InterconnectType: Type of interconnect. Note that "IT_PRIVATE" has
11615	// been deprecated in favor of "DEDICATED"
11616	//
11617	// Possible values:
11618	//   "DEDICATED"
11619	//   "IT_PRIVATE"
11620	InterconnectType string `json:"interconnectType,omitempty"`
11621
11622	// Kind: [Output Only] Type of the resource. Always compute#interconnect
11623	// for interconnects.
11624	Kind string `json:"kind,omitempty"`
11625
11626	// LinkType: Type of link requested. This field indicates speed of each
11627	// of the links in the bundle, not the entire bundle. Only 10G per link
11628	// is allowed for a dedicated interconnect. Options: Ethernet_10G_LR
11629	//
11630	// Possible values:
11631	//   "LINK_TYPE_ETHERNET_10G_LR"
11632	LinkType string `json:"linkType,omitempty"`
11633
11634	// Location: URL of the InterconnectLocation object that represents
11635	// where this connection is to be provisioned.
11636	Location string `json:"location,omitempty"`
11637
11638	// Name: Name of the resource. Provided by the client when the resource
11639	// is created. The name must be 1-63 characters long, and comply with
11640	// RFC1035. Specifically, the name must be 1-63 characters long and
11641	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
11642	// the first character must be a lowercase letter, and all following
11643	// characters must be a dash, lowercase letter, or digit, except the
11644	// last character, which cannot be a dash.
11645	Name string `json:"name,omitempty"`
11646
11647	// NocContactEmail: Email address to contact the customer NOC for
11648	// operations and maintenance notifications regarding this Interconnect.
11649	// If specified, this will be used for notifications in addition to all
11650	// other forms described, such as Stackdriver logs alerting and Cloud
11651	// Notifications.
11652	NocContactEmail string `json:"nocContactEmail,omitempty"`
11653
11654	// OperationalStatus: [Output Only] The current status of whether or not
11655	// this Interconnect is functional.
11656	//
11657	// Possible values:
11658	//   "OS_ACTIVE"
11659	//   "OS_UNPROVISIONED"
11660	OperationalStatus string `json:"operationalStatus,omitempty"`
11661
11662	// PeerIpAddress: [Output Only] IP address configured on the customer
11663	// side of the Interconnect link. The customer should configure this IP
11664	// address during turnup when prompted by Google NOC. This can be used
11665	// only for ping tests.
11666	PeerIpAddress string `json:"peerIpAddress,omitempty"`
11667
11668	// ProvisionedLinkCount: [Output Only] Number of links actually
11669	// provisioned in this interconnect.
11670	ProvisionedLinkCount int64 `json:"provisionedLinkCount,omitempty"`
11671
11672	// RequestedLinkCount: Target number of physical links in the link
11673	// bundle, as requested by the customer.
11674	RequestedLinkCount int64 `json:"requestedLinkCount,omitempty"`
11675
11676	// SelfLink: [Output Only] Server-defined URL for the resource.
11677	SelfLink string `json:"selfLink,omitempty"`
11678
11679	// ServerResponse contains the HTTP response code and headers from the
11680	// server.
11681	googleapi.ServerResponse `json:"-"`
11682
11683	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
11684	// unconditionally include in API requests. By default, fields with
11685	// empty values are omitted from API requests. However, any non-pointer,
11686	// non-interface field appearing in ForceSendFields will be sent to the
11687	// server regardless of whether the field is empty or not. This may be
11688	// used to include empty fields in Patch requests.
11689	ForceSendFields []string `json:"-"`
11690
11691	// NullFields is a list of field names (e.g. "AdminEnabled") to include
11692	// in API requests with the JSON null value. By default, fields with
11693	// empty values are omitted from API requests. However, any field with
11694	// an empty value appearing in NullFields will be sent to the server as
11695	// null. It is an error if a field in this list has a non-empty value.
11696	// This may be used to include null fields in Patch requests.
11697	NullFields []string `json:"-"`
11698}
11699
11700func (s *Interconnect) MarshalJSON() ([]byte, error) {
11701	type NoMethod Interconnect
11702	raw := NoMethod(*s)
11703	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11704}
11705
11706// InterconnectAttachment: Represents an InterconnectAttachment (VLAN
11707// attachment) resource. For more information, see  Creating VLAN
11708// Attachments. (== resource_for beta.interconnectAttachments ==) (==
11709// resource_for v1.interconnectAttachments ==)
11710type InterconnectAttachment struct {
11711	// CloudRouterIpAddress: [Output Only] IPv4 address + prefix length to
11712	// be configured on Cloud Router Interface for this interconnect
11713	// attachment.
11714	CloudRouterIpAddress string `json:"cloudRouterIpAddress,omitempty"`
11715
11716	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
11717	// format.
11718	CreationTimestamp string `json:"creationTimestamp,omitempty"`
11719
11720	// CustomerRouterIpAddress: [Output Only] IPv4 address + prefix length
11721	// to be configured on the customer router subinterface for this
11722	// interconnect attachment.
11723	CustomerRouterIpAddress string `json:"customerRouterIpAddress,omitempty"`
11724
11725	// Description: An optional description of this resource.
11726	Description string `json:"description,omitempty"`
11727
11728	// GoogleReferenceId: [Output Only] Google reference ID, to be used when
11729	// raising support tickets with Google or otherwise to debug backend
11730	// connectivity issues.
11731	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
11732
11733	// Id: [Output Only] The unique identifier for the resource. This
11734	// identifier is defined by the server.
11735	Id uint64 `json:"id,omitempty,string"`
11736
11737	// Interconnect: URL of the underlying Interconnect object that this
11738	// attachment's traffic will traverse through.
11739	Interconnect string `json:"interconnect,omitempty"`
11740
11741	// Kind: [Output Only] Type of the resource. Always
11742	// compute#interconnectAttachment for interconnect attachments.
11743	Kind string `json:"kind,omitempty"`
11744
11745	// Name: Name of the resource. Provided by the client when the resource
11746	// is created. The name must be 1-63 characters long, and comply with
11747	// RFC1035. Specifically, the name must be 1-63 characters long and
11748	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
11749	// the first character must be a lowercase letter, and all following
11750	// characters must be a dash, lowercase letter, or digit, except the
11751	// last character, which cannot be a dash.
11752	Name string `json:"name,omitempty"`
11753
11754	// OperationalStatus: [Output Only] The current status of whether or not
11755	// this interconnect attachment is functional.
11756	//
11757	// Possible values:
11758	//   "OS_ACTIVE"
11759	//   "OS_UNPROVISIONED"
11760	OperationalStatus string `json:"operationalStatus,omitempty"`
11761
11762	// PrivateInterconnectInfo: [Output Only] Information specific to an
11763	// InterconnectAttachment. This property is populated if the
11764	// interconnect that this is attached to is of type DEDICATED.
11765	PrivateInterconnectInfo *InterconnectAttachmentPrivateInfo `json:"privateInterconnectInfo,omitempty"`
11766
11767	// Region: [Output Only] URL of the region where the regional
11768	// interconnect attachment resides. You must specify this field as part
11769	// of the HTTP request URL. It is not settable as a field in the request
11770	// body.
11771	Region string `json:"region,omitempty"`
11772
11773	// Router: URL of the cloud router to be used for dynamic routing. This
11774	// router must be in the same region as this InterconnectAttachment. The
11775	// InterconnectAttachment will automatically connect the Interconnect to
11776	// the network & region within which the Cloud Router is configured.
11777	Router string `json:"router,omitempty"`
11778
11779	// SelfLink: [Output Only] Server-defined URL for the resource.
11780	SelfLink string `json:"selfLink,omitempty"`
11781
11782	// ServerResponse contains the HTTP response code and headers from the
11783	// server.
11784	googleapi.ServerResponse `json:"-"`
11785
11786	// ForceSendFields is a list of field names (e.g.
11787	// "CloudRouterIpAddress") to unconditionally include in API requests.
11788	// By default, fields with empty values are omitted from API requests.
11789	// However, any non-pointer, non-interface field appearing in
11790	// ForceSendFields will be sent to the server regardless of whether the
11791	// field is empty or not. This may be used to include empty fields in
11792	// Patch requests.
11793	ForceSendFields []string `json:"-"`
11794
11795	// NullFields is a list of field names (e.g. "CloudRouterIpAddress") to
11796	// include in API requests with the JSON null value. By default, fields
11797	// with empty values are omitted from API requests. However, any field
11798	// with an empty value appearing in NullFields will be sent to the
11799	// server as null. It is an error if a field in this list has a
11800	// non-empty value. This may be used to include null fields in Patch
11801	// requests.
11802	NullFields []string `json:"-"`
11803}
11804
11805func (s *InterconnectAttachment) MarshalJSON() ([]byte, error) {
11806	type NoMethod InterconnectAttachment
11807	raw := NoMethod(*s)
11808	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11809}
11810
11811type InterconnectAttachmentAggregatedList struct {
11812	// Id: [Output Only] Unique identifier for the resource; defined by the
11813	// server.
11814	Id string `json:"id,omitempty"`
11815
11816	// Items: A list of InterconnectAttachmentsScopedList resources.
11817	Items map[string]InterconnectAttachmentsScopedList `json:"items,omitempty"`
11818
11819	// Kind: [Output Only] Type of resource. Always
11820	// compute#interconnectAttachmentAggregatedList for aggregated lists of
11821	// interconnect attachments.
11822	Kind string `json:"kind,omitempty"`
11823
11824	// NextPageToken: [Output Only] This token allows you to get the next
11825	// page of results for list requests. If the number of results is larger
11826	// than maxResults, use the nextPageToken as a value for the query
11827	// parameter pageToken in the next list request. Subsequent list
11828	// requests will have their own nextPageToken to continue paging through
11829	// the results.
11830	NextPageToken string `json:"nextPageToken,omitempty"`
11831
11832	// SelfLink: [Output Only] Server-defined URL for this resource.
11833	SelfLink string `json:"selfLink,omitempty"`
11834
11835	// Warning: [Output Only] Informational warning message.
11836	Warning *InterconnectAttachmentAggregatedListWarning `json:"warning,omitempty"`
11837
11838	// ServerResponse contains the HTTP response code and headers from the
11839	// server.
11840	googleapi.ServerResponse `json:"-"`
11841
11842	// ForceSendFields is a list of field names (e.g. "Id") to
11843	// unconditionally include in API requests. By default, fields with
11844	// empty values are omitted from API requests. However, any non-pointer,
11845	// non-interface field appearing in ForceSendFields will be sent to the
11846	// server regardless of whether the field is empty or not. This may be
11847	// used to include empty fields in Patch requests.
11848	ForceSendFields []string `json:"-"`
11849
11850	// NullFields is a list of field names (e.g. "Id") to include in API
11851	// requests with the JSON null value. By default, fields with empty
11852	// values are omitted from API requests. However, any field with an
11853	// empty value appearing in NullFields will be sent to the server as
11854	// null. It is an error if a field in this list has a non-empty value.
11855	// This may be used to include null fields in Patch requests.
11856	NullFields []string `json:"-"`
11857}
11858
11859func (s *InterconnectAttachmentAggregatedList) MarshalJSON() ([]byte, error) {
11860	type NoMethod InterconnectAttachmentAggregatedList
11861	raw := NoMethod(*s)
11862	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11863}
11864
11865// InterconnectAttachmentAggregatedListWarning: [Output Only]
11866// Informational warning message.
11867type InterconnectAttachmentAggregatedListWarning struct {
11868	// Code: [Output Only] A warning code, if applicable. For example,
11869	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11870	// the response.
11871	//
11872	// Possible values:
11873	//   "CLEANUP_FAILED"
11874	//   "DEPRECATED_RESOURCE_USED"
11875	//   "DEPRECATED_TYPE_USED"
11876	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11877	//   "EXPERIMENTAL_TYPE_USED"
11878	//   "EXTERNAL_API_WARNING"
11879	//   "FIELD_VALUE_OVERRIDEN"
11880	//   "INJECTED_KERNELS_DEPRECATED"
11881	//   "MISSING_TYPE_DEPENDENCY"
11882	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11883	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11884	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11885	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11886	//   "NEXT_HOP_NOT_RUNNING"
11887	//   "NOT_CRITICAL_ERROR"
11888	//   "NO_RESULTS_ON_PAGE"
11889	//   "REQUIRED_TOS_AGREEMENT"
11890	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11891	//   "RESOURCE_NOT_DELETED"
11892	//   "SCHEMA_VALIDATION_IGNORED"
11893	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11894	//   "UNDECLARED_PROPERTIES"
11895	//   "UNREACHABLE"
11896	Code string `json:"code,omitempty"`
11897
11898	// Data: [Output Only] Metadata about this warning in key: value format.
11899	// For example:
11900	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11901	Data []*InterconnectAttachmentAggregatedListWarningData `json:"data,omitempty"`
11902
11903	// Message: [Output Only] A human-readable description of the warning
11904	// code.
11905	Message string `json:"message,omitempty"`
11906
11907	// ForceSendFields is a list of field names (e.g. "Code") to
11908	// unconditionally include in API requests. By default, fields with
11909	// empty values are omitted from API requests. However, any non-pointer,
11910	// non-interface field appearing in ForceSendFields will be sent to the
11911	// server regardless of whether the field is empty or not. This may be
11912	// used to include empty fields in Patch requests.
11913	ForceSendFields []string `json:"-"`
11914
11915	// NullFields is a list of field names (e.g. "Code") to include in API
11916	// requests with the JSON null value. By default, fields with empty
11917	// values are omitted from API requests. However, any field with an
11918	// empty value appearing in NullFields will be sent to the server as
11919	// null. It is an error if a field in this list has a non-empty value.
11920	// This may be used to include null fields in Patch requests.
11921	NullFields []string `json:"-"`
11922}
11923
11924func (s *InterconnectAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
11925	type NoMethod InterconnectAttachmentAggregatedListWarning
11926	raw := NoMethod(*s)
11927	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11928}
11929
11930type InterconnectAttachmentAggregatedListWarningData struct {
11931	// Key: [Output Only] A key that provides more detail on the warning
11932	// being returned. For example, for warnings where there are no results
11933	// in a list request for a particular zone, this key might be scope and
11934	// the key value might be the zone name. Other examples might be a key
11935	// indicating a deprecated resource and a suggested replacement, or a
11936	// warning about invalid network settings (for example, if an instance
11937	// attempts to perform IP forwarding but is not enabled for IP
11938	// forwarding).
11939	Key string `json:"key,omitempty"`
11940
11941	// Value: [Output Only] A warning data value corresponding to the key.
11942	Value string `json:"value,omitempty"`
11943
11944	// ForceSendFields is a list of field names (e.g. "Key") to
11945	// unconditionally include in API requests. By default, fields with
11946	// empty values are omitted from API requests. However, any non-pointer,
11947	// non-interface field appearing in ForceSendFields will be sent to the
11948	// server regardless of whether the field is empty or not. This may be
11949	// used to include empty fields in Patch requests.
11950	ForceSendFields []string `json:"-"`
11951
11952	// NullFields is a list of field names (e.g. "Key") to include in API
11953	// requests with the JSON null value. By default, fields with empty
11954	// values are omitted from API requests. However, any field with an
11955	// empty value appearing in NullFields will be sent to the server as
11956	// null. It is an error if a field in this list has a non-empty value.
11957	// This may be used to include null fields in Patch requests.
11958	NullFields []string `json:"-"`
11959}
11960
11961func (s *InterconnectAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
11962	type NoMethod InterconnectAttachmentAggregatedListWarningData
11963	raw := NoMethod(*s)
11964	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11965}
11966
11967// InterconnectAttachmentList: Response to the list request, and
11968// contains a list of interconnect attachments.
11969type InterconnectAttachmentList struct {
11970	// Id: [Output Only] Unique identifier for the resource; defined by the
11971	// server.
11972	Id string `json:"id,omitempty"`
11973
11974	// Items: A list of InterconnectAttachment resources.
11975	Items []*InterconnectAttachment `json:"items,omitempty"`
11976
11977	// Kind: [Output Only] Type of resource. Always
11978	// compute#interconnectAttachmentList for lists of interconnect
11979	// attachments.
11980	Kind string `json:"kind,omitempty"`
11981
11982	// NextPageToken: [Output Only] This token allows you to get the next
11983	// page of results for list requests. If the number of results is larger
11984	// than maxResults, use the nextPageToken as a value for the query
11985	// parameter pageToken in the next list request. Subsequent list
11986	// requests will have their own nextPageToken to continue paging through
11987	// the results.
11988	NextPageToken string `json:"nextPageToken,omitempty"`
11989
11990	// SelfLink: [Output Only] Server-defined URL for this resource.
11991	SelfLink string `json:"selfLink,omitempty"`
11992
11993	// Warning: [Output Only] Informational warning message.
11994	Warning *InterconnectAttachmentListWarning `json:"warning,omitempty"`
11995
11996	// ServerResponse contains the HTTP response code and headers from the
11997	// server.
11998	googleapi.ServerResponse `json:"-"`
11999
12000	// ForceSendFields is a list of field names (e.g. "Id") to
12001	// unconditionally include in API requests. By default, fields with
12002	// empty values are omitted from API requests. However, any non-pointer,
12003	// non-interface field appearing in ForceSendFields will be sent to the
12004	// server regardless of whether the field is empty or not. This may be
12005	// used to include empty fields in Patch requests.
12006	ForceSendFields []string `json:"-"`
12007
12008	// NullFields is a list of field names (e.g. "Id") to include in API
12009	// requests with the JSON null value. By default, fields with empty
12010	// values are omitted from API requests. However, any field with an
12011	// empty value appearing in NullFields will be sent to the server as
12012	// null. It is an error if a field in this list has a non-empty value.
12013	// This may be used to include null fields in Patch requests.
12014	NullFields []string `json:"-"`
12015}
12016
12017func (s *InterconnectAttachmentList) MarshalJSON() ([]byte, error) {
12018	type NoMethod InterconnectAttachmentList
12019	raw := NoMethod(*s)
12020	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12021}
12022
12023// InterconnectAttachmentListWarning: [Output Only] Informational
12024// warning message.
12025type InterconnectAttachmentListWarning struct {
12026	// Code: [Output Only] A warning code, if applicable. For example,
12027	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12028	// the response.
12029	//
12030	// Possible values:
12031	//   "CLEANUP_FAILED"
12032	//   "DEPRECATED_RESOURCE_USED"
12033	//   "DEPRECATED_TYPE_USED"
12034	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12035	//   "EXPERIMENTAL_TYPE_USED"
12036	//   "EXTERNAL_API_WARNING"
12037	//   "FIELD_VALUE_OVERRIDEN"
12038	//   "INJECTED_KERNELS_DEPRECATED"
12039	//   "MISSING_TYPE_DEPENDENCY"
12040	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12041	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12042	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12043	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12044	//   "NEXT_HOP_NOT_RUNNING"
12045	//   "NOT_CRITICAL_ERROR"
12046	//   "NO_RESULTS_ON_PAGE"
12047	//   "REQUIRED_TOS_AGREEMENT"
12048	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12049	//   "RESOURCE_NOT_DELETED"
12050	//   "SCHEMA_VALIDATION_IGNORED"
12051	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12052	//   "UNDECLARED_PROPERTIES"
12053	//   "UNREACHABLE"
12054	Code string `json:"code,omitempty"`
12055
12056	// Data: [Output Only] Metadata about this warning in key: value format.
12057	// For example:
12058	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12059	Data []*InterconnectAttachmentListWarningData `json:"data,omitempty"`
12060
12061	// Message: [Output Only] A human-readable description of the warning
12062	// code.
12063	Message string `json:"message,omitempty"`
12064
12065	// ForceSendFields is a list of field names (e.g. "Code") to
12066	// unconditionally include in API requests. By default, fields with
12067	// empty values are omitted from API requests. However, any non-pointer,
12068	// non-interface field appearing in ForceSendFields will be sent to the
12069	// server regardless of whether the field is empty or not. This may be
12070	// used to include empty fields in Patch requests.
12071	ForceSendFields []string `json:"-"`
12072
12073	// NullFields is a list of field names (e.g. "Code") to include in API
12074	// requests with the JSON null value. By default, fields with empty
12075	// values are omitted from API requests. However, any field with an
12076	// empty value appearing in NullFields will be sent to the server as
12077	// null. It is an error if a field in this list has a non-empty value.
12078	// This may be used to include null fields in Patch requests.
12079	NullFields []string `json:"-"`
12080}
12081
12082func (s *InterconnectAttachmentListWarning) MarshalJSON() ([]byte, error) {
12083	type NoMethod InterconnectAttachmentListWarning
12084	raw := NoMethod(*s)
12085	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12086}
12087
12088type InterconnectAttachmentListWarningData struct {
12089	// Key: [Output Only] A key that provides more detail on the warning
12090	// being returned. For example, for warnings where there are no results
12091	// in a list request for a particular zone, this key might be scope and
12092	// the key value might be the zone name. Other examples might be a key
12093	// indicating a deprecated resource and a suggested replacement, or a
12094	// warning about invalid network settings (for example, if an instance
12095	// attempts to perform IP forwarding but is not enabled for IP
12096	// forwarding).
12097	Key string `json:"key,omitempty"`
12098
12099	// Value: [Output Only] A warning data value corresponding to the key.
12100	Value string `json:"value,omitempty"`
12101
12102	// ForceSendFields is a list of field names (e.g. "Key") to
12103	// unconditionally include in API requests. By default, fields with
12104	// empty values are omitted from API requests. However, any non-pointer,
12105	// non-interface field appearing in ForceSendFields will be sent to the
12106	// server regardless of whether the field is empty or not. This may be
12107	// used to include empty fields in Patch requests.
12108	ForceSendFields []string `json:"-"`
12109
12110	// NullFields is a list of field names (e.g. "Key") to include in API
12111	// requests with the JSON null value. By default, fields with empty
12112	// values are omitted from API requests. However, any field with an
12113	// empty value appearing in NullFields will be sent to the server as
12114	// null. It is an error if a field in this list has a non-empty value.
12115	// This may be used to include null fields in Patch requests.
12116	NullFields []string `json:"-"`
12117}
12118
12119func (s *InterconnectAttachmentListWarningData) MarshalJSON() ([]byte, error) {
12120	type NoMethod InterconnectAttachmentListWarningData
12121	raw := NoMethod(*s)
12122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12123}
12124
12125// InterconnectAttachmentPrivateInfo: Information for an interconnect
12126// attachment when this belongs to an interconnect of type DEDICATED.
12127type InterconnectAttachmentPrivateInfo struct {
12128	// Tag8021q: [Output Only] 802.1q encapsulation tag to be used for
12129	// traffic between Google and the customer, going to and from this
12130	// network and region.
12131	Tag8021q int64 `json:"tag8021q,omitempty"`
12132
12133	// ForceSendFields is a list of field names (e.g. "Tag8021q") to
12134	// unconditionally include in API requests. By default, fields with
12135	// empty values are omitted from API requests. However, any non-pointer,
12136	// non-interface field appearing in ForceSendFields will be sent to the
12137	// server regardless of whether the field is empty or not. This may be
12138	// used to include empty fields in Patch requests.
12139	ForceSendFields []string `json:"-"`
12140
12141	// NullFields is a list of field names (e.g. "Tag8021q") to include in
12142	// API requests with the JSON null value. By default, fields with empty
12143	// values are omitted from API requests. However, any field with an
12144	// empty value appearing in NullFields will be sent to the server as
12145	// null. It is an error if a field in this list has a non-empty value.
12146	// This may be used to include null fields in Patch requests.
12147	NullFields []string `json:"-"`
12148}
12149
12150func (s *InterconnectAttachmentPrivateInfo) MarshalJSON() ([]byte, error) {
12151	type NoMethod InterconnectAttachmentPrivateInfo
12152	raw := NoMethod(*s)
12153	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12154}
12155
12156type InterconnectAttachmentsScopedList struct {
12157	// InterconnectAttachments: A list of interconnect attachments contained
12158	// in this scope.
12159	InterconnectAttachments []*InterconnectAttachment `json:"interconnectAttachments,omitempty"`
12160
12161	// Warning: Informational warning which replaces the list of addresses
12162	// when the list is empty.
12163	Warning *InterconnectAttachmentsScopedListWarning `json:"warning,omitempty"`
12164
12165	// ForceSendFields is a list of field names (e.g.
12166	// "InterconnectAttachments") to unconditionally include in API
12167	// requests. By default, fields with empty values are omitted from API
12168	// requests. However, any non-pointer, non-interface field appearing in
12169	// ForceSendFields will be sent to the server regardless of whether the
12170	// field is empty or not. This may be used to include empty fields in
12171	// Patch requests.
12172	ForceSendFields []string `json:"-"`
12173
12174	// NullFields is a list of field names (e.g. "InterconnectAttachments")
12175	// to include in API requests with the JSON null value. By default,
12176	// fields with empty values are omitted from API requests. However, any
12177	// field with an empty value appearing in NullFields will be sent to the
12178	// server as null. It is an error if a field in this list has a
12179	// non-empty value. This may be used to include null fields in Patch
12180	// requests.
12181	NullFields []string `json:"-"`
12182}
12183
12184func (s *InterconnectAttachmentsScopedList) MarshalJSON() ([]byte, error) {
12185	type NoMethod InterconnectAttachmentsScopedList
12186	raw := NoMethod(*s)
12187	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12188}
12189
12190// InterconnectAttachmentsScopedListWarning: Informational warning which
12191// replaces the list of addresses when the list is empty.
12192type InterconnectAttachmentsScopedListWarning struct {
12193	// Code: [Output Only] A warning code, if applicable. For example,
12194	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12195	// the response.
12196	//
12197	// Possible values:
12198	//   "CLEANUP_FAILED"
12199	//   "DEPRECATED_RESOURCE_USED"
12200	//   "DEPRECATED_TYPE_USED"
12201	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12202	//   "EXPERIMENTAL_TYPE_USED"
12203	//   "EXTERNAL_API_WARNING"
12204	//   "FIELD_VALUE_OVERRIDEN"
12205	//   "INJECTED_KERNELS_DEPRECATED"
12206	//   "MISSING_TYPE_DEPENDENCY"
12207	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12208	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12209	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12210	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12211	//   "NEXT_HOP_NOT_RUNNING"
12212	//   "NOT_CRITICAL_ERROR"
12213	//   "NO_RESULTS_ON_PAGE"
12214	//   "REQUIRED_TOS_AGREEMENT"
12215	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12216	//   "RESOURCE_NOT_DELETED"
12217	//   "SCHEMA_VALIDATION_IGNORED"
12218	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12219	//   "UNDECLARED_PROPERTIES"
12220	//   "UNREACHABLE"
12221	Code string `json:"code,omitempty"`
12222
12223	// Data: [Output Only] Metadata about this warning in key: value format.
12224	// For example:
12225	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12226	Data []*InterconnectAttachmentsScopedListWarningData `json:"data,omitempty"`
12227
12228	// Message: [Output Only] A human-readable description of the warning
12229	// code.
12230	Message string `json:"message,omitempty"`
12231
12232	// ForceSendFields is a list of field names (e.g. "Code") to
12233	// unconditionally include in API requests. By default, fields with
12234	// empty values are omitted from API requests. However, any non-pointer,
12235	// non-interface field appearing in ForceSendFields will be sent to the
12236	// server regardless of whether the field is empty or not. This may be
12237	// used to include empty fields in Patch requests.
12238	ForceSendFields []string `json:"-"`
12239
12240	// NullFields is a list of field names (e.g. "Code") to include in API
12241	// requests with the JSON null value. By default, fields with empty
12242	// values are omitted from API requests. However, any field with an
12243	// empty value appearing in NullFields will be sent to the server as
12244	// null. It is an error if a field in this list has a non-empty value.
12245	// This may be used to include null fields in Patch requests.
12246	NullFields []string `json:"-"`
12247}
12248
12249func (s *InterconnectAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) {
12250	type NoMethod InterconnectAttachmentsScopedListWarning
12251	raw := NoMethod(*s)
12252	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12253}
12254
12255type InterconnectAttachmentsScopedListWarningData struct {
12256	// Key: [Output Only] A key that provides more detail on the warning
12257	// being returned. For example, for warnings where there are no results
12258	// in a list request for a particular zone, this key might be scope and
12259	// the key value might be the zone name. Other examples might be a key
12260	// indicating a deprecated resource and a suggested replacement, or a
12261	// warning about invalid network settings (for example, if an instance
12262	// attempts to perform IP forwarding but is not enabled for IP
12263	// forwarding).
12264	Key string `json:"key,omitempty"`
12265
12266	// Value: [Output Only] A warning data value corresponding to the key.
12267	Value string `json:"value,omitempty"`
12268
12269	// ForceSendFields is a list of field names (e.g. "Key") to
12270	// unconditionally include in API requests. By default, fields with
12271	// empty values are omitted from API requests. However, any non-pointer,
12272	// non-interface field appearing in ForceSendFields will be sent to the
12273	// server regardless of whether the field is empty or not. This may be
12274	// used to include empty fields in Patch requests.
12275	ForceSendFields []string `json:"-"`
12276
12277	// NullFields is a list of field names (e.g. "Key") to include in API
12278	// requests with the JSON null value. By default, fields with empty
12279	// values are omitted from API requests. However, any field with an
12280	// empty value appearing in NullFields will be sent to the server as
12281	// null. It is an error if a field in this list has a non-empty value.
12282	// This may be used to include null fields in Patch requests.
12283	NullFields []string `json:"-"`
12284}
12285
12286func (s *InterconnectAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
12287	type NoMethod InterconnectAttachmentsScopedListWarningData
12288	raw := NoMethod(*s)
12289	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12290}
12291
12292// InterconnectCircuitInfo: Describes a single physical circuit between
12293// the Customer and Google. CircuitInfo objects are created by Google,
12294// so all fields are output only. Next id: 4
12295type InterconnectCircuitInfo struct {
12296	// CustomerDemarcId: Customer-side demarc ID for this circuit.
12297	CustomerDemarcId string `json:"customerDemarcId,omitempty"`
12298
12299	// GoogleCircuitId: Google-assigned unique ID for this circuit. Assigned
12300	// at circuit turn-up.
12301	GoogleCircuitId string `json:"googleCircuitId,omitempty"`
12302
12303	// GoogleDemarcId: Google-side demarc ID for this circuit. Assigned at
12304	// circuit turn-up and provided by Google to the customer in the LOA.
12305	GoogleDemarcId string `json:"googleDemarcId,omitempty"`
12306
12307	// ForceSendFields is a list of field names (e.g. "CustomerDemarcId") to
12308	// unconditionally include in API requests. By default, fields with
12309	// empty values are omitted from API requests. However, any non-pointer,
12310	// non-interface field appearing in ForceSendFields will be sent to the
12311	// server regardless of whether the field is empty or not. This may be
12312	// used to include empty fields in Patch requests.
12313	ForceSendFields []string `json:"-"`
12314
12315	// NullFields is a list of field names (e.g. "CustomerDemarcId") to
12316	// include in API requests with the JSON null value. By default, fields
12317	// with empty values are omitted from API requests. However, any field
12318	// with an empty value appearing in NullFields will be sent to the
12319	// server as null. It is an error if a field in this list has a
12320	// non-empty value. This may be used to include null fields in Patch
12321	// requests.
12322	NullFields []string `json:"-"`
12323}
12324
12325func (s *InterconnectCircuitInfo) MarshalJSON() ([]byte, error) {
12326	type NoMethod InterconnectCircuitInfo
12327	raw := NoMethod(*s)
12328	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12329}
12330
12331// InterconnectList: Response to the list request, and contains a list
12332// of interconnects.
12333type InterconnectList struct {
12334	// Id: [Output Only] Unique identifier for the resource; defined by the
12335	// server.
12336	Id string `json:"id,omitempty"`
12337
12338	// Items: A list of Interconnect resources.
12339	Items []*Interconnect `json:"items,omitempty"`
12340
12341	// Kind: [Output Only] Type of resource. Always compute#interconnectList
12342	// for lists of interconnects.
12343	Kind string `json:"kind,omitempty"`
12344
12345	// NextPageToken: [Output Only] This token allows you to get the next
12346	// page of results for list requests. If the number of results is larger
12347	// than maxResults, use the nextPageToken as a value for the query
12348	// parameter pageToken in the next list request. Subsequent list
12349	// requests will have their own nextPageToken to continue paging through
12350	// the results.
12351	NextPageToken string `json:"nextPageToken,omitempty"`
12352
12353	// SelfLink: [Output Only] Server-defined URL for this resource.
12354	SelfLink string `json:"selfLink,omitempty"`
12355
12356	// Warning: [Output Only] Informational warning message.
12357	Warning *InterconnectListWarning `json:"warning,omitempty"`
12358
12359	// ServerResponse contains the HTTP response code and headers from the
12360	// server.
12361	googleapi.ServerResponse `json:"-"`
12362
12363	// ForceSendFields is a list of field names (e.g. "Id") to
12364	// unconditionally include in API requests. By default, fields with
12365	// empty values are omitted from API requests. However, any non-pointer,
12366	// non-interface field appearing in ForceSendFields will be sent to the
12367	// server regardless of whether the field is empty or not. This may be
12368	// used to include empty fields in Patch requests.
12369	ForceSendFields []string `json:"-"`
12370
12371	// NullFields is a list of field names (e.g. "Id") to include in API
12372	// requests with the JSON null value. By default, fields with empty
12373	// values are omitted from API requests. However, any field with an
12374	// empty value appearing in NullFields will be sent to the server as
12375	// null. It is an error if a field in this list has a non-empty value.
12376	// This may be used to include null fields in Patch requests.
12377	NullFields []string `json:"-"`
12378}
12379
12380func (s *InterconnectList) MarshalJSON() ([]byte, error) {
12381	type NoMethod InterconnectList
12382	raw := NoMethod(*s)
12383	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12384}
12385
12386// InterconnectListWarning: [Output Only] Informational warning message.
12387type InterconnectListWarning struct {
12388	// Code: [Output Only] A warning code, if applicable. For example,
12389	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12390	// the response.
12391	//
12392	// Possible values:
12393	//   "CLEANUP_FAILED"
12394	//   "DEPRECATED_RESOURCE_USED"
12395	//   "DEPRECATED_TYPE_USED"
12396	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12397	//   "EXPERIMENTAL_TYPE_USED"
12398	//   "EXTERNAL_API_WARNING"
12399	//   "FIELD_VALUE_OVERRIDEN"
12400	//   "INJECTED_KERNELS_DEPRECATED"
12401	//   "MISSING_TYPE_DEPENDENCY"
12402	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12403	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12404	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12405	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12406	//   "NEXT_HOP_NOT_RUNNING"
12407	//   "NOT_CRITICAL_ERROR"
12408	//   "NO_RESULTS_ON_PAGE"
12409	//   "REQUIRED_TOS_AGREEMENT"
12410	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12411	//   "RESOURCE_NOT_DELETED"
12412	//   "SCHEMA_VALIDATION_IGNORED"
12413	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12414	//   "UNDECLARED_PROPERTIES"
12415	//   "UNREACHABLE"
12416	Code string `json:"code,omitempty"`
12417
12418	// Data: [Output Only] Metadata about this warning in key: value format.
12419	// For example:
12420	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12421	Data []*InterconnectListWarningData `json:"data,omitempty"`
12422
12423	// Message: [Output Only] A human-readable description of the warning
12424	// code.
12425	Message string `json:"message,omitempty"`
12426
12427	// ForceSendFields is a list of field names (e.g. "Code") to
12428	// unconditionally include in API requests. By default, fields with
12429	// empty values are omitted from API requests. However, any non-pointer,
12430	// non-interface field appearing in ForceSendFields will be sent to the
12431	// server regardless of whether the field is empty or not. This may be
12432	// used to include empty fields in Patch requests.
12433	ForceSendFields []string `json:"-"`
12434
12435	// NullFields is a list of field names (e.g. "Code") to include in API
12436	// requests with the JSON null value. By default, fields with empty
12437	// values are omitted from API requests. However, any field with an
12438	// empty value appearing in NullFields will be sent to the server as
12439	// null. It is an error if a field in this list has a non-empty value.
12440	// This may be used to include null fields in Patch requests.
12441	NullFields []string `json:"-"`
12442}
12443
12444func (s *InterconnectListWarning) MarshalJSON() ([]byte, error) {
12445	type NoMethod InterconnectListWarning
12446	raw := NoMethod(*s)
12447	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12448}
12449
12450type InterconnectListWarningData struct {
12451	// Key: [Output Only] A key that provides more detail on the warning
12452	// being returned. For example, for warnings where there are no results
12453	// in a list request for a particular zone, this key might be scope and
12454	// the key value might be the zone name. Other examples might be a key
12455	// indicating a deprecated resource and a suggested replacement, or a
12456	// warning about invalid network settings (for example, if an instance
12457	// attempts to perform IP forwarding but is not enabled for IP
12458	// forwarding).
12459	Key string `json:"key,omitempty"`
12460
12461	// Value: [Output Only] A warning data value corresponding to the key.
12462	Value string `json:"value,omitempty"`
12463
12464	// ForceSendFields is a list of field names (e.g. "Key") to
12465	// unconditionally include in API requests. By default, fields with
12466	// empty values are omitted from API requests. However, any non-pointer,
12467	// non-interface field appearing in ForceSendFields will be sent to the
12468	// server regardless of whether the field is empty or not. This may be
12469	// used to include empty fields in Patch requests.
12470	ForceSendFields []string `json:"-"`
12471
12472	// NullFields is a list of field names (e.g. "Key") to include in API
12473	// requests with the JSON null value. By default, fields with empty
12474	// values are omitted from API requests. However, any field with an
12475	// empty value appearing in NullFields will be sent to the server as
12476	// null. It is an error if a field in this list has a non-empty value.
12477	// This may be used to include null fields in Patch requests.
12478	NullFields []string `json:"-"`
12479}
12480
12481func (s *InterconnectListWarningData) MarshalJSON() ([]byte, error) {
12482	type NoMethod InterconnectListWarningData
12483	raw := NoMethod(*s)
12484	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12485}
12486
12487// InterconnectLocation: Represents an InterconnectLocations resource.
12488// The InterconnectLocations resource describes the locations where you
12489// can connect to Google's networks. For more information, see
12490// Colocation Facilities.
12491type InterconnectLocation struct {
12492	// Address: [Output Only] The postal address of the Point of Presence,
12493	// each line in the address is separated by a newline character.
12494	Address string `json:"address,omitempty"`
12495
12496	// AvailabilityZone: [Output Only] Availability zone for this location.
12497	// Within a metropolitan area (metro), maintenance will not be
12498	// simultaneously scheduled in more than one availability zone. Example:
12499	// "zone1" or "zone2".
12500	AvailabilityZone string `json:"availabilityZone,omitempty"`
12501
12502	// City: [Output Only] Metropolitan area designator that indicates which
12503	// city an interconnect is located. For example: "Chicago, IL",
12504	// "Amsterdam, Netherlands".
12505	City string `json:"city,omitempty"`
12506
12507	// Continent: [Output Only] Continent for this location.
12508	//
12509	// Possible values:
12510	//   "AFRICA"
12511	//   "ASIA_PAC"
12512	//   "C_AFRICA"
12513	//   "C_ASIA_PAC"
12514	//   "C_EUROPE"
12515	//   "C_NORTH_AMERICA"
12516	//   "C_SOUTH_AMERICA"
12517	//   "EUROPE"
12518	//   "NORTH_AMERICA"
12519	//   "SOUTH_AMERICA"
12520	Continent string `json:"continent,omitempty"`
12521
12522	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
12523	// format.
12524	CreationTimestamp string `json:"creationTimestamp,omitempty"`
12525
12526	// Description: [Output Only] An optional description of the resource.
12527	Description string `json:"description,omitempty"`
12528
12529	// FacilityProvider: [Output Only] The name of the provider for this
12530	// facility (e.g., EQUINIX).
12531	FacilityProvider string `json:"facilityProvider,omitempty"`
12532
12533	// FacilityProviderFacilityId: [Output Only] A provider-assigned
12534	// Identifier for this facility (e.g., Ashburn-DC1).
12535	FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"`
12536
12537	// Id: [Output Only] The unique identifier for the resource. This
12538	// identifier is defined by the server.
12539	Id uint64 `json:"id,omitempty,string"`
12540
12541	// Kind: [Output Only] Type of the resource. Always
12542	// compute#interconnectLocation for interconnect locations.
12543	Kind string `json:"kind,omitempty"`
12544
12545	// Name: [Output Only] Name of the resource.
12546	Name string `json:"name,omitempty"`
12547
12548	// PeeringdbFacilityId: [Output Only] The peeringdb identifier for this
12549	// facility (corresponding with a netfac type in peeringdb).
12550	PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"`
12551
12552	// RegionInfos: [Output Only] A list of InterconnectLocation.RegionInfo
12553	// objects, that describe parameters pertaining to the relation between
12554	// this InterconnectLocation and various Google Cloud regions.
12555	RegionInfos []*InterconnectLocationRegionInfo `json:"regionInfos,omitempty"`
12556
12557	// SelfLink: [Output Only] Server-defined URL for the resource.
12558	SelfLink string `json:"selfLink,omitempty"`
12559
12560	// ServerResponse contains the HTTP response code and headers from the
12561	// server.
12562	googleapi.ServerResponse `json:"-"`
12563
12564	// ForceSendFields is a list of field names (e.g. "Address") to
12565	// unconditionally include in API requests. By default, fields with
12566	// empty values are omitted from API requests. However, any non-pointer,
12567	// non-interface field appearing in ForceSendFields will be sent to the
12568	// server regardless of whether the field is empty or not. This may be
12569	// used to include empty fields in Patch requests.
12570	ForceSendFields []string `json:"-"`
12571
12572	// NullFields is a list of field names (e.g. "Address") to include in
12573	// API requests with the JSON null value. By default, fields with empty
12574	// values are omitted from API requests. However, any field with an
12575	// empty value appearing in NullFields will be sent to the server as
12576	// null. It is an error if a field in this list has a non-empty value.
12577	// This may be used to include null fields in Patch requests.
12578	NullFields []string `json:"-"`
12579}
12580
12581func (s *InterconnectLocation) MarshalJSON() ([]byte, error) {
12582	type NoMethod InterconnectLocation
12583	raw := NoMethod(*s)
12584	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12585}
12586
12587// InterconnectLocationList: Response to the list request, and contains
12588// a list of interconnect locations.
12589type InterconnectLocationList struct {
12590	// Id: [Output Only] Unique identifier for the resource; defined by the
12591	// server.
12592	Id string `json:"id,omitempty"`
12593
12594	// Items: A list of InterconnectLocation resources.
12595	Items []*InterconnectLocation `json:"items,omitempty"`
12596
12597	// Kind: [Output Only] Type of resource. Always
12598	// compute#interconnectLocationList for lists of interconnect locations.
12599	Kind string `json:"kind,omitempty"`
12600
12601	// NextPageToken: [Output Only] This token allows you to get the next
12602	// page of results for list requests. If the number of results is larger
12603	// than maxResults, use the nextPageToken as a value for the query
12604	// parameter pageToken in the next list request. Subsequent list
12605	// requests will have their own nextPageToken to continue paging through
12606	// the results.
12607	NextPageToken string `json:"nextPageToken,omitempty"`
12608
12609	// SelfLink: [Output Only] Server-defined URL for this resource.
12610	SelfLink string `json:"selfLink,omitempty"`
12611
12612	// Warning: [Output Only] Informational warning message.
12613	Warning *InterconnectLocationListWarning `json:"warning,omitempty"`
12614
12615	// ServerResponse contains the HTTP response code and headers from the
12616	// server.
12617	googleapi.ServerResponse `json:"-"`
12618
12619	// ForceSendFields is a list of field names (e.g. "Id") to
12620	// unconditionally include in API requests. By default, fields with
12621	// empty values are omitted from API requests. However, any non-pointer,
12622	// non-interface field appearing in ForceSendFields will be sent to the
12623	// server regardless of whether the field is empty or not. This may be
12624	// used to include empty fields in Patch requests.
12625	ForceSendFields []string `json:"-"`
12626
12627	// NullFields is a list of field names (e.g. "Id") to include in API
12628	// requests with the JSON null value. By default, fields with empty
12629	// values are omitted from API requests. However, any field with an
12630	// empty value appearing in NullFields will be sent to the server as
12631	// null. It is an error if a field in this list has a non-empty value.
12632	// This may be used to include null fields in Patch requests.
12633	NullFields []string `json:"-"`
12634}
12635
12636func (s *InterconnectLocationList) MarshalJSON() ([]byte, error) {
12637	type NoMethod InterconnectLocationList
12638	raw := NoMethod(*s)
12639	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12640}
12641
12642// InterconnectLocationListWarning: [Output Only] Informational warning
12643// message.
12644type InterconnectLocationListWarning struct {
12645	// Code: [Output Only] A warning code, if applicable. For example,
12646	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12647	// the response.
12648	//
12649	// Possible values:
12650	//   "CLEANUP_FAILED"
12651	//   "DEPRECATED_RESOURCE_USED"
12652	//   "DEPRECATED_TYPE_USED"
12653	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12654	//   "EXPERIMENTAL_TYPE_USED"
12655	//   "EXTERNAL_API_WARNING"
12656	//   "FIELD_VALUE_OVERRIDEN"
12657	//   "INJECTED_KERNELS_DEPRECATED"
12658	//   "MISSING_TYPE_DEPENDENCY"
12659	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12660	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12661	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12662	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12663	//   "NEXT_HOP_NOT_RUNNING"
12664	//   "NOT_CRITICAL_ERROR"
12665	//   "NO_RESULTS_ON_PAGE"
12666	//   "REQUIRED_TOS_AGREEMENT"
12667	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12668	//   "RESOURCE_NOT_DELETED"
12669	//   "SCHEMA_VALIDATION_IGNORED"
12670	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12671	//   "UNDECLARED_PROPERTIES"
12672	//   "UNREACHABLE"
12673	Code string `json:"code,omitempty"`
12674
12675	// Data: [Output Only] Metadata about this warning in key: value format.
12676	// For example:
12677	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12678	Data []*InterconnectLocationListWarningData `json:"data,omitempty"`
12679
12680	// Message: [Output Only] A human-readable description of the warning
12681	// code.
12682	Message string `json:"message,omitempty"`
12683
12684	// ForceSendFields is a list of field names (e.g. "Code") to
12685	// unconditionally include in API requests. By default, fields with
12686	// empty values are omitted from API requests. However, any non-pointer,
12687	// non-interface field appearing in ForceSendFields will be sent to the
12688	// server regardless of whether the field is empty or not. This may be
12689	// used to include empty fields in Patch requests.
12690	ForceSendFields []string `json:"-"`
12691
12692	// NullFields is a list of field names (e.g. "Code") to include in API
12693	// requests with the JSON null value. By default, fields with empty
12694	// values are omitted from API requests. However, any field with an
12695	// empty value appearing in NullFields will be sent to the server as
12696	// null. It is an error if a field in this list has a non-empty value.
12697	// This may be used to include null fields in Patch requests.
12698	NullFields []string `json:"-"`
12699}
12700
12701func (s *InterconnectLocationListWarning) MarshalJSON() ([]byte, error) {
12702	type NoMethod InterconnectLocationListWarning
12703	raw := NoMethod(*s)
12704	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12705}
12706
12707type InterconnectLocationListWarningData struct {
12708	// Key: [Output Only] A key that provides more detail on the warning
12709	// being returned. For example, for warnings where there are no results
12710	// in a list request for a particular zone, this key might be scope and
12711	// the key value might be the zone name. Other examples might be a key
12712	// indicating a deprecated resource and a suggested replacement, or a
12713	// warning about invalid network settings (for example, if an instance
12714	// attempts to perform IP forwarding but is not enabled for IP
12715	// forwarding).
12716	Key string `json:"key,omitempty"`
12717
12718	// Value: [Output Only] A warning data value corresponding to the key.
12719	Value string `json:"value,omitempty"`
12720
12721	// ForceSendFields is a list of field names (e.g. "Key") to
12722	// unconditionally include in API requests. By default, fields with
12723	// empty values are omitted from API requests. However, any non-pointer,
12724	// non-interface field appearing in ForceSendFields will be sent to the
12725	// server regardless of whether the field is empty or not. This may be
12726	// used to include empty fields in Patch requests.
12727	ForceSendFields []string `json:"-"`
12728
12729	// NullFields is a list of field names (e.g. "Key") to include in API
12730	// requests with the JSON null value. By default, fields with empty
12731	// values are omitted from API requests. However, any field with an
12732	// empty value appearing in NullFields will be sent to the server as
12733	// null. It is an error if a field in this list has a non-empty value.
12734	// This may be used to include null fields in Patch requests.
12735	NullFields []string `json:"-"`
12736}
12737
12738func (s *InterconnectLocationListWarningData) MarshalJSON() ([]byte, error) {
12739	type NoMethod InterconnectLocationListWarningData
12740	raw := NoMethod(*s)
12741	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12742}
12743
12744// InterconnectLocationRegionInfo: Information about any potential
12745// InterconnectAttachments between an Interconnect at a specific
12746// InterconnectLocation, and a specific Cloud Region.
12747type InterconnectLocationRegionInfo struct {
12748	// ExpectedRttMs: Expected round-trip time in milliseconds, from this
12749	// InterconnectLocation to a VM in this region.
12750	ExpectedRttMs int64 `json:"expectedRttMs,omitempty,string"`
12751
12752	// LocationPresence: Identifies the network presence of this location.
12753	//
12754	// Possible values:
12755	//   "GLOBAL"
12756	//   "LOCAL_REGION"
12757	//   "LP_GLOBAL"
12758	//   "LP_LOCAL_REGION"
12759	LocationPresence string `json:"locationPresence,omitempty"`
12760
12761	// Region: URL for the region of this location.
12762	Region string `json:"region,omitempty"`
12763
12764	// ForceSendFields is a list of field names (e.g. "ExpectedRttMs") to
12765	// unconditionally include in API requests. By default, fields with
12766	// empty values are omitted from API requests. However, any non-pointer,
12767	// non-interface field appearing in ForceSendFields will be sent to the
12768	// server regardless of whether the field is empty or not. This may be
12769	// used to include empty fields in Patch requests.
12770	ForceSendFields []string `json:"-"`
12771
12772	// NullFields is a list of field names (e.g. "ExpectedRttMs") to include
12773	// in API requests with the JSON null value. By default, fields with
12774	// empty values are omitted from API requests. However, any field with
12775	// an empty value appearing in NullFields will be sent to the server as
12776	// null. It is an error if a field in this list has a non-empty value.
12777	// This may be used to include null fields in Patch requests.
12778	NullFields []string `json:"-"`
12779}
12780
12781func (s *InterconnectLocationRegionInfo) MarshalJSON() ([]byte, error) {
12782	type NoMethod InterconnectLocationRegionInfo
12783	raw := NoMethod(*s)
12784	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12785}
12786
12787// InterconnectOutageNotification: Description of a planned outage on
12788// this Interconnect. Next id: 9
12789type InterconnectOutageNotification struct {
12790	// AffectedCircuits: If issue_type is IT_PARTIAL_OUTAGE, a list of the
12791	// Google-side circuit IDs that will be affected.
12792	AffectedCircuits []string `json:"affectedCircuits,omitempty"`
12793
12794	// Description: A description about the purpose of the outage.
12795	Description string `json:"description,omitempty"`
12796
12797	// EndTime: Scheduled end time for the outage (milliseconds since Unix
12798	// epoch).
12799	EndTime int64 `json:"endTime,omitempty,string"`
12800
12801	// IssueType: Form this outage is expected to take. Note that the "IT_"
12802	// versions of this enum have been deprecated in favor of the unprefixed
12803	// values.
12804	//
12805	// Possible values:
12806	//   "IT_OUTAGE"
12807	//   "IT_PARTIAL_OUTAGE"
12808	//   "OUTAGE"
12809	//   "PARTIAL_OUTAGE"
12810	IssueType string `json:"issueType,omitempty"`
12811
12812	// Name: Unique identifier for this outage notification.
12813	Name string `json:"name,omitempty"`
12814
12815	// Source: The party that generated this notification. Note that
12816	// "NSRC_GOOGLE" has been deprecated in favor of "GOOGLE"
12817	//
12818	// Possible values:
12819	//   "GOOGLE"
12820	//   "NSRC_GOOGLE"
12821	Source string `json:"source,omitempty"`
12822
12823	// StartTime: Scheduled start time for the outage (milliseconds since
12824	// Unix epoch).
12825	StartTime int64 `json:"startTime,omitempty,string"`
12826
12827	// State: State of this notification. Note that the "NS_" versions of
12828	// this enum have been deprecated in favor of the unprefixed values.
12829	//
12830	// Possible values:
12831	//   "ACTIVE"
12832	//   "CANCELLED"
12833	//   "NS_ACTIVE"
12834	//   "NS_CANCELED"
12835	State string `json:"state,omitempty"`
12836
12837	// ForceSendFields is a list of field names (e.g. "AffectedCircuits") to
12838	// unconditionally include in API requests. By default, fields with
12839	// empty values are omitted from API requests. However, any non-pointer,
12840	// non-interface field appearing in ForceSendFields will be sent to the
12841	// server regardless of whether the field is empty or not. This may be
12842	// used to include empty fields in Patch requests.
12843	ForceSendFields []string `json:"-"`
12844
12845	// NullFields is a list of field names (e.g. "AffectedCircuits") to
12846	// include in API requests with the JSON null value. By default, fields
12847	// with empty values are omitted from API requests. However, any field
12848	// with an empty value appearing in NullFields will be sent to the
12849	// server as null. It is an error if a field in this list has a
12850	// non-empty value. This may be used to include null fields in Patch
12851	// requests.
12852	NullFields []string `json:"-"`
12853}
12854
12855func (s *InterconnectOutageNotification) MarshalJSON() ([]byte, error) {
12856	type NoMethod InterconnectOutageNotification
12857	raw := NoMethod(*s)
12858	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12859}
12860
12861// License: A license resource.
12862type License struct {
12863	// ChargesUseFee: [Output Only] Deprecated. This field no longer
12864	// reflects whether a license charges a usage fee.
12865	ChargesUseFee bool `json:"chargesUseFee,omitempty"`
12866
12867	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
12868	// format.
12869	CreationTimestamp string `json:"creationTimestamp,omitempty"`
12870
12871	// Description: An optional textual description of the resource;
12872	// provided by the client when the resource is created.
12873	Description string `json:"description,omitempty"`
12874
12875	// Id: [Output Only] The unique identifier for the resource. This
12876	// identifier is defined by the server.
12877	Id uint64 `json:"id,omitempty,string"`
12878
12879	// Kind: [Output Only] Type of resource. Always compute#license for
12880	// licenses.
12881	Kind string `json:"kind,omitempty"`
12882
12883	// LicenseCode: [Output Only] The unique code used to attach this
12884	// license to images, snapshots, and disks.
12885	LicenseCode uint64 `json:"licenseCode,omitempty,string"`
12886
12887	// Name: [Output Only] Name of the resource. The name is 1-63 characters
12888	// long and complies with RFC1035.
12889	Name string `json:"name,omitempty"`
12890
12891	ResourceRequirements *LicenseResourceRequirements `json:"resourceRequirements,omitempty"`
12892
12893	// SelfLink: [Output Only] Server-defined URL for the resource.
12894	SelfLink string `json:"selfLink,omitempty"`
12895
12896	// Transferable: If false, licenses will not be copied from the source
12897	// resource when creating an image from a disk, disk from snapshot, or
12898	// snapshot from disk.
12899	Transferable bool `json:"transferable,omitempty"`
12900
12901	// ServerResponse contains the HTTP response code and headers from the
12902	// server.
12903	googleapi.ServerResponse `json:"-"`
12904
12905	// ForceSendFields is a list of field names (e.g. "ChargesUseFee") to
12906	// unconditionally include in API requests. By default, fields with
12907	// empty values are omitted from API requests. However, any non-pointer,
12908	// non-interface field appearing in ForceSendFields will be sent to the
12909	// server regardless of whether the field is empty or not. This may be
12910	// used to include empty fields in Patch requests.
12911	ForceSendFields []string `json:"-"`
12912
12913	// NullFields is a list of field names (e.g. "ChargesUseFee") to include
12914	// in API requests with the JSON null value. By default, fields with
12915	// empty values are omitted from API requests. However, any field with
12916	// an empty value appearing in NullFields will be sent to the server as
12917	// null. It is an error if a field in this list has a non-empty value.
12918	// This may be used to include null fields in Patch requests.
12919	NullFields []string `json:"-"`
12920}
12921
12922func (s *License) MarshalJSON() ([]byte, error) {
12923	type NoMethod License
12924	raw := NoMethod(*s)
12925	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12926}
12927
12928type LicenseCode struct {
12929	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
12930	// format.
12931	CreationTimestamp string `json:"creationTimestamp,omitempty"`
12932
12933	// Description: [Output Only] Description of this License Code.
12934	Description string `json:"description,omitempty"`
12935
12936	// Id: [Output Only] The unique identifier for the resource. This
12937	// identifier is defined by the server.
12938	Id uint64 `json:"id,omitempty,string"`
12939
12940	// Kind: [Output Only] Type of resource. Always compute#licenseCode for
12941	// licenses.
12942	Kind string `json:"kind,omitempty"`
12943
12944	// LicenseAlias: [Output Only] URL and description aliases of Licenses
12945	// with the same License Code.
12946	LicenseAlias []*LicenseCodeLicenseAlias `json:"licenseAlias,omitempty"`
12947
12948	// Name: [Output Only] Name of the resource. The name is 1-20 characters
12949	// long and must be a valid 64 bit integer.
12950	Name string `json:"name,omitempty"`
12951
12952	// SelfLink: [Output Only] Server-defined URL for the resource.
12953	SelfLink string `json:"selfLink,omitempty"`
12954
12955	// State: [Output Only] Current state of this License Code.
12956	//
12957	// Possible values:
12958	//   "DISABLED"
12959	//   "ENABLED"
12960	//   "RESTRICTED"
12961	//   "STATE_UNSPECIFIED"
12962	//   "TERMINATED"
12963	State string `json:"state,omitempty"`
12964
12965	// Transferable: [Output Only] If true, the license will remain attached
12966	// when creating images or snapshots from disks. Otherwise, the license
12967	// is not transferred.
12968	Transferable bool `json:"transferable,omitempty"`
12969
12970	// ServerResponse contains the HTTP response code and headers from the
12971	// server.
12972	googleapi.ServerResponse `json:"-"`
12973
12974	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
12975	// to unconditionally include in API requests. By default, fields with
12976	// empty values are omitted from API requests. However, any non-pointer,
12977	// non-interface field appearing in ForceSendFields will be sent to the
12978	// server regardless of whether the field is empty or not. This may be
12979	// used to include empty fields in Patch requests.
12980	ForceSendFields []string `json:"-"`
12981
12982	// NullFields is a list of field names (e.g. "CreationTimestamp") to
12983	// include in API requests with the JSON null value. By default, fields
12984	// with empty values are omitted from API requests. However, any field
12985	// with an empty value appearing in NullFields will be sent to the
12986	// server as null. It is an error if a field in this list has a
12987	// non-empty value. This may be used to include null fields in Patch
12988	// requests.
12989	NullFields []string `json:"-"`
12990}
12991
12992func (s *LicenseCode) MarshalJSON() ([]byte, error) {
12993	type NoMethod LicenseCode
12994	raw := NoMethod(*s)
12995	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12996}
12997
12998type LicenseCodeLicenseAlias struct {
12999	// Description: [Output Only] Description of this License Code.
13000	Description string `json:"description,omitempty"`
13001
13002	// SelfLink: [Output Only] URL of license corresponding to this License
13003	// Code.
13004	SelfLink string `json:"selfLink,omitempty"`
13005
13006	// ForceSendFields is a list of field names (e.g. "Description") to
13007	// unconditionally include in API requests. By default, fields with
13008	// empty values are omitted from API requests. However, any non-pointer,
13009	// non-interface field appearing in ForceSendFields will be sent to the
13010	// server regardless of whether the field is empty or not. This may be
13011	// used to include empty fields in Patch requests.
13012	ForceSendFields []string `json:"-"`
13013
13014	// NullFields is a list of field names (e.g. "Description") to include
13015	// in API requests with the JSON null value. By default, fields with
13016	// empty values are omitted from API requests. However, any field with
13017	// an empty value appearing in NullFields will be sent to the server as
13018	// null. It is an error if a field in this list has a non-empty value.
13019	// This may be used to include null fields in Patch requests.
13020	NullFields []string `json:"-"`
13021}
13022
13023func (s *LicenseCodeLicenseAlias) MarshalJSON() ([]byte, error) {
13024	type NoMethod LicenseCodeLicenseAlias
13025	raw := NoMethod(*s)
13026	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13027}
13028
13029type LicenseResourceRequirements struct {
13030	// MinGuestCpuCount: Minimum number of guest cpus required to use the
13031	// Instance. Enforced at Instance creation and Instance start.
13032	MinGuestCpuCount int64 `json:"minGuestCpuCount,omitempty"`
13033
13034	// MinMemoryMb: Minimum memory required to use the Instance. Enforced at
13035	// Instance creation and Instance start.
13036	MinMemoryMb int64 `json:"minMemoryMb,omitempty"`
13037
13038	// ForceSendFields is a list of field names (e.g. "MinGuestCpuCount") to
13039	// unconditionally include in API requests. By default, fields with
13040	// empty values are omitted from API requests. However, any non-pointer,
13041	// non-interface field appearing in ForceSendFields will be sent to the
13042	// server regardless of whether the field is empty or not. This may be
13043	// used to include empty fields in Patch requests.
13044	ForceSendFields []string `json:"-"`
13045
13046	// NullFields is a list of field names (e.g. "MinGuestCpuCount") to
13047	// include in API requests with the JSON null value. By default, fields
13048	// with empty values are omitted from API requests. However, any field
13049	// with an empty value appearing in NullFields will be sent to the
13050	// server as null. It is an error if a field in this list has a
13051	// non-empty value. This may be used to include null fields in Patch
13052	// requests.
13053	NullFields []string `json:"-"`
13054}
13055
13056func (s *LicenseResourceRequirements) MarshalJSON() ([]byte, error) {
13057	type NoMethod LicenseResourceRequirements
13058	raw := NoMethod(*s)
13059	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13060}
13061
13062type LicensesListResponse struct {
13063	// Id: [Output Only] Unique identifier for the resource; defined by the
13064	// server.
13065	Id string `json:"id,omitempty"`
13066
13067	// Items: A list of License resources.
13068	Items []*License `json:"items,omitempty"`
13069
13070	// NextPageToken: [Output Only] This token allows you to get the next
13071	// page of results for list requests. If the number of results is larger
13072	// than maxResults, use the nextPageToken as a value for the query
13073	// parameter pageToken in the next list request. Subsequent list
13074	// requests will have their own nextPageToken to continue paging through
13075	// the results.
13076	NextPageToken string `json:"nextPageToken,omitempty"`
13077
13078	// SelfLink: [Output Only] Server-defined URL for this resource.
13079	SelfLink string `json:"selfLink,omitempty"`
13080
13081	// Warning: [Output Only] Informational warning message.
13082	Warning *LicensesListResponseWarning `json:"warning,omitempty"`
13083
13084	// ServerResponse contains the HTTP response code and headers from the
13085	// server.
13086	googleapi.ServerResponse `json:"-"`
13087
13088	// ForceSendFields is a list of field names (e.g. "Id") to
13089	// unconditionally include in API requests. By default, fields with
13090	// empty values are omitted from API requests. However, any non-pointer,
13091	// non-interface field appearing in ForceSendFields will be sent to the
13092	// server regardless of whether the field is empty or not. This may be
13093	// used to include empty fields in Patch requests.
13094	ForceSendFields []string `json:"-"`
13095
13096	// NullFields is a list of field names (e.g. "Id") to include in API
13097	// requests with the JSON null value. By default, fields with empty
13098	// values are omitted from API requests. However, any field with an
13099	// empty value appearing in NullFields will be sent to the server as
13100	// null. It is an error if a field in this list has a non-empty value.
13101	// This may be used to include null fields in Patch requests.
13102	NullFields []string `json:"-"`
13103}
13104
13105func (s *LicensesListResponse) MarshalJSON() ([]byte, error) {
13106	type NoMethod LicensesListResponse
13107	raw := NoMethod(*s)
13108	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13109}
13110
13111// LicensesListResponseWarning: [Output Only] Informational warning
13112// message.
13113type LicensesListResponseWarning struct {
13114	// Code: [Output Only] A warning code, if applicable. For example,
13115	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13116	// the response.
13117	//
13118	// Possible values:
13119	//   "CLEANUP_FAILED"
13120	//   "DEPRECATED_RESOURCE_USED"
13121	//   "DEPRECATED_TYPE_USED"
13122	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13123	//   "EXPERIMENTAL_TYPE_USED"
13124	//   "EXTERNAL_API_WARNING"
13125	//   "FIELD_VALUE_OVERRIDEN"
13126	//   "INJECTED_KERNELS_DEPRECATED"
13127	//   "MISSING_TYPE_DEPENDENCY"
13128	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13129	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13130	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13131	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13132	//   "NEXT_HOP_NOT_RUNNING"
13133	//   "NOT_CRITICAL_ERROR"
13134	//   "NO_RESULTS_ON_PAGE"
13135	//   "REQUIRED_TOS_AGREEMENT"
13136	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13137	//   "RESOURCE_NOT_DELETED"
13138	//   "SCHEMA_VALIDATION_IGNORED"
13139	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13140	//   "UNDECLARED_PROPERTIES"
13141	//   "UNREACHABLE"
13142	Code string `json:"code,omitempty"`
13143
13144	// Data: [Output Only] Metadata about this warning in key: value format.
13145	// For example:
13146	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13147	Data []*LicensesListResponseWarningData `json:"data,omitempty"`
13148
13149	// Message: [Output Only] A human-readable description of the warning
13150	// code.
13151	Message string `json:"message,omitempty"`
13152
13153	// ForceSendFields is a list of field names (e.g. "Code") to
13154	// unconditionally include in API requests. By default, fields with
13155	// empty values are omitted from API requests. However, any non-pointer,
13156	// non-interface field appearing in ForceSendFields will be sent to the
13157	// server regardless of whether the field is empty or not. This may be
13158	// used to include empty fields in Patch requests.
13159	ForceSendFields []string `json:"-"`
13160
13161	// NullFields is a list of field names (e.g. "Code") to include in API
13162	// requests with the JSON null value. By default, fields with empty
13163	// values are omitted from API requests. However, any field with an
13164	// empty value appearing in NullFields will be sent to the server as
13165	// null. It is an error if a field in this list has a non-empty value.
13166	// This may be used to include null fields in Patch requests.
13167	NullFields []string `json:"-"`
13168}
13169
13170func (s *LicensesListResponseWarning) MarshalJSON() ([]byte, error) {
13171	type NoMethod LicensesListResponseWarning
13172	raw := NoMethod(*s)
13173	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13174}
13175
13176type LicensesListResponseWarningData struct {
13177	// Key: [Output Only] A key that provides more detail on the warning
13178	// being returned. For example, for warnings where there are no results
13179	// in a list request for a particular zone, this key might be scope and
13180	// the key value might be the zone name. Other examples might be a key
13181	// indicating a deprecated resource and a suggested replacement, or a
13182	// warning about invalid network settings (for example, if an instance
13183	// attempts to perform IP forwarding but is not enabled for IP
13184	// forwarding).
13185	Key string `json:"key,omitempty"`
13186
13187	// Value: [Output Only] A warning data value corresponding to the key.
13188	Value string `json:"value,omitempty"`
13189
13190	// ForceSendFields is a list of field names (e.g. "Key") to
13191	// unconditionally include in API requests. By default, fields with
13192	// empty values are omitted from API requests. However, any non-pointer,
13193	// non-interface field appearing in ForceSendFields will be sent to the
13194	// server regardless of whether the field is empty or not. This may be
13195	// used to include empty fields in Patch requests.
13196	ForceSendFields []string `json:"-"`
13197
13198	// NullFields is a list of field names (e.g. "Key") to include in API
13199	// requests with the JSON null value. By default, fields with empty
13200	// values are omitted from API requests. However, any field with an
13201	// empty value appearing in NullFields will be sent to the server as
13202	// null. It is an error if a field in this list has a non-empty value.
13203	// This may be used to include null fields in Patch requests.
13204	NullFields []string `json:"-"`
13205}
13206
13207func (s *LicensesListResponseWarningData) MarshalJSON() ([]byte, error) {
13208	type NoMethod LicensesListResponseWarningData
13209	raw := NoMethod(*s)
13210	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13211}
13212
13213// MachineType: A Machine Type resource. (== resource_for
13214// v1.machineTypes ==) (== resource_for beta.machineTypes ==)
13215type MachineType struct {
13216	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
13217	// format.
13218	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13219
13220	// Deprecated: [Output Only] The deprecation status associated with this
13221	// machine type.
13222	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
13223
13224	// Description: [Output Only] An optional textual description of the
13225	// resource.
13226	Description string `json:"description,omitempty"`
13227
13228	// GuestCpus: [Output Only] The number of virtual CPUs that are
13229	// available to the instance.
13230	GuestCpus int64 `json:"guestCpus,omitempty"`
13231
13232	// Id: [Output Only] The unique identifier for the resource. This
13233	// identifier is defined by the server.
13234	Id uint64 `json:"id,omitempty,string"`
13235
13236	// ImageSpaceGb: [Deprecated] This property is deprecated and will never
13237	// be populated with any relevant values.
13238	ImageSpaceGb int64 `json:"imageSpaceGb,omitempty"`
13239
13240	// IsSharedCpu: [Output Only] Whether this machine type has a shared
13241	// CPU. See Shared-core machine types for more information.
13242	IsSharedCpu bool `json:"isSharedCpu,omitempty"`
13243
13244	// Kind: [Output Only] The type of the resource. Always
13245	// compute#machineType for machine types.
13246	Kind string `json:"kind,omitempty"`
13247
13248	// MaximumPersistentDisks: [Output Only] Maximum persistent disks
13249	// allowed.
13250	MaximumPersistentDisks int64 `json:"maximumPersistentDisks,omitempty"`
13251
13252	// MaximumPersistentDisksSizeGb: [Output Only] Maximum total persistent
13253	// disks size (GB) allowed.
13254	MaximumPersistentDisksSizeGb int64 `json:"maximumPersistentDisksSizeGb,omitempty,string"`
13255
13256	// MemoryMb: [Output Only] The amount of physical memory available to
13257	// the instance, defined in MB.
13258	MemoryMb int64 `json:"memoryMb,omitempty"`
13259
13260	// Name: [Output Only] Name of the resource.
13261	Name string `json:"name,omitempty"`
13262
13263	// ScratchDisks: [Output Only] A list of extended scratch disks assigned
13264	// to the instance.
13265	ScratchDisks []*MachineTypeScratchDisks `json:"scratchDisks,omitempty"`
13266
13267	// SelfLink: [Output Only] Server-defined URL for the resource.
13268	SelfLink string `json:"selfLink,omitempty"`
13269
13270	// Zone: [Output Only] The name of the zone where the machine type
13271	// resides, such as us-central1-a.
13272	Zone string `json:"zone,omitempty"`
13273
13274	// ServerResponse contains the HTTP response code and headers from the
13275	// server.
13276	googleapi.ServerResponse `json:"-"`
13277
13278	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
13279	// to unconditionally include in API requests. By default, fields with
13280	// empty values are omitted from API requests. However, any non-pointer,
13281	// non-interface field appearing in ForceSendFields will be sent to the
13282	// server regardless of whether the field is empty or not. This may be
13283	// used to include empty fields in Patch requests.
13284	ForceSendFields []string `json:"-"`
13285
13286	// NullFields is a list of field names (e.g. "CreationTimestamp") to
13287	// include in API requests with the JSON null value. By default, fields
13288	// with empty values are omitted from API requests. However, any field
13289	// with an empty value appearing in NullFields will be sent to the
13290	// server as null. It is an error if a field in this list has a
13291	// non-empty value. This may be used to include null fields in Patch
13292	// requests.
13293	NullFields []string `json:"-"`
13294}
13295
13296func (s *MachineType) MarshalJSON() ([]byte, error) {
13297	type NoMethod MachineType
13298	raw := NoMethod(*s)
13299	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13300}
13301
13302type MachineTypeScratchDisks struct {
13303	// DiskGb: Size of the scratch disk, defined in GB.
13304	DiskGb int64 `json:"diskGb,omitempty"`
13305
13306	// ForceSendFields is a list of field names (e.g. "DiskGb") to
13307	// unconditionally include in API requests. By default, fields with
13308	// empty values are omitted from API requests. However, any non-pointer,
13309	// non-interface field appearing in ForceSendFields will be sent to the
13310	// server regardless of whether the field is empty or not. This may be
13311	// used to include empty fields in Patch requests.
13312	ForceSendFields []string `json:"-"`
13313
13314	// NullFields is a list of field names (e.g. "DiskGb") to include in API
13315	// requests with the JSON null value. By default, fields with empty
13316	// values are omitted from API requests. However, any field with an
13317	// empty value appearing in NullFields will be sent to the server as
13318	// null. It is an error if a field in this list has a non-empty value.
13319	// This may be used to include null fields in Patch requests.
13320	NullFields []string `json:"-"`
13321}
13322
13323func (s *MachineTypeScratchDisks) MarshalJSON() ([]byte, error) {
13324	type NoMethod MachineTypeScratchDisks
13325	raw := NoMethod(*s)
13326	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13327}
13328
13329type MachineTypeAggregatedList struct {
13330	// Id: [Output Only] Unique identifier for the resource; defined by the
13331	// server.
13332	Id string `json:"id,omitempty"`
13333
13334	// Items: A list of MachineTypesScopedList resources.
13335	Items map[string]MachineTypesScopedList `json:"items,omitempty"`
13336
13337	// Kind: [Output Only] Type of resource. Always
13338	// compute#machineTypeAggregatedList for aggregated lists of machine
13339	// types.
13340	Kind string `json:"kind,omitempty"`
13341
13342	// NextPageToken: [Output Only] This token allows you to get the next
13343	// page of results for list requests. If the number of results is larger
13344	// than maxResults, use the nextPageToken as a value for the query
13345	// parameter pageToken in the next list request. Subsequent list
13346	// requests will have their own nextPageToken to continue paging through
13347	// the results.
13348	NextPageToken string `json:"nextPageToken,omitempty"`
13349
13350	// SelfLink: [Output Only] Server-defined URL for this resource.
13351	SelfLink string `json:"selfLink,omitempty"`
13352
13353	// Warning: [Output Only] Informational warning message.
13354	Warning *MachineTypeAggregatedListWarning `json:"warning,omitempty"`
13355
13356	// ServerResponse contains the HTTP response code and headers from the
13357	// server.
13358	googleapi.ServerResponse `json:"-"`
13359
13360	// ForceSendFields is a list of field names (e.g. "Id") to
13361	// unconditionally include in API requests. By default, fields with
13362	// empty values are omitted from API requests. However, any non-pointer,
13363	// non-interface field appearing in ForceSendFields will be sent to the
13364	// server regardless of whether the field is empty or not. This may be
13365	// used to include empty fields in Patch requests.
13366	ForceSendFields []string `json:"-"`
13367
13368	// NullFields is a list of field names (e.g. "Id") to include in API
13369	// requests with the JSON null value. By default, fields with empty
13370	// values are omitted from API requests. However, any field with an
13371	// empty value appearing in NullFields will be sent to the server as
13372	// null. It is an error if a field in this list has a non-empty value.
13373	// This may be used to include null fields in Patch requests.
13374	NullFields []string `json:"-"`
13375}
13376
13377func (s *MachineTypeAggregatedList) MarshalJSON() ([]byte, error) {
13378	type NoMethod MachineTypeAggregatedList
13379	raw := NoMethod(*s)
13380	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13381}
13382
13383// MachineTypeAggregatedListWarning: [Output Only] Informational warning
13384// message.
13385type MachineTypeAggregatedListWarning struct {
13386	// Code: [Output Only] A warning code, if applicable. For example,
13387	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13388	// the response.
13389	//
13390	// Possible values:
13391	//   "CLEANUP_FAILED"
13392	//   "DEPRECATED_RESOURCE_USED"
13393	//   "DEPRECATED_TYPE_USED"
13394	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13395	//   "EXPERIMENTAL_TYPE_USED"
13396	//   "EXTERNAL_API_WARNING"
13397	//   "FIELD_VALUE_OVERRIDEN"
13398	//   "INJECTED_KERNELS_DEPRECATED"
13399	//   "MISSING_TYPE_DEPENDENCY"
13400	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13401	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13402	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13403	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13404	//   "NEXT_HOP_NOT_RUNNING"
13405	//   "NOT_CRITICAL_ERROR"
13406	//   "NO_RESULTS_ON_PAGE"
13407	//   "REQUIRED_TOS_AGREEMENT"
13408	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13409	//   "RESOURCE_NOT_DELETED"
13410	//   "SCHEMA_VALIDATION_IGNORED"
13411	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13412	//   "UNDECLARED_PROPERTIES"
13413	//   "UNREACHABLE"
13414	Code string `json:"code,omitempty"`
13415
13416	// Data: [Output Only] Metadata about this warning in key: value format.
13417	// For example:
13418	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13419	Data []*MachineTypeAggregatedListWarningData `json:"data,omitempty"`
13420
13421	// Message: [Output Only] A human-readable description of the warning
13422	// code.
13423	Message string `json:"message,omitempty"`
13424
13425	// ForceSendFields is a list of field names (e.g. "Code") to
13426	// unconditionally include in API requests. By default, fields with
13427	// empty values are omitted from API requests. However, any non-pointer,
13428	// non-interface field appearing in ForceSendFields will be sent to the
13429	// server regardless of whether the field is empty or not. This may be
13430	// used to include empty fields in Patch requests.
13431	ForceSendFields []string `json:"-"`
13432
13433	// NullFields is a list of field names (e.g. "Code") to include in API
13434	// requests with the JSON null value. By default, fields with empty
13435	// values are omitted from API requests. However, any field with an
13436	// empty value appearing in NullFields will be sent to the server as
13437	// null. It is an error if a field in this list has a non-empty value.
13438	// This may be used to include null fields in Patch requests.
13439	NullFields []string `json:"-"`
13440}
13441
13442func (s *MachineTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
13443	type NoMethod MachineTypeAggregatedListWarning
13444	raw := NoMethod(*s)
13445	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13446}
13447
13448type MachineTypeAggregatedListWarningData struct {
13449	// Key: [Output Only] A key that provides more detail on the warning
13450	// being returned. For example, for warnings where there are no results
13451	// in a list request for a particular zone, this key might be scope and
13452	// the key value might be the zone name. Other examples might be a key
13453	// indicating a deprecated resource and a suggested replacement, or a
13454	// warning about invalid network settings (for example, if an instance
13455	// attempts to perform IP forwarding but is not enabled for IP
13456	// forwarding).
13457	Key string `json:"key,omitempty"`
13458
13459	// Value: [Output Only] A warning data value corresponding to the key.
13460	Value string `json:"value,omitempty"`
13461
13462	// ForceSendFields is a list of field names (e.g. "Key") 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. "Key") 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 *MachineTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
13480	type NoMethod MachineTypeAggregatedListWarningData
13481	raw := NoMethod(*s)
13482	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13483}
13484
13485// MachineTypeList: Contains a list of machine types.
13486type MachineTypeList struct {
13487	// Id: [Output Only] Unique identifier for the resource; defined by the
13488	// server.
13489	Id string `json:"id,omitempty"`
13490
13491	// Items: A list of MachineType resources.
13492	Items []*MachineType `json:"items,omitempty"`
13493
13494	// Kind: [Output Only] Type of resource. Always compute#machineTypeList
13495	// for lists of machine types.
13496	Kind string `json:"kind,omitempty"`
13497
13498	// NextPageToken: [Output Only] This token allows you to get the next
13499	// page of results for list requests. If the number of results is larger
13500	// than maxResults, use the nextPageToken as a value for the query
13501	// parameter pageToken in the next list request. Subsequent list
13502	// requests will have their own nextPageToken to continue paging through
13503	// the results.
13504	NextPageToken string `json:"nextPageToken,omitempty"`
13505
13506	// SelfLink: [Output Only] Server-defined URL for this resource.
13507	SelfLink string `json:"selfLink,omitempty"`
13508
13509	// Warning: [Output Only] Informational warning message.
13510	Warning *MachineTypeListWarning `json:"warning,omitempty"`
13511
13512	// ServerResponse contains the HTTP response code and headers from the
13513	// server.
13514	googleapi.ServerResponse `json:"-"`
13515
13516	// ForceSendFields is a list of field names (e.g. "Id") to
13517	// unconditionally include in API requests. By default, fields with
13518	// empty values are omitted from API requests. However, any non-pointer,
13519	// non-interface field appearing in ForceSendFields will be sent to the
13520	// server regardless of whether the field is empty or not. This may be
13521	// used to include empty fields in Patch requests.
13522	ForceSendFields []string `json:"-"`
13523
13524	// NullFields is a list of field names (e.g. "Id") to include in API
13525	// requests with the JSON null value. By default, fields with empty
13526	// values are omitted from API requests. However, any field with an
13527	// empty value appearing in NullFields will be sent to the server as
13528	// null. It is an error if a field in this list has a non-empty value.
13529	// This may be used to include null fields in Patch requests.
13530	NullFields []string `json:"-"`
13531}
13532
13533func (s *MachineTypeList) MarshalJSON() ([]byte, error) {
13534	type NoMethod MachineTypeList
13535	raw := NoMethod(*s)
13536	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13537}
13538
13539// MachineTypeListWarning: [Output Only] Informational warning message.
13540type MachineTypeListWarning struct {
13541	// Code: [Output Only] A warning code, if applicable. For example,
13542	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13543	// the response.
13544	//
13545	// Possible values:
13546	//   "CLEANUP_FAILED"
13547	//   "DEPRECATED_RESOURCE_USED"
13548	//   "DEPRECATED_TYPE_USED"
13549	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13550	//   "EXPERIMENTAL_TYPE_USED"
13551	//   "EXTERNAL_API_WARNING"
13552	//   "FIELD_VALUE_OVERRIDEN"
13553	//   "INJECTED_KERNELS_DEPRECATED"
13554	//   "MISSING_TYPE_DEPENDENCY"
13555	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13556	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13557	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13558	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13559	//   "NEXT_HOP_NOT_RUNNING"
13560	//   "NOT_CRITICAL_ERROR"
13561	//   "NO_RESULTS_ON_PAGE"
13562	//   "REQUIRED_TOS_AGREEMENT"
13563	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13564	//   "RESOURCE_NOT_DELETED"
13565	//   "SCHEMA_VALIDATION_IGNORED"
13566	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13567	//   "UNDECLARED_PROPERTIES"
13568	//   "UNREACHABLE"
13569	Code string `json:"code,omitempty"`
13570
13571	// Data: [Output Only] Metadata about this warning in key: value format.
13572	// For example:
13573	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13574	Data []*MachineTypeListWarningData `json:"data,omitempty"`
13575
13576	// Message: [Output Only] A human-readable description of the warning
13577	// code.
13578	Message string `json:"message,omitempty"`
13579
13580	// ForceSendFields is a list of field names (e.g. "Code") to
13581	// unconditionally include in API requests. By default, fields with
13582	// empty values are omitted from API requests. However, any non-pointer,
13583	// non-interface field appearing in ForceSendFields will be sent to the
13584	// server regardless of whether the field is empty or not. This may be
13585	// used to include empty fields in Patch requests.
13586	ForceSendFields []string `json:"-"`
13587
13588	// NullFields is a list of field names (e.g. "Code") to include in API
13589	// requests with the JSON null value. By default, fields with empty
13590	// values are omitted from API requests. However, any field with an
13591	// empty value appearing in NullFields will be sent to the server as
13592	// null. It is an error if a field in this list has a non-empty value.
13593	// This may be used to include null fields in Patch requests.
13594	NullFields []string `json:"-"`
13595}
13596
13597func (s *MachineTypeListWarning) MarshalJSON() ([]byte, error) {
13598	type NoMethod MachineTypeListWarning
13599	raw := NoMethod(*s)
13600	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13601}
13602
13603type MachineTypeListWarningData struct {
13604	// Key: [Output Only] A key that provides more detail on the warning
13605	// being returned. For example, for warnings where there are no results
13606	// in a list request for a particular zone, this key might be scope and
13607	// the key value might be the zone name. Other examples might be a key
13608	// indicating a deprecated resource and a suggested replacement, or a
13609	// warning about invalid network settings (for example, if an instance
13610	// attempts to perform IP forwarding but is not enabled for IP
13611	// forwarding).
13612	Key string `json:"key,omitempty"`
13613
13614	// Value: [Output Only] A warning data value corresponding to the key.
13615	Value string `json:"value,omitempty"`
13616
13617	// ForceSendFields is a list of field names (e.g. "Key") to
13618	// unconditionally include in API requests. By default, fields with
13619	// empty values are omitted from API requests. However, any non-pointer,
13620	// non-interface field appearing in ForceSendFields will be sent to the
13621	// server regardless of whether the field is empty or not. This may be
13622	// used to include empty fields in Patch requests.
13623	ForceSendFields []string `json:"-"`
13624
13625	// NullFields is a list of field names (e.g. "Key") to include in API
13626	// requests with the JSON null value. By default, fields with empty
13627	// values are omitted from API requests. However, any field with an
13628	// empty value appearing in NullFields will be sent to the server as
13629	// null. It is an error if a field in this list has a non-empty value.
13630	// This may be used to include null fields in Patch requests.
13631	NullFields []string `json:"-"`
13632}
13633
13634func (s *MachineTypeListWarningData) MarshalJSON() ([]byte, error) {
13635	type NoMethod MachineTypeListWarningData
13636	raw := NoMethod(*s)
13637	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13638}
13639
13640type MachineTypesScopedList struct {
13641	// MachineTypes: [Output Only] A list of machine types contained in this
13642	// scope.
13643	MachineTypes []*MachineType `json:"machineTypes,omitempty"`
13644
13645	// Warning: [Output Only] An informational warning that appears when the
13646	// machine types list is empty.
13647	Warning *MachineTypesScopedListWarning `json:"warning,omitempty"`
13648
13649	// ForceSendFields is a list of field names (e.g. "MachineTypes") to
13650	// unconditionally include in API requests. By default, fields with
13651	// empty values are omitted from API requests. However, any non-pointer,
13652	// non-interface field appearing in ForceSendFields will be sent to the
13653	// server regardless of whether the field is empty or not. This may be
13654	// used to include empty fields in Patch requests.
13655	ForceSendFields []string `json:"-"`
13656
13657	// NullFields is a list of field names (e.g. "MachineTypes") to include
13658	// in API requests with the JSON null value. By default, fields with
13659	// empty values are omitted from API requests. However, any field with
13660	// an empty value appearing in NullFields will be sent to the server as
13661	// null. It is an error if a field in this list has a non-empty value.
13662	// This may be used to include null fields in Patch requests.
13663	NullFields []string `json:"-"`
13664}
13665
13666func (s *MachineTypesScopedList) MarshalJSON() ([]byte, error) {
13667	type NoMethod MachineTypesScopedList
13668	raw := NoMethod(*s)
13669	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13670}
13671
13672// MachineTypesScopedListWarning: [Output Only] An informational warning
13673// that appears when the machine types list is empty.
13674type MachineTypesScopedListWarning struct {
13675	// Code: [Output Only] A warning code, if applicable. For example,
13676	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13677	// the response.
13678	//
13679	// Possible values:
13680	//   "CLEANUP_FAILED"
13681	//   "DEPRECATED_RESOURCE_USED"
13682	//   "DEPRECATED_TYPE_USED"
13683	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13684	//   "EXPERIMENTAL_TYPE_USED"
13685	//   "EXTERNAL_API_WARNING"
13686	//   "FIELD_VALUE_OVERRIDEN"
13687	//   "INJECTED_KERNELS_DEPRECATED"
13688	//   "MISSING_TYPE_DEPENDENCY"
13689	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13690	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13691	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13692	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13693	//   "NEXT_HOP_NOT_RUNNING"
13694	//   "NOT_CRITICAL_ERROR"
13695	//   "NO_RESULTS_ON_PAGE"
13696	//   "REQUIRED_TOS_AGREEMENT"
13697	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13698	//   "RESOURCE_NOT_DELETED"
13699	//   "SCHEMA_VALIDATION_IGNORED"
13700	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13701	//   "UNDECLARED_PROPERTIES"
13702	//   "UNREACHABLE"
13703	Code string `json:"code,omitempty"`
13704
13705	// Data: [Output Only] Metadata about this warning in key: value format.
13706	// For example:
13707	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13708	Data []*MachineTypesScopedListWarningData `json:"data,omitempty"`
13709
13710	// Message: [Output Only] A human-readable description of the warning
13711	// code.
13712	Message string `json:"message,omitempty"`
13713
13714	// ForceSendFields is a list of field names (e.g. "Code") to
13715	// unconditionally include in API requests. By default, fields with
13716	// empty values are omitted from API requests. However, any non-pointer,
13717	// non-interface field appearing in ForceSendFields will be sent to the
13718	// server regardless of whether the field is empty or not. This may be
13719	// used to include empty fields in Patch requests.
13720	ForceSendFields []string `json:"-"`
13721
13722	// NullFields is a list of field names (e.g. "Code") to include in API
13723	// requests with the JSON null value. By default, fields with empty
13724	// values are omitted from API requests. However, any field with an
13725	// empty value appearing in NullFields will be sent to the server as
13726	// null. It is an error if a field in this list has a non-empty value.
13727	// This may be used to include null fields in Patch requests.
13728	NullFields []string `json:"-"`
13729}
13730
13731func (s *MachineTypesScopedListWarning) MarshalJSON() ([]byte, error) {
13732	type NoMethod MachineTypesScopedListWarning
13733	raw := NoMethod(*s)
13734	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13735}
13736
13737type MachineTypesScopedListWarningData struct {
13738	// Key: [Output Only] A key that provides more detail on the warning
13739	// being returned. For example, for warnings where there are no results
13740	// in a list request for a particular zone, this key might be scope and
13741	// the key value might be the zone name. Other examples might be a key
13742	// indicating a deprecated resource and a suggested replacement, or a
13743	// warning about invalid network settings (for example, if an instance
13744	// attempts to perform IP forwarding but is not enabled for IP
13745	// forwarding).
13746	Key string `json:"key,omitempty"`
13747
13748	// Value: [Output Only] A warning data value corresponding to the key.
13749	Value string `json:"value,omitempty"`
13750
13751	// ForceSendFields is a list of field names (e.g. "Key") to
13752	// unconditionally include in API requests. By default, fields with
13753	// empty values are omitted from API requests. However, any non-pointer,
13754	// non-interface field appearing in ForceSendFields will be sent to the
13755	// server regardless of whether the field is empty or not. This may be
13756	// used to include empty fields in Patch requests.
13757	ForceSendFields []string `json:"-"`
13758
13759	// NullFields is a list of field names (e.g. "Key") to include in API
13760	// requests with the JSON null value. By default, fields with empty
13761	// values are omitted from API requests. However, any field with an
13762	// empty value appearing in NullFields will be sent to the server as
13763	// null. It is an error if a field in this list has a non-empty value.
13764	// This may be used to include null fields in Patch requests.
13765	NullFields []string `json:"-"`
13766}
13767
13768func (s *MachineTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
13769	type NoMethod MachineTypesScopedListWarningData
13770	raw := NoMethod(*s)
13771	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13772}
13773
13774// ManagedInstance: Next available tag: 12
13775type ManagedInstance struct {
13776	// CurrentAction: [Output Only] The current action that the managed
13777	// instance group has scheduled for the instance. Possible values:
13778	// - NONE The instance is running, and the managed instance group does
13779	// not have any scheduled actions for this instance.
13780	// - CREATING The managed instance group is creating this instance. If
13781	// the group fails to create this instance, it will try again until it
13782	// is successful.
13783	// - CREATING_WITHOUT_RETRIES The managed instance group is attempting
13784	// to create this instance only once. If the group fails to create this
13785	// instance, it does not try again and the group's targetSize value is
13786	// decreased instead.
13787	// - RECREATING The managed instance group is recreating this instance.
13788	//
13789	// - DELETING The managed instance group is permanently deleting this
13790	// instance.
13791	// - ABANDONING The managed instance group is abandoning this instance.
13792	// The instance will be removed from the instance group and from any
13793	// target pools that are associated with this group.
13794	// - RESTARTING The managed instance group is restarting the instance.
13795	//
13796	// - REFRESHING The managed instance group is applying configuration
13797	// changes to the instance without stopping it. For example, the group
13798	// can update the target pool list for an instance without stopping that
13799	// instance.
13800	// - VERIFYING The managed instance group has created the instance and
13801	// it is in the process of being verified.
13802	//
13803	// Possible values:
13804	//   "ABANDONING"
13805	//   "CREATING"
13806	//   "CREATING_WITHOUT_RETRIES"
13807	//   "DELETING"
13808	//   "NONE"
13809	//   "RECREATING"
13810	//   "REFRESHING"
13811	//   "RESTARTING"
13812	CurrentAction string `json:"currentAction,omitempty"`
13813
13814	// Id: [Output only] The unique identifier for this resource. This field
13815	// is empty when instance does not exist.
13816	Id uint64 `json:"id,omitempty,string"`
13817
13818	// Instance: [Output Only] The URL of the instance. The URL can exist
13819	// even if the instance has not yet been created.
13820	Instance string `json:"instance,omitempty"`
13821
13822	// InstanceStatus: [Output Only] The status of the instance. This field
13823	// is empty when the instance does not exist.
13824	//
13825	// Possible values:
13826	//   "PROVISIONING"
13827	//   "RUNNING"
13828	//   "STAGING"
13829	//   "STOPPED"
13830	//   "STOPPING"
13831	//   "SUSPENDED"
13832	//   "SUSPENDING"
13833	//   "TERMINATED"
13834	InstanceStatus string `json:"instanceStatus,omitempty"`
13835
13836	// LastAttempt: [Output Only] Information about the last attempt to
13837	// create or delete the instance.
13838	LastAttempt *ManagedInstanceLastAttempt `json:"lastAttempt,omitempty"`
13839
13840	// ForceSendFields is a list of field names (e.g. "CurrentAction") to
13841	// unconditionally include in API requests. By default, fields with
13842	// empty values are omitted from API requests. However, any non-pointer,
13843	// non-interface field appearing in ForceSendFields will be sent to the
13844	// server regardless of whether the field is empty or not. This may be
13845	// used to include empty fields in Patch requests.
13846	ForceSendFields []string `json:"-"`
13847
13848	// NullFields is a list of field names (e.g. "CurrentAction") to include
13849	// in API requests with the JSON null value. By default, fields with
13850	// empty values are omitted from API requests. However, any field with
13851	// an empty value appearing in NullFields will be sent to the server as
13852	// null. It is an error if a field in this list has a non-empty value.
13853	// This may be used to include null fields in Patch requests.
13854	NullFields []string `json:"-"`
13855}
13856
13857func (s *ManagedInstance) MarshalJSON() ([]byte, error) {
13858	type NoMethod ManagedInstance
13859	raw := NoMethod(*s)
13860	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13861}
13862
13863type ManagedInstanceLastAttempt struct {
13864	// Errors: [Output Only] Encountered errors during the last attempt to
13865	// create or delete the instance.
13866	Errors *ManagedInstanceLastAttemptErrors `json:"errors,omitempty"`
13867
13868	// ForceSendFields is a list of field names (e.g. "Errors") to
13869	// unconditionally include in API requests. By default, fields with
13870	// empty values are omitted from API requests. However, any non-pointer,
13871	// non-interface field appearing in ForceSendFields will be sent to the
13872	// server regardless of whether the field is empty or not. This may be
13873	// used to include empty fields in Patch requests.
13874	ForceSendFields []string `json:"-"`
13875
13876	// NullFields is a list of field names (e.g. "Errors") to include in API
13877	// requests with the JSON null value. By default, fields with empty
13878	// values are omitted from API requests. However, any field with an
13879	// empty value appearing in NullFields will be sent to the server as
13880	// null. It is an error if a field in this list has a non-empty value.
13881	// This may be used to include null fields in Patch requests.
13882	NullFields []string `json:"-"`
13883}
13884
13885func (s *ManagedInstanceLastAttempt) MarshalJSON() ([]byte, error) {
13886	type NoMethod ManagedInstanceLastAttempt
13887	raw := NoMethod(*s)
13888	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13889}
13890
13891// ManagedInstanceLastAttemptErrors: [Output Only] Encountered errors
13892// during the last attempt to create or delete the instance.
13893type ManagedInstanceLastAttemptErrors struct {
13894	// Errors: [Output Only] The array of errors encountered while
13895	// processing this operation.
13896	Errors []*ManagedInstanceLastAttemptErrorsErrors `json:"errors,omitempty"`
13897
13898	// ForceSendFields is a list of field names (e.g. "Errors") to
13899	// unconditionally include in API requests. By default, fields with
13900	// empty values are omitted from API requests. However, any non-pointer,
13901	// non-interface field appearing in ForceSendFields will be sent to the
13902	// server regardless of whether the field is empty or not. This may be
13903	// used to include empty fields in Patch requests.
13904	ForceSendFields []string `json:"-"`
13905
13906	// NullFields is a list of field names (e.g. "Errors") to include in API
13907	// requests with the JSON null value. By default, fields with empty
13908	// values are omitted from API requests. However, any field with an
13909	// empty value appearing in NullFields will be sent to the server as
13910	// null. It is an error if a field in this list has a non-empty value.
13911	// This may be used to include null fields in Patch requests.
13912	NullFields []string `json:"-"`
13913}
13914
13915func (s *ManagedInstanceLastAttemptErrors) MarshalJSON() ([]byte, error) {
13916	type NoMethod ManagedInstanceLastAttemptErrors
13917	raw := NoMethod(*s)
13918	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13919}
13920
13921type ManagedInstanceLastAttemptErrorsErrors struct {
13922	// Code: [Output Only] The error type identifier for this error.
13923	Code string `json:"code,omitempty"`
13924
13925	// Location: [Output Only] Indicates the field in the request that
13926	// caused the error. This property is optional.
13927	Location string `json:"location,omitempty"`
13928
13929	// Message: [Output Only] An optional, human-readable error message.
13930	Message string `json:"message,omitempty"`
13931
13932	// ForceSendFields is a list of field names (e.g. "Code") to
13933	// unconditionally include in API requests. By default, fields with
13934	// empty values are omitted from API requests. However, any non-pointer,
13935	// non-interface field appearing in ForceSendFields will be sent to the
13936	// server regardless of whether the field is empty or not. This may be
13937	// used to include empty fields in Patch requests.
13938	ForceSendFields []string `json:"-"`
13939
13940	// NullFields is a list of field names (e.g. "Code") to include in API
13941	// requests with the JSON null value. By default, fields with empty
13942	// values are omitted from API requests. However, any field with an
13943	// empty value appearing in NullFields will be sent to the server as
13944	// null. It is an error if a field in this list has a non-empty value.
13945	// This may be used to include null fields in Patch requests.
13946	NullFields []string `json:"-"`
13947}
13948
13949func (s *ManagedInstanceLastAttemptErrorsErrors) MarshalJSON() ([]byte, error) {
13950	type NoMethod ManagedInstanceLastAttemptErrorsErrors
13951	raw := NoMethod(*s)
13952	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13953}
13954
13955// Metadata: A metadata key/value entry.
13956type Metadata struct {
13957	// Fingerprint: Specifies a fingerprint for this request, which is
13958	// essentially a hash of the metadata's contents and used for optimistic
13959	// locking. The fingerprint is initially generated by Compute Engine and
13960	// changes after every request to modify or update metadata. You must
13961	// always provide an up-to-date fingerprint hash in order to update or
13962	// change metadata.
13963	Fingerprint string `json:"fingerprint,omitempty"`
13964
13965	// Items: Array of key/value pairs. The total size of all keys and
13966	// values must be less than 512 KB.
13967	Items []*MetadataItems `json:"items,omitempty"`
13968
13969	// Kind: [Output Only] Type of the resource. Always compute#metadata for
13970	// metadata.
13971	Kind string `json:"kind,omitempty"`
13972
13973	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
13974	// unconditionally include in API requests. By default, fields with
13975	// empty values are omitted from API requests. However, any non-pointer,
13976	// non-interface field appearing in ForceSendFields will be sent to the
13977	// server regardless of whether the field is empty or not. This may be
13978	// used to include empty fields in Patch requests.
13979	ForceSendFields []string `json:"-"`
13980
13981	// NullFields is a list of field names (e.g. "Fingerprint") to include
13982	// in API requests with the JSON null value. By default, fields with
13983	// empty values are omitted from API requests. However, any field with
13984	// an empty value appearing in NullFields will be sent to the server as
13985	// null. It is an error if a field in this list has a non-empty value.
13986	// This may be used to include null fields in Patch requests.
13987	NullFields []string `json:"-"`
13988}
13989
13990func (s *Metadata) MarshalJSON() ([]byte, error) {
13991	type NoMethod Metadata
13992	raw := NoMethod(*s)
13993	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13994}
13995
13996type MetadataItems struct {
13997	// Key: Key for the metadata entry. Keys must conform to the following
13998	// regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is
13999	// reflected as part of a URL in the metadata server. Additionally, to
14000	// avoid ambiguity, keys must not conflict with any other metadata keys
14001	// for the project.
14002	Key string `json:"key,omitempty"`
14003
14004	// Value: Value for the metadata entry. These are free-form strings, and
14005	// only have meaning as interpreted by the image running in the
14006	// instance. The only restriction placed on values is that their size
14007	// must be less than or equal to 262144 bytes (256 KiB).
14008	Value *string `json:"value,omitempty"`
14009
14010	// ForceSendFields is a list of field names (e.g. "Key") to
14011	// unconditionally include in API requests. By default, fields with
14012	// empty values are omitted from API requests. However, any non-pointer,
14013	// non-interface field appearing in ForceSendFields will be sent to the
14014	// server regardless of whether the field is empty or not. This may be
14015	// used to include empty fields in Patch requests.
14016	ForceSendFields []string `json:"-"`
14017
14018	// NullFields is a list of field names (e.g. "Key") to include in API
14019	// requests with the JSON null value. By default, fields with empty
14020	// values are omitted from API requests. However, any field with an
14021	// empty value appearing in NullFields will be sent to the server as
14022	// null. It is an error if a field in this list has a non-empty value.
14023	// This may be used to include null fields in Patch requests.
14024	NullFields []string `json:"-"`
14025}
14026
14027func (s *MetadataItems) MarshalJSON() ([]byte, error) {
14028	type NoMethod MetadataItems
14029	raw := NoMethod(*s)
14030	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14031}
14032
14033// NamedPort: The named port. For example: .
14034type NamedPort struct {
14035	// Name: The name for this named port. The name must be 1-63 characters
14036	// long, and comply with RFC1035.
14037	Name string `json:"name,omitempty"`
14038
14039	// Port: The port number, which can be a value between 1 and 65535.
14040	Port int64 `json:"port,omitempty"`
14041
14042	// ForceSendFields is a list of field names (e.g. "Name") to
14043	// unconditionally include in API requests. By default, fields with
14044	// empty values are omitted from API requests. However, any non-pointer,
14045	// non-interface field appearing in ForceSendFields will be sent to the
14046	// server regardless of whether the field is empty or not. This may be
14047	// used to include empty fields in Patch requests.
14048	ForceSendFields []string `json:"-"`
14049
14050	// NullFields is a list of field names (e.g. "Name") to include in API
14051	// requests with the JSON null value. By default, fields with empty
14052	// values are omitted from API requests. However, any field with an
14053	// empty value appearing in NullFields will be sent to the server as
14054	// null. It is an error if a field in this list has a non-empty value.
14055	// This may be used to include null fields in Patch requests.
14056	NullFields []string `json:"-"`
14057}
14058
14059func (s *NamedPort) MarshalJSON() ([]byte, error) {
14060	type NoMethod NamedPort
14061	raw := NoMethod(*s)
14062	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14063}
14064
14065// Network: Represents a Network resource. Read Networks and Firewalls
14066// for more information. (== resource_for v1.networks ==) (==
14067// resource_for beta.networks ==)
14068type Network struct {
14069	// IPv4Range: The range of internal addresses that are legal on this
14070	// network. This range is a CIDR specification, for example:
14071	// 192.168.0.0/16. Provided by the client when the network is created.
14072	IPv4Range string `json:"IPv4Range,omitempty"`
14073
14074	// AutoCreateSubnetworks: When set to true, the network is created in
14075	// "auto subnet mode". When set to false, the network is in "custom
14076	// subnet mode".
14077	//
14078	// In "auto subnet mode", a newly created network is assigned the
14079	// default CIDR of 10.128.0.0/9 and it automatically creates one
14080	// subnetwork per region.
14081	AutoCreateSubnetworks bool `json:"autoCreateSubnetworks,omitempty"`
14082
14083	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
14084	// format.
14085	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14086
14087	// Description: An optional description of this resource. Provide this
14088	// property when you create the resource.
14089	Description string `json:"description,omitempty"`
14090
14091	// GatewayIPv4: A gateway address for default routing to other networks.
14092	// This value is read only and is selected by the Google Compute Engine,
14093	// typically as the first usable address in the IPv4Range.
14094	GatewayIPv4 string `json:"gatewayIPv4,omitempty"`
14095
14096	// Id: [Output Only] The unique identifier for the resource. This
14097	// identifier is defined by the server.
14098	Id uint64 `json:"id,omitempty,string"`
14099
14100	// Kind: [Output Only] Type of the resource. Always compute#network for
14101	// networks.
14102	Kind string `json:"kind,omitempty"`
14103
14104	// Name: Name of the resource. Provided by the client when the resource
14105	// is created. The name must be 1-63 characters long, and comply with
14106	// RFC1035. Specifically, the name must be 1-63 characters long and
14107	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
14108	// the first character must be a lowercase letter, and all following
14109	// characters must be a dash, lowercase letter, or digit, except the
14110	// last character, which cannot be a dash.
14111	Name string `json:"name,omitempty"`
14112
14113	// Peerings: [Output Only] A list of network peerings for the resource.
14114	Peerings []*NetworkPeering `json:"peerings,omitempty"`
14115
14116	// RoutingConfig: The network-level routing configuration for this
14117	// network. Used by Cloud Router to determine what type of network-wide
14118	// routing behavior to enforce.
14119	RoutingConfig *NetworkRoutingConfig `json:"routingConfig,omitempty"`
14120
14121	// SelfLink: [Output Only] Server-defined URL for the resource.
14122	SelfLink string `json:"selfLink,omitempty"`
14123
14124	// Subnetworks: [Output Only] Server-defined fully-qualified URLs for
14125	// all subnetworks in this network.
14126	Subnetworks []string `json:"subnetworks,omitempty"`
14127
14128	// ServerResponse contains the HTTP response code and headers from the
14129	// server.
14130	googleapi.ServerResponse `json:"-"`
14131
14132	// ForceSendFields is a list of field names (e.g. "IPv4Range") 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. "IPv4Range") 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 *Network) MarshalJSON() ([]byte, error) {
14150	type NoMethod Network
14151	raw := NoMethod(*s)
14152	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14153}
14154
14155// NetworkInterface: A network interface resource attached to an
14156// instance.
14157type NetworkInterface struct {
14158	// AccessConfigs: An array of configurations for this interface.
14159	// Currently, only one access config, ONE_TO_ONE_NAT, is supported. If
14160	// there are no accessConfigs specified, then this instance will have no
14161	// external internet access.
14162	AccessConfigs []*AccessConfig `json:"accessConfigs,omitempty"`
14163
14164	// AliasIpRanges: An array of alias IP ranges for this network
14165	// interface. Can only be specified for network interfaces on
14166	// subnet-mode networks.
14167	AliasIpRanges []*AliasIpRange `json:"aliasIpRanges,omitempty"`
14168
14169	// Fingerprint: Fingerprint hash of contents stored in this network
14170	// interface. This field will be ignored when inserting an Instance or
14171	// adding a NetworkInterface. An up-to-date fingerprint must be provided
14172	// in order to update the NetworkInterface.
14173	Fingerprint string `json:"fingerprint,omitempty"`
14174
14175	// Kind: [Output Only] Type of the resource. Always
14176	// compute#networkInterface for network interfaces.
14177	Kind string `json:"kind,omitempty"`
14178
14179	// Name: [Output Only] The name of the network interface, generated by
14180	// the server. For network devices, these are eth0, eth1, etc.
14181	Name string `json:"name,omitempty"`
14182
14183	// Network: URL of the network resource for this instance. When creating
14184	// an instance, if neither the network nor the subnetwork is specified,
14185	// the default network global/networks/default is used; if the network
14186	// is not specified but the subnetwork is specified, the network is
14187	// inferred.
14188	//
14189	// This field is optional when creating a firewall rule. If not
14190	// specified when creating a firewall rule, the default network
14191	// global/networks/default is used.
14192	//
14193	// If you specify this property, you can specify the network as a full
14194	// or partial URL. For example, the following are all valid URLs:
14195	// -
14196	// https://www.googleapis.com/compute/v1/projects/project/global/networks/network
14197	// - projects/project/global/networks/network
14198	// - global/networks/default
14199	Network string `json:"network,omitempty"`
14200
14201	// NetworkIP: An IPv4 internal network address to assign to the instance
14202	// for this network interface. If not specified by the user, an unused
14203	// internal IP is assigned by the system.
14204	NetworkIP string `json:"networkIP,omitempty"`
14205
14206	// Subnetwork: The URL of the Subnetwork resource for this instance. If
14207	// the network resource is in legacy mode, do not provide this property.
14208	// If the network is in auto subnet mode, providing the subnetwork is
14209	// optional. If the network is in custom subnet mode, then this field
14210	// should be specified. If you specify this property, you can specify
14211	// the subnetwork as a full or partial URL. For example, the following
14212	// are all valid URLs:
14213	// -
14214	// https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
14215	// - regions/region/subnetworks/subnetwork
14216	Subnetwork string `json:"subnetwork,omitempty"`
14217
14218	// ForceSendFields is a list of field names (e.g. "AccessConfigs") to
14219	// unconditionally include in API requests. By default, fields with
14220	// empty values are omitted from API requests. However, any non-pointer,
14221	// non-interface field appearing in ForceSendFields will be sent to the
14222	// server regardless of whether the field is empty or not. This may be
14223	// used to include empty fields in Patch requests.
14224	ForceSendFields []string `json:"-"`
14225
14226	// NullFields is a list of field names (e.g. "AccessConfigs") to include
14227	// in API requests with the JSON null value. By default, fields with
14228	// empty values are omitted from API requests. However, any field with
14229	// an empty value appearing in NullFields will be sent to the server as
14230	// null. It is an error if a field in this list has a non-empty value.
14231	// This may be used to include null fields in Patch requests.
14232	NullFields []string `json:"-"`
14233}
14234
14235func (s *NetworkInterface) MarshalJSON() ([]byte, error) {
14236	type NoMethod NetworkInterface
14237	raw := NoMethod(*s)
14238	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14239}
14240
14241// NetworkList: Contains a list of networks.
14242type NetworkList struct {
14243	// Id: [Output Only] Unique identifier for the resource; defined by the
14244	// server.
14245	Id string `json:"id,omitempty"`
14246
14247	// Items: A list of Network resources.
14248	Items []*Network `json:"items,omitempty"`
14249
14250	// Kind: [Output Only] Type of resource. Always compute#networkList for
14251	// lists of networks.
14252	Kind string `json:"kind,omitempty"`
14253
14254	// NextPageToken: [Output Only] This token allows you to get the next
14255	// page of results for list requests. If the number of results is larger
14256	// than maxResults, use the nextPageToken as a value for the query
14257	// parameter pageToken in the next list request. Subsequent list
14258	// requests will have their own nextPageToken to continue paging through
14259	// the results.
14260	NextPageToken string `json:"nextPageToken,omitempty"`
14261
14262	// SelfLink: [Output Only] Server-defined URL for this resource.
14263	SelfLink string `json:"selfLink,omitempty"`
14264
14265	// Warning: [Output Only] Informational warning message.
14266	Warning *NetworkListWarning `json:"warning,omitempty"`
14267
14268	// ServerResponse contains the HTTP response code and headers from the
14269	// server.
14270	googleapi.ServerResponse `json:"-"`
14271
14272	// ForceSendFields is a list of field names (e.g. "Id") to
14273	// unconditionally include in API requests. By default, fields with
14274	// empty values are omitted from API requests. However, any non-pointer,
14275	// non-interface field appearing in ForceSendFields will be sent to the
14276	// server regardless of whether the field is empty or not. This may be
14277	// used to include empty fields in Patch requests.
14278	ForceSendFields []string `json:"-"`
14279
14280	// NullFields is a list of field names (e.g. "Id") to include in API
14281	// requests with the JSON null value. By default, fields with empty
14282	// values are omitted from API requests. However, any field with an
14283	// empty value appearing in NullFields will be sent to the server as
14284	// null. It is an error if a field in this list has a non-empty value.
14285	// This may be used to include null fields in Patch requests.
14286	NullFields []string `json:"-"`
14287}
14288
14289func (s *NetworkList) MarshalJSON() ([]byte, error) {
14290	type NoMethod NetworkList
14291	raw := NoMethod(*s)
14292	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14293}
14294
14295// NetworkListWarning: [Output Only] Informational warning message.
14296type NetworkListWarning struct {
14297	// Code: [Output Only] A warning code, if applicable. For example,
14298	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14299	// the response.
14300	//
14301	// Possible values:
14302	//   "CLEANUP_FAILED"
14303	//   "DEPRECATED_RESOURCE_USED"
14304	//   "DEPRECATED_TYPE_USED"
14305	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14306	//   "EXPERIMENTAL_TYPE_USED"
14307	//   "EXTERNAL_API_WARNING"
14308	//   "FIELD_VALUE_OVERRIDEN"
14309	//   "INJECTED_KERNELS_DEPRECATED"
14310	//   "MISSING_TYPE_DEPENDENCY"
14311	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14312	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14313	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14314	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14315	//   "NEXT_HOP_NOT_RUNNING"
14316	//   "NOT_CRITICAL_ERROR"
14317	//   "NO_RESULTS_ON_PAGE"
14318	//   "REQUIRED_TOS_AGREEMENT"
14319	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14320	//   "RESOURCE_NOT_DELETED"
14321	//   "SCHEMA_VALIDATION_IGNORED"
14322	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14323	//   "UNDECLARED_PROPERTIES"
14324	//   "UNREACHABLE"
14325	Code string `json:"code,omitempty"`
14326
14327	// Data: [Output Only] Metadata about this warning in key: value format.
14328	// For example:
14329	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14330	Data []*NetworkListWarningData `json:"data,omitempty"`
14331
14332	// Message: [Output Only] A human-readable description of the warning
14333	// code.
14334	Message string `json:"message,omitempty"`
14335
14336	// ForceSendFields is a list of field names (e.g. "Code") to
14337	// unconditionally include in API requests. By default, fields with
14338	// empty values are omitted from API requests. However, any non-pointer,
14339	// non-interface field appearing in ForceSendFields will be sent to the
14340	// server regardless of whether the field is empty or not. This may be
14341	// used to include empty fields in Patch requests.
14342	ForceSendFields []string `json:"-"`
14343
14344	// NullFields is a list of field names (e.g. "Code") to include in API
14345	// requests with the JSON null value. By default, fields with empty
14346	// values are omitted from API requests. However, any field with an
14347	// empty value appearing in NullFields will be sent to the server as
14348	// null. It is an error if a field in this list has a non-empty value.
14349	// This may be used to include null fields in Patch requests.
14350	NullFields []string `json:"-"`
14351}
14352
14353func (s *NetworkListWarning) MarshalJSON() ([]byte, error) {
14354	type NoMethod NetworkListWarning
14355	raw := NoMethod(*s)
14356	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14357}
14358
14359type NetworkListWarningData struct {
14360	// Key: [Output Only] A key that provides more detail on the warning
14361	// being returned. For example, for warnings where there are no results
14362	// in a list request for a particular zone, this key might be scope and
14363	// the key value might be the zone name. Other examples might be a key
14364	// indicating a deprecated resource and a suggested replacement, or a
14365	// warning about invalid network settings (for example, if an instance
14366	// attempts to perform IP forwarding but is not enabled for IP
14367	// forwarding).
14368	Key string `json:"key,omitempty"`
14369
14370	// Value: [Output Only] A warning data value corresponding to the key.
14371	Value string `json:"value,omitempty"`
14372
14373	// ForceSendFields is a list of field names (e.g. "Key") to
14374	// unconditionally include in API requests. By default, fields with
14375	// empty values are omitted from API requests. However, any non-pointer,
14376	// non-interface field appearing in ForceSendFields will be sent to the
14377	// server regardless of whether the field is empty or not. This may be
14378	// used to include empty fields in Patch requests.
14379	ForceSendFields []string `json:"-"`
14380
14381	// NullFields is a list of field names (e.g. "Key") to include in API
14382	// requests with the JSON null value. By default, fields with empty
14383	// values are omitted from API requests. However, any field with an
14384	// empty value appearing in NullFields will be sent to the server as
14385	// null. It is an error if a field in this list has a non-empty value.
14386	// This may be used to include null fields in Patch requests.
14387	NullFields []string `json:"-"`
14388}
14389
14390func (s *NetworkListWarningData) MarshalJSON() ([]byte, error) {
14391	type NoMethod NetworkListWarningData
14392	raw := NoMethod(*s)
14393	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14394}
14395
14396// NetworkPeering: A network peering attached to a network resource. The
14397// message includes the peering name, peer network, peering state, and a
14398// flag indicating whether Google Compute Engine should automatically
14399// create routes for the peering.
14400type NetworkPeering struct {
14401	// AutoCreateRoutes: Whether full mesh connectivity is created and
14402	// managed automatically. When it is set to true, Google Compute Engine
14403	// will automatically create and manage the routes between two networks
14404	// when the state is ACTIVE. Otherwise, user needs to create routes
14405	// manually to route packets to peer network.
14406	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
14407
14408	// Name: Name of this peering. Provided by the client when the peering
14409	// is created. The name must comply with RFC1035. Specifically, the name
14410	// must be 1-63 characters long and match regular expression
14411	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
14412	// a lowercase letter, and all the following characters must be a dash,
14413	// lowercase letter, or digit, except the last character, which cannot
14414	// be a dash.
14415	Name string `json:"name,omitempty"`
14416
14417	// Network: The URL of the peer network. It can be either full URL or
14418	// partial URL. The peer network may belong to a different project. If
14419	// the partial URL does not contain project, it is assumed that the peer
14420	// network is in the same project as the current network.
14421	Network string `json:"network,omitempty"`
14422
14423	// State: [Output Only] State for the peering.
14424	//
14425	// Possible values:
14426	//   "ACTIVE"
14427	//   "INACTIVE"
14428	State string `json:"state,omitempty"`
14429
14430	// StateDetails: [Output Only] Details about the current state of the
14431	// peering.
14432	StateDetails string `json:"stateDetails,omitempty"`
14433
14434	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
14435	// unconditionally include in API requests. By default, fields with
14436	// empty values are omitted from API requests. However, any non-pointer,
14437	// non-interface field appearing in ForceSendFields will be sent to the
14438	// server regardless of whether the field is empty or not. This may be
14439	// used to include empty fields in Patch requests.
14440	ForceSendFields []string `json:"-"`
14441
14442	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
14443	// include in API requests with the JSON null value. By default, fields
14444	// with empty values are omitted from API requests. However, any field
14445	// with an empty value appearing in NullFields will be sent to the
14446	// server as null. It is an error if a field in this list has a
14447	// non-empty value. This may be used to include null fields in Patch
14448	// requests.
14449	NullFields []string `json:"-"`
14450}
14451
14452func (s *NetworkPeering) MarshalJSON() ([]byte, error) {
14453	type NoMethod NetworkPeering
14454	raw := NoMethod(*s)
14455	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14456}
14457
14458// NetworkRoutingConfig: A routing configuration attached to a network
14459// resource. The message includes the list of routers associated with
14460// the network, and a flag indicating the type of routing behavior to
14461// enforce network-wide.
14462type NetworkRoutingConfig struct {
14463	// RoutingMode: The network-wide routing mode to use. If set to
14464	// REGIONAL, this network's cloud routers will only advertise routes
14465	// with subnetworks of this network in the same region as the router. If
14466	// set to GLOBAL, this network's cloud routers will advertise routes
14467	// with all subnetworks of this network, across regions.
14468	//
14469	// Possible values:
14470	//   "GLOBAL"
14471	//   "REGIONAL"
14472	RoutingMode string `json:"routingMode,omitempty"`
14473
14474	// ForceSendFields is a list of field names (e.g. "RoutingMode") to
14475	// unconditionally include in API requests. By default, fields with
14476	// empty values are omitted from API requests. However, any non-pointer,
14477	// non-interface field appearing in ForceSendFields will be sent to the
14478	// server regardless of whether the field is empty or not. This may be
14479	// used to include empty fields in Patch requests.
14480	ForceSendFields []string `json:"-"`
14481
14482	// NullFields is a list of field names (e.g. "RoutingMode") to include
14483	// in API requests with the JSON null value. By default, fields with
14484	// empty values are omitted from API requests. However, any field with
14485	// an empty value appearing in NullFields will be sent to the server as
14486	// null. It is an error if a field in this list has a non-empty value.
14487	// This may be used to include null fields in Patch requests.
14488	NullFields []string `json:"-"`
14489}
14490
14491func (s *NetworkRoutingConfig) MarshalJSON() ([]byte, error) {
14492	type NoMethod NetworkRoutingConfig
14493	raw := NoMethod(*s)
14494	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14495}
14496
14497type NetworksAddPeeringRequest struct {
14498	// AutoCreateRoutes: Whether Google Compute Engine manages the routes
14499	// automatically.
14500	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
14501
14502	// Name: Name of the peering, which should conform to RFC1035.
14503	Name string `json:"name,omitempty"`
14504
14505	// PeerNetwork: URL of the peer network. It can be either full URL or
14506	// partial URL. The peer network may belong to a different project. If
14507	// the partial URL does not contain project, it is assumed that the peer
14508	// network is in the same project as the current network.
14509	PeerNetwork string `json:"peerNetwork,omitempty"`
14510
14511	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
14512	// unconditionally include in API requests. By default, fields with
14513	// empty values are omitted from API requests. However, any non-pointer,
14514	// non-interface field appearing in ForceSendFields will be sent to the
14515	// server regardless of whether the field is empty or not. This may be
14516	// used to include empty fields in Patch requests.
14517	ForceSendFields []string `json:"-"`
14518
14519	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
14520	// include in API requests with the JSON null value. By default, fields
14521	// with empty values are omitted from API requests. However, any field
14522	// with an empty value appearing in NullFields will be sent to the
14523	// server as null. It is an error if a field in this list has a
14524	// non-empty value. This may be used to include null fields in Patch
14525	// requests.
14526	NullFields []string `json:"-"`
14527}
14528
14529func (s *NetworksAddPeeringRequest) MarshalJSON() ([]byte, error) {
14530	type NoMethod NetworksAddPeeringRequest
14531	raw := NoMethod(*s)
14532	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14533}
14534
14535type NetworksRemovePeeringRequest struct {
14536	// Name: Name of the peering, which should conform to RFC1035.
14537	Name string `json:"name,omitempty"`
14538
14539	// ForceSendFields is a list of field names (e.g. "Name") to
14540	// unconditionally include in API requests. By default, fields with
14541	// empty values are omitted from API requests. However, any non-pointer,
14542	// non-interface field appearing in ForceSendFields will be sent to the
14543	// server regardless of whether the field is empty or not. This may be
14544	// used to include empty fields in Patch requests.
14545	ForceSendFields []string `json:"-"`
14546
14547	// NullFields is a list of field names (e.g. "Name") to include in API
14548	// requests with the JSON null value. By default, fields with empty
14549	// values are omitted from API requests. However, any field with an
14550	// empty value appearing in NullFields will be sent to the server as
14551	// null. It is an error if a field in this list has a non-empty value.
14552	// This may be used to include null fields in Patch requests.
14553	NullFields []string `json:"-"`
14554}
14555
14556func (s *NetworksRemovePeeringRequest) MarshalJSON() ([]byte, error) {
14557	type NoMethod NetworksRemovePeeringRequest
14558	raw := NoMethod(*s)
14559	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14560}
14561
14562// Operation: An Operation resource, used to manage asynchronous API
14563// requests. (== resource_for v1.globalOperations ==) (== resource_for
14564// beta.globalOperations ==) (== resource_for v1.regionOperations ==)
14565// (== resource_for beta.regionOperations ==) (== resource_for
14566// v1.zoneOperations ==) (== resource_for beta.zoneOperations ==)
14567type Operation struct {
14568	// ClientOperationId: [Output Only] Reserved for future use.
14569	ClientOperationId string `json:"clientOperationId,omitempty"`
14570
14571	// CreationTimestamp: [Deprecated] This field is deprecated.
14572	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14573
14574	// Description: [Output Only] A textual description of the operation,
14575	// which is set when the operation is created.
14576	Description string `json:"description,omitempty"`
14577
14578	// EndTime: [Output Only] The time that this operation was completed.
14579	// This value is in RFC3339 text format.
14580	EndTime string `json:"endTime,omitempty"`
14581
14582	// Error: [Output Only] If errors are generated during processing of the
14583	// operation, this field will be populated.
14584	Error *OperationError `json:"error,omitempty"`
14585
14586	// HttpErrorMessage: [Output Only] If the operation fails, this field
14587	// contains the HTTP error message that was returned, such as NOT FOUND.
14588	HttpErrorMessage string `json:"httpErrorMessage,omitempty"`
14589
14590	// HttpErrorStatusCode: [Output Only] If the operation fails, this field
14591	// contains the HTTP error status code that was returned. For example, a
14592	// 404 means the resource was not found.
14593	HttpErrorStatusCode int64 `json:"httpErrorStatusCode,omitempty"`
14594
14595	// Id: [Output Only] The unique identifier for the resource. This
14596	// identifier is defined by the server.
14597	Id uint64 `json:"id,omitempty,string"`
14598
14599	// InsertTime: [Output Only] The time that this operation was requested.
14600	// This value is in RFC3339 text format.
14601	InsertTime string `json:"insertTime,omitempty"`
14602
14603	// Kind: [Output Only] Type of the resource. Always compute#operation
14604	// for Operation resources.
14605	Kind string `json:"kind,omitempty"`
14606
14607	// Name: [Output Only] Name of the resource.
14608	Name string `json:"name,omitempty"`
14609
14610	// OperationType: [Output Only] The type of operation, such as insert,
14611	// update, or delete, and so on.
14612	OperationType string `json:"operationType,omitempty"`
14613
14614	// Progress: [Output Only] An optional progress indicator that ranges
14615	// from 0 to 100. There is no requirement that this be linear or support
14616	// any granularity of operations. This should not be used to guess when
14617	// the operation will be complete. This number should monotonically
14618	// increase as the operation progresses.
14619	Progress int64 `json:"progress,omitempty"`
14620
14621	// Region: [Output Only] The URL of the region where the operation
14622	// resides. Only available when performing regional operations. You must
14623	// specify this field as part of the HTTP request URL. It is not
14624	// settable as a field in the request body.
14625	Region string `json:"region,omitempty"`
14626
14627	// SelfLink: [Output Only] Server-defined URL for the resource.
14628	SelfLink string `json:"selfLink,omitempty"`
14629
14630	// StartTime: [Output Only] The time that this operation was started by
14631	// the server. This value is in RFC3339 text format.
14632	StartTime string `json:"startTime,omitempty"`
14633
14634	// Status: [Output Only] The status of the operation, which can be one
14635	// of the following: PENDING, RUNNING, or DONE.
14636	//
14637	// Possible values:
14638	//   "DONE"
14639	//   "PENDING"
14640	//   "RUNNING"
14641	Status string `json:"status,omitempty"`
14642
14643	// StatusMessage: [Output Only] An optional textual description of the
14644	// current status of the operation.
14645	StatusMessage string `json:"statusMessage,omitempty"`
14646
14647	// TargetId: [Output Only] The unique target ID, which identifies a
14648	// specific incarnation of the target resource.
14649	TargetId uint64 `json:"targetId,omitempty,string"`
14650
14651	// TargetLink: [Output Only] The URL of the resource that the operation
14652	// modifies. For operations related to creating a snapshot, this points
14653	// to the persistent disk that the snapshot was created from.
14654	TargetLink string `json:"targetLink,omitempty"`
14655
14656	// User: [Output Only] User who requested the operation, for example:
14657	// user@example.com.
14658	User string `json:"user,omitempty"`
14659
14660	// Warnings: [Output Only] If warning messages are generated during
14661	// processing of the operation, this field will be populated.
14662	Warnings []*OperationWarnings `json:"warnings,omitempty"`
14663
14664	// Zone: [Output Only] The URL of the zone where the operation resides.
14665	// Only available when performing per-zone operations. You must specify
14666	// this field as part of the HTTP request URL. It is not settable as a
14667	// field in the request body.
14668	Zone string `json:"zone,omitempty"`
14669
14670	// ServerResponse contains the HTTP response code and headers from the
14671	// server.
14672	googleapi.ServerResponse `json:"-"`
14673
14674	// ForceSendFields is a list of field names (e.g. "ClientOperationId")
14675	// to unconditionally include in API requests. By default, fields with
14676	// empty values are omitted from API requests. However, any non-pointer,
14677	// non-interface field appearing in ForceSendFields will be sent to the
14678	// server regardless of whether the field is empty or not. This may be
14679	// used to include empty fields in Patch requests.
14680	ForceSendFields []string `json:"-"`
14681
14682	// NullFields is a list of field names (e.g. "ClientOperationId") to
14683	// include in API requests with the JSON null value. By default, fields
14684	// with empty values are omitted from API requests. However, any field
14685	// with an empty value appearing in NullFields will be sent to the
14686	// server as null. It is an error if a field in this list has a
14687	// non-empty value. This may be used to include null fields in Patch
14688	// requests.
14689	NullFields []string `json:"-"`
14690}
14691
14692func (s *Operation) MarshalJSON() ([]byte, error) {
14693	type NoMethod Operation
14694	raw := NoMethod(*s)
14695	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14696}
14697
14698// OperationError: [Output Only] If errors are generated during
14699// processing of the operation, this field will be populated.
14700type OperationError struct {
14701	// Errors: [Output Only] The array of errors encountered while
14702	// processing this operation.
14703	Errors []*OperationErrorErrors `json:"errors,omitempty"`
14704
14705	// ForceSendFields is a list of field names (e.g. "Errors") to
14706	// unconditionally include in API requests. By default, fields with
14707	// empty values are omitted from API requests. However, any non-pointer,
14708	// non-interface field appearing in ForceSendFields will be sent to the
14709	// server regardless of whether the field is empty or not. This may be
14710	// used to include empty fields in Patch requests.
14711	ForceSendFields []string `json:"-"`
14712
14713	// NullFields is a list of field names (e.g. "Errors") to include in API
14714	// requests with the JSON null value. By default, fields with empty
14715	// values are omitted from API requests. However, any field with an
14716	// empty value appearing in NullFields will be sent to the server as
14717	// null. It is an error if a field in this list has a non-empty value.
14718	// This may be used to include null fields in Patch requests.
14719	NullFields []string `json:"-"`
14720}
14721
14722func (s *OperationError) MarshalJSON() ([]byte, error) {
14723	type NoMethod OperationError
14724	raw := NoMethod(*s)
14725	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14726}
14727
14728type OperationErrorErrors struct {
14729	// Code: [Output Only] The error type identifier for this error.
14730	Code string `json:"code,omitempty"`
14731
14732	// Location: [Output Only] Indicates the field in the request that
14733	// caused the error. This property is optional.
14734	Location string `json:"location,omitempty"`
14735
14736	// Message: [Output Only] An optional, human-readable error message.
14737	Message string `json:"message,omitempty"`
14738
14739	// ForceSendFields is a list of field names (e.g. "Code") to
14740	// unconditionally include in API requests. By default, fields with
14741	// empty values are omitted from API requests. However, any non-pointer,
14742	// non-interface field appearing in ForceSendFields will be sent to the
14743	// server regardless of whether the field is empty or not. This may be
14744	// used to include empty fields in Patch requests.
14745	ForceSendFields []string `json:"-"`
14746
14747	// NullFields is a list of field names (e.g. "Code") to include in API
14748	// requests with the JSON null value. By default, fields with empty
14749	// values are omitted from API requests. However, any field with an
14750	// empty value appearing in NullFields will be sent to the server as
14751	// null. It is an error if a field in this list has a non-empty value.
14752	// This may be used to include null fields in Patch requests.
14753	NullFields []string `json:"-"`
14754}
14755
14756func (s *OperationErrorErrors) MarshalJSON() ([]byte, error) {
14757	type NoMethod OperationErrorErrors
14758	raw := NoMethod(*s)
14759	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14760}
14761
14762type OperationWarnings struct {
14763	// Code: [Output Only] A warning code, if applicable. For example,
14764	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14765	// the response.
14766	//
14767	// Possible values:
14768	//   "CLEANUP_FAILED"
14769	//   "DEPRECATED_RESOURCE_USED"
14770	//   "DEPRECATED_TYPE_USED"
14771	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14772	//   "EXPERIMENTAL_TYPE_USED"
14773	//   "EXTERNAL_API_WARNING"
14774	//   "FIELD_VALUE_OVERRIDEN"
14775	//   "INJECTED_KERNELS_DEPRECATED"
14776	//   "MISSING_TYPE_DEPENDENCY"
14777	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14778	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14779	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14780	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14781	//   "NEXT_HOP_NOT_RUNNING"
14782	//   "NOT_CRITICAL_ERROR"
14783	//   "NO_RESULTS_ON_PAGE"
14784	//   "REQUIRED_TOS_AGREEMENT"
14785	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14786	//   "RESOURCE_NOT_DELETED"
14787	//   "SCHEMA_VALIDATION_IGNORED"
14788	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14789	//   "UNDECLARED_PROPERTIES"
14790	//   "UNREACHABLE"
14791	Code string `json:"code,omitempty"`
14792
14793	// Data: [Output Only] Metadata about this warning in key: value format.
14794	// For example:
14795	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14796	Data []*OperationWarningsData `json:"data,omitempty"`
14797
14798	// Message: [Output Only] A human-readable description of the warning
14799	// code.
14800	Message string `json:"message,omitempty"`
14801
14802	// ForceSendFields is a list of field names (e.g. "Code") to
14803	// unconditionally include in API requests. By default, fields with
14804	// empty values are omitted from API requests. However, any non-pointer,
14805	// non-interface field appearing in ForceSendFields will be sent to the
14806	// server regardless of whether the field is empty or not. This may be
14807	// used to include empty fields in Patch requests.
14808	ForceSendFields []string `json:"-"`
14809
14810	// NullFields is a list of field names (e.g. "Code") to include in API
14811	// requests with the JSON null value. By default, fields with empty
14812	// values are omitted from API requests. However, any field with an
14813	// empty value appearing in NullFields will be sent to the server as
14814	// null. It is an error if a field in this list has a non-empty value.
14815	// This may be used to include null fields in Patch requests.
14816	NullFields []string `json:"-"`
14817}
14818
14819func (s *OperationWarnings) MarshalJSON() ([]byte, error) {
14820	type NoMethod OperationWarnings
14821	raw := NoMethod(*s)
14822	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14823}
14824
14825type OperationWarningsData struct {
14826	// Key: [Output Only] A key that provides more detail on the warning
14827	// being returned. For example, for warnings where there are no results
14828	// in a list request for a particular zone, this key might be scope and
14829	// the key value might be the zone name. Other examples might be a key
14830	// indicating a deprecated resource and a suggested replacement, or a
14831	// warning about invalid network settings (for example, if an instance
14832	// attempts to perform IP forwarding but is not enabled for IP
14833	// forwarding).
14834	Key string `json:"key,omitempty"`
14835
14836	// Value: [Output Only] A warning data value corresponding to the key.
14837	Value string `json:"value,omitempty"`
14838
14839	// ForceSendFields is a list of field names (e.g. "Key") to
14840	// unconditionally include in API requests. By default, fields with
14841	// empty values are omitted from API requests. However, any non-pointer,
14842	// non-interface field appearing in ForceSendFields will be sent to the
14843	// server regardless of whether the field is empty or not. This may be
14844	// used to include empty fields in Patch requests.
14845	ForceSendFields []string `json:"-"`
14846
14847	// NullFields is a list of field names (e.g. "Key") to include in API
14848	// requests with the JSON null value. By default, fields with empty
14849	// values are omitted from API requests. However, any field with an
14850	// empty value appearing in NullFields will be sent to the server as
14851	// null. It is an error if a field in this list has a non-empty value.
14852	// This may be used to include null fields in Patch requests.
14853	NullFields []string `json:"-"`
14854}
14855
14856func (s *OperationWarningsData) MarshalJSON() ([]byte, error) {
14857	type NoMethod OperationWarningsData
14858	raw := NoMethod(*s)
14859	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14860}
14861
14862type OperationAggregatedList struct {
14863	// Id: [Output Only] The unique identifier for the resource. This
14864	// identifier is defined by the server.
14865	Id string `json:"id,omitempty"`
14866
14867	// Items: [Output Only] A map of scoped operation lists.
14868	Items map[string]OperationsScopedList `json:"items,omitempty"`
14869
14870	// Kind: [Output Only] Type of resource. Always
14871	// compute#operationAggregatedList for aggregated lists of operations.
14872	Kind string `json:"kind,omitempty"`
14873
14874	// NextPageToken: [Output Only] This token allows you to get the next
14875	// page of results for list requests. If the number of results is larger
14876	// than maxResults, use the nextPageToken as a value for the query
14877	// parameter pageToken in the next list request. Subsequent list
14878	// requests will have their own nextPageToken to continue paging through
14879	// the results.
14880	NextPageToken string `json:"nextPageToken,omitempty"`
14881
14882	// SelfLink: [Output Only] Server-defined URL for this resource.
14883	SelfLink string `json:"selfLink,omitempty"`
14884
14885	// Warning: [Output Only] Informational warning message.
14886	Warning *OperationAggregatedListWarning `json:"warning,omitempty"`
14887
14888	// ServerResponse contains the HTTP response code and headers from the
14889	// server.
14890	googleapi.ServerResponse `json:"-"`
14891
14892	// ForceSendFields is a list of field names (e.g. "Id") to
14893	// unconditionally include in API requests. By default, fields with
14894	// empty values are omitted from API requests. However, any non-pointer,
14895	// non-interface field appearing in ForceSendFields will be sent to the
14896	// server regardless of whether the field is empty or not. This may be
14897	// used to include empty fields in Patch requests.
14898	ForceSendFields []string `json:"-"`
14899
14900	// NullFields is a list of field names (e.g. "Id") to include in API
14901	// requests with the JSON null value. By default, fields with empty
14902	// values are omitted from API requests. However, any field with an
14903	// empty value appearing in NullFields will be sent to the server as
14904	// null. It is an error if a field in this list has a non-empty value.
14905	// This may be used to include null fields in Patch requests.
14906	NullFields []string `json:"-"`
14907}
14908
14909func (s *OperationAggregatedList) MarshalJSON() ([]byte, error) {
14910	type NoMethod OperationAggregatedList
14911	raw := NoMethod(*s)
14912	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14913}
14914
14915// OperationAggregatedListWarning: [Output Only] Informational warning
14916// message.
14917type OperationAggregatedListWarning struct {
14918	// Code: [Output Only] A warning code, if applicable. For example,
14919	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14920	// the response.
14921	//
14922	// Possible values:
14923	//   "CLEANUP_FAILED"
14924	//   "DEPRECATED_RESOURCE_USED"
14925	//   "DEPRECATED_TYPE_USED"
14926	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14927	//   "EXPERIMENTAL_TYPE_USED"
14928	//   "EXTERNAL_API_WARNING"
14929	//   "FIELD_VALUE_OVERRIDEN"
14930	//   "INJECTED_KERNELS_DEPRECATED"
14931	//   "MISSING_TYPE_DEPENDENCY"
14932	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14933	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14934	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14935	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14936	//   "NEXT_HOP_NOT_RUNNING"
14937	//   "NOT_CRITICAL_ERROR"
14938	//   "NO_RESULTS_ON_PAGE"
14939	//   "REQUIRED_TOS_AGREEMENT"
14940	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14941	//   "RESOURCE_NOT_DELETED"
14942	//   "SCHEMA_VALIDATION_IGNORED"
14943	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14944	//   "UNDECLARED_PROPERTIES"
14945	//   "UNREACHABLE"
14946	Code string `json:"code,omitempty"`
14947
14948	// Data: [Output Only] Metadata about this warning in key: value format.
14949	// For example:
14950	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14951	Data []*OperationAggregatedListWarningData `json:"data,omitempty"`
14952
14953	// Message: [Output Only] A human-readable description of the warning
14954	// code.
14955	Message string `json:"message,omitempty"`
14956
14957	// ForceSendFields is a list of field names (e.g. "Code") to
14958	// unconditionally include in API requests. By default, fields with
14959	// empty values are omitted from API requests. However, any non-pointer,
14960	// non-interface field appearing in ForceSendFields will be sent to the
14961	// server regardless of whether the field is empty or not. This may be
14962	// used to include empty fields in Patch requests.
14963	ForceSendFields []string `json:"-"`
14964
14965	// NullFields is a list of field names (e.g. "Code") to include in API
14966	// requests with the JSON null value. By default, fields with empty
14967	// values are omitted from API requests. However, any field with an
14968	// empty value appearing in NullFields will be sent to the server as
14969	// null. It is an error if a field in this list has a non-empty value.
14970	// This may be used to include null fields in Patch requests.
14971	NullFields []string `json:"-"`
14972}
14973
14974func (s *OperationAggregatedListWarning) MarshalJSON() ([]byte, error) {
14975	type NoMethod OperationAggregatedListWarning
14976	raw := NoMethod(*s)
14977	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14978}
14979
14980type OperationAggregatedListWarningData struct {
14981	// Key: [Output Only] A key that provides more detail on the warning
14982	// being returned. For example, for warnings where there are no results
14983	// in a list request for a particular zone, this key might be scope and
14984	// the key value might be the zone name. Other examples might be a key
14985	// indicating a deprecated resource and a suggested replacement, or a
14986	// warning about invalid network settings (for example, if an instance
14987	// attempts to perform IP forwarding but is not enabled for IP
14988	// forwarding).
14989	Key string `json:"key,omitempty"`
14990
14991	// Value: [Output Only] A warning data value corresponding to the key.
14992	Value string `json:"value,omitempty"`
14993
14994	// ForceSendFields is a list of field names (e.g. "Key") to
14995	// unconditionally include in API requests. By default, fields with
14996	// empty values are omitted from API requests. However, any non-pointer,
14997	// non-interface field appearing in ForceSendFields will be sent to the
14998	// server regardless of whether the field is empty or not. This may be
14999	// used to include empty fields in Patch requests.
15000	ForceSendFields []string `json:"-"`
15001
15002	// NullFields is a list of field names (e.g. "Key") to include in API
15003	// requests with the JSON null value. By default, fields with empty
15004	// values are omitted from API requests. However, any field with an
15005	// empty value appearing in NullFields will be sent to the server as
15006	// null. It is an error if a field in this list has a non-empty value.
15007	// This may be used to include null fields in Patch requests.
15008	NullFields []string `json:"-"`
15009}
15010
15011func (s *OperationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
15012	type NoMethod OperationAggregatedListWarningData
15013	raw := NoMethod(*s)
15014	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15015}
15016
15017// OperationList: Contains a list of Operation resources.
15018type OperationList struct {
15019	// Id: [Output Only] The unique identifier for the resource. This
15020	// identifier is defined by the server.
15021	Id string `json:"id,omitempty"`
15022
15023	// Items: [Output Only] A list of Operation resources.
15024	Items []*Operation `json:"items,omitempty"`
15025
15026	// Kind: [Output Only] Type of resource. Always compute#operations for
15027	// Operations resource.
15028	Kind string `json:"kind,omitempty"`
15029
15030	// NextPageToken: [Output Only] This token allows you to get the next
15031	// page of results for list requests. If the number of results is larger
15032	// than maxResults, use the nextPageToken as a value for the query
15033	// parameter pageToken in the next list request. Subsequent list
15034	// requests will have their own nextPageToken to continue paging through
15035	// the results.
15036	NextPageToken string `json:"nextPageToken,omitempty"`
15037
15038	// SelfLink: [Output Only] Server-defined URL for this resource.
15039	SelfLink string `json:"selfLink,omitempty"`
15040
15041	// Warning: [Output Only] Informational warning message.
15042	Warning *OperationListWarning `json:"warning,omitempty"`
15043
15044	// ServerResponse contains the HTTP response code and headers from the
15045	// server.
15046	googleapi.ServerResponse `json:"-"`
15047
15048	// ForceSendFields is a list of field names (e.g. "Id") to
15049	// unconditionally include in API requests. By default, fields with
15050	// empty values are omitted from API requests. However, any non-pointer,
15051	// non-interface field appearing in ForceSendFields will be sent to the
15052	// server regardless of whether the field is empty or not. This may be
15053	// used to include empty fields in Patch requests.
15054	ForceSendFields []string `json:"-"`
15055
15056	// NullFields is a list of field names (e.g. "Id") to include in API
15057	// requests with the JSON null value. By default, fields with empty
15058	// values are omitted from API requests. However, any field with an
15059	// empty value appearing in NullFields will be sent to the server as
15060	// null. It is an error if a field in this list has a non-empty value.
15061	// This may be used to include null fields in Patch requests.
15062	NullFields []string `json:"-"`
15063}
15064
15065func (s *OperationList) MarshalJSON() ([]byte, error) {
15066	type NoMethod OperationList
15067	raw := NoMethod(*s)
15068	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15069}
15070
15071// OperationListWarning: [Output Only] Informational warning message.
15072type OperationListWarning struct {
15073	// Code: [Output Only] A warning code, if applicable. For example,
15074	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15075	// the response.
15076	//
15077	// Possible values:
15078	//   "CLEANUP_FAILED"
15079	//   "DEPRECATED_RESOURCE_USED"
15080	//   "DEPRECATED_TYPE_USED"
15081	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15082	//   "EXPERIMENTAL_TYPE_USED"
15083	//   "EXTERNAL_API_WARNING"
15084	//   "FIELD_VALUE_OVERRIDEN"
15085	//   "INJECTED_KERNELS_DEPRECATED"
15086	//   "MISSING_TYPE_DEPENDENCY"
15087	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15088	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15089	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15090	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15091	//   "NEXT_HOP_NOT_RUNNING"
15092	//   "NOT_CRITICAL_ERROR"
15093	//   "NO_RESULTS_ON_PAGE"
15094	//   "REQUIRED_TOS_AGREEMENT"
15095	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15096	//   "RESOURCE_NOT_DELETED"
15097	//   "SCHEMA_VALIDATION_IGNORED"
15098	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15099	//   "UNDECLARED_PROPERTIES"
15100	//   "UNREACHABLE"
15101	Code string `json:"code,omitempty"`
15102
15103	// Data: [Output Only] Metadata about this warning in key: value format.
15104	// For example:
15105	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15106	Data []*OperationListWarningData `json:"data,omitempty"`
15107
15108	// Message: [Output Only] A human-readable description of the warning
15109	// code.
15110	Message string `json:"message,omitempty"`
15111
15112	// ForceSendFields is a list of field names (e.g. "Code") to
15113	// unconditionally include in API requests. By default, fields with
15114	// empty values are omitted from API requests. However, any non-pointer,
15115	// non-interface field appearing in ForceSendFields will be sent to the
15116	// server regardless of whether the field is empty or not. This may be
15117	// used to include empty fields in Patch requests.
15118	ForceSendFields []string `json:"-"`
15119
15120	// NullFields is a list of field names (e.g. "Code") to include in API
15121	// requests with the JSON null value. By default, fields with empty
15122	// values are omitted from API requests. However, any field with an
15123	// empty value appearing in NullFields will be sent to the server as
15124	// null. It is an error if a field in this list has a non-empty value.
15125	// This may be used to include null fields in Patch requests.
15126	NullFields []string `json:"-"`
15127}
15128
15129func (s *OperationListWarning) MarshalJSON() ([]byte, error) {
15130	type NoMethod OperationListWarning
15131	raw := NoMethod(*s)
15132	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15133}
15134
15135type OperationListWarningData struct {
15136	// Key: [Output Only] A key that provides more detail on the warning
15137	// being returned. For example, for warnings where there are no results
15138	// in a list request for a particular zone, this key might be scope and
15139	// the key value might be the zone name. Other examples might be a key
15140	// indicating a deprecated resource and a suggested replacement, or a
15141	// warning about invalid network settings (for example, if an instance
15142	// attempts to perform IP forwarding but is not enabled for IP
15143	// forwarding).
15144	Key string `json:"key,omitempty"`
15145
15146	// Value: [Output Only] A warning data value corresponding to the key.
15147	Value string `json:"value,omitempty"`
15148
15149	// ForceSendFields is a list of field names (e.g. "Key") to
15150	// unconditionally include in API requests. By default, fields with
15151	// empty values are omitted from API requests. However, any non-pointer,
15152	// non-interface field appearing in ForceSendFields will be sent to the
15153	// server regardless of whether the field is empty or not. This may be
15154	// used to include empty fields in Patch requests.
15155	ForceSendFields []string `json:"-"`
15156
15157	// NullFields is a list of field names (e.g. "Key") to include in API
15158	// requests with the JSON null value. By default, fields with empty
15159	// values are omitted from API requests. However, any field with an
15160	// empty value appearing in NullFields will be sent to the server as
15161	// null. It is an error if a field in this list has a non-empty value.
15162	// This may be used to include null fields in Patch requests.
15163	NullFields []string `json:"-"`
15164}
15165
15166func (s *OperationListWarningData) MarshalJSON() ([]byte, error) {
15167	type NoMethod OperationListWarningData
15168	raw := NoMethod(*s)
15169	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15170}
15171
15172type OperationsScopedList struct {
15173	// Operations: [Output Only] A list of operations contained in this
15174	// scope.
15175	Operations []*Operation `json:"operations,omitempty"`
15176
15177	// Warning: [Output Only] Informational warning which replaces the list
15178	// of operations when the list is empty.
15179	Warning *OperationsScopedListWarning `json:"warning,omitempty"`
15180
15181	// ForceSendFields is a list of field names (e.g. "Operations") to
15182	// unconditionally include in API requests. By default, fields with
15183	// empty values are omitted from API requests. However, any non-pointer,
15184	// non-interface field appearing in ForceSendFields will be sent to the
15185	// server regardless of whether the field is empty or not. This may be
15186	// used to include empty fields in Patch requests.
15187	ForceSendFields []string `json:"-"`
15188
15189	// NullFields is a list of field names (e.g. "Operations") to include in
15190	// API requests with the JSON null value. By default, fields with empty
15191	// values are omitted from API requests. However, any field with an
15192	// empty value appearing in NullFields will be sent to the server as
15193	// null. It is an error if a field in this list has a non-empty value.
15194	// This may be used to include null fields in Patch requests.
15195	NullFields []string `json:"-"`
15196}
15197
15198func (s *OperationsScopedList) MarshalJSON() ([]byte, error) {
15199	type NoMethod OperationsScopedList
15200	raw := NoMethod(*s)
15201	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15202}
15203
15204// OperationsScopedListWarning: [Output Only] Informational warning
15205// which replaces the list of operations when the list is empty.
15206type OperationsScopedListWarning struct {
15207	// Code: [Output Only] A warning code, if applicable. For example,
15208	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15209	// the response.
15210	//
15211	// Possible values:
15212	//   "CLEANUP_FAILED"
15213	//   "DEPRECATED_RESOURCE_USED"
15214	//   "DEPRECATED_TYPE_USED"
15215	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15216	//   "EXPERIMENTAL_TYPE_USED"
15217	//   "EXTERNAL_API_WARNING"
15218	//   "FIELD_VALUE_OVERRIDEN"
15219	//   "INJECTED_KERNELS_DEPRECATED"
15220	//   "MISSING_TYPE_DEPENDENCY"
15221	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15222	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15223	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15224	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15225	//   "NEXT_HOP_NOT_RUNNING"
15226	//   "NOT_CRITICAL_ERROR"
15227	//   "NO_RESULTS_ON_PAGE"
15228	//   "REQUIRED_TOS_AGREEMENT"
15229	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15230	//   "RESOURCE_NOT_DELETED"
15231	//   "SCHEMA_VALIDATION_IGNORED"
15232	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15233	//   "UNDECLARED_PROPERTIES"
15234	//   "UNREACHABLE"
15235	Code string `json:"code,omitempty"`
15236
15237	// Data: [Output Only] Metadata about this warning in key: value format.
15238	// For example:
15239	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15240	Data []*OperationsScopedListWarningData `json:"data,omitempty"`
15241
15242	// Message: [Output Only] A human-readable description of the warning
15243	// code.
15244	Message string `json:"message,omitempty"`
15245
15246	// ForceSendFields is a list of field names (e.g. "Code") to
15247	// unconditionally include in API requests. By default, fields with
15248	// empty values are omitted from API requests. However, any non-pointer,
15249	// non-interface field appearing in ForceSendFields will be sent to the
15250	// server regardless of whether the field is empty or not. This may be
15251	// used to include empty fields in Patch requests.
15252	ForceSendFields []string `json:"-"`
15253
15254	// NullFields is a list of field names (e.g. "Code") to include in API
15255	// requests with the JSON null value. By default, fields with empty
15256	// values are omitted from API requests. However, any field with an
15257	// empty value appearing in NullFields will be sent to the server as
15258	// null. It is an error if a field in this list has a non-empty value.
15259	// This may be used to include null fields in Patch requests.
15260	NullFields []string `json:"-"`
15261}
15262
15263func (s *OperationsScopedListWarning) MarshalJSON() ([]byte, error) {
15264	type NoMethod OperationsScopedListWarning
15265	raw := NoMethod(*s)
15266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15267}
15268
15269type OperationsScopedListWarningData struct {
15270	// Key: [Output Only] A key that provides more detail on the warning
15271	// being returned. For example, for warnings where there are no results
15272	// in a list request for a particular zone, this key might be scope and
15273	// the key value might be the zone name. Other examples might be a key
15274	// indicating a deprecated resource and a suggested replacement, or a
15275	// warning about invalid network settings (for example, if an instance
15276	// attempts to perform IP forwarding but is not enabled for IP
15277	// forwarding).
15278	Key string `json:"key,omitempty"`
15279
15280	// Value: [Output Only] A warning data value corresponding to the key.
15281	Value string `json:"value,omitempty"`
15282
15283	// ForceSendFields is a list of field names (e.g. "Key") to
15284	// unconditionally include in API requests. By default, fields with
15285	// empty values are omitted from API requests. However, any non-pointer,
15286	// non-interface field appearing in ForceSendFields will be sent to the
15287	// server regardless of whether the field is empty or not. This may be
15288	// used to include empty fields in Patch requests.
15289	ForceSendFields []string `json:"-"`
15290
15291	// NullFields is a list of field names (e.g. "Key") to include in API
15292	// requests with the JSON null value. By default, fields with empty
15293	// values are omitted from API requests. However, any field with an
15294	// empty value appearing in NullFields will be sent to the server as
15295	// null. It is an error if a field in this list has a non-empty value.
15296	// This may be used to include null fields in Patch requests.
15297	NullFields []string `json:"-"`
15298}
15299
15300func (s *OperationsScopedListWarningData) MarshalJSON() ([]byte, error) {
15301	type NoMethod OperationsScopedListWarningData
15302	raw := NoMethod(*s)
15303	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15304}
15305
15306// PathMatcher: A matcher for the path portion of the URL. The
15307// BackendService from the longest-matched rule will serve the URL. If
15308// no rule was matched, the default service will be used.
15309type PathMatcher struct {
15310	// DefaultService: The full or partial URL to the BackendService
15311	// resource. This will be used if none of the pathRules defined by this
15312	// PathMatcher is matched by the URL's path portion. For example, the
15313	// following are all valid URLs to a BackendService resource:
15314	// -
15315	// https://www.googleapis.com/compute/v1/projects/project/global/backendServices/backendService
15316	// - compute/v1/projects/project/global/backendServices/backendService
15317	//
15318	// - global/backendServices/backendService
15319	DefaultService string `json:"defaultService,omitempty"`
15320
15321	// Description: An optional description of this resource. Provide this
15322	// property when you create the resource.
15323	Description string `json:"description,omitempty"`
15324
15325	// Name: The name to which this PathMatcher is referred by the HostRule.
15326	Name string `json:"name,omitempty"`
15327
15328	// PathRules: The list of path rules.
15329	PathRules []*PathRule `json:"pathRules,omitempty"`
15330
15331	// ForceSendFields is a list of field names (e.g. "DefaultService") to
15332	// unconditionally include in API requests. By default, fields with
15333	// empty values are omitted from API requests. However, any non-pointer,
15334	// non-interface field appearing in ForceSendFields will be sent to the
15335	// server regardless of whether the field is empty or not. This may be
15336	// used to include empty fields in Patch requests.
15337	ForceSendFields []string `json:"-"`
15338
15339	// NullFields is a list of field names (e.g. "DefaultService") to
15340	// include in API requests with the JSON null value. By default, fields
15341	// with empty values are omitted from API requests. However, any field
15342	// with an empty value appearing in NullFields will be sent to the
15343	// server as null. It is an error if a field in this list has a
15344	// non-empty value. This may be used to include null fields in Patch
15345	// requests.
15346	NullFields []string `json:"-"`
15347}
15348
15349func (s *PathMatcher) MarshalJSON() ([]byte, error) {
15350	type NoMethod PathMatcher
15351	raw := NoMethod(*s)
15352	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15353}
15354
15355// PathRule: A path-matching rule for a URL. If matched, will use the
15356// specified BackendService to handle the traffic arriving at this URL.
15357type PathRule struct {
15358	// Paths: The list of path patterns to match. Each must start with / and
15359	// the only place a * is allowed is at the end following a /. The string
15360	// fed to the path matcher does not include any text after the first ?
15361	// or #, and those chars are not allowed here.
15362	Paths []string `json:"paths,omitempty"`
15363
15364	// Service: The URL of the BackendService resource if this rule is
15365	// matched.
15366	Service string `json:"service,omitempty"`
15367
15368	// ForceSendFields is a list of field names (e.g. "Paths") to
15369	// unconditionally include in API requests. By default, fields with
15370	// empty values are omitted from API requests. However, any non-pointer,
15371	// non-interface field appearing in ForceSendFields will be sent to the
15372	// server regardless of whether the field is empty or not. This may be
15373	// used to include empty fields in Patch requests.
15374	ForceSendFields []string `json:"-"`
15375
15376	// NullFields is a list of field names (e.g. "Paths") to include in API
15377	// requests with the JSON null value. By default, fields with empty
15378	// values are omitted from API requests. However, any field with an
15379	// empty value appearing in NullFields will be sent to the server as
15380	// null. It is an error if a field in this list has a non-empty value.
15381	// This may be used to include null fields in Patch requests.
15382	NullFields []string `json:"-"`
15383}
15384
15385func (s *PathRule) MarshalJSON() ([]byte, error) {
15386	type NoMethod PathRule
15387	raw := NoMethod(*s)
15388	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15389}
15390
15391// Project: A Project resource. For an overview of projects, see  Cloud
15392// Platform Resource Hierarchy. (== resource_for v1.projects ==) (==
15393// resource_for beta.projects ==)
15394type Project struct {
15395	// CommonInstanceMetadata: Metadata key/value pairs available to all
15396	// instances contained in this project. See Custom metadata for more
15397	// information.
15398	CommonInstanceMetadata *Metadata `json:"commonInstanceMetadata,omitempty"`
15399
15400	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
15401	// format.
15402	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15403
15404	// DefaultServiceAccount: [Output Only] Default service account used by
15405	// VMs running in this project.
15406	DefaultServiceAccount string `json:"defaultServiceAccount,omitempty"`
15407
15408	// Description: An optional textual description of the resource.
15409	Description string `json:"description,omitempty"`
15410
15411	// EnabledFeatures: Restricted features enabled for use on this project.
15412	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
15413
15414	// Id: [Output Only] The unique identifier for the resource. This
15415	// identifier is defined by the server. This is not the project ID, and
15416	// is just a unique ID used by Compute Engine to identify resources.
15417	Id uint64 `json:"id,omitempty,string"`
15418
15419	// Kind: [Output Only] Type of the resource. Always compute#project for
15420	// projects.
15421	Kind string `json:"kind,omitempty"`
15422
15423	// Name: The project ID. For example: my-example-project. Use the
15424	// project ID to make requests to Compute Engine.
15425	Name string `json:"name,omitempty"`
15426
15427	// Quotas: [Output Only] Quotas assigned to this project.
15428	Quotas []*Quota `json:"quotas,omitempty"`
15429
15430	// SelfLink: [Output Only] Server-defined URL for the resource.
15431	SelfLink string `json:"selfLink,omitempty"`
15432
15433	// UsageExportLocation: The naming prefix for daily usage reports and
15434	// the Google Cloud Storage bucket where they are stored.
15435	UsageExportLocation *UsageExportLocation `json:"usageExportLocation,omitempty"`
15436
15437	// XpnProjectStatus: [Output Only] The role this project has in a shared
15438	// VPC configuration. Currently only HOST projects are differentiated.
15439	//
15440	// Possible values:
15441	//   "HOST"
15442	//   "UNSPECIFIED_XPN_PROJECT_STATUS"
15443	XpnProjectStatus string `json:"xpnProjectStatus,omitempty"`
15444
15445	// ServerResponse contains the HTTP response code and headers from the
15446	// server.
15447	googleapi.ServerResponse `json:"-"`
15448
15449	// ForceSendFields is a list of field names (e.g.
15450	// "CommonInstanceMetadata") to unconditionally include in API requests.
15451	// By default, fields with empty values are omitted from API requests.
15452	// However, any non-pointer, non-interface field appearing in
15453	// ForceSendFields will be sent to the server regardless of whether the
15454	// field is empty or not. This may be used to include empty fields in
15455	// Patch requests.
15456	ForceSendFields []string `json:"-"`
15457
15458	// NullFields is a list of field names (e.g. "CommonInstanceMetadata")
15459	// to include in API requests with the JSON null value. By default,
15460	// fields with empty values are omitted from API requests. However, any
15461	// field with an empty value appearing in NullFields will be sent to the
15462	// server as null. It is an error if a field in this list has a
15463	// non-empty value. This may be used to include null fields in Patch
15464	// requests.
15465	NullFields []string `json:"-"`
15466}
15467
15468func (s *Project) MarshalJSON() ([]byte, error) {
15469	type NoMethod Project
15470	raw := NoMethod(*s)
15471	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15472}
15473
15474type ProjectsDisableXpnResourceRequest struct {
15475	// XpnResource: Service resource (a.k.a service project) ID.
15476	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
15477
15478	// ForceSendFields is a list of field names (e.g. "XpnResource") to
15479	// unconditionally include in API requests. By default, fields with
15480	// empty values are omitted from API requests. However, any non-pointer,
15481	// non-interface field appearing in ForceSendFields will be sent to the
15482	// server regardless of whether the field is empty or not. This may be
15483	// used to include empty fields in Patch requests.
15484	ForceSendFields []string `json:"-"`
15485
15486	// NullFields is a list of field names (e.g. "XpnResource") to include
15487	// in API requests with the JSON null value. By default, fields with
15488	// empty values are omitted from API requests. However, any field with
15489	// an empty value appearing in NullFields will be sent to the server as
15490	// null. It is an error if a field in this list has a non-empty value.
15491	// This may be used to include null fields in Patch requests.
15492	NullFields []string `json:"-"`
15493}
15494
15495func (s *ProjectsDisableXpnResourceRequest) MarshalJSON() ([]byte, error) {
15496	type NoMethod ProjectsDisableXpnResourceRequest
15497	raw := NoMethod(*s)
15498	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15499}
15500
15501type ProjectsEnableXpnResourceRequest struct {
15502	// XpnResource: Service resource (a.k.a service project) ID.
15503	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
15504
15505	// ForceSendFields is a list of field names (e.g. "XpnResource") to
15506	// unconditionally include in API requests. By default, fields with
15507	// empty values are omitted from API requests. However, any non-pointer,
15508	// non-interface field appearing in ForceSendFields will be sent to the
15509	// server regardless of whether the field is empty or not. This may be
15510	// used to include empty fields in Patch requests.
15511	ForceSendFields []string `json:"-"`
15512
15513	// NullFields is a list of field names (e.g. "XpnResource") to include
15514	// in API requests with the JSON null value. By default, fields with
15515	// empty values are omitted from API requests. However, any field with
15516	// an empty value appearing in NullFields will be sent to the server as
15517	// null. It is an error if a field in this list has a non-empty value.
15518	// This may be used to include null fields in Patch requests.
15519	NullFields []string `json:"-"`
15520}
15521
15522func (s *ProjectsEnableXpnResourceRequest) MarshalJSON() ([]byte, error) {
15523	type NoMethod ProjectsEnableXpnResourceRequest
15524	raw := NoMethod(*s)
15525	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15526}
15527
15528type ProjectsGetXpnResources struct {
15529	// Kind: [Output Only] Type of resource. Always
15530	// compute#projectsGetXpnResources for lists of service resources (a.k.a
15531	// service projects)
15532	Kind string `json:"kind,omitempty"`
15533
15534	// NextPageToken: [Output Only] This token allows you to get the next
15535	// page of results for list requests. If the number of results is larger
15536	// than maxResults, use the nextPageToken as a value for the query
15537	// parameter pageToken in the next list request. Subsequent list
15538	// requests will have their own nextPageToken to continue paging through
15539	// the results.
15540	NextPageToken string `json:"nextPageToken,omitempty"`
15541
15542	// Resources: Service resources (a.k.a service projects) attached to
15543	// this project as their shared VPC host.
15544	Resources []*XpnResourceId `json:"resources,omitempty"`
15545
15546	// ServerResponse contains the HTTP response code and headers from the
15547	// server.
15548	googleapi.ServerResponse `json:"-"`
15549
15550	// ForceSendFields is a list of field names (e.g. "Kind") to
15551	// unconditionally include in API requests. By default, fields with
15552	// empty values are omitted from API requests. However, any non-pointer,
15553	// non-interface field appearing in ForceSendFields will be sent to the
15554	// server regardless of whether the field is empty or not. This may be
15555	// used to include empty fields in Patch requests.
15556	ForceSendFields []string `json:"-"`
15557
15558	// NullFields is a list of field names (e.g. "Kind") to include in API
15559	// requests with the JSON null value. By default, fields with empty
15560	// values are omitted from API requests. However, any field with an
15561	// empty value appearing in NullFields will be sent to the server as
15562	// null. It is an error if a field in this list has a non-empty value.
15563	// This may be used to include null fields in Patch requests.
15564	NullFields []string `json:"-"`
15565}
15566
15567func (s *ProjectsGetXpnResources) MarshalJSON() ([]byte, error) {
15568	type NoMethod ProjectsGetXpnResources
15569	raw := NoMethod(*s)
15570	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15571}
15572
15573type ProjectsListXpnHostsRequest struct {
15574	// Organization: Optional organization ID managed by Cloud Resource
15575	// Manager, for which to list shared VPC host projects. If not
15576	// specified, the organization will be inferred from the project.
15577	Organization string `json:"organization,omitempty"`
15578
15579	// ForceSendFields is a list of field names (e.g. "Organization") to
15580	// unconditionally include in API requests. By default, fields with
15581	// empty values are omitted from API requests. However, any non-pointer,
15582	// non-interface field appearing in ForceSendFields will be sent to the
15583	// server regardless of whether the field is empty or not. This may be
15584	// used to include empty fields in Patch requests.
15585	ForceSendFields []string `json:"-"`
15586
15587	// NullFields is a list of field names (e.g. "Organization") to include
15588	// in API requests with the JSON null value. By default, fields with
15589	// empty values are omitted from API requests. However, any field with
15590	// an empty value appearing in NullFields will be sent to the server as
15591	// null. It is an error if a field in this list has a non-empty value.
15592	// This may be used to include null fields in Patch requests.
15593	NullFields []string `json:"-"`
15594}
15595
15596func (s *ProjectsListXpnHostsRequest) MarshalJSON() ([]byte, error) {
15597	type NoMethod ProjectsListXpnHostsRequest
15598	raw := NoMethod(*s)
15599	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15600}
15601
15602// Quota: A quotas entry.
15603type Quota struct {
15604	// Limit: [Output Only] Quota limit for this metric.
15605	Limit float64 `json:"limit,omitempty"`
15606
15607	// Metric: [Output Only] Name of the quota metric.
15608	//
15609	// Possible values:
15610	//   "AUTOSCALERS"
15611	//   "BACKEND_BUCKETS"
15612	//   "BACKEND_SERVICES"
15613	//   "COMMITMENTS"
15614	//   "CPUS"
15615	//   "CPUS_ALL_REGIONS"
15616	//   "DISKS_TOTAL_GB"
15617	//   "FIREWALLS"
15618	//   "FORWARDING_RULES"
15619	//   "HEALTH_CHECKS"
15620	//   "IMAGES"
15621	//   "INSTANCES"
15622	//   "INSTANCE_GROUPS"
15623	//   "INSTANCE_GROUP_MANAGERS"
15624	//   "INSTANCE_TEMPLATES"
15625	//   "INTERCONNECTS"
15626	//   "INTERNAL_ADDRESSES"
15627	//   "IN_USE_ADDRESSES"
15628	//   "LOCAL_SSD_TOTAL_GB"
15629	//   "NETWORKS"
15630	//   "NVIDIA_K80_GPUS"
15631	//   "NVIDIA_P100_GPUS"
15632	//   "NVIDIA_V100_GPUS"
15633	//   "PREEMPTIBLE_CPUS"
15634	//   "PREEMPTIBLE_LOCAL_SSD_GB"
15635	//   "PREEMPTIBLE_NVIDIA_K80_GPUS"
15636	//   "PREEMPTIBLE_NVIDIA_P100_GPUS"
15637	//   "REGIONAL_AUTOSCALERS"
15638	//   "REGIONAL_INSTANCE_GROUP_MANAGERS"
15639	//   "ROUTERS"
15640	//   "ROUTES"
15641	//   "SECURITY_POLICIES"
15642	//   "SECURITY_POLICY_RULES"
15643	//   "SNAPSHOTS"
15644	//   "SSD_TOTAL_GB"
15645	//   "SSL_CERTIFICATES"
15646	//   "STATIC_ADDRESSES"
15647	//   "SUBNETWORKS"
15648	//   "TARGET_HTTPS_PROXIES"
15649	//   "TARGET_HTTP_PROXIES"
15650	//   "TARGET_INSTANCES"
15651	//   "TARGET_POOLS"
15652	//   "TARGET_SSL_PROXIES"
15653	//   "TARGET_TCP_PROXIES"
15654	//   "TARGET_VPN_GATEWAYS"
15655	//   "URL_MAPS"
15656	//   "VPN_TUNNELS"
15657	Metric string `json:"metric,omitempty"`
15658
15659	// Usage: [Output Only] Current usage of this metric.
15660	Usage float64 `json:"usage,omitempty"`
15661
15662	// ForceSendFields is a list of field names (e.g. "Limit") to
15663	// unconditionally include in API requests. By default, fields with
15664	// empty values are omitted from API requests. However, any non-pointer,
15665	// non-interface field appearing in ForceSendFields will be sent to the
15666	// server regardless of whether the field is empty or not. This may be
15667	// used to include empty fields in Patch requests.
15668	ForceSendFields []string `json:"-"`
15669
15670	// NullFields is a list of field names (e.g. "Limit") to include in API
15671	// requests with the JSON null value. By default, fields with empty
15672	// values are omitted from API requests. However, any field with an
15673	// empty value appearing in NullFields will be sent to the server as
15674	// null. It is an error if a field in this list has a non-empty value.
15675	// This may be used to include null fields in Patch requests.
15676	NullFields []string `json:"-"`
15677}
15678
15679func (s *Quota) MarshalJSON() ([]byte, error) {
15680	type NoMethod Quota
15681	raw := NoMethod(*s)
15682	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15683}
15684
15685func (s *Quota) UnmarshalJSON(data []byte) error {
15686	type NoMethod Quota
15687	var s1 struct {
15688		Limit gensupport.JSONFloat64 `json:"limit"`
15689		Usage gensupport.JSONFloat64 `json:"usage"`
15690		*NoMethod
15691	}
15692	s1.NoMethod = (*NoMethod)(s)
15693	if err := json.Unmarshal(data, &s1); err != nil {
15694		return err
15695	}
15696	s.Limit = float64(s1.Limit)
15697	s.Usage = float64(s1.Usage)
15698	return nil
15699}
15700
15701// Reference: Represents a reference to a resource.
15702type Reference struct {
15703	// Kind: [Output Only] Type of the resource. Always compute#reference
15704	// for references.
15705	Kind string `json:"kind,omitempty"`
15706
15707	// ReferenceType: A description of the reference type with no implied
15708	// semantics. Possible values include:
15709	// - MEMBER_OF
15710	ReferenceType string `json:"referenceType,omitempty"`
15711
15712	// Referrer: URL of the resource which refers to the target.
15713	Referrer string `json:"referrer,omitempty"`
15714
15715	// Target: URL of the resource to which this reference points.
15716	Target string `json:"target,omitempty"`
15717
15718	// ForceSendFields is a list of field names (e.g. "Kind") to
15719	// unconditionally include in API requests. By default, fields with
15720	// empty values are omitted from API requests. However, any non-pointer,
15721	// non-interface field appearing in ForceSendFields will be sent to the
15722	// server regardless of whether the field is empty or not. This may be
15723	// used to include empty fields in Patch requests.
15724	ForceSendFields []string `json:"-"`
15725
15726	// NullFields is a list of field names (e.g. "Kind") to include in API
15727	// requests with the JSON null value. By default, fields with empty
15728	// values are omitted from API requests. However, any field with an
15729	// empty value appearing in NullFields will be sent to the server as
15730	// null. It is an error if a field in this list has a non-empty value.
15731	// This may be used to include null fields in Patch requests.
15732	NullFields []string `json:"-"`
15733}
15734
15735func (s *Reference) MarshalJSON() ([]byte, error) {
15736	type NoMethod Reference
15737	raw := NoMethod(*s)
15738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15739}
15740
15741// Region: Region resource. (== resource_for beta.regions ==) (==
15742// resource_for v1.regions ==)
15743type Region struct {
15744	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
15745	// format.
15746	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15747
15748	// Deprecated: [Output Only] The deprecation status associated with this
15749	// region.
15750	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
15751
15752	// Description: [Output Only] Textual description of the resource.
15753	Description string `json:"description,omitempty"`
15754
15755	// Id: [Output Only] The unique identifier for the resource. This
15756	// identifier is defined by the server.
15757	Id uint64 `json:"id,omitempty,string"`
15758
15759	// Kind: [Output Only] Type of the resource. Always compute#region for
15760	// regions.
15761	Kind string `json:"kind,omitempty"`
15762
15763	// Name: [Output Only] Name of the resource.
15764	Name string `json:"name,omitempty"`
15765
15766	// Quotas: [Output Only] Quotas assigned to this region.
15767	Quotas []*Quota `json:"quotas,omitempty"`
15768
15769	// SelfLink: [Output Only] Server-defined URL for the resource.
15770	SelfLink string `json:"selfLink,omitempty"`
15771
15772	// Status: [Output Only] Status of the region, either UP or DOWN.
15773	//
15774	// Possible values:
15775	//   "DOWN"
15776	//   "UP"
15777	Status string `json:"status,omitempty"`
15778
15779	// Zones: [Output Only] A list of zones available in this region, in the
15780	// form of resource URLs.
15781	Zones []string `json:"zones,omitempty"`
15782
15783	// ServerResponse contains the HTTP response code and headers from the
15784	// server.
15785	googleapi.ServerResponse `json:"-"`
15786
15787	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
15788	// to unconditionally include in API requests. By default, fields with
15789	// empty values are omitted from API requests. However, any non-pointer,
15790	// non-interface field appearing in ForceSendFields will be sent to the
15791	// server regardless of whether the field is empty or not. This may be
15792	// used to include empty fields in Patch requests.
15793	ForceSendFields []string `json:"-"`
15794
15795	// NullFields is a list of field names (e.g. "CreationTimestamp") to
15796	// include in API requests with the JSON null value. By default, fields
15797	// with empty values are omitted from API requests. However, any field
15798	// with an empty value appearing in NullFields will be sent to the
15799	// server as null. It is an error if a field in this list has a
15800	// non-empty value. This may be used to include null fields in Patch
15801	// requests.
15802	NullFields []string `json:"-"`
15803}
15804
15805func (s *Region) MarshalJSON() ([]byte, error) {
15806	type NoMethod Region
15807	raw := NoMethod(*s)
15808	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15809}
15810
15811// RegionAutoscalerList: Contains a list of autoscalers.
15812type RegionAutoscalerList struct {
15813	// Id: [Output Only] Unique identifier for the resource; defined by the
15814	// server.
15815	Id string `json:"id,omitempty"`
15816
15817	// Items: A list of Autoscaler resources.
15818	Items []*Autoscaler `json:"items,omitempty"`
15819
15820	// Kind: Type of resource.
15821	Kind string `json:"kind,omitempty"`
15822
15823	// NextPageToken: [Output Only] This token allows you to get the next
15824	// page of results for list requests. If the number of results is larger
15825	// than maxResults, use the nextPageToken as a value for the query
15826	// parameter pageToken in the next list request. Subsequent list
15827	// requests will have their own nextPageToken to continue paging through
15828	// the results.
15829	NextPageToken string `json:"nextPageToken,omitempty"`
15830
15831	// SelfLink: [Output Only] Server-defined URL for this resource.
15832	SelfLink string `json:"selfLink,omitempty"`
15833
15834	// Warning: [Output Only] Informational warning message.
15835	Warning *RegionAutoscalerListWarning `json:"warning,omitempty"`
15836
15837	// ServerResponse contains the HTTP response code and headers from the
15838	// server.
15839	googleapi.ServerResponse `json:"-"`
15840
15841	// ForceSendFields is a list of field names (e.g. "Id") to
15842	// unconditionally include in API requests. By default, fields with
15843	// empty values are omitted from API requests. However, any non-pointer,
15844	// non-interface field appearing in ForceSendFields will be sent to the
15845	// server regardless of whether the field is empty or not. This may be
15846	// used to include empty fields in Patch requests.
15847	ForceSendFields []string `json:"-"`
15848
15849	// NullFields is a list of field names (e.g. "Id") to include in API
15850	// requests with the JSON null value. By default, fields with empty
15851	// values are omitted from API requests. However, any field with an
15852	// empty value appearing in NullFields will be sent to the server as
15853	// null. It is an error if a field in this list has a non-empty value.
15854	// This may be used to include null fields in Patch requests.
15855	NullFields []string `json:"-"`
15856}
15857
15858func (s *RegionAutoscalerList) MarshalJSON() ([]byte, error) {
15859	type NoMethod RegionAutoscalerList
15860	raw := NoMethod(*s)
15861	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15862}
15863
15864// RegionAutoscalerListWarning: [Output Only] Informational warning
15865// message.
15866type RegionAutoscalerListWarning struct {
15867	// Code: [Output Only] A warning code, if applicable. For example,
15868	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15869	// the response.
15870	//
15871	// Possible values:
15872	//   "CLEANUP_FAILED"
15873	//   "DEPRECATED_RESOURCE_USED"
15874	//   "DEPRECATED_TYPE_USED"
15875	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15876	//   "EXPERIMENTAL_TYPE_USED"
15877	//   "EXTERNAL_API_WARNING"
15878	//   "FIELD_VALUE_OVERRIDEN"
15879	//   "INJECTED_KERNELS_DEPRECATED"
15880	//   "MISSING_TYPE_DEPENDENCY"
15881	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15882	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15883	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15884	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15885	//   "NEXT_HOP_NOT_RUNNING"
15886	//   "NOT_CRITICAL_ERROR"
15887	//   "NO_RESULTS_ON_PAGE"
15888	//   "REQUIRED_TOS_AGREEMENT"
15889	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15890	//   "RESOURCE_NOT_DELETED"
15891	//   "SCHEMA_VALIDATION_IGNORED"
15892	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15893	//   "UNDECLARED_PROPERTIES"
15894	//   "UNREACHABLE"
15895	Code string `json:"code,omitempty"`
15896
15897	// Data: [Output Only] Metadata about this warning in key: value format.
15898	// For example:
15899	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15900	Data []*RegionAutoscalerListWarningData `json:"data,omitempty"`
15901
15902	// Message: [Output Only] A human-readable description of the warning
15903	// code.
15904	Message string `json:"message,omitempty"`
15905
15906	// ForceSendFields is a list of field names (e.g. "Code") to
15907	// unconditionally include in API requests. By default, fields with
15908	// empty values are omitted from API requests. However, any non-pointer,
15909	// non-interface field appearing in ForceSendFields will be sent to the
15910	// server regardless of whether the field is empty or not. This may be
15911	// used to include empty fields in Patch requests.
15912	ForceSendFields []string `json:"-"`
15913
15914	// NullFields is a list of field names (e.g. "Code") to include in API
15915	// requests with the JSON null value. By default, fields with empty
15916	// values are omitted from API requests. However, any field with an
15917	// empty value appearing in NullFields will be sent to the server as
15918	// null. It is an error if a field in this list has a non-empty value.
15919	// This may be used to include null fields in Patch requests.
15920	NullFields []string `json:"-"`
15921}
15922
15923func (s *RegionAutoscalerListWarning) MarshalJSON() ([]byte, error) {
15924	type NoMethod RegionAutoscalerListWarning
15925	raw := NoMethod(*s)
15926	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15927}
15928
15929type RegionAutoscalerListWarningData struct {
15930	// Key: [Output Only] A key that provides more detail on the warning
15931	// being returned. For example, for warnings where there are no results
15932	// in a list request for a particular zone, this key might be scope and
15933	// the key value might be the zone name. Other examples might be a key
15934	// indicating a deprecated resource and a suggested replacement, or a
15935	// warning about invalid network settings (for example, if an instance
15936	// attempts to perform IP forwarding but is not enabled for IP
15937	// forwarding).
15938	Key string `json:"key,omitempty"`
15939
15940	// Value: [Output Only] A warning data value corresponding to the key.
15941	Value string `json:"value,omitempty"`
15942
15943	// ForceSendFields is a list of field names (e.g. "Key") to
15944	// unconditionally include in API requests. By default, fields with
15945	// empty values are omitted from API requests. However, any non-pointer,
15946	// non-interface field appearing in ForceSendFields will be sent to the
15947	// server regardless of whether the field is empty or not. This may be
15948	// used to include empty fields in Patch requests.
15949	ForceSendFields []string `json:"-"`
15950
15951	// NullFields is a list of field names (e.g. "Key") to include in API
15952	// requests with the JSON null value. By default, fields with empty
15953	// values are omitted from API requests. However, any field with an
15954	// empty value appearing in NullFields will be sent to the server as
15955	// null. It is an error if a field in this list has a non-empty value.
15956	// This may be used to include null fields in Patch requests.
15957	NullFields []string `json:"-"`
15958}
15959
15960func (s *RegionAutoscalerListWarningData) MarshalJSON() ([]byte, error) {
15961	type NoMethod RegionAutoscalerListWarningData
15962	raw := NoMethod(*s)
15963	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15964}
15965
15966// RegionInstanceGroupList: Contains a list of InstanceGroup resources.
15967type RegionInstanceGroupList struct {
15968	// Id: [Output Only] Unique identifier for the resource; defined by the
15969	// server.
15970	Id string `json:"id,omitempty"`
15971
15972	// Items: A list of InstanceGroup resources.
15973	Items []*InstanceGroup `json:"items,omitempty"`
15974
15975	// Kind: The resource type.
15976	Kind string `json:"kind,omitempty"`
15977
15978	// NextPageToken: [Output Only] This token allows you to get the next
15979	// page of results for list requests. If the number of results is larger
15980	// than maxResults, use the nextPageToken as a value for the query
15981	// parameter pageToken in the next list request. Subsequent list
15982	// requests will have their own nextPageToken to continue paging through
15983	// the results.
15984	NextPageToken string `json:"nextPageToken,omitempty"`
15985
15986	// SelfLink: [Output Only] Server-defined URL for this resource.
15987	SelfLink string `json:"selfLink,omitempty"`
15988
15989	// Warning: [Output Only] Informational warning message.
15990	Warning *RegionInstanceGroupListWarning `json:"warning,omitempty"`
15991
15992	// ServerResponse contains the HTTP response code and headers from the
15993	// server.
15994	googleapi.ServerResponse `json:"-"`
15995
15996	// ForceSendFields is a list of field names (e.g. "Id") to
15997	// unconditionally include in API requests. By default, fields with
15998	// empty values are omitted from API requests. However, any non-pointer,
15999	// non-interface field appearing in ForceSendFields will be sent to the
16000	// server regardless of whether the field is empty or not. This may be
16001	// used to include empty fields in Patch requests.
16002	ForceSendFields []string `json:"-"`
16003
16004	// NullFields is a list of field names (e.g. "Id") to include in API
16005	// requests with the JSON null value. By default, fields with empty
16006	// values are omitted from API requests. However, any field with an
16007	// empty value appearing in NullFields will be sent to the server as
16008	// null. It is an error if a field in this list has a non-empty value.
16009	// This may be used to include null fields in Patch requests.
16010	NullFields []string `json:"-"`
16011}
16012
16013func (s *RegionInstanceGroupList) MarshalJSON() ([]byte, error) {
16014	type NoMethod RegionInstanceGroupList
16015	raw := NoMethod(*s)
16016	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16017}
16018
16019// RegionInstanceGroupListWarning: [Output Only] Informational warning
16020// message.
16021type RegionInstanceGroupListWarning struct {
16022	// Code: [Output Only] A warning code, if applicable. For example,
16023	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16024	// the response.
16025	//
16026	// Possible values:
16027	//   "CLEANUP_FAILED"
16028	//   "DEPRECATED_RESOURCE_USED"
16029	//   "DEPRECATED_TYPE_USED"
16030	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16031	//   "EXPERIMENTAL_TYPE_USED"
16032	//   "EXTERNAL_API_WARNING"
16033	//   "FIELD_VALUE_OVERRIDEN"
16034	//   "INJECTED_KERNELS_DEPRECATED"
16035	//   "MISSING_TYPE_DEPENDENCY"
16036	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16037	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16038	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16039	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16040	//   "NEXT_HOP_NOT_RUNNING"
16041	//   "NOT_CRITICAL_ERROR"
16042	//   "NO_RESULTS_ON_PAGE"
16043	//   "REQUIRED_TOS_AGREEMENT"
16044	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16045	//   "RESOURCE_NOT_DELETED"
16046	//   "SCHEMA_VALIDATION_IGNORED"
16047	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16048	//   "UNDECLARED_PROPERTIES"
16049	//   "UNREACHABLE"
16050	Code string `json:"code,omitempty"`
16051
16052	// Data: [Output Only] Metadata about this warning in key: value format.
16053	// For example:
16054	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16055	Data []*RegionInstanceGroupListWarningData `json:"data,omitempty"`
16056
16057	// Message: [Output Only] A human-readable description of the warning
16058	// code.
16059	Message string `json:"message,omitempty"`
16060
16061	// ForceSendFields is a list of field names (e.g. "Code") to
16062	// unconditionally include in API requests. By default, fields with
16063	// empty values are omitted from API requests. However, any non-pointer,
16064	// non-interface field appearing in ForceSendFields will be sent to the
16065	// server regardless of whether the field is empty or not. This may be
16066	// used to include empty fields in Patch requests.
16067	ForceSendFields []string `json:"-"`
16068
16069	// NullFields is a list of field names (e.g. "Code") to include in API
16070	// requests with the JSON null value. By default, fields with empty
16071	// values are omitted from API requests. However, any field with an
16072	// empty value appearing in NullFields will be sent to the server as
16073	// null. It is an error if a field in this list has a non-empty value.
16074	// This may be used to include null fields in Patch requests.
16075	NullFields []string `json:"-"`
16076}
16077
16078func (s *RegionInstanceGroupListWarning) MarshalJSON() ([]byte, error) {
16079	type NoMethod RegionInstanceGroupListWarning
16080	raw := NoMethod(*s)
16081	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16082}
16083
16084type RegionInstanceGroupListWarningData struct {
16085	// Key: [Output Only] A key that provides more detail on the warning
16086	// being returned. For example, for warnings where there are no results
16087	// in a list request for a particular zone, this key might be scope and
16088	// the key value might be the zone name. Other examples might be a key
16089	// indicating a deprecated resource and a suggested replacement, or a
16090	// warning about invalid network settings (for example, if an instance
16091	// attempts to perform IP forwarding but is not enabled for IP
16092	// forwarding).
16093	Key string `json:"key,omitempty"`
16094
16095	// Value: [Output Only] A warning data value corresponding to the key.
16096	Value string `json:"value,omitempty"`
16097
16098	// ForceSendFields is a list of field names (e.g. "Key") to
16099	// unconditionally include in API requests. By default, fields with
16100	// empty values are omitted from API requests. However, any non-pointer,
16101	// non-interface field appearing in ForceSendFields will be sent to the
16102	// server regardless of whether the field is empty or not. This may be
16103	// used to include empty fields in Patch requests.
16104	ForceSendFields []string `json:"-"`
16105
16106	// NullFields is a list of field names (e.g. "Key") to include in API
16107	// requests with the JSON null value. By default, fields with empty
16108	// values are omitted from API requests. However, any field with an
16109	// empty value appearing in NullFields will be sent to the server as
16110	// null. It is an error if a field in this list has a non-empty value.
16111	// This may be used to include null fields in Patch requests.
16112	NullFields []string `json:"-"`
16113}
16114
16115func (s *RegionInstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
16116	type NoMethod RegionInstanceGroupListWarningData
16117	raw := NoMethod(*s)
16118	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16119}
16120
16121// RegionInstanceGroupManagerList: Contains a list of managed instance
16122// groups.
16123type RegionInstanceGroupManagerList struct {
16124	// Id: [Output Only] Unique identifier for the resource; defined by the
16125	// server.
16126	Id string `json:"id,omitempty"`
16127
16128	// Items: A list of InstanceGroupManager resources.
16129	Items []*InstanceGroupManager `json:"items,omitempty"`
16130
16131	// Kind: [Output Only] The resource type, which is always
16132	// compute#instanceGroupManagerList for a list of managed instance
16133	// groups that exist in th regional scope.
16134	Kind string `json:"kind,omitempty"`
16135
16136	// NextPageToken: [Output Only] This token allows you to get the next
16137	// page of results for list requests. If the number of results is larger
16138	// than maxResults, use the nextPageToken as a value for the query
16139	// parameter pageToken in the next list request. Subsequent list
16140	// requests will have their own nextPageToken to continue paging through
16141	// the results.
16142	NextPageToken string `json:"nextPageToken,omitempty"`
16143
16144	// SelfLink: [Output Only] Server-defined URL for this resource.
16145	SelfLink string `json:"selfLink,omitempty"`
16146
16147	// Warning: [Output Only] Informational warning message.
16148	Warning *RegionInstanceGroupManagerListWarning `json:"warning,omitempty"`
16149
16150	// ServerResponse contains the HTTP response code and headers from the
16151	// server.
16152	googleapi.ServerResponse `json:"-"`
16153
16154	// ForceSendFields is a list of field names (e.g. "Id") to
16155	// unconditionally include in API requests. By default, fields with
16156	// empty values are omitted from API requests. However, any non-pointer,
16157	// non-interface field appearing in ForceSendFields will be sent to the
16158	// server regardless of whether the field is empty or not. This may be
16159	// used to include empty fields in Patch requests.
16160	ForceSendFields []string `json:"-"`
16161
16162	// NullFields is a list of field names (e.g. "Id") to include in API
16163	// requests with the JSON null value. By default, fields with empty
16164	// values are omitted from API requests. However, any field with an
16165	// empty value appearing in NullFields will be sent to the server as
16166	// null. It is an error if a field in this list has a non-empty value.
16167	// This may be used to include null fields in Patch requests.
16168	NullFields []string `json:"-"`
16169}
16170
16171func (s *RegionInstanceGroupManagerList) MarshalJSON() ([]byte, error) {
16172	type NoMethod RegionInstanceGroupManagerList
16173	raw := NoMethod(*s)
16174	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16175}
16176
16177// RegionInstanceGroupManagerListWarning: [Output Only] Informational
16178// warning message.
16179type RegionInstanceGroupManagerListWarning struct {
16180	// Code: [Output Only] A warning code, if applicable. For example,
16181	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16182	// the response.
16183	//
16184	// Possible values:
16185	//   "CLEANUP_FAILED"
16186	//   "DEPRECATED_RESOURCE_USED"
16187	//   "DEPRECATED_TYPE_USED"
16188	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16189	//   "EXPERIMENTAL_TYPE_USED"
16190	//   "EXTERNAL_API_WARNING"
16191	//   "FIELD_VALUE_OVERRIDEN"
16192	//   "INJECTED_KERNELS_DEPRECATED"
16193	//   "MISSING_TYPE_DEPENDENCY"
16194	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16195	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16196	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16197	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16198	//   "NEXT_HOP_NOT_RUNNING"
16199	//   "NOT_CRITICAL_ERROR"
16200	//   "NO_RESULTS_ON_PAGE"
16201	//   "REQUIRED_TOS_AGREEMENT"
16202	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16203	//   "RESOURCE_NOT_DELETED"
16204	//   "SCHEMA_VALIDATION_IGNORED"
16205	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16206	//   "UNDECLARED_PROPERTIES"
16207	//   "UNREACHABLE"
16208	Code string `json:"code,omitempty"`
16209
16210	// Data: [Output Only] Metadata about this warning in key: value format.
16211	// For example:
16212	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16213	Data []*RegionInstanceGroupManagerListWarningData `json:"data,omitempty"`
16214
16215	// Message: [Output Only] A human-readable description of the warning
16216	// code.
16217	Message string `json:"message,omitempty"`
16218
16219	// ForceSendFields is a list of field names (e.g. "Code") to
16220	// unconditionally include in API requests. By default, fields with
16221	// empty values are omitted from API requests. However, any non-pointer,
16222	// non-interface field appearing in ForceSendFields will be sent to the
16223	// server regardless of whether the field is empty or not. This may be
16224	// used to include empty fields in Patch requests.
16225	ForceSendFields []string `json:"-"`
16226
16227	// NullFields is a list of field names (e.g. "Code") to include in API
16228	// requests with the JSON null value. By default, fields with empty
16229	// values are omitted from API requests. However, any field with an
16230	// empty value appearing in NullFields will be sent to the server as
16231	// null. It is an error if a field in this list has a non-empty value.
16232	// This may be used to include null fields in Patch requests.
16233	NullFields []string `json:"-"`
16234}
16235
16236func (s *RegionInstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
16237	type NoMethod RegionInstanceGroupManagerListWarning
16238	raw := NoMethod(*s)
16239	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16240}
16241
16242type RegionInstanceGroupManagerListWarningData struct {
16243	// Key: [Output Only] A key that provides more detail on the warning
16244	// being returned. For example, for warnings where there are no results
16245	// in a list request for a particular zone, this key might be scope and
16246	// the key value might be the zone name. Other examples might be a key
16247	// indicating a deprecated resource and a suggested replacement, or a
16248	// warning about invalid network settings (for example, if an instance
16249	// attempts to perform IP forwarding but is not enabled for IP
16250	// forwarding).
16251	Key string `json:"key,omitempty"`
16252
16253	// Value: [Output Only] A warning data value corresponding to the key.
16254	Value string `json:"value,omitempty"`
16255
16256	// ForceSendFields is a list of field names (e.g. "Key") to
16257	// unconditionally include in API requests. By default, fields with
16258	// empty values are omitted from API requests. However, any non-pointer,
16259	// non-interface field appearing in ForceSendFields will be sent to the
16260	// server regardless of whether the field is empty or not. This may be
16261	// used to include empty fields in Patch requests.
16262	ForceSendFields []string `json:"-"`
16263
16264	// NullFields is a list of field names (e.g. "Key") to include in API
16265	// requests with the JSON null value. By default, fields with empty
16266	// values are omitted from API requests. However, any field with an
16267	// empty value appearing in NullFields will be sent to the server as
16268	// null. It is an error if a field in this list has a non-empty value.
16269	// This may be used to include null fields in Patch requests.
16270	NullFields []string `json:"-"`
16271}
16272
16273func (s *RegionInstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
16274	type NoMethod RegionInstanceGroupManagerListWarningData
16275	raw := NoMethod(*s)
16276	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16277}
16278
16279type RegionInstanceGroupManagersAbandonInstancesRequest struct {
16280	// Instances: The URLs of one or more instances to abandon. This can be
16281	// a full URL or a partial URL, such as
16282	// zones/[ZONE]/instances/[INSTANCE_NAME].
16283	Instances []string `json:"instances,omitempty"`
16284
16285	// ForceSendFields is a list of field names (e.g. "Instances") to
16286	// unconditionally include in API requests. By default, fields with
16287	// empty values are omitted from API requests. However, any non-pointer,
16288	// non-interface field appearing in ForceSendFields will be sent to the
16289	// server regardless of whether the field is empty or not. This may be
16290	// used to include empty fields in Patch requests.
16291	ForceSendFields []string `json:"-"`
16292
16293	// NullFields is a list of field names (e.g. "Instances") to include in
16294	// API requests with the JSON null value. By default, fields with empty
16295	// values are omitted from API requests. However, any field with an
16296	// empty value appearing in NullFields will be sent to the server as
16297	// null. It is an error if a field in this list has a non-empty value.
16298	// This may be used to include null fields in Patch requests.
16299	NullFields []string `json:"-"`
16300}
16301
16302func (s *RegionInstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
16303	type NoMethod RegionInstanceGroupManagersAbandonInstancesRequest
16304	raw := NoMethod(*s)
16305	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16306}
16307
16308type RegionInstanceGroupManagersDeleteInstancesRequest struct {
16309	// Instances: The URLs of one or more instances to delete. This can be a
16310	// full URL or a partial URL, such as
16311	// zones/[ZONE]/instances/[INSTANCE_NAME].
16312	Instances []string `json:"instances,omitempty"`
16313
16314	// ForceSendFields is a list of field names (e.g. "Instances") to
16315	// unconditionally include in API requests. By default, fields with
16316	// empty values are omitted from API requests. However, any non-pointer,
16317	// non-interface field appearing in ForceSendFields will be sent to the
16318	// server regardless of whether the field is empty or not. This may be
16319	// used to include empty fields in Patch requests.
16320	ForceSendFields []string `json:"-"`
16321
16322	// NullFields is a list of field names (e.g. "Instances") to include in
16323	// API requests with the JSON null value. By default, fields with empty
16324	// values are omitted from API requests. However, any field with an
16325	// empty value appearing in NullFields will be sent to the server as
16326	// null. It is an error if a field in this list has a non-empty value.
16327	// This may be used to include null fields in Patch requests.
16328	NullFields []string `json:"-"`
16329}
16330
16331func (s *RegionInstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
16332	type NoMethod RegionInstanceGroupManagersDeleteInstancesRequest
16333	raw := NoMethod(*s)
16334	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16335}
16336
16337type RegionInstanceGroupManagersListInstancesResponse struct {
16338	// ManagedInstances: A list of managed instances.
16339	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
16340
16341	// ServerResponse contains the HTTP response code and headers from the
16342	// server.
16343	googleapi.ServerResponse `json:"-"`
16344
16345	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
16346	// unconditionally include in API requests. By default, fields with
16347	// empty values are omitted from API requests. However, any non-pointer,
16348	// non-interface field appearing in ForceSendFields will be sent to the
16349	// server regardless of whether the field is empty or not. This may be
16350	// used to include empty fields in Patch requests.
16351	ForceSendFields []string `json:"-"`
16352
16353	// NullFields is a list of field names (e.g. "ManagedInstances") to
16354	// include in API requests with the JSON null value. By default, fields
16355	// with empty values are omitted from API requests. However, any field
16356	// with an empty value appearing in NullFields will be sent to the
16357	// server as null. It is an error if a field in this list has a
16358	// non-empty value. This may be used to include null fields in Patch
16359	// requests.
16360	NullFields []string `json:"-"`
16361}
16362
16363func (s *RegionInstanceGroupManagersListInstancesResponse) MarshalJSON() ([]byte, error) {
16364	type NoMethod RegionInstanceGroupManagersListInstancesResponse
16365	raw := NoMethod(*s)
16366	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16367}
16368
16369type RegionInstanceGroupManagersRecreateRequest struct {
16370	// Instances: The URLs of one or more instances to recreate. This can be
16371	// a full URL or a partial URL, such as
16372	// zones/[ZONE]/instances/[INSTANCE_NAME].
16373	Instances []string `json:"instances,omitempty"`
16374
16375	// ForceSendFields is a list of field names (e.g. "Instances") to
16376	// unconditionally include in API requests. By default, fields with
16377	// empty values are omitted from API requests. However, any non-pointer,
16378	// non-interface field appearing in ForceSendFields will be sent to the
16379	// server regardless of whether the field is empty or not. This may be
16380	// used to include empty fields in Patch requests.
16381	ForceSendFields []string `json:"-"`
16382
16383	// NullFields is a list of field names (e.g. "Instances") to include in
16384	// API requests with the JSON null value. By default, fields with empty
16385	// values are omitted from API requests. However, any field with an
16386	// empty value appearing in NullFields will be sent to the server as
16387	// null. It is an error if a field in this list has a non-empty value.
16388	// This may be used to include null fields in Patch requests.
16389	NullFields []string `json:"-"`
16390}
16391
16392func (s *RegionInstanceGroupManagersRecreateRequest) MarshalJSON() ([]byte, error) {
16393	type NoMethod RegionInstanceGroupManagersRecreateRequest
16394	raw := NoMethod(*s)
16395	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16396}
16397
16398type RegionInstanceGroupManagersSetTargetPoolsRequest struct {
16399	// Fingerprint: Fingerprint of the target pools information, which is a
16400	// hash of the contents. This field is used for optimistic locking when
16401	// you update the target pool entries. This field is optional.
16402	Fingerprint string `json:"fingerprint,omitempty"`
16403
16404	// TargetPools: The URL of all TargetPool resources to which instances
16405	// in the instanceGroup field are added. The target pools automatically
16406	// apply to all of the instances in the managed instance group.
16407	TargetPools []string `json:"targetPools,omitempty"`
16408
16409	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
16410	// unconditionally include in API requests. By default, fields with
16411	// empty values are omitted from API requests. However, any non-pointer,
16412	// non-interface field appearing in ForceSendFields will be sent to the
16413	// server regardless of whether the field is empty or not. This may be
16414	// used to include empty fields in Patch requests.
16415	ForceSendFields []string `json:"-"`
16416
16417	// NullFields is a list of field names (e.g. "Fingerprint") to include
16418	// in API requests with the JSON null value. By default, fields with
16419	// empty values are omitted from API requests. However, any field with
16420	// an empty value appearing in NullFields will be sent to the server as
16421	// null. It is an error if a field in this list has a non-empty value.
16422	// This may be used to include null fields in Patch requests.
16423	NullFields []string `json:"-"`
16424}
16425
16426func (s *RegionInstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
16427	type NoMethod RegionInstanceGroupManagersSetTargetPoolsRequest
16428	raw := NoMethod(*s)
16429	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16430}
16431
16432type RegionInstanceGroupManagersSetTemplateRequest struct {
16433	// InstanceTemplate: URL of the InstanceTemplate resource from which all
16434	// new instances will be created.
16435	InstanceTemplate string `json:"instanceTemplate,omitempty"`
16436
16437	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
16438	// unconditionally include in API requests. By default, fields with
16439	// empty values are omitted from API requests. However, any non-pointer,
16440	// non-interface field appearing in ForceSendFields will be sent to the
16441	// server regardless of whether the field is empty or not. This may be
16442	// used to include empty fields in Patch requests.
16443	ForceSendFields []string `json:"-"`
16444
16445	// NullFields is a list of field names (e.g. "InstanceTemplate") to
16446	// include in API requests with the JSON null value. By default, fields
16447	// with empty values are omitted from API requests. However, any field
16448	// with an empty value appearing in NullFields will be sent to the
16449	// server as null. It is an error if a field in this list has a
16450	// non-empty value. This may be used to include null fields in Patch
16451	// requests.
16452	NullFields []string `json:"-"`
16453}
16454
16455func (s *RegionInstanceGroupManagersSetTemplateRequest) MarshalJSON() ([]byte, error) {
16456	type NoMethod RegionInstanceGroupManagersSetTemplateRequest
16457	raw := NoMethod(*s)
16458	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16459}
16460
16461type RegionInstanceGroupsListInstances struct {
16462	// Id: [Output Only] Unique identifier for the resource; defined by the
16463	// server.
16464	Id string `json:"id,omitempty"`
16465
16466	// Items: A list of InstanceWithNamedPorts resources.
16467	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
16468
16469	// Kind: The resource type.
16470	Kind string `json:"kind,omitempty"`
16471
16472	// NextPageToken: [Output Only] This token allows you to get the next
16473	// page of results for list requests. If the number of results is larger
16474	// than maxResults, use the nextPageToken as a value for the query
16475	// parameter pageToken in the next list request. Subsequent list
16476	// requests will have their own nextPageToken to continue paging through
16477	// the results.
16478	NextPageToken string `json:"nextPageToken,omitempty"`
16479
16480	// SelfLink: [Output Only] Server-defined URL for this resource.
16481	SelfLink string `json:"selfLink,omitempty"`
16482
16483	// Warning: [Output Only] Informational warning message.
16484	Warning *RegionInstanceGroupsListInstancesWarning `json:"warning,omitempty"`
16485
16486	// ServerResponse contains the HTTP response code and headers from the
16487	// server.
16488	googleapi.ServerResponse `json:"-"`
16489
16490	// ForceSendFields is a list of field names (e.g. "Id") to
16491	// unconditionally include in API requests. By default, fields with
16492	// empty values are omitted from API requests. However, any non-pointer,
16493	// non-interface field appearing in ForceSendFields will be sent to the
16494	// server regardless of whether the field is empty or not. This may be
16495	// used to include empty fields in Patch requests.
16496	ForceSendFields []string `json:"-"`
16497
16498	// NullFields is a list of field names (e.g. "Id") to include in API
16499	// requests with the JSON null value. By default, fields with empty
16500	// values are omitted from API requests. However, any field with an
16501	// empty value appearing in NullFields will be sent to the server as
16502	// null. It is an error if a field in this list has a non-empty value.
16503	// This may be used to include null fields in Patch requests.
16504	NullFields []string `json:"-"`
16505}
16506
16507func (s *RegionInstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
16508	type NoMethod RegionInstanceGroupsListInstances
16509	raw := NoMethod(*s)
16510	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16511}
16512
16513// RegionInstanceGroupsListInstancesWarning: [Output Only] Informational
16514// warning message.
16515type RegionInstanceGroupsListInstancesWarning struct {
16516	// Code: [Output Only] A warning code, if applicable. For example,
16517	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16518	// the response.
16519	//
16520	// Possible values:
16521	//   "CLEANUP_FAILED"
16522	//   "DEPRECATED_RESOURCE_USED"
16523	//   "DEPRECATED_TYPE_USED"
16524	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16525	//   "EXPERIMENTAL_TYPE_USED"
16526	//   "EXTERNAL_API_WARNING"
16527	//   "FIELD_VALUE_OVERRIDEN"
16528	//   "INJECTED_KERNELS_DEPRECATED"
16529	//   "MISSING_TYPE_DEPENDENCY"
16530	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16531	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16532	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16533	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16534	//   "NEXT_HOP_NOT_RUNNING"
16535	//   "NOT_CRITICAL_ERROR"
16536	//   "NO_RESULTS_ON_PAGE"
16537	//   "REQUIRED_TOS_AGREEMENT"
16538	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16539	//   "RESOURCE_NOT_DELETED"
16540	//   "SCHEMA_VALIDATION_IGNORED"
16541	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16542	//   "UNDECLARED_PROPERTIES"
16543	//   "UNREACHABLE"
16544	Code string `json:"code,omitempty"`
16545
16546	// Data: [Output Only] Metadata about this warning in key: value format.
16547	// For example:
16548	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16549	Data []*RegionInstanceGroupsListInstancesWarningData `json:"data,omitempty"`
16550
16551	// Message: [Output Only] A human-readable description of the warning
16552	// code.
16553	Message string `json:"message,omitempty"`
16554
16555	// ForceSendFields is a list of field names (e.g. "Code") to
16556	// unconditionally include in API requests. By default, fields with
16557	// empty values are omitted from API requests. However, any non-pointer,
16558	// non-interface field appearing in ForceSendFields will be sent to the
16559	// server regardless of whether the field is empty or not. This may be
16560	// used to include empty fields in Patch requests.
16561	ForceSendFields []string `json:"-"`
16562
16563	// NullFields is a list of field names (e.g. "Code") to include in API
16564	// requests with the JSON null value. By default, fields with empty
16565	// values are omitted from API requests. However, any field with an
16566	// empty value appearing in NullFields will be sent to the server as
16567	// null. It is an error if a field in this list has a non-empty value.
16568	// This may be used to include null fields in Patch requests.
16569	NullFields []string `json:"-"`
16570}
16571
16572func (s *RegionInstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
16573	type NoMethod RegionInstanceGroupsListInstancesWarning
16574	raw := NoMethod(*s)
16575	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16576}
16577
16578type RegionInstanceGroupsListInstancesWarningData struct {
16579	// Key: [Output Only] A key that provides more detail on the warning
16580	// being returned. For example, for warnings where there are no results
16581	// in a list request for a particular zone, this key might be scope and
16582	// the key value might be the zone name. Other examples might be a key
16583	// indicating a deprecated resource and a suggested replacement, or a
16584	// warning about invalid network settings (for example, if an instance
16585	// attempts to perform IP forwarding but is not enabled for IP
16586	// forwarding).
16587	Key string `json:"key,omitempty"`
16588
16589	// Value: [Output Only] A warning data value corresponding to the key.
16590	Value string `json:"value,omitempty"`
16591
16592	// ForceSendFields is a list of field names (e.g. "Key") to
16593	// unconditionally include in API requests. By default, fields with
16594	// empty values are omitted from API requests. However, any non-pointer,
16595	// non-interface field appearing in ForceSendFields will be sent to the
16596	// server regardless of whether the field is empty or not. This may be
16597	// used to include empty fields in Patch requests.
16598	ForceSendFields []string `json:"-"`
16599
16600	// NullFields is a list of field names (e.g. "Key") to include in API
16601	// requests with the JSON null value. By default, fields with empty
16602	// values are omitted from API requests. However, any field with an
16603	// empty value appearing in NullFields will be sent to the server as
16604	// null. It is an error if a field in this list has a non-empty value.
16605	// This may be used to include null fields in Patch requests.
16606	NullFields []string `json:"-"`
16607}
16608
16609func (s *RegionInstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
16610	type NoMethod RegionInstanceGroupsListInstancesWarningData
16611	raw := NoMethod(*s)
16612	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16613}
16614
16615type RegionInstanceGroupsListInstancesRequest struct {
16616	// InstanceState: Instances in which state should be returned. Valid
16617	// options are: 'ALL', 'RUNNING'. By default, it lists all instances.
16618	//
16619	// Possible values:
16620	//   "ALL"
16621	//   "RUNNING"
16622	InstanceState string `json:"instanceState,omitempty"`
16623
16624	// PortName: Name of port user is interested in. It is optional. If it
16625	// is set, only information about this ports will be returned. If it is
16626	// not set, all the named ports will be returned. Always lists all
16627	// instances.
16628	PortName string `json:"portName,omitempty"`
16629
16630	// ForceSendFields is a list of field names (e.g. "InstanceState") to
16631	// unconditionally include in API requests. By default, fields with
16632	// empty values are omitted from API requests. However, any non-pointer,
16633	// non-interface field appearing in ForceSendFields will be sent to the
16634	// server regardless of whether the field is empty or not. This may be
16635	// used to include empty fields in Patch requests.
16636	ForceSendFields []string `json:"-"`
16637
16638	// NullFields is a list of field names (e.g. "InstanceState") to include
16639	// in API requests with the JSON null value. By default, fields with
16640	// empty values are omitted from API requests. However, any field with
16641	// an empty value appearing in NullFields will be sent to the server as
16642	// null. It is an error if a field in this list has a non-empty value.
16643	// This may be used to include null fields in Patch requests.
16644	NullFields []string `json:"-"`
16645}
16646
16647func (s *RegionInstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
16648	type NoMethod RegionInstanceGroupsListInstancesRequest
16649	raw := NoMethod(*s)
16650	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16651}
16652
16653type RegionInstanceGroupsSetNamedPortsRequest struct {
16654	// Fingerprint: The fingerprint of the named ports information for this
16655	// instance group. Use this optional property to prevent conflicts when
16656	// multiple users change the named ports settings concurrently. Obtain
16657	// the fingerprint with the instanceGroups.get method. Then, include the
16658	// fingerprint in your request to ensure that you do not overwrite
16659	// changes that were applied from another concurrent request.
16660	Fingerprint string `json:"fingerprint,omitempty"`
16661
16662	// NamedPorts: The list of named ports to set for this instance group.
16663	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
16664
16665	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
16666	// unconditionally include in API requests. By default, fields with
16667	// empty values are omitted from API requests. However, any non-pointer,
16668	// non-interface field appearing in ForceSendFields will be sent to the
16669	// server regardless of whether the field is empty or not. This may be
16670	// used to include empty fields in Patch requests.
16671	ForceSendFields []string `json:"-"`
16672
16673	// NullFields is a list of field names (e.g. "Fingerprint") to include
16674	// in API requests with the JSON null value. By default, fields with
16675	// empty values are omitted from API requests. However, any field with
16676	// an empty value appearing in NullFields will be sent to the server as
16677	// null. It is an error if a field in this list has a non-empty value.
16678	// This may be used to include null fields in Patch requests.
16679	NullFields []string `json:"-"`
16680}
16681
16682func (s *RegionInstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
16683	type NoMethod RegionInstanceGroupsSetNamedPortsRequest
16684	raw := NoMethod(*s)
16685	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16686}
16687
16688// RegionList: Contains a list of region resources.
16689type RegionList struct {
16690	// Id: [Output Only] Unique identifier for the resource; defined by the
16691	// server.
16692	Id string `json:"id,omitempty"`
16693
16694	// Items: A list of Region resources.
16695	Items []*Region `json:"items,omitempty"`
16696
16697	// Kind: [Output Only] Type of resource. Always compute#regionList for
16698	// lists of regions.
16699	Kind string `json:"kind,omitempty"`
16700
16701	// NextPageToken: [Output Only] This token allows you to get the next
16702	// page of results for list requests. If the number of results is larger
16703	// than maxResults, use the nextPageToken as a value for the query
16704	// parameter pageToken in the next list request. Subsequent list
16705	// requests will have their own nextPageToken to continue paging through
16706	// the results.
16707	NextPageToken string `json:"nextPageToken,omitempty"`
16708
16709	// SelfLink: [Output Only] Server-defined URL for this resource.
16710	SelfLink string `json:"selfLink,omitempty"`
16711
16712	// Warning: [Output Only] Informational warning message.
16713	Warning *RegionListWarning `json:"warning,omitempty"`
16714
16715	// ServerResponse contains the HTTP response code and headers from the
16716	// server.
16717	googleapi.ServerResponse `json:"-"`
16718
16719	// ForceSendFields is a list of field names (e.g. "Id") to
16720	// unconditionally include in API requests. By default, fields with
16721	// empty values are omitted from API requests. However, any non-pointer,
16722	// non-interface field appearing in ForceSendFields will be sent to the
16723	// server regardless of whether the field is empty or not. This may be
16724	// used to include empty fields in Patch requests.
16725	ForceSendFields []string `json:"-"`
16726
16727	// NullFields is a list of field names (e.g. "Id") to include in API
16728	// requests with the JSON null value. By default, fields with empty
16729	// values are omitted from API requests. However, any field with an
16730	// empty value appearing in NullFields will be sent to the server as
16731	// null. It is an error if a field in this list has a non-empty value.
16732	// This may be used to include null fields in Patch requests.
16733	NullFields []string `json:"-"`
16734}
16735
16736func (s *RegionList) MarshalJSON() ([]byte, error) {
16737	type NoMethod RegionList
16738	raw := NoMethod(*s)
16739	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16740}
16741
16742// RegionListWarning: [Output Only] Informational warning message.
16743type RegionListWarning struct {
16744	// Code: [Output Only] A warning code, if applicable. For example,
16745	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16746	// the response.
16747	//
16748	// Possible values:
16749	//   "CLEANUP_FAILED"
16750	//   "DEPRECATED_RESOURCE_USED"
16751	//   "DEPRECATED_TYPE_USED"
16752	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16753	//   "EXPERIMENTAL_TYPE_USED"
16754	//   "EXTERNAL_API_WARNING"
16755	//   "FIELD_VALUE_OVERRIDEN"
16756	//   "INJECTED_KERNELS_DEPRECATED"
16757	//   "MISSING_TYPE_DEPENDENCY"
16758	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16759	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16760	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16761	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16762	//   "NEXT_HOP_NOT_RUNNING"
16763	//   "NOT_CRITICAL_ERROR"
16764	//   "NO_RESULTS_ON_PAGE"
16765	//   "REQUIRED_TOS_AGREEMENT"
16766	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16767	//   "RESOURCE_NOT_DELETED"
16768	//   "SCHEMA_VALIDATION_IGNORED"
16769	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16770	//   "UNDECLARED_PROPERTIES"
16771	//   "UNREACHABLE"
16772	Code string `json:"code,omitempty"`
16773
16774	// Data: [Output Only] Metadata about this warning in key: value format.
16775	// For example:
16776	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16777	Data []*RegionListWarningData `json:"data,omitempty"`
16778
16779	// Message: [Output Only] A human-readable description of the warning
16780	// code.
16781	Message string `json:"message,omitempty"`
16782
16783	// ForceSendFields is a list of field names (e.g. "Code") to
16784	// unconditionally include in API requests. By default, fields with
16785	// empty values are omitted from API requests. However, any non-pointer,
16786	// non-interface field appearing in ForceSendFields will be sent to the
16787	// server regardless of whether the field is empty or not. This may be
16788	// used to include empty fields in Patch requests.
16789	ForceSendFields []string `json:"-"`
16790
16791	// NullFields is a list of field names (e.g. "Code") to include in API
16792	// requests with the JSON null value. By default, fields with empty
16793	// values are omitted from API requests. However, any field with an
16794	// empty value appearing in NullFields will be sent to the server as
16795	// null. It is an error if a field in this list has a non-empty value.
16796	// This may be used to include null fields in Patch requests.
16797	NullFields []string `json:"-"`
16798}
16799
16800func (s *RegionListWarning) MarshalJSON() ([]byte, error) {
16801	type NoMethod RegionListWarning
16802	raw := NoMethod(*s)
16803	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16804}
16805
16806type RegionListWarningData struct {
16807	// Key: [Output Only] A key that provides more detail on the warning
16808	// being returned. For example, for warnings where there are no results
16809	// in a list request for a particular zone, this key might be scope and
16810	// the key value might be the zone name. Other examples might be a key
16811	// indicating a deprecated resource and a suggested replacement, or a
16812	// warning about invalid network settings (for example, if an instance
16813	// attempts to perform IP forwarding but is not enabled for IP
16814	// forwarding).
16815	Key string `json:"key,omitempty"`
16816
16817	// Value: [Output Only] A warning data value corresponding to the key.
16818	Value string `json:"value,omitempty"`
16819
16820	// ForceSendFields is a list of field names (e.g. "Key") to
16821	// unconditionally include in API requests. By default, fields with
16822	// empty values are omitted from API requests. However, any non-pointer,
16823	// non-interface field appearing in ForceSendFields will be sent to the
16824	// server regardless of whether the field is empty or not. This may be
16825	// used to include empty fields in Patch requests.
16826	ForceSendFields []string `json:"-"`
16827
16828	// NullFields is a list of field names (e.g. "Key") to include in API
16829	// requests with the JSON null value. By default, fields with empty
16830	// values are omitted from API requests. However, any field with an
16831	// empty value appearing in NullFields will be sent to the server as
16832	// null. It is an error if a field in this list has a non-empty value.
16833	// This may be used to include null fields in Patch requests.
16834	NullFields []string `json:"-"`
16835}
16836
16837func (s *RegionListWarningData) MarshalJSON() ([]byte, error) {
16838	type NoMethod RegionListWarningData
16839	raw := NoMethod(*s)
16840	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16841}
16842
16843// ResourceCommitment: Commitment for a particular resource (a
16844// Commitment is composed of one or more of these).
16845type ResourceCommitment struct {
16846	// Amount: The amount of the resource purchased (in a type-dependent
16847	// unit, such as bytes). For vCPUs, this can just be an integer. For
16848	// memory, this must be provided in MB. Memory must be a multiple of 256
16849	// MB, with up to 6.5GB of memory per every vCPU.
16850	Amount int64 `json:"amount,omitempty,string"`
16851
16852	// Type: Type of resource for which this commitment applies. Possible
16853	// values are VCPU and MEMORY
16854	//
16855	// Possible values:
16856	//   "MEMORY"
16857	//   "UNSPECIFIED"
16858	//   "VCPU"
16859	Type string `json:"type,omitempty"`
16860
16861	// ForceSendFields is a list of field names (e.g. "Amount") to
16862	// unconditionally include in API requests. By default, fields with
16863	// empty values are omitted from API requests. However, any non-pointer,
16864	// non-interface field appearing in ForceSendFields will be sent to the
16865	// server regardless of whether the field is empty or not. This may be
16866	// used to include empty fields in Patch requests.
16867	ForceSendFields []string `json:"-"`
16868
16869	// NullFields is a list of field names (e.g. "Amount") to include in API
16870	// requests with the JSON null value. By default, fields with empty
16871	// values are omitted from API requests. However, any field with an
16872	// empty value appearing in NullFields will be sent to the server as
16873	// null. It is an error if a field in this list has a non-empty value.
16874	// This may be used to include null fields in Patch requests.
16875	NullFields []string `json:"-"`
16876}
16877
16878func (s *ResourceCommitment) MarshalJSON() ([]byte, error) {
16879	type NoMethod ResourceCommitment
16880	raw := NoMethod(*s)
16881	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16882}
16883
16884type ResourceGroupReference struct {
16885	// Group: A URI referencing one of the instance groups listed in the
16886	// backend service.
16887	Group string `json:"group,omitempty"`
16888
16889	// ForceSendFields is a list of field names (e.g. "Group") to
16890	// unconditionally include in API requests. By default, fields with
16891	// empty values are omitted from API requests. However, any non-pointer,
16892	// non-interface field appearing in ForceSendFields will be sent to the
16893	// server regardless of whether the field is empty or not. This may be
16894	// used to include empty fields in Patch requests.
16895	ForceSendFields []string `json:"-"`
16896
16897	// NullFields is a list of field names (e.g. "Group") to include in API
16898	// requests with the JSON null value. By default, fields with empty
16899	// values are omitted from API requests. However, any field with an
16900	// empty value appearing in NullFields will be sent to the server as
16901	// null. It is an error if a field in this list has a non-empty value.
16902	// This may be used to include null fields in Patch requests.
16903	NullFields []string `json:"-"`
16904}
16905
16906func (s *ResourceGroupReference) MarshalJSON() ([]byte, error) {
16907	type NoMethod ResourceGroupReference
16908	raw := NoMethod(*s)
16909	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16910}
16911
16912// Route: Represents a Route resource. A route specifies how certain
16913// packets should be handled by the network. Routes are associated with
16914// instances by tags and the set of routes for a particular instance is
16915// called its routing table.
16916//
16917// For each packet leaving an instance, the system searches that
16918// instance's routing table for a single best matching route. Routes
16919// match packets by destination IP address, preferring smaller or more
16920// specific ranges over larger ones. If there is a tie, the system
16921// selects the route with the smallest priority value. If there is still
16922// a tie, it uses the layer three and four packet headers to select just
16923// one of the remaining matching routes. The packet is then forwarded as
16924// specified by the nextHop field of the winning route - either to
16925// another instance destination, an instance gateway, or a Google
16926// Compute Engine-operated gateway.
16927//
16928// Packets that do not match any route in the sending instance's routing
16929// table are dropped. (== resource_for beta.routes ==) (== resource_for
16930// v1.routes ==)
16931type Route struct {
16932	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
16933	// format.
16934	CreationTimestamp string `json:"creationTimestamp,omitempty"`
16935
16936	// Description: An optional description of this resource. Provide this
16937	// property when you create the resource.
16938	Description string `json:"description,omitempty"`
16939
16940	// DestRange: The destination range of outgoing packets that this route
16941	// applies to. Only IPv4 is supported.
16942	DestRange string `json:"destRange,omitempty"`
16943
16944	// Id: [Output Only] The unique identifier for the resource. This
16945	// identifier is defined by the server.
16946	Id uint64 `json:"id,omitempty,string"`
16947
16948	// Kind: [Output Only] Type of this resource. Always compute#routes for
16949	// Route resources.
16950	Kind string `json:"kind,omitempty"`
16951
16952	// Name: Name of the resource. Provided by the client when the resource
16953	// is created. The name must be 1-63 characters long, and comply with
16954	// RFC1035. Specifically, the name must be 1-63 characters long and
16955	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
16956	// the first character must be a lowercase letter, and all following
16957	// characters must be a dash, lowercase letter, or digit, except the
16958	// last character, which cannot be a dash.
16959	Name string `json:"name,omitempty"`
16960
16961	// Network: Fully-qualified URL of the network that this route applies
16962	// to.
16963	Network string `json:"network,omitempty"`
16964
16965	// NextHopGateway: The URL to a gateway that should handle matching
16966	// packets. You can only specify the internet gateway using a full or
16967	// partial valid URL:
16968	// projects/<project-id>/global/gateways/default-internet-gateway
16969	NextHopGateway string `json:"nextHopGateway,omitempty"`
16970
16971	// NextHopInstance: The URL to an instance that should handle matching
16972	// packets. You can specify this as a full or partial URL. For
16973	// example:
16974	// https://www.googleapis.com/compute/v1/projects/project/zones/
16975	// zone/instances/
16976	NextHopInstance string `json:"nextHopInstance,omitempty"`
16977
16978	// NextHopIp: The network IP address of an instance that should handle
16979	// matching packets. Only IPv4 is supported.
16980	NextHopIp string `json:"nextHopIp,omitempty"`
16981
16982	// NextHopNetwork: The URL of the local network if it should handle
16983	// matching packets.
16984	NextHopNetwork string `json:"nextHopNetwork,omitempty"`
16985
16986	// NextHopPeering: [Output Only] The network peering name that should
16987	// handle matching packets, which should conform to RFC1035.
16988	NextHopPeering string `json:"nextHopPeering,omitempty"`
16989
16990	// NextHopVpnTunnel: The URL to a VpnTunnel that should handle matching
16991	// packets.
16992	NextHopVpnTunnel string `json:"nextHopVpnTunnel,omitempty"`
16993
16994	// Priority: The priority of this route. Priority is used to break ties
16995	// in cases where there is more than one matching route of equal prefix
16996	// length. In the case of two routes with equal prefix length, the one
16997	// with the lowest-numbered priority value wins. Default value is 1000.
16998	// Valid range is 0 through 65535.
16999	Priority int64 `json:"priority,omitempty"`
17000
17001	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
17002	// resource.
17003	SelfLink string `json:"selfLink,omitempty"`
17004
17005	// Tags: A list of instance tags to which this route applies.
17006	Tags []string `json:"tags,omitempty"`
17007
17008	// Warnings: [Output Only] If potential misconfigurations are detected
17009	// for this route, this field will be populated with warning messages.
17010	Warnings []*RouteWarnings `json:"warnings,omitempty"`
17011
17012	// ServerResponse contains the HTTP response code and headers from the
17013	// server.
17014	googleapi.ServerResponse `json:"-"`
17015
17016	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
17017	// to unconditionally include in API requests. By default, fields with
17018	// empty values are omitted from API requests. However, any non-pointer,
17019	// non-interface field appearing in ForceSendFields will be sent to the
17020	// server regardless of whether the field is empty or not. This may be
17021	// used to include empty fields in Patch requests.
17022	ForceSendFields []string `json:"-"`
17023
17024	// NullFields is a list of field names (e.g. "CreationTimestamp") to
17025	// include in API requests with the JSON null value. By default, fields
17026	// with empty values are omitted from API requests. However, any field
17027	// with an empty value appearing in NullFields will be sent to the
17028	// server as null. It is an error if a field in this list has a
17029	// non-empty value. This may be used to include null fields in Patch
17030	// requests.
17031	NullFields []string `json:"-"`
17032}
17033
17034func (s *Route) MarshalJSON() ([]byte, error) {
17035	type NoMethod Route
17036	raw := NoMethod(*s)
17037	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17038}
17039
17040type RouteWarnings struct {
17041	// Code: [Output Only] A warning code, if applicable. For example,
17042	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17043	// the response.
17044	//
17045	// Possible values:
17046	//   "CLEANUP_FAILED"
17047	//   "DEPRECATED_RESOURCE_USED"
17048	//   "DEPRECATED_TYPE_USED"
17049	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17050	//   "EXPERIMENTAL_TYPE_USED"
17051	//   "EXTERNAL_API_WARNING"
17052	//   "FIELD_VALUE_OVERRIDEN"
17053	//   "INJECTED_KERNELS_DEPRECATED"
17054	//   "MISSING_TYPE_DEPENDENCY"
17055	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17056	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17057	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17058	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17059	//   "NEXT_HOP_NOT_RUNNING"
17060	//   "NOT_CRITICAL_ERROR"
17061	//   "NO_RESULTS_ON_PAGE"
17062	//   "REQUIRED_TOS_AGREEMENT"
17063	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17064	//   "RESOURCE_NOT_DELETED"
17065	//   "SCHEMA_VALIDATION_IGNORED"
17066	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17067	//   "UNDECLARED_PROPERTIES"
17068	//   "UNREACHABLE"
17069	Code string `json:"code,omitempty"`
17070
17071	// Data: [Output Only] Metadata about this warning in key: value format.
17072	// For example:
17073	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17074	Data []*RouteWarningsData `json:"data,omitempty"`
17075
17076	// Message: [Output Only] A human-readable description of the warning
17077	// code.
17078	Message string `json:"message,omitempty"`
17079
17080	// ForceSendFields is a list of field names (e.g. "Code") to
17081	// unconditionally include in API requests. By default, fields with
17082	// empty values are omitted from API requests. However, any non-pointer,
17083	// non-interface field appearing in ForceSendFields will be sent to the
17084	// server regardless of whether the field is empty or not. This may be
17085	// used to include empty fields in Patch requests.
17086	ForceSendFields []string `json:"-"`
17087
17088	// NullFields is a list of field names (e.g. "Code") to include in API
17089	// requests with the JSON null value. By default, fields with empty
17090	// values are omitted from API requests. However, any field with an
17091	// empty value appearing in NullFields will be sent to the server as
17092	// null. It is an error if a field in this list has a non-empty value.
17093	// This may be used to include null fields in Patch requests.
17094	NullFields []string `json:"-"`
17095}
17096
17097func (s *RouteWarnings) MarshalJSON() ([]byte, error) {
17098	type NoMethod RouteWarnings
17099	raw := NoMethod(*s)
17100	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17101}
17102
17103type RouteWarningsData struct {
17104	// Key: [Output Only] A key that provides more detail on the warning
17105	// being returned. For example, for warnings where there are no results
17106	// in a list request for a particular zone, this key might be scope and
17107	// the key value might be the zone name. Other examples might be a key
17108	// indicating a deprecated resource and a suggested replacement, or a
17109	// warning about invalid network settings (for example, if an instance
17110	// attempts to perform IP forwarding but is not enabled for IP
17111	// forwarding).
17112	Key string `json:"key,omitempty"`
17113
17114	// Value: [Output Only] A warning data value corresponding to the key.
17115	Value string `json:"value,omitempty"`
17116
17117	// ForceSendFields is a list of field names (e.g. "Key") to
17118	// unconditionally include in API requests. By default, fields with
17119	// empty values are omitted from API requests. However, any non-pointer,
17120	// non-interface field appearing in ForceSendFields will be sent to the
17121	// server regardless of whether the field is empty or not. This may be
17122	// used to include empty fields in Patch requests.
17123	ForceSendFields []string `json:"-"`
17124
17125	// NullFields is a list of field names (e.g. "Key") to include in API
17126	// requests with the JSON null value. By default, fields with empty
17127	// values are omitted from API requests. However, any field with an
17128	// empty value appearing in NullFields will be sent to the server as
17129	// null. It is an error if a field in this list has a non-empty value.
17130	// This may be used to include null fields in Patch requests.
17131	NullFields []string `json:"-"`
17132}
17133
17134func (s *RouteWarningsData) MarshalJSON() ([]byte, error) {
17135	type NoMethod RouteWarningsData
17136	raw := NoMethod(*s)
17137	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17138}
17139
17140// RouteList: Contains a list of Route resources.
17141type RouteList struct {
17142	// Id: [Output Only] Unique identifier for the resource; defined by the
17143	// server.
17144	Id string `json:"id,omitempty"`
17145
17146	// Items: A list of Route resources.
17147	Items []*Route `json:"items,omitempty"`
17148
17149	// Kind: Type of resource.
17150	Kind string `json:"kind,omitempty"`
17151
17152	// NextPageToken: [Output Only] This token allows you to get the next
17153	// page of results for list requests. If the number of results is larger
17154	// than maxResults, use the nextPageToken as a value for the query
17155	// parameter pageToken in the next list request. Subsequent list
17156	// requests will have their own nextPageToken to continue paging through
17157	// the results.
17158	NextPageToken string `json:"nextPageToken,omitempty"`
17159
17160	// SelfLink: [Output Only] Server-defined URL for this resource.
17161	SelfLink string `json:"selfLink,omitempty"`
17162
17163	// Warning: [Output Only] Informational warning message.
17164	Warning *RouteListWarning `json:"warning,omitempty"`
17165
17166	// ServerResponse contains the HTTP response code and headers from the
17167	// server.
17168	googleapi.ServerResponse `json:"-"`
17169
17170	// ForceSendFields is a list of field names (e.g. "Id") to
17171	// unconditionally include in API requests. By default, fields with
17172	// empty values are omitted from API requests. However, any non-pointer,
17173	// non-interface field appearing in ForceSendFields will be sent to the
17174	// server regardless of whether the field is empty or not. This may be
17175	// used to include empty fields in Patch requests.
17176	ForceSendFields []string `json:"-"`
17177
17178	// NullFields is a list of field names (e.g. "Id") to include in API
17179	// requests with the JSON null value. By default, fields with empty
17180	// values are omitted from API requests. However, any field with an
17181	// empty value appearing in NullFields will be sent to the server as
17182	// null. It is an error if a field in this list has a non-empty value.
17183	// This may be used to include null fields in Patch requests.
17184	NullFields []string `json:"-"`
17185}
17186
17187func (s *RouteList) MarshalJSON() ([]byte, error) {
17188	type NoMethod RouteList
17189	raw := NoMethod(*s)
17190	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17191}
17192
17193// RouteListWarning: [Output Only] Informational warning message.
17194type RouteListWarning struct {
17195	// Code: [Output Only] A warning code, if applicable. For example,
17196	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17197	// the response.
17198	//
17199	// Possible values:
17200	//   "CLEANUP_FAILED"
17201	//   "DEPRECATED_RESOURCE_USED"
17202	//   "DEPRECATED_TYPE_USED"
17203	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17204	//   "EXPERIMENTAL_TYPE_USED"
17205	//   "EXTERNAL_API_WARNING"
17206	//   "FIELD_VALUE_OVERRIDEN"
17207	//   "INJECTED_KERNELS_DEPRECATED"
17208	//   "MISSING_TYPE_DEPENDENCY"
17209	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17210	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17211	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17212	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17213	//   "NEXT_HOP_NOT_RUNNING"
17214	//   "NOT_CRITICAL_ERROR"
17215	//   "NO_RESULTS_ON_PAGE"
17216	//   "REQUIRED_TOS_AGREEMENT"
17217	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17218	//   "RESOURCE_NOT_DELETED"
17219	//   "SCHEMA_VALIDATION_IGNORED"
17220	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17221	//   "UNDECLARED_PROPERTIES"
17222	//   "UNREACHABLE"
17223	Code string `json:"code,omitempty"`
17224
17225	// Data: [Output Only] Metadata about this warning in key: value format.
17226	// For example:
17227	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17228	Data []*RouteListWarningData `json:"data,omitempty"`
17229
17230	// Message: [Output Only] A human-readable description of the warning
17231	// code.
17232	Message string `json:"message,omitempty"`
17233
17234	// ForceSendFields is a list of field names (e.g. "Code") to
17235	// unconditionally include in API requests. By default, fields with
17236	// empty values are omitted from API requests. However, any non-pointer,
17237	// non-interface field appearing in ForceSendFields will be sent to the
17238	// server regardless of whether the field is empty or not. This may be
17239	// used to include empty fields in Patch requests.
17240	ForceSendFields []string `json:"-"`
17241
17242	// NullFields is a list of field names (e.g. "Code") to include in API
17243	// requests with the JSON null value. By default, fields with empty
17244	// values are omitted from API requests. However, any field with an
17245	// empty value appearing in NullFields will be sent to the server as
17246	// null. It is an error if a field in this list has a non-empty value.
17247	// This may be used to include null fields in Patch requests.
17248	NullFields []string `json:"-"`
17249}
17250
17251func (s *RouteListWarning) MarshalJSON() ([]byte, error) {
17252	type NoMethod RouteListWarning
17253	raw := NoMethod(*s)
17254	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17255}
17256
17257type RouteListWarningData struct {
17258	// Key: [Output Only] A key that provides more detail on the warning
17259	// being returned. For example, for warnings where there are no results
17260	// in a list request for a particular zone, this key might be scope and
17261	// the key value might be the zone name. Other examples might be a key
17262	// indicating a deprecated resource and a suggested replacement, or a
17263	// warning about invalid network settings (for example, if an instance
17264	// attempts to perform IP forwarding but is not enabled for IP
17265	// forwarding).
17266	Key string `json:"key,omitempty"`
17267
17268	// Value: [Output Only] A warning data value corresponding to the key.
17269	Value string `json:"value,omitempty"`
17270
17271	// ForceSendFields is a list of field names (e.g. "Key") to
17272	// unconditionally include in API requests. By default, fields with
17273	// empty values are omitted from API requests. However, any non-pointer,
17274	// non-interface field appearing in ForceSendFields will be sent to the
17275	// server regardless of whether the field is empty or not. This may be
17276	// used to include empty fields in Patch requests.
17277	ForceSendFields []string `json:"-"`
17278
17279	// NullFields is a list of field names (e.g. "Key") to include in API
17280	// requests with the JSON null value. By default, fields with empty
17281	// values are omitted from API requests. However, any field with an
17282	// empty value appearing in NullFields will be sent to the server as
17283	// null. It is an error if a field in this list has a non-empty value.
17284	// This may be used to include null fields in Patch requests.
17285	NullFields []string `json:"-"`
17286}
17287
17288func (s *RouteListWarningData) MarshalJSON() ([]byte, error) {
17289	type NoMethod RouteListWarningData
17290	raw := NoMethod(*s)
17291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17292}
17293
17294// Router: Router resource.
17295type Router struct {
17296	// Bgp: BGP information specific to this router.
17297	Bgp *RouterBgp `json:"bgp,omitempty"`
17298
17299	// BgpPeers: BGP information that needs to be configured into the
17300	// routing stack to establish the BGP peering. It must specify peer ASN
17301	// and either interface name, IP, or peer IP. Please refer to RFC4273.
17302	BgpPeers []*RouterBgpPeer `json:"bgpPeers,omitempty"`
17303
17304	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
17305	// format.
17306	CreationTimestamp string `json:"creationTimestamp,omitempty"`
17307
17308	// Description: An optional description of this resource. Provide this
17309	// property when you create the resource.
17310	Description string `json:"description,omitempty"`
17311
17312	// Id: [Output Only] The unique identifier for the resource. This
17313	// identifier is defined by the server.
17314	Id uint64 `json:"id,omitempty,string"`
17315
17316	// Interfaces: Router interfaces. Each interface requires either one
17317	// linked resource (e.g. linkedVpnTunnel), or IP address and IP address
17318	// range (e.g. ipRange), or both.
17319	Interfaces []*RouterInterface `json:"interfaces,omitempty"`
17320
17321	// Kind: [Output Only] Type of resource. Always compute#router for
17322	// routers.
17323	Kind string `json:"kind,omitempty"`
17324
17325	// Name: Name of the resource. Provided by the client when the resource
17326	// is created. The name must be 1-63 characters long, and comply with
17327	// RFC1035. Specifically, the name must be 1-63 characters long and
17328	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
17329	// the first character must be a lowercase letter, and all following
17330	// characters must be a dash, lowercase letter, or digit, except the
17331	// last character, which cannot be a dash.
17332	Name string `json:"name,omitempty"`
17333
17334	// Network: URI of the network to which this router belongs.
17335	Network string `json:"network,omitempty"`
17336
17337	// Region: [Output Only] URI of the region where the router resides. You
17338	// must specify this field as part of the HTTP request URL. It is not
17339	// settable as a field in the request body.
17340	Region string `json:"region,omitempty"`
17341
17342	// SelfLink: [Output Only] Server-defined URL for the resource.
17343	SelfLink string `json:"selfLink,omitempty"`
17344
17345	// ServerResponse contains the HTTP response code and headers from the
17346	// server.
17347	googleapi.ServerResponse `json:"-"`
17348
17349	// ForceSendFields is a list of field names (e.g. "Bgp") to
17350	// unconditionally include in API requests. By default, fields with
17351	// empty values are omitted from API requests. However, any non-pointer,
17352	// non-interface field appearing in ForceSendFields will be sent to the
17353	// server regardless of whether the field is empty or not. This may be
17354	// used to include empty fields in Patch requests.
17355	ForceSendFields []string `json:"-"`
17356
17357	// NullFields is a list of field names (e.g. "Bgp") to include in API
17358	// requests with the JSON null value. By default, fields with empty
17359	// values are omitted from API requests. However, any field with an
17360	// empty value appearing in NullFields will be sent to the server as
17361	// null. It is an error if a field in this list has a non-empty value.
17362	// This may be used to include null fields in Patch requests.
17363	NullFields []string `json:"-"`
17364}
17365
17366func (s *Router) MarshalJSON() ([]byte, error) {
17367	type NoMethod Router
17368	raw := NoMethod(*s)
17369	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17370}
17371
17372// RouterAdvertisedIpRange: Description-tagged IP ranges for the router
17373// to advertise.
17374type RouterAdvertisedIpRange struct {
17375	// Description: User-specified description for the IP range.
17376	Description string `json:"description,omitempty"`
17377
17378	// Range: The IP range to advertise. The value must be a CIDR-formatted
17379	// string.
17380	Range string `json:"range,omitempty"`
17381
17382	// ForceSendFields is a list of field names (e.g. "Description") to
17383	// unconditionally include in API requests. By default, fields with
17384	// empty values are omitted from API requests. However, any non-pointer,
17385	// non-interface field appearing in ForceSendFields will be sent to the
17386	// server regardless of whether the field is empty or not. This may be
17387	// used to include empty fields in Patch requests.
17388	ForceSendFields []string `json:"-"`
17389
17390	// NullFields is a list of field names (e.g. "Description") to include
17391	// in API requests with the JSON null value. By default, fields with
17392	// empty values are omitted from API requests. However, any field with
17393	// an empty value appearing in NullFields will be sent to the server as
17394	// null. It is an error if a field in this list has a non-empty value.
17395	// This may be used to include null fields in Patch requests.
17396	NullFields []string `json:"-"`
17397}
17398
17399func (s *RouterAdvertisedIpRange) MarshalJSON() ([]byte, error) {
17400	type NoMethod RouterAdvertisedIpRange
17401	raw := NoMethod(*s)
17402	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17403}
17404
17405// RouterAggregatedList: Contains a list of routers.
17406type RouterAggregatedList struct {
17407	// Id: [Output Only] Unique identifier for the resource; defined by the
17408	// server.
17409	Id string `json:"id,omitempty"`
17410
17411	// Items: A list of Router resources.
17412	Items map[string]RoutersScopedList `json:"items,omitempty"`
17413
17414	// Kind: Type of resource.
17415	Kind string `json:"kind,omitempty"`
17416
17417	// NextPageToken: [Output Only] This token allows you to get the next
17418	// page of results for list requests. If the number of results is larger
17419	// than maxResults, use the nextPageToken as a value for the query
17420	// parameter pageToken in the next list request. Subsequent list
17421	// requests will have their own nextPageToken to continue paging through
17422	// the results.
17423	NextPageToken string `json:"nextPageToken,omitempty"`
17424
17425	// SelfLink: [Output Only] Server-defined URL for this resource.
17426	SelfLink string `json:"selfLink,omitempty"`
17427
17428	// Warning: [Output Only] Informational warning message.
17429	Warning *RouterAggregatedListWarning `json:"warning,omitempty"`
17430
17431	// ServerResponse contains the HTTP response code and headers from the
17432	// server.
17433	googleapi.ServerResponse `json:"-"`
17434
17435	// ForceSendFields is a list of field names (e.g. "Id") to
17436	// unconditionally include in API requests. By default, fields with
17437	// empty values are omitted from API requests. However, any non-pointer,
17438	// non-interface field appearing in ForceSendFields will be sent to the
17439	// server regardless of whether the field is empty or not. This may be
17440	// used to include empty fields in Patch requests.
17441	ForceSendFields []string `json:"-"`
17442
17443	// NullFields is a list of field names (e.g. "Id") to include in API
17444	// requests with the JSON null value. By default, fields with empty
17445	// values are omitted from API requests. However, any field with an
17446	// empty value appearing in NullFields will be sent to the server as
17447	// null. It is an error if a field in this list has a non-empty value.
17448	// This may be used to include null fields in Patch requests.
17449	NullFields []string `json:"-"`
17450}
17451
17452func (s *RouterAggregatedList) MarshalJSON() ([]byte, error) {
17453	type NoMethod RouterAggregatedList
17454	raw := NoMethod(*s)
17455	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17456}
17457
17458// RouterAggregatedListWarning: [Output Only] Informational warning
17459// message.
17460type RouterAggregatedListWarning struct {
17461	// Code: [Output Only] A warning code, if applicable. For example,
17462	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17463	// the response.
17464	//
17465	// Possible values:
17466	//   "CLEANUP_FAILED"
17467	//   "DEPRECATED_RESOURCE_USED"
17468	//   "DEPRECATED_TYPE_USED"
17469	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17470	//   "EXPERIMENTAL_TYPE_USED"
17471	//   "EXTERNAL_API_WARNING"
17472	//   "FIELD_VALUE_OVERRIDEN"
17473	//   "INJECTED_KERNELS_DEPRECATED"
17474	//   "MISSING_TYPE_DEPENDENCY"
17475	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17476	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17477	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17478	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17479	//   "NEXT_HOP_NOT_RUNNING"
17480	//   "NOT_CRITICAL_ERROR"
17481	//   "NO_RESULTS_ON_PAGE"
17482	//   "REQUIRED_TOS_AGREEMENT"
17483	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17484	//   "RESOURCE_NOT_DELETED"
17485	//   "SCHEMA_VALIDATION_IGNORED"
17486	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17487	//   "UNDECLARED_PROPERTIES"
17488	//   "UNREACHABLE"
17489	Code string `json:"code,omitempty"`
17490
17491	// Data: [Output Only] Metadata about this warning in key: value format.
17492	// For example:
17493	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17494	Data []*RouterAggregatedListWarningData `json:"data,omitempty"`
17495
17496	// Message: [Output Only] A human-readable description of the warning
17497	// code.
17498	Message string `json:"message,omitempty"`
17499
17500	// ForceSendFields is a list of field names (e.g. "Code") to
17501	// unconditionally include in API requests. By default, fields with
17502	// empty values are omitted from API requests. However, any non-pointer,
17503	// non-interface field appearing in ForceSendFields will be sent to the
17504	// server regardless of whether the field is empty or not. This may be
17505	// used to include empty fields in Patch requests.
17506	ForceSendFields []string `json:"-"`
17507
17508	// NullFields is a list of field names (e.g. "Code") to include in API
17509	// requests with the JSON null value. By default, fields with empty
17510	// values are omitted from API requests. However, any field with an
17511	// empty value appearing in NullFields will be sent to the server as
17512	// null. It is an error if a field in this list has a non-empty value.
17513	// This may be used to include null fields in Patch requests.
17514	NullFields []string `json:"-"`
17515}
17516
17517func (s *RouterAggregatedListWarning) MarshalJSON() ([]byte, error) {
17518	type NoMethod RouterAggregatedListWarning
17519	raw := NoMethod(*s)
17520	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17521}
17522
17523type RouterAggregatedListWarningData struct {
17524	// Key: [Output Only] A key that provides more detail on the warning
17525	// being returned. For example, for warnings where there are no results
17526	// in a list request for a particular zone, this key might be scope and
17527	// the key value might be the zone name. Other examples might be a key
17528	// indicating a deprecated resource and a suggested replacement, or a
17529	// warning about invalid network settings (for example, if an instance
17530	// attempts to perform IP forwarding but is not enabled for IP
17531	// forwarding).
17532	Key string `json:"key,omitempty"`
17533
17534	// Value: [Output Only] A warning data value corresponding to the key.
17535	Value string `json:"value,omitempty"`
17536
17537	// ForceSendFields is a list of field names (e.g. "Key") to
17538	// unconditionally include in API requests. By default, fields with
17539	// empty values are omitted from API requests. However, any non-pointer,
17540	// non-interface field appearing in ForceSendFields will be sent to the
17541	// server regardless of whether the field is empty or not. This may be
17542	// used to include empty fields in Patch requests.
17543	ForceSendFields []string `json:"-"`
17544
17545	// NullFields is a list of field names (e.g. "Key") to include in API
17546	// requests with the JSON null value. By default, fields with empty
17547	// values are omitted from API requests. However, any field with an
17548	// empty value appearing in NullFields will be sent to the server as
17549	// null. It is an error if a field in this list has a non-empty value.
17550	// This may be used to include null fields in Patch requests.
17551	NullFields []string `json:"-"`
17552}
17553
17554func (s *RouterAggregatedListWarningData) MarshalJSON() ([]byte, error) {
17555	type NoMethod RouterAggregatedListWarningData
17556	raw := NoMethod(*s)
17557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17558}
17559
17560type RouterBgp struct {
17561	// AdvertiseMode: User-specified flag to indicate which mode to use for
17562	// advertisement.
17563	//
17564	// Possible values:
17565	//   "CUSTOM"
17566	//   "DEFAULT"
17567	AdvertiseMode string `json:"advertiseMode,omitempty"`
17568
17569	// AdvertisedGroups: User-specified list of prefix groups to advertise
17570	// in custom mode. This field can only be populated if advertise_mode is
17571	// CUSTOM and is advertised to all peers of the router. These groups
17572	// will be advertised in addition to any specified prefixes. Leave this
17573	// field blank to advertise no custom groups.
17574	//
17575	// Possible values:
17576	//   "ALL_SUBNETS"
17577	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
17578
17579	// AdvertisedIpRanges: User-specified list of individual IP ranges to
17580	// advertise in custom mode. This field can only be populated if
17581	// advertise_mode is CUSTOM and is advertised to all peers of the
17582	// router. These IP ranges will be advertised in addition to any
17583	// specified groups. Leave this field blank to advertise no custom IP
17584	// ranges.
17585	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
17586
17587	// Asn: Local BGP Autonomous System Number (ASN). Must be an RFC6996
17588	// private ASN, either 16-bit or 32-bit. The value will be fixed for
17589	// this router resource. All VPN tunnels that link to this router will
17590	// have the same local ASN.
17591	Asn int64 `json:"asn,omitempty"`
17592
17593	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
17594	// unconditionally include in API requests. By default, fields with
17595	// empty values are omitted from API requests. However, any non-pointer,
17596	// non-interface field appearing in ForceSendFields will be sent to the
17597	// server regardless of whether the field is empty or not. This may be
17598	// used to include empty fields in Patch requests.
17599	ForceSendFields []string `json:"-"`
17600
17601	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
17602	// in API requests with the JSON null value. By default, fields with
17603	// empty values are omitted from API requests. However, any field with
17604	// an empty value appearing in NullFields will be sent to the server as
17605	// null. It is an error if a field in this list has a non-empty value.
17606	// This may be used to include null fields in Patch requests.
17607	NullFields []string `json:"-"`
17608}
17609
17610func (s *RouterBgp) MarshalJSON() ([]byte, error) {
17611	type NoMethod RouterBgp
17612	raw := NoMethod(*s)
17613	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17614}
17615
17616type RouterBgpPeer struct {
17617	// AdvertiseMode: User-specified flag to indicate which mode to use for
17618	// advertisement.
17619	//
17620	// Possible values:
17621	//   "CUSTOM"
17622	//   "DEFAULT"
17623	AdvertiseMode string `json:"advertiseMode,omitempty"`
17624
17625	// AdvertisedGroups: User-specified list of prefix groups to advertise
17626	// in custom mode. This field can only be populated if advertise_mode is
17627	// CUSTOM and overrides the list defined for the router (in Bgp
17628	// message). These groups will be advertised in addition to any
17629	// specified prefixes. Leave this field blank to advertise no custom
17630	// groups.
17631	//
17632	// Possible values:
17633	//   "ALL_SUBNETS"
17634	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
17635
17636	// AdvertisedIpRanges: User-specified list of individual IP ranges to
17637	// advertise in custom mode. This field can only be populated if
17638	// advertise_mode is CUSTOM and overrides the list defined for the
17639	// router (in Bgp message). These IP ranges will be advertised in
17640	// addition to any specified groups. Leave this field blank to advertise
17641	// no custom IP ranges.
17642	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
17643
17644	// AdvertisedRoutePriority: The priority of routes advertised to this
17645	// BGP peer. In the case where there is more than one matching route of
17646	// maximum length, the routes with lowest priority value win.
17647	AdvertisedRoutePriority int64 `json:"advertisedRoutePriority,omitempty"`
17648
17649	// InterfaceName: Name of the interface the BGP peer is associated with.
17650	InterfaceName string `json:"interfaceName,omitempty"`
17651
17652	// IpAddress: IP address of the interface inside Google Cloud Platform.
17653	// Only IPv4 is supported.
17654	IpAddress string `json:"ipAddress,omitempty"`
17655
17656	// Name: Name of this BGP peer. The name must be 1-63 characters long
17657	// and comply with RFC1035.
17658	Name string `json:"name,omitempty"`
17659
17660	// PeerAsn: Peer BGP Autonomous System Number (ASN). For VPN use case,
17661	// this value can be different for every tunnel.
17662	PeerAsn int64 `json:"peerAsn,omitempty"`
17663
17664	// PeerIpAddress: IP address of the BGP interface outside Google cloud.
17665	// Only IPv4 is supported.
17666	PeerIpAddress string `json:"peerIpAddress,omitempty"`
17667
17668	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
17669	// unconditionally include in API requests. By default, fields with
17670	// empty values are omitted from API requests. However, any non-pointer,
17671	// non-interface field appearing in ForceSendFields will be sent to the
17672	// server regardless of whether the field is empty or not. This may be
17673	// used to include empty fields in Patch requests.
17674	ForceSendFields []string `json:"-"`
17675
17676	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
17677	// in API requests with the JSON null value. By default, fields with
17678	// empty values are omitted from API requests. However, any field with
17679	// an empty value appearing in NullFields will be sent to the server as
17680	// null. It is an error if a field in this list has a non-empty value.
17681	// This may be used to include null fields in Patch requests.
17682	NullFields []string `json:"-"`
17683}
17684
17685func (s *RouterBgpPeer) MarshalJSON() ([]byte, error) {
17686	type NoMethod RouterBgpPeer
17687	raw := NoMethod(*s)
17688	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17689}
17690
17691type RouterInterface struct {
17692	// IpRange: IP address and range of the interface. The IP range must be
17693	// in the RFC3927 link-local IP space. The value must be a
17694	// CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not
17695	// truncate the address as it represents the IP address of the
17696	// interface.
17697	IpRange string `json:"ipRange,omitempty"`
17698
17699	// LinkedInterconnectAttachment: URI of the linked interconnect
17700	// attachment. It must be in the same region as the router. Each
17701	// interface can have at most one linked resource and it could either be
17702	// a VPN Tunnel or an interconnect attachment.
17703	LinkedInterconnectAttachment string `json:"linkedInterconnectAttachment,omitempty"`
17704
17705	// LinkedVpnTunnel: URI of the linked VPN tunnel. It must be in the same
17706	// region as the router. Each interface can have at most one linked
17707	// resource and it could either be a VPN Tunnel or an interconnect
17708	// attachment.
17709	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
17710
17711	// Name: Name of this interface entry. The name must be 1-63 characters
17712	// long and comply with RFC1035.
17713	Name string `json:"name,omitempty"`
17714
17715	// ForceSendFields is a list of field names (e.g. "IpRange") to
17716	// unconditionally include in API requests. By default, fields with
17717	// empty values are omitted from API requests. However, any non-pointer,
17718	// non-interface field appearing in ForceSendFields will be sent to the
17719	// server regardless of whether the field is empty or not. This may be
17720	// used to include empty fields in Patch requests.
17721	ForceSendFields []string `json:"-"`
17722
17723	// NullFields is a list of field names (e.g. "IpRange") to include in
17724	// API requests with the JSON null value. By default, fields with empty
17725	// values are omitted from API requests. However, any field with an
17726	// empty value appearing in NullFields will be sent to the server as
17727	// null. It is an error if a field in this list has a non-empty value.
17728	// This may be used to include null fields in Patch requests.
17729	NullFields []string `json:"-"`
17730}
17731
17732func (s *RouterInterface) MarshalJSON() ([]byte, error) {
17733	type NoMethod RouterInterface
17734	raw := NoMethod(*s)
17735	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17736}
17737
17738// RouterList: Contains a list of Router resources.
17739type RouterList struct {
17740	// Id: [Output Only] Unique identifier for the resource; defined by the
17741	// server.
17742	Id string `json:"id,omitempty"`
17743
17744	// Items: A list of Router resources.
17745	Items []*Router `json:"items,omitempty"`
17746
17747	// Kind: [Output Only] Type of resource. Always compute#router for
17748	// routers.
17749	Kind string `json:"kind,omitempty"`
17750
17751	// NextPageToken: [Output Only] This token allows you to get the next
17752	// page of results for list requests. If the number of results is larger
17753	// than maxResults, use the nextPageToken as a value for the query
17754	// parameter pageToken in the next list request. Subsequent list
17755	// requests will have their own nextPageToken to continue paging through
17756	// the results.
17757	NextPageToken string `json:"nextPageToken,omitempty"`
17758
17759	// SelfLink: [Output Only] Server-defined URL for this resource.
17760	SelfLink string `json:"selfLink,omitempty"`
17761
17762	// Warning: [Output Only] Informational warning message.
17763	Warning *RouterListWarning `json:"warning,omitempty"`
17764
17765	// ServerResponse contains the HTTP response code and headers from the
17766	// server.
17767	googleapi.ServerResponse `json:"-"`
17768
17769	// ForceSendFields is a list of field names (e.g. "Id") to
17770	// unconditionally include in API requests. By default, fields with
17771	// empty values are omitted from API requests. However, any non-pointer,
17772	// non-interface field appearing in ForceSendFields will be sent to the
17773	// server regardless of whether the field is empty or not. This may be
17774	// used to include empty fields in Patch requests.
17775	ForceSendFields []string `json:"-"`
17776
17777	// NullFields is a list of field names (e.g. "Id") to include in API
17778	// requests with the JSON null value. By default, fields with empty
17779	// values are omitted from API requests. However, any field with an
17780	// empty value appearing in NullFields will be sent to the server as
17781	// null. It is an error if a field in this list has a non-empty value.
17782	// This may be used to include null fields in Patch requests.
17783	NullFields []string `json:"-"`
17784}
17785
17786func (s *RouterList) MarshalJSON() ([]byte, error) {
17787	type NoMethod RouterList
17788	raw := NoMethod(*s)
17789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17790}
17791
17792// RouterListWarning: [Output Only] Informational warning message.
17793type RouterListWarning struct {
17794	// Code: [Output Only] A warning code, if applicable. For example,
17795	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17796	// the response.
17797	//
17798	// Possible values:
17799	//   "CLEANUP_FAILED"
17800	//   "DEPRECATED_RESOURCE_USED"
17801	//   "DEPRECATED_TYPE_USED"
17802	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17803	//   "EXPERIMENTAL_TYPE_USED"
17804	//   "EXTERNAL_API_WARNING"
17805	//   "FIELD_VALUE_OVERRIDEN"
17806	//   "INJECTED_KERNELS_DEPRECATED"
17807	//   "MISSING_TYPE_DEPENDENCY"
17808	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17809	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17810	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17811	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17812	//   "NEXT_HOP_NOT_RUNNING"
17813	//   "NOT_CRITICAL_ERROR"
17814	//   "NO_RESULTS_ON_PAGE"
17815	//   "REQUIRED_TOS_AGREEMENT"
17816	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17817	//   "RESOURCE_NOT_DELETED"
17818	//   "SCHEMA_VALIDATION_IGNORED"
17819	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17820	//   "UNDECLARED_PROPERTIES"
17821	//   "UNREACHABLE"
17822	Code string `json:"code,omitempty"`
17823
17824	// Data: [Output Only] Metadata about this warning in key: value format.
17825	// For example:
17826	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17827	Data []*RouterListWarningData `json:"data,omitempty"`
17828
17829	// Message: [Output Only] A human-readable description of the warning
17830	// code.
17831	Message string `json:"message,omitempty"`
17832
17833	// ForceSendFields is a list of field names (e.g. "Code") to
17834	// unconditionally include in API requests. By default, fields with
17835	// empty values are omitted from API requests. However, any non-pointer,
17836	// non-interface field appearing in ForceSendFields will be sent to the
17837	// server regardless of whether the field is empty or not. This may be
17838	// used to include empty fields in Patch requests.
17839	ForceSendFields []string `json:"-"`
17840
17841	// NullFields is a list of field names (e.g. "Code") to include in API
17842	// requests with the JSON null value. By default, fields with empty
17843	// values are omitted from API requests. However, any field with an
17844	// empty value appearing in NullFields will be sent to the server as
17845	// null. It is an error if a field in this list has a non-empty value.
17846	// This may be used to include null fields in Patch requests.
17847	NullFields []string `json:"-"`
17848}
17849
17850func (s *RouterListWarning) MarshalJSON() ([]byte, error) {
17851	type NoMethod RouterListWarning
17852	raw := NoMethod(*s)
17853	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17854}
17855
17856type RouterListWarningData struct {
17857	// Key: [Output Only] A key that provides more detail on the warning
17858	// being returned. For example, for warnings where there are no results
17859	// in a list request for a particular zone, this key might be scope and
17860	// the key value might be the zone name. Other examples might be a key
17861	// indicating a deprecated resource and a suggested replacement, or a
17862	// warning about invalid network settings (for example, if an instance
17863	// attempts to perform IP forwarding but is not enabled for IP
17864	// forwarding).
17865	Key string `json:"key,omitempty"`
17866
17867	// Value: [Output Only] A warning data value corresponding to the key.
17868	Value string `json:"value,omitempty"`
17869
17870	// ForceSendFields is a list of field names (e.g. "Key") to
17871	// unconditionally include in API requests. By default, fields with
17872	// empty values are omitted from API requests. However, any non-pointer,
17873	// non-interface field appearing in ForceSendFields will be sent to the
17874	// server regardless of whether the field is empty or not. This may be
17875	// used to include empty fields in Patch requests.
17876	ForceSendFields []string `json:"-"`
17877
17878	// NullFields is a list of field names (e.g. "Key") to include in API
17879	// requests with the JSON null value. By default, fields with empty
17880	// values are omitted from API requests. However, any field with an
17881	// empty value appearing in NullFields will be sent to the server as
17882	// null. It is an error if a field in this list has a non-empty value.
17883	// This may be used to include null fields in Patch requests.
17884	NullFields []string `json:"-"`
17885}
17886
17887func (s *RouterListWarningData) MarshalJSON() ([]byte, error) {
17888	type NoMethod RouterListWarningData
17889	raw := NoMethod(*s)
17890	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17891}
17892
17893type RouterStatus struct {
17894	// BestRoutes: Best routes for this router's network.
17895	BestRoutes []*Route `json:"bestRoutes,omitempty"`
17896
17897	// BestRoutesForRouter: Best routes learned by this router.
17898	BestRoutesForRouter []*Route `json:"bestRoutesForRouter,omitempty"`
17899
17900	BgpPeerStatus []*RouterStatusBgpPeerStatus `json:"bgpPeerStatus,omitempty"`
17901
17902	// Network: URI of the network to which this router belongs.
17903	Network string `json:"network,omitempty"`
17904
17905	// ForceSendFields is a list of field names (e.g. "BestRoutes") to
17906	// unconditionally include in API requests. By default, fields with
17907	// empty values are omitted from API requests. However, any non-pointer,
17908	// non-interface field appearing in ForceSendFields will be sent to the
17909	// server regardless of whether the field is empty or not. This may be
17910	// used to include empty fields in Patch requests.
17911	ForceSendFields []string `json:"-"`
17912
17913	// NullFields is a list of field names (e.g. "BestRoutes") to include in
17914	// API requests with the JSON null value. By default, fields with empty
17915	// values are omitted from API requests. However, any field with an
17916	// empty value appearing in NullFields will be sent to the server as
17917	// null. It is an error if a field in this list has a non-empty value.
17918	// This may be used to include null fields in Patch requests.
17919	NullFields []string `json:"-"`
17920}
17921
17922func (s *RouterStatus) MarshalJSON() ([]byte, error) {
17923	type NoMethod RouterStatus
17924	raw := NoMethod(*s)
17925	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17926}
17927
17928type RouterStatusBgpPeerStatus struct {
17929	// AdvertisedRoutes: Routes that were advertised to the remote BGP peer
17930	AdvertisedRoutes []*Route `json:"advertisedRoutes,omitempty"`
17931
17932	// IpAddress: IP address of the local BGP interface.
17933	IpAddress string `json:"ipAddress,omitempty"`
17934
17935	// LinkedVpnTunnel: URL of the VPN tunnel that this BGP peer controls.
17936	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
17937
17938	// Name: Name of this BGP peer. Unique within the Routers resource.
17939	Name string `json:"name,omitempty"`
17940
17941	// NumLearnedRoutes: Number of routes learned from the remote BGP Peer.
17942	NumLearnedRoutes int64 `json:"numLearnedRoutes,omitempty"`
17943
17944	// PeerIpAddress: IP address of the remote BGP interface.
17945	PeerIpAddress string `json:"peerIpAddress,omitempty"`
17946
17947	// State: BGP state as specified in RFC1771.
17948	State string `json:"state,omitempty"`
17949
17950	// Status: Status of the BGP peer: {UP, DOWN}
17951	//
17952	// Possible values:
17953	//   "DOWN"
17954	//   "UNKNOWN"
17955	//   "UP"
17956	Status string `json:"status,omitempty"`
17957
17958	// Uptime: Time this session has been up. Format: 14 years, 51 weeks, 6
17959	// days, 23 hours, 59 minutes, 59 seconds
17960	Uptime string `json:"uptime,omitempty"`
17961
17962	// UptimeSeconds: Time this session has been up, in seconds. Format: 145
17963	UptimeSeconds string `json:"uptimeSeconds,omitempty"`
17964
17965	// ForceSendFields is a list of field names (e.g. "AdvertisedRoutes") to
17966	// unconditionally include in API requests. By default, fields with
17967	// empty values are omitted from API requests. However, any non-pointer,
17968	// non-interface field appearing in ForceSendFields will be sent to the
17969	// server regardless of whether the field is empty or not. This may be
17970	// used to include empty fields in Patch requests.
17971	ForceSendFields []string `json:"-"`
17972
17973	// NullFields is a list of field names (e.g. "AdvertisedRoutes") to
17974	// include in API requests with the JSON null value. By default, fields
17975	// with empty values are omitted from API requests. However, any field
17976	// with an empty value appearing in NullFields will be sent to the
17977	// server as null. It is an error if a field in this list has a
17978	// non-empty value. This may be used to include null fields in Patch
17979	// requests.
17980	NullFields []string `json:"-"`
17981}
17982
17983func (s *RouterStatusBgpPeerStatus) MarshalJSON() ([]byte, error) {
17984	type NoMethod RouterStatusBgpPeerStatus
17985	raw := NoMethod(*s)
17986	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17987}
17988
17989type RouterStatusResponse struct {
17990	// Kind: Type of resource.
17991	Kind string `json:"kind,omitempty"`
17992
17993	Result *RouterStatus `json:"result,omitempty"`
17994
17995	// ServerResponse contains the HTTP response code and headers from the
17996	// server.
17997	googleapi.ServerResponse `json:"-"`
17998
17999	// ForceSendFields is a list of field names (e.g. "Kind") to
18000	// unconditionally include in API requests. By default, fields with
18001	// empty values are omitted from API requests. However, any non-pointer,
18002	// non-interface field appearing in ForceSendFields will be sent to the
18003	// server regardless of whether the field is empty or not. This may be
18004	// used to include empty fields in Patch requests.
18005	ForceSendFields []string `json:"-"`
18006
18007	// NullFields is a list of field names (e.g. "Kind") to include in API
18008	// requests with the JSON null value. By default, fields with empty
18009	// values are omitted from API requests. However, any field with an
18010	// empty value appearing in NullFields will be sent to the server as
18011	// null. It is an error if a field in this list has a non-empty value.
18012	// This may be used to include null fields in Patch requests.
18013	NullFields []string `json:"-"`
18014}
18015
18016func (s *RouterStatusResponse) MarshalJSON() ([]byte, error) {
18017	type NoMethod RouterStatusResponse
18018	raw := NoMethod(*s)
18019	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18020}
18021
18022type RoutersPreviewResponse struct {
18023	// Resource: Preview of given router.
18024	Resource *Router `json:"resource,omitempty"`
18025
18026	// ServerResponse contains the HTTP response code and headers from the
18027	// server.
18028	googleapi.ServerResponse `json:"-"`
18029
18030	// ForceSendFields is a list of field names (e.g. "Resource") to
18031	// unconditionally include in API requests. By default, fields with
18032	// empty values are omitted from API requests. However, any non-pointer,
18033	// non-interface field appearing in ForceSendFields will be sent to the
18034	// server regardless of whether the field is empty or not. This may be
18035	// used to include empty fields in Patch requests.
18036	ForceSendFields []string `json:"-"`
18037
18038	// NullFields is a list of field names (e.g. "Resource") to include in
18039	// API requests with the JSON null value. By default, fields with empty
18040	// values are omitted from API requests. However, any field with an
18041	// empty value appearing in NullFields will be sent to the server as
18042	// null. It is an error if a field in this list has a non-empty value.
18043	// This may be used to include null fields in Patch requests.
18044	NullFields []string `json:"-"`
18045}
18046
18047func (s *RoutersPreviewResponse) MarshalJSON() ([]byte, error) {
18048	type NoMethod RoutersPreviewResponse
18049	raw := NoMethod(*s)
18050	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18051}
18052
18053type RoutersScopedList struct {
18054	// Routers: A list of routers contained in this scope.
18055	Routers []*Router `json:"routers,omitempty"`
18056
18057	// Warning: Informational warning which replaces the list of routers
18058	// when the list is empty.
18059	Warning *RoutersScopedListWarning `json:"warning,omitempty"`
18060
18061	// ForceSendFields is a list of field names (e.g. "Routers") to
18062	// unconditionally include in API requests. By default, fields with
18063	// empty values are omitted from API requests. However, any non-pointer,
18064	// non-interface field appearing in ForceSendFields will be sent to the
18065	// server regardless of whether the field is empty or not. This may be
18066	// used to include empty fields in Patch requests.
18067	ForceSendFields []string `json:"-"`
18068
18069	// NullFields is a list of field names (e.g. "Routers") to include in
18070	// API requests with the JSON null value. By default, fields with empty
18071	// values are omitted from API requests. However, any field with an
18072	// empty value appearing in NullFields will be sent to the server as
18073	// null. It is an error if a field in this list has a non-empty value.
18074	// This may be used to include null fields in Patch requests.
18075	NullFields []string `json:"-"`
18076}
18077
18078func (s *RoutersScopedList) MarshalJSON() ([]byte, error) {
18079	type NoMethod RoutersScopedList
18080	raw := NoMethod(*s)
18081	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18082}
18083
18084// RoutersScopedListWarning: Informational warning which replaces the
18085// list of routers when the list is empty.
18086type RoutersScopedListWarning struct {
18087	// Code: [Output Only] A warning code, if applicable. For example,
18088	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18089	// the response.
18090	//
18091	// Possible values:
18092	//   "CLEANUP_FAILED"
18093	//   "DEPRECATED_RESOURCE_USED"
18094	//   "DEPRECATED_TYPE_USED"
18095	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18096	//   "EXPERIMENTAL_TYPE_USED"
18097	//   "EXTERNAL_API_WARNING"
18098	//   "FIELD_VALUE_OVERRIDEN"
18099	//   "INJECTED_KERNELS_DEPRECATED"
18100	//   "MISSING_TYPE_DEPENDENCY"
18101	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18102	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18103	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18104	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18105	//   "NEXT_HOP_NOT_RUNNING"
18106	//   "NOT_CRITICAL_ERROR"
18107	//   "NO_RESULTS_ON_PAGE"
18108	//   "REQUIRED_TOS_AGREEMENT"
18109	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18110	//   "RESOURCE_NOT_DELETED"
18111	//   "SCHEMA_VALIDATION_IGNORED"
18112	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18113	//   "UNDECLARED_PROPERTIES"
18114	//   "UNREACHABLE"
18115	Code string `json:"code,omitempty"`
18116
18117	// Data: [Output Only] Metadata about this warning in key: value format.
18118	// For example:
18119	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18120	Data []*RoutersScopedListWarningData `json:"data,omitempty"`
18121
18122	// Message: [Output Only] A human-readable description of the warning
18123	// code.
18124	Message string `json:"message,omitempty"`
18125
18126	// ForceSendFields is a list of field names (e.g. "Code") 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. "Code") 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 *RoutersScopedListWarning) MarshalJSON() ([]byte, error) {
18144	type NoMethod RoutersScopedListWarning
18145	raw := NoMethod(*s)
18146	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18147}
18148
18149type RoutersScopedListWarningData struct {
18150	// Key: [Output Only] A key that provides more detail on the warning
18151	// being returned. For example, for warnings where there are no results
18152	// in a list request for a particular zone, this key might be scope and
18153	// the key value might be the zone name. Other examples might be a key
18154	// indicating a deprecated resource and a suggested replacement, or a
18155	// warning about invalid network settings (for example, if an instance
18156	// attempts to perform IP forwarding but is not enabled for IP
18157	// forwarding).
18158	Key string `json:"key,omitempty"`
18159
18160	// Value: [Output Only] A warning data value corresponding to the key.
18161	Value string `json:"value,omitempty"`
18162
18163	// ForceSendFields is a list of field names (e.g. "Key") to
18164	// unconditionally include in API requests. By default, fields with
18165	// empty values are omitted from API requests. However, any non-pointer,
18166	// non-interface field appearing in ForceSendFields will be sent to the
18167	// server regardless of whether the field is empty or not. This may be
18168	// used to include empty fields in Patch requests.
18169	ForceSendFields []string `json:"-"`
18170
18171	// NullFields is a list of field names (e.g. "Key") to include in API
18172	// requests with the JSON null value. By default, fields with empty
18173	// values are omitted from API requests. However, any field with an
18174	// empty value appearing in NullFields will be sent to the server as
18175	// null. It is an error if a field in this list has a non-empty value.
18176	// This may be used to include null fields in Patch requests.
18177	NullFields []string `json:"-"`
18178}
18179
18180func (s *RoutersScopedListWarningData) MarshalJSON() ([]byte, error) {
18181	type NoMethod RoutersScopedListWarningData
18182	raw := NoMethod(*s)
18183	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18184}
18185
18186type SSLHealthCheck struct {
18187	// Port: The TCP port number for the health check request. The default
18188	// value is 443. Valid values are 1 through 65535.
18189	Port int64 `json:"port,omitempty"`
18190
18191	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
18192	// both port and port_name are defined, port takes precedence.
18193	PortName string `json:"portName,omitempty"`
18194
18195	// ProxyHeader: Specifies the type of proxy header to append before
18196	// sending data to the backend, either NONE or PROXY_V1. The default is
18197	// NONE.
18198	//
18199	// Possible values:
18200	//   "NONE"
18201	//   "PROXY_V1"
18202	ProxyHeader string `json:"proxyHeader,omitempty"`
18203
18204	// Request: The application data to send once the SSL connection has
18205	// been established (default value is empty). If both request and
18206	// response are empty, the connection establishment alone will indicate
18207	// health. The request data can only be ASCII.
18208	Request string `json:"request,omitempty"`
18209
18210	// Response: The bytes to match against the beginning of the response
18211	// data. If left empty (the default value), any response will indicate
18212	// health. The response data can only be ASCII.
18213	Response string `json:"response,omitempty"`
18214
18215	// ForceSendFields is a list of field names (e.g. "Port") to
18216	// unconditionally include in API requests. By default, fields with
18217	// empty values are omitted from API requests. However, any non-pointer,
18218	// non-interface field appearing in ForceSendFields will be sent to the
18219	// server regardless of whether the field is empty or not. This may be
18220	// used to include empty fields in Patch requests.
18221	ForceSendFields []string `json:"-"`
18222
18223	// NullFields is a list of field names (e.g. "Port") to include in API
18224	// requests with the JSON null value. By default, fields with empty
18225	// values are omitted from API requests. However, any field with an
18226	// empty value appearing in NullFields will be sent to the server as
18227	// null. It is an error if a field in this list has a non-empty value.
18228	// This may be used to include null fields in Patch requests.
18229	NullFields []string `json:"-"`
18230}
18231
18232func (s *SSLHealthCheck) MarshalJSON() ([]byte, error) {
18233	type NoMethod SSLHealthCheck
18234	raw := NoMethod(*s)
18235	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18236}
18237
18238// Scheduling: Sets the scheduling options for an Instance.
18239type Scheduling struct {
18240	// AutomaticRestart: Specifies whether the instance should be
18241	// automatically restarted if it is terminated by Compute Engine (not
18242	// terminated by a user). You can only set the automatic restart option
18243	// for standard instances. Preemptible instances cannot be automatically
18244	// restarted.
18245	//
18246	// By default, this is set to true so an instance is automatically
18247	// restarted if it is terminated by Compute Engine.
18248	AutomaticRestart *bool `json:"automaticRestart,omitempty"`
18249
18250	// OnHostMaintenance: Defines the maintenance behavior for this
18251	// instance. For standard instances, the default behavior is MIGRATE.
18252	// For preemptible instances, the default and only possible behavior is
18253	// TERMINATE. For more information, see Setting Instance Scheduling
18254	// Options.
18255	//
18256	// Possible values:
18257	//   "MIGRATE"
18258	//   "TERMINATE"
18259	OnHostMaintenance string `json:"onHostMaintenance,omitempty"`
18260
18261	// Preemptible: Defines whether the instance is preemptible. This can
18262	// only be set during instance creation, it cannot be set or changed
18263	// after the instance has been created.
18264	Preemptible bool `json:"preemptible,omitempty"`
18265
18266	// ForceSendFields is a list of field names (e.g. "AutomaticRestart") to
18267	// unconditionally include in API requests. By default, fields with
18268	// empty values are omitted from API requests. However, any non-pointer,
18269	// non-interface field appearing in ForceSendFields will be sent to the
18270	// server regardless of whether the field is empty or not. This may be
18271	// used to include empty fields in Patch requests.
18272	ForceSendFields []string `json:"-"`
18273
18274	// NullFields is a list of field names (e.g. "AutomaticRestart") to
18275	// include in API requests with the JSON null value. By default, fields
18276	// with empty values are omitted from API requests. However, any field
18277	// with an empty value appearing in NullFields will be sent to the
18278	// server as null. It is an error if a field in this list has a
18279	// non-empty value. This may be used to include null fields in Patch
18280	// requests.
18281	NullFields []string `json:"-"`
18282}
18283
18284func (s *Scheduling) MarshalJSON() ([]byte, error) {
18285	type NoMethod Scheduling
18286	raw := NoMethod(*s)
18287	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18288}
18289
18290// SerialPortOutput: An instance's serial console output.
18291type SerialPortOutput struct {
18292	// Contents: [Output Only] The contents of the console output.
18293	Contents string `json:"contents,omitempty"`
18294
18295	// Kind: [Output Only] Type of the resource. Always
18296	// compute#serialPortOutput for serial port output.
18297	Kind string `json:"kind,omitempty"`
18298
18299	// Next: [Output Only] The position of the next byte of content from the
18300	// serial console output. Use this value in the next request as the
18301	// start parameter.
18302	Next int64 `json:"next,omitempty,string"`
18303
18304	// SelfLink: [Output Only] Server-defined URL for this resource.
18305	SelfLink string `json:"selfLink,omitempty"`
18306
18307	// Start: The starting byte position of the output that was returned.
18308	// This should match the start parameter sent with the request. If the
18309	// serial console output exceeds the size of the buffer, older output
18310	// will be overwritten by newer content and the start values will be
18311	// mismatched.
18312	Start int64 `json:"start,omitempty,string"`
18313
18314	// ServerResponse contains the HTTP response code and headers from the
18315	// server.
18316	googleapi.ServerResponse `json:"-"`
18317
18318	// ForceSendFields is a list of field names (e.g. "Contents") to
18319	// unconditionally include in API requests. By default, fields with
18320	// empty values are omitted from API requests. However, any non-pointer,
18321	// non-interface field appearing in ForceSendFields will be sent to the
18322	// server regardless of whether the field is empty or not. This may be
18323	// used to include empty fields in Patch requests.
18324	ForceSendFields []string `json:"-"`
18325
18326	// NullFields is a list of field names (e.g. "Contents") to include in
18327	// API requests with the JSON null value. By default, fields with empty
18328	// values are omitted from API requests. However, any field with an
18329	// empty value appearing in NullFields will be sent to the server as
18330	// null. It is an error if a field in this list has a non-empty value.
18331	// This may be used to include null fields in Patch requests.
18332	NullFields []string `json:"-"`
18333}
18334
18335func (s *SerialPortOutput) MarshalJSON() ([]byte, error) {
18336	type NoMethod SerialPortOutput
18337	raw := NoMethod(*s)
18338	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18339}
18340
18341// ServiceAccount: A service account.
18342type ServiceAccount struct {
18343	// Email: Email address of the service account.
18344	Email string `json:"email,omitempty"`
18345
18346	// Scopes: The list of scopes to be made available for this service
18347	// account.
18348	Scopes []string `json:"scopes,omitempty"`
18349
18350	// ForceSendFields is a list of field names (e.g. "Email") to
18351	// unconditionally include in API requests. By default, fields with
18352	// empty values are omitted from API requests. However, any non-pointer,
18353	// non-interface field appearing in ForceSendFields will be sent to the
18354	// server regardless of whether the field is empty or not. This may be
18355	// used to include empty fields in Patch requests.
18356	ForceSendFields []string `json:"-"`
18357
18358	// NullFields is a list of field names (e.g. "Email") to include in API
18359	// requests with the JSON null value. By default, fields with empty
18360	// values are omitted from API requests. However, any field with an
18361	// empty value appearing in NullFields will be sent to the server as
18362	// null. It is an error if a field in this list has a non-empty value.
18363	// This may be used to include null fields in Patch requests.
18364	NullFields []string `json:"-"`
18365}
18366
18367func (s *ServiceAccount) MarshalJSON() ([]byte, error) {
18368	type NoMethod ServiceAccount
18369	raw := NoMethod(*s)
18370	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18371}
18372
18373// Snapshot: A persistent disk snapshot resource. (== resource_for
18374// beta.snapshots ==) (== resource_for v1.snapshots ==)
18375type Snapshot struct {
18376	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
18377	// format.
18378	CreationTimestamp string `json:"creationTimestamp,omitempty"`
18379
18380	// Description: An optional description of this resource. Provide this
18381	// property when you create the resource.
18382	Description string `json:"description,omitempty"`
18383
18384	// DiskSizeGb: [Output Only] Size of the snapshot, specified in GB.
18385	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
18386
18387	// Id: [Output Only] The unique identifier for the resource. This
18388	// identifier is defined by the server.
18389	Id uint64 `json:"id,omitempty,string"`
18390
18391	// Kind: [Output Only] Type of the resource. Always compute#snapshot for
18392	// Snapshot resources.
18393	Kind string `json:"kind,omitempty"`
18394
18395	// LabelFingerprint: A fingerprint for the labels being applied to this
18396	// snapshot, which is essentially a hash of the labels set used for
18397	// optimistic locking. The fingerprint is initially generated by Compute
18398	// Engine and changes after every request to modify or update labels.
18399	// You must always provide an up-to-date fingerprint hash in order to
18400	// update or change labels.
18401	//
18402	// To see the latest fingerprint, make a get() request to retrieve a
18403	// snapshot.
18404	LabelFingerprint string `json:"labelFingerprint,omitempty"`
18405
18406	// Labels: Labels to apply to this snapshot. These can be later modified
18407	// by the setLabels method. Label values may be empty.
18408	Labels map[string]string `json:"labels,omitempty"`
18409
18410	// LicenseCodes: Integer license codes indicating which licenses are
18411	// attached to this snapshot.
18412	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
18413
18414	// Licenses: [Output Only] A list of public visible licenses that apply
18415	// to this snapshot. This can be because the original image had licenses
18416	// attached (such as a Windows image).
18417	Licenses []string `json:"licenses,omitempty"`
18418
18419	// Name: Name of the resource; provided by the client when the resource
18420	// is created. The name must be 1-63 characters long, and comply with
18421	// RFC1035. Specifically, the name must be 1-63 characters long and
18422	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
18423	// the first character must be a lowercase letter, and all following
18424	// characters must be a dash, lowercase letter, or digit, except the
18425	// last character, which cannot be a dash.
18426	Name string `json:"name,omitempty"`
18427
18428	// SelfLink: [Output Only] Server-defined URL for the resource.
18429	SelfLink string `json:"selfLink,omitempty"`
18430
18431	// SnapshotEncryptionKey: Encrypts the snapshot using a
18432	// customer-supplied encryption key.
18433	//
18434	// After you encrypt a snapshot using a customer-supplied key, you must
18435	// provide the same key if you use the image later For example, you must
18436	// provide the encryption key when you create a disk from the encrypted
18437	// snapshot in a future request.
18438	//
18439	// Customer-supplied encryption keys do not protect access to metadata
18440	// of the disk.
18441	//
18442	// If you do not provide an encryption key when creating the snapshot,
18443	// then the snapshot will be encrypted using an automatically generated
18444	// key and you do not need to provide a key to use the snapshot later.
18445	SnapshotEncryptionKey *CustomerEncryptionKey `json:"snapshotEncryptionKey,omitempty"`
18446
18447	// SourceDisk: [Output Only] The source disk used to create this
18448	// snapshot.
18449	SourceDisk string `json:"sourceDisk,omitempty"`
18450
18451	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
18452	// source disk. Required if the source disk is protected by a
18453	// customer-supplied encryption key.
18454	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
18455
18456	// SourceDiskId: [Output Only] The ID value of the disk used to create
18457	// this snapshot. This value may be used to determine whether the
18458	// snapshot was taken from the current or a previous instance of a given
18459	// disk name.
18460	SourceDiskId string `json:"sourceDiskId,omitempty"`
18461
18462	// Status: [Output Only] The status of the snapshot. This can be
18463	// CREATING, DELETING, FAILED, READY, or UPLOADING.
18464	//
18465	// Possible values:
18466	//   "CREATING"
18467	//   "DELETING"
18468	//   "FAILED"
18469	//   "READY"
18470	//   "UPLOADING"
18471	Status string `json:"status,omitempty"`
18472
18473	// StorageBytes: [Output Only] A size of the storage used by the
18474	// snapshot. As snapshots share storage, this number is expected to
18475	// change with snapshot creation/deletion.
18476	StorageBytes int64 `json:"storageBytes,omitempty,string"`
18477
18478	// StorageBytesStatus: [Output Only] An indicator whether storageBytes
18479	// is in a stable state or it is being adjusted as a result of shared
18480	// storage reallocation. This status can either be UPDATING, meaning the
18481	// size of the snapshot is being updated, or UP_TO_DATE, meaning the
18482	// size of the snapshot is up-to-date.
18483	//
18484	// Possible values:
18485	//   "UPDATING"
18486	//   "UP_TO_DATE"
18487	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
18488
18489	// ServerResponse contains the HTTP response code and headers from the
18490	// server.
18491	googleapi.ServerResponse `json:"-"`
18492
18493	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
18494	// to unconditionally include in API requests. By default, fields with
18495	// empty values are omitted from API requests. However, any non-pointer,
18496	// non-interface field appearing in ForceSendFields will be sent to the
18497	// server regardless of whether the field is empty or not. This may be
18498	// used to include empty fields in Patch requests.
18499	ForceSendFields []string `json:"-"`
18500
18501	// NullFields is a list of field names (e.g. "CreationTimestamp") to
18502	// include in API requests with the JSON null value. By default, fields
18503	// with empty values are omitted from API requests. However, any field
18504	// with an empty value appearing in NullFields will be sent to the
18505	// server as null. It is an error if a field in this list has a
18506	// non-empty value. This may be used to include null fields in Patch
18507	// requests.
18508	NullFields []string `json:"-"`
18509}
18510
18511func (s *Snapshot) MarshalJSON() ([]byte, error) {
18512	type NoMethod Snapshot
18513	raw := NoMethod(*s)
18514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18515}
18516
18517// SnapshotList: Contains a list of Snapshot resources.
18518type SnapshotList struct {
18519	// Id: [Output Only] Unique identifier for the resource; defined by the
18520	// server.
18521	Id string `json:"id,omitempty"`
18522
18523	// Items: A list of Snapshot resources.
18524	Items []*Snapshot `json:"items,omitempty"`
18525
18526	// Kind: Type of resource.
18527	Kind string `json:"kind,omitempty"`
18528
18529	// NextPageToken: [Output Only] This token allows you to get the next
18530	// page of results for list requests. If the number of results is larger
18531	// than maxResults, use the nextPageToken as a value for the query
18532	// parameter pageToken in the next list request. Subsequent list
18533	// requests will have their own nextPageToken to continue paging through
18534	// the results.
18535	NextPageToken string `json:"nextPageToken,omitempty"`
18536
18537	// SelfLink: [Output Only] Server-defined URL for this resource.
18538	SelfLink string `json:"selfLink,omitempty"`
18539
18540	// Warning: [Output Only] Informational warning message.
18541	Warning *SnapshotListWarning `json:"warning,omitempty"`
18542
18543	// ServerResponse contains the HTTP response code and headers from the
18544	// server.
18545	googleapi.ServerResponse `json:"-"`
18546
18547	// ForceSendFields is a list of field names (e.g. "Id") to
18548	// unconditionally include in API requests. By default, fields with
18549	// empty values are omitted from API requests. However, any non-pointer,
18550	// non-interface field appearing in ForceSendFields will be sent to the
18551	// server regardless of whether the field is empty or not. This may be
18552	// used to include empty fields in Patch requests.
18553	ForceSendFields []string `json:"-"`
18554
18555	// NullFields is a list of field names (e.g. "Id") to include in API
18556	// requests with the JSON null value. By default, fields with empty
18557	// values are omitted from API requests. However, any field with an
18558	// empty value appearing in NullFields will be sent to the server as
18559	// null. It is an error if a field in this list has a non-empty value.
18560	// This may be used to include null fields in Patch requests.
18561	NullFields []string `json:"-"`
18562}
18563
18564func (s *SnapshotList) MarshalJSON() ([]byte, error) {
18565	type NoMethod SnapshotList
18566	raw := NoMethod(*s)
18567	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18568}
18569
18570// SnapshotListWarning: [Output Only] Informational warning message.
18571type SnapshotListWarning struct {
18572	// Code: [Output Only] A warning code, if applicable. For example,
18573	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18574	// the response.
18575	//
18576	// Possible values:
18577	//   "CLEANUP_FAILED"
18578	//   "DEPRECATED_RESOURCE_USED"
18579	//   "DEPRECATED_TYPE_USED"
18580	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18581	//   "EXPERIMENTAL_TYPE_USED"
18582	//   "EXTERNAL_API_WARNING"
18583	//   "FIELD_VALUE_OVERRIDEN"
18584	//   "INJECTED_KERNELS_DEPRECATED"
18585	//   "MISSING_TYPE_DEPENDENCY"
18586	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18587	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18588	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18589	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18590	//   "NEXT_HOP_NOT_RUNNING"
18591	//   "NOT_CRITICAL_ERROR"
18592	//   "NO_RESULTS_ON_PAGE"
18593	//   "REQUIRED_TOS_AGREEMENT"
18594	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18595	//   "RESOURCE_NOT_DELETED"
18596	//   "SCHEMA_VALIDATION_IGNORED"
18597	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18598	//   "UNDECLARED_PROPERTIES"
18599	//   "UNREACHABLE"
18600	Code string `json:"code,omitempty"`
18601
18602	// Data: [Output Only] Metadata about this warning in key: value format.
18603	// For example:
18604	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18605	Data []*SnapshotListWarningData `json:"data,omitempty"`
18606
18607	// Message: [Output Only] A human-readable description of the warning
18608	// code.
18609	Message string `json:"message,omitempty"`
18610
18611	// ForceSendFields is a list of field names (e.g. "Code") to
18612	// unconditionally include in API requests. By default, fields with
18613	// empty values are omitted from API requests. However, any non-pointer,
18614	// non-interface field appearing in ForceSendFields will be sent to the
18615	// server regardless of whether the field is empty or not. This may be
18616	// used to include empty fields in Patch requests.
18617	ForceSendFields []string `json:"-"`
18618
18619	// NullFields is a list of field names (e.g. "Code") to include in API
18620	// requests with the JSON null value. By default, fields with empty
18621	// values are omitted from API requests. However, any field with an
18622	// empty value appearing in NullFields will be sent to the server as
18623	// null. It is an error if a field in this list has a non-empty value.
18624	// This may be used to include null fields in Patch requests.
18625	NullFields []string `json:"-"`
18626}
18627
18628func (s *SnapshotListWarning) MarshalJSON() ([]byte, error) {
18629	type NoMethod SnapshotListWarning
18630	raw := NoMethod(*s)
18631	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18632}
18633
18634type SnapshotListWarningData struct {
18635	// Key: [Output Only] A key that provides more detail on the warning
18636	// being returned. For example, for warnings where there are no results
18637	// in a list request for a particular zone, this key might be scope and
18638	// the key value might be the zone name. Other examples might be a key
18639	// indicating a deprecated resource and a suggested replacement, or a
18640	// warning about invalid network settings (for example, if an instance
18641	// attempts to perform IP forwarding but is not enabled for IP
18642	// forwarding).
18643	Key string `json:"key,omitempty"`
18644
18645	// Value: [Output Only] A warning data value corresponding to the key.
18646	Value string `json:"value,omitempty"`
18647
18648	// ForceSendFields is a list of field names (e.g. "Key") to
18649	// unconditionally include in API requests. By default, fields with
18650	// empty values are omitted from API requests. However, any non-pointer,
18651	// non-interface field appearing in ForceSendFields will be sent to the
18652	// server regardless of whether the field is empty or not. This may be
18653	// used to include empty fields in Patch requests.
18654	ForceSendFields []string `json:"-"`
18655
18656	// NullFields is a list of field names (e.g. "Key") to include in API
18657	// requests with the JSON null value. By default, fields with empty
18658	// values are omitted from API requests. However, any field with an
18659	// empty value appearing in NullFields will be sent to the server as
18660	// null. It is an error if a field in this list has a non-empty value.
18661	// This may be used to include null fields in Patch requests.
18662	NullFields []string `json:"-"`
18663}
18664
18665func (s *SnapshotListWarningData) MarshalJSON() ([]byte, error) {
18666	type NoMethod SnapshotListWarningData
18667	raw := NoMethod(*s)
18668	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18669}
18670
18671// SslCertificate: An SslCertificate resource. This resource provides a
18672// mechanism to upload an SSL key and certificate to the load balancer
18673// to serve secure connections from the user. (== resource_for
18674// beta.sslCertificates ==) (== resource_for v1.sslCertificates ==)
18675type SslCertificate struct {
18676	// Certificate: A local certificate file. The certificate must be in PEM
18677	// format. The certificate chain must be no greater than 5 certs long.
18678	// The chain must include at least one intermediate cert.
18679	Certificate string `json:"certificate,omitempty"`
18680
18681	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
18682	// format.
18683	CreationTimestamp string `json:"creationTimestamp,omitempty"`
18684
18685	// Description: An optional description of this resource. Provide this
18686	// property when you create the resource.
18687	Description string `json:"description,omitempty"`
18688
18689	// Id: [Output Only] The unique identifier for the resource. This
18690	// identifier is defined by the server.
18691	Id uint64 `json:"id,omitempty,string"`
18692
18693	// Kind: [Output Only] Type of the resource. Always
18694	// compute#sslCertificate for SSL certificates.
18695	Kind string `json:"kind,omitempty"`
18696
18697	// Name: Name of the resource. Provided by the client when the resource
18698	// is created. The name must be 1-63 characters long, and comply with
18699	// RFC1035. Specifically, the name must be 1-63 characters long and
18700	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
18701	// the first character must be a lowercase letter, and all following
18702	// characters must be a dash, lowercase letter, or digit, except the
18703	// last character, which cannot be a dash.
18704	Name string `json:"name,omitempty"`
18705
18706	// PrivateKey: A write-only private key in PEM format. Only insert
18707	// requests will include this field.
18708	PrivateKey string `json:"privateKey,omitempty"`
18709
18710	// SelfLink: [Output only] Server-defined URL for the resource.
18711	SelfLink string `json:"selfLink,omitempty"`
18712
18713	// ServerResponse contains the HTTP response code and headers from the
18714	// server.
18715	googleapi.ServerResponse `json:"-"`
18716
18717	// ForceSendFields is a list of field names (e.g. "Certificate") to
18718	// unconditionally include in API requests. By default, fields with
18719	// empty values are omitted from API requests. However, any non-pointer,
18720	// non-interface field appearing in ForceSendFields will be sent to the
18721	// server regardless of whether the field is empty or not. This may be
18722	// used to include empty fields in Patch requests.
18723	ForceSendFields []string `json:"-"`
18724
18725	// NullFields is a list of field names (e.g. "Certificate") to include
18726	// in API requests with the JSON null value. By default, fields with
18727	// empty values are omitted from API requests. However, any field with
18728	// an empty value appearing in NullFields will be sent to the server as
18729	// null. It is an error if a field in this list has a non-empty value.
18730	// This may be used to include null fields in Patch requests.
18731	NullFields []string `json:"-"`
18732}
18733
18734func (s *SslCertificate) MarshalJSON() ([]byte, error) {
18735	type NoMethod SslCertificate
18736	raw := NoMethod(*s)
18737	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18738}
18739
18740// SslCertificateList: Contains a list of SslCertificate resources.
18741type SslCertificateList struct {
18742	// Id: [Output Only] Unique identifier for the resource; defined by the
18743	// server.
18744	Id string `json:"id,omitempty"`
18745
18746	// Items: A list of SslCertificate resources.
18747	Items []*SslCertificate `json:"items,omitempty"`
18748
18749	// Kind: Type of resource.
18750	Kind string `json:"kind,omitempty"`
18751
18752	// NextPageToken: [Output Only] This token allows you to get the next
18753	// page of results for list requests. If the number of results is larger
18754	// than maxResults, use the nextPageToken as a value for the query
18755	// parameter pageToken in the next list request. Subsequent list
18756	// requests will have their own nextPageToken to continue paging through
18757	// the results.
18758	NextPageToken string `json:"nextPageToken,omitempty"`
18759
18760	// SelfLink: [Output Only] Server-defined URL for this resource.
18761	SelfLink string `json:"selfLink,omitempty"`
18762
18763	// Warning: [Output Only] Informational warning message.
18764	Warning *SslCertificateListWarning `json:"warning,omitempty"`
18765
18766	// ServerResponse contains the HTTP response code and headers from the
18767	// server.
18768	googleapi.ServerResponse `json:"-"`
18769
18770	// ForceSendFields is a list of field names (e.g. "Id") to
18771	// unconditionally include in API requests. By default, fields with
18772	// empty values are omitted from API requests. However, any non-pointer,
18773	// non-interface field appearing in ForceSendFields will be sent to the
18774	// server regardless of whether the field is empty or not. This may be
18775	// used to include empty fields in Patch requests.
18776	ForceSendFields []string `json:"-"`
18777
18778	// NullFields is a list of field names (e.g. "Id") to include in API
18779	// requests with the JSON null value. By default, fields with empty
18780	// values are omitted from API requests. However, any field with an
18781	// empty value appearing in NullFields will be sent to the server as
18782	// null. It is an error if a field in this list has a non-empty value.
18783	// This may be used to include null fields in Patch requests.
18784	NullFields []string `json:"-"`
18785}
18786
18787func (s *SslCertificateList) MarshalJSON() ([]byte, error) {
18788	type NoMethod SslCertificateList
18789	raw := NoMethod(*s)
18790	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18791}
18792
18793// SslCertificateListWarning: [Output Only] Informational warning
18794// message.
18795type SslCertificateListWarning struct {
18796	// Code: [Output Only] A warning code, if applicable. For example,
18797	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18798	// the response.
18799	//
18800	// Possible values:
18801	//   "CLEANUP_FAILED"
18802	//   "DEPRECATED_RESOURCE_USED"
18803	//   "DEPRECATED_TYPE_USED"
18804	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18805	//   "EXPERIMENTAL_TYPE_USED"
18806	//   "EXTERNAL_API_WARNING"
18807	//   "FIELD_VALUE_OVERRIDEN"
18808	//   "INJECTED_KERNELS_DEPRECATED"
18809	//   "MISSING_TYPE_DEPENDENCY"
18810	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18811	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18812	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18813	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18814	//   "NEXT_HOP_NOT_RUNNING"
18815	//   "NOT_CRITICAL_ERROR"
18816	//   "NO_RESULTS_ON_PAGE"
18817	//   "REQUIRED_TOS_AGREEMENT"
18818	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18819	//   "RESOURCE_NOT_DELETED"
18820	//   "SCHEMA_VALIDATION_IGNORED"
18821	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18822	//   "UNDECLARED_PROPERTIES"
18823	//   "UNREACHABLE"
18824	Code string `json:"code,omitempty"`
18825
18826	// Data: [Output Only] Metadata about this warning in key: value format.
18827	// For example:
18828	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18829	Data []*SslCertificateListWarningData `json:"data,omitempty"`
18830
18831	// Message: [Output Only] A human-readable description of the warning
18832	// code.
18833	Message string `json:"message,omitempty"`
18834
18835	// ForceSendFields is a list of field names (e.g. "Code") to
18836	// unconditionally include in API requests. By default, fields with
18837	// empty values are omitted from API requests. However, any non-pointer,
18838	// non-interface field appearing in ForceSendFields will be sent to the
18839	// server regardless of whether the field is empty or not. This may be
18840	// used to include empty fields in Patch requests.
18841	ForceSendFields []string `json:"-"`
18842
18843	// NullFields is a list of field names (e.g. "Code") to include in API
18844	// requests with the JSON null value. By default, fields with empty
18845	// values are omitted from API requests. However, any field with an
18846	// empty value appearing in NullFields will be sent to the server as
18847	// null. It is an error if a field in this list has a non-empty value.
18848	// This may be used to include null fields in Patch requests.
18849	NullFields []string `json:"-"`
18850}
18851
18852func (s *SslCertificateListWarning) MarshalJSON() ([]byte, error) {
18853	type NoMethod SslCertificateListWarning
18854	raw := NoMethod(*s)
18855	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18856}
18857
18858type SslCertificateListWarningData struct {
18859	// Key: [Output Only] A key that provides more detail on the warning
18860	// being returned. For example, for warnings where there are no results
18861	// in a list request for a particular zone, this key might be scope and
18862	// the key value might be the zone name. Other examples might be a key
18863	// indicating a deprecated resource and a suggested replacement, or a
18864	// warning about invalid network settings (for example, if an instance
18865	// attempts to perform IP forwarding but is not enabled for IP
18866	// forwarding).
18867	Key string `json:"key,omitempty"`
18868
18869	// Value: [Output Only] A warning data value corresponding to the key.
18870	Value string `json:"value,omitempty"`
18871
18872	// ForceSendFields is a list of field names (e.g. "Key") to
18873	// unconditionally include in API requests. By default, fields with
18874	// empty values are omitted from API requests. However, any non-pointer,
18875	// non-interface field appearing in ForceSendFields will be sent to the
18876	// server regardless of whether the field is empty or not. This may be
18877	// used to include empty fields in Patch requests.
18878	ForceSendFields []string `json:"-"`
18879
18880	// NullFields is a list of field names (e.g. "Key") to include in API
18881	// requests with the JSON null value. By default, fields with empty
18882	// values are omitted from API requests. However, any field with an
18883	// empty value appearing in NullFields will be sent to the server as
18884	// null. It is an error if a field in this list has a non-empty value.
18885	// This may be used to include null fields in Patch requests.
18886	NullFields []string `json:"-"`
18887}
18888
18889func (s *SslCertificateListWarningData) MarshalJSON() ([]byte, error) {
18890	type NoMethod SslCertificateListWarningData
18891	raw := NoMethod(*s)
18892	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18893}
18894
18895type SslPoliciesList struct {
18896	// Id: [Output Only] Unique identifier for the resource; defined by the
18897	// server.
18898	Id string `json:"id,omitempty"`
18899
18900	// Items: A list of SslPolicy resources.
18901	Items []*SslPolicy `json:"items,omitempty"`
18902
18903	// Kind: [Output Only] Type of the resource. Always
18904	// compute#sslPoliciesList for lists of sslPolicies.
18905	Kind string `json:"kind,omitempty"`
18906
18907	// NextPageToken: [Output Only] This token allows you to get the next
18908	// page of results for list requests. If the number of results is larger
18909	// than maxResults, use the nextPageToken as a value for the query
18910	// parameter pageToken in the next list request. Subsequent list
18911	// requests will have their own nextPageToken to continue paging through
18912	// the results.
18913	NextPageToken string `json:"nextPageToken,omitempty"`
18914
18915	// SelfLink: [Output Only] Server-defined URL for this resource.
18916	SelfLink string `json:"selfLink,omitempty"`
18917
18918	// Warning: [Output Only] Informational warning message.
18919	Warning *SslPoliciesListWarning `json:"warning,omitempty"`
18920
18921	// ServerResponse contains the HTTP response code and headers from the
18922	// server.
18923	googleapi.ServerResponse `json:"-"`
18924
18925	// ForceSendFields is a list of field names (e.g. "Id") to
18926	// unconditionally include in API requests. By default, fields with
18927	// empty values are omitted from API requests. However, any non-pointer,
18928	// non-interface field appearing in ForceSendFields will be sent to the
18929	// server regardless of whether the field is empty or not. This may be
18930	// used to include empty fields in Patch requests.
18931	ForceSendFields []string `json:"-"`
18932
18933	// NullFields is a list of field names (e.g. "Id") to include in API
18934	// requests with the JSON null value. By default, fields with empty
18935	// values are omitted from API requests. However, any field with an
18936	// empty value appearing in NullFields will be sent to the server as
18937	// null. It is an error if a field in this list has a non-empty value.
18938	// This may be used to include null fields in Patch requests.
18939	NullFields []string `json:"-"`
18940}
18941
18942func (s *SslPoliciesList) MarshalJSON() ([]byte, error) {
18943	type NoMethod SslPoliciesList
18944	raw := NoMethod(*s)
18945	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18946}
18947
18948// SslPoliciesListWarning: [Output Only] Informational warning message.
18949type SslPoliciesListWarning struct {
18950	// Code: [Output Only] A warning code, if applicable. For example,
18951	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18952	// the response.
18953	//
18954	// Possible values:
18955	//   "CLEANUP_FAILED"
18956	//   "DEPRECATED_RESOURCE_USED"
18957	//   "DEPRECATED_TYPE_USED"
18958	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18959	//   "EXPERIMENTAL_TYPE_USED"
18960	//   "EXTERNAL_API_WARNING"
18961	//   "FIELD_VALUE_OVERRIDEN"
18962	//   "INJECTED_KERNELS_DEPRECATED"
18963	//   "MISSING_TYPE_DEPENDENCY"
18964	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18965	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18966	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18967	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18968	//   "NEXT_HOP_NOT_RUNNING"
18969	//   "NOT_CRITICAL_ERROR"
18970	//   "NO_RESULTS_ON_PAGE"
18971	//   "REQUIRED_TOS_AGREEMENT"
18972	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18973	//   "RESOURCE_NOT_DELETED"
18974	//   "SCHEMA_VALIDATION_IGNORED"
18975	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18976	//   "UNDECLARED_PROPERTIES"
18977	//   "UNREACHABLE"
18978	Code string `json:"code,omitempty"`
18979
18980	// Data: [Output Only] Metadata about this warning in key: value format.
18981	// For example:
18982	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18983	Data []*SslPoliciesListWarningData `json:"data,omitempty"`
18984
18985	// Message: [Output Only] A human-readable description of the warning
18986	// code.
18987	Message string `json:"message,omitempty"`
18988
18989	// ForceSendFields is a list of field names (e.g. "Code") to
18990	// unconditionally include in API requests. By default, fields with
18991	// empty values are omitted from API requests. However, any non-pointer,
18992	// non-interface field appearing in ForceSendFields will be sent to the
18993	// server regardless of whether the field is empty or not. This may be
18994	// used to include empty fields in Patch requests.
18995	ForceSendFields []string `json:"-"`
18996
18997	// NullFields is a list of field names (e.g. "Code") to include in API
18998	// requests with the JSON null value. By default, fields with empty
18999	// values are omitted from API requests. However, any field with an
19000	// empty value appearing in NullFields will be sent to the server as
19001	// null. It is an error if a field in this list has a non-empty value.
19002	// This may be used to include null fields in Patch requests.
19003	NullFields []string `json:"-"`
19004}
19005
19006func (s *SslPoliciesListWarning) MarshalJSON() ([]byte, error) {
19007	type NoMethod SslPoliciesListWarning
19008	raw := NoMethod(*s)
19009	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19010}
19011
19012type SslPoliciesListWarningData struct {
19013	// Key: [Output Only] A key that provides more detail on the warning
19014	// being returned. For example, for warnings where there are no results
19015	// in a list request for a particular zone, this key might be scope and
19016	// the key value might be the zone name. Other examples might be a key
19017	// indicating a deprecated resource and a suggested replacement, or a
19018	// warning about invalid network settings (for example, if an instance
19019	// attempts to perform IP forwarding but is not enabled for IP
19020	// forwarding).
19021	Key string `json:"key,omitempty"`
19022
19023	// Value: [Output Only] A warning data value corresponding to the key.
19024	Value string `json:"value,omitempty"`
19025
19026	// ForceSendFields is a list of field names (e.g. "Key") to
19027	// unconditionally include in API requests. By default, fields with
19028	// empty values are omitted from API requests. However, any non-pointer,
19029	// non-interface field appearing in ForceSendFields will be sent to the
19030	// server regardless of whether the field is empty or not. This may be
19031	// used to include empty fields in Patch requests.
19032	ForceSendFields []string `json:"-"`
19033
19034	// NullFields is a list of field names (e.g. "Key") to include in API
19035	// requests with the JSON null value. By default, fields with empty
19036	// values are omitted from API requests. However, any field with an
19037	// empty value appearing in NullFields will be sent to the server as
19038	// null. It is an error if a field in this list has a non-empty value.
19039	// This may be used to include null fields in Patch requests.
19040	NullFields []string `json:"-"`
19041}
19042
19043func (s *SslPoliciesListWarningData) MarshalJSON() ([]byte, error) {
19044	type NoMethod SslPoliciesListWarningData
19045	raw := NoMethod(*s)
19046	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19047}
19048
19049type SslPoliciesListAvailableFeaturesResponse struct {
19050	Features []string `json:"features,omitempty"`
19051
19052	// ServerResponse contains the HTTP response code and headers from the
19053	// server.
19054	googleapi.ServerResponse `json:"-"`
19055
19056	// ForceSendFields is a list of field names (e.g. "Features") to
19057	// unconditionally include in API requests. By default, fields with
19058	// empty values are omitted from API requests. However, any non-pointer,
19059	// non-interface field appearing in ForceSendFields will be sent to the
19060	// server regardless of whether the field is empty or not. This may be
19061	// used to include empty fields in Patch requests.
19062	ForceSendFields []string `json:"-"`
19063
19064	// NullFields is a list of field names (e.g. "Features") to include in
19065	// API requests with the JSON null value. By default, fields with empty
19066	// values are omitted from API requests. However, any field with an
19067	// empty value appearing in NullFields will be sent to the server as
19068	// null. It is an error if a field in this list has a non-empty value.
19069	// This may be used to include null fields in Patch requests.
19070	NullFields []string `json:"-"`
19071}
19072
19073func (s *SslPoliciesListAvailableFeaturesResponse) MarshalJSON() ([]byte, error) {
19074	type NoMethod SslPoliciesListAvailableFeaturesResponse
19075	raw := NoMethod(*s)
19076	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19077}
19078
19079// SslPolicy: A SSL policy specifies the server-side support for SSL
19080// features. This can be attached to a TargetHttpsProxy or a
19081// TargetSslProxy. This affects connections between clients and the
19082// HTTPS or SSL proxy load balancer. They do not affect the connection
19083// between the load balancers and the backends.
19084type SslPolicy struct {
19085	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
19086	// format.
19087	CreationTimestamp string `json:"creationTimestamp,omitempty"`
19088
19089	// CustomFeatures: A list of features enabled when the selected profile
19090	// is CUSTOM. The
19091	// - method returns the set of features that can be specified in this
19092	// list. This field must be empty if the profile is not CUSTOM.
19093	CustomFeatures []string `json:"customFeatures,omitempty"`
19094
19095	// Description: An optional description of this resource. Provide this
19096	// property when you create the resource.
19097	Description string `json:"description,omitempty"`
19098
19099	// EnabledFeatures: [Output Only] The list of features enabled in the
19100	// SSL policy.
19101	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
19102
19103	// Fingerprint: Fingerprint of this resource. A hash of the contents
19104	// stored in this object. This field is used in optimistic locking. This
19105	// field will be ignored when inserting a SslPolicy. An up-to-date
19106	// fingerprint must be provided in order to update the SslPolicy.
19107	Fingerprint string `json:"fingerprint,omitempty"`
19108
19109	// Id: [Output Only] The unique identifier for the resource. This
19110	// identifier is defined by the server.
19111	Id uint64 `json:"id,omitempty,string"`
19112
19113	// Kind: [Output only] Type of the resource. Always compute#sslPolicyfor
19114	// SSL policies.
19115	Kind string `json:"kind,omitempty"`
19116
19117	// MinTlsVersion: The minimum version of SSL protocol that can be used
19118	// by the clients to establish a connection with the load balancer. This
19119	// can be one of TLS_1_0, TLS_1_1, TLS_1_2.
19120	//
19121	// Possible values:
19122	//   "TLS_1_0"
19123	//   "TLS_1_1"
19124	//   "TLS_1_2"
19125	MinTlsVersion string `json:"minTlsVersion,omitempty"`
19126
19127	// Name: Name of the resource. The name must be 1-63 characters long,
19128	// and comply with RFC1035. Specifically, the name must be 1-63
19129	// characters long and match the regular expression
19130	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
19131	// a lowercase letter, and all following characters must be a dash,
19132	// lowercase letter, or digit, except the last character, which cannot
19133	// be a dash.
19134	Name string `json:"name,omitempty"`
19135
19136	// Profile: Profile specifies the set of SSL features that can be used
19137	// by the load balancer when negotiating SSL with clients. This can be
19138	// one of COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM,
19139	// the set of SSL features to enable must be specified in the
19140	// customFeatures field.
19141	//
19142	// Possible values:
19143	//   "COMPATIBLE"
19144	//   "CUSTOM"
19145	//   "MODERN"
19146	//   "RESTRICTED"
19147	Profile string `json:"profile,omitempty"`
19148
19149	// SelfLink: [Output Only] Server-defined URL for the resource.
19150	SelfLink string `json:"selfLink,omitempty"`
19151
19152	// Warnings: [Output Only] If potential misconfigurations are detected
19153	// for this SSL policy, this field will be populated with warning
19154	// messages.
19155	Warnings []*SslPolicyWarnings `json:"warnings,omitempty"`
19156
19157	// ServerResponse contains the HTTP response code and headers from the
19158	// server.
19159	googleapi.ServerResponse `json:"-"`
19160
19161	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
19162	// to unconditionally include in API requests. By default, fields with
19163	// empty values are omitted from API requests. However, any non-pointer,
19164	// non-interface field appearing in ForceSendFields will be sent to the
19165	// server regardless of whether the field is empty or not. This may be
19166	// used to include empty fields in Patch requests.
19167	ForceSendFields []string `json:"-"`
19168
19169	// NullFields is a list of field names (e.g. "CreationTimestamp") to
19170	// include in API requests with the JSON null value. By default, fields
19171	// with empty values are omitted from API requests. However, any field
19172	// with an empty value appearing in NullFields will be sent to the
19173	// server as null. It is an error if a field in this list has a
19174	// non-empty value. This may be used to include null fields in Patch
19175	// requests.
19176	NullFields []string `json:"-"`
19177}
19178
19179func (s *SslPolicy) MarshalJSON() ([]byte, error) {
19180	type NoMethod SslPolicy
19181	raw := NoMethod(*s)
19182	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19183}
19184
19185type SslPolicyWarnings struct {
19186	// Code: [Output Only] A warning code, if applicable. For example,
19187	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19188	// the response.
19189	//
19190	// Possible values:
19191	//   "CLEANUP_FAILED"
19192	//   "DEPRECATED_RESOURCE_USED"
19193	//   "DEPRECATED_TYPE_USED"
19194	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19195	//   "EXPERIMENTAL_TYPE_USED"
19196	//   "EXTERNAL_API_WARNING"
19197	//   "FIELD_VALUE_OVERRIDEN"
19198	//   "INJECTED_KERNELS_DEPRECATED"
19199	//   "MISSING_TYPE_DEPENDENCY"
19200	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19201	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19202	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19203	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19204	//   "NEXT_HOP_NOT_RUNNING"
19205	//   "NOT_CRITICAL_ERROR"
19206	//   "NO_RESULTS_ON_PAGE"
19207	//   "REQUIRED_TOS_AGREEMENT"
19208	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19209	//   "RESOURCE_NOT_DELETED"
19210	//   "SCHEMA_VALIDATION_IGNORED"
19211	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19212	//   "UNDECLARED_PROPERTIES"
19213	//   "UNREACHABLE"
19214	Code string `json:"code,omitempty"`
19215
19216	// Data: [Output Only] Metadata about this warning in key: value format.
19217	// For example:
19218	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19219	Data []*SslPolicyWarningsData `json:"data,omitempty"`
19220
19221	// Message: [Output Only] A human-readable description of the warning
19222	// code.
19223	Message string `json:"message,omitempty"`
19224
19225	// ForceSendFields is a list of field names (e.g. "Code") to
19226	// unconditionally include in API requests. By default, fields with
19227	// empty values are omitted from API requests. However, any non-pointer,
19228	// non-interface field appearing in ForceSendFields will be sent to the
19229	// server regardless of whether the field is empty or not. This may be
19230	// used to include empty fields in Patch requests.
19231	ForceSendFields []string `json:"-"`
19232
19233	// NullFields is a list of field names (e.g. "Code") to include in API
19234	// requests with the JSON null value. By default, fields with empty
19235	// values are omitted from API requests. However, any field with an
19236	// empty value appearing in NullFields will be sent to the server as
19237	// null. It is an error if a field in this list has a non-empty value.
19238	// This may be used to include null fields in Patch requests.
19239	NullFields []string `json:"-"`
19240}
19241
19242func (s *SslPolicyWarnings) MarshalJSON() ([]byte, error) {
19243	type NoMethod SslPolicyWarnings
19244	raw := NoMethod(*s)
19245	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19246}
19247
19248type SslPolicyWarningsData struct {
19249	// Key: [Output Only] A key that provides more detail on the warning
19250	// being returned. For example, for warnings where there are no results
19251	// in a list request for a particular zone, this key might be scope and
19252	// the key value might be the zone name. Other examples might be a key
19253	// indicating a deprecated resource and a suggested replacement, or a
19254	// warning about invalid network settings (for example, if an instance
19255	// attempts to perform IP forwarding but is not enabled for IP
19256	// forwarding).
19257	Key string `json:"key,omitempty"`
19258
19259	// Value: [Output Only] A warning data value corresponding to the key.
19260	Value string `json:"value,omitempty"`
19261
19262	// ForceSendFields is a list of field names (e.g. "Key") to
19263	// unconditionally include in API requests. By default, fields with
19264	// empty values are omitted from API requests. However, any non-pointer,
19265	// non-interface field appearing in ForceSendFields will be sent to the
19266	// server regardless of whether the field is empty or not. This may be
19267	// used to include empty fields in Patch requests.
19268	ForceSendFields []string `json:"-"`
19269
19270	// NullFields is a list of field names (e.g. "Key") to include in API
19271	// requests with the JSON null value. By default, fields with empty
19272	// values are omitted from API requests. However, any field with an
19273	// empty value appearing in NullFields will be sent to the server as
19274	// null. It is an error if a field in this list has a non-empty value.
19275	// This may be used to include null fields in Patch requests.
19276	NullFields []string `json:"-"`
19277}
19278
19279func (s *SslPolicyWarningsData) MarshalJSON() ([]byte, error) {
19280	type NoMethod SslPolicyWarningsData
19281	raw := NoMethod(*s)
19282	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19283}
19284
19285type SslPolicyReference struct {
19286	// SslPolicy: URL of the SSL policy resource. Set this to empty string
19287	// to clear any existing SSL policy associated with the target proxy
19288	// resource.
19289	SslPolicy string `json:"sslPolicy,omitempty"`
19290
19291	// ForceSendFields is a list of field names (e.g. "SslPolicy") to
19292	// unconditionally include in API requests. By default, fields with
19293	// empty values are omitted from API requests. However, any non-pointer,
19294	// non-interface field appearing in ForceSendFields will be sent to the
19295	// server regardless of whether the field is empty or not. This may be
19296	// used to include empty fields in Patch requests.
19297	ForceSendFields []string `json:"-"`
19298
19299	// NullFields is a list of field names (e.g. "SslPolicy") to include in
19300	// API requests with the JSON null value. By default, fields with empty
19301	// values are omitted from API requests. However, any field with an
19302	// empty value appearing in NullFields will be sent to the server as
19303	// null. It is an error if a field in this list has a non-empty value.
19304	// This may be used to include null fields in Patch requests.
19305	NullFields []string `json:"-"`
19306}
19307
19308func (s *SslPolicyReference) MarshalJSON() ([]byte, error) {
19309	type NoMethod SslPolicyReference
19310	raw := NoMethod(*s)
19311	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19312}
19313
19314// Subnetwork: A Subnetwork resource. (== resource_for beta.subnetworks
19315// ==) (== resource_for v1.subnetworks ==)
19316type Subnetwork struct {
19317	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
19318	// format.
19319	CreationTimestamp string `json:"creationTimestamp,omitempty"`
19320
19321	// Description: An optional description of this resource. Provide this
19322	// property when you create the resource. This field can be set only at
19323	// resource creation time.
19324	Description string `json:"description,omitempty"`
19325
19326	// Fingerprint: Fingerprint of this resource. A hash of the contents
19327	// stored in this object. This field is used in optimistic locking. This
19328	// field will be ignored when inserting a Subnetwork. An up-to-date
19329	// fingerprint must be provided in order to update the Subnetwork.
19330	Fingerprint string `json:"fingerprint,omitempty"`
19331
19332	// GatewayAddress: [Output Only] The gateway address for default routes
19333	// to reach destination addresses outside this subnetwork.
19334	GatewayAddress string `json:"gatewayAddress,omitempty"`
19335
19336	// Id: [Output Only] The unique identifier for the resource. This
19337	// identifier is defined by the server.
19338	Id uint64 `json:"id,omitempty,string"`
19339
19340	// IpCidrRange: The range of internal addresses that are owned by this
19341	// subnetwork. Provide this property when you create the subnetwork. For
19342	// example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and
19343	// non-overlapping within a network. Only IPv4 is supported. This field
19344	// can be set only at resource creation time.
19345	IpCidrRange string `json:"ipCidrRange,omitempty"`
19346
19347	// Kind: [Output Only] Type of the resource. Always compute#subnetwork
19348	// for Subnetwork resources.
19349	Kind string `json:"kind,omitempty"`
19350
19351	// Name: The name of the resource, provided by the client when initially
19352	// creating the resource. The name must be 1-63 characters long, and
19353	// comply with RFC1035. Specifically, the name must be 1-63 characters
19354	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
19355	// which means the first character must be a lowercase letter, and all
19356	// following characters must be a dash, lowercase letter, or digit,
19357	// except the last character, which cannot be a dash.
19358	Name string `json:"name,omitempty"`
19359
19360	// Network: The URL of the network to which this subnetwork belongs,
19361	// provided by the client when initially creating the subnetwork. Only
19362	// networks that are in the distributed mode can have subnetworks. This
19363	// field can be set only at resource creation time.
19364	Network string `json:"network,omitempty"`
19365
19366	// PrivateIpGoogleAccess: Whether the VMs in this subnet can access
19367	// Google services without assigned external IP addresses. This field
19368	// can be both set at resource creation time and updated using
19369	// setPrivateIpGoogleAccess.
19370	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
19371
19372	// Region: URL of the region where the Subnetwork resides. This field
19373	// can be set only at resource creation time.
19374	Region string `json:"region,omitempty"`
19375
19376	// SecondaryIpRanges: An array of configurations for secondary IP ranges
19377	// for VM instances contained in this subnetwork. The primary IP of such
19378	// VM must belong to the primary ipCidrRange of the subnetwork. The
19379	// alias IPs may belong to either primary or secondary ranges.
19380	SecondaryIpRanges []*SubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
19381
19382	// SelfLink: [Output Only] Server-defined URL for the resource.
19383	SelfLink string `json:"selfLink,omitempty"`
19384
19385	// ServerResponse contains the HTTP response code and headers from the
19386	// server.
19387	googleapi.ServerResponse `json:"-"`
19388
19389	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
19390	// to unconditionally include in API requests. By default, fields with
19391	// empty values are omitted from API requests. However, any non-pointer,
19392	// non-interface field appearing in ForceSendFields will be sent to the
19393	// server regardless of whether the field is empty or not. This may be
19394	// used to include empty fields in Patch requests.
19395	ForceSendFields []string `json:"-"`
19396
19397	// NullFields is a list of field names (e.g. "CreationTimestamp") to
19398	// include in API requests with the JSON null value. By default, fields
19399	// with empty values are omitted from API requests. However, any field
19400	// with an empty value appearing in NullFields will be sent to the
19401	// server as null. It is an error if a field in this list has a
19402	// non-empty value. This may be used to include null fields in Patch
19403	// requests.
19404	NullFields []string `json:"-"`
19405}
19406
19407func (s *Subnetwork) MarshalJSON() ([]byte, error) {
19408	type NoMethod Subnetwork
19409	raw := NoMethod(*s)
19410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19411}
19412
19413type SubnetworkAggregatedList struct {
19414	// Id: [Output Only] Unique identifier for the resource; defined by the
19415	// server.
19416	Id string `json:"id,omitempty"`
19417
19418	// Items: A list of SubnetworksScopedList resources.
19419	Items map[string]SubnetworksScopedList `json:"items,omitempty"`
19420
19421	// Kind: [Output Only] Type of resource. Always
19422	// compute#subnetworkAggregatedList for aggregated lists of subnetworks.
19423	Kind string `json:"kind,omitempty"`
19424
19425	// NextPageToken: [Output Only] This token allows you to get the next
19426	// page of results for list requests. If the number of results is larger
19427	// than maxResults, use the nextPageToken as a value for the query
19428	// parameter pageToken in the next list request. Subsequent list
19429	// requests will have their own nextPageToken to continue paging through
19430	// the results.
19431	NextPageToken string `json:"nextPageToken,omitempty"`
19432
19433	// SelfLink: [Output Only] Server-defined URL for this resource.
19434	SelfLink string `json:"selfLink,omitempty"`
19435
19436	// Warning: [Output Only] Informational warning message.
19437	Warning *SubnetworkAggregatedListWarning `json:"warning,omitempty"`
19438
19439	// ServerResponse contains the HTTP response code and headers from the
19440	// server.
19441	googleapi.ServerResponse `json:"-"`
19442
19443	// ForceSendFields is a list of field names (e.g. "Id") to
19444	// unconditionally include in API requests. By default, fields with
19445	// empty values are omitted from API requests. However, any non-pointer,
19446	// non-interface field appearing in ForceSendFields will be sent to the
19447	// server regardless of whether the field is empty or not. This may be
19448	// used to include empty fields in Patch requests.
19449	ForceSendFields []string `json:"-"`
19450
19451	// NullFields is a list of field names (e.g. "Id") to include in API
19452	// requests with the JSON null value. By default, fields with empty
19453	// values are omitted from API requests. However, any field with an
19454	// empty value appearing in NullFields will be sent to the server as
19455	// null. It is an error if a field in this list has a non-empty value.
19456	// This may be used to include null fields in Patch requests.
19457	NullFields []string `json:"-"`
19458}
19459
19460func (s *SubnetworkAggregatedList) MarshalJSON() ([]byte, error) {
19461	type NoMethod SubnetworkAggregatedList
19462	raw := NoMethod(*s)
19463	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19464}
19465
19466// SubnetworkAggregatedListWarning: [Output Only] Informational warning
19467// message.
19468type SubnetworkAggregatedListWarning struct {
19469	// Code: [Output Only] A warning code, if applicable. For example,
19470	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19471	// the response.
19472	//
19473	// Possible values:
19474	//   "CLEANUP_FAILED"
19475	//   "DEPRECATED_RESOURCE_USED"
19476	//   "DEPRECATED_TYPE_USED"
19477	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19478	//   "EXPERIMENTAL_TYPE_USED"
19479	//   "EXTERNAL_API_WARNING"
19480	//   "FIELD_VALUE_OVERRIDEN"
19481	//   "INJECTED_KERNELS_DEPRECATED"
19482	//   "MISSING_TYPE_DEPENDENCY"
19483	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19484	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19485	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19486	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19487	//   "NEXT_HOP_NOT_RUNNING"
19488	//   "NOT_CRITICAL_ERROR"
19489	//   "NO_RESULTS_ON_PAGE"
19490	//   "REQUIRED_TOS_AGREEMENT"
19491	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19492	//   "RESOURCE_NOT_DELETED"
19493	//   "SCHEMA_VALIDATION_IGNORED"
19494	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19495	//   "UNDECLARED_PROPERTIES"
19496	//   "UNREACHABLE"
19497	Code string `json:"code,omitempty"`
19498
19499	// Data: [Output Only] Metadata about this warning in key: value format.
19500	// For example:
19501	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19502	Data []*SubnetworkAggregatedListWarningData `json:"data,omitempty"`
19503
19504	// Message: [Output Only] A human-readable description of the warning
19505	// code.
19506	Message string `json:"message,omitempty"`
19507
19508	// ForceSendFields is a list of field names (e.g. "Code") to
19509	// unconditionally include in API requests. By default, fields with
19510	// empty values are omitted from API requests. However, any non-pointer,
19511	// non-interface field appearing in ForceSendFields will be sent to the
19512	// server regardless of whether the field is empty or not. This may be
19513	// used to include empty fields in Patch requests.
19514	ForceSendFields []string `json:"-"`
19515
19516	// NullFields is a list of field names (e.g. "Code") to include in API
19517	// requests with the JSON null value. By default, fields with empty
19518	// values are omitted from API requests. However, any field with an
19519	// empty value appearing in NullFields will be sent to the server as
19520	// null. It is an error if a field in this list has a non-empty value.
19521	// This may be used to include null fields in Patch requests.
19522	NullFields []string `json:"-"`
19523}
19524
19525func (s *SubnetworkAggregatedListWarning) MarshalJSON() ([]byte, error) {
19526	type NoMethod SubnetworkAggregatedListWarning
19527	raw := NoMethod(*s)
19528	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19529}
19530
19531type SubnetworkAggregatedListWarningData struct {
19532	// Key: [Output Only] A key that provides more detail on the warning
19533	// being returned. For example, for warnings where there are no results
19534	// in a list request for a particular zone, this key might be scope and
19535	// the key value might be the zone name. Other examples might be a key
19536	// indicating a deprecated resource and a suggested replacement, or a
19537	// warning about invalid network settings (for example, if an instance
19538	// attempts to perform IP forwarding but is not enabled for IP
19539	// forwarding).
19540	Key string `json:"key,omitempty"`
19541
19542	// Value: [Output Only] A warning data value corresponding to the key.
19543	Value string `json:"value,omitempty"`
19544
19545	// ForceSendFields is a list of field names (e.g. "Key") to
19546	// unconditionally include in API requests. By default, fields with
19547	// empty values are omitted from API requests. However, any non-pointer,
19548	// non-interface field appearing in ForceSendFields will be sent to the
19549	// server regardless of whether the field is empty or not. This may be
19550	// used to include empty fields in Patch requests.
19551	ForceSendFields []string `json:"-"`
19552
19553	// NullFields is a list of field names (e.g. "Key") to include in API
19554	// requests with the JSON null value. By default, fields with empty
19555	// values are omitted from API requests. However, any field with an
19556	// empty value appearing in NullFields will be sent to the server as
19557	// null. It is an error if a field in this list has a non-empty value.
19558	// This may be used to include null fields in Patch requests.
19559	NullFields []string `json:"-"`
19560}
19561
19562func (s *SubnetworkAggregatedListWarningData) MarshalJSON() ([]byte, error) {
19563	type NoMethod SubnetworkAggregatedListWarningData
19564	raw := NoMethod(*s)
19565	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19566}
19567
19568// SubnetworkList: Contains a list of Subnetwork resources.
19569type SubnetworkList struct {
19570	// Id: [Output Only] Unique identifier for the resource; defined by the
19571	// server.
19572	Id string `json:"id,omitempty"`
19573
19574	// Items: A list of Subnetwork resources.
19575	Items []*Subnetwork `json:"items,omitempty"`
19576
19577	// Kind: [Output Only] Type of resource. Always compute#subnetworkList
19578	// for lists of subnetworks.
19579	Kind string `json:"kind,omitempty"`
19580
19581	// NextPageToken: [Output Only] This token allows you to get the next
19582	// page of results for list requests. If the number of results is larger
19583	// than maxResults, use the nextPageToken as a value for the query
19584	// parameter pageToken in the next list request. Subsequent list
19585	// requests will have their own nextPageToken to continue paging through
19586	// the results.
19587	NextPageToken string `json:"nextPageToken,omitempty"`
19588
19589	// SelfLink: [Output Only] Server-defined URL for this resource.
19590	SelfLink string `json:"selfLink,omitempty"`
19591
19592	// Warning: [Output Only] Informational warning message.
19593	Warning *SubnetworkListWarning `json:"warning,omitempty"`
19594
19595	// ServerResponse contains the HTTP response code and headers from the
19596	// server.
19597	googleapi.ServerResponse `json:"-"`
19598
19599	// ForceSendFields is a list of field names (e.g. "Id") to
19600	// unconditionally include in API requests. By default, fields with
19601	// empty values are omitted from API requests. However, any non-pointer,
19602	// non-interface field appearing in ForceSendFields will be sent to the
19603	// server regardless of whether the field is empty or not. This may be
19604	// used to include empty fields in Patch requests.
19605	ForceSendFields []string `json:"-"`
19606
19607	// NullFields is a list of field names (e.g. "Id") to include in API
19608	// requests with the JSON null value. By default, fields with empty
19609	// values are omitted from API requests. However, any field with an
19610	// empty value appearing in NullFields will be sent to the server as
19611	// null. It is an error if a field in this list has a non-empty value.
19612	// This may be used to include null fields in Patch requests.
19613	NullFields []string `json:"-"`
19614}
19615
19616func (s *SubnetworkList) MarshalJSON() ([]byte, error) {
19617	type NoMethod SubnetworkList
19618	raw := NoMethod(*s)
19619	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19620}
19621
19622// SubnetworkListWarning: [Output Only] Informational warning message.
19623type SubnetworkListWarning struct {
19624	// Code: [Output Only] A warning code, if applicable. For example,
19625	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19626	// the response.
19627	//
19628	// Possible values:
19629	//   "CLEANUP_FAILED"
19630	//   "DEPRECATED_RESOURCE_USED"
19631	//   "DEPRECATED_TYPE_USED"
19632	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19633	//   "EXPERIMENTAL_TYPE_USED"
19634	//   "EXTERNAL_API_WARNING"
19635	//   "FIELD_VALUE_OVERRIDEN"
19636	//   "INJECTED_KERNELS_DEPRECATED"
19637	//   "MISSING_TYPE_DEPENDENCY"
19638	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19639	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19640	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19641	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19642	//   "NEXT_HOP_NOT_RUNNING"
19643	//   "NOT_CRITICAL_ERROR"
19644	//   "NO_RESULTS_ON_PAGE"
19645	//   "REQUIRED_TOS_AGREEMENT"
19646	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19647	//   "RESOURCE_NOT_DELETED"
19648	//   "SCHEMA_VALIDATION_IGNORED"
19649	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19650	//   "UNDECLARED_PROPERTIES"
19651	//   "UNREACHABLE"
19652	Code string `json:"code,omitempty"`
19653
19654	// Data: [Output Only] Metadata about this warning in key: value format.
19655	// For example:
19656	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19657	Data []*SubnetworkListWarningData `json:"data,omitempty"`
19658
19659	// Message: [Output Only] A human-readable description of the warning
19660	// code.
19661	Message string `json:"message,omitempty"`
19662
19663	// ForceSendFields is a list of field names (e.g. "Code") to
19664	// unconditionally include in API requests. By default, fields with
19665	// empty values are omitted from API requests. However, any non-pointer,
19666	// non-interface field appearing in ForceSendFields will be sent to the
19667	// server regardless of whether the field is empty or not. This may be
19668	// used to include empty fields in Patch requests.
19669	ForceSendFields []string `json:"-"`
19670
19671	// NullFields is a list of field names (e.g. "Code") to include in API
19672	// requests with the JSON null value. By default, fields with empty
19673	// values are omitted from API requests. However, any field with an
19674	// empty value appearing in NullFields will be sent to the server as
19675	// null. It is an error if a field in this list has a non-empty value.
19676	// This may be used to include null fields in Patch requests.
19677	NullFields []string `json:"-"`
19678}
19679
19680func (s *SubnetworkListWarning) MarshalJSON() ([]byte, error) {
19681	type NoMethod SubnetworkListWarning
19682	raw := NoMethod(*s)
19683	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19684}
19685
19686type SubnetworkListWarningData struct {
19687	// Key: [Output Only] A key that provides more detail on the warning
19688	// being returned. For example, for warnings where there are no results
19689	// in a list request for a particular zone, this key might be scope and
19690	// the key value might be the zone name. Other examples might be a key
19691	// indicating a deprecated resource and a suggested replacement, or a
19692	// warning about invalid network settings (for example, if an instance
19693	// attempts to perform IP forwarding but is not enabled for IP
19694	// forwarding).
19695	Key string `json:"key,omitempty"`
19696
19697	// Value: [Output Only] A warning data value corresponding to the key.
19698	Value string `json:"value,omitempty"`
19699
19700	// ForceSendFields is a list of field names (e.g. "Key") to
19701	// unconditionally include in API requests. By default, fields with
19702	// empty values are omitted from API requests. However, any non-pointer,
19703	// non-interface field appearing in ForceSendFields will be sent to the
19704	// server regardless of whether the field is empty or not. This may be
19705	// used to include empty fields in Patch requests.
19706	ForceSendFields []string `json:"-"`
19707
19708	// NullFields is a list of field names (e.g. "Key") to include in API
19709	// requests with the JSON null value. By default, fields with empty
19710	// values are omitted from API requests. However, any field with an
19711	// empty value appearing in NullFields will be sent to the server as
19712	// null. It is an error if a field in this list has a non-empty value.
19713	// This may be used to include null fields in Patch requests.
19714	NullFields []string `json:"-"`
19715}
19716
19717func (s *SubnetworkListWarningData) MarshalJSON() ([]byte, error) {
19718	type NoMethod SubnetworkListWarningData
19719	raw := NoMethod(*s)
19720	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19721}
19722
19723// SubnetworkSecondaryRange: Represents a secondary IP range of a
19724// subnetwork.
19725type SubnetworkSecondaryRange struct {
19726	// IpCidrRange: The range of IP addresses belonging to this subnetwork
19727	// secondary range. Provide this property when you create the
19728	// subnetwork. Ranges must be unique and non-overlapping with all
19729	// primary and secondary IP ranges within a network. Only IPv4 is
19730	// supported.
19731	IpCidrRange string `json:"ipCidrRange,omitempty"`
19732
19733	// RangeName: The name associated with this subnetwork secondary range,
19734	// used when adding an alias IP range to a VM instance. The name must be
19735	// 1-63 characters long, and comply with RFC1035. The name must be
19736	// unique within the subnetwork.
19737	RangeName string `json:"rangeName,omitempty"`
19738
19739	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
19740	// unconditionally include in API requests. By default, fields with
19741	// empty values are omitted from API requests. However, any non-pointer,
19742	// non-interface field appearing in ForceSendFields will be sent to the
19743	// server regardless of whether the field is empty or not. This may be
19744	// used to include empty fields in Patch requests.
19745	ForceSendFields []string `json:"-"`
19746
19747	// NullFields is a list of field names (e.g. "IpCidrRange") to include
19748	// in API requests with the JSON null value. By default, fields with
19749	// empty values are omitted from API requests. However, any field with
19750	// an empty value appearing in NullFields will be sent to the server as
19751	// null. It is an error if a field in this list has a non-empty value.
19752	// This may be used to include null fields in Patch requests.
19753	NullFields []string `json:"-"`
19754}
19755
19756func (s *SubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
19757	type NoMethod SubnetworkSecondaryRange
19758	raw := NoMethod(*s)
19759	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19760}
19761
19762type SubnetworksExpandIpCidrRangeRequest struct {
19763	// IpCidrRange: The IP (in CIDR format or netmask) of internal addresses
19764	// that are legal on this Subnetwork. This range should be disjoint from
19765	// other subnetworks within this network. This range can only be larger
19766	// than (i.e. a superset of) the range previously defined before the
19767	// update.
19768	IpCidrRange string `json:"ipCidrRange,omitempty"`
19769
19770	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
19771	// unconditionally include in API requests. By default, fields with
19772	// empty values are omitted from API requests. However, any non-pointer,
19773	// non-interface field appearing in ForceSendFields will be sent to the
19774	// server regardless of whether the field is empty or not. This may be
19775	// used to include empty fields in Patch requests.
19776	ForceSendFields []string `json:"-"`
19777
19778	// NullFields is a list of field names (e.g. "IpCidrRange") to include
19779	// in API requests with the JSON null value. By default, fields with
19780	// empty values are omitted from API requests. However, any field with
19781	// an empty value appearing in NullFields will be sent to the server as
19782	// null. It is an error if a field in this list has a non-empty value.
19783	// This may be used to include null fields in Patch requests.
19784	NullFields []string `json:"-"`
19785}
19786
19787func (s *SubnetworksExpandIpCidrRangeRequest) MarshalJSON() ([]byte, error) {
19788	type NoMethod SubnetworksExpandIpCidrRangeRequest
19789	raw := NoMethod(*s)
19790	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19791}
19792
19793type SubnetworksScopedList struct {
19794	// Subnetworks: A list of subnetworks contained in this scope.
19795	Subnetworks []*Subnetwork `json:"subnetworks,omitempty"`
19796
19797	// Warning: An informational warning that appears when the list of
19798	// addresses is empty.
19799	Warning *SubnetworksScopedListWarning `json:"warning,omitempty"`
19800
19801	// ForceSendFields is a list of field names (e.g. "Subnetworks") to
19802	// unconditionally include in API requests. By default, fields with
19803	// empty values are omitted from API requests. However, any non-pointer,
19804	// non-interface field appearing in ForceSendFields will be sent to the
19805	// server regardless of whether the field is empty or not. This may be
19806	// used to include empty fields in Patch requests.
19807	ForceSendFields []string `json:"-"`
19808
19809	// NullFields is a list of field names (e.g. "Subnetworks") to include
19810	// in API requests with the JSON null value. By default, fields with
19811	// empty values are omitted from API requests. However, any field with
19812	// an empty value appearing in NullFields will be sent to the server as
19813	// null. It is an error if a field in this list has a non-empty value.
19814	// This may be used to include null fields in Patch requests.
19815	NullFields []string `json:"-"`
19816}
19817
19818func (s *SubnetworksScopedList) MarshalJSON() ([]byte, error) {
19819	type NoMethod SubnetworksScopedList
19820	raw := NoMethod(*s)
19821	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19822}
19823
19824// SubnetworksScopedListWarning: An informational warning that appears
19825// when the list of addresses is empty.
19826type SubnetworksScopedListWarning struct {
19827	// Code: [Output Only] A warning code, if applicable. For example,
19828	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19829	// the response.
19830	//
19831	// Possible values:
19832	//   "CLEANUP_FAILED"
19833	//   "DEPRECATED_RESOURCE_USED"
19834	//   "DEPRECATED_TYPE_USED"
19835	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19836	//   "EXPERIMENTAL_TYPE_USED"
19837	//   "EXTERNAL_API_WARNING"
19838	//   "FIELD_VALUE_OVERRIDEN"
19839	//   "INJECTED_KERNELS_DEPRECATED"
19840	//   "MISSING_TYPE_DEPENDENCY"
19841	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19842	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19843	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19844	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19845	//   "NEXT_HOP_NOT_RUNNING"
19846	//   "NOT_CRITICAL_ERROR"
19847	//   "NO_RESULTS_ON_PAGE"
19848	//   "REQUIRED_TOS_AGREEMENT"
19849	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19850	//   "RESOURCE_NOT_DELETED"
19851	//   "SCHEMA_VALIDATION_IGNORED"
19852	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19853	//   "UNDECLARED_PROPERTIES"
19854	//   "UNREACHABLE"
19855	Code string `json:"code,omitempty"`
19856
19857	// Data: [Output Only] Metadata about this warning in key: value format.
19858	// For example:
19859	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19860	Data []*SubnetworksScopedListWarningData `json:"data,omitempty"`
19861
19862	// Message: [Output Only] A human-readable description of the warning
19863	// code.
19864	Message string `json:"message,omitempty"`
19865
19866	// ForceSendFields is a list of field names (e.g. "Code") to
19867	// unconditionally include in API requests. By default, fields with
19868	// empty values are omitted from API requests. However, any non-pointer,
19869	// non-interface field appearing in ForceSendFields will be sent to the
19870	// server regardless of whether the field is empty or not. This may be
19871	// used to include empty fields in Patch requests.
19872	ForceSendFields []string `json:"-"`
19873
19874	// NullFields is a list of field names (e.g. "Code") to include in API
19875	// requests with the JSON null value. By default, fields with empty
19876	// values are omitted from API requests. However, any field with an
19877	// empty value appearing in NullFields will be sent to the server as
19878	// null. It is an error if a field in this list has a non-empty value.
19879	// This may be used to include null fields in Patch requests.
19880	NullFields []string `json:"-"`
19881}
19882
19883func (s *SubnetworksScopedListWarning) MarshalJSON() ([]byte, error) {
19884	type NoMethod SubnetworksScopedListWarning
19885	raw := NoMethod(*s)
19886	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19887}
19888
19889type SubnetworksScopedListWarningData struct {
19890	// Key: [Output Only] A key that provides more detail on the warning
19891	// being returned. For example, for warnings where there are no results
19892	// in a list request for a particular zone, this key might be scope and
19893	// the key value might be the zone name. Other examples might be a key
19894	// indicating a deprecated resource and a suggested replacement, or a
19895	// warning about invalid network settings (for example, if an instance
19896	// attempts to perform IP forwarding but is not enabled for IP
19897	// forwarding).
19898	Key string `json:"key,omitempty"`
19899
19900	// Value: [Output Only] A warning data value corresponding to the key.
19901	Value string `json:"value,omitempty"`
19902
19903	// ForceSendFields is a list of field names (e.g. "Key") to
19904	// unconditionally include in API requests. By default, fields with
19905	// empty values are omitted from API requests. However, any non-pointer,
19906	// non-interface field appearing in ForceSendFields will be sent to the
19907	// server regardless of whether the field is empty or not. This may be
19908	// used to include empty fields in Patch requests.
19909	ForceSendFields []string `json:"-"`
19910
19911	// NullFields is a list of field names (e.g. "Key") to include in API
19912	// requests with the JSON null value. By default, fields with empty
19913	// values are omitted from API requests. However, any field with an
19914	// empty value appearing in NullFields will be sent to the server as
19915	// null. It is an error if a field in this list has a non-empty value.
19916	// This may be used to include null fields in Patch requests.
19917	NullFields []string `json:"-"`
19918}
19919
19920func (s *SubnetworksScopedListWarningData) MarshalJSON() ([]byte, error) {
19921	type NoMethod SubnetworksScopedListWarningData
19922	raw := NoMethod(*s)
19923	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19924}
19925
19926type SubnetworksSetPrivateIpGoogleAccessRequest struct {
19927	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
19928
19929	// ForceSendFields is a list of field names (e.g.
19930	// "PrivateIpGoogleAccess") to unconditionally include in API requests.
19931	// By default, fields with empty values are omitted from API requests.
19932	// However, any non-pointer, non-interface field appearing in
19933	// ForceSendFields will be sent to the server regardless of whether the
19934	// field is empty or not. This may be used to include empty fields in
19935	// Patch requests.
19936	ForceSendFields []string `json:"-"`
19937
19938	// NullFields is a list of field names (e.g. "PrivateIpGoogleAccess") to
19939	// include in API requests with the JSON null value. By default, fields
19940	// with empty values are omitted from API requests. However, any field
19941	// with an empty value appearing in NullFields will be sent to the
19942	// server as null. It is an error if a field in this list has a
19943	// non-empty value. This may be used to include null fields in Patch
19944	// requests.
19945	NullFields []string `json:"-"`
19946}
19947
19948func (s *SubnetworksSetPrivateIpGoogleAccessRequest) MarshalJSON() ([]byte, error) {
19949	type NoMethod SubnetworksSetPrivateIpGoogleAccessRequest
19950	raw := NoMethod(*s)
19951	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19952}
19953
19954type TCPHealthCheck struct {
19955	// Port: The TCP port number for the health check request. The default
19956	// value is 80. Valid values are 1 through 65535.
19957	Port int64 `json:"port,omitempty"`
19958
19959	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
19960	// both port and port_name are defined, port takes precedence.
19961	PortName string `json:"portName,omitempty"`
19962
19963	// ProxyHeader: Specifies the type of proxy header to append before
19964	// sending data to the backend, either NONE or PROXY_V1. The default is
19965	// NONE.
19966	//
19967	// Possible values:
19968	//   "NONE"
19969	//   "PROXY_V1"
19970	ProxyHeader string `json:"proxyHeader,omitempty"`
19971
19972	// Request: The application data to send once the TCP connection has
19973	// been established (default value is empty). If both request and
19974	// response are empty, the connection establishment alone will indicate
19975	// health. The request data can only be ASCII.
19976	Request string `json:"request,omitempty"`
19977
19978	// Response: The bytes to match against the beginning of the response
19979	// data. If left empty (the default value), any response will indicate
19980	// health. The response data can only be ASCII.
19981	Response string `json:"response,omitempty"`
19982
19983	// ForceSendFields is a list of field names (e.g. "Port") to
19984	// unconditionally include in API requests. By default, fields with
19985	// empty values are omitted from API requests. However, any non-pointer,
19986	// non-interface field appearing in ForceSendFields will be sent to the
19987	// server regardless of whether the field is empty or not. This may be
19988	// used to include empty fields in Patch requests.
19989	ForceSendFields []string `json:"-"`
19990
19991	// NullFields is a list of field names (e.g. "Port") to include in API
19992	// requests with the JSON null value. By default, fields with empty
19993	// values are omitted from API requests. However, any field with an
19994	// empty value appearing in NullFields will be sent to the server as
19995	// null. It is an error if a field in this list has a non-empty value.
19996	// This may be used to include null fields in Patch requests.
19997	NullFields []string `json:"-"`
19998}
19999
20000func (s *TCPHealthCheck) MarshalJSON() ([]byte, error) {
20001	type NoMethod TCPHealthCheck
20002	raw := NoMethod(*s)
20003	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20004}
20005
20006// Tags: A set of instance tags.
20007type Tags struct {
20008	// Fingerprint: Specifies a fingerprint for this request, which is
20009	// essentially a hash of the tags' contents and used for optimistic
20010	// locking. The fingerprint is initially generated by Compute Engine and
20011	// changes after every request to modify or update tags. You must always
20012	// provide an up-to-date fingerprint hash in order to update or change
20013	// tags.
20014	//
20015	// To see the latest fingerprint, make get() request to the instance.
20016	Fingerprint string `json:"fingerprint,omitempty"`
20017
20018	// Items: An array of tags. Each tag must be 1-63 characters long, and
20019	// comply with RFC1035.
20020	Items []string `json:"items,omitempty"`
20021
20022	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
20023	// unconditionally include in API requests. By default, fields with
20024	// empty values are omitted from API requests. However, any non-pointer,
20025	// non-interface field appearing in ForceSendFields will be sent to the
20026	// server regardless of whether the field is empty or not. This may be
20027	// used to include empty fields in Patch requests.
20028	ForceSendFields []string `json:"-"`
20029
20030	// NullFields is a list of field names (e.g. "Fingerprint") to include
20031	// in API requests with the JSON null value. By default, fields with
20032	// empty values are omitted from API requests. However, any field with
20033	// an empty value appearing in NullFields will be sent to the server as
20034	// null. It is an error if a field in this list has a non-empty value.
20035	// This may be used to include null fields in Patch requests.
20036	NullFields []string `json:"-"`
20037}
20038
20039func (s *Tags) MarshalJSON() ([]byte, error) {
20040	type NoMethod Tags
20041	raw := NoMethod(*s)
20042	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20043}
20044
20045// TargetHttpProxy: A TargetHttpProxy resource. This resource defines an
20046// HTTP proxy. (== resource_for beta.targetHttpProxies ==) (==
20047// resource_for v1.targetHttpProxies ==)
20048type TargetHttpProxy struct {
20049	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20050	// format.
20051	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20052
20053	// Description: An optional description of this resource. Provide this
20054	// property when you create the resource.
20055	Description string `json:"description,omitempty"`
20056
20057	// Id: [Output Only] The unique identifier for the resource. This
20058	// identifier is defined by the server.
20059	Id uint64 `json:"id,omitempty,string"`
20060
20061	// Kind: [Output Only] Type of resource. Always compute#targetHttpProxy
20062	// for target HTTP proxies.
20063	Kind string `json:"kind,omitempty"`
20064
20065	// Name: Name of the resource. Provided by the client when the resource
20066	// is created. The name must be 1-63 characters long, and comply with
20067	// RFC1035. Specifically, the name must be 1-63 characters long and
20068	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
20069	// the first character must be a lowercase letter, and all following
20070	// characters must be a dash, lowercase letter, or digit, except the
20071	// last character, which cannot be a dash.
20072	Name string `json:"name,omitempty"`
20073
20074	// SelfLink: [Output Only] Server-defined URL for the resource.
20075	SelfLink string `json:"selfLink,omitempty"`
20076
20077	// UrlMap: URL to the UrlMap resource that defines the mapping from URL
20078	// to the BackendService.
20079	UrlMap string `json:"urlMap,omitempty"`
20080
20081	// ServerResponse contains the HTTP response code and headers from the
20082	// server.
20083	googleapi.ServerResponse `json:"-"`
20084
20085	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
20086	// to 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. "CreationTimestamp") to
20094	// include in API requests with the JSON null value. By default, fields
20095	// with empty values are omitted from API requests. However, any field
20096	// with an empty value appearing in NullFields will be sent to the
20097	// server as null. It is an error if a field in this list has a
20098	// non-empty value. This may be used to include null fields in Patch
20099	// requests.
20100	NullFields []string `json:"-"`
20101}
20102
20103func (s *TargetHttpProxy) MarshalJSON() ([]byte, error) {
20104	type NoMethod TargetHttpProxy
20105	raw := NoMethod(*s)
20106	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20107}
20108
20109// TargetHttpProxyList: A list of TargetHttpProxy resources.
20110type TargetHttpProxyList struct {
20111	// Id: [Output Only] Unique identifier for the resource; defined by the
20112	// server.
20113	Id string `json:"id,omitempty"`
20114
20115	// Items: A list of TargetHttpProxy resources.
20116	Items []*TargetHttpProxy `json:"items,omitempty"`
20117
20118	// Kind: Type of resource. Always compute#targetHttpProxyList for lists
20119	// of target HTTP proxies.
20120	Kind string `json:"kind,omitempty"`
20121
20122	// NextPageToken: [Output Only] This token allows you to get the next
20123	// page of results for list requests. If the number of results is larger
20124	// than maxResults, use the nextPageToken as a value for the query
20125	// parameter pageToken in the next list request. Subsequent list
20126	// requests will have their own nextPageToken to continue paging through
20127	// the results.
20128	NextPageToken string `json:"nextPageToken,omitempty"`
20129
20130	// SelfLink: [Output Only] Server-defined URL for this resource.
20131	SelfLink string `json:"selfLink,omitempty"`
20132
20133	// Warning: [Output Only] Informational warning message.
20134	Warning *TargetHttpProxyListWarning `json:"warning,omitempty"`
20135
20136	// ServerResponse contains the HTTP response code and headers from the
20137	// server.
20138	googleapi.ServerResponse `json:"-"`
20139
20140	// ForceSendFields is a list of field names (e.g. "Id") to
20141	// unconditionally include in API requests. By default, fields with
20142	// empty values are omitted from API requests. However, any non-pointer,
20143	// non-interface field appearing in ForceSendFields will be sent to the
20144	// server regardless of whether the field is empty or not. This may be
20145	// used to include empty fields in Patch requests.
20146	ForceSendFields []string `json:"-"`
20147
20148	// NullFields is a list of field names (e.g. "Id") to include in API
20149	// requests with the JSON null value. By default, fields with empty
20150	// values are omitted from API requests. However, any field with an
20151	// empty value appearing in NullFields will be sent to the server as
20152	// null. It is an error if a field in this list has a non-empty value.
20153	// This may be used to include null fields in Patch requests.
20154	NullFields []string `json:"-"`
20155}
20156
20157func (s *TargetHttpProxyList) MarshalJSON() ([]byte, error) {
20158	type NoMethod TargetHttpProxyList
20159	raw := NoMethod(*s)
20160	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20161}
20162
20163// TargetHttpProxyListWarning: [Output Only] Informational warning
20164// message.
20165type TargetHttpProxyListWarning struct {
20166	// Code: [Output Only] A warning code, if applicable. For example,
20167	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20168	// the response.
20169	//
20170	// Possible values:
20171	//   "CLEANUP_FAILED"
20172	//   "DEPRECATED_RESOURCE_USED"
20173	//   "DEPRECATED_TYPE_USED"
20174	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20175	//   "EXPERIMENTAL_TYPE_USED"
20176	//   "EXTERNAL_API_WARNING"
20177	//   "FIELD_VALUE_OVERRIDEN"
20178	//   "INJECTED_KERNELS_DEPRECATED"
20179	//   "MISSING_TYPE_DEPENDENCY"
20180	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20181	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20182	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20183	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20184	//   "NEXT_HOP_NOT_RUNNING"
20185	//   "NOT_CRITICAL_ERROR"
20186	//   "NO_RESULTS_ON_PAGE"
20187	//   "REQUIRED_TOS_AGREEMENT"
20188	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20189	//   "RESOURCE_NOT_DELETED"
20190	//   "SCHEMA_VALIDATION_IGNORED"
20191	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20192	//   "UNDECLARED_PROPERTIES"
20193	//   "UNREACHABLE"
20194	Code string `json:"code,omitempty"`
20195
20196	// Data: [Output Only] Metadata about this warning in key: value format.
20197	// For example:
20198	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20199	Data []*TargetHttpProxyListWarningData `json:"data,omitempty"`
20200
20201	// Message: [Output Only] A human-readable description of the warning
20202	// code.
20203	Message string `json:"message,omitempty"`
20204
20205	// ForceSendFields is a list of field names (e.g. "Code") to
20206	// unconditionally include in API requests. By default, fields with
20207	// empty values are omitted from API requests. However, any non-pointer,
20208	// non-interface field appearing in ForceSendFields will be sent to the
20209	// server regardless of whether the field is empty or not. This may be
20210	// used to include empty fields in Patch requests.
20211	ForceSendFields []string `json:"-"`
20212
20213	// NullFields is a list of field names (e.g. "Code") to include in API
20214	// requests with the JSON null value. By default, fields with empty
20215	// values are omitted from API requests. However, any field with an
20216	// empty value appearing in NullFields will be sent to the server as
20217	// null. It is an error if a field in this list has a non-empty value.
20218	// This may be used to include null fields in Patch requests.
20219	NullFields []string `json:"-"`
20220}
20221
20222func (s *TargetHttpProxyListWarning) MarshalJSON() ([]byte, error) {
20223	type NoMethod TargetHttpProxyListWarning
20224	raw := NoMethod(*s)
20225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20226}
20227
20228type TargetHttpProxyListWarningData struct {
20229	// Key: [Output Only] A key that provides more detail on the warning
20230	// being returned. For example, for warnings where there are no results
20231	// in a list request for a particular zone, this key might be scope and
20232	// the key value might be the zone name. Other examples might be a key
20233	// indicating a deprecated resource and a suggested replacement, or a
20234	// warning about invalid network settings (for example, if an instance
20235	// attempts to perform IP forwarding but is not enabled for IP
20236	// forwarding).
20237	Key string `json:"key,omitempty"`
20238
20239	// Value: [Output Only] A warning data value corresponding to the key.
20240	Value string `json:"value,omitempty"`
20241
20242	// ForceSendFields is a list of field names (e.g. "Key") to
20243	// unconditionally include in API requests. By default, fields with
20244	// empty values are omitted from API requests. However, any non-pointer,
20245	// non-interface field appearing in ForceSendFields will be sent to the
20246	// server regardless of whether the field is empty or not. This may be
20247	// used to include empty fields in Patch requests.
20248	ForceSendFields []string `json:"-"`
20249
20250	// NullFields is a list of field names (e.g. "Key") to include in API
20251	// requests with the JSON null value. By default, fields with empty
20252	// values are omitted from API requests. However, any field with an
20253	// empty value appearing in NullFields will be sent to the server as
20254	// null. It is an error if a field in this list has a non-empty value.
20255	// This may be used to include null fields in Patch requests.
20256	NullFields []string `json:"-"`
20257}
20258
20259func (s *TargetHttpProxyListWarningData) MarshalJSON() ([]byte, error) {
20260	type NoMethod TargetHttpProxyListWarningData
20261	raw := NoMethod(*s)
20262	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20263}
20264
20265type TargetHttpsProxiesSetSslCertificatesRequest struct {
20266	// SslCertificates: New set of SslCertificate resources to associate
20267	// with this TargetHttpsProxy resource. Currently exactly one
20268	// SslCertificate resource must be specified.
20269	SslCertificates []string `json:"sslCertificates,omitempty"`
20270
20271	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
20272	// unconditionally include in API requests. By default, fields with
20273	// empty values are omitted from API requests. However, any non-pointer,
20274	// non-interface field appearing in ForceSendFields will be sent to the
20275	// server regardless of whether the field is empty or not. This may be
20276	// used to include empty fields in Patch requests.
20277	ForceSendFields []string `json:"-"`
20278
20279	// NullFields is a list of field names (e.g. "SslCertificates") to
20280	// include in API requests with the JSON null value. By default, fields
20281	// with empty values are omitted from API requests. However, any field
20282	// with an empty value appearing in NullFields will be sent to the
20283	// server as null. It is an error if a field in this list has a
20284	// non-empty value. This may be used to include null fields in Patch
20285	// requests.
20286	NullFields []string `json:"-"`
20287}
20288
20289func (s *TargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
20290	type NoMethod TargetHttpsProxiesSetSslCertificatesRequest
20291	raw := NoMethod(*s)
20292	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20293}
20294
20295// TargetHttpsProxy: A TargetHttpsProxy resource. This resource defines
20296// an HTTPS proxy. (== resource_for beta.targetHttpsProxies ==) (==
20297// resource_for v1.targetHttpsProxies ==)
20298type TargetHttpsProxy struct {
20299	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20300	// format.
20301	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20302
20303	// Description: An optional description of this resource. Provide this
20304	// property when you create the resource.
20305	Description string `json:"description,omitempty"`
20306
20307	// Id: [Output Only] The unique identifier for the resource. This
20308	// identifier is defined by the server.
20309	Id uint64 `json:"id,omitempty,string"`
20310
20311	// Kind: [Output Only] Type of resource. Always compute#targetHttpsProxy
20312	// for target HTTPS proxies.
20313	Kind string `json:"kind,omitempty"`
20314
20315	// Name: Name of the resource. Provided by the client when the resource
20316	// is created. The name must be 1-63 characters long, and comply with
20317	// RFC1035. Specifically, the name must be 1-63 characters long and
20318	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
20319	// the first character must be a lowercase letter, and all following
20320	// characters must be a dash, lowercase letter, or digit, except the
20321	// last character, which cannot be a dash.
20322	Name string `json:"name,omitempty"`
20323
20324	// SelfLink: [Output Only] Server-defined URL for the resource.
20325	SelfLink string `json:"selfLink,omitempty"`
20326
20327	// SslCertificates: URLs to SslCertificate resources that are used to
20328	// authenticate connections between users and the load balancer.
20329	// Currently, exactly one SSL certificate must be specified.
20330	SslCertificates []string `json:"sslCertificates,omitempty"`
20331
20332	// SslPolicy: URL of SslPolicy resource that will be associated with the
20333	// TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource
20334	// will not have any SSL policy configured.
20335	SslPolicy string `json:"sslPolicy,omitempty"`
20336
20337	// UrlMap: A fully-qualified or valid partial URL to the UrlMap resource
20338	// that defines the mapping from URL to the BackendService. For example,
20339	// the following are all valid URLs for specifying a URL map:
20340	// -
20341	// https://www.googleapis.compute/v1/projects/project/global/urlMaps/url-map
20342	// - projects/project/global/urlMaps/url-map
20343	// - global/urlMaps/url-map
20344	UrlMap string `json:"urlMap,omitempty"`
20345
20346	// ServerResponse contains the HTTP response code and headers from the
20347	// server.
20348	googleapi.ServerResponse `json:"-"`
20349
20350	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
20351	// to unconditionally include in API requests. By default, fields with
20352	// empty values are omitted from API requests. However, any non-pointer,
20353	// non-interface field appearing in ForceSendFields will be sent to the
20354	// server regardless of whether the field is empty or not. This may be
20355	// used to include empty fields in Patch requests.
20356	ForceSendFields []string `json:"-"`
20357
20358	// NullFields is a list of field names (e.g. "CreationTimestamp") to
20359	// include in API requests with the JSON null value. By default, fields
20360	// with empty values are omitted from API requests. However, any field
20361	// with an empty value appearing in NullFields will be sent to the
20362	// server as null. It is an error if a field in this list has a
20363	// non-empty value. This may be used to include null fields in Patch
20364	// requests.
20365	NullFields []string `json:"-"`
20366}
20367
20368func (s *TargetHttpsProxy) MarshalJSON() ([]byte, error) {
20369	type NoMethod TargetHttpsProxy
20370	raw := NoMethod(*s)
20371	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20372}
20373
20374// TargetHttpsProxyList: Contains a list of TargetHttpsProxy resources.
20375type TargetHttpsProxyList struct {
20376	// Id: [Output Only] Unique identifier for the resource; defined by the
20377	// server.
20378	Id string `json:"id,omitempty"`
20379
20380	// Items: A list of TargetHttpsProxy resources.
20381	Items []*TargetHttpsProxy `json:"items,omitempty"`
20382
20383	// Kind: Type of resource. Always compute#targetHttpsProxyList for lists
20384	// of target HTTPS proxies.
20385	Kind string `json:"kind,omitempty"`
20386
20387	// NextPageToken: [Output Only] This token allows you to get the next
20388	// page of results for list requests. If the number of results is larger
20389	// than maxResults, use the nextPageToken as a value for the query
20390	// parameter pageToken in the next list request. Subsequent list
20391	// requests will have their own nextPageToken to continue paging through
20392	// the results.
20393	NextPageToken string `json:"nextPageToken,omitempty"`
20394
20395	// SelfLink: [Output Only] Server-defined URL for this resource.
20396	SelfLink string `json:"selfLink,omitempty"`
20397
20398	// Warning: [Output Only] Informational warning message.
20399	Warning *TargetHttpsProxyListWarning `json:"warning,omitempty"`
20400
20401	// ServerResponse contains the HTTP response code and headers from the
20402	// server.
20403	googleapi.ServerResponse `json:"-"`
20404
20405	// ForceSendFields is a list of field names (e.g. "Id") to
20406	// unconditionally include in API requests. By default, fields with
20407	// empty values are omitted from API requests. However, any non-pointer,
20408	// non-interface field appearing in ForceSendFields will be sent to the
20409	// server regardless of whether the field is empty or not. This may be
20410	// used to include empty fields in Patch requests.
20411	ForceSendFields []string `json:"-"`
20412
20413	// NullFields is a list of field names (e.g. "Id") to include in API
20414	// requests with the JSON null value. By default, fields with empty
20415	// values are omitted from API requests. However, any field with an
20416	// empty value appearing in NullFields will be sent to the server as
20417	// null. It is an error if a field in this list has a non-empty value.
20418	// This may be used to include null fields in Patch requests.
20419	NullFields []string `json:"-"`
20420}
20421
20422func (s *TargetHttpsProxyList) MarshalJSON() ([]byte, error) {
20423	type NoMethod TargetHttpsProxyList
20424	raw := NoMethod(*s)
20425	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20426}
20427
20428// TargetHttpsProxyListWarning: [Output Only] Informational warning
20429// message.
20430type TargetHttpsProxyListWarning struct {
20431	// Code: [Output Only] A warning code, if applicable. For example,
20432	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20433	// the response.
20434	//
20435	// Possible values:
20436	//   "CLEANUP_FAILED"
20437	//   "DEPRECATED_RESOURCE_USED"
20438	//   "DEPRECATED_TYPE_USED"
20439	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20440	//   "EXPERIMENTAL_TYPE_USED"
20441	//   "EXTERNAL_API_WARNING"
20442	//   "FIELD_VALUE_OVERRIDEN"
20443	//   "INJECTED_KERNELS_DEPRECATED"
20444	//   "MISSING_TYPE_DEPENDENCY"
20445	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20446	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20447	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20448	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20449	//   "NEXT_HOP_NOT_RUNNING"
20450	//   "NOT_CRITICAL_ERROR"
20451	//   "NO_RESULTS_ON_PAGE"
20452	//   "REQUIRED_TOS_AGREEMENT"
20453	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20454	//   "RESOURCE_NOT_DELETED"
20455	//   "SCHEMA_VALIDATION_IGNORED"
20456	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20457	//   "UNDECLARED_PROPERTIES"
20458	//   "UNREACHABLE"
20459	Code string `json:"code,omitempty"`
20460
20461	// Data: [Output Only] Metadata about this warning in key: value format.
20462	// For example:
20463	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20464	Data []*TargetHttpsProxyListWarningData `json:"data,omitempty"`
20465
20466	// Message: [Output Only] A human-readable description of the warning
20467	// code.
20468	Message string `json:"message,omitempty"`
20469
20470	// ForceSendFields is a list of field names (e.g. "Code") to
20471	// unconditionally include in API requests. By default, fields with
20472	// empty values are omitted from API requests. However, any non-pointer,
20473	// non-interface field appearing in ForceSendFields will be sent to the
20474	// server regardless of whether the field is empty or not. This may be
20475	// used to include empty fields in Patch requests.
20476	ForceSendFields []string `json:"-"`
20477
20478	// NullFields is a list of field names (e.g. "Code") to include in API
20479	// requests with the JSON null value. By default, fields with empty
20480	// values are omitted from API requests. However, any field with an
20481	// empty value appearing in NullFields will be sent to the server as
20482	// null. It is an error if a field in this list has a non-empty value.
20483	// This may be used to include null fields in Patch requests.
20484	NullFields []string `json:"-"`
20485}
20486
20487func (s *TargetHttpsProxyListWarning) MarshalJSON() ([]byte, error) {
20488	type NoMethod TargetHttpsProxyListWarning
20489	raw := NoMethod(*s)
20490	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20491}
20492
20493type TargetHttpsProxyListWarningData struct {
20494	// Key: [Output Only] A key that provides more detail on the warning
20495	// being returned. For example, for warnings where there are no results
20496	// in a list request for a particular zone, this key might be scope and
20497	// the key value might be the zone name. Other examples might be a key
20498	// indicating a deprecated resource and a suggested replacement, or a
20499	// warning about invalid network settings (for example, if an instance
20500	// attempts to perform IP forwarding but is not enabled for IP
20501	// forwarding).
20502	Key string `json:"key,omitempty"`
20503
20504	// Value: [Output Only] A warning data value corresponding to the key.
20505	Value string `json:"value,omitempty"`
20506
20507	// ForceSendFields is a list of field names (e.g. "Key") to
20508	// unconditionally include in API requests. By default, fields with
20509	// empty values are omitted from API requests. However, any non-pointer,
20510	// non-interface field appearing in ForceSendFields will be sent to the
20511	// server regardless of whether the field is empty or not. This may be
20512	// used to include empty fields in Patch requests.
20513	ForceSendFields []string `json:"-"`
20514
20515	// NullFields is a list of field names (e.g. "Key") to include in API
20516	// requests with the JSON null value. By default, fields with empty
20517	// values are omitted from API requests. However, any field with an
20518	// empty value appearing in NullFields will be sent to the server as
20519	// null. It is an error if a field in this list has a non-empty value.
20520	// This may be used to include null fields in Patch requests.
20521	NullFields []string `json:"-"`
20522}
20523
20524func (s *TargetHttpsProxyListWarningData) MarshalJSON() ([]byte, error) {
20525	type NoMethod TargetHttpsProxyListWarningData
20526	raw := NoMethod(*s)
20527	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20528}
20529
20530// TargetInstance: A TargetInstance resource. This resource defines an
20531// endpoint instance that terminates traffic of certain protocols. (==
20532// resource_for beta.targetInstances ==) (== resource_for
20533// v1.targetInstances ==)
20534type TargetInstance struct {
20535	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20536	// format.
20537	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20538
20539	// Description: An optional description of this resource. Provide this
20540	// property when you create the resource.
20541	Description string `json:"description,omitempty"`
20542
20543	// Id: [Output Only] The unique identifier for the resource. This
20544	// identifier is defined by the server.
20545	Id uint64 `json:"id,omitempty,string"`
20546
20547	// Instance: A URL to the virtual machine instance that handles traffic
20548	// for this target instance. When creating a target instance, you can
20549	// provide the fully-qualified URL or a valid partial URL to the desired
20550	// virtual machine. For example, the following are all valid URLs:
20551	// -
20552	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
20553	// - projects/project/zones/zone/instances/instance
20554	// - zones/zone/instances/instance
20555	Instance string `json:"instance,omitempty"`
20556
20557	// Kind: [Output Only] The type of the resource. Always
20558	// compute#targetInstance for target instances.
20559	Kind string `json:"kind,omitempty"`
20560
20561	// Name: Name of the resource. Provided by the client when the resource
20562	// is created. The name must be 1-63 characters long, and comply with
20563	// RFC1035. Specifically, the name must be 1-63 characters long and
20564	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
20565	// the first character must be a lowercase letter, and all following
20566	// characters must be a dash, lowercase letter, or digit, except the
20567	// last character, which cannot be a dash.
20568	Name string `json:"name,omitempty"`
20569
20570	// NatPolicy: NAT option controlling how IPs are NAT'ed to the instance.
20571	// Currently only NO_NAT (default value) is supported.
20572	//
20573	// Possible values:
20574	//   "NO_NAT"
20575	NatPolicy string `json:"natPolicy,omitempty"`
20576
20577	// SelfLink: [Output Only] Server-defined URL for the resource.
20578	SelfLink string `json:"selfLink,omitempty"`
20579
20580	// Zone: [Output Only] URL of the zone where the target instance
20581	// resides. You must specify this field as part of the HTTP request URL.
20582	// It is not settable as a field in the request body.
20583	Zone string `json:"zone,omitempty"`
20584
20585	// ServerResponse contains the HTTP response code and headers from the
20586	// server.
20587	googleapi.ServerResponse `json:"-"`
20588
20589	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
20590	// to unconditionally include in API requests. By default, fields with
20591	// empty values are omitted from API requests. However, any non-pointer,
20592	// non-interface field appearing in ForceSendFields will be sent to the
20593	// server regardless of whether the field is empty or not. This may be
20594	// used to include empty fields in Patch requests.
20595	ForceSendFields []string `json:"-"`
20596
20597	// NullFields is a list of field names (e.g. "CreationTimestamp") to
20598	// include in API requests with the JSON null value. By default, fields
20599	// with empty values are omitted from API requests. However, any field
20600	// with an empty value appearing in NullFields will be sent to the
20601	// server as null. It is an error if a field in this list has a
20602	// non-empty value. This may be used to include null fields in Patch
20603	// requests.
20604	NullFields []string `json:"-"`
20605}
20606
20607func (s *TargetInstance) MarshalJSON() ([]byte, error) {
20608	type NoMethod TargetInstance
20609	raw := NoMethod(*s)
20610	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20611}
20612
20613type TargetInstanceAggregatedList struct {
20614	// Id: [Output Only] Unique identifier for the resource; defined by the
20615	// server.
20616	Id string `json:"id,omitempty"`
20617
20618	// Items: A list of TargetInstance resources.
20619	Items map[string]TargetInstancesScopedList `json:"items,omitempty"`
20620
20621	// Kind: Type of resource.
20622	Kind string `json:"kind,omitempty"`
20623
20624	// NextPageToken: [Output Only] This token allows you to get the next
20625	// page of results for list requests. If the number of results is larger
20626	// than maxResults, use the nextPageToken as a value for the query
20627	// parameter pageToken in the next list request. Subsequent list
20628	// requests will have their own nextPageToken to continue paging through
20629	// the results.
20630	NextPageToken string `json:"nextPageToken,omitempty"`
20631
20632	// SelfLink: [Output Only] Server-defined URL for this resource.
20633	SelfLink string `json:"selfLink,omitempty"`
20634
20635	// Warning: [Output Only] Informational warning message.
20636	Warning *TargetInstanceAggregatedListWarning `json:"warning,omitempty"`
20637
20638	// ServerResponse contains the HTTP response code and headers from the
20639	// server.
20640	googleapi.ServerResponse `json:"-"`
20641
20642	// ForceSendFields is a list of field names (e.g. "Id") to
20643	// unconditionally include in API requests. By default, fields with
20644	// empty values are omitted from API requests. However, any non-pointer,
20645	// non-interface field appearing in ForceSendFields will be sent to the
20646	// server regardless of whether the field is empty or not. This may be
20647	// used to include empty fields in Patch requests.
20648	ForceSendFields []string `json:"-"`
20649
20650	// NullFields is a list of field names (e.g. "Id") to include in API
20651	// requests with the JSON null value. By default, fields with empty
20652	// values are omitted from API requests. However, any field with an
20653	// empty value appearing in NullFields will be sent to the server as
20654	// null. It is an error if a field in this list has a non-empty value.
20655	// This may be used to include null fields in Patch requests.
20656	NullFields []string `json:"-"`
20657}
20658
20659func (s *TargetInstanceAggregatedList) MarshalJSON() ([]byte, error) {
20660	type NoMethod TargetInstanceAggregatedList
20661	raw := NoMethod(*s)
20662	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20663}
20664
20665// TargetInstanceAggregatedListWarning: [Output Only] Informational
20666// warning message.
20667type TargetInstanceAggregatedListWarning struct {
20668	// Code: [Output Only] A warning code, if applicable. For example,
20669	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20670	// the response.
20671	//
20672	// Possible values:
20673	//   "CLEANUP_FAILED"
20674	//   "DEPRECATED_RESOURCE_USED"
20675	//   "DEPRECATED_TYPE_USED"
20676	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20677	//   "EXPERIMENTAL_TYPE_USED"
20678	//   "EXTERNAL_API_WARNING"
20679	//   "FIELD_VALUE_OVERRIDEN"
20680	//   "INJECTED_KERNELS_DEPRECATED"
20681	//   "MISSING_TYPE_DEPENDENCY"
20682	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20683	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20684	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20685	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20686	//   "NEXT_HOP_NOT_RUNNING"
20687	//   "NOT_CRITICAL_ERROR"
20688	//   "NO_RESULTS_ON_PAGE"
20689	//   "REQUIRED_TOS_AGREEMENT"
20690	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20691	//   "RESOURCE_NOT_DELETED"
20692	//   "SCHEMA_VALIDATION_IGNORED"
20693	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20694	//   "UNDECLARED_PROPERTIES"
20695	//   "UNREACHABLE"
20696	Code string `json:"code,omitempty"`
20697
20698	// Data: [Output Only] Metadata about this warning in key: value format.
20699	// For example:
20700	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20701	Data []*TargetInstanceAggregatedListWarningData `json:"data,omitempty"`
20702
20703	// Message: [Output Only] A human-readable description of the warning
20704	// code.
20705	Message string `json:"message,omitempty"`
20706
20707	// ForceSendFields is a list of field names (e.g. "Code") to
20708	// unconditionally include in API requests. By default, fields with
20709	// empty values are omitted from API requests. However, any non-pointer,
20710	// non-interface field appearing in ForceSendFields will be sent to the
20711	// server regardless of whether the field is empty or not. This may be
20712	// used to include empty fields in Patch requests.
20713	ForceSendFields []string `json:"-"`
20714
20715	// NullFields is a list of field names (e.g. "Code") to include in API
20716	// requests with the JSON null value. By default, fields with empty
20717	// values are omitted from API requests. However, any field with an
20718	// empty value appearing in NullFields will be sent to the server as
20719	// null. It is an error if a field in this list has a non-empty value.
20720	// This may be used to include null fields in Patch requests.
20721	NullFields []string `json:"-"`
20722}
20723
20724func (s *TargetInstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
20725	type NoMethod TargetInstanceAggregatedListWarning
20726	raw := NoMethod(*s)
20727	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20728}
20729
20730type TargetInstanceAggregatedListWarningData struct {
20731	// Key: [Output Only] A key that provides more detail on the warning
20732	// being returned. For example, for warnings where there are no results
20733	// in a list request for a particular zone, this key might be scope and
20734	// the key value might be the zone name. Other examples might be a key
20735	// indicating a deprecated resource and a suggested replacement, or a
20736	// warning about invalid network settings (for example, if an instance
20737	// attempts to perform IP forwarding but is not enabled for IP
20738	// forwarding).
20739	Key string `json:"key,omitempty"`
20740
20741	// Value: [Output Only] A warning data value corresponding to the key.
20742	Value string `json:"value,omitempty"`
20743
20744	// ForceSendFields is a list of field names (e.g. "Key") to
20745	// unconditionally include in API requests. By default, fields with
20746	// empty values are omitted from API requests. However, any non-pointer,
20747	// non-interface field appearing in ForceSendFields will be sent to the
20748	// server regardless of whether the field is empty or not. This may be
20749	// used to include empty fields in Patch requests.
20750	ForceSendFields []string `json:"-"`
20751
20752	// NullFields is a list of field names (e.g. "Key") to include in API
20753	// requests with the JSON null value. By default, fields with empty
20754	// values are omitted from API requests. However, any field with an
20755	// empty value appearing in NullFields will be sent to the server as
20756	// null. It is an error if a field in this list has a non-empty value.
20757	// This may be used to include null fields in Patch requests.
20758	NullFields []string `json:"-"`
20759}
20760
20761func (s *TargetInstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
20762	type NoMethod TargetInstanceAggregatedListWarningData
20763	raw := NoMethod(*s)
20764	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20765}
20766
20767// TargetInstanceList: Contains a list of TargetInstance resources.
20768type TargetInstanceList struct {
20769	// Id: [Output Only] Unique identifier for the resource; defined by the
20770	// server.
20771	Id string `json:"id,omitempty"`
20772
20773	// Items: A list of TargetInstance resources.
20774	Items []*TargetInstance `json:"items,omitempty"`
20775
20776	// Kind: Type of resource.
20777	Kind string `json:"kind,omitempty"`
20778
20779	// NextPageToken: [Output Only] This token allows you to get the next
20780	// page of results for list requests. If the number of results is larger
20781	// than maxResults, use the nextPageToken as a value for the query
20782	// parameter pageToken in the next list request. Subsequent list
20783	// requests will have their own nextPageToken to continue paging through
20784	// the results.
20785	NextPageToken string `json:"nextPageToken,omitempty"`
20786
20787	// SelfLink: [Output Only] Server-defined URL for this resource.
20788	SelfLink string `json:"selfLink,omitempty"`
20789
20790	// Warning: [Output Only] Informational warning message.
20791	Warning *TargetInstanceListWarning `json:"warning,omitempty"`
20792
20793	// ServerResponse contains the HTTP response code and headers from the
20794	// server.
20795	googleapi.ServerResponse `json:"-"`
20796
20797	// ForceSendFields is a list of field names (e.g. "Id") to
20798	// unconditionally include in API requests. By default, fields with
20799	// empty values are omitted from API requests. However, any non-pointer,
20800	// non-interface field appearing in ForceSendFields will be sent to the
20801	// server regardless of whether the field is empty or not. This may be
20802	// used to include empty fields in Patch requests.
20803	ForceSendFields []string `json:"-"`
20804
20805	// NullFields is a list of field names (e.g. "Id") to include in API
20806	// requests with the JSON null value. By default, fields with empty
20807	// values are omitted from API requests. However, any field with an
20808	// empty value appearing in NullFields will be sent to the server as
20809	// null. It is an error if a field in this list has a non-empty value.
20810	// This may be used to include null fields in Patch requests.
20811	NullFields []string `json:"-"`
20812}
20813
20814func (s *TargetInstanceList) MarshalJSON() ([]byte, error) {
20815	type NoMethod TargetInstanceList
20816	raw := NoMethod(*s)
20817	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20818}
20819
20820// TargetInstanceListWarning: [Output Only] Informational warning
20821// message.
20822type TargetInstanceListWarning struct {
20823	// Code: [Output Only] A warning code, if applicable. For example,
20824	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20825	// the response.
20826	//
20827	// Possible values:
20828	//   "CLEANUP_FAILED"
20829	//   "DEPRECATED_RESOURCE_USED"
20830	//   "DEPRECATED_TYPE_USED"
20831	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20832	//   "EXPERIMENTAL_TYPE_USED"
20833	//   "EXTERNAL_API_WARNING"
20834	//   "FIELD_VALUE_OVERRIDEN"
20835	//   "INJECTED_KERNELS_DEPRECATED"
20836	//   "MISSING_TYPE_DEPENDENCY"
20837	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20838	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20839	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20840	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20841	//   "NEXT_HOP_NOT_RUNNING"
20842	//   "NOT_CRITICAL_ERROR"
20843	//   "NO_RESULTS_ON_PAGE"
20844	//   "REQUIRED_TOS_AGREEMENT"
20845	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20846	//   "RESOURCE_NOT_DELETED"
20847	//   "SCHEMA_VALIDATION_IGNORED"
20848	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20849	//   "UNDECLARED_PROPERTIES"
20850	//   "UNREACHABLE"
20851	Code string `json:"code,omitempty"`
20852
20853	// Data: [Output Only] Metadata about this warning in key: value format.
20854	// For example:
20855	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20856	Data []*TargetInstanceListWarningData `json:"data,omitempty"`
20857
20858	// Message: [Output Only] A human-readable description of the warning
20859	// code.
20860	Message string `json:"message,omitempty"`
20861
20862	// ForceSendFields is a list of field names (e.g. "Code") to
20863	// unconditionally include in API requests. By default, fields with
20864	// empty values are omitted from API requests. However, any non-pointer,
20865	// non-interface field appearing in ForceSendFields will be sent to the
20866	// server regardless of whether the field is empty or not. This may be
20867	// used to include empty fields in Patch requests.
20868	ForceSendFields []string `json:"-"`
20869
20870	// NullFields is a list of field names (e.g. "Code") to include in API
20871	// requests with the JSON null value. By default, fields with empty
20872	// values are omitted from API requests. However, any field with an
20873	// empty value appearing in NullFields will be sent to the server as
20874	// null. It is an error if a field in this list has a non-empty value.
20875	// This may be used to include null fields in Patch requests.
20876	NullFields []string `json:"-"`
20877}
20878
20879func (s *TargetInstanceListWarning) MarshalJSON() ([]byte, error) {
20880	type NoMethod TargetInstanceListWarning
20881	raw := NoMethod(*s)
20882	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20883}
20884
20885type TargetInstanceListWarningData struct {
20886	// Key: [Output Only] A key that provides more detail on the warning
20887	// being returned. For example, for warnings where there are no results
20888	// in a list request for a particular zone, this key might be scope and
20889	// the key value might be the zone name. Other examples might be a key
20890	// indicating a deprecated resource and a suggested replacement, or a
20891	// warning about invalid network settings (for example, if an instance
20892	// attempts to perform IP forwarding but is not enabled for IP
20893	// forwarding).
20894	Key string `json:"key,omitempty"`
20895
20896	// Value: [Output Only] A warning data value corresponding to the key.
20897	Value string `json:"value,omitempty"`
20898
20899	// ForceSendFields is a list of field names (e.g. "Key") to
20900	// unconditionally include in API requests. By default, fields with
20901	// empty values are omitted from API requests. However, any non-pointer,
20902	// non-interface field appearing in ForceSendFields will be sent to the
20903	// server regardless of whether the field is empty or not. This may be
20904	// used to include empty fields in Patch requests.
20905	ForceSendFields []string `json:"-"`
20906
20907	// NullFields is a list of field names (e.g. "Key") to include in API
20908	// requests with the JSON null value. By default, fields with empty
20909	// values are omitted from API requests. However, any field with an
20910	// empty value appearing in NullFields will be sent to the server as
20911	// null. It is an error if a field in this list has a non-empty value.
20912	// This may be used to include null fields in Patch requests.
20913	NullFields []string `json:"-"`
20914}
20915
20916func (s *TargetInstanceListWarningData) MarshalJSON() ([]byte, error) {
20917	type NoMethod TargetInstanceListWarningData
20918	raw := NoMethod(*s)
20919	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20920}
20921
20922type TargetInstancesScopedList struct {
20923	// TargetInstances: A list of target instances contained in this scope.
20924	TargetInstances []*TargetInstance `json:"targetInstances,omitempty"`
20925
20926	// Warning: Informational warning which replaces the list of addresses
20927	// when the list is empty.
20928	Warning *TargetInstancesScopedListWarning `json:"warning,omitempty"`
20929
20930	// ForceSendFields is a list of field names (e.g. "TargetInstances") to
20931	// unconditionally include in API requests. By default, fields with
20932	// empty values are omitted from API requests. However, any non-pointer,
20933	// non-interface field appearing in ForceSendFields will be sent to the
20934	// server regardless of whether the field is empty or not. This may be
20935	// used to include empty fields in Patch requests.
20936	ForceSendFields []string `json:"-"`
20937
20938	// NullFields is a list of field names (e.g. "TargetInstances") to
20939	// include in API requests with the JSON null value. By default, fields
20940	// with empty values are omitted from API requests. However, any field
20941	// with an empty value appearing in NullFields will be sent to the
20942	// server as null. It is an error if a field in this list has a
20943	// non-empty value. This may be used to include null fields in Patch
20944	// requests.
20945	NullFields []string `json:"-"`
20946}
20947
20948func (s *TargetInstancesScopedList) MarshalJSON() ([]byte, error) {
20949	type NoMethod TargetInstancesScopedList
20950	raw := NoMethod(*s)
20951	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20952}
20953
20954// TargetInstancesScopedListWarning: Informational warning which
20955// replaces the list of addresses when the list is empty.
20956type TargetInstancesScopedListWarning struct {
20957	// Code: [Output Only] A warning code, if applicable. For example,
20958	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20959	// the response.
20960	//
20961	// Possible values:
20962	//   "CLEANUP_FAILED"
20963	//   "DEPRECATED_RESOURCE_USED"
20964	//   "DEPRECATED_TYPE_USED"
20965	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20966	//   "EXPERIMENTAL_TYPE_USED"
20967	//   "EXTERNAL_API_WARNING"
20968	//   "FIELD_VALUE_OVERRIDEN"
20969	//   "INJECTED_KERNELS_DEPRECATED"
20970	//   "MISSING_TYPE_DEPENDENCY"
20971	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20972	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20973	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20974	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20975	//   "NEXT_HOP_NOT_RUNNING"
20976	//   "NOT_CRITICAL_ERROR"
20977	//   "NO_RESULTS_ON_PAGE"
20978	//   "REQUIRED_TOS_AGREEMENT"
20979	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20980	//   "RESOURCE_NOT_DELETED"
20981	//   "SCHEMA_VALIDATION_IGNORED"
20982	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20983	//   "UNDECLARED_PROPERTIES"
20984	//   "UNREACHABLE"
20985	Code string `json:"code,omitempty"`
20986
20987	// Data: [Output Only] Metadata about this warning in key: value format.
20988	// For example:
20989	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20990	Data []*TargetInstancesScopedListWarningData `json:"data,omitempty"`
20991
20992	// Message: [Output Only] A human-readable description of the warning
20993	// code.
20994	Message string `json:"message,omitempty"`
20995
20996	// ForceSendFields is a list of field names (e.g. "Code") to
20997	// unconditionally include in API requests. By default, fields with
20998	// empty values are omitted from API requests. However, any non-pointer,
20999	// non-interface field appearing in ForceSendFields will be sent to the
21000	// server regardless of whether the field is empty or not. This may be
21001	// used to include empty fields in Patch requests.
21002	ForceSendFields []string `json:"-"`
21003
21004	// NullFields is a list of field names (e.g. "Code") to include in API
21005	// requests with the JSON null value. By default, fields with empty
21006	// values are omitted from API requests. However, any field with an
21007	// empty value appearing in NullFields will be sent to the server as
21008	// null. It is an error if a field in this list has a non-empty value.
21009	// This may be used to include null fields in Patch requests.
21010	NullFields []string `json:"-"`
21011}
21012
21013func (s *TargetInstancesScopedListWarning) MarshalJSON() ([]byte, error) {
21014	type NoMethod TargetInstancesScopedListWarning
21015	raw := NoMethod(*s)
21016	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21017}
21018
21019type TargetInstancesScopedListWarningData struct {
21020	// Key: [Output Only] A key that provides more detail on the warning
21021	// being returned. For example, for warnings where there are no results
21022	// in a list request for a particular zone, this key might be scope and
21023	// the key value might be the zone name. Other examples might be a key
21024	// indicating a deprecated resource and a suggested replacement, or a
21025	// warning about invalid network settings (for example, if an instance
21026	// attempts to perform IP forwarding but is not enabled for IP
21027	// forwarding).
21028	Key string `json:"key,omitempty"`
21029
21030	// Value: [Output Only] A warning data value corresponding to the key.
21031	Value string `json:"value,omitempty"`
21032
21033	// ForceSendFields is a list of field names (e.g. "Key") to
21034	// unconditionally include in API requests. By default, fields with
21035	// empty values are omitted from API requests. However, any non-pointer,
21036	// non-interface field appearing in ForceSendFields will be sent to the
21037	// server regardless of whether the field is empty or not. This may be
21038	// used to include empty fields in Patch requests.
21039	ForceSendFields []string `json:"-"`
21040
21041	// NullFields is a list of field names (e.g. "Key") to include in API
21042	// requests with the JSON null value. By default, fields with empty
21043	// values are omitted from API requests. However, any field with an
21044	// empty value appearing in NullFields will be sent to the server as
21045	// null. It is an error if a field in this list has a non-empty value.
21046	// This may be used to include null fields in Patch requests.
21047	NullFields []string `json:"-"`
21048}
21049
21050func (s *TargetInstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
21051	type NoMethod TargetInstancesScopedListWarningData
21052	raw := NoMethod(*s)
21053	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21054}
21055
21056// TargetPool: A TargetPool resource. This resource defines a pool of
21057// instances, an associated HttpHealthCheck resource, and the fallback
21058// target pool. (== resource_for beta.targetPools ==) (== resource_for
21059// v1.targetPools ==)
21060type TargetPool struct {
21061	// BackupPool: This field is applicable only when the containing target
21062	// pool is serving a forwarding rule as the primary pool, and its
21063	// failoverRatio field is properly set to a value between [0,
21064	// 1].
21065	//
21066	// backupPool and failoverRatio together define the fallback behavior of
21067	// the primary target pool: if the ratio of the healthy instances in the
21068	// primary pool is at or below failoverRatio, traffic arriving at the
21069	// load-balanced IP will be directed to the backup pool.
21070	//
21071	// In case where failoverRatio and backupPool are not set, or all the
21072	// instances in the backup pool are unhealthy, the traffic will be
21073	// directed back to the primary pool in the "force" mode, where traffic
21074	// will be spread to the healthy instances with the best effort, or to
21075	// all instances when no instance is healthy.
21076	BackupPool string `json:"backupPool,omitempty"`
21077
21078	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21079	// format.
21080	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21081
21082	// Description: An optional description of this resource. Provide this
21083	// property when you create the resource.
21084	Description string `json:"description,omitempty"`
21085
21086	// FailoverRatio: This field is applicable only when the containing
21087	// target pool is serving a forwarding rule as the primary pool (i.e.,
21088	// not as a backup pool to some other target pool). The value of the
21089	// field must be in [0, 1].
21090	//
21091	// If set, backupPool must also be set. They together define the
21092	// fallback behavior of the primary target pool: if the ratio of the
21093	// healthy instances in the primary pool is at or below this number,
21094	// traffic arriving at the load-balanced IP will be directed to the
21095	// backup pool.
21096	//
21097	// In case where failoverRatio is not set or all the instances in the
21098	// backup pool are unhealthy, the traffic will be directed back to the
21099	// primary pool in the "force" mode, where traffic will be spread to the
21100	// healthy instances with the best effort, or to all instances when no
21101	// instance is healthy.
21102	FailoverRatio float64 `json:"failoverRatio,omitempty"`
21103
21104	// HealthChecks: The URL of the HttpHealthCheck resource. A member
21105	// instance in this pool is considered healthy if and only if the health
21106	// checks pass. An empty list means all member instances will be
21107	// considered healthy at all times. Only HttpHealthChecks are supported.
21108	// Only one health check may be specified.
21109	HealthChecks []string `json:"healthChecks,omitempty"`
21110
21111	// Id: [Output Only] The unique identifier for the resource. This
21112	// identifier is defined by the server.
21113	Id uint64 `json:"id,omitempty,string"`
21114
21115	// Instances: A list of resource URLs to the virtual machine instances
21116	// serving this pool. They must live in zones contained in the same
21117	// region as this pool.
21118	Instances []string `json:"instances,omitempty"`
21119
21120	// Kind: [Output Only] Type of the resource. Always compute#targetPool
21121	// for target pools.
21122	Kind string `json:"kind,omitempty"`
21123
21124	// Name: Name of the resource. Provided by the client when the resource
21125	// is created. The name must be 1-63 characters long, and comply with
21126	// RFC1035. Specifically, the name must be 1-63 characters long and
21127	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
21128	// the first character must be a lowercase letter, and all following
21129	// characters must be a dash, lowercase letter, or digit, except the
21130	// last character, which cannot be a dash.
21131	Name string `json:"name,omitempty"`
21132
21133	// Region: [Output Only] URL of the region where the target pool
21134	// resides.
21135	Region string `json:"region,omitempty"`
21136
21137	// SelfLink: [Output Only] Server-defined URL for the resource.
21138	SelfLink string `json:"selfLink,omitempty"`
21139
21140	// SessionAffinity: Sesssion affinity option, must be one of the
21141	// following values:
21142	// NONE: Connections from the same client IP may go to any instance in
21143	// the pool.
21144	// CLIENT_IP: Connections from the same client IP will go to the same
21145	// instance in the pool while that instance remains
21146	// healthy.
21147	// CLIENT_IP_PROTO: Connections from the same client IP with the same IP
21148	// protocol will go to the same instance in the pool while that instance
21149	// remains healthy.
21150	//
21151	// Possible values:
21152	//   "CLIENT_IP"
21153	//   "CLIENT_IP_PORT_PROTO"
21154	//   "CLIENT_IP_PROTO"
21155	//   "GENERATED_COOKIE"
21156	//   "NONE"
21157	SessionAffinity string `json:"sessionAffinity,omitempty"`
21158
21159	// ServerResponse contains the HTTP response code and headers from the
21160	// server.
21161	googleapi.ServerResponse `json:"-"`
21162
21163	// ForceSendFields is a list of field names (e.g. "BackupPool") to
21164	// unconditionally include in API requests. By default, fields with
21165	// empty values are omitted from API requests. However, any non-pointer,
21166	// non-interface field appearing in ForceSendFields will be sent to the
21167	// server regardless of whether the field is empty or not. This may be
21168	// used to include empty fields in Patch requests.
21169	ForceSendFields []string `json:"-"`
21170
21171	// NullFields is a list of field names (e.g. "BackupPool") to include in
21172	// API requests with the JSON null value. By default, fields with empty
21173	// values are omitted from API requests. However, any field with an
21174	// empty value appearing in NullFields will be sent to the server as
21175	// null. It is an error if a field in this list has a non-empty value.
21176	// This may be used to include null fields in Patch requests.
21177	NullFields []string `json:"-"`
21178}
21179
21180func (s *TargetPool) MarshalJSON() ([]byte, error) {
21181	type NoMethod TargetPool
21182	raw := NoMethod(*s)
21183	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21184}
21185
21186func (s *TargetPool) UnmarshalJSON(data []byte) error {
21187	type NoMethod TargetPool
21188	var s1 struct {
21189		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
21190		*NoMethod
21191	}
21192	s1.NoMethod = (*NoMethod)(s)
21193	if err := json.Unmarshal(data, &s1); err != nil {
21194		return err
21195	}
21196	s.FailoverRatio = float64(s1.FailoverRatio)
21197	return nil
21198}
21199
21200type TargetPoolAggregatedList struct {
21201	// Id: [Output Only] Unique identifier for the resource; defined by the
21202	// server.
21203	Id string `json:"id,omitempty"`
21204
21205	// Items: A list of TargetPool resources.
21206	Items map[string]TargetPoolsScopedList `json:"items,omitempty"`
21207
21208	// Kind: [Output Only] Type of resource. Always
21209	// compute#targetPoolAggregatedList for aggregated lists of target
21210	// pools.
21211	Kind string `json:"kind,omitempty"`
21212
21213	// NextPageToken: [Output Only] This token allows you to get the next
21214	// page of results for list requests. If the number of results is larger
21215	// than maxResults, use the nextPageToken as a value for the query
21216	// parameter pageToken in the next list request. Subsequent list
21217	// requests will have their own nextPageToken to continue paging through
21218	// the results.
21219	NextPageToken string `json:"nextPageToken,omitempty"`
21220
21221	// SelfLink: [Output Only] Server-defined URL for this resource.
21222	SelfLink string `json:"selfLink,omitempty"`
21223
21224	// Warning: [Output Only] Informational warning message.
21225	Warning *TargetPoolAggregatedListWarning `json:"warning,omitempty"`
21226
21227	// ServerResponse contains the HTTP response code and headers from the
21228	// server.
21229	googleapi.ServerResponse `json:"-"`
21230
21231	// ForceSendFields is a list of field names (e.g. "Id") to
21232	// unconditionally include in API requests. By default, fields with
21233	// empty values are omitted from API requests. However, any non-pointer,
21234	// non-interface field appearing in ForceSendFields will be sent to the
21235	// server regardless of whether the field is empty or not. This may be
21236	// used to include empty fields in Patch requests.
21237	ForceSendFields []string `json:"-"`
21238
21239	// NullFields is a list of field names (e.g. "Id") to include in API
21240	// requests with the JSON null value. By default, fields with empty
21241	// values are omitted from API requests. However, any field with an
21242	// empty value appearing in NullFields will be sent to the server as
21243	// null. It is an error if a field in this list has a non-empty value.
21244	// This may be used to include null fields in Patch requests.
21245	NullFields []string `json:"-"`
21246}
21247
21248func (s *TargetPoolAggregatedList) MarshalJSON() ([]byte, error) {
21249	type NoMethod TargetPoolAggregatedList
21250	raw := NoMethod(*s)
21251	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21252}
21253
21254// TargetPoolAggregatedListWarning: [Output Only] Informational warning
21255// message.
21256type TargetPoolAggregatedListWarning struct {
21257	// Code: [Output Only] A warning code, if applicable. For example,
21258	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21259	// the response.
21260	//
21261	// Possible values:
21262	//   "CLEANUP_FAILED"
21263	//   "DEPRECATED_RESOURCE_USED"
21264	//   "DEPRECATED_TYPE_USED"
21265	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21266	//   "EXPERIMENTAL_TYPE_USED"
21267	//   "EXTERNAL_API_WARNING"
21268	//   "FIELD_VALUE_OVERRIDEN"
21269	//   "INJECTED_KERNELS_DEPRECATED"
21270	//   "MISSING_TYPE_DEPENDENCY"
21271	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21272	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21273	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21274	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21275	//   "NEXT_HOP_NOT_RUNNING"
21276	//   "NOT_CRITICAL_ERROR"
21277	//   "NO_RESULTS_ON_PAGE"
21278	//   "REQUIRED_TOS_AGREEMENT"
21279	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21280	//   "RESOURCE_NOT_DELETED"
21281	//   "SCHEMA_VALIDATION_IGNORED"
21282	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21283	//   "UNDECLARED_PROPERTIES"
21284	//   "UNREACHABLE"
21285	Code string `json:"code,omitempty"`
21286
21287	// Data: [Output Only] Metadata about this warning in key: value format.
21288	// For example:
21289	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21290	Data []*TargetPoolAggregatedListWarningData `json:"data,omitempty"`
21291
21292	// Message: [Output Only] A human-readable description of the warning
21293	// code.
21294	Message string `json:"message,omitempty"`
21295
21296	// ForceSendFields is a list of field names (e.g. "Code") to
21297	// unconditionally include in API requests. By default, fields with
21298	// empty values are omitted from API requests. However, any non-pointer,
21299	// non-interface field appearing in ForceSendFields will be sent to the
21300	// server regardless of whether the field is empty or not. This may be
21301	// used to include empty fields in Patch requests.
21302	ForceSendFields []string `json:"-"`
21303
21304	// NullFields is a list of field names (e.g. "Code") to include in API
21305	// requests with the JSON null value. By default, fields with empty
21306	// values are omitted from API requests. However, any field with an
21307	// empty value appearing in NullFields will be sent to the server as
21308	// null. It is an error if a field in this list has a non-empty value.
21309	// This may be used to include null fields in Patch requests.
21310	NullFields []string `json:"-"`
21311}
21312
21313func (s *TargetPoolAggregatedListWarning) MarshalJSON() ([]byte, error) {
21314	type NoMethod TargetPoolAggregatedListWarning
21315	raw := NoMethod(*s)
21316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21317}
21318
21319type TargetPoolAggregatedListWarningData struct {
21320	// Key: [Output Only] A key that provides more detail on the warning
21321	// being returned. For example, for warnings where there are no results
21322	// in a list request for a particular zone, this key might be scope and
21323	// the key value might be the zone name. Other examples might be a key
21324	// indicating a deprecated resource and a suggested replacement, or a
21325	// warning about invalid network settings (for example, if an instance
21326	// attempts to perform IP forwarding but is not enabled for IP
21327	// forwarding).
21328	Key string `json:"key,omitempty"`
21329
21330	// Value: [Output Only] A warning data value corresponding to the key.
21331	Value string `json:"value,omitempty"`
21332
21333	// ForceSendFields is a list of field names (e.g. "Key") to
21334	// unconditionally include in API requests. By default, fields with
21335	// empty values are omitted from API requests. However, any non-pointer,
21336	// non-interface field appearing in ForceSendFields will be sent to the
21337	// server regardless of whether the field is empty or not. This may be
21338	// used to include empty fields in Patch requests.
21339	ForceSendFields []string `json:"-"`
21340
21341	// NullFields is a list of field names (e.g. "Key") to include in API
21342	// requests with the JSON null value. By default, fields with empty
21343	// values are omitted from API requests. However, any field with an
21344	// empty value appearing in NullFields will be sent to the server as
21345	// null. It is an error if a field in this list has a non-empty value.
21346	// This may be used to include null fields in Patch requests.
21347	NullFields []string `json:"-"`
21348}
21349
21350func (s *TargetPoolAggregatedListWarningData) MarshalJSON() ([]byte, error) {
21351	type NoMethod TargetPoolAggregatedListWarningData
21352	raw := NoMethod(*s)
21353	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21354}
21355
21356type TargetPoolInstanceHealth struct {
21357	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
21358
21359	// Kind: [Output Only] Type of resource. Always
21360	// compute#targetPoolInstanceHealth when checking the health of an
21361	// instance.
21362	Kind string `json:"kind,omitempty"`
21363
21364	// ServerResponse contains the HTTP response code and headers from the
21365	// server.
21366	googleapi.ServerResponse `json:"-"`
21367
21368	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
21369	// unconditionally include in API requests. By default, fields with
21370	// empty values are omitted from API requests. However, any non-pointer,
21371	// non-interface field appearing in ForceSendFields will be sent to the
21372	// server regardless of whether the field is empty or not. This may be
21373	// used to include empty fields in Patch requests.
21374	ForceSendFields []string `json:"-"`
21375
21376	// NullFields is a list of field names (e.g. "HealthStatus") to include
21377	// in API requests with the JSON null value. By default, fields with
21378	// empty values are omitted from API requests. However, any field with
21379	// an empty value appearing in NullFields will be sent to the server as
21380	// null. It is an error if a field in this list has a non-empty value.
21381	// This may be used to include null fields in Patch requests.
21382	NullFields []string `json:"-"`
21383}
21384
21385func (s *TargetPoolInstanceHealth) MarshalJSON() ([]byte, error) {
21386	type NoMethod TargetPoolInstanceHealth
21387	raw := NoMethod(*s)
21388	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21389}
21390
21391// TargetPoolList: Contains a list of TargetPool resources.
21392type TargetPoolList struct {
21393	// Id: [Output Only] Unique identifier for the resource; defined by the
21394	// server.
21395	Id string `json:"id,omitempty"`
21396
21397	// Items: A list of TargetPool resources.
21398	Items []*TargetPool `json:"items,omitempty"`
21399
21400	// Kind: [Output Only] Type of resource. Always compute#targetPoolList
21401	// for lists of target pools.
21402	Kind string `json:"kind,omitempty"`
21403
21404	// NextPageToken: [Output Only] This token allows you to get the next
21405	// page of results for list requests. If the number of results is larger
21406	// than maxResults, use the nextPageToken as a value for the query
21407	// parameter pageToken in the next list request. Subsequent list
21408	// requests will have their own nextPageToken to continue paging through
21409	// the results.
21410	NextPageToken string `json:"nextPageToken,omitempty"`
21411
21412	// SelfLink: [Output Only] Server-defined URL for this resource.
21413	SelfLink string `json:"selfLink,omitempty"`
21414
21415	// Warning: [Output Only] Informational warning message.
21416	Warning *TargetPoolListWarning `json:"warning,omitempty"`
21417
21418	// ServerResponse contains the HTTP response code and headers from the
21419	// server.
21420	googleapi.ServerResponse `json:"-"`
21421
21422	// ForceSendFields is a list of field names (e.g. "Id") to
21423	// unconditionally include in API requests. By default, fields with
21424	// empty values are omitted from API requests. However, any non-pointer,
21425	// non-interface field appearing in ForceSendFields will be sent to the
21426	// server regardless of whether the field is empty or not. This may be
21427	// used to include empty fields in Patch requests.
21428	ForceSendFields []string `json:"-"`
21429
21430	// NullFields is a list of field names (e.g. "Id") to include in API
21431	// requests with the JSON null value. By default, fields with empty
21432	// values are omitted from API requests. However, any field with an
21433	// empty value appearing in NullFields will be sent to the server as
21434	// null. It is an error if a field in this list has a non-empty value.
21435	// This may be used to include null fields in Patch requests.
21436	NullFields []string `json:"-"`
21437}
21438
21439func (s *TargetPoolList) MarshalJSON() ([]byte, error) {
21440	type NoMethod TargetPoolList
21441	raw := NoMethod(*s)
21442	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21443}
21444
21445// TargetPoolListWarning: [Output Only] Informational warning message.
21446type TargetPoolListWarning struct {
21447	// Code: [Output Only] A warning code, if applicable. For example,
21448	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21449	// the response.
21450	//
21451	// Possible values:
21452	//   "CLEANUP_FAILED"
21453	//   "DEPRECATED_RESOURCE_USED"
21454	//   "DEPRECATED_TYPE_USED"
21455	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21456	//   "EXPERIMENTAL_TYPE_USED"
21457	//   "EXTERNAL_API_WARNING"
21458	//   "FIELD_VALUE_OVERRIDEN"
21459	//   "INJECTED_KERNELS_DEPRECATED"
21460	//   "MISSING_TYPE_DEPENDENCY"
21461	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21462	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21463	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21464	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21465	//   "NEXT_HOP_NOT_RUNNING"
21466	//   "NOT_CRITICAL_ERROR"
21467	//   "NO_RESULTS_ON_PAGE"
21468	//   "REQUIRED_TOS_AGREEMENT"
21469	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21470	//   "RESOURCE_NOT_DELETED"
21471	//   "SCHEMA_VALIDATION_IGNORED"
21472	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21473	//   "UNDECLARED_PROPERTIES"
21474	//   "UNREACHABLE"
21475	Code string `json:"code,omitempty"`
21476
21477	// Data: [Output Only] Metadata about this warning in key: value format.
21478	// For example:
21479	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21480	Data []*TargetPoolListWarningData `json:"data,omitempty"`
21481
21482	// Message: [Output Only] A human-readable description of the warning
21483	// code.
21484	Message string `json:"message,omitempty"`
21485
21486	// ForceSendFields is a list of field names (e.g. "Code") to
21487	// unconditionally include in API requests. By default, fields with
21488	// empty values are omitted from API requests. However, any non-pointer,
21489	// non-interface field appearing in ForceSendFields will be sent to the
21490	// server regardless of whether the field is empty or not. This may be
21491	// used to include empty fields in Patch requests.
21492	ForceSendFields []string `json:"-"`
21493
21494	// NullFields is a list of field names (e.g. "Code") to include in API
21495	// requests with the JSON null value. By default, fields with empty
21496	// values are omitted from API requests. However, any field with an
21497	// empty value appearing in NullFields will be sent to the server as
21498	// null. It is an error if a field in this list has a non-empty value.
21499	// This may be used to include null fields in Patch requests.
21500	NullFields []string `json:"-"`
21501}
21502
21503func (s *TargetPoolListWarning) MarshalJSON() ([]byte, error) {
21504	type NoMethod TargetPoolListWarning
21505	raw := NoMethod(*s)
21506	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21507}
21508
21509type TargetPoolListWarningData struct {
21510	// Key: [Output Only] A key that provides more detail on the warning
21511	// being returned. For example, for warnings where there are no results
21512	// in a list request for a particular zone, this key might be scope and
21513	// the key value might be the zone name. Other examples might be a key
21514	// indicating a deprecated resource and a suggested replacement, or a
21515	// warning about invalid network settings (for example, if an instance
21516	// attempts to perform IP forwarding but is not enabled for IP
21517	// forwarding).
21518	Key string `json:"key,omitempty"`
21519
21520	// Value: [Output Only] A warning data value corresponding to the key.
21521	Value string `json:"value,omitempty"`
21522
21523	// ForceSendFields is a list of field names (e.g. "Key") to
21524	// unconditionally include in API requests. By default, fields with
21525	// empty values are omitted from API requests. However, any non-pointer,
21526	// non-interface field appearing in ForceSendFields will be sent to the
21527	// server regardless of whether the field is empty or not. This may be
21528	// used to include empty fields in Patch requests.
21529	ForceSendFields []string `json:"-"`
21530
21531	// NullFields is a list of field names (e.g. "Key") to include in API
21532	// requests with the JSON null value. By default, fields with empty
21533	// values are omitted from API requests. However, any field with an
21534	// empty value appearing in NullFields will be sent to the server as
21535	// null. It is an error if a field in this list has a non-empty value.
21536	// This may be used to include null fields in Patch requests.
21537	NullFields []string `json:"-"`
21538}
21539
21540func (s *TargetPoolListWarningData) MarshalJSON() ([]byte, error) {
21541	type NoMethod TargetPoolListWarningData
21542	raw := NoMethod(*s)
21543	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21544}
21545
21546type TargetPoolsAddHealthCheckRequest struct {
21547	// HealthChecks: The HttpHealthCheck to add to the target pool.
21548	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
21549
21550	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
21551	// unconditionally include in API requests. By default, fields with
21552	// empty values are omitted from API requests. However, any non-pointer,
21553	// non-interface field appearing in ForceSendFields will be sent to the
21554	// server regardless of whether the field is empty or not. This may be
21555	// used to include empty fields in Patch requests.
21556	ForceSendFields []string `json:"-"`
21557
21558	// NullFields is a list of field names (e.g. "HealthChecks") to include
21559	// in API requests with the JSON null value. By default, fields with
21560	// empty values are omitted from API requests. However, any field with
21561	// an empty value appearing in NullFields will be sent to the server as
21562	// null. It is an error if a field in this list has a non-empty value.
21563	// This may be used to include null fields in Patch requests.
21564	NullFields []string `json:"-"`
21565}
21566
21567func (s *TargetPoolsAddHealthCheckRequest) MarshalJSON() ([]byte, error) {
21568	type NoMethod TargetPoolsAddHealthCheckRequest
21569	raw := NoMethod(*s)
21570	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21571}
21572
21573type TargetPoolsAddInstanceRequest struct {
21574	// Instances: A full or partial URL to an instance to add to this target
21575	// pool. This can be a full or partial URL. For example, the following
21576	// are valid URLs:
21577	// -
21578	// https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name
21579	// - projects/project-id/zones/zone/instances/instance-name
21580	// - zones/zone/instances/instance-name
21581	Instances []*InstanceReference `json:"instances,omitempty"`
21582
21583	// ForceSendFields is a list of field names (e.g. "Instances") to
21584	// unconditionally include in API requests. By default, fields with
21585	// empty values are omitted from API requests. However, any non-pointer,
21586	// non-interface field appearing in ForceSendFields will be sent to the
21587	// server regardless of whether the field is empty or not. This may be
21588	// used to include empty fields in Patch requests.
21589	ForceSendFields []string `json:"-"`
21590
21591	// NullFields is a list of field names (e.g. "Instances") to include in
21592	// API requests with the JSON null value. By default, fields with empty
21593	// values are omitted from API requests. However, any field with an
21594	// empty value appearing in NullFields will be sent to the server as
21595	// null. It is an error if a field in this list has a non-empty value.
21596	// This may be used to include null fields in Patch requests.
21597	NullFields []string `json:"-"`
21598}
21599
21600func (s *TargetPoolsAddInstanceRequest) MarshalJSON() ([]byte, error) {
21601	type NoMethod TargetPoolsAddInstanceRequest
21602	raw := NoMethod(*s)
21603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21604}
21605
21606type TargetPoolsRemoveHealthCheckRequest struct {
21607	// HealthChecks: Health check URL to be removed. This can be a full or
21608	// valid partial URL. For example, the following are valid URLs:
21609	// -
21610	// https://www.googleapis.com/compute/beta/projects/project/global/httpHealthChecks/health-check
21611	// - projects/project/global/httpHealthChecks/health-check
21612	// - global/httpHealthChecks/health-check
21613	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
21614
21615	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
21616	// unconditionally include in API requests. By default, fields with
21617	// empty values are omitted from API requests. However, any non-pointer,
21618	// non-interface field appearing in ForceSendFields will be sent to the
21619	// server regardless of whether the field is empty or not. This may be
21620	// used to include empty fields in Patch requests.
21621	ForceSendFields []string `json:"-"`
21622
21623	// NullFields is a list of field names (e.g. "HealthChecks") to include
21624	// in API requests with the JSON null value. By default, fields with
21625	// empty values are omitted from API requests. However, any field with
21626	// an empty value appearing in NullFields will be sent to the server as
21627	// null. It is an error if a field in this list has a non-empty value.
21628	// This may be used to include null fields in Patch requests.
21629	NullFields []string `json:"-"`
21630}
21631
21632func (s *TargetPoolsRemoveHealthCheckRequest) MarshalJSON() ([]byte, error) {
21633	type NoMethod TargetPoolsRemoveHealthCheckRequest
21634	raw := NoMethod(*s)
21635	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21636}
21637
21638type TargetPoolsRemoveInstanceRequest struct {
21639	// Instances: URLs of the instances to be removed from target pool.
21640	Instances []*InstanceReference `json:"instances,omitempty"`
21641
21642	// ForceSendFields is a list of field names (e.g. "Instances") to
21643	// unconditionally include in API requests. By default, fields with
21644	// empty values are omitted from API requests. However, any non-pointer,
21645	// non-interface field appearing in ForceSendFields will be sent to the
21646	// server regardless of whether the field is empty or not. This may be
21647	// used to include empty fields in Patch requests.
21648	ForceSendFields []string `json:"-"`
21649
21650	// NullFields is a list of field names (e.g. "Instances") to include in
21651	// API requests with the JSON null value. By default, fields with empty
21652	// values are omitted from API requests. However, any field with an
21653	// empty value appearing in NullFields will be sent to the server as
21654	// null. It is an error if a field in this list has a non-empty value.
21655	// This may be used to include null fields in Patch requests.
21656	NullFields []string `json:"-"`
21657}
21658
21659func (s *TargetPoolsRemoveInstanceRequest) MarshalJSON() ([]byte, error) {
21660	type NoMethod TargetPoolsRemoveInstanceRequest
21661	raw := NoMethod(*s)
21662	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21663}
21664
21665type TargetPoolsScopedList struct {
21666	// TargetPools: A list of target pools contained in this scope.
21667	TargetPools []*TargetPool `json:"targetPools,omitempty"`
21668
21669	// Warning: Informational warning which replaces the list of addresses
21670	// when the list is empty.
21671	Warning *TargetPoolsScopedListWarning `json:"warning,omitempty"`
21672
21673	// ForceSendFields is a list of field names (e.g. "TargetPools") to
21674	// unconditionally include in API requests. By default, fields with
21675	// empty values are omitted from API requests. However, any non-pointer,
21676	// non-interface field appearing in ForceSendFields will be sent to the
21677	// server regardless of whether the field is empty or not. This may be
21678	// used to include empty fields in Patch requests.
21679	ForceSendFields []string `json:"-"`
21680
21681	// NullFields is a list of field names (e.g. "TargetPools") to include
21682	// in API requests with the JSON null value. By default, fields with
21683	// empty values are omitted from API requests. However, any field with
21684	// an empty value appearing in NullFields will be sent to the server as
21685	// null. It is an error if a field in this list has a non-empty value.
21686	// This may be used to include null fields in Patch requests.
21687	NullFields []string `json:"-"`
21688}
21689
21690func (s *TargetPoolsScopedList) MarshalJSON() ([]byte, error) {
21691	type NoMethod TargetPoolsScopedList
21692	raw := NoMethod(*s)
21693	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21694}
21695
21696// TargetPoolsScopedListWarning: Informational warning which replaces
21697// the list of addresses when the list is empty.
21698type TargetPoolsScopedListWarning struct {
21699	// Code: [Output Only] A warning code, if applicable. For example,
21700	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21701	// the response.
21702	//
21703	// Possible values:
21704	//   "CLEANUP_FAILED"
21705	//   "DEPRECATED_RESOURCE_USED"
21706	//   "DEPRECATED_TYPE_USED"
21707	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21708	//   "EXPERIMENTAL_TYPE_USED"
21709	//   "EXTERNAL_API_WARNING"
21710	//   "FIELD_VALUE_OVERRIDEN"
21711	//   "INJECTED_KERNELS_DEPRECATED"
21712	//   "MISSING_TYPE_DEPENDENCY"
21713	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21714	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21715	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21716	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21717	//   "NEXT_HOP_NOT_RUNNING"
21718	//   "NOT_CRITICAL_ERROR"
21719	//   "NO_RESULTS_ON_PAGE"
21720	//   "REQUIRED_TOS_AGREEMENT"
21721	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21722	//   "RESOURCE_NOT_DELETED"
21723	//   "SCHEMA_VALIDATION_IGNORED"
21724	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21725	//   "UNDECLARED_PROPERTIES"
21726	//   "UNREACHABLE"
21727	Code string `json:"code,omitempty"`
21728
21729	// Data: [Output Only] Metadata about this warning in key: value format.
21730	// For example:
21731	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21732	Data []*TargetPoolsScopedListWarningData `json:"data,omitempty"`
21733
21734	// Message: [Output Only] A human-readable description of the warning
21735	// code.
21736	Message string `json:"message,omitempty"`
21737
21738	// ForceSendFields is a list of field names (e.g. "Code") to
21739	// unconditionally include in API requests. By default, fields with
21740	// empty values are omitted from API requests. However, any non-pointer,
21741	// non-interface field appearing in ForceSendFields will be sent to the
21742	// server regardless of whether the field is empty or not. This may be
21743	// used to include empty fields in Patch requests.
21744	ForceSendFields []string `json:"-"`
21745
21746	// NullFields is a list of field names (e.g. "Code") to include in API
21747	// requests with the JSON null value. By default, fields with empty
21748	// values are omitted from API requests. However, any field with an
21749	// empty value appearing in NullFields will be sent to the server as
21750	// null. It is an error if a field in this list has a non-empty value.
21751	// This may be used to include null fields in Patch requests.
21752	NullFields []string `json:"-"`
21753}
21754
21755func (s *TargetPoolsScopedListWarning) MarshalJSON() ([]byte, error) {
21756	type NoMethod TargetPoolsScopedListWarning
21757	raw := NoMethod(*s)
21758	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21759}
21760
21761type TargetPoolsScopedListWarningData struct {
21762	// Key: [Output Only] A key that provides more detail on the warning
21763	// being returned. For example, for warnings where there are no results
21764	// in a list request for a particular zone, this key might be scope and
21765	// the key value might be the zone name. Other examples might be a key
21766	// indicating a deprecated resource and a suggested replacement, or a
21767	// warning about invalid network settings (for example, if an instance
21768	// attempts to perform IP forwarding but is not enabled for IP
21769	// forwarding).
21770	Key string `json:"key,omitempty"`
21771
21772	// Value: [Output Only] A warning data value corresponding to the key.
21773	Value string `json:"value,omitempty"`
21774
21775	// ForceSendFields is a list of field names (e.g. "Key") to
21776	// unconditionally include in API requests. By default, fields with
21777	// empty values are omitted from API requests. However, any non-pointer,
21778	// non-interface field appearing in ForceSendFields will be sent to the
21779	// server regardless of whether the field is empty or not. This may be
21780	// used to include empty fields in Patch requests.
21781	ForceSendFields []string `json:"-"`
21782
21783	// NullFields is a list of field names (e.g. "Key") to include in API
21784	// requests with the JSON null value. By default, fields with empty
21785	// values are omitted from API requests. However, any field with an
21786	// empty value appearing in NullFields will be sent to the server as
21787	// null. It is an error if a field in this list has a non-empty value.
21788	// This may be used to include null fields in Patch requests.
21789	NullFields []string `json:"-"`
21790}
21791
21792func (s *TargetPoolsScopedListWarningData) MarshalJSON() ([]byte, error) {
21793	type NoMethod TargetPoolsScopedListWarningData
21794	raw := NoMethod(*s)
21795	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21796}
21797
21798type TargetReference struct {
21799	Target string `json:"target,omitempty"`
21800
21801	// ForceSendFields is a list of field names (e.g. "Target") to
21802	// unconditionally include in API requests. By default, fields with
21803	// empty values are omitted from API requests. However, any non-pointer,
21804	// non-interface field appearing in ForceSendFields will be sent to the
21805	// server regardless of whether the field is empty or not. This may be
21806	// used to include empty fields in Patch requests.
21807	ForceSendFields []string `json:"-"`
21808
21809	// NullFields is a list of field names (e.g. "Target") to include in API
21810	// requests with the JSON null value. By default, fields with empty
21811	// values are omitted from API requests. However, any field with an
21812	// empty value appearing in NullFields will be sent to the server as
21813	// null. It is an error if a field in this list has a non-empty value.
21814	// This may be used to include null fields in Patch requests.
21815	NullFields []string `json:"-"`
21816}
21817
21818func (s *TargetReference) MarshalJSON() ([]byte, error) {
21819	type NoMethod TargetReference
21820	raw := NoMethod(*s)
21821	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21822}
21823
21824type TargetSslProxiesSetBackendServiceRequest struct {
21825	// Service: The URL of the new BackendService resource for the
21826	// targetSslProxy.
21827	Service string `json:"service,omitempty"`
21828
21829	// ForceSendFields is a list of field names (e.g. "Service") to
21830	// unconditionally include in API requests. By default, fields with
21831	// empty values are omitted from API requests. However, any non-pointer,
21832	// non-interface field appearing in ForceSendFields will be sent to the
21833	// server regardless of whether the field is empty or not. This may be
21834	// used to include empty fields in Patch requests.
21835	ForceSendFields []string `json:"-"`
21836
21837	// NullFields is a list of field names (e.g. "Service") to include in
21838	// API requests with the JSON null value. By default, fields with empty
21839	// values are omitted from API requests. However, any field with an
21840	// empty value appearing in NullFields will be sent to the server as
21841	// null. It is an error if a field in this list has a non-empty value.
21842	// This may be used to include null fields in Patch requests.
21843	NullFields []string `json:"-"`
21844}
21845
21846func (s *TargetSslProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
21847	type NoMethod TargetSslProxiesSetBackendServiceRequest
21848	raw := NoMethod(*s)
21849	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21850}
21851
21852type TargetSslProxiesSetProxyHeaderRequest struct {
21853	// ProxyHeader: The new type of proxy header to append before sending
21854	// data to the backend. NONE or PROXY_V1 are allowed.
21855	//
21856	// Possible values:
21857	//   "NONE"
21858	//   "PROXY_V1"
21859	ProxyHeader string `json:"proxyHeader,omitempty"`
21860
21861	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
21862	// unconditionally include in API requests. By default, fields with
21863	// empty values are omitted from API requests. However, any non-pointer,
21864	// non-interface field appearing in ForceSendFields will be sent to the
21865	// server regardless of whether the field is empty or not. This may be
21866	// used to include empty fields in Patch requests.
21867	ForceSendFields []string `json:"-"`
21868
21869	// NullFields is a list of field names (e.g. "ProxyHeader") to include
21870	// in API requests with the JSON null value. By default, fields with
21871	// empty values are omitted from API requests. However, any field with
21872	// an empty value appearing in NullFields will be sent to the server as
21873	// null. It is an error if a field in this list has a non-empty value.
21874	// This may be used to include null fields in Patch requests.
21875	NullFields []string `json:"-"`
21876}
21877
21878func (s *TargetSslProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
21879	type NoMethod TargetSslProxiesSetProxyHeaderRequest
21880	raw := NoMethod(*s)
21881	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21882}
21883
21884type TargetSslProxiesSetSslCertificatesRequest struct {
21885	// SslCertificates: New set of URLs to SslCertificate resources to
21886	// associate with this TargetSslProxy. Currently exactly one ssl
21887	// certificate must be specified.
21888	SslCertificates []string `json:"sslCertificates,omitempty"`
21889
21890	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
21891	// unconditionally include in API requests. By default, fields with
21892	// empty values are omitted from API requests. However, any non-pointer,
21893	// non-interface field appearing in ForceSendFields will be sent to the
21894	// server regardless of whether the field is empty or not. This may be
21895	// used to include empty fields in Patch requests.
21896	ForceSendFields []string `json:"-"`
21897
21898	// NullFields is a list of field names (e.g. "SslCertificates") to
21899	// include in API requests with the JSON null value. By default, fields
21900	// with empty values are omitted from API requests. However, any field
21901	// with an empty value appearing in NullFields will be sent to the
21902	// server as null. It is an error if a field in this list has a
21903	// non-empty value. This may be used to include null fields in Patch
21904	// requests.
21905	NullFields []string `json:"-"`
21906}
21907
21908func (s *TargetSslProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
21909	type NoMethod TargetSslProxiesSetSslCertificatesRequest
21910	raw := NoMethod(*s)
21911	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21912}
21913
21914// TargetSslProxy: A TargetSslProxy resource. This resource defines an
21915// SSL proxy. (== resource_for beta.targetSslProxies ==) (==
21916// resource_for v1.targetSslProxies ==)
21917type TargetSslProxy struct {
21918	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21919	// format.
21920	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21921
21922	// Description: An optional description of this resource. Provide this
21923	// property when you create the resource.
21924	Description string `json:"description,omitempty"`
21925
21926	// Id: [Output Only] The unique identifier for the resource. This
21927	// identifier is defined by the server.
21928	Id uint64 `json:"id,omitempty,string"`
21929
21930	// Kind: [Output Only] Type of the resource. Always
21931	// compute#targetSslProxy for target SSL proxies.
21932	Kind string `json:"kind,omitempty"`
21933
21934	// Name: Name of the resource. Provided by the client when the resource
21935	// is created. The name must be 1-63 characters long, and comply with
21936	// RFC1035. Specifically, the name must be 1-63 characters long and
21937	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
21938	// the first character must be a lowercase letter, and all following
21939	// characters must be a dash, lowercase letter, or digit, except the
21940	// last character, which cannot be a dash.
21941	Name string `json:"name,omitempty"`
21942
21943	// ProxyHeader: Specifies the type of proxy header to append before
21944	// sending data to the backend, either NONE or PROXY_V1. The default is
21945	// NONE.
21946	//
21947	// Possible values:
21948	//   "NONE"
21949	//   "PROXY_V1"
21950	ProxyHeader string `json:"proxyHeader,omitempty"`
21951
21952	// SelfLink: [Output Only] Server-defined URL for the resource.
21953	SelfLink string `json:"selfLink,omitempty"`
21954
21955	// Service: URL to the BackendService resource.
21956	Service string `json:"service,omitempty"`
21957
21958	// SslCertificates: URLs to SslCertificate resources that are used to
21959	// authenticate connections to Backends. Currently exactly one SSL
21960	// certificate must be specified.
21961	SslCertificates []string `json:"sslCertificates,omitempty"`
21962
21963	// SslPolicy: URL of SslPolicy resource that will be associated with the
21964	// TargetSslProxy resource. If not set, the TargetSslProxy resource will
21965	// not have any SSL policy configured.
21966	SslPolicy string `json:"sslPolicy,omitempty"`
21967
21968	// ServerResponse contains the HTTP response code and headers from the
21969	// server.
21970	googleapi.ServerResponse `json:"-"`
21971
21972	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
21973	// to unconditionally include in API requests. By default, fields with
21974	// empty values are omitted from API requests. However, any non-pointer,
21975	// non-interface field appearing in ForceSendFields will be sent to the
21976	// server regardless of whether the field is empty or not. This may be
21977	// used to include empty fields in Patch requests.
21978	ForceSendFields []string `json:"-"`
21979
21980	// NullFields is a list of field names (e.g. "CreationTimestamp") to
21981	// include in API requests with the JSON null value. By default, fields
21982	// with empty values are omitted from API requests. However, any field
21983	// with an empty value appearing in NullFields will be sent to the
21984	// server as null. It is an error if a field in this list has a
21985	// non-empty value. This may be used to include null fields in Patch
21986	// requests.
21987	NullFields []string `json:"-"`
21988}
21989
21990func (s *TargetSslProxy) MarshalJSON() ([]byte, error) {
21991	type NoMethod TargetSslProxy
21992	raw := NoMethod(*s)
21993	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21994}
21995
21996// TargetSslProxyList: Contains a list of TargetSslProxy resources.
21997type TargetSslProxyList struct {
21998	// Id: [Output Only] Unique identifier for the resource; defined by the
21999	// server.
22000	Id string `json:"id,omitempty"`
22001
22002	// Items: A list of TargetSslProxy resources.
22003	Items []*TargetSslProxy `json:"items,omitempty"`
22004
22005	// Kind: Type of resource.
22006	Kind string `json:"kind,omitempty"`
22007
22008	// NextPageToken: [Output Only] This token allows you to get the next
22009	// page of results for list requests. If the number of results is larger
22010	// than maxResults, use the nextPageToken as a value for the query
22011	// parameter pageToken in the next list request. Subsequent list
22012	// requests will have their own nextPageToken to continue paging through
22013	// the results.
22014	NextPageToken string `json:"nextPageToken,omitempty"`
22015
22016	// SelfLink: [Output Only] Server-defined URL for this resource.
22017	SelfLink string `json:"selfLink,omitempty"`
22018
22019	// Warning: [Output Only] Informational warning message.
22020	Warning *TargetSslProxyListWarning `json:"warning,omitempty"`
22021
22022	// ServerResponse contains the HTTP response code and headers from the
22023	// server.
22024	googleapi.ServerResponse `json:"-"`
22025
22026	// ForceSendFields is a list of field names (e.g. "Id") to
22027	// unconditionally include in API requests. By default, fields with
22028	// empty values are omitted from API requests. However, any non-pointer,
22029	// non-interface field appearing in ForceSendFields will be sent to the
22030	// server regardless of whether the field is empty or not. This may be
22031	// used to include empty fields in Patch requests.
22032	ForceSendFields []string `json:"-"`
22033
22034	// NullFields is a list of field names (e.g. "Id") to include in API
22035	// requests with the JSON null value. By default, fields with empty
22036	// values are omitted from API requests. However, any field with an
22037	// empty value appearing in NullFields will be sent to the server as
22038	// null. It is an error if a field in this list has a non-empty value.
22039	// This may be used to include null fields in Patch requests.
22040	NullFields []string `json:"-"`
22041}
22042
22043func (s *TargetSslProxyList) MarshalJSON() ([]byte, error) {
22044	type NoMethod TargetSslProxyList
22045	raw := NoMethod(*s)
22046	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22047}
22048
22049// TargetSslProxyListWarning: [Output Only] Informational warning
22050// message.
22051type TargetSslProxyListWarning struct {
22052	// Code: [Output Only] A warning code, if applicable. For example,
22053	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22054	// the response.
22055	//
22056	// Possible values:
22057	//   "CLEANUP_FAILED"
22058	//   "DEPRECATED_RESOURCE_USED"
22059	//   "DEPRECATED_TYPE_USED"
22060	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22061	//   "EXPERIMENTAL_TYPE_USED"
22062	//   "EXTERNAL_API_WARNING"
22063	//   "FIELD_VALUE_OVERRIDEN"
22064	//   "INJECTED_KERNELS_DEPRECATED"
22065	//   "MISSING_TYPE_DEPENDENCY"
22066	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22067	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22068	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22069	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22070	//   "NEXT_HOP_NOT_RUNNING"
22071	//   "NOT_CRITICAL_ERROR"
22072	//   "NO_RESULTS_ON_PAGE"
22073	//   "REQUIRED_TOS_AGREEMENT"
22074	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22075	//   "RESOURCE_NOT_DELETED"
22076	//   "SCHEMA_VALIDATION_IGNORED"
22077	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22078	//   "UNDECLARED_PROPERTIES"
22079	//   "UNREACHABLE"
22080	Code string `json:"code,omitempty"`
22081
22082	// Data: [Output Only] Metadata about this warning in key: value format.
22083	// For example:
22084	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22085	Data []*TargetSslProxyListWarningData `json:"data,omitempty"`
22086
22087	// Message: [Output Only] A human-readable description of the warning
22088	// code.
22089	Message string `json:"message,omitempty"`
22090
22091	// ForceSendFields is a list of field names (e.g. "Code") to
22092	// unconditionally include in API requests. By default, fields with
22093	// empty values are omitted from API requests. However, any non-pointer,
22094	// non-interface field appearing in ForceSendFields will be sent to the
22095	// server regardless of whether the field is empty or not. This may be
22096	// used to include empty fields in Patch requests.
22097	ForceSendFields []string `json:"-"`
22098
22099	// NullFields is a list of field names (e.g. "Code") to include in API
22100	// requests with the JSON null value. By default, fields with empty
22101	// values are omitted from API requests. However, any field with an
22102	// empty value appearing in NullFields will be sent to the server as
22103	// null. It is an error if a field in this list has a non-empty value.
22104	// This may be used to include null fields in Patch requests.
22105	NullFields []string `json:"-"`
22106}
22107
22108func (s *TargetSslProxyListWarning) MarshalJSON() ([]byte, error) {
22109	type NoMethod TargetSslProxyListWarning
22110	raw := NoMethod(*s)
22111	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22112}
22113
22114type TargetSslProxyListWarningData struct {
22115	// Key: [Output Only] A key that provides more detail on the warning
22116	// being returned. For example, for warnings where there are no results
22117	// in a list request for a particular zone, this key might be scope and
22118	// the key value might be the zone name. Other examples might be a key
22119	// indicating a deprecated resource and a suggested replacement, or a
22120	// warning about invalid network settings (for example, if an instance
22121	// attempts to perform IP forwarding but is not enabled for IP
22122	// forwarding).
22123	Key string `json:"key,omitempty"`
22124
22125	// Value: [Output Only] A warning data value corresponding to the key.
22126	Value string `json:"value,omitempty"`
22127
22128	// ForceSendFields is a list of field names (e.g. "Key") to
22129	// unconditionally include in API requests. By default, fields with
22130	// empty values are omitted from API requests. However, any non-pointer,
22131	// non-interface field appearing in ForceSendFields will be sent to the
22132	// server regardless of whether the field is empty or not. This may be
22133	// used to include empty fields in Patch requests.
22134	ForceSendFields []string `json:"-"`
22135
22136	// NullFields is a list of field names (e.g. "Key") to include in API
22137	// requests with the JSON null value. By default, fields with empty
22138	// values are omitted from API requests. However, any field with an
22139	// empty value appearing in NullFields will be sent to the server as
22140	// null. It is an error if a field in this list has a non-empty value.
22141	// This may be used to include null fields in Patch requests.
22142	NullFields []string `json:"-"`
22143}
22144
22145func (s *TargetSslProxyListWarningData) MarshalJSON() ([]byte, error) {
22146	type NoMethod TargetSslProxyListWarningData
22147	raw := NoMethod(*s)
22148	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22149}
22150
22151type TargetTcpProxiesSetBackendServiceRequest struct {
22152	// Service: The URL of the new BackendService resource for the
22153	// targetTcpProxy.
22154	Service string `json:"service,omitempty"`
22155
22156	// ForceSendFields is a list of field names (e.g. "Service") to
22157	// unconditionally include in API requests. By default, fields with
22158	// empty values are omitted from API requests. However, any non-pointer,
22159	// non-interface field appearing in ForceSendFields will be sent to the
22160	// server regardless of whether the field is empty or not. This may be
22161	// used to include empty fields in Patch requests.
22162	ForceSendFields []string `json:"-"`
22163
22164	// NullFields is a list of field names (e.g. "Service") to include in
22165	// API requests with the JSON null value. By default, fields with empty
22166	// values are omitted from API requests. However, any field with an
22167	// empty value appearing in NullFields will be sent to the server as
22168	// null. It is an error if a field in this list has a non-empty value.
22169	// This may be used to include null fields in Patch requests.
22170	NullFields []string `json:"-"`
22171}
22172
22173func (s *TargetTcpProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
22174	type NoMethod TargetTcpProxiesSetBackendServiceRequest
22175	raw := NoMethod(*s)
22176	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22177}
22178
22179type TargetTcpProxiesSetProxyHeaderRequest struct {
22180	// ProxyHeader: The new type of proxy header to append before sending
22181	// data to the backend. NONE or PROXY_V1 are allowed.
22182	//
22183	// Possible values:
22184	//   "NONE"
22185	//   "PROXY_V1"
22186	ProxyHeader string `json:"proxyHeader,omitempty"`
22187
22188	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
22189	// unconditionally include in API requests. By default, fields with
22190	// empty values are omitted from API requests. However, any non-pointer,
22191	// non-interface field appearing in ForceSendFields will be sent to the
22192	// server regardless of whether the field is empty or not. This may be
22193	// used to include empty fields in Patch requests.
22194	ForceSendFields []string `json:"-"`
22195
22196	// NullFields is a list of field names (e.g. "ProxyHeader") to include
22197	// in API requests with the JSON null value. By default, fields with
22198	// empty values are omitted from API requests. However, any field with
22199	// an empty value appearing in NullFields will be sent to the server as
22200	// null. It is an error if a field in this list has a non-empty value.
22201	// This may be used to include null fields in Patch requests.
22202	NullFields []string `json:"-"`
22203}
22204
22205func (s *TargetTcpProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
22206	type NoMethod TargetTcpProxiesSetProxyHeaderRequest
22207	raw := NoMethod(*s)
22208	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22209}
22210
22211// TargetTcpProxy: A TargetTcpProxy resource. This resource defines a
22212// TCP proxy. (== resource_for beta.targetTcpProxies ==) (==
22213// resource_for v1.targetTcpProxies ==)
22214type TargetTcpProxy struct {
22215	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
22216	// format.
22217	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22218
22219	// Description: An optional description of this resource. Provide this
22220	// property when you create the resource.
22221	Description string `json:"description,omitempty"`
22222
22223	// Id: [Output Only] The unique identifier for the resource. This
22224	// identifier is defined by the server.
22225	Id uint64 `json:"id,omitempty,string"`
22226
22227	// Kind: [Output Only] Type of the resource. Always
22228	// compute#targetTcpProxy for target TCP proxies.
22229	Kind string `json:"kind,omitempty"`
22230
22231	// Name: Name of the resource. Provided by the client when the resource
22232	// is created. The name must be 1-63 characters long, and comply with
22233	// RFC1035. Specifically, the name must be 1-63 characters long and
22234	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
22235	// the first character must be a lowercase letter, and all following
22236	// characters must be a dash, lowercase letter, or digit, except the
22237	// last character, which cannot be a dash.
22238	Name string `json:"name,omitempty"`
22239
22240	// ProxyHeader: Specifies the type of proxy header to append before
22241	// sending data to the backend, either NONE or PROXY_V1. The default is
22242	// NONE.
22243	//
22244	// Possible values:
22245	//   "NONE"
22246	//   "PROXY_V1"
22247	ProxyHeader string `json:"proxyHeader,omitempty"`
22248
22249	// SelfLink: [Output Only] Server-defined URL for the resource.
22250	SelfLink string `json:"selfLink,omitempty"`
22251
22252	// Service: URL to the BackendService resource.
22253	Service string `json:"service,omitempty"`
22254
22255	// ServerResponse contains the HTTP response code and headers from the
22256	// server.
22257	googleapi.ServerResponse `json:"-"`
22258
22259	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
22260	// to unconditionally include in API requests. By default, fields with
22261	// empty values are omitted from API requests. However, any non-pointer,
22262	// non-interface field appearing in ForceSendFields will be sent to the
22263	// server regardless of whether the field is empty or not. This may be
22264	// used to include empty fields in Patch requests.
22265	ForceSendFields []string `json:"-"`
22266
22267	// NullFields is a list of field names (e.g. "CreationTimestamp") to
22268	// include in API requests with the JSON null value. By default, fields
22269	// with empty values are omitted from API requests. However, any field
22270	// with an empty value appearing in NullFields will be sent to the
22271	// server as null. It is an error if a field in this list has a
22272	// non-empty value. This may be used to include null fields in Patch
22273	// requests.
22274	NullFields []string `json:"-"`
22275}
22276
22277func (s *TargetTcpProxy) MarshalJSON() ([]byte, error) {
22278	type NoMethod TargetTcpProxy
22279	raw := NoMethod(*s)
22280	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22281}
22282
22283// TargetTcpProxyList: Contains a list of TargetTcpProxy resources.
22284type TargetTcpProxyList struct {
22285	// Id: [Output Only] Unique identifier for the resource; defined by the
22286	// server.
22287	Id string `json:"id,omitempty"`
22288
22289	// Items: A list of TargetTcpProxy resources.
22290	Items []*TargetTcpProxy `json:"items,omitempty"`
22291
22292	// Kind: Type of resource.
22293	Kind string `json:"kind,omitempty"`
22294
22295	// NextPageToken: [Output Only] This token allows you to get the next
22296	// page of results for list requests. If the number of results is larger
22297	// than maxResults, use the nextPageToken as a value for the query
22298	// parameter pageToken in the next list request. Subsequent list
22299	// requests will have their own nextPageToken to continue paging through
22300	// the results.
22301	NextPageToken string `json:"nextPageToken,omitempty"`
22302
22303	// SelfLink: [Output Only] Server-defined URL for this resource.
22304	SelfLink string `json:"selfLink,omitempty"`
22305
22306	// Warning: [Output Only] Informational warning message.
22307	Warning *TargetTcpProxyListWarning `json:"warning,omitempty"`
22308
22309	// ServerResponse contains the HTTP response code and headers from the
22310	// server.
22311	googleapi.ServerResponse `json:"-"`
22312
22313	// ForceSendFields is a list of field names (e.g. "Id") to
22314	// unconditionally include in API requests. By default, fields with
22315	// empty values are omitted from API requests. However, any non-pointer,
22316	// non-interface field appearing in ForceSendFields will be sent to the
22317	// server regardless of whether the field is empty or not. This may be
22318	// used to include empty fields in Patch requests.
22319	ForceSendFields []string `json:"-"`
22320
22321	// NullFields is a list of field names (e.g. "Id") to include in API
22322	// requests with the JSON null value. By default, fields with empty
22323	// values are omitted from API requests. However, any field with an
22324	// empty value appearing in NullFields will be sent to the server as
22325	// null. It is an error if a field in this list has a non-empty value.
22326	// This may be used to include null fields in Patch requests.
22327	NullFields []string `json:"-"`
22328}
22329
22330func (s *TargetTcpProxyList) MarshalJSON() ([]byte, error) {
22331	type NoMethod TargetTcpProxyList
22332	raw := NoMethod(*s)
22333	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22334}
22335
22336// TargetTcpProxyListWarning: [Output Only] Informational warning
22337// message.
22338type TargetTcpProxyListWarning struct {
22339	// Code: [Output Only] A warning code, if applicable. For example,
22340	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22341	// the response.
22342	//
22343	// Possible values:
22344	//   "CLEANUP_FAILED"
22345	//   "DEPRECATED_RESOURCE_USED"
22346	//   "DEPRECATED_TYPE_USED"
22347	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22348	//   "EXPERIMENTAL_TYPE_USED"
22349	//   "EXTERNAL_API_WARNING"
22350	//   "FIELD_VALUE_OVERRIDEN"
22351	//   "INJECTED_KERNELS_DEPRECATED"
22352	//   "MISSING_TYPE_DEPENDENCY"
22353	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22354	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22355	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22356	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22357	//   "NEXT_HOP_NOT_RUNNING"
22358	//   "NOT_CRITICAL_ERROR"
22359	//   "NO_RESULTS_ON_PAGE"
22360	//   "REQUIRED_TOS_AGREEMENT"
22361	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22362	//   "RESOURCE_NOT_DELETED"
22363	//   "SCHEMA_VALIDATION_IGNORED"
22364	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22365	//   "UNDECLARED_PROPERTIES"
22366	//   "UNREACHABLE"
22367	Code string `json:"code,omitempty"`
22368
22369	// Data: [Output Only] Metadata about this warning in key: value format.
22370	// For example:
22371	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22372	Data []*TargetTcpProxyListWarningData `json:"data,omitempty"`
22373
22374	// Message: [Output Only] A human-readable description of the warning
22375	// code.
22376	Message string `json:"message,omitempty"`
22377
22378	// ForceSendFields is a list of field names (e.g. "Code") to
22379	// unconditionally include in API requests. By default, fields with
22380	// empty values are omitted from API requests. However, any non-pointer,
22381	// non-interface field appearing in ForceSendFields will be sent to the
22382	// server regardless of whether the field is empty or not. This may be
22383	// used to include empty fields in Patch requests.
22384	ForceSendFields []string `json:"-"`
22385
22386	// NullFields is a list of field names (e.g. "Code") to include in API
22387	// requests with the JSON null value. By default, fields with empty
22388	// values are omitted from API requests. However, any field with an
22389	// empty value appearing in NullFields will be sent to the server as
22390	// null. It is an error if a field in this list has a non-empty value.
22391	// This may be used to include null fields in Patch requests.
22392	NullFields []string `json:"-"`
22393}
22394
22395func (s *TargetTcpProxyListWarning) MarshalJSON() ([]byte, error) {
22396	type NoMethod TargetTcpProxyListWarning
22397	raw := NoMethod(*s)
22398	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22399}
22400
22401type TargetTcpProxyListWarningData struct {
22402	// Key: [Output Only] A key that provides more detail on the warning
22403	// being returned. For example, for warnings where there are no results
22404	// in a list request for a particular zone, this key might be scope and
22405	// the key value might be the zone name. Other examples might be a key
22406	// indicating a deprecated resource and a suggested replacement, or a
22407	// warning about invalid network settings (for example, if an instance
22408	// attempts to perform IP forwarding but is not enabled for IP
22409	// forwarding).
22410	Key string `json:"key,omitempty"`
22411
22412	// Value: [Output Only] A warning data value corresponding to the key.
22413	Value string `json:"value,omitempty"`
22414
22415	// ForceSendFields is a list of field names (e.g. "Key") to
22416	// unconditionally include in API requests. By default, fields with
22417	// empty values are omitted from API requests. However, any non-pointer,
22418	// non-interface field appearing in ForceSendFields will be sent to the
22419	// server regardless of whether the field is empty or not. This may be
22420	// used to include empty fields in Patch requests.
22421	ForceSendFields []string `json:"-"`
22422
22423	// NullFields is a list of field names (e.g. "Key") to include in API
22424	// requests with the JSON null value. By default, fields with empty
22425	// values are omitted from API requests. However, any field with an
22426	// empty value appearing in NullFields will be sent to the server as
22427	// null. It is an error if a field in this list has a non-empty value.
22428	// This may be used to include null fields in Patch requests.
22429	NullFields []string `json:"-"`
22430}
22431
22432func (s *TargetTcpProxyListWarningData) MarshalJSON() ([]byte, error) {
22433	type NoMethod TargetTcpProxyListWarningData
22434	raw := NoMethod(*s)
22435	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22436}
22437
22438// TargetVpnGateway: Represents a Target VPN gateway resource. (==
22439// resource_for beta.targetVpnGateways ==) (== resource_for
22440// v1.targetVpnGateways ==)
22441type TargetVpnGateway struct {
22442	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
22443	// format.
22444	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22445
22446	// Description: An optional description of this resource. Provide this
22447	// property when you create the resource.
22448	Description string `json:"description,omitempty"`
22449
22450	// ForwardingRules: [Output Only] A list of URLs to the ForwardingRule
22451	// resources. ForwardingRules are created using
22452	// compute.forwardingRules.insert and associated to a VPN gateway.
22453	ForwardingRules []string `json:"forwardingRules,omitempty"`
22454
22455	// Id: [Output Only] The unique identifier for the resource. This
22456	// identifier is defined by the server.
22457	Id uint64 `json:"id,omitempty,string"`
22458
22459	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
22460	// for target VPN gateways.
22461	Kind string `json:"kind,omitempty"`
22462
22463	// Name: Name of the resource. Provided by the client when the resource
22464	// is created. The name must be 1-63 characters long, and comply with
22465	// RFC1035. Specifically, the name must be 1-63 characters long and
22466	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
22467	// the first character must be a lowercase letter, and all following
22468	// characters must be a dash, lowercase letter, or digit, except the
22469	// last character, which cannot be a dash.
22470	Name string `json:"name,omitempty"`
22471
22472	// Network: URL of the network to which this VPN gateway is attached.
22473	// Provided by the client when the VPN gateway is created.
22474	Network string `json:"network,omitempty"`
22475
22476	// Region: [Output Only] URL of the region where the target VPN gateway
22477	// resides. You must specify this field as part of the HTTP request URL.
22478	// It is not settable as a field in the request body.
22479	Region string `json:"region,omitempty"`
22480
22481	// SelfLink: [Output Only] Server-defined URL for the resource.
22482	SelfLink string `json:"selfLink,omitempty"`
22483
22484	// Status: [Output Only] The status of the VPN gateway.
22485	//
22486	// Possible values:
22487	//   "CREATING"
22488	//   "DELETING"
22489	//   "FAILED"
22490	//   "READY"
22491	Status string `json:"status,omitempty"`
22492
22493	// Tunnels: [Output Only] A list of URLs to VpnTunnel resources.
22494	// VpnTunnels are created using compute.vpntunnels.insert method and
22495	// associated to a VPN gateway.
22496	Tunnels []string `json:"tunnels,omitempty"`
22497
22498	// ServerResponse contains the HTTP response code and headers from the
22499	// server.
22500	googleapi.ServerResponse `json:"-"`
22501
22502	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
22503	// to unconditionally include in API requests. By default, fields with
22504	// empty values are omitted from API requests. However, any non-pointer,
22505	// non-interface field appearing in ForceSendFields will be sent to the
22506	// server regardless of whether the field is empty or not. This may be
22507	// used to include empty fields in Patch requests.
22508	ForceSendFields []string `json:"-"`
22509
22510	// NullFields is a list of field names (e.g. "CreationTimestamp") to
22511	// include in API requests with the JSON null value. By default, fields
22512	// with empty values are omitted from API requests. However, any field
22513	// with an empty value appearing in NullFields will be sent to the
22514	// server as null. It is an error if a field in this list has a
22515	// non-empty value. This may be used to include null fields in Patch
22516	// requests.
22517	NullFields []string `json:"-"`
22518}
22519
22520func (s *TargetVpnGateway) MarshalJSON() ([]byte, error) {
22521	type NoMethod TargetVpnGateway
22522	raw := NoMethod(*s)
22523	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22524}
22525
22526type TargetVpnGatewayAggregatedList struct {
22527	// Id: [Output Only] Unique identifier for the resource; defined by the
22528	// server.
22529	Id string `json:"id,omitempty"`
22530
22531	// Items: A list of TargetVpnGateway resources.
22532	Items map[string]TargetVpnGatewaysScopedList `json:"items,omitempty"`
22533
22534	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
22535	// for target VPN gateways.
22536	Kind string `json:"kind,omitempty"`
22537
22538	// NextPageToken: [Output Only] This token allows you to get the next
22539	// page of results for list requests. If the number of results is larger
22540	// than maxResults, use the nextPageToken as a value for the query
22541	// parameter pageToken in the next list request. Subsequent list
22542	// requests will have their own nextPageToken to continue paging through
22543	// the results.
22544	NextPageToken string `json:"nextPageToken,omitempty"`
22545
22546	// SelfLink: [Output Only] Server-defined URL for this resource.
22547	SelfLink string `json:"selfLink,omitempty"`
22548
22549	// Warning: [Output Only] Informational warning message.
22550	Warning *TargetVpnGatewayAggregatedListWarning `json:"warning,omitempty"`
22551
22552	// ServerResponse contains the HTTP response code and headers from the
22553	// server.
22554	googleapi.ServerResponse `json:"-"`
22555
22556	// ForceSendFields is a list of field names (e.g. "Id") to
22557	// unconditionally include in API requests. By default, fields with
22558	// empty values are omitted from API requests. However, any non-pointer,
22559	// non-interface field appearing in ForceSendFields will be sent to the
22560	// server regardless of whether the field is empty or not. This may be
22561	// used to include empty fields in Patch requests.
22562	ForceSendFields []string `json:"-"`
22563
22564	// NullFields is a list of field names (e.g. "Id") to include in API
22565	// requests with the JSON null value. By default, fields with empty
22566	// values are omitted from API requests. However, any field with an
22567	// empty value appearing in NullFields will be sent to the server as
22568	// null. It is an error if a field in this list has a non-empty value.
22569	// This may be used to include null fields in Patch requests.
22570	NullFields []string `json:"-"`
22571}
22572
22573func (s *TargetVpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
22574	type NoMethod TargetVpnGatewayAggregatedList
22575	raw := NoMethod(*s)
22576	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22577}
22578
22579// TargetVpnGatewayAggregatedListWarning: [Output Only] Informational
22580// warning message.
22581type TargetVpnGatewayAggregatedListWarning struct {
22582	// Code: [Output Only] A warning code, if applicable. For example,
22583	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22584	// the response.
22585	//
22586	// Possible values:
22587	//   "CLEANUP_FAILED"
22588	//   "DEPRECATED_RESOURCE_USED"
22589	//   "DEPRECATED_TYPE_USED"
22590	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22591	//   "EXPERIMENTAL_TYPE_USED"
22592	//   "EXTERNAL_API_WARNING"
22593	//   "FIELD_VALUE_OVERRIDEN"
22594	//   "INJECTED_KERNELS_DEPRECATED"
22595	//   "MISSING_TYPE_DEPENDENCY"
22596	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22597	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22598	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22599	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22600	//   "NEXT_HOP_NOT_RUNNING"
22601	//   "NOT_CRITICAL_ERROR"
22602	//   "NO_RESULTS_ON_PAGE"
22603	//   "REQUIRED_TOS_AGREEMENT"
22604	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22605	//   "RESOURCE_NOT_DELETED"
22606	//   "SCHEMA_VALIDATION_IGNORED"
22607	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22608	//   "UNDECLARED_PROPERTIES"
22609	//   "UNREACHABLE"
22610	Code string `json:"code,omitempty"`
22611
22612	// Data: [Output Only] Metadata about this warning in key: value format.
22613	// For example:
22614	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22615	Data []*TargetVpnGatewayAggregatedListWarningData `json:"data,omitempty"`
22616
22617	// Message: [Output Only] A human-readable description of the warning
22618	// code.
22619	Message string `json:"message,omitempty"`
22620
22621	// ForceSendFields is a list of field names (e.g. "Code") to
22622	// unconditionally include in API requests. By default, fields with
22623	// empty values are omitted from API requests. However, any non-pointer,
22624	// non-interface field appearing in ForceSendFields will be sent to the
22625	// server regardless of whether the field is empty or not. This may be
22626	// used to include empty fields in Patch requests.
22627	ForceSendFields []string `json:"-"`
22628
22629	// NullFields is a list of field names (e.g. "Code") to include in API
22630	// requests with the JSON null value. By default, fields with empty
22631	// values are omitted from API requests. However, any field with an
22632	// empty value appearing in NullFields will be sent to the server as
22633	// null. It is an error if a field in this list has a non-empty value.
22634	// This may be used to include null fields in Patch requests.
22635	NullFields []string `json:"-"`
22636}
22637
22638func (s *TargetVpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
22639	type NoMethod TargetVpnGatewayAggregatedListWarning
22640	raw := NoMethod(*s)
22641	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22642}
22643
22644type TargetVpnGatewayAggregatedListWarningData struct {
22645	// Key: [Output Only] A key that provides more detail on the warning
22646	// being returned. For example, for warnings where there are no results
22647	// in a list request for a particular zone, this key might be scope and
22648	// the key value might be the zone name. Other examples might be a key
22649	// indicating a deprecated resource and a suggested replacement, or a
22650	// warning about invalid network settings (for example, if an instance
22651	// attempts to perform IP forwarding but is not enabled for IP
22652	// forwarding).
22653	Key string `json:"key,omitempty"`
22654
22655	// Value: [Output Only] A warning data value corresponding to the key.
22656	Value string `json:"value,omitempty"`
22657
22658	// ForceSendFields is a list of field names (e.g. "Key") to
22659	// unconditionally include in API requests. By default, fields with
22660	// empty values are omitted from API requests. However, any non-pointer,
22661	// non-interface field appearing in ForceSendFields will be sent to the
22662	// server regardless of whether the field is empty or not. This may be
22663	// used to include empty fields in Patch requests.
22664	ForceSendFields []string `json:"-"`
22665
22666	// NullFields is a list of field names (e.g. "Key") to include in API
22667	// requests with the JSON null value. By default, fields with empty
22668	// values are omitted from API requests. However, any field with an
22669	// empty value appearing in NullFields will be sent to the server as
22670	// null. It is an error if a field in this list has a non-empty value.
22671	// This may be used to include null fields in Patch requests.
22672	NullFields []string `json:"-"`
22673}
22674
22675func (s *TargetVpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
22676	type NoMethod TargetVpnGatewayAggregatedListWarningData
22677	raw := NoMethod(*s)
22678	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22679}
22680
22681// TargetVpnGatewayList: Contains a list of TargetVpnGateway resources.
22682type TargetVpnGatewayList struct {
22683	// Id: [Output Only] Unique identifier for the resource; defined by the
22684	// server.
22685	Id string `json:"id,omitempty"`
22686
22687	// Items: A list of TargetVpnGateway resources.
22688	Items []*TargetVpnGateway `json:"items,omitempty"`
22689
22690	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
22691	// for target VPN gateways.
22692	Kind string `json:"kind,omitempty"`
22693
22694	// NextPageToken: [Output Only] This token allows you to get the next
22695	// page of results for list requests. If the number of results is larger
22696	// than maxResults, use the nextPageToken as a value for the query
22697	// parameter pageToken in the next list request. Subsequent list
22698	// requests will have their own nextPageToken to continue paging through
22699	// the results.
22700	NextPageToken string `json:"nextPageToken,omitempty"`
22701
22702	// SelfLink: [Output Only] Server-defined URL for this resource.
22703	SelfLink string `json:"selfLink,omitempty"`
22704
22705	// Warning: [Output Only] Informational warning message.
22706	Warning *TargetVpnGatewayListWarning `json:"warning,omitempty"`
22707
22708	// ServerResponse contains the HTTP response code and headers from the
22709	// server.
22710	googleapi.ServerResponse `json:"-"`
22711
22712	// ForceSendFields is a list of field names (e.g. "Id") to
22713	// unconditionally include in API requests. By default, fields with
22714	// empty values are omitted from API requests. However, any non-pointer,
22715	// non-interface field appearing in ForceSendFields will be sent to the
22716	// server regardless of whether the field is empty or not. This may be
22717	// used to include empty fields in Patch requests.
22718	ForceSendFields []string `json:"-"`
22719
22720	// NullFields is a list of field names (e.g. "Id") to include in API
22721	// requests with the JSON null value. By default, fields with empty
22722	// values are omitted from API requests. However, any field with an
22723	// empty value appearing in NullFields will be sent to the server as
22724	// null. It is an error if a field in this list has a non-empty value.
22725	// This may be used to include null fields in Patch requests.
22726	NullFields []string `json:"-"`
22727}
22728
22729func (s *TargetVpnGatewayList) MarshalJSON() ([]byte, error) {
22730	type NoMethod TargetVpnGatewayList
22731	raw := NoMethod(*s)
22732	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22733}
22734
22735// TargetVpnGatewayListWarning: [Output Only] Informational warning
22736// message.
22737type TargetVpnGatewayListWarning struct {
22738	// Code: [Output Only] A warning code, if applicable. For example,
22739	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22740	// the response.
22741	//
22742	// Possible values:
22743	//   "CLEANUP_FAILED"
22744	//   "DEPRECATED_RESOURCE_USED"
22745	//   "DEPRECATED_TYPE_USED"
22746	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22747	//   "EXPERIMENTAL_TYPE_USED"
22748	//   "EXTERNAL_API_WARNING"
22749	//   "FIELD_VALUE_OVERRIDEN"
22750	//   "INJECTED_KERNELS_DEPRECATED"
22751	//   "MISSING_TYPE_DEPENDENCY"
22752	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22753	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22754	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22755	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22756	//   "NEXT_HOP_NOT_RUNNING"
22757	//   "NOT_CRITICAL_ERROR"
22758	//   "NO_RESULTS_ON_PAGE"
22759	//   "REQUIRED_TOS_AGREEMENT"
22760	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22761	//   "RESOURCE_NOT_DELETED"
22762	//   "SCHEMA_VALIDATION_IGNORED"
22763	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22764	//   "UNDECLARED_PROPERTIES"
22765	//   "UNREACHABLE"
22766	Code string `json:"code,omitempty"`
22767
22768	// Data: [Output Only] Metadata about this warning in key: value format.
22769	// For example:
22770	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22771	Data []*TargetVpnGatewayListWarningData `json:"data,omitempty"`
22772
22773	// Message: [Output Only] A human-readable description of the warning
22774	// code.
22775	Message string `json:"message,omitempty"`
22776
22777	// ForceSendFields is a list of field names (e.g. "Code") to
22778	// unconditionally include in API requests. By default, fields with
22779	// empty values are omitted from API requests. However, any non-pointer,
22780	// non-interface field appearing in ForceSendFields will be sent to the
22781	// server regardless of whether the field is empty or not. This may be
22782	// used to include empty fields in Patch requests.
22783	ForceSendFields []string `json:"-"`
22784
22785	// NullFields is a list of field names (e.g. "Code") to include in API
22786	// requests with the JSON null value. By default, fields with empty
22787	// values are omitted from API requests. However, any field with an
22788	// empty value appearing in NullFields will be sent to the server as
22789	// null. It is an error if a field in this list has a non-empty value.
22790	// This may be used to include null fields in Patch requests.
22791	NullFields []string `json:"-"`
22792}
22793
22794func (s *TargetVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
22795	type NoMethod TargetVpnGatewayListWarning
22796	raw := NoMethod(*s)
22797	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22798}
22799
22800type TargetVpnGatewayListWarningData struct {
22801	// Key: [Output Only] A key that provides more detail on the warning
22802	// being returned. For example, for warnings where there are no results
22803	// in a list request for a particular zone, this key might be scope and
22804	// the key value might be the zone name. Other examples might be a key
22805	// indicating a deprecated resource and a suggested replacement, or a
22806	// warning about invalid network settings (for example, if an instance
22807	// attempts to perform IP forwarding but is not enabled for IP
22808	// forwarding).
22809	Key string `json:"key,omitempty"`
22810
22811	// Value: [Output Only] A warning data value corresponding to the key.
22812	Value string `json:"value,omitempty"`
22813
22814	// ForceSendFields is a list of field names (e.g. "Key") to
22815	// unconditionally include in API requests. By default, fields with
22816	// empty values are omitted from API requests. However, any non-pointer,
22817	// non-interface field appearing in ForceSendFields will be sent to the
22818	// server regardless of whether the field is empty or not. This may be
22819	// used to include empty fields in Patch requests.
22820	ForceSendFields []string `json:"-"`
22821
22822	// NullFields is a list of field names (e.g. "Key") to include in API
22823	// requests with the JSON null value. By default, fields with empty
22824	// values are omitted from API requests. However, any field with an
22825	// empty value appearing in NullFields will be sent to the server as
22826	// null. It is an error if a field in this list has a non-empty value.
22827	// This may be used to include null fields in Patch requests.
22828	NullFields []string `json:"-"`
22829}
22830
22831func (s *TargetVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
22832	type NoMethod TargetVpnGatewayListWarningData
22833	raw := NoMethod(*s)
22834	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22835}
22836
22837type TargetVpnGatewaysScopedList struct {
22838	// TargetVpnGateways: [Output Only] A list of target vpn gateways
22839	// contained in this scope.
22840	TargetVpnGateways []*TargetVpnGateway `json:"targetVpnGateways,omitempty"`
22841
22842	// Warning: [Output Only] Informational warning which replaces the list
22843	// of addresses when the list is empty.
22844	Warning *TargetVpnGatewaysScopedListWarning `json:"warning,omitempty"`
22845
22846	// ForceSendFields is a list of field names (e.g. "TargetVpnGateways")
22847	// to unconditionally include in API requests. By default, fields with
22848	// empty values are omitted from API requests. However, any non-pointer,
22849	// non-interface field appearing in ForceSendFields will be sent to the
22850	// server regardless of whether the field is empty or not. This may be
22851	// used to include empty fields in Patch requests.
22852	ForceSendFields []string `json:"-"`
22853
22854	// NullFields is a list of field names (e.g. "TargetVpnGateways") to
22855	// include in API requests with the JSON null value. By default, fields
22856	// with empty values are omitted from API requests. However, any field
22857	// with an empty value appearing in NullFields will be sent to the
22858	// server as null. It is an error if a field in this list has a
22859	// non-empty value. This may be used to include null fields in Patch
22860	// requests.
22861	NullFields []string `json:"-"`
22862}
22863
22864func (s *TargetVpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
22865	type NoMethod TargetVpnGatewaysScopedList
22866	raw := NoMethod(*s)
22867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22868}
22869
22870// TargetVpnGatewaysScopedListWarning: [Output Only] Informational
22871// warning which replaces the list of addresses when the list is empty.
22872type TargetVpnGatewaysScopedListWarning struct {
22873	// Code: [Output Only] A warning code, if applicable. For example,
22874	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22875	// the response.
22876	//
22877	// Possible values:
22878	//   "CLEANUP_FAILED"
22879	//   "DEPRECATED_RESOURCE_USED"
22880	//   "DEPRECATED_TYPE_USED"
22881	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22882	//   "EXPERIMENTAL_TYPE_USED"
22883	//   "EXTERNAL_API_WARNING"
22884	//   "FIELD_VALUE_OVERRIDEN"
22885	//   "INJECTED_KERNELS_DEPRECATED"
22886	//   "MISSING_TYPE_DEPENDENCY"
22887	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22888	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22889	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22890	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22891	//   "NEXT_HOP_NOT_RUNNING"
22892	//   "NOT_CRITICAL_ERROR"
22893	//   "NO_RESULTS_ON_PAGE"
22894	//   "REQUIRED_TOS_AGREEMENT"
22895	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22896	//   "RESOURCE_NOT_DELETED"
22897	//   "SCHEMA_VALIDATION_IGNORED"
22898	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22899	//   "UNDECLARED_PROPERTIES"
22900	//   "UNREACHABLE"
22901	Code string `json:"code,omitempty"`
22902
22903	// Data: [Output Only] Metadata about this warning in key: value format.
22904	// For example:
22905	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22906	Data []*TargetVpnGatewaysScopedListWarningData `json:"data,omitempty"`
22907
22908	// Message: [Output Only] A human-readable description of the warning
22909	// code.
22910	Message string `json:"message,omitempty"`
22911
22912	// ForceSendFields is a list of field names (e.g. "Code") to
22913	// unconditionally include in API requests. By default, fields with
22914	// empty values are omitted from API requests. However, any non-pointer,
22915	// non-interface field appearing in ForceSendFields will be sent to the
22916	// server regardless of whether the field is empty or not. This may be
22917	// used to include empty fields in Patch requests.
22918	ForceSendFields []string `json:"-"`
22919
22920	// NullFields is a list of field names (e.g. "Code") to include in API
22921	// requests with the JSON null value. By default, fields with empty
22922	// values are omitted from API requests. However, any field with an
22923	// empty value appearing in NullFields will be sent to the server as
22924	// null. It is an error if a field in this list has a non-empty value.
22925	// This may be used to include null fields in Patch requests.
22926	NullFields []string `json:"-"`
22927}
22928
22929func (s *TargetVpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
22930	type NoMethod TargetVpnGatewaysScopedListWarning
22931	raw := NoMethod(*s)
22932	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22933}
22934
22935type TargetVpnGatewaysScopedListWarningData struct {
22936	// Key: [Output Only] A key that provides more detail on the warning
22937	// being returned. For example, for warnings where there are no results
22938	// in a list request for a particular zone, this key might be scope and
22939	// the key value might be the zone name. Other examples might be a key
22940	// indicating a deprecated resource and a suggested replacement, or a
22941	// warning about invalid network settings (for example, if an instance
22942	// attempts to perform IP forwarding but is not enabled for IP
22943	// forwarding).
22944	Key string `json:"key,omitempty"`
22945
22946	// Value: [Output Only] A warning data value corresponding to the key.
22947	Value string `json:"value,omitempty"`
22948
22949	// ForceSendFields is a list of field names (e.g. "Key") to
22950	// unconditionally include in API requests. By default, fields with
22951	// empty values are omitted from API requests. However, any non-pointer,
22952	// non-interface field appearing in ForceSendFields will be sent to the
22953	// server regardless of whether the field is empty or not. This may be
22954	// used to include empty fields in Patch requests.
22955	ForceSendFields []string `json:"-"`
22956
22957	// NullFields is a list of field names (e.g. "Key") to include in API
22958	// requests with the JSON null value. By default, fields with empty
22959	// values are omitted from API requests. However, any field with an
22960	// empty value appearing in NullFields will be sent to the server as
22961	// null. It is an error if a field in this list has a non-empty value.
22962	// This may be used to include null fields in Patch requests.
22963	NullFields []string `json:"-"`
22964}
22965
22966func (s *TargetVpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
22967	type NoMethod TargetVpnGatewaysScopedListWarningData
22968	raw := NoMethod(*s)
22969	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22970}
22971
22972type TestFailure struct {
22973	ActualService string `json:"actualService,omitempty"`
22974
22975	ExpectedService string `json:"expectedService,omitempty"`
22976
22977	Host string `json:"host,omitempty"`
22978
22979	Path string `json:"path,omitempty"`
22980
22981	// ForceSendFields is a list of field names (e.g. "ActualService") to
22982	// unconditionally include in API requests. By default, fields with
22983	// empty values are omitted from API requests. However, any non-pointer,
22984	// non-interface field appearing in ForceSendFields will be sent to the
22985	// server regardless of whether the field is empty or not. This may be
22986	// used to include empty fields in Patch requests.
22987	ForceSendFields []string `json:"-"`
22988
22989	// NullFields is a list of field names (e.g. "ActualService") to include
22990	// in API requests with the JSON null value. By default, fields with
22991	// empty values are omitted from API requests. However, any field with
22992	// an empty value appearing in NullFields will be sent to the server as
22993	// null. It is an error if a field in this list has a non-empty value.
22994	// This may be used to include null fields in Patch requests.
22995	NullFields []string `json:"-"`
22996}
22997
22998func (s *TestFailure) MarshalJSON() ([]byte, error) {
22999	type NoMethod TestFailure
23000	raw := NoMethod(*s)
23001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23002}
23003
23004type TestPermissionsRequest struct {
23005	// Permissions: The set of permissions to check for the 'resource'.
23006	// Permissions with wildcards (such as '*' or 'storage.*') are not
23007	// allowed.
23008	Permissions []string `json:"permissions,omitempty"`
23009
23010	// ForceSendFields is a list of field names (e.g. "Permissions") to
23011	// unconditionally include in API requests. By default, fields with
23012	// empty values are omitted from API requests. However, any non-pointer,
23013	// non-interface field appearing in ForceSendFields will be sent to the
23014	// server regardless of whether the field is empty or not. This may be
23015	// used to include empty fields in Patch requests.
23016	ForceSendFields []string `json:"-"`
23017
23018	// NullFields is a list of field names (e.g. "Permissions") to include
23019	// in API requests with the JSON null value. By default, fields with
23020	// empty values are omitted from API requests. However, any field with
23021	// an empty value appearing in NullFields will be sent to the server as
23022	// null. It is an error if a field in this list has a non-empty value.
23023	// This may be used to include null fields in Patch requests.
23024	NullFields []string `json:"-"`
23025}
23026
23027func (s *TestPermissionsRequest) MarshalJSON() ([]byte, error) {
23028	type NoMethod TestPermissionsRequest
23029	raw := NoMethod(*s)
23030	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23031}
23032
23033type TestPermissionsResponse struct {
23034	// Permissions: A subset of `TestPermissionsRequest.permissions` that
23035	// the caller is allowed.
23036	Permissions []string `json:"permissions,omitempty"`
23037
23038	// ServerResponse contains the HTTP response code and headers from the
23039	// server.
23040	googleapi.ServerResponse `json:"-"`
23041
23042	// ForceSendFields is a list of field names (e.g. "Permissions") to
23043	// unconditionally include in API requests. By default, fields with
23044	// empty values are omitted from API requests. However, any non-pointer,
23045	// non-interface field appearing in ForceSendFields will be sent to the
23046	// server regardless of whether the field is empty or not. This may be
23047	// used to include empty fields in Patch requests.
23048	ForceSendFields []string `json:"-"`
23049
23050	// NullFields is a list of field names (e.g. "Permissions") to include
23051	// in API requests with the JSON null value. By default, fields with
23052	// empty values are omitted from API requests. However, any field with
23053	// an empty value appearing in NullFields will be sent to the server as
23054	// null. It is an error if a field in this list has a non-empty value.
23055	// This may be used to include null fields in Patch requests.
23056	NullFields []string `json:"-"`
23057}
23058
23059func (s *TestPermissionsResponse) MarshalJSON() ([]byte, error) {
23060	type NoMethod TestPermissionsResponse
23061	raw := NoMethod(*s)
23062	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23063}
23064
23065// UrlMap: A UrlMap resource. This resource defines the mapping from URL
23066// to the BackendService resource, based on the "longest-match" of the
23067// URL's host and path.
23068type UrlMap struct {
23069	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
23070	// format.
23071	CreationTimestamp string `json:"creationTimestamp,omitempty"`
23072
23073	// DefaultService: The URL of the BackendService resource if none of the
23074	// hostRules match.
23075	DefaultService string `json:"defaultService,omitempty"`
23076
23077	// Description: An optional description of this resource. Provide this
23078	// property when you create the resource.
23079	Description string `json:"description,omitempty"`
23080
23081	// Fingerprint: Fingerprint of this resource. A hash of the contents
23082	// stored in this object. This field is used in optimistic locking. This
23083	// field will be ignored when inserting a UrlMap. An up-to-date
23084	// fingerprint must be provided in order to update the UrlMap.
23085	Fingerprint string `json:"fingerprint,omitempty"`
23086
23087	// HostRules: The list of HostRules to use against the URL.
23088	HostRules []*HostRule `json:"hostRules,omitempty"`
23089
23090	// Id: [Output Only] The unique identifier for the resource. This
23091	// identifier is defined by the server.
23092	Id uint64 `json:"id,omitempty,string"`
23093
23094	// Kind: [Output Only] Type of the resource. Always compute#urlMaps for
23095	// url maps.
23096	Kind string `json:"kind,omitempty"`
23097
23098	// Name: Name of the resource. Provided by the client when the resource
23099	// is created. The name must be 1-63 characters long, and comply with
23100	// RFC1035. Specifically, the name must be 1-63 characters long and
23101	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
23102	// the first character must be a lowercase letter, and all following
23103	// characters must be a dash, lowercase letter, or digit, except the
23104	// last character, which cannot be a dash.
23105	Name string `json:"name,omitempty"`
23106
23107	// PathMatchers: The list of named PathMatchers to use against the URL.
23108	PathMatchers []*PathMatcher `json:"pathMatchers,omitempty"`
23109
23110	// SelfLink: [Output Only] Server-defined URL for the resource.
23111	SelfLink string `json:"selfLink,omitempty"`
23112
23113	// Tests: The list of expected URL mapping tests. Request to update this
23114	// UrlMap will succeed only if all of the test cases pass. You can
23115	// specify a maximum of 100 tests per UrlMap.
23116	Tests []*UrlMapTest `json:"tests,omitempty"`
23117
23118	// ServerResponse contains the HTTP response code and headers from the
23119	// server.
23120	googleapi.ServerResponse `json:"-"`
23121
23122	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
23123	// to unconditionally include in API requests. By default, fields with
23124	// empty values are omitted from API requests. However, any non-pointer,
23125	// non-interface field appearing in ForceSendFields will be sent to the
23126	// server regardless of whether the field is empty or not. This may be
23127	// used to include empty fields in Patch requests.
23128	ForceSendFields []string `json:"-"`
23129
23130	// NullFields is a list of field names (e.g. "CreationTimestamp") to
23131	// include in API requests with the JSON null value. By default, fields
23132	// with empty values are omitted from API requests. However, any field
23133	// with an empty value appearing in NullFields will be sent to the
23134	// server as null. It is an error if a field in this list has a
23135	// non-empty value. This may be used to include null fields in Patch
23136	// requests.
23137	NullFields []string `json:"-"`
23138}
23139
23140func (s *UrlMap) MarshalJSON() ([]byte, error) {
23141	type NoMethod UrlMap
23142	raw := NoMethod(*s)
23143	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23144}
23145
23146// UrlMapList: Contains a list of UrlMap resources.
23147type UrlMapList struct {
23148	// Id: [Output Only] Unique identifier for the resource; defined by the
23149	// server.
23150	Id string `json:"id,omitempty"`
23151
23152	// Items: A list of UrlMap resources.
23153	Items []*UrlMap `json:"items,omitempty"`
23154
23155	// Kind: Type of resource.
23156	Kind string `json:"kind,omitempty"`
23157
23158	// NextPageToken: [Output Only] This token allows you to get the next
23159	// page of results for list requests. If the number of results is larger
23160	// than maxResults, use the nextPageToken as a value for the query
23161	// parameter pageToken in the next list request. Subsequent list
23162	// requests will have their own nextPageToken to continue paging through
23163	// the results.
23164	NextPageToken string `json:"nextPageToken,omitempty"`
23165
23166	// SelfLink: [Output Only] Server-defined URL for this resource.
23167	SelfLink string `json:"selfLink,omitempty"`
23168
23169	// Warning: [Output Only] Informational warning message.
23170	Warning *UrlMapListWarning `json:"warning,omitempty"`
23171
23172	// ServerResponse contains the HTTP response code and headers from the
23173	// server.
23174	googleapi.ServerResponse `json:"-"`
23175
23176	// ForceSendFields is a list of field names (e.g. "Id") to
23177	// unconditionally include in API requests. By default, fields with
23178	// empty values are omitted from API requests. However, any non-pointer,
23179	// non-interface field appearing in ForceSendFields will be sent to the
23180	// server regardless of whether the field is empty or not. This may be
23181	// used to include empty fields in Patch requests.
23182	ForceSendFields []string `json:"-"`
23183
23184	// NullFields is a list of field names (e.g. "Id") to include in API
23185	// requests with the JSON null value. By default, fields with empty
23186	// values are omitted from API requests. However, any field with an
23187	// empty value appearing in NullFields will be sent to the server as
23188	// null. It is an error if a field in this list has a non-empty value.
23189	// This may be used to include null fields in Patch requests.
23190	NullFields []string `json:"-"`
23191}
23192
23193func (s *UrlMapList) MarshalJSON() ([]byte, error) {
23194	type NoMethod UrlMapList
23195	raw := NoMethod(*s)
23196	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23197}
23198
23199// UrlMapListWarning: [Output Only] Informational warning message.
23200type UrlMapListWarning struct {
23201	// Code: [Output Only] A warning code, if applicable. For example,
23202	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23203	// the response.
23204	//
23205	// Possible values:
23206	//   "CLEANUP_FAILED"
23207	//   "DEPRECATED_RESOURCE_USED"
23208	//   "DEPRECATED_TYPE_USED"
23209	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23210	//   "EXPERIMENTAL_TYPE_USED"
23211	//   "EXTERNAL_API_WARNING"
23212	//   "FIELD_VALUE_OVERRIDEN"
23213	//   "INJECTED_KERNELS_DEPRECATED"
23214	//   "MISSING_TYPE_DEPENDENCY"
23215	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23216	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23217	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23218	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23219	//   "NEXT_HOP_NOT_RUNNING"
23220	//   "NOT_CRITICAL_ERROR"
23221	//   "NO_RESULTS_ON_PAGE"
23222	//   "REQUIRED_TOS_AGREEMENT"
23223	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23224	//   "RESOURCE_NOT_DELETED"
23225	//   "SCHEMA_VALIDATION_IGNORED"
23226	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23227	//   "UNDECLARED_PROPERTIES"
23228	//   "UNREACHABLE"
23229	Code string `json:"code,omitempty"`
23230
23231	// Data: [Output Only] Metadata about this warning in key: value format.
23232	// For example:
23233	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23234	Data []*UrlMapListWarningData `json:"data,omitempty"`
23235
23236	// Message: [Output Only] A human-readable description of the warning
23237	// code.
23238	Message string `json:"message,omitempty"`
23239
23240	// ForceSendFields is a list of field names (e.g. "Code") to
23241	// unconditionally include in API requests. By default, fields with
23242	// empty values are omitted from API requests. However, any non-pointer,
23243	// non-interface field appearing in ForceSendFields will be sent to the
23244	// server regardless of whether the field is empty or not. This may be
23245	// used to include empty fields in Patch requests.
23246	ForceSendFields []string `json:"-"`
23247
23248	// NullFields is a list of field names (e.g. "Code") to include in API
23249	// requests with the JSON null value. By default, fields with empty
23250	// values are omitted from API requests. However, any field with an
23251	// empty value appearing in NullFields will be sent to the server as
23252	// null. It is an error if a field in this list has a non-empty value.
23253	// This may be used to include null fields in Patch requests.
23254	NullFields []string `json:"-"`
23255}
23256
23257func (s *UrlMapListWarning) MarshalJSON() ([]byte, error) {
23258	type NoMethod UrlMapListWarning
23259	raw := NoMethod(*s)
23260	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23261}
23262
23263type UrlMapListWarningData struct {
23264	// Key: [Output Only] A key that provides more detail on the warning
23265	// being returned. For example, for warnings where there are no results
23266	// in a list request for a particular zone, this key might be scope and
23267	// the key value might be the zone name. Other examples might be a key
23268	// indicating a deprecated resource and a suggested replacement, or a
23269	// warning about invalid network settings (for example, if an instance
23270	// attempts to perform IP forwarding but is not enabled for IP
23271	// forwarding).
23272	Key string `json:"key,omitempty"`
23273
23274	// Value: [Output Only] A warning data value corresponding to the key.
23275	Value string `json:"value,omitempty"`
23276
23277	// ForceSendFields is a list of field names (e.g. "Key") to
23278	// unconditionally include in API requests. By default, fields with
23279	// empty values are omitted from API requests. However, any non-pointer,
23280	// non-interface field appearing in ForceSendFields will be sent to the
23281	// server regardless of whether the field is empty or not. This may be
23282	// used to include empty fields in Patch requests.
23283	ForceSendFields []string `json:"-"`
23284
23285	// NullFields is a list of field names (e.g. "Key") to include in API
23286	// requests with the JSON null value. By default, fields with empty
23287	// values are omitted from API requests. However, any field with an
23288	// empty value appearing in NullFields will be sent to the server as
23289	// null. It is an error if a field in this list has a non-empty value.
23290	// This may be used to include null fields in Patch requests.
23291	NullFields []string `json:"-"`
23292}
23293
23294func (s *UrlMapListWarningData) MarshalJSON() ([]byte, error) {
23295	type NoMethod UrlMapListWarningData
23296	raw := NoMethod(*s)
23297	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23298}
23299
23300type UrlMapReference struct {
23301	UrlMap string `json:"urlMap,omitempty"`
23302
23303	// ForceSendFields is a list of field names (e.g. "UrlMap") to
23304	// unconditionally include in API requests. By default, fields with
23305	// empty values are omitted from API requests. However, any non-pointer,
23306	// non-interface field appearing in ForceSendFields will be sent to the
23307	// server regardless of whether the field is empty or not. This may be
23308	// used to include empty fields in Patch requests.
23309	ForceSendFields []string `json:"-"`
23310
23311	// NullFields is a list of field names (e.g. "UrlMap") to include in API
23312	// requests with the JSON null value. By default, fields with empty
23313	// values are omitted from API requests. However, any field with an
23314	// empty value appearing in NullFields will be sent to the server as
23315	// null. It is an error if a field in this list has a non-empty value.
23316	// This may be used to include null fields in Patch requests.
23317	NullFields []string `json:"-"`
23318}
23319
23320func (s *UrlMapReference) MarshalJSON() ([]byte, error) {
23321	type NoMethod UrlMapReference
23322	raw := NoMethod(*s)
23323	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23324}
23325
23326// UrlMapTest: Message for the expected URL mappings.
23327type UrlMapTest struct {
23328	// Description: Description of this test case.
23329	Description string `json:"description,omitempty"`
23330
23331	// Host: Host portion of the URL.
23332	Host string `json:"host,omitempty"`
23333
23334	// Path: Path portion of the URL.
23335	Path string `json:"path,omitempty"`
23336
23337	// Service: Expected BackendService resource the given URL should be
23338	// mapped to.
23339	Service string `json:"service,omitempty"`
23340
23341	// ForceSendFields is a list of field names (e.g. "Description") to
23342	// unconditionally include in API requests. By default, fields with
23343	// empty values are omitted from API requests. However, any non-pointer,
23344	// non-interface field appearing in ForceSendFields will be sent to the
23345	// server regardless of whether the field is empty or not. This may be
23346	// used to include empty fields in Patch requests.
23347	ForceSendFields []string `json:"-"`
23348
23349	// NullFields is a list of field names (e.g. "Description") to include
23350	// in API requests with the JSON null value. By default, fields with
23351	// empty values are omitted from API requests. However, any field with
23352	// an empty value appearing in NullFields will be sent to the server as
23353	// null. It is an error if a field in this list has a non-empty value.
23354	// This may be used to include null fields in Patch requests.
23355	NullFields []string `json:"-"`
23356}
23357
23358func (s *UrlMapTest) MarshalJSON() ([]byte, error) {
23359	type NoMethod UrlMapTest
23360	raw := NoMethod(*s)
23361	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23362}
23363
23364// UrlMapValidationResult: Message representing the validation result
23365// for a UrlMap.
23366type UrlMapValidationResult struct {
23367	LoadErrors []string `json:"loadErrors,omitempty"`
23368
23369	// LoadSucceeded: Whether the given UrlMap can be successfully loaded.
23370	// If false, 'loadErrors' indicates the reasons.
23371	LoadSucceeded bool `json:"loadSucceeded,omitempty"`
23372
23373	TestFailures []*TestFailure `json:"testFailures,omitempty"`
23374
23375	// TestPassed: If successfully loaded, this field indicates whether the
23376	// test passed. If false, 'testFailures's indicate the reason of
23377	// failure.
23378	TestPassed bool `json:"testPassed,omitempty"`
23379
23380	// ForceSendFields is a list of field names (e.g. "LoadErrors") to
23381	// unconditionally include in API requests. By default, fields with
23382	// empty values are omitted from API requests. However, any non-pointer,
23383	// non-interface field appearing in ForceSendFields will be sent to the
23384	// server regardless of whether the field is empty or not. This may be
23385	// used to include empty fields in Patch requests.
23386	ForceSendFields []string `json:"-"`
23387
23388	// NullFields is a list of field names (e.g. "LoadErrors") to include in
23389	// API requests with the JSON null value. By default, fields with empty
23390	// values are omitted from API requests. However, any field with an
23391	// empty value appearing in NullFields will be sent to the server as
23392	// null. It is an error if a field in this list has a non-empty value.
23393	// This may be used to include null fields in Patch requests.
23394	NullFields []string `json:"-"`
23395}
23396
23397func (s *UrlMapValidationResult) MarshalJSON() ([]byte, error) {
23398	type NoMethod UrlMapValidationResult
23399	raw := NoMethod(*s)
23400	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23401}
23402
23403type UrlMapsValidateRequest struct {
23404	// Resource: Content of the UrlMap to be validated.
23405	Resource *UrlMap `json:"resource,omitempty"`
23406
23407	// ForceSendFields is a list of field names (e.g. "Resource") to
23408	// unconditionally include in API requests. By default, fields with
23409	// empty values are omitted from API requests. However, any non-pointer,
23410	// non-interface field appearing in ForceSendFields will be sent to the
23411	// server regardless of whether the field is empty or not. This may be
23412	// used to include empty fields in Patch requests.
23413	ForceSendFields []string `json:"-"`
23414
23415	// NullFields is a list of field names (e.g. "Resource") to include in
23416	// API requests with the JSON null value. By default, fields with empty
23417	// values are omitted from API requests. However, any field with an
23418	// empty value appearing in NullFields will be sent to the server as
23419	// null. It is an error if a field in this list has a non-empty value.
23420	// This may be used to include null fields in Patch requests.
23421	NullFields []string `json:"-"`
23422}
23423
23424func (s *UrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
23425	type NoMethod UrlMapsValidateRequest
23426	raw := NoMethod(*s)
23427	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23428}
23429
23430type UrlMapsValidateResponse struct {
23431	Result *UrlMapValidationResult `json:"result,omitempty"`
23432
23433	// ServerResponse contains the HTTP response code and headers from the
23434	// server.
23435	googleapi.ServerResponse `json:"-"`
23436
23437	// ForceSendFields is a list of field names (e.g. "Result") to
23438	// unconditionally include in API requests. By default, fields with
23439	// empty values are omitted from API requests. However, any non-pointer,
23440	// non-interface field appearing in ForceSendFields will be sent to the
23441	// server regardless of whether the field is empty or not. This may be
23442	// used to include empty fields in Patch requests.
23443	ForceSendFields []string `json:"-"`
23444
23445	// NullFields is a list of field names (e.g. "Result") to include in API
23446	// requests with the JSON null value. By default, fields with empty
23447	// values are omitted from API requests. However, any field with an
23448	// empty value appearing in NullFields will be sent to the server as
23449	// null. It is an error if a field in this list has a non-empty value.
23450	// This may be used to include null fields in Patch requests.
23451	NullFields []string `json:"-"`
23452}
23453
23454func (s *UrlMapsValidateResponse) MarshalJSON() ([]byte, error) {
23455	type NoMethod UrlMapsValidateResponse
23456	raw := NoMethod(*s)
23457	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23458}
23459
23460// UsageExportLocation: The location in Cloud Storage and naming method
23461// of the daily usage report. Contains bucket_name and report_name
23462// prefix.
23463type UsageExportLocation struct {
23464	// BucketName: The name of an existing bucket in Cloud Storage where the
23465	// usage report object is stored. The Google Service Account is granted
23466	// write access to this bucket. This can either be the bucket name by
23467	// itself, such as example-bucket, or the bucket name with gs:// or
23468	// https://storage.googleapis.com/ in front of it, such as
23469	// gs://example-bucket.
23470	BucketName string `json:"bucketName,omitempty"`
23471
23472	// ReportNamePrefix: An optional prefix for the name of the usage report
23473	// object stored in bucketName. If not supplied, defaults to usage. The
23474	// report is stored as a CSV file named
23475	// report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the
23476	// usage according to Pacific Time. If you supply a prefix, it should
23477	// conform to Cloud Storage object naming conventions.
23478	ReportNamePrefix string `json:"reportNamePrefix,omitempty"`
23479
23480	// ForceSendFields is a list of field names (e.g. "BucketName") to
23481	// unconditionally include in API requests. By default, fields with
23482	// empty values are omitted from API requests. However, any non-pointer,
23483	// non-interface field appearing in ForceSendFields will be sent to the
23484	// server regardless of whether the field is empty or not. This may be
23485	// used to include empty fields in Patch requests.
23486	ForceSendFields []string `json:"-"`
23487
23488	// NullFields is a list of field names (e.g. "BucketName") to include in
23489	// API requests with the JSON null value. By default, fields with empty
23490	// values are omitted from API requests. However, any field with an
23491	// empty value appearing in NullFields will be sent to the server as
23492	// null. It is an error if a field in this list has a non-empty value.
23493	// This may be used to include null fields in Patch requests.
23494	NullFields []string `json:"-"`
23495}
23496
23497func (s *UsageExportLocation) MarshalJSON() ([]byte, error) {
23498	type NoMethod UsageExportLocation
23499	raw := NoMethod(*s)
23500	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23501}
23502
23503// VpnTunnel: VPN tunnel resource. (== resource_for beta.vpnTunnels ==)
23504// (== resource_for v1.vpnTunnels ==)
23505type VpnTunnel struct {
23506	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
23507	// format.
23508	CreationTimestamp string `json:"creationTimestamp,omitempty"`
23509
23510	// Description: An optional description of this resource. Provide this
23511	// property when you create the resource.
23512	Description string `json:"description,omitempty"`
23513
23514	// DetailedStatus: [Output Only] Detailed status message for the VPN
23515	// tunnel.
23516	DetailedStatus string `json:"detailedStatus,omitempty"`
23517
23518	// Id: [Output Only] The unique identifier for the resource. This
23519	// identifier is defined by the server.
23520	Id uint64 `json:"id,omitempty,string"`
23521
23522	// IkeVersion: IKE protocol version to use when establishing the VPN
23523	// tunnel with peer VPN gateway. Acceptable IKE versions are 1 or 2.
23524	// Default version is 2.
23525	IkeVersion int64 `json:"ikeVersion,omitempty"`
23526
23527	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
23528	// VPN tunnels.
23529	Kind string `json:"kind,omitempty"`
23530
23531	// LocalTrafficSelector: Local traffic selector to use when establishing
23532	// the VPN tunnel with peer VPN gateway. The value should be a CIDR
23533	// formatted string, for example: 192.168.0.0/16. The ranges should be
23534	// disjoint. Only IPv4 is supported.
23535	LocalTrafficSelector []string `json:"localTrafficSelector,omitempty"`
23536
23537	// Name: Name of the resource. Provided by the client when the resource
23538	// is created. The name must be 1-63 characters long, and comply with
23539	// RFC1035. Specifically, the name must be 1-63 characters long and
23540	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
23541	// the first character must be a lowercase letter, and all following
23542	// characters must be a dash, lowercase letter, or digit, except the
23543	// last character, which cannot be a dash.
23544	Name string `json:"name,omitempty"`
23545
23546	// PeerIp: IP address of the peer VPN gateway. Only IPv4 is supported.
23547	PeerIp string `json:"peerIp,omitempty"`
23548
23549	// Region: [Output Only] URL of the region where the VPN tunnel resides.
23550	// You must specify this field as part of the HTTP request URL. It is
23551	// not settable as a field in the request body.
23552	Region string `json:"region,omitempty"`
23553
23554	// RemoteTrafficSelector: Remote traffic selectors to use when
23555	// establishing the VPN tunnel with peer VPN gateway. The value should
23556	// be a CIDR formatted string, for example: 192.168.0.0/16. The ranges
23557	// should be disjoint. Only IPv4 is supported.
23558	RemoteTrafficSelector []string `json:"remoteTrafficSelector,omitempty"`
23559
23560	// Router: URL of router resource to be used for dynamic routing.
23561	Router string `json:"router,omitempty"`
23562
23563	// SelfLink: [Output Only] Server-defined URL for the resource.
23564	SelfLink string `json:"selfLink,omitempty"`
23565
23566	// SharedSecret: Shared secret used to set the secure session between
23567	// the Cloud VPN gateway and the peer VPN gateway.
23568	SharedSecret string `json:"sharedSecret,omitempty"`
23569
23570	// SharedSecretHash: Hash of the shared secret.
23571	SharedSecretHash string `json:"sharedSecretHash,omitempty"`
23572
23573	// Status: [Output Only] The status of the VPN tunnel.
23574	//
23575	// Possible values:
23576	//   "ALLOCATING_RESOURCES"
23577	//   "AUTHORIZATION_ERROR"
23578	//   "DEPROVISIONING"
23579	//   "ESTABLISHED"
23580	//   "FAILED"
23581	//   "FIRST_HANDSHAKE"
23582	//   "NEGOTIATION_FAILURE"
23583	//   "NETWORK_ERROR"
23584	//   "NO_INCOMING_PACKETS"
23585	//   "PROVISIONING"
23586	//   "REJECTED"
23587	//   "WAITING_FOR_FULL_CONFIG"
23588	Status string `json:"status,omitempty"`
23589
23590	// TargetVpnGateway: URL of the Target VPN gateway with which this VPN
23591	// tunnel is associated. Provided by the client when the VPN tunnel is
23592	// created.
23593	TargetVpnGateway string `json:"targetVpnGateway,omitempty"`
23594
23595	// ServerResponse contains the HTTP response code and headers from the
23596	// server.
23597	googleapi.ServerResponse `json:"-"`
23598
23599	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
23600	// to unconditionally include in API requests. By default, fields with
23601	// empty values are omitted from API requests. However, any non-pointer,
23602	// non-interface field appearing in ForceSendFields will be sent to the
23603	// server regardless of whether the field is empty or not. This may be
23604	// used to include empty fields in Patch requests.
23605	ForceSendFields []string `json:"-"`
23606
23607	// NullFields is a list of field names (e.g. "CreationTimestamp") to
23608	// include in API requests with the JSON null value. By default, fields
23609	// with empty values are omitted from API requests. However, any field
23610	// with an empty value appearing in NullFields will be sent to the
23611	// server as null. It is an error if a field in this list has a
23612	// non-empty value. This may be used to include null fields in Patch
23613	// requests.
23614	NullFields []string `json:"-"`
23615}
23616
23617func (s *VpnTunnel) MarshalJSON() ([]byte, error) {
23618	type NoMethod VpnTunnel
23619	raw := NoMethod(*s)
23620	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23621}
23622
23623type VpnTunnelAggregatedList struct {
23624	// Id: [Output Only] Unique identifier for the resource; defined by the
23625	// server.
23626	Id string `json:"id,omitempty"`
23627
23628	// Items: A list of VpnTunnelsScopedList resources.
23629	Items map[string]VpnTunnelsScopedList `json:"items,omitempty"`
23630
23631	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
23632	// VPN tunnels.
23633	Kind string `json:"kind,omitempty"`
23634
23635	// NextPageToken: [Output Only] This token allows you to get the next
23636	// page of results for list requests. If the number of results is larger
23637	// than maxResults, use the nextPageToken as a value for the query
23638	// parameter pageToken in the next list request. Subsequent list
23639	// requests will have their own nextPageToken to continue paging through
23640	// the results.
23641	NextPageToken string `json:"nextPageToken,omitempty"`
23642
23643	// SelfLink: [Output Only] Server-defined URL for this resource.
23644	SelfLink string `json:"selfLink,omitempty"`
23645
23646	// Warning: [Output Only] Informational warning message.
23647	Warning *VpnTunnelAggregatedListWarning `json:"warning,omitempty"`
23648
23649	// ServerResponse contains the HTTP response code and headers from the
23650	// server.
23651	googleapi.ServerResponse `json:"-"`
23652
23653	// ForceSendFields is a list of field names (e.g. "Id") to
23654	// unconditionally include in API requests. By default, fields with
23655	// empty values are omitted from API requests. However, any non-pointer,
23656	// non-interface field appearing in ForceSendFields will be sent to the
23657	// server regardless of whether the field is empty or not. This may be
23658	// used to include empty fields in Patch requests.
23659	ForceSendFields []string `json:"-"`
23660
23661	// NullFields is a list of field names (e.g. "Id") to include in API
23662	// requests with the JSON null value. By default, fields with empty
23663	// values are omitted from API requests. However, any field with an
23664	// empty value appearing in NullFields will be sent to the server as
23665	// null. It is an error if a field in this list has a non-empty value.
23666	// This may be used to include null fields in Patch requests.
23667	NullFields []string `json:"-"`
23668}
23669
23670func (s *VpnTunnelAggregatedList) MarshalJSON() ([]byte, error) {
23671	type NoMethod VpnTunnelAggregatedList
23672	raw := NoMethod(*s)
23673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23674}
23675
23676// VpnTunnelAggregatedListWarning: [Output Only] Informational warning
23677// message.
23678type VpnTunnelAggregatedListWarning struct {
23679	// Code: [Output Only] A warning code, if applicable. For example,
23680	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23681	// the response.
23682	//
23683	// Possible values:
23684	//   "CLEANUP_FAILED"
23685	//   "DEPRECATED_RESOURCE_USED"
23686	//   "DEPRECATED_TYPE_USED"
23687	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23688	//   "EXPERIMENTAL_TYPE_USED"
23689	//   "EXTERNAL_API_WARNING"
23690	//   "FIELD_VALUE_OVERRIDEN"
23691	//   "INJECTED_KERNELS_DEPRECATED"
23692	//   "MISSING_TYPE_DEPENDENCY"
23693	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23694	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23695	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23696	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23697	//   "NEXT_HOP_NOT_RUNNING"
23698	//   "NOT_CRITICAL_ERROR"
23699	//   "NO_RESULTS_ON_PAGE"
23700	//   "REQUIRED_TOS_AGREEMENT"
23701	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23702	//   "RESOURCE_NOT_DELETED"
23703	//   "SCHEMA_VALIDATION_IGNORED"
23704	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23705	//   "UNDECLARED_PROPERTIES"
23706	//   "UNREACHABLE"
23707	Code string `json:"code,omitempty"`
23708
23709	// Data: [Output Only] Metadata about this warning in key: value format.
23710	// For example:
23711	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23712	Data []*VpnTunnelAggregatedListWarningData `json:"data,omitempty"`
23713
23714	// Message: [Output Only] A human-readable description of the warning
23715	// code.
23716	Message string `json:"message,omitempty"`
23717
23718	// ForceSendFields is a list of field names (e.g. "Code") to
23719	// unconditionally include in API requests. By default, fields with
23720	// empty values are omitted from API requests. However, any non-pointer,
23721	// non-interface field appearing in ForceSendFields will be sent to the
23722	// server regardless of whether the field is empty or not. This may be
23723	// used to include empty fields in Patch requests.
23724	ForceSendFields []string `json:"-"`
23725
23726	// NullFields is a list of field names (e.g. "Code") to include in API
23727	// requests with the JSON null value. By default, fields with empty
23728	// values are omitted from API requests. However, any field with an
23729	// empty value appearing in NullFields will be sent to the server as
23730	// null. It is an error if a field in this list has a non-empty value.
23731	// This may be used to include null fields in Patch requests.
23732	NullFields []string `json:"-"`
23733}
23734
23735func (s *VpnTunnelAggregatedListWarning) MarshalJSON() ([]byte, error) {
23736	type NoMethod VpnTunnelAggregatedListWarning
23737	raw := NoMethod(*s)
23738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23739}
23740
23741type VpnTunnelAggregatedListWarningData struct {
23742	// Key: [Output Only] A key that provides more detail on the warning
23743	// being returned. For example, for warnings where there are no results
23744	// in a list request for a particular zone, this key might be scope and
23745	// the key value might be the zone name. Other examples might be a key
23746	// indicating a deprecated resource and a suggested replacement, or a
23747	// warning about invalid network settings (for example, if an instance
23748	// attempts to perform IP forwarding but is not enabled for IP
23749	// forwarding).
23750	Key string `json:"key,omitempty"`
23751
23752	// Value: [Output Only] A warning data value corresponding to the key.
23753	Value string `json:"value,omitempty"`
23754
23755	// ForceSendFields is a list of field names (e.g. "Key") to
23756	// unconditionally include in API requests. By default, fields with
23757	// empty values are omitted from API requests. However, any non-pointer,
23758	// non-interface field appearing in ForceSendFields will be sent to the
23759	// server regardless of whether the field is empty or not. This may be
23760	// used to include empty fields in Patch requests.
23761	ForceSendFields []string `json:"-"`
23762
23763	// NullFields is a list of field names (e.g. "Key") to include in API
23764	// requests with the JSON null value. By default, fields with empty
23765	// values are omitted from API requests. However, any field with an
23766	// empty value appearing in NullFields will be sent to the server as
23767	// null. It is an error if a field in this list has a non-empty value.
23768	// This may be used to include null fields in Patch requests.
23769	NullFields []string `json:"-"`
23770}
23771
23772func (s *VpnTunnelAggregatedListWarningData) MarshalJSON() ([]byte, error) {
23773	type NoMethod VpnTunnelAggregatedListWarningData
23774	raw := NoMethod(*s)
23775	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23776}
23777
23778// VpnTunnelList: Contains a list of VpnTunnel resources.
23779type VpnTunnelList struct {
23780	// Id: [Output Only] Unique identifier for the resource; defined by the
23781	// server.
23782	Id string `json:"id,omitempty"`
23783
23784	// Items: A list of VpnTunnel resources.
23785	Items []*VpnTunnel `json:"items,omitempty"`
23786
23787	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
23788	// VPN tunnels.
23789	Kind string `json:"kind,omitempty"`
23790
23791	// NextPageToken: [Output Only] This token allows you to get the next
23792	// page of results for list requests. If the number of results is larger
23793	// than maxResults, use the nextPageToken as a value for the query
23794	// parameter pageToken in the next list request. Subsequent list
23795	// requests will have their own nextPageToken to continue paging through
23796	// the results.
23797	NextPageToken string `json:"nextPageToken,omitempty"`
23798
23799	// SelfLink: [Output Only] Server-defined URL for this resource.
23800	SelfLink string `json:"selfLink,omitempty"`
23801
23802	// Warning: [Output Only] Informational warning message.
23803	Warning *VpnTunnelListWarning `json:"warning,omitempty"`
23804
23805	// ServerResponse contains the HTTP response code and headers from the
23806	// server.
23807	googleapi.ServerResponse `json:"-"`
23808
23809	// ForceSendFields is a list of field names (e.g. "Id") to
23810	// unconditionally include in API requests. By default, fields with
23811	// empty values are omitted from API requests. However, any non-pointer,
23812	// non-interface field appearing in ForceSendFields will be sent to the
23813	// server regardless of whether the field is empty or not. This may be
23814	// used to include empty fields in Patch requests.
23815	ForceSendFields []string `json:"-"`
23816
23817	// NullFields is a list of field names (e.g. "Id") to include in API
23818	// requests with the JSON null value. By default, fields with empty
23819	// values are omitted from API requests. However, any field with an
23820	// empty value appearing in NullFields will be sent to the server as
23821	// null. It is an error if a field in this list has a non-empty value.
23822	// This may be used to include null fields in Patch requests.
23823	NullFields []string `json:"-"`
23824}
23825
23826func (s *VpnTunnelList) MarshalJSON() ([]byte, error) {
23827	type NoMethod VpnTunnelList
23828	raw := NoMethod(*s)
23829	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23830}
23831
23832// VpnTunnelListWarning: [Output Only] Informational warning message.
23833type VpnTunnelListWarning struct {
23834	// Code: [Output Only] A warning code, if applicable. For example,
23835	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23836	// the response.
23837	//
23838	// Possible values:
23839	//   "CLEANUP_FAILED"
23840	//   "DEPRECATED_RESOURCE_USED"
23841	//   "DEPRECATED_TYPE_USED"
23842	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23843	//   "EXPERIMENTAL_TYPE_USED"
23844	//   "EXTERNAL_API_WARNING"
23845	//   "FIELD_VALUE_OVERRIDEN"
23846	//   "INJECTED_KERNELS_DEPRECATED"
23847	//   "MISSING_TYPE_DEPENDENCY"
23848	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23849	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23850	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23851	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23852	//   "NEXT_HOP_NOT_RUNNING"
23853	//   "NOT_CRITICAL_ERROR"
23854	//   "NO_RESULTS_ON_PAGE"
23855	//   "REQUIRED_TOS_AGREEMENT"
23856	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23857	//   "RESOURCE_NOT_DELETED"
23858	//   "SCHEMA_VALIDATION_IGNORED"
23859	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23860	//   "UNDECLARED_PROPERTIES"
23861	//   "UNREACHABLE"
23862	Code string `json:"code,omitempty"`
23863
23864	// Data: [Output Only] Metadata about this warning in key: value format.
23865	// For example:
23866	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23867	Data []*VpnTunnelListWarningData `json:"data,omitempty"`
23868
23869	// Message: [Output Only] A human-readable description of the warning
23870	// code.
23871	Message string `json:"message,omitempty"`
23872
23873	// ForceSendFields is a list of field names (e.g. "Code") to
23874	// unconditionally include in API requests. By default, fields with
23875	// empty values are omitted from API requests. However, any non-pointer,
23876	// non-interface field appearing in ForceSendFields will be sent to the
23877	// server regardless of whether the field is empty or not. This may be
23878	// used to include empty fields in Patch requests.
23879	ForceSendFields []string `json:"-"`
23880
23881	// NullFields is a list of field names (e.g. "Code") to include in API
23882	// requests with the JSON null value. By default, fields with empty
23883	// values are omitted from API requests. However, any field with an
23884	// empty value appearing in NullFields will be sent to the server as
23885	// null. It is an error if a field in this list has a non-empty value.
23886	// This may be used to include null fields in Patch requests.
23887	NullFields []string `json:"-"`
23888}
23889
23890func (s *VpnTunnelListWarning) MarshalJSON() ([]byte, error) {
23891	type NoMethod VpnTunnelListWarning
23892	raw := NoMethod(*s)
23893	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23894}
23895
23896type VpnTunnelListWarningData struct {
23897	// Key: [Output Only] A key that provides more detail on the warning
23898	// being returned. For example, for warnings where there are no results
23899	// in a list request for a particular zone, this key might be scope and
23900	// the key value might be the zone name. Other examples might be a key
23901	// indicating a deprecated resource and a suggested replacement, or a
23902	// warning about invalid network settings (for example, if an instance
23903	// attempts to perform IP forwarding but is not enabled for IP
23904	// forwarding).
23905	Key string `json:"key,omitempty"`
23906
23907	// Value: [Output Only] A warning data value corresponding to the key.
23908	Value string `json:"value,omitempty"`
23909
23910	// ForceSendFields is a list of field names (e.g. "Key") to
23911	// unconditionally include in API requests. By default, fields with
23912	// empty values are omitted from API requests. However, any non-pointer,
23913	// non-interface field appearing in ForceSendFields will be sent to the
23914	// server regardless of whether the field is empty or not. This may be
23915	// used to include empty fields in Patch requests.
23916	ForceSendFields []string `json:"-"`
23917
23918	// NullFields is a list of field names (e.g. "Key") to include in API
23919	// requests with the JSON null value. By default, fields with empty
23920	// values are omitted from API requests. However, any field with an
23921	// empty value appearing in NullFields will be sent to the server as
23922	// null. It is an error if a field in this list has a non-empty value.
23923	// This may be used to include null fields in Patch requests.
23924	NullFields []string `json:"-"`
23925}
23926
23927func (s *VpnTunnelListWarningData) MarshalJSON() ([]byte, error) {
23928	type NoMethod VpnTunnelListWarningData
23929	raw := NoMethod(*s)
23930	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23931}
23932
23933type VpnTunnelsScopedList struct {
23934	// VpnTunnels: A list of vpn tunnels contained in this scope.
23935	VpnTunnels []*VpnTunnel `json:"vpnTunnels,omitempty"`
23936
23937	// Warning: Informational warning which replaces the list of addresses
23938	// when the list is empty.
23939	Warning *VpnTunnelsScopedListWarning `json:"warning,omitempty"`
23940
23941	// ForceSendFields is a list of field names (e.g. "VpnTunnels") to
23942	// unconditionally include in API requests. By default, fields with
23943	// empty values are omitted from API requests. However, any non-pointer,
23944	// non-interface field appearing in ForceSendFields will be sent to the
23945	// server regardless of whether the field is empty or not. This may be
23946	// used to include empty fields in Patch requests.
23947	ForceSendFields []string `json:"-"`
23948
23949	// NullFields is a list of field names (e.g. "VpnTunnels") to include in
23950	// API requests with the JSON null value. By default, fields with empty
23951	// values are omitted from API requests. However, any field with an
23952	// empty value appearing in NullFields will be sent to the server as
23953	// null. It is an error if a field in this list has a non-empty value.
23954	// This may be used to include null fields in Patch requests.
23955	NullFields []string `json:"-"`
23956}
23957
23958func (s *VpnTunnelsScopedList) MarshalJSON() ([]byte, error) {
23959	type NoMethod VpnTunnelsScopedList
23960	raw := NoMethod(*s)
23961	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23962}
23963
23964// VpnTunnelsScopedListWarning: Informational warning which replaces the
23965// list of addresses when the list is empty.
23966type VpnTunnelsScopedListWarning struct {
23967	// Code: [Output Only] A warning code, if applicable. For example,
23968	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23969	// the response.
23970	//
23971	// Possible values:
23972	//   "CLEANUP_FAILED"
23973	//   "DEPRECATED_RESOURCE_USED"
23974	//   "DEPRECATED_TYPE_USED"
23975	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23976	//   "EXPERIMENTAL_TYPE_USED"
23977	//   "EXTERNAL_API_WARNING"
23978	//   "FIELD_VALUE_OVERRIDEN"
23979	//   "INJECTED_KERNELS_DEPRECATED"
23980	//   "MISSING_TYPE_DEPENDENCY"
23981	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23982	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23983	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23984	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23985	//   "NEXT_HOP_NOT_RUNNING"
23986	//   "NOT_CRITICAL_ERROR"
23987	//   "NO_RESULTS_ON_PAGE"
23988	//   "REQUIRED_TOS_AGREEMENT"
23989	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23990	//   "RESOURCE_NOT_DELETED"
23991	//   "SCHEMA_VALIDATION_IGNORED"
23992	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23993	//   "UNDECLARED_PROPERTIES"
23994	//   "UNREACHABLE"
23995	Code string `json:"code,omitempty"`
23996
23997	// Data: [Output Only] Metadata about this warning in key: value format.
23998	// For example:
23999	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24000	Data []*VpnTunnelsScopedListWarningData `json:"data,omitempty"`
24001
24002	// Message: [Output Only] A human-readable description of the warning
24003	// code.
24004	Message string `json:"message,omitempty"`
24005
24006	// ForceSendFields is a list of field names (e.g. "Code") to
24007	// unconditionally include in API requests. By default, fields with
24008	// empty values are omitted from API requests. However, any non-pointer,
24009	// non-interface field appearing in ForceSendFields will be sent to the
24010	// server regardless of whether the field is empty or not. This may be
24011	// used to include empty fields in Patch requests.
24012	ForceSendFields []string `json:"-"`
24013
24014	// NullFields is a list of field names (e.g. "Code") to include in API
24015	// requests with the JSON null value. By default, fields with empty
24016	// values are omitted from API requests. However, any field with an
24017	// empty value appearing in NullFields will be sent to the server as
24018	// null. It is an error if a field in this list has a non-empty value.
24019	// This may be used to include null fields in Patch requests.
24020	NullFields []string `json:"-"`
24021}
24022
24023func (s *VpnTunnelsScopedListWarning) MarshalJSON() ([]byte, error) {
24024	type NoMethod VpnTunnelsScopedListWarning
24025	raw := NoMethod(*s)
24026	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24027}
24028
24029type VpnTunnelsScopedListWarningData struct {
24030	// Key: [Output Only] A key that provides more detail on the warning
24031	// being returned. For example, for warnings where there are no results
24032	// in a list request for a particular zone, this key might be scope and
24033	// the key value might be the zone name. Other examples might be a key
24034	// indicating a deprecated resource and a suggested replacement, or a
24035	// warning about invalid network settings (for example, if an instance
24036	// attempts to perform IP forwarding but is not enabled for IP
24037	// forwarding).
24038	Key string `json:"key,omitempty"`
24039
24040	// Value: [Output Only] A warning data value corresponding to the key.
24041	Value string `json:"value,omitempty"`
24042
24043	// ForceSendFields is a list of field names (e.g. "Key") to
24044	// unconditionally include in API requests. By default, fields with
24045	// empty values are omitted from API requests. However, any non-pointer,
24046	// non-interface field appearing in ForceSendFields will be sent to the
24047	// server regardless of whether the field is empty or not. This may be
24048	// used to include empty fields in Patch requests.
24049	ForceSendFields []string `json:"-"`
24050
24051	// NullFields is a list of field names (e.g. "Key") to include in API
24052	// requests with the JSON null value. By default, fields with empty
24053	// values are omitted from API requests. However, any field with an
24054	// empty value appearing in NullFields will be sent to the server as
24055	// null. It is an error if a field in this list has a non-empty value.
24056	// This may be used to include null fields in Patch requests.
24057	NullFields []string `json:"-"`
24058}
24059
24060func (s *VpnTunnelsScopedListWarningData) MarshalJSON() ([]byte, error) {
24061	type NoMethod VpnTunnelsScopedListWarningData
24062	raw := NoMethod(*s)
24063	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24064}
24065
24066type XpnHostList struct {
24067	// Id: [Output Only] Unique identifier for the resource; defined by the
24068	// server.
24069	Id string `json:"id,omitempty"`
24070
24071	// Items: [Output Only] A list of shared VPC host project URLs.
24072	Items []*Project `json:"items,omitempty"`
24073
24074	// Kind: [Output Only] Type of resource. Always compute#xpnHostList for
24075	// lists of shared VPC hosts.
24076	Kind string `json:"kind,omitempty"`
24077
24078	// NextPageToken: [Output Only] This token allows you to get the next
24079	// page of results for list requests. If the number of results is larger
24080	// than maxResults, use the nextPageToken as a value for the query
24081	// parameter pageToken in the next list request. Subsequent list
24082	// requests will have their own nextPageToken to continue paging through
24083	// the results.
24084	NextPageToken string `json:"nextPageToken,omitempty"`
24085
24086	// SelfLink: [Output Only] Server-defined URL for this resource.
24087	SelfLink string `json:"selfLink,omitempty"`
24088
24089	// Warning: [Output Only] Informational warning message.
24090	Warning *XpnHostListWarning `json:"warning,omitempty"`
24091
24092	// ServerResponse contains the HTTP response code and headers from the
24093	// server.
24094	googleapi.ServerResponse `json:"-"`
24095
24096	// ForceSendFields is a list of field names (e.g. "Id") to
24097	// unconditionally include in API requests. By default, fields with
24098	// empty values are omitted from API requests. However, any non-pointer,
24099	// non-interface field appearing in ForceSendFields will be sent to the
24100	// server regardless of whether the field is empty or not. This may be
24101	// used to include empty fields in Patch requests.
24102	ForceSendFields []string `json:"-"`
24103
24104	// NullFields is a list of field names (e.g. "Id") to include in API
24105	// requests with the JSON null value. By default, fields with empty
24106	// values are omitted from API requests. However, any field with an
24107	// empty value appearing in NullFields will be sent to the server as
24108	// null. It is an error if a field in this list has a non-empty value.
24109	// This may be used to include null fields in Patch requests.
24110	NullFields []string `json:"-"`
24111}
24112
24113func (s *XpnHostList) MarshalJSON() ([]byte, error) {
24114	type NoMethod XpnHostList
24115	raw := NoMethod(*s)
24116	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24117}
24118
24119// XpnHostListWarning: [Output Only] Informational warning message.
24120type XpnHostListWarning struct {
24121	// Code: [Output Only] A warning code, if applicable. For example,
24122	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24123	// the response.
24124	//
24125	// Possible values:
24126	//   "CLEANUP_FAILED"
24127	//   "DEPRECATED_RESOURCE_USED"
24128	//   "DEPRECATED_TYPE_USED"
24129	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24130	//   "EXPERIMENTAL_TYPE_USED"
24131	//   "EXTERNAL_API_WARNING"
24132	//   "FIELD_VALUE_OVERRIDEN"
24133	//   "INJECTED_KERNELS_DEPRECATED"
24134	//   "MISSING_TYPE_DEPENDENCY"
24135	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24136	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24137	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24138	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24139	//   "NEXT_HOP_NOT_RUNNING"
24140	//   "NOT_CRITICAL_ERROR"
24141	//   "NO_RESULTS_ON_PAGE"
24142	//   "REQUIRED_TOS_AGREEMENT"
24143	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24144	//   "RESOURCE_NOT_DELETED"
24145	//   "SCHEMA_VALIDATION_IGNORED"
24146	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24147	//   "UNDECLARED_PROPERTIES"
24148	//   "UNREACHABLE"
24149	Code string `json:"code,omitempty"`
24150
24151	// Data: [Output Only] Metadata about this warning in key: value format.
24152	// For example:
24153	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24154	Data []*XpnHostListWarningData `json:"data,omitempty"`
24155
24156	// Message: [Output Only] A human-readable description of the warning
24157	// code.
24158	Message string `json:"message,omitempty"`
24159
24160	// ForceSendFields is a list of field names (e.g. "Code") to
24161	// unconditionally include in API requests. By default, fields with
24162	// empty values are omitted from API requests. However, any non-pointer,
24163	// non-interface field appearing in ForceSendFields will be sent to the
24164	// server regardless of whether the field is empty or not. This may be
24165	// used to include empty fields in Patch requests.
24166	ForceSendFields []string `json:"-"`
24167
24168	// NullFields is a list of field names (e.g. "Code") to include in API
24169	// requests with the JSON null value. By default, fields with empty
24170	// values are omitted from API requests. However, any field with an
24171	// empty value appearing in NullFields will be sent to the server as
24172	// null. It is an error if a field in this list has a non-empty value.
24173	// This may be used to include null fields in Patch requests.
24174	NullFields []string `json:"-"`
24175}
24176
24177func (s *XpnHostListWarning) MarshalJSON() ([]byte, error) {
24178	type NoMethod XpnHostListWarning
24179	raw := NoMethod(*s)
24180	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24181}
24182
24183type XpnHostListWarningData struct {
24184	// Key: [Output Only] A key that provides more detail on the warning
24185	// being returned. For example, for warnings where there are no results
24186	// in a list request for a particular zone, this key might be scope and
24187	// the key value might be the zone name. Other examples might be a key
24188	// indicating a deprecated resource and a suggested replacement, or a
24189	// warning about invalid network settings (for example, if an instance
24190	// attempts to perform IP forwarding but is not enabled for IP
24191	// forwarding).
24192	Key string `json:"key,omitempty"`
24193
24194	// Value: [Output Only] A warning data value corresponding to the key.
24195	Value string `json:"value,omitempty"`
24196
24197	// ForceSendFields is a list of field names (e.g. "Key") to
24198	// unconditionally include in API requests. By default, fields with
24199	// empty values are omitted from API requests. However, any non-pointer,
24200	// non-interface field appearing in ForceSendFields will be sent to the
24201	// server regardless of whether the field is empty or not. This may be
24202	// used to include empty fields in Patch requests.
24203	ForceSendFields []string `json:"-"`
24204
24205	// NullFields is a list of field names (e.g. "Key") to include in API
24206	// requests with the JSON null value. By default, fields with empty
24207	// values are omitted from API requests. However, any field with an
24208	// empty value appearing in NullFields will be sent to the server as
24209	// null. It is an error if a field in this list has a non-empty value.
24210	// This may be used to include null fields in Patch requests.
24211	NullFields []string `json:"-"`
24212}
24213
24214func (s *XpnHostListWarningData) MarshalJSON() ([]byte, error) {
24215	type NoMethod XpnHostListWarningData
24216	raw := NoMethod(*s)
24217	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24218}
24219
24220// XpnResourceId: Service resource (a.k.a service project) ID.
24221type XpnResourceId struct {
24222	// Id: The ID of the service resource. In the case of projects, this
24223	// field matches the project ID (e.g., my-project), not the project
24224	// number (e.g., 12345678).
24225	Id string `json:"id,omitempty"`
24226
24227	// Type: The type of the service resource.
24228	//
24229	// Possible values:
24230	//   "PROJECT"
24231	//   "XPN_RESOURCE_TYPE_UNSPECIFIED"
24232	Type string `json:"type,omitempty"`
24233
24234	// ForceSendFields is a list of field names (e.g. "Id") to
24235	// unconditionally include in API requests. By default, fields with
24236	// empty values are omitted from API requests. However, any non-pointer,
24237	// non-interface field appearing in ForceSendFields will be sent to the
24238	// server regardless of whether the field is empty or not. This may be
24239	// used to include empty fields in Patch requests.
24240	ForceSendFields []string `json:"-"`
24241
24242	// NullFields is a list of field names (e.g. "Id") to include in API
24243	// requests with the JSON null value. By default, fields with empty
24244	// values are omitted from API requests. However, any field with an
24245	// empty value appearing in NullFields will be sent to the server as
24246	// null. It is an error if a field in this list has a non-empty value.
24247	// This may be used to include null fields in Patch requests.
24248	NullFields []string `json:"-"`
24249}
24250
24251func (s *XpnResourceId) MarshalJSON() ([]byte, error) {
24252	type NoMethod XpnResourceId
24253	raw := NoMethod(*s)
24254	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24255}
24256
24257// Zone: A Zone resource. (== resource_for beta.zones ==) (==
24258// resource_for v1.zones ==)
24259type Zone struct {
24260	// AvailableCpuPlatforms: [Output Only] Available cpu/platform
24261	// selections for the zone.
24262	AvailableCpuPlatforms []string `json:"availableCpuPlatforms,omitempty"`
24263
24264	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
24265	// format.
24266	CreationTimestamp string `json:"creationTimestamp,omitempty"`
24267
24268	// Deprecated: [Output Only] The deprecation status associated with this
24269	// zone.
24270	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
24271
24272	// Description: [Output Only] Textual description of the resource.
24273	Description string `json:"description,omitempty"`
24274
24275	// Id: [Output Only] The unique identifier for the resource. This
24276	// identifier is defined by the server.
24277	Id uint64 `json:"id,omitempty,string"`
24278
24279	// Kind: [Output Only] Type of the resource. Always compute#zone for
24280	// zones.
24281	Kind string `json:"kind,omitempty"`
24282
24283	// Name: [Output Only] Name of the resource.
24284	Name string `json:"name,omitempty"`
24285
24286	// Region: [Output Only] Full URL reference to the region which hosts
24287	// the zone.
24288	Region string `json:"region,omitempty"`
24289
24290	// SelfLink: [Output Only] Server-defined URL for the resource.
24291	SelfLink string `json:"selfLink,omitempty"`
24292
24293	// Status: [Output Only] Status of the zone, either UP or DOWN.
24294	//
24295	// Possible values:
24296	//   "DOWN"
24297	//   "UP"
24298	Status string `json:"status,omitempty"`
24299
24300	// ServerResponse contains the HTTP response code and headers from the
24301	// server.
24302	googleapi.ServerResponse `json:"-"`
24303
24304	// ForceSendFields is a list of field names (e.g.
24305	// "AvailableCpuPlatforms") to unconditionally include in API requests.
24306	// By default, fields with empty values are omitted from API requests.
24307	// However, any non-pointer, non-interface field appearing in
24308	// ForceSendFields will be sent to the server regardless of whether the
24309	// field is empty or not. This may be used to include empty fields in
24310	// Patch requests.
24311	ForceSendFields []string `json:"-"`
24312
24313	// NullFields is a list of field names (e.g. "AvailableCpuPlatforms") to
24314	// include in API requests with the JSON null value. By default, fields
24315	// with empty values are omitted from API requests. However, any field
24316	// with an empty value appearing in NullFields will be sent to the
24317	// server as null. It is an error if a field in this list has a
24318	// non-empty value. This may be used to include null fields in Patch
24319	// requests.
24320	NullFields []string `json:"-"`
24321}
24322
24323func (s *Zone) MarshalJSON() ([]byte, error) {
24324	type NoMethod Zone
24325	raw := NoMethod(*s)
24326	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24327}
24328
24329// ZoneList: Contains a list of zone resources.
24330type ZoneList struct {
24331	// Id: [Output Only] Unique identifier for the resource; defined by the
24332	// server.
24333	Id string `json:"id,omitempty"`
24334
24335	// Items: A list of Zone resources.
24336	Items []*Zone `json:"items,omitempty"`
24337
24338	// Kind: Type of resource.
24339	Kind string `json:"kind,omitempty"`
24340
24341	// NextPageToken: [Output Only] This token allows you to get the next
24342	// page of results for list requests. If the number of results is larger
24343	// than maxResults, use the nextPageToken as a value for the query
24344	// parameter pageToken in the next list request. Subsequent list
24345	// requests will have their own nextPageToken to continue paging through
24346	// the results.
24347	NextPageToken string `json:"nextPageToken,omitempty"`
24348
24349	// SelfLink: [Output Only] Server-defined URL for this resource.
24350	SelfLink string `json:"selfLink,omitempty"`
24351
24352	// Warning: [Output Only] Informational warning message.
24353	Warning *ZoneListWarning `json:"warning,omitempty"`
24354
24355	// ServerResponse contains the HTTP response code and headers from the
24356	// server.
24357	googleapi.ServerResponse `json:"-"`
24358
24359	// ForceSendFields is a list of field names (e.g. "Id") to
24360	// unconditionally include in API requests. By default, fields with
24361	// empty values are omitted from API requests. However, any non-pointer,
24362	// non-interface field appearing in ForceSendFields will be sent to the
24363	// server regardless of whether the field is empty or not. This may be
24364	// used to include empty fields in Patch requests.
24365	ForceSendFields []string `json:"-"`
24366
24367	// NullFields is a list of field names (e.g. "Id") to include in API
24368	// requests with the JSON null value. By default, fields with empty
24369	// values are omitted from API requests. However, any field with an
24370	// empty value appearing in NullFields will be sent to the server as
24371	// null. It is an error if a field in this list has a non-empty value.
24372	// This may be used to include null fields in Patch requests.
24373	NullFields []string `json:"-"`
24374}
24375
24376func (s *ZoneList) MarshalJSON() ([]byte, error) {
24377	type NoMethod ZoneList
24378	raw := NoMethod(*s)
24379	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24380}
24381
24382// ZoneListWarning: [Output Only] Informational warning message.
24383type ZoneListWarning struct {
24384	// Code: [Output Only] A warning code, if applicable. For example,
24385	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24386	// the response.
24387	//
24388	// Possible values:
24389	//   "CLEANUP_FAILED"
24390	//   "DEPRECATED_RESOURCE_USED"
24391	//   "DEPRECATED_TYPE_USED"
24392	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24393	//   "EXPERIMENTAL_TYPE_USED"
24394	//   "EXTERNAL_API_WARNING"
24395	//   "FIELD_VALUE_OVERRIDEN"
24396	//   "INJECTED_KERNELS_DEPRECATED"
24397	//   "MISSING_TYPE_DEPENDENCY"
24398	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24399	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24400	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24401	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24402	//   "NEXT_HOP_NOT_RUNNING"
24403	//   "NOT_CRITICAL_ERROR"
24404	//   "NO_RESULTS_ON_PAGE"
24405	//   "REQUIRED_TOS_AGREEMENT"
24406	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24407	//   "RESOURCE_NOT_DELETED"
24408	//   "SCHEMA_VALIDATION_IGNORED"
24409	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24410	//   "UNDECLARED_PROPERTIES"
24411	//   "UNREACHABLE"
24412	Code string `json:"code,omitempty"`
24413
24414	// Data: [Output Only] Metadata about this warning in key: value format.
24415	// For example:
24416	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24417	Data []*ZoneListWarningData `json:"data,omitempty"`
24418
24419	// Message: [Output Only] A human-readable description of the warning
24420	// code.
24421	Message string `json:"message,omitempty"`
24422
24423	// ForceSendFields is a list of field names (e.g. "Code") to
24424	// unconditionally include in API requests. By default, fields with
24425	// empty values are omitted from API requests. However, any non-pointer,
24426	// non-interface field appearing in ForceSendFields will be sent to the
24427	// server regardless of whether the field is empty or not. This may be
24428	// used to include empty fields in Patch requests.
24429	ForceSendFields []string `json:"-"`
24430
24431	// NullFields is a list of field names (e.g. "Code") to include in API
24432	// requests with the JSON null value. By default, fields with empty
24433	// values are omitted from API requests. However, any field with an
24434	// empty value appearing in NullFields will be sent to the server as
24435	// null. It is an error if a field in this list has a non-empty value.
24436	// This may be used to include null fields in Patch requests.
24437	NullFields []string `json:"-"`
24438}
24439
24440func (s *ZoneListWarning) MarshalJSON() ([]byte, error) {
24441	type NoMethod ZoneListWarning
24442	raw := NoMethod(*s)
24443	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24444}
24445
24446type ZoneListWarningData struct {
24447	// Key: [Output Only] A key that provides more detail on the warning
24448	// being returned. For example, for warnings where there are no results
24449	// in a list request for a particular zone, this key might be scope and
24450	// the key value might be the zone name. Other examples might be a key
24451	// indicating a deprecated resource and a suggested replacement, or a
24452	// warning about invalid network settings (for example, if an instance
24453	// attempts to perform IP forwarding but is not enabled for IP
24454	// forwarding).
24455	Key string `json:"key,omitempty"`
24456
24457	// Value: [Output Only] A warning data value corresponding to the key.
24458	Value string `json:"value,omitempty"`
24459
24460	// ForceSendFields is a list of field names (e.g. "Key") to
24461	// unconditionally include in API requests. By default, fields with
24462	// empty values are omitted from API requests. However, any non-pointer,
24463	// non-interface field appearing in ForceSendFields will be sent to the
24464	// server regardless of whether the field is empty or not. This may be
24465	// used to include empty fields in Patch requests.
24466	ForceSendFields []string `json:"-"`
24467
24468	// NullFields is a list of field names (e.g. "Key") to include in API
24469	// requests with the JSON null value. By default, fields with empty
24470	// values are omitted from API requests. However, any field with an
24471	// empty value appearing in NullFields will be sent to the server as
24472	// null. It is an error if a field in this list has a non-empty value.
24473	// This may be used to include null fields in Patch requests.
24474	NullFields []string `json:"-"`
24475}
24476
24477func (s *ZoneListWarningData) MarshalJSON() ([]byte, error) {
24478	type NoMethod ZoneListWarningData
24479	raw := NoMethod(*s)
24480	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24481}
24482
24483type ZoneSetLabelsRequest struct {
24484	// LabelFingerprint: The fingerprint of the previous set of labels for
24485	// this resource, used to detect conflicts. The fingerprint is initially
24486	// generated by Compute Engine and changes after every request to modify
24487	// or update labels. You must always provide an up-to-date fingerprint
24488	// hash in order to update or change labels. Make a get() request to the
24489	// resource to get the latest fingerprint.
24490	LabelFingerprint string `json:"labelFingerprint,omitempty"`
24491
24492	// Labels: The labels to set for this resource.
24493	Labels map[string]string `json:"labels,omitempty"`
24494
24495	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
24496	// unconditionally include in API requests. By default, fields with
24497	// empty values are omitted from API requests. However, any non-pointer,
24498	// non-interface field appearing in ForceSendFields will be sent to the
24499	// server regardless of whether the field is empty or not. This may be
24500	// used to include empty fields in Patch requests.
24501	ForceSendFields []string `json:"-"`
24502
24503	// NullFields is a list of field names (e.g. "LabelFingerprint") to
24504	// include in API requests with the JSON null value. By default, fields
24505	// with empty values are omitted from API requests. However, any field
24506	// with an empty value appearing in NullFields will be sent to the
24507	// server as null. It is an error if a field in this list has a
24508	// non-empty value. This may be used to include null fields in Patch
24509	// requests.
24510	NullFields []string `json:"-"`
24511}
24512
24513func (s *ZoneSetLabelsRequest) MarshalJSON() ([]byte, error) {
24514	type NoMethod ZoneSetLabelsRequest
24515	raw := NoMethod(*s)
24516	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24517}
24518
24519// method id "compute.acceleratorTypes.aggregatedList":
24520
24521type AcceleratorTypesAggregatedListCall struct {
24522	s            *Service
24523	project      string
24524	urlParams_   gensupport.URLParams
24525	ifNoneMatch_ string
24526	ctx_         context.Context
24527	header_      http.Header
24528}
24529
24530// AggregatedList: Retrieves an aggregated list of accelerator types.
24531func (r *AcceleratorTypesService) AggregatedList(project string) *AcceleratorTypesAggregatedListCall {
24532	c := &AcceleratorTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
24533	c.project = project
24534	return c
24535}
24536
24537// Filter sets the optional parameter "filter": A filter expression that
24538// filters resources listed in the response. The expression must specify
24539// the field name, a comparison operator, and the value that you want to
24540// use for filtering. The value must be a string, a number, or a
24541// boolean. The comparison operator must be either =, !=, >, or <.
24542//
24543// For example, if you are filtering Compute Engine instances, you can
24544// exclude instances named example-instance by specifying name !=
24545// example-instance.
24546//
24547// You can also filter nested fields. For example, you could specify
24548// scheduling.automaticRestart = false to include instances only if they
24549// are not scheduled for automatic restarts. You can use filtering on
24550// nested fields to filter based on resource labels.
24551//
24552// To filter on multiple expressions, provide each separate expression
24553// within parentheses. For example, (scheduling.automaticRestart = true)
24554// (cpuPlatform = "Intel Skylake"). By default, each expression is an
24555// AND expression. However, you can include AND and OR expressions
24556// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
24557// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
24558// true).
24559func (c *AcceleratorTypesAggregatedListCall) Filter(filter string) *AcceleratorTypesAggregatedListCall {
24560	c.urlParams_.Set("filter", filter)
24561	return c
24562}
24563
24564// MaxResults sets the optional parameter "maxResults": The maximum
24565// number of results per page that should be returned. If the number of
24566// available results is larger than maxResults, Compute Engine returns a
24567// nextPageToken that can be used to get the next page of results in
24568// subsequent list requests. Acceptable values are 0 to 500, inclusive.
24569// (Default: 500)
24570func (c *AcceleratorTypesAggregatedListCall) MaxResults(maxResults int64) *AcceleratorTypesAggregatedListCall {
24571	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
24572	return c
24573}
24574
24575// OrderBy sets the optional parameter "orderBy": Sorts list results by
24576// a certain order. By default, results are returned in alphanumerical
24577// order based on the resource name.
24578//
24579// You can also sort results in descending order based on the creation
24580// timestamp using orderBy="creationTimestamp desc". This sorts results
24581// based on the creationTimestamp field in reverse chronological order
24582// (newest result first). Use this to sort resources like operations so
24583// that the newest operation is returned first.
24584//
24585// Currently, only sorting by name or creationTimestamp desc is
24586// supported.
24587func (c *AcceleratorTypesAggregatedListCall) OrderBy(orderBy string) *AcceleratorTypesAggregatedListCall {
24588	c.urlParams_.Set("orderBy", orderBy)
24589	return c
24590}
24591
24592// PageToken sets the optional parameter "pageToken": Specifies a page
24593// token to use. Set pageToken to the nextPageToken returned by a
24594// previous list request to get the next page of results.
24595func (c *AcceleratorTypesAggregatedListCall) PageToken(pageToken string) *AcceleratorTypesAggregatedListCall {
24596	c.urlParams_.Set("pageToken", pageToken)
24597	return c
24598}
24599
24600// Fields allows partial responses to be retrieved. See
24601// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
24602// for more information.
24603func (c *AcceleratorTypesAggregatedListCall) Fields(s ...googleapi.Field) *AcceleratorTypesAggregatedListCall {
24604	c.urlParams_.Set("fields", googleapi.CombineFields(s))
24605	return c
24606}
24607
24608// IfNoneMatch sets the optional parameter which makes the operation
24609// fail if the object's ETag matches the given value. This is useful for
24610// getting updates only after the object has changed since the last
24611// request. Use googleapi.IsNotModified to check whether the response
24612// error from Do is the result of In-None-Match.
24613func (c *AcceleratorTypesAggregatedListCall) IfNoneMatch(entityTag string) *AcceleratorTypesAggregatedListCall {
24614	c.ifNoneMatch_ = entityTag
24615	return c
24616}
24617
24618// Context sets the context to be used in this call's Do method. Any
24619// pending HTTP request will be aborted if the provided context is
24620// canceled.
24621func (c *AcceleratorTypesAggregatedListCall) Context(ctx context.Context) *AcceleratorTypesAggregatedListCall {
24622	c.ctx_ = ctx
24623	return c
24624}
24625
24626// Header returns an http.Header that can be modified by the caller to
24627// add HTTP headers to the request.
24628func (c *AcceleratorTypesAggregatedListCall) Header() http.Header {
24629	if c.header_ == nil {
24630		c.header_ = make(http.Header)
24631	}
24632	return c.header_
24633}
24634
24635func (c *AcceleratorTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
24636	reqHeaders := make(http.Header)
24637	for k, v := range c.header_ {
24638		reqHeaders[k] = v
24639	}
24640	reqHeaders.Set("User-Agent", c.s.userAgent())
24641	if c.ifNoneMatch_ != "" {
24642		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
24643	}
24644	var body io.Reader = nil
24645	c.urlParams_.Set("alt", alt)
24646	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/acceleratorTypes")
24647	urls += "?" + c.urlParams_.Encode()
24648	req, _ := http.NewRequest("GET", urls, body)
24649	req.Header = reqHeaders
24650	googleapi.Expand(req.URL, map[string]string{
24651		"project": c.project,
24652	})
24653	return gensupport.SendRequest(c.ctx_, c.s.client, req)
24654}
24655
24656// Do executes the "compute.acceleratorTypes.aggregatedList" call.
24657// Exactly one of *AcceleratorTypeAggregatedList or error will be
24658// non-nil. Any non-2xx status code is an error. Response headers are in
24659// either *AcceleratorTypeAggregatedList.ServerResponse.Header or (if a
24660// response was returned at all) in error.(*googleapi.Error).Header. Use
24661// googleapi.IsNotModified to check whether the returned error was
24662// because http.StatusNotModified was returned.
24663func (c *AcceleratorTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeAggregatedList, error) {
24664	gensupport.SetOptions(c.urlParams_, opts...)
24665	res, err := c.doRequest("json")
24666	if res != nil && res.StatusCode == http.StatusNotModified {
24667		if res.Body != nil {
24668			res.Body.Close()
24669		}
24670		return nil, &googleapi.Error{
24671			Code:   res.StatusCode,
24672			Header: res.Header,
24673		}
24674	}
24675	if err != nil {
24676		return nil, err
24677	}
24678	defer googleapi.CloseBody(res)
24679	if err := googleapi.CheckResponse(res); err != nil {
24680		return nil, err
24681	}
24682	ret := &AcceleratorTypeAggregatedList{
24683		ServerResponse: googleapi.ServerResponse{
24684			Header:         res.Header,
24685			HTTPStatusCode: res.StatusCode,
24686		},
24687	}
24688	target := &ret
24689	if err := gensupport.DecodeResponse(target, res); err != nil {
24690		return nil, err
24691	}
24692	return ret, nil
24693	// {
24694	//   "description": "Retrieves an aggregated list of accelerator types.",
24695	//   "httpMethod": "GET",
24696	//   "id": "compute.acceleratorTypes.aggregatedList",
24697	//   "parameterOrder": [
24698	//     "project"
24699	//   ],
24700	//   "parameters": {
24701	//     "filter": {
24702	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
24703	//       "location": "query",
24704	//       "type": "string"
24705	//     },
24706	//     "maxResults": {
24707	//       "default": "500",
24708	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
24709	//       "format": "uint32",
24710	//       "location": "query",
24711	//       "minimum": "0",
24712	//       "type": "integer"
24713	//     },
24714	//     "orderBy": {
24715	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
24716	//       "location": "query",
24717	//       "type": "string"
24718	//     },
24719	//     "pageToken": {
24720	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
24721	//       "location": "query",
24722	//       "type": "string"
24723	//     },
24724	//     "project": {
24725	//       "description": "Project ID for this request.",
24726	//       "location": "path",
24727	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
24728	//       "required": true,
24729	//       "type": "string"
24730	//     }
24731	//   },
24732	//   "path": "{project}/aggregated/acceleratorTypes",
24733	//   "response": {
24734	//     "$ref": "AcceleratorTypeAggregatedList"
24735	//   },
24736	//   "scopes": [
24737	//     "https://www.googleapis.com/auth/cloud-platform",
24738	//     "https://www.googleapis.com/auth/compute",
24739	//     "https://www.googleapis.com/auth/compute.readonly"
24740	//   ]
24741	// }
24742
24743}
24744
24745// Pages invokes f for each page of results.
24746// A non-nil error returned from f will halt the iteration.
24747// The provided context supersedes any context provided to the Context method.
24748func (c *AcceleratorTypesAggregatedListCall) Pages(ctx context.Context, f func(*AcceleratorTypeAggregatedList) error) error {
24749	c.ctx_ = ctx
24750	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
24751	for {
24752		x, err := c.Do()
24753		if err != nil {
24754			return err
24755		}
24756		if err := f(x); err != nil {
24757			return err
24758		}
24759		if x.NextPageToken == "" {
24760			return nil
24761		}
24762		c.PageToken(x.NextPageToken)
24763	}
24764}
24765
24766// method id "compute.acceleratorTypes.get":
24767
24768type AcceleratorTypesGetCall struct {
24769	s               *Service
24770	project         string
24771	zone            string
24772	acceleratorType string
24773	urlParams_      gensupport.URLParams
24774	ifNoneMatch_    string
24775	ctx_            context.Context
24776	header_         http.Header
24777}
24778
24779// Get: Returns the specified accelerator type. Gets a list of available
24780// accelerator types by making a list() request.
24781func (r *AcceleratorTypesService) Get(project string, zone string, acceleratorType string) *AcceleratorTypesGetCall {
24782	c := &AcceleratorTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
24783	c.project = project
24784	c.zone = zone
24785	c.acceleratorType = acceleratorType
24786	return c
24787}
24788
24789// Fields allows partial responses to be retrieved. See
24790// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
24791// for more information.
24792func (c *AcceleratorTypesGetCall) Fields(s ...googleapi.Field) *AcceleratorTypesGetCall {
24793	c.urlParams_.Set("fields", googleapi.CombineFields(s))
24794	return c
24795}
24796
24797// IfNoneMatch sets the optional parameter which makes the operation
24798// fail if the object's ETag matches the given value. This is useful for
24799// getting updates only after the object has changed since the last
24800// request. Use googleapi.IsNotModified to check whether the response
24801// error from Do is the result of In-None-Match.
24802func (c *AcceleratorTypesGetCall) IfNoneMatch(entityTag string) *AcceleratorTypesGetCall {
24803	c.ifNoneMatch_ = entityTag
24804	return c
24805}
24806
24807// Context sets the context to be used in this call's Do method. Any
24808// pending HTTP request will be aborted if the provided context is
24809// canceled.
24810func (c *AcceleratorTypesGetCall) Context(ctx context.Context) *AcceleratorTypesGetCall {
24811	c.ctx_ = ctx
24812	return c
24813}
24814
24815// Header returns an http.Header that can be modified by the caller to
24816// add HTTP headers to the request.
24817func (c *AcceleratorTypesGetCall) Header() http.Header {
24818	if c.header_ == nil {
24819		c.header_ = make(http.Header)
24820	}
24821	return c.header_
24822}
24823
24824func (c *AcceleratorTypesGetCall) doRequest(alt string) (*http.Response, error) {
24825	reqHeaders := make(http.Header)
24826	for k, v := range c.header_ {
24827		reqHeaders[k] = v
24828	}
24829	reqHeaders.Set("User-Agent", c.s.userAgent())
24830	if c.ifNoneMatch_ != "" {
24831		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
24832	}
24833	var body io.Reader = nil
24834	c.urlParams_.Set("alt", alt)
24835	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/acceleratorTypes/{acceleratorType}")
24836	urls += "?" + c.urlParams_.Encode()
24837	req, _ := http.NewRequest("GET", urls, body)
24838	req.Header = reqHeaders
24839	googleapi.Expand(req.URL, map[string]string{
24840		"project":         c.project,
24841		"zone":            c.zone,
24842		"acceleratorType": c.acceleratorType,
24843	})
24844	return gensupport.SendRequest(c.ctx_, c.s.client, req)
24845}
24846
24847// Do executes the "compute.acceleratorTypes.get" call.
24848// Exactly one of *AcceleratorType or error will be non-nil. Any non-2xx
24849// status code is an error. Response headers are in either
24850// *AcceleratorType.ServerResponse.Header or (if a response was returned
24851// at all) in error.(*googleapi.Error).Header. Use
24852// googleapi.IsNotModified to check whether the returned error was
24853// because http.StatusNotModified was returned.
24854func (c *AcceleratorTypesGetCall) Do(opts ...googleapi.CallOption) (*AcceleratorType, error) {
24855	gensupport.SetOptions(c.urlParams_, opts...)
24856	res, err := c.doRequest("json")
24857	if res != nil && res.StatusCode == http.StatusNotModified {
24858		if res.Body != nil {
24859			res.Body.Close()
24860		}
24861		return nil, &googleapi.Error{
24862			Code:   res.StatusCode,
24863			Header: res.Header,
24864		}
24865	}
24866	if err != nil {
24867		return nil, err
24868	}
24869	defer googleapi.CloseBody(res)
24870	if err := googleapi.CheckResponse(res); err != nil {
24871		return nil, err
24872	}
24873	ret := &AcceleratorType{
24874		ServerResponse: googleapi.ServerResponse{
24875			Header:         res.Header,
24876			HTTPStatusCode: res.StatusCode,
24877		},
24878	}
24879	target := &ret
24880	if err := gensupport.DecodeResponse(target, res); err != nil {
24881		return nil, err
24882	}
24883	return ret, nil
24884	// {
24885	//   "description": "Returns the specified accelerator type. Gets a list of available accelerator types by making a list() request.",
24886	//   "httpMethod": "GET",
24887	//   "id": "compute.acceleratorTypes.get",
24888	//   "parameterOrder": [
24889	//     "project",
24890	//     "zone",
24891	//     "acceleratorType"
24892	//   ],
24893	//   "parameters": {
24894	//     "acceleratorType": {
24895	//       "description": "Name of the accelerator type to return.",
24896	//       "location": "path",
24897	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
24898	//       "required": true,
24899	//       "type": "string"
24900	//     },
24901	//     "project": {
24902	//       "description": "Project ID for this request.",
24903	//       "location": "path",
24904	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
24905	//       "required": true,
24906	//       "type": "string"
24907	//     },
24908	//     "zone": {
24909	//       "description": "The name of the zone for this request.",
24910	//       "location": "path",
24911	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
24912	//       "required": true,
24913	//       "type": "string"
24914	//     }
24915	//   },
24916	//   "path": "{project}/zones/{zone}/acceleratorTypes/{acceleratorType}",
24917	//   "response": {
24918	//     "$ref": "AcceleratorType"
24919	//   },
24920	//   "scopes": [
24921	//     "https://www.googleapis.com/auth/cloud-platform",
24922	//     "https://www.googleapis.com/auth/compute",
24923	//     "https://www.googleapis.com/auth/compute.readonly"
24924	//   ]
24925	// }
24926
24927}
24928
24929// method id "compute.acceleratorTypes.list":
24930
24931type AcceleratorTypesListCall struct {
24932	s            *Service
24933	project      string
24934	zone         string
24935	urlParams_   gensupport.URLParams
24936	ifNoneMatch_ string
24937	ctx_         context.Context
24938	header_      http.Header
24939}
24940
24941// List: Retrieves a list of accelerator types available to the
24942// specified project.
24943func (r *AcceleratorTypesService) List(project string, zone string) *AcceleratorTypesListCall {
24944	c := &AcceleratorTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
24945	c.project = project
24946	c.zone = zone
24947	return c
24948}
24949
24950// Filter sets the optional parameter "filter": A filter expression that
24951// filters resources listed in the response. The expression must specify
24952// the field name, a comparison operator, and the value that you want to
24953// use for filtering. The value must be a string, a number, or a
24954// boolean. The comparison operator must be either =, !=, >, or <.
24955//
24956// For example, if you are filtering Compute Engine instances, you can
24957// exclude instances named example-instance by specifying name !=
24958// example-instance.
24959//
24960// You can also filter nested fields. For example, you could specify
24961// scheduling.automaticRestart = false to include instances only if they
24962// are not scheduled for automatic restarts. You can use filtering on
24963// nested fields to filter based on resource labels.
24964//
24965// To filter on multiple expressions, provide each separate expression
24966// within parentheses. For example, (scheduling.automaticRestart = true)
24967// (cpuPlatform = "Intel Skylake"). By default, each expression is an
24968// AND expression. However, you can include AND and OR expressions
24969// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
24970// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
24971// true).
24972func (c *AcceleratorTypesListCall) Filter(filter string) *AcceleratorTypesListCall {
24973	c.urlParams_.Set("filter", filter)
24974	return c
24975}
24976
24977// MaxResults sets the optional parameter "maxResults": The maximum
24978// number of results per page that should be returned. If the number of
24979// available results is larger than maxResults, Compute Engine returns a
24980// nextPageToken that can be used to get the next page of results in
24981// subsequent list requests. Acceptable values are 0 to 500, inclusive.
24982// (Default: 500)
24983func (c *AcceleratorTypesListCall) MaxResults(maxResults int64) *AcceleratorTypesListCall {
24984	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
24985	return c
24986}
24987
24988// OrderBy sets the optional parameter "orderBy": Sorts list results by
24989// a certain order. By default, results are returned in alphanumerical
24990// order based on the resource name.
24991//
24992// You can also sort results in descending order based on the creation
24993// timestamp using orderBy="creationTimestamp desc". This sorts results
24994// based on the creationTimestamp field in reverse chronological order
24995// (newest result first). Use this to sort resources like operations so
24996// that the newest operation is returned first.
24997//
24998// Currently, only sorting by name or creationTimestamp desc is
24999// supported.
25000func (c *AcceleratorTypesListCall) OrderBy(orderBy string) *AcceleratorTypesListCall {
25001	c.urlParams_.Set("orderBy", orderBy)
25002	return c
25003}
25004
25005// PageToken sets the optional parameter "pageToken": Specifies a page
25006// token to use. Set pageToken to the nextPageToken returned by a
25007// previous list request to get the next page of results.
25008func (c *AcceleratorTypesListCall) PageToken(pageToken string) *AcceleratorTypesListCall {
25009	c.urlParams_.Set("pageToken", pageToken)
25010	return c
25011}
25012
25013// Fields allows partial responses to be retrieved. See
25014// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
25015// for more information.
25016func (c *AcceleratorTypesListCall) Fields(s ...googleapi.Field) *AcceleratorTypesListCall {
25017	c.urlParams_.Set("fields", googleapi.CombineFields(s))
25018	return c
25019}
25020
25021// IfNoneMatch sets the optional parameter which makes the operation
25022// fail if the object's ETag matches the given value. This is useful for
25023// getting updates only after the object has changed since the last
25024// request. Use googleapi.IsNotModified to check whether the response
25025// error from Do is the result of In-None-Match.
25026func (c *AcceleratorTypesListCall) IfNoneMatch(entityTag string) *AcceleratorTypesListCall {
25027	c.ifNoneMatch_ = entityTag
25028	return c
25029}
25030
25031// Context sets the context to be used in this call's Do method. Any
25032// pending HTTP request will be aborted if the provided context is
25033// canceled.
25034func (c *AcceleratorTypesListCall) Context(ctx context.Context) *AcceleratorTypesListCall {
25035	c.ctx_ = ctx
25036	return c
25037}
25038
25039// Header returns an http.Header that can be modified by the caller to
25040// add HTTP headers to the request.
25041func (c *AcceleratorTypesListCall) Header() http.Header {
25042	if c.header_ == nil {
25043		c.header_ = make(http.Header)
25044	}
25045	return c.header_
25046}
25047
25048func (c *AcceleratorTypesListCall) doRequest(alt string) (*http.Response, error) {
25049	reqHeaders := make(http.Header)
25050	for k, v := range c.header_ {
25051		reqHeaders[k] = v
25052	}
25053	reqHeaders.Set("User-Agent", c.s.userAgent())
25054	if c.ifNoneMatch_ != "" {
25055		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
25056	}
25057	var body io.Reader = nil
25058	c.urlParams_.Set("alt", alt)
25059	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/acceleratorTypes")
25060	urls += "?" + c.urlParams_.Encode()
25061	req, _ := http.NewRequest("GET", urls, body)
25062	req.Header = reqHeaders
25063	googleapi.Expand(req.URL, map[string]string{
25064		"project": c.project,
25065		"zone":    c.zone,
25066	})
25067	return gensupport.SendRequest(c.ctx_, c.s.client, req)
25068}
25069
25070// Do executes the "compute.acceleratorTypes.list" call.
25071// Exactly one of *AcceleratorTypeList or error will be non-nil. Any
25072// non-2xx status code is an error. Response headers are in either
25073// *AcceleratorTypeList.ServerResponse.Header or (if a response was
25074// returned at all) in error.(*googleapi.Error).Header. Use
25075// googleapi.IsNotModified to check whether the returned error was
25076// because http.StatusNotModified was returned.
25077func (c *AcceleratorTypesListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeList, error) {
25078	gensupport.SetOptions(c.urlParams_, opts...)
25079	res, err := c.doRequest("json")
25080	if res != nil && res.StatusCode == http.StatusNotModified {
25081		if res.Body != nil {
25082			res.Body.Close()
25083		}
25084		return nil, &googleapi.Error{
25085			Code:   res.StatusCode,
25086			Header: res.Header,
25087		}
25088	}
25089	if err != nil {
25090		return nil, err
25091	}
25092	defer googleapi.CloseBody(res)
25093	if err := googleapi.CheckResponse(res); err != nil {
25094		return nil, err
25095	}
25096	ret := &AcceleratorTypeList{
25097		ServerResponse: googleapi.ServerResponse{
25098			Header:         res.Header,
25099			HTTPStatusCode: res.StatusCode,
25100		},
25101	}
25102	target := &ret
25103	if err := gensupport.DecodeResponse(target, res); err != nil {
25104		return nil, err
25105	}
25106	return ret, nil
25107	// {
25108	//   "description": "Retrieves a list of accelerator types available to the specified project.",
25109	//   "httpMethod": "GET",
25110	//   "id": "compute.acceleratorTypes.list",
25111	//   "parameterOrder": [
25112	//     "project",
25113	//     "zone"
25114	//   ],
25115	//   "parameters": {
25116	//     "filter": {
25117	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
25118	//       "location": "query",
25119	//       "type": "string"
25120	//     },
25121	//     "maxResults": {
25122	//       "default": "500",
25123	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
25124	//       "format": "uint32",
25125	//       "location": "query",
25126	//       "minimum": "0",
25127	//       "type": "integer"
25128	//     },
25129	//     "orderBy": {
25130	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
25131	//       "location": "query",
25132	//       "type": "string"
25133	//     },
25134	//     "pageToken": {
25135	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
25136	//       "location": "query",
25137	//       "type": "string"
25138	//     },
25139	//     "project": {
25140	//       "description": "Project ID for this request.",
25141	//       "location": "path",
25142	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
25143	//       "required": true,
25144	//       "type": "string"
25145	//     },
25146	//     "zone": {
25147	//       "description": "The name of the zone for this request.",
25148	//       "location": "path",
25149	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
25150	//       "required": true,
25151	//       "type": "string"
25152	//     }
25153	//   },
25154	//   "path": "{project}/zones/{zone}/acceleratorTypes",
25155	//   "response": {
25156	//     "$ref": "AcceleratorTypeList"
25157	//   },
25158	//   "scopes": [
25159	//     "https://www.googleapis.com/auth/cloud-platform",
25160	//     "https://www.googleapis.com/auth/compute",
25161	//     "https://www.googleapis.com/auth/compute.readonly"
25162	//   ]
25163	// }
25164
25165}
25166
25167// Pages invokes f for each page of results.
25168// A non-nil error returned from f will halt the iteration.
25169// The provided context supersedes any context provided to the Context method.
25170func (c *AcceleratorTypesListCall) Pages(ctx context.Context, f func(*AcceleratorTypeList) error) error {
25171	c.ctx_ = ctx
25172	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
25173	for {
25174		x, err := c.Do()
25175		if err != nil {
25176			return err
25177		}
25178		if err := f(x); err != nil {
25179			return err
25180		}
25181		if x.NextPageToken == "" {
25182			return nil
25183		}
25184		c.PageToken(x.NextPageToken)
25185	}
25186}
25187
25188// method id "compute.addresses.aggregatedList":
25189
25190type AddressesAggregatedListCall struct {
25191	s            *Service
25192	project      string
25193	urlParams_   gensupport.URLParams
25194	ifNoneMatch_ string
25195	ctx_         context.Context
25196	header_      http.Header
25197}
25198
25199// AggregatedList: Retrieves an aggregated list of addresses.
25200// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/aggregatedList
25201func (r *AddressesService) AggregatedList(project string) *AddressesAggregatedListCall {
25202	c := &AddressesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
25203	c.project = project
25204	return c
25205}
25206
25207// Filter sets the optional parameter "filter": A filter expression that
25208// filters resources listed in the response. The expression must specify
25209// the field name, a comparison operator, and the value that you want to
25210// use for filtering. The value must be a string, a number, or a
25211// boolean. The comparison operator must be either =, !=, >, or <.
25212//
25213// For example, if you are filtering Compute Engine instances, you can
25214// exclude instances named example-instance by specifying name !=
25215// example-instance.
25216//
25217// You can also filter nested fields. For example, you could specify
25218// scheduling.automaticRestart = false to include instances only if they
25219// are not scheduled for automatic restarts. You can use filtering on
25220// nested fields to filter based on resource labels.
25221//
25222// To filter on multiple expressions, provide each separate expression
25223// within parentheses. For example, (scheduling.automaticRestart = true)
25224// (cpuPlatform = "Intel Skylake"). By default, each expression is an
25225// AND expression. However, you can include AND and OR expressions
25226// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
25227// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
25228// true).
25229func (c *AddressesAggregatedListCall) Filter(filter string) *AddressesAggregatedListCall {
25230	c.urlParams_.Set("filter", filter)
25231	return c
25232}
25233
25234// MaxResults sets the optional parameter "maxResults": The maximum
25235// number of results per page that should be returned. If the number of
25236// available results is larger than maxResults, Compute Engine returns a
25237// nextPageToken that can be used to get the next page of results in
25238// subsequent list requests. Acceptable values are 0 to 500, inclusive.
25239// (Default: 500)
25240func (c *AddressesAggregatedListCall) MaxResults(maxResults int64) *AddressesAggregatedListCall {
25241	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
25242	return c
25243}
25244
25245// OrderBy sets the optional parameter "orderBy": Sorts list results by
25246// a certain order. By default, results are returned in alphanumerical
25247// order based on the resource name.
25248//
25249// You can also sort results in descending order based on the creation
25250// timestamp using orderBy="creationTimestamp desc". This sorts results
25251// based on the creationTimestamp field in reverse chronological order
25252// (newest result first). Use this to sort resources like operations so
25253// that the newest operation is returned first.
25254//
25255// Currently, only sorting by name or creationTimestamp desc is
25256// supported.
25257func (c *AddressesAggregatedListCall) OrderBy(orderBy string) *AddressesAggregatedListCall {
25258	c.urlParams_.Set("orderBy", orderBy)
25259	return c
25260}
25261
25262// PageToken sets the optional parameter "pageToken": Specifies a page
25263// token to use. Set pageToken to the nextPageToken returned by a
25264// previous list request to get the next page of results.
25265func (c *AddressesAggregatedListCall) PageToken(pageToken string) *AddressesAggregatedListCall {
25266	c.urlParams_.Set("pageToken", pageToken)
25267	return c
25268}
25269
25270// Fields allows partial responses to be retrieved. See
25271// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
25272// for more information.
25273func (c *AddressesAggregatedListCall) Fields(s ...googleapi.Field) *AddressesAggregatedListCall {
25274	c.urlParams_.Set("fields", googleapi.CombineFields(s))
25275	return c
25276}
25277
25278// IfNoneMatch sets the optional parameter which makes the operation
25279// fail if the object's ETag matches the given value. This is useful for
25280// getting updates only after the object has changed since the last
25281// request. Use googleapi.IsNotModified to check whether the response
25282// error from Do is the result of In-None-Match.
25283func (c *AddressesAggregatedListCall) IfNoneMatch(entityTag string) *AddressesAggregatedListCall {
25284	c.ifNoneMatch_ = entityTag
25285	return c
25286}
25287
25288// Context sets the context to be used in this call's Do method. Any
25289// pending HTTP request will be aborted if the provided context is
25290// canceled.
25291func (c *AddressesAggregatedListCall) Context(ctx context.Context) *AddressesAggregatedListCall {
25292	c.ctx_ = ctx
25293	return c
25294}
25295
25296// Header returns an http.Header that can be modified by the caller to
25297// add HTTP headers to the request.
25298func (c *AddressesAggregatedListCall) Header() http.Header {
25299	if c.header_ == nil {
25300		c.header_ = make(http.Header)
25301	}
25302	return c.header_
25303}
25304
25305func (c *AddressesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
25306	reqHeaders := make(http.Header)
25307	for k, v := range c.header_ {
25308		reqHeaders[k] = v
25309	}
25310	reqHeaders.Set("User-Agent", c.s.userAgent())
25311	if c.ifNoneMatch_ != "" {
25312		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
25313	}
25314	var body io.Reader = nil
25315	c.urlParams_.Set("alt", alt)
25316	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/addresses")
25317	urls += "?" + c.urlParams_.Encode()
25318	req, _ := http.NewRequest("GET", urls, body)
25319	req.Header = reqHeaders
25320	googleapi.Expand(req.URL, map[string]string{
25321		"project": c.project,
25322	})
25323	return gensupport.SendRequest(c.ctx_, c.s.client, req)
25324}
25325
25326// Do executes the "compute.addresses.aggregatedList" call.
25327// Exactly one of *AddressAggregatedList or error will be non-nil. Any
25328// non-2xx status code is an error. Response headers are in either
25329// *AddressAggregatedList.ServerResponse.Header or (if a response was
25330// returned at all) in error.(*googleapi.Error).Header. Use
25331// googleapi.IsNotModified to check whether the returned error was
25332// because http.StatusNotModified was returned.
25333func (c *AddressesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AddressAggregatedList, error) {
25334	gensupport.SetOptions(c.urlParams_, opts...)
25335	res, err := c.doRequest("json")
25336	if res != nil && res.StatusCode == http.StatusNotModified {
25337		if res.Body != nil {
25338			res.Body.Close()
25339		}
25340		return nil, &googleapi.Error{
25341			Code:   res.StatusCode,
25342			Header: res.Header,
25343		}
25344	}
25345	if err != nil {
25346		return nil, err
25347	}
25348	defer googleapi.CloseBody(res)
25349	if err := googleapi.CheckResponse(res); err != nil {
25350		return nil, err
25351	}
25352	ret := &AddressAggregatedList{
25353		ServerResponse: googleapi.ServerResponse{
25354			Header:         res.Header,
25355			HTTPStatusCode: res.StatusCode,
25356		},
25357	}
25358	target := &ret
25359	if err := gensupport.DecodeResponse(target, res); err != nil {
25360		return nil, err
25361	}
25362	return ret, nil
25363	// {
25364	//   "description": "Retrieves an aggregated list of addresses.",
25365	//   "httpMethod": "GET",
25366	//   "id": "compute.addresses.aggregatedList",
25367	//   "parameterOrder": [
25368	//     "project"
25369	//   ],
25370	//   "parameters": {
25371	//     "filter": {
25372	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
25373	//       "location": "query",
25374	//       "type": "string"
25375	//     },
25376	//     "maxResults": {
25377	//       "default": "500",
25378	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
25379	//       "format": "uint32",
25380	//       "location": "query",
25381	//       "minimum": "0",
25382	//       "type": "integer"
25383	//     },
25384	//     "orderBy": {
25385	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
25386	//       "location": "query",
25387	//       "type": "string"
25388	//     },
25389	//     "pageToken": {
25390	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
25391	//       "location": "query",
25392	//       "type": "string"
25393	//     },
25394	//     "project": {
25395	//       "description": "Project ID for this request.",
25396	//       "location": "path",
25397	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
25398	//       "required": true,
25399	//       "type": "string"
25400	//     }
25401	//   },
25402	//   "path": "{project}/aggregated/addresses",
25403	//   "response": {
25404	//     "$ref": "AddressAggregatedList"
25405	//   },
25406	//   "scopes": [
25407	//     "https://www.googleapis.com/auth/cloud-platform",
25408	//     "https://www.googleapis.com/auth/compute",
25409	//     "https://www.googleapis.com/auth/compute.readonly"
25410	//   ]
25411	// }
25412
25413}
25414
25415// Pages invokes f for each page of results.
25416// A non-nil error returned from f will halt the iteration.
25417// The provided context supersedes any context provided to the Context method.
25418func (c *AddressesAggregatedListCall) Pages(ctx context.Context, f func(*AddressAggregatedList) error) error {
25419	c.ctx_ = ctx
25420	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
25421	for {
25422		x, err := c.Do()
25423		if err != nil {
25424			return err
25425		}
25426		if err := f(x); err != nil {
25427			return err
25428		}
25429		if x.NextPageToken == "" {
25430			return nil
25431		}
25432		c.PageToken(x.NextPageToken)
25433	}
25434}
25435
25436// method id "compute.addresses.delete":
25437
25438type AddressesDeleteCall struct {
25439	s          *Service
25440	project    string
25441	region     string
25442	address    string
25443	urlParams_ gensupport.URLParams
25444	ctx_       context.Context
25445	header_    http.Header
25446}
25447
25448// Delete: Deletes the specified address resource.
25449// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/delete
25450func (r *AddressesService) Delete(project string, region string, address string) *AddressesDeleteCall {
25451	c := &AddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
25452	c.project = project
25453	c.region = region
25454	c.address = address
25455	return c
25456}
25457
25458// RequestId sets the optional parameter "requestId": An optional
25459// request ID to identify requests. Specify a unique request ID so that
25460// if you must retry your request, the server will know to ignore the
25461// request if it has already been completed.
25462//
25463// For example, consider a situation where you make an initial request
25464// and the request times out. If you make the request again with the
25465// same request ID, the server can check if original operation with the
25466// same request ID was received, and if so, will ignore the second
25467// request. This prevents clients from accidentally creating duplicate
25468// commitments.
25469//
25470// The request ID must be a valid UUID with the exception that zero UUID
25471// is not supported (00000000-0000-0000-0000-000000000000).
25472func (c *AddressesDeleteCall) RequestId(requestId string) *AddressesDeleteCall {
25473	c.urlParams_.Set("requestId", requestId)
25474	return c
25475}
25476
25477// Fields allows partial responses to be retrieved. See
25478// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
25479// for more information.
25480func (c *AddressesDeleteCall) Fields(s ...googleapi.Field) *AddressesDeleteCall {
25481	c.urlParams_.Set("fields", googleapi.CombineFields(s))
25482	return c
25483}
25484
25485// Context sets the context to be used in this call's Do method. Any
25486// pending HTTP request will be aborted if the provided context is
25487// canceled.
25488func (c *AddressesDeleteCall) Context(ctx context.Context) *AddressesDeleteCall {
25489	c.ctx_ = ctx
25490	return c
25491}
25492
25493// Header returns an http.Header that can be modified by the caller to
25494// add HTTP headers to the request.
25495func (c *AddressesDeleteCall) Header() http.Header {
25496	if c.header_ == nil {
25497		c.header_ = make(http.Header)
25498	}
25499	return c.header_
25500}
25501
25502func (c *AddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
25503	reqHeaders := make(http.Header)
25504	for k, v := range c.header_ {
25505		reqHeaders[k] = v
25506	}
25507	reqHeaders.Set("User-Agent", c.s.userAgent())
25508	var body io.Reader = nil
25509	c.urlParams_.Set("alt", alt)
25510	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{address}")
25511	urls += "?" + c.urlParams_.Encode()
25512	req, _ := http.NewRequest("DELETE", urls, body)
25513	req.Header = reqHeaders
25514	googleapi.Expand(req.URL, map[string]string{
25515		"project": c.project,
25516		"region":  c.region,
25517		"address": c.address,
25518	})
25519	return gensupport.SendRequest(c.ctx_, c.s.client, req)
25520}
25521
25522// Do executes the "compute.addresses.delete" call.
25523// Exactly one of *Operation or error will be non-nil. Any non-2xx
25524// status code is an error. Response headers are in either
25525// *Operation.ServerResponse.Header or (if a response was returned at
25526// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
25527// to check whether the returned error was because
25528// http.StatusNotModified was returned.
25529func (c *AddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
25530	gensupport.SetOptions(c.urlParams_, opts...)
25531	res, err := c.doRequest("json")
25532	if res != nil && res.StatusCode == http.StatusNotModified {
25533		if res.Body != nil {
25534			res.Body.Close()
25535		}
25536		return nil, &googleapi.Error{
25537			Code:   res.StatusCode,
25538			Header: res.Header,
25539		}
25540	}
25541	if err != nil {
25542		return nil, err
25543	}
25544	defer googleapi.CloseBody(res)
25545	if err := googleapi.CheckResponse(res); err != nil {
25546		return nil, err
25547	}
25548	ret := &Operation{
25549		ServerResponse: googleapi.ServerResponse{
25550			Header:         res.Header,
25551			HTTPStatusCode: res.StatusCode,
25552		},
25553	}
25554	target := &ret
25555	if err := gensupport.DecodeResponse(target, res); err != nil {
25556		return nil, err
25557	}
25558	return ret, nil
25559	// {
25560	//   "description": "Deletes the specified address resource.",
25561	//   "httpMethod": "DELETE",
25562	//   "id": "compute.addresses.delete",
25563	//   "parameterOrder": [
25564	//     "project",
25565	//     "region",
25566	//     "address"
25567	//   ],
25568	//   "parameters": {
25569	//     "address": {
25570	//       "description": "Name of the address resource to delete.",
25571	//       "location": "path",
25572	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
25573	//       "required": true,
25574	//       "type": "string"
25575	//     },
25576	//     "project": {
25577	//       "description": "Project ID for this request.",
25578	//       "location": "path",
25579	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
25580	//       "required": true,
25581	//       "type": "string"
25582	//     },
25583	//     "region": {
25584	//       "description": "Name of the region for this request.",
25585	//       "location": "path",
25586	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
25587	//       "required": true,
25588	//       "type": "string"
25589	//     },
25590	//     "requestId": {
25591	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
25592	//       "location": "query",
25593	//       "type": "string"
25594	//     }
25595	//   },
25596	//   "path": "{project}/regions/{region}/addresses/{address}",
25597	//   "response": {
25598	//     "$ref": "Operation"
25599	//   },
25600	//   "scopes": [
25601	//     "https://www.googleapis.com/auth/cloud-platform",
25602	//     "https://www.googleapis.com/auth/compute"
25603	//   ]
25604	// }
25605
25606}
25607
25608// method id "compute.addresses.get":
25609
25610type AddressesGetCall struct {
25611	s            *Service
25612	project      string
25613	region       string
25614	address      string
25615	urlParams_   gensupport.URLParams
25616	ifNoneMatch_ string
25617	ctx_         context.Context
25618	header_      http.Header
25619}
25620
25621// Get: Returns the specified address resource.
25622// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/get
25623func (r *AddressesService) Get(project string, region string, address string) *AddressesGetCall {
25624	c := &AddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
25625	c.project = project
25626	c.region = region
25627	c.address = address
25628	return c
25629}
25630
25631// Fields allows partial responses to be retrieved. See
25632// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
25633// for more information.
25634func (c *AddressesGetCall) Fields(s ...googleapi.Field) *AddressesGetCall {
25635	c.urlParams_.Set("fields", googleapi.CombineFields(s))
25636	return c
25637}
25638
25639// IfNoneMatch sets the optional parameter which makes the operation
25640// fail if the object's ETag matches the given value. This is useful for
25641// getting updates only after the object has changed since the last
25642// request. Use googleapi.IsNotModified to check whether the response
25643// error from Do is the result of In-None-Match.
25644func (c *AddressesGetCall) IfNoneMatch(entityTag string) *AddressesGetCall {
25645	c.ifNoneMatch_ = entityTag
25646	return c
25647}
25648
25649// Context sets the context to be used in this call's Do method. Any
25650// pending HTTP request will be aborted if the provided context is
25651// canceled.
25652func (c *AddressesGetCall) Context(ctx context.Context) *AddressesGetCall {
25653	c.ctx_ = ctx
25654	return c
25655}
25656
25657// Header returns an http.Header that can be modified by the caller to
25658// add HTTP headers to the request.
25659func (c *AddressesGetCall) Header() http.Header {
25660	if c.header_ == nil {
25661		c.header_ = make(http.Header)
25662	}
25663	return c.header_
25664}
25665
25666func (c *AddressesGetCall) doRequest(alt string) (*http.Response, error) {
25667	reqHeaders := make(http.Header)
25668	for k, v := range c.header_ {
25669		reqHeaders[k] = v
25670	}
25671	reqHeaders.Set("User-Agent", c.s.userAgent())
25672	if c.ifNoneMatch_ != "" {
25673		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
25674	}
25675	var body io.Reader = nil
25676	c.urlParams_.Set("alt", alt)
25677	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{address}")
25678	urls += "?" + c.urlParams_.Encode()
25679	req, _ := http.NewRequest("GET", urls, body)
25680	req.Header = reqHeaders
25681	googleapi.Expand(req.URL, map[string]string{
25682		"project": c.project,
25683		"region":  c.region,
25684		"address": c.address,
25685	})
25686	return gensupport.SendRequest(c.ctx_, c.s.client, req)
25687}
25688
25689// Do executes the "compute.addresses.get" call.
25690// Exactly one of *Address or error will be non-nil. Any non-2xx status
25691// code is an error. Response headers are in either
25692// *Address.ServerResponse.Header or (if a response was returned at all)
25693// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
25694// check whether the returned error was because http.StatusNotModified
25695// was returned.
25696func (c *AddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
25697	gensupport.SetOptions(c.urlParams_, opts...)
25698	res, err := c.doRequest("json")
25699	if res != nil && res.StatusCode == http.StatusNotModified {
25700		if res.Body != nil {
25701			res.Body.Close()
25702		}
25703		return nil, &googleapi.Error{
25704			Code:   res.StatusCode,
25705			Header: res.Header,
25706		}
25707	}
25708	if err != nil {
25709		return nil, err
25710	}
25711	defer googleapi.CloseBody(res)
25712	if err := googleapi.CheckResponse(res); err != nil {
25713		return nil, err
25714	}
25715	ret := &Address{
25716		ServerResponse: googleapi.ServerResponse{
25717			Header:         res.Header,
25718			HTTPStatusCode: res.StatusCode,
25719		},
25720	}
25721	target := &ret
25722	if err := gensupport.DecodeResponse(target, res); err != nil {
25723		return nil, err
25724	}
25725	return ret, nil
25726	// {
25727	//   "description": "Returns the specified address resource.",
25728	//   "httpMethod": "GET",
25729	//   "id": "compute.addresses.get",
25730	//   "parameterOrder": [
25731	//     "project",
25732	//     "region",
25733	//     "address"
25734	//   ],
25735	//   "parameters": {
25736	//     "address": {
25737	//       "description": "Name of the address resource to return.",
25738	//       "location": "path",
25739	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
25740	//       "required": true,
25741	//       "type": "string"
25742	//     },
25743	//     "project": {
25744	//       "description": "Project ID for this request.",
25745	//       "location": "path",
25746	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
25747	//       "required": true,
25748	//       "type": "string"
25749	//     },
25750	//     "region": {
25751	//       "description": "Name of the region for this request.",
25752	//       "location": "path",
25753	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
25754	//       "required": true,
25755	//       "type": "string"
25756	//     }
25757	//   },
25758	//   "path": "{project}/regions/{region}/addresses/{address}",
25759	//   "response": {
25760	//     "$ref": "Address"
25761	//   },
25762	//   "scopes": [
25763	//     "https://www.googleapis.com/auth/cloud-platform",
25764	//     "https://www.googleapis.com/auth/compute",
25765	//     "https://www.googleapis.com/auth/compute.readonly"
25766	//   ]
25767	// }
25768
25769}
25770
25771// method id "compute.addresses.insert":
25772
25773type AddressesInsertCall struct {
25774	s          *Service
25775	project    string
25776	region     string
25777	address    *Address
25778	urlParams_ gensupport.URLParams
25779	ctx_       context.Context
25780	header_    http.Header
25781}
25782
25783// Insert: Creates an address resource in the specified project using
25784// the data included in the request.
25785// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/insert
25786func (r *AddressesService) Insert(project string, region string, address *Address) *AddressesInsertCall {
25787	c := &AddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
25788	c.project = project
25789	c.region = region
25790	c.address = address
25791	return c
25792}
25793
25794// RequestId sets the optional parameter "requestId": An optional
25795// request ID to identify requests. Specify a unique request ID so that
25796// if you must retry your request, the server will know to ignore the
25797// request if it has already been completed.
25798//
25799// For example, consider a situation where you make an initial request
25800// and the request times out. If you make the request again with the
25801// same request ID, the server can check if original operation with the
25802// same request ID was received, and if so, will ignore the second
25803// request. This prevents clients from accidentally creating duplicate
25804// commitments.
25805//
25806// The request ID must be a valid UUID with the exception that zero UUID
25807// is not supported (00000000-0000-0000-0000-000000000000).
25808func (c *AddressesInsertCall) RequestId(requestId string) *AddressesInsertCall {
25809	c.urlParams_.Set("requestId", requestId)
25810	return c
25811}
25812
25813// Fields allows partial responses to be retrieved. See
25814// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
25815// for more information.
25816func (c *AddressesInsertCall) Fields(s ...googleapi.Field) *AddressesInsertCall {
25817	c.urlParams_.Set("fields", googleapi.CombineFields(s))
25818	return c
25819}
25820
25821// Context sets the context to be used in this call's Do method. Any
25822// pending HTTP request will be aborted if the provided context is
25823// canceled.
25824func (c *AddressesInsertCall) Context(ctx context.Context) *AddressesInsertCall {
25825	c.ctx_ = ctx
25826	return c
25827}
25828
25829// Header returns an http.Header that can be modified by the caller to
25830// add HTTP headers to the request.
25831func (c *AddressesInsertCall) Header() http.Header {
25832	if c.header_ == nil {
25833		c.header_ = make(http.Header)
25834	}
25835	return c.header_
25836}
25837
25838func (c *AddressesInsertCall) doRequest(alt string) (*http.Response, error) {
25839	reqHeaders := make(http.Header)
25840	for k, v := range c.header_ {
25841		reqHeaders[k] = v
25842	}
25843	reqHeaders.Set("User-Agent", c.s.userAgent())
25844	var body io.Reader = nil
25845	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
25846	if err != nil {
25847		return nil, err
25848	}
25849	reqHeaders.Set("Content-Type", "application/json")
25850	c.urlParams_.Set("alt", alt)
25851	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses")
25852	urls += "?" + c.urlParams_.Encode()
25853	req, _ := http.NewRequest("POST", urls, body)
25854	req.Header = reqHeaders
25855	googleapi.Expand(req.URL, map[string]string{
25856		"project": c.project,
25857		"region":  c.region,
25858	})
25859	return gensupport.SendRequest(c.ctx_, c.s.client, req)
25860}
25861
25862// Do executes the "compute.addresses.insert" call.
25863// Exactly one of *Operation or error will be non-nil. Any non-2xx
25864// status code is an error. Response headers are in either
25865// *Operation.ServerResponse.Header or (if a response was returned at
25866// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
25867// to check whether the returned error was because
25868// http.StatusNotModified was returned.
25869func (c *AddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
25870	gensupport.SetOptions(c.urlParams_, opts...)
25871	res, err := c.doRequest("json")
25872	if res != nil && res.StatusCode == http.StatusNotModified {
25873		if res.Body != nil {
25874			res.Body.Close()
25875		}
25876		return nil, &googleapi.Error{
25877			Code:   res.StatusCode,
25878			Header: res.Header,
25879		}
25880	}
25881	if err != nil {
25882		return nil, err
25883	}
25884	defer googleapi.CloseBody(res)
25885	if err := googleapi.CheckResponse(res); err != nil {
25886		return nil, err
25887	}
25888	ret := &Operation{
25889		ServerResponse: googleapi.ServerResponse{
25890			Header:         res.Header,
25891			HTTPStatusCode: res.StatusCode,
25892		},
25893	}
25894	target := &ret
25895	if err := gensupport.DecodeResponse(target, res); err != nil {
25896		return nil, err
25897	}
25898	return ret, nil
25899	// {
25900	//   "description": "Creates an address resource in the specified project using the data included in the request.",
25901	//   "httpMethod": "POST",
25902	//   "id": "compute.addresses.insert",
25903	//   "parameterOrder": [
25904	//     "project",
25905	//     "region"
25906	//   ],
25907	//   "parameters": {
25908	//     "project": {
25909	//       "description": "Project ID for this request.",
25910	//       "location": "path",
25911	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
25912	//       "required": true,
25913	//       "type": "string"
25914	//     },
25915	//     "region": {
25916	//       "description": "Name of the region for this request.",
25917	//       "location": "path",
25918	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
25919	//       "required": true,
25920	//       "type": "string"
25921	//     },
25922	//     "requestId": {
25923	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
25924	//       "location": "query",
25925	//       "type": "string"
25926	//     }
25927	//   },
25928	//   "path": "{project}/regions/{region}/addresses",
25929	//   "request": {
25930	//     "$ref": "Address"
25931	//   },
25932	//   "response": {
25933	//     "$ref": "Operation"
25934	//   },
25935	//   "scopes": [
25936	//     "https://www.googleapis.com/auth/cloud-platform",
25937	//     "https://www.googleapis.com/auth/compute"
25938	//   ]
25939	// }
25940
25941}
25942
25943// method id "compute.addresses.list":
25944
25945type AddressesListCall struct {
25946	s            *Service
25947	project      string
25948	region       string
25949	urlParams_   gensupport.URLParams
25950	ifNoneMatch_ string
25951	ctx_         context.Context
25952	header_      http.Header
25953}
25954
25955// List: Retrieves a list of addresses contained within the specified
25956// region.
25957// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/list
25958func (r *AddressesService) List(project string, region string) *AddressesListCall {
25959	c := &AddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
25960	c.project = project
25961	c.region = region
25962	return c
25963}
25964
25965// Filter sets the optional parameter "filter": A filter expression that
25966// filters resources listed in the response. The expression must specify
25967// the field name, a comparison operator, and the value that you want to
25968// use for filtering. The value must be a string, a number, or a
25969// boolean. The comparison operator must be either =, !=, >, or <.
25970//
25971// For example, if you are filtering Compute Engine instances, you can
25972// exclude instances named example-instance by specifying name !=
25973// example-instance.
25974//
25975// You can also filter nested fields. For example, you could specify
25976// scheduling.automaticRestart = false to include instances only if they
25977// are not scheduled for automatic restarts. You can use filtering on
25978// nested fields to filter based on resource labels.
25979//
25980// To filter on multiple expressions, provide each separate expression
25981// within parentheses. For example, (scheduling.automaticRestart = true)
25982// (cpuPlatform = "Intel Skylake"). By default, each expression is an
25983// AND expression. However, you can include AND and OR expressions
25984// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
25985// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
25986// true).
25987func (c *AddressesListCall) Filter(filter string) *AddressesListCall {
25988	c.urlParams_.Set("filter", filter)
25989	return c
25990}
25991
25992// MaxResults sets the optional parameter "maxResults": The maximum
25993// number of results per page that should be returned. If the number of
25994// available results is larger than maxResults, Compute Engine returns a
25995// nextPageToken that can be used to get the next page of results in
25996// subsequent list requests. Acceptable values are 0 to 500, inclusive.
25997// (Default: 500)
25998func (c *AddressesListCall) MaxResults(maxResults int64) *AddressesListCall {
25999	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
26000	return c
26001}
26002
26003// OrderBy sets the optional parameter "orderBy": Sorts list results by
26004// a certain order. By default, results are returned in alphanumerical
26005// order based on the resource name.
26006//
26007// You can also sort results in descending order based on the creation
26008// timestamp using orderBy="creationTimestamp desc". This sorts results
26009// based on the creationTimestamp field in reverse chronological order
26010// (newest result first). Use this to sort resources like operations so
26011// that the newest operation is returned first.
26012//
26013// Currently, only sorting by name or creationTimestamp desc is
26014// supported.
26015func (c *AddressesListCall) OrderBy(orderBy string) *AddressesListCall {
26016	c.urlParams_.Set("orderBy", orderBy)
26017	return c
26018}
26019
26020// PageToken sets the optional parameter "pageToken": Specifies a page
26021// token to use. Set pageToken to the nextPageToken returned by a
26022// previous list request to get the next page of results.
26023func (c *AddressesListCall) PageToken(pageToken string) *AddressesListCall {
26024	c.urlParams_.Set("pageToken", pageToken)
26025	return c
26026}
26027
26028// Fields allows partial responses to be retrieved. See
26029// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26030// for more information.
26031func (c *AddressesListCall) Fields(s ...googleapi.Field) *AddressesListCall {
26032	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26033	return c
26034}
26035
26036// IfNoneMatch sets the optional parameter which makes the operation
26037// fail if the object's ETag matches the given value. This is useful for
26038// getting updates only after the object has changed since the last
26039// request. Use googleapi.IsNotModified to check whether the response
26040// error from Do is the result of In-None-Match.
26041func (c *AddressesListCall) IfNoneMatch(entityTag string) *AddressesListCall {
26042	c.ifNoneMatch_ = entityTag
26043	return c
26044}
26045
26046// Context sets the context to be used in this call's Do method. Any
26047// pending HTTP request will be aborted if the provided context is
26048// canceled.
26049func (c *AddressesListCall) Context(ctx context.Context) *AddressesListCall {
26050	c.ctx_ = ctx
26051	return c
26052}
26053
26054// Header returns an http.Header that can be modified by the caller to
26055// add HTTP headers to the request.
26056func (c *AddressesListCall) Header() http.Header {
26057	if c.header_ == nil {
26058		c.header_ = make(http.Header)
26059	}
26060	return c.header_
26061}
26062
26063func (c *AddressesListCall) doRequest(alt string) (*http.Response, error) {
26064	reqHeaders := make(http.Header)
26065	for k, v := range c.header_ {
26066		reqHeaders[k] = v
26067	}
26068	reqHeaders.Set("User-Agent", c.s.userAgent())
26069	if c.ifNoneMatch_ != "" {
26070		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
26071	}
26072	var body io.Reader = nil
26073	c.urlParams_.Set("alt", alt)
26074	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses")
26075	urls += "?" + c.urlParams_.Encode()
26076	req, _ := http.NewRequest("GET", urls, body)
26077	req.Header = reqHeaders
26078	googleapi.Expand(req.URL, map[string]string{
26079		"project": c.project,
26080		"region":  c.region,
26081	})
26082	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26083}
26084
26085// Do executes the "compute.addresses.list" call.
26086// Exactly one of *AddressList or error will be non-nil. Any non-2xx
26087// status code is an error. Response headers are in either
26088// *AddressList.ServerResponse.Header or (if a response was returned at
26089// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
26090// to check whether the returned error was because
26091// http.StatusNotModified was returned.
26092func (c *AddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
26093	gensupport.SetOptions(c.urlParams_, opts...)
26094	res, err := c.doRequest("json")
26095	if res != nil && res.StatusCode == http.StatusNotModified {
26096		if res.Body != nil {
26097			res.Body.Close()
26098		}
26099		return nil, &googleapi.Error{
26100			Code:   res.StatusCode,
26101			Header: res.Header,
26102		}
26103	}
26104	if err != nil {
26105		return nil, err
26106	}
26107	defer googleapi.CloseBody(res)
26108	if err := googleapi.CheckResponse(res); err != nil {
26109		return nil, err
26110	}
26111	ret := &AddressList{
26112		ServerResponse: googleapi.ServerResponse{
26113			Header:         res.Header,
26114			HTTPStatusCode: res.StatusCode,
26115		},
26116	}
26117	target := &ret
26118	if err := gensupport.DecodeResponse(target, res); err != nil {
26119		return nil, err
26120	}
26121	return ret, nil
26122	// {
26123	//   "description": "Retrieves a list of addresses contained within the specified region.",
26124	//   "httpMethod": "GET",
26125	//   "id": "compute.addresses.list",
26126	//   "parameterOrder": [
26127	//     "project",
26128	//     "region"
26129	//   ],
26130	//   "parameters": {
26131	//     "filter": {
26132	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
26133	//       "location": "query",
26134	//       "type": "string"
26135	//     },
26136	//     "maxResults": {
26137	//       "default": "500",
26138	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
26139	//       "format": "uint32",
26140	//       "location": "query",
26141	//       "minimum": "0",
26142	//       "type": "integer"
26143	//     },
26144	//     "orderBy": {
26145	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
26146	//       "location": "query",
26147	//       "type": "string"
26148	//     },
26149	//     "pageToken": {
26150	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
26151	//       "location": "query",
26152	//       "type": "string"
26153	//     },
26154	//     "project": {
26155	//       "description": "Project ID for this request.",
26156	//       "location": "path",
26157	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
26158	//       "required": true,
26159	//       "type": "string"
26160	//     },
26161	//     "region": {
26162	//       "description": "Name of the region for this request.",
26163	//       "location": "path",
26164	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
26165	//       "required": true,
26166	//       "type": "string"
26167	//     }
26168	//   },
26169	//   "path": "{project}/regions/{region}/addresses",
26170	//   "response": {
26171	//     "$ref": "AddressList"
26172	//   },
26173	//   "scopes": [
26174	//     "https://www.googleapis.com/auth/cloud-platform",
26175	//     "https://www.googleapis.com/auth/compute",
26176	//     "https://www.googleapis.com/auth/compute.readonly"
26177	//   ]
26178	// }
26179
26180}
26181
26182// Pages invokes f for each page of results.
26183// A non-nil error returned from f will halt the iteration.
26184// The provided context supersedes any context provided to the Context method.
26185func (c *AddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
26186	c.ctx_ = ctx
26187	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
26188	for {
26189		x, err := c.Do()
26190		if err != nil {
26191			return err
26192		}
26193		if err := f(x); err != nil {
26194			return err
26195		}
26196		if x.NextPageToken == "" {
26197			return nil
26198		}
26199		c.PageToken(x.NextPageToken)
26200	}
26201}
26202
26203// method id "compute.autoscalers.aggregatedList":
26204
26205type AutoscalersAggregatedListCall struct {
26206	s            *Service
26207	project      string
26208	urlParams_   gensupport.URLParams
26209	ifNoneMatch_ string
26210	ctx_         context.Context
26211	header_      http.Header
26212}
26213
26214// AggregatedList: Retrieves an aggregated list of autoscalers.
26215func (r *AutoscalersService) AggregatedList(project string) *AutoscalersAggregatedListCall {
26216	c := &AutoscalersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26217	c.project = project
26218	return c
26219}
26220
26221// Filter sets the optional parameter "filter": A filter expression that
26222// filters resources listed in the response. The expression must specify
26223// the field name, a comparison operator, and the value that you want to
26224// use for filtering. The value must be a string, a number, or a
26225// boolean. The comparison operator must be either =, !=, >, or <.
26226//
26227// For example, if you are filtering Compute Engine instances, you can
26228// exclude instances named example-instance by specifying name !=
26229// example-instance.
26230//
26231// You can also filter nested fields. For example, you could specify
26232// scheduling.automaticRestart = false to include instances only if they
26233// are not scheduled for automatic restarts. You can use filtering on
26234// nested fields to filter based on resource labels.
26235//
26236// To filter on multiple expressions, provide each separate expression
26237// within parentheses. For example, (scheduling.automaticRestart = true)
26238// (cpuPlatform = "Intel Skylake"). By default, each expression is an
26239// AND expression. However, you can include AND and OR expressions
26240// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
26241// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
26242// true).
26243func (c *AutoscalersAggregatedListCall) Filter(filter string) *AutoscalersAggregatedListCall {
26244	c.urlParams_.Set("filter", filter)
26245	return c
26246}
26247
26248// MaxResults sets the optional parameter "maxResults": The maximum
26249// number of results per page that should be returned. If the number of
26250// available results is larger than maxResults, Compute Engine returns a
26251// nextPageToken that can be used to get the next page of results in
26252// subsequent list requests. Acceptable values are 0 to 500, inclusive.
26253// (Default: 500)
26254func (c *AutoscalersAggregatedListCall) MaxResults(maxResults int64) *AutoscalersAggregatedListCall {
26255	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
26256	return c
26257}
26258
26259// OrderBy sets the optional parameter "orderBy": Sorts list results by
26260// a certain order. By default, results are returned in alphanumerical
26261// order based on the resource name.
26262//
26263// You can also sort results in descending order based on the creation
26264// timestamp using orderBy="creationTimestamp desc". This sorts results
26265// based on the creationTimestamp field in reverse chronological order
26266// (newest result first). Use this to sort resources like operations so
26267// that the newest operation is returned first.
26268//
26269// Currently, only sorting by name or creationTimestamp desc is
26270// supported.
26271func (c *AutoscalersAggregatedListCall) OrderBy(orderBy string) *AutoscalersAggregatedListCall {
26272	c.urlParams_.Set("orderBy", orderBy)
26273	return c
26274}
26275
26276// PageToken sets the optional parameter "pageToken": Specifies a page
26277// token to use. Set pageToken to the nextPageToken returned by a
26278// previous list request to get the next page of results.
26279func (c *AutoscalersAggregatedListCall) PageToken(pageToken string) *AutoscalersAggregatedListCall {
26280	c.urlParams_.Set("pageToken", pageToken)
26281	return c
26282}
26283
26284// Fields allows partial responses to be retrieved. See
26285// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26286// for more information.
26287func (c *AutoscalersAggregatedListCall) Fields(s ...googleapi.Field) *AutoscalersAggregatedListCall {
26288	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26289	return c
26290}
26291
26292// IfNoneMatch sets the optional parameter which makes the operation
26293// fail if the object's ETag matches the given value. This is useful for
26294// getting updates only after the object has changed since the last
26295// request. Use googleapi.IsNotModified to check whether the response
26296// error from Do is the result of In-None-Match.
26297func (c *AutoscalersAggregatedListCall) IfNoneMatch(entityTag string) *AutoscalersAggregatedListCall {
26298	c.ifNoneMatch_ = entityTag
26299	return c
26300}
26301
26302// Context sets the context to be used in this call's Do method. Any
26303// pending HTTP request will be aborted if the provided context is
26304// canceled.
26305func (c *AutoscalersAggregatedListCall) Context(ctx context.Context) *AutoscalersAggregatedListCall {
26306	c.ctx_ = ctx
26307	return c
26308}
26309
26310// Header returns an http.Header that can be modified by the caller to
26311// add HTTP headers to the request.
26312func (c *AutoscalersAggregatedListCall) Header() http.Header {
26313	if c.header_ == nil {
26314		c.header_ = make(http.Header)
26315	}
26316	return c.header_
26317}
26318
26319func (c *AutoscalersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
26320	reqHeaders := make(http.Header)
26321	for k, v := range c.header_ {
26322		reqHeaders[k] = v
26323	}
26324	reqHeaders.Set("User-Agent", c.s.userAgent())
26325	if c.ifNoneMatch_ != "" {
26326		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
26327	}
26328	var body io.Reader = nil
26329	c.urlParams_.Set("alt", alt)
26330	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/autoscalers")
26331	urls += "?" + c.urlParams_.Encode()
26332	req, _ := http.NewRequest("GET", urls, body)
26333	req.Header = reqHeaders
26334	googleapi.Expand(req.URL, map[string]string{
26335		"project": c.project,
26336	})
26337	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26338}
26339
26340// Do executes the "compute.autoscalers.aggregatedList" call.
26341// Exactly one of *AutoscalerAggregatedList or error will be non-nil.
26342// Any non-2xx status code is an error. Response headers are in either
26343// *AutoscalerAggregatedList.ServerResponse.Header or (if a response was
26344// returned at all) in error.(*googleapi.Error).Header. Use
26345// googleapi.IsNotModified to check whether the returned error was
26346// because http.StatusNotModified was returned.
26347func (c *AutoscalersAggregatedListCall) Do(opts ...googleapi.CallOption) (*AutoscalerAggregatedList, error) {
26348	gensupport.SetOptions(c.urlParams_, opts...)
26349	res, err := c.doRequest("json")
26350	if res != nil && res.StatusCode == http.StatusNotModified {
26351		if res.Body != nil {
26352			res.Body.Close()
26353		}
26354		return nil, &googleapi.Error{
26355			Code:   res.StatusCode,
26356			Header: res.Header,
26357		}
26358	}
26359	if err != nil {
26360		return nil, err
26361	}
26362	defer googleapi.CloseBody(res)
26363	if err := googleapi.CheckResponse(res); err != nil {
26364		return nil, err
26365	}
26366	ret := &AutoscalerAggregatedList{
26367		ServerResponse: googleapi.ServerResponse{
26368			Header:         res.Header,
26369			HTTPStatusCode: res.StatusCode,
26370		},
26371	}
26372	target := &ret
26373	if err := gensupport.DecodeResponse(target, res); err != nil {
26374		return nil, err
26375	}
26376	return ret, nil
26377	// {
26378	//   "description": "Retrieves an aggregated list of autoscalers.",
26379	//   "httpMethod": "GET",
26380	//   "id": "compute.autoscalers.aggregatedList",
26381	//   "parameterOrder": [
26382	//     "project"
26383	//   ],
26384	//   "parameters": {
26385	//     "filter": {
26386	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
26387	//       "location": "query",
26388	//       "type": "string"
26389	//     },
26390	//     "maxResults": {
26391	//       "default": "500",
26392	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
26393	//       "format": "uint32",
26394	//       "location": "query",
26395	//       "minimum": "0",
26396	//       "type": "integer"
26397	//     },
26398	//     "orderBy": {
26399	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
26400	//       "location": "query",
26401	//       "type": "string"
26402	//     },
26403	//     "pageToken": {
26404	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
26405	//       "location": "query",
26406	//       "type": "string"
26407	//     },
26408	//     "project": {
26409	//       "description": "Project ID for this request.",
26410	//       "location": "path",
26411	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
26412	//       "required": true,
26413	//       "type": "string"
26414	//     }
26415	//   },
26416	//   "path": "{project}/aggregated/autoscalers",
26417	//   "response": {
26418	//     "$ref": "AutoscalerAggregatedList"
26419	//   },
26420	//   "scopes": [
26421	//     "https://www.googleapis.com/auth/cloud-platform",
26422	//     "https://www.googleapis.com/auth/compute",
26423	//     "https://www.googleapis.com/auth/compute.readonly"
26424	//   ]
26425	// }
26426
26427}
26428
26429// Pages invokes f for each page of results.
26430// A non-nil error returned from f will halt the iteration.
26431// The provided context supersedes any context provided to the Context method.
26432func (c *AutoscalersAggregatedListCall) Pages(ctx context.Context, f func(*AutoscalerAggregatedList) error) error {
26433	c.ctx_ = ctx
26434	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
26435	for {
26436		x, err := c.Do()
26437		if err != nil {
26438			return err
26439		}
26440		if err := f(x); err != nil {
26441			return err
26442		}
26443		if x.NextPageToken == "" {
26444			return nil
26445		}
26446		c.PageToken(x.NextPageToken)
26447	}
26448}
26449
26450// method id "compute.autoscalers.delete":
26451
26452type AutoscalersDeleteCall struct {
26453	s          *Service
26454	project    string
26455	zone       string
26456	autoscaler string
26457	urlParams_ gensupport.URLParams
26458	ctx_       context.Context
26459	header_    http.Header
26460}
26461
26462// Delete: Deletes the specified autoscaler.
26463func (r *AutoscalersService) Delete(project string, zone string, autoscaler string) *AutoscalersDeleteCall {
26464	c := &AutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26465	c.project = project
26466	c.zone = zone
26467	c.autoscaler = autoscaler
26468	return c
26469}
26470
26471// RequestId sets the optional parameter "requestId": An optional
26472// request ID to identify requests. Specify a unique request ID so that
26473// if you must retry your request, the server will know to ignore the
26474// request if it has already been completed.
26475//
26476// For example, consider a situation where you make an initial request
26477// and the request times out. If you make the request again with the
26478// same request ID, the server can check if original operation with the
26479// same request ID was received, and if so, will ignore the second
26480// request. This prevents clients from accidentally creating duplicate
26481// commitments.
26482//
26483// The request ID must be a valid UUID with the exception that zero UUID
26484// is not supported (00000000-0000-0000-0000-000000000000).
26485func (c *AutoscalersDeleteCall) RequestId(requestId string) *AutoscalersDeleteCall {
26486	c.urlParams_.Set("requestId", requestId)
26487	return c
26488}
26489
26490// Fields allows partial responses to be retrieved. See
26491// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26492// for more information.
26493func (c *AutoscalersDeleteCall) Fields(s ...googleapi.Field) *AutoscalersDeleteCall {
26494	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26495	return c
26496}
26497
26498// Context sets the context to be used in this call's Do method. Any
26499// pending HTTP request will be aborted if the provided context is
26500// canceled.
26501func (c *AutoscalersDeleteCall) Context(ctx context.Context) *AutoscalersDeleteCall {
26502	c.ctx_ = ctx
26503	return c
26504}
26505
26506// Header returns an http.Header that can be modified by the caller to
26507// add HTTP headers to the request.
26508func (c *AutoscalersDeleteCall) Header() http.Header {
26509	if c.header_ == nil {
26510		c.header_ = make(http.Header)
26511	}
26512	return c.header_
26513}
26514
26515func (c *AutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
26516	reqHeaders := make(http.Header)
26517	for k, v := range c.header_ {
26518		reqHeaders[k] = v
26519	}
26520	reqHeaders.Set("User-Agent", c.s.userAgent())
26521	var body io.Reader = nil
26522	c.urlParams_.Set("alt", alt)
26523	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{autoscaler}")
26524	urls += "?" + c.urlParams_.Encode()
26525	req, _ := http.NewRequest("DELETE", urls, body)
26526	req.Header = reqHeaders
26527	googleapi.Expand(req.URL, map[string]string{
26528		"project":    c.project,
26529		"zone":       c.zone,
26530		"autoscaler": c.autoscaler,
26531	})
26532	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26533}
26534
26535// Do executes the "compute.autoscalers.delete" call.
26536// Exactly one of *Operation or error will be non-nil. Any non-2xx
26537// status code is an error. Response headers are in either
26538// *Operation.ServerResponse.Header or (if a response was returned at
26539// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
26540// to check whether the returned error was because
26541// http.StatusNotModified was returned.
26542func (c *AutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
26543	gensupport.SetOptions(c.urlParams_, opts...)
26544	res, err := c.doRequest("json")
26545	if res != nil && res.StatusCode == http.StatusNotModified {
26546		if res.Body != nil {
26547			res.Body.Close()
26548		}
26549		return nil, &googleapi.Error{
26550			Code:   res.StatusCode,
26551			Header: res.Header,
26552		}
26553	}
26554	if err != nil {
26555		return nil, err
26556	}
26557	defer googleapi.CloseBody(res)
26558	if err := googleapi.CheckResponse(res); err != nil {
26559		return nil, err
26560	}
26561	ret := &Operation{
26562		ServerResponse: googleapi.ServerResponse{
26563			Header:         res.Header,
26564			HTTPStatusCode: res.StatusCode,
26565		},
26566	}
26567	target := &ret
26568	if err := gensupport.DecodeResponse(target, res); err != nil {
26569		return nil, err
26570	}
26571	return ret, nil
26572	// {
26573	//   "description": "Deletes the specified autoscaler.",
26574	//   "httpMethod": "DELETE",
26575	//   "id": "compute.autoscalers.delete",
26576	//   "parameterOrder": [
26577	//     "project",
26578	//     "zone",
26579	//     "autoscaler"
26580	//   ],
26581	//   "parameters": {
26582	//     "autoscaler": {
26583	//       "description": "Name of the autoscaler to delete.",
26584	//       "location": "path",
26585	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
26586	//       "required": true,
26587	//       "type": "string"
26588	//     },
26589	//     "project": {
26590	//       "description": "Project ID for this request.",
26591	//       "location": "path",
26592	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
26593	//       "required": true,
26594	//       "type": "string"
26595	//     },
26596	//     "requestId": {
26597	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
26598	//       "location": "query",
26599	//       "type": "string"
26600	//     },
26601	//     "zone": {
26602	//       "description": "Name of the zone for this request.",
26603	//       "location": "path",
26604	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
26605	//       "required": true,
26606	//       "type": "string"
26607	//     }
26608	//   },
26609	//   "path": "{project}/zones/{zone}/autoscalers/{autoscaler}",
26610	//   "response": {
26611	//     "$ref": "Operation"
26612	//   },
26613	//   "scopes": [
26614	//     "https://www.googleapis.com/auth/cloud-platform",
26615	//     "https://www.googleapis.com/auth/compute"
26616	//   ]
26617	// }
26618
26619}
26620
26621// method id "compute.autoscalers.get":
26622
26623type AutoscalersGetCall struct {
26624	s            *Service
26625	project      string
26626	zone         string
26627	autoscaler   string
26628	urlParams_   gensupport.URLParams
26629	ifNoneMatch_ string
26630	ctx_         context.Context
26631	header_      http.Header
26632}
26633
26634// Get: Returns the specified autoscaler resource. Gets a list of
26635// available autoscalers by making a list() request.
26636func (r *AutoscalersService) Get(project string, zone string, autoscaler string) *AutoscalersGetCall {
26637	c := &AutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26638	c.project = project
26639	c.zone = zone
26640	c.autoscaler = autoscaler
26641	return c
26642}
26643
26644// Fields allows partial responses to be retrieved. See
26645// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26646// for more information.
26647func (c *AutoscalersGetCall) Fields(s ...googleapi.Field) *AutoscalersGetCall {
26648	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26649	return c
26650}
26651
26652// IfNoneMatch sets the optional parameter which makes the operation
26653// fail if the object's ETag matches the given value. This is useful for
26654// getting updates only after the object has changed since the last
26655// request. Use googleapi.IsNotModified to check whether the response
26656// error from Do is the result of In-None-Match.
26657func (c *AutoscalersGetCall) IfNoneMatch(entityTag string) *AutoscalersGetCall {
26658	c.ifNoneMatch_ = entityTag
26659	return c
26660}
26661
26662// Context sets the context to be used in this call's Do method. Any
26663// pending HTTP request will be aborted if the provided context is
26664// canceled.
26665func (c *AutoscalersGetCall) Context(ctx context.Context) *AutoscalersGetCall {
26666	c.ctx_ = ctx
26667	return c
26668}
26669
26670// Header returns an http.Header that can be modified by the caller to
26671// add HTTP headers to the request.
26672func (c *AutoscalersGetCall) Header() http.Header {
26673	if c.header_ == nil {
26674		c.header_ = make(http.Header)
26675	}
26676	return c.header_
26677}
26678
26679func (c *AutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
26680	reqHeaders := make(http.Header)
26681	for k, v := range c.header_ {
26682		reqHeaders[k] = v
26683	}
26684	reqHeaders.Set("User-Agent", c.s.userAgent())
26685	if c.ifNoneMatch_ != "" {
26686		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
26687	}
26688	var body io.Reader = nil
26689	c.urlParams_.Set("alt", alt)
26690	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{autoscaler}")
26691	urls += "?" + c.urlParams_.Encode()
26692	req, _ := http.NewRequest("GET", urls, body)
26693	req.Header = reqHeaders
26694	googleapi.Expand(req.URL, map[string]string{
26695		"project":    c.project,
26696		"zone":       c.zone,
26697		"autoscaler": c.autoscaler,
26698	})
26699	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26700}
26701
26702// Do executes the "compute.autoscalers.get" call.
26703// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
26704// status code is an error. Response headers are in either
26705// *Autoscaler.ServerResponse.Header or (if a response was returned at
26706// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
26707// to check whether the returned error was because
26708// http.StatusNotModified was returned.
26709func (c *AutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
26710	gensupport.SetOptions(c.urlParams_, opts...)
26711	res, err := c.doRequest("json")
26712	if res != nil && res.StatusCode == http.StatusNotModified {
26713		if res.Body != nil {
26714			res.Body.Close()
26715		}
26716		return nil, &googleapi.Error{
26717			Code:   res.StatusCode,
26718			Header: res.Header,
26719		}
26720	}
26721	if err != nil {
26722		return nil, err
26723	}
26724	defer googleapi.CloseBody(res)
26725	if err := googleapi.CheckResponse(res); err != nil {
26726		return nil, err
26727	}
26728	ret := &Autoscaler{
26729		ServerResponse: googleapi.ServerResponse{
26730			Header:         res.Header,
26731			HTTPStatusCode: res.StatusCode,
26732		},
26733	}
26734	target := &ret
26735	if err := gensupport.DecodeResponse(target, res); err != nil {
26736		return nil, err
26737	}
26738	return ret, nil
26739	// {
26740	//   "description": "Returns the specified autoscaler resource. Gets a list of available autoscalers by making a list() request.",
26741	//   "httpMethod": "GET",
26742	//   "id": "compute.autoscalers.get",
26743	//   "parameterOrder": [
26744	//     "project",
26745	//     "zone",
26746	//     "autoscaler"
26747	//   ],
26748	//   "parameters": {
26749	//     "autoscaler": {
26750	//       "description": "Name of the autoscaler to return.",
26751	//       "location": "path",
26752	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
26753	//       "required": true,
26754	//       "type": "string"
26755	//     },
26756	//     "project": {
26757	//       "description": "Project ID for this request.",
26758	//       "location": "path",
26759	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
26760	//       "required": true,
26761	//       "type": "string"
26762	//     },
26763	//     "zone": {
26764	//       "description": "Name of the zone for this request.",
26765	//       "location": "path",
26766	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
26767	//       "required": true,
26768	//       "type": "string"
26769	//     }
26770	//   },
26771	//   "path": "{project}/zones/{zone}/autoscalers/{autoscaler}",
26772	//   "response": {
26773	//     "$ref": "Autoscaler"
26774	//   },
26775	//   "scopes": [
26776	//     "https://www.googleapis.com/auth/cloud-platform",
26777	//     "https://www.googleapis.com/auth/compute",
26778	//     "https://www.googleapis.com/auth/compute.readonly"
26779	//   ]
26780	// }
26781
26782}
26783
26784// method id "compute.autoscalers.insert":
26785
26786type AutoscalersInsertCall struct {
26787	s          *Service
26788	project    string
26789	zone       string
26790	autoscaler *Autoscaler
26791	urlParams_ gensupport.URLParams
26792	ctx_       context.Context
26793	header_    http.Header
26794}
26795
26796// Insert: Creates an autoscaler in the specified project using the data
26797// included in the request.
26798func (r *AutoscalersService) Insert(project string, zone string, autoscaler *Autoscaler) *AutoscalersInsertCall {
26799	c := &AutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26800	c.project = project
26801	c.zone = zone
26802	c.autoscaler = autoscaler
26803	return c
26804}
26805
26806// RequestId sets the optional parameter "requestId": An optional
26807// request ID to identify requests. Specify a unique request ID so that
26808// if you must retry your request, the server will know to ignore the
26809// request if it has already been completed.
26810//
26811// For example, consider a situation where you make an initial request
26812// and the request times out. If you make the request again with the
26813// same request ID, the server can check if original operation with the
26814// same request ID was received, and if so, will ignore the second
26815// request. This prevents clients from accidentally creating duplicate
26816// commitments.
26817//
26818// The request ID must be a valid UUID with the exception that zero UUID
26819// is not supported (00000000-0000-0000-0000-000000000000).
26820func (c *AutoscalersInsertCall) RequestId(requestId string) *AutoscalersInsertCall {
26821	c.urlParams_.Set("requestId", requestId)
26822	return c
26823}
26824
26825// Fields allows partial responses to be retrieved. See
26826// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26827// for more information.
26828func (c *AutoscalersInsertCall) Fields(s ...googleapi.Field) *AutoscalersInsertCall {
26829	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26830	return c
26831}
26832
26833// Context sets the context to be used in this call's Do method. Any
26834// pending HTTP request will be aborted if the provided context is
26835// canceled.
26836func (c *AutoscalersInsertCall) Context(ctx context.Context) *AutoscalersInsertCall {
26837	c.ctx_ = ctx
26838	return c
26839}
26840
26841// Header returns an http.Header that can be modified by the caller to
26842// add HTTP headers to the request.
26843func (c *AutoscalersInsertCall) Header() http.Header {
26844	if c.header_ == nil {
26845		c.header_ = make(http.Header)
26846	}
26847	return c.header_
26848}
26849
26850func (c *AutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
26851	reqHeaders := make(http.Header)
26852	for k, v := range c.header_ {
26853		reqHeaders[k] = v
26854	}
26855	reqHeaders.Set("User-Agent", c.s.userAgent())
26856	var body io.Reader = nil
26857	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
26858	if err != nil {
26859		return nil, err
26860	}
26861	reqHeaders.Set("Content-Type", "application/json")
26862	c.urlParams_.Set("alt", alt)
26863	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
26864	urls += "?" + c.urlParams_.Encode()
26865	req, _ := http.NewRequest("POST", urls, body)
26866	req.Header = reqHeaders
26867	googleapi.Expand(req.URL, map[string]string{
26868		"project": c.project,
26869		"zone":    c.zone,
26870	})
26871	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26872}
26873
26874// Do executes the "compute.autoscalers.insert" call.
26875// Exactly one of *Operation or error will be non-nil. Any non-2xx
26876// status code is an error. Response headers are in either
26877// *Operation.ServerResponse.Header or (if a response was returned at
26878// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
26879// to check whether the returned error was because
26880// http.StatusNotModified was returned.
26881func (c *AutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
26882	gensupport.SetOptions(c.urlParams_, opts...)
26883	res, err := c.doRequest("json")
26884	if res != nil && res.StatusCode == http.StatusNotModified {
26885		if res.Body != nil {
26886			res.Body.Close()
26887		}
26888		return nil, &googleapi.Error{
26889			Code:   res.StatusCode,
26890			Header: res.Header,
26891		}
26892	}
26893	if err != nil {
26894		return nil, err
26895	}
26896	defer googleapi.CloseBody(res)
26897	if err := googleapi.CheckResponse(res); err != nil {
26898		return nil, err
26899	}
26900	ret := &Operation{
26901		ServerResponse: googleapi.ServerResponse{
26902			Header:         res.Header,
26903			HTTPStatusCode: res.StatusCode,
26904		},
26905	}
26906	target := &ret
26907	if err := gensupport.DecodeResponse(target, res); err != nil {
26908		return nil, err
26909	}
26910	return ret, nil
26911	// {
26912	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
26913	//   "httpMethod": "POST",
26914	//   "id": "compute.autoscalers.insert",
26915	//   "parameterOrder": [
26916	//     "project",
26917	//     "zone"
26918	//   ],
26919	//   "parameters": {
26920	//     "project": {
26921	//       "description": "Project ID for this request.",
26922	//       "location": "path",
26923	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
26924	//       "required": true,
26925	//       "type": "string"
26926	//     },
26927	//     "requestId": {
26928	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
26929	//       "location": "query",
26930	//       "type": "string"
26931	//     },
26932	//     "zone": {
26933	//       "description": "Name of the zone for this request.",
26934	//       "location": "path",
26935	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
26936	//       "required": true,
26937	//       "type": "string"
26938	//     }
26939	//   },
26940	//   "path": "{project}/zones/{zone}/autoscalers",
26941	//   "request": {
26942	//     "$ref": "Autoscaler"
26943	//   },
26944	//   "response": {
26945	//     "$ref": "Operation"
26946	//   },
26947	//   "scopes": [
26948	//     "https://www.googleapis.com/auth/cloud-platform",
26949	//     "https://www.googleapis.com/auth/compute"
26950	//   ]
26951	// }
26952
26953}
26954
26955// method id "compute.autoscalers.list":
26956
26957type AutoscalersListCall struct {
26958	s            *Service
26959	project      string
26960	zone         string
26961	urlParams_   gensupport.URLParams
26962	ifNoneMatch_ string
26963	ctx_         context.Context
26964	header_      http.Header
26965}
26966
26967// List: Retrieves a list of autoscalers contained within the specified
26968// zone.
26969func (r *AutoscalersService) List(project string, zone string) *AutoscalersListCall {
26970	c := &AutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26971	c.project = project
26972	c.zone = zone
26973	return c
26974}
26975
26976// Filter sets the optional parameter "filter": A filter expression that
26977// filters resources listed in the response. The expression must specify
26978// the field name, a comparison operator, and the value that you want to
26979// use for filtering. The value must be a string, a number, or a
26980// boolean. The comparison operator must be either =, !=, >, or <.
26981//
26982// For example, if you are filtering Compute Engine instances, you can
26983// exclude instances named example-instance by specifying name !=
26984// example-instance.
26985//
26986// You can also filter nested fields. For example, you could specify
26987// scheduling.automaticRestart = false to include instances only if they
26988// are not scheduled for automatic restarts. You can use filtering on
26989// nested fields to filter based on resource labels.
26990//
26991// To filter on multiple expressions, provide each separate expression
26992// within parentheses. For example, (scheduling.automaticRestart = true)
26993// (cpuPlatform = "Intel Skylake"). By default, each expression is an
26994// AND expression. However, you can include AND and OR expressions
26995// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
26996// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
26997// true).
26998func (c *AutoscalersListCall) Filter(filter string) *AutoscalersListCall {
26999	c.urlParams_.Set("filter", filter)
27000	return c
27001}
27002
27003// MaxResults sets the optional parameter "maxResults": The maximum
27004// number of results per page that should be returned. If the number of
27005// available results is larger than maxResults, Compute Engine returns a
27006// nextPageToken that can be used to get the next page of results in
27007// subsequent list requests. Acceptable values are 0 to 500, inclusive.
27008// (Default: 500)
27009func (c *AutoscalersListCall) MaxResults(maxResults int64) *AutoscalersListCall {
27010	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
27011	return c
27012}
27013
27014// OrderBy sets the optional parameter "orderBy": Sorts list results by
27015// a certain order. By default, results are returned in alphanumerical
27016// order based on the resource name.
27017//
27018// You can also sort results in descending order based on the creation
27019// timestamp using orderBy="creationTimestamp desc". This sorts results
27020// based on the creationTimestamp field in reverse chronological order
27021// (newest result first). Use this to sort resources like operations so
27022// that the newest operation is returned first.
27023//
27024// Currently, only sorting by name or creationTimestamp desc is
27025// supported.
27026func (c *AutoscalersListCall) OrderBy(orderBy string) *AutoscalersListCall {
27027	c.urlParams_.Set("orderBy", orderBy)
27028	return c
27029}
27030
27031// PageToken sets the optional parameter "pageToken": Specifies a page
27032// token to use. Set pageToken to the nextPageToken returned by a
27033// previous list request to get the next page of results.
27034func (c *AutoscalersListCall) PageToken(pageToken string) *AutoscalersListCall {
27035	c.urlParams_.Set("pageToken", pageToken)
27036	return c
27037}
27038
27039// Fields allows partial responses to be retrieved. See
27040// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27041// for more information.
27042func (c *AutoscalersListCall) Fields(s ...googleapi.Field) *AutoscalersListCall {
27043	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27044	return c
27045}
27046
27047// IfNoneMatch sets the optional parameter which makes the operation
27048// fail if the object's ETag matches the given value. This is useful for
27049// getting updates only after the object has changed since the last
27050// request. Use googleapi.IsNotModified to check whether the response
27051// error from Do is the result of In-None-Match.
27052func (c *AutoscalersListCall) IfNoneMatch(entityTag string) *AutoscalersListCall {
27053	c.ifNoneMatch_ = entityTag
27054	return c
27055}
27056
27057// Context sets the context to be used in this call's Do method. Any
27058// pending HTTP request will be aborted if the provided context is
27059// canceled.
27060func (c *AutoscalersListCall) Context(ctx context.Context) *AutoscalersListCall {
27061	c.ctx_ = ctx
27062	return c
27063}
27064
27065// Header returns an http.Header that can be modified by the caller to
27066// add HTTP headers to the request.
27067func (c *AutoscalersListCall) Header() http.Header {
27068	if c.header_ == nil {
27069		c.header_ = make(http.Header)
27070	}
27071	return c.header_
27072}
27073
27074func (c *AutoscalersListCall) doRequest(alt string) (*http.Response, error) {
27075	reqHeaders := make(http.Header)
27076	for k, v := range c.header_ {
27077		reqHeaders[k] = v
27078	}
27079	reqHeaders.Set("User-Agent", c.s.userAgent())
27080	if c.ifNoneMatch_ != "" {
27081		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
27082	}
27083	var body io.Reader = nil
27084	c.urlParams_.Set("alt", alt)
27085	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
27086	urls += "?" + c.urlParams_.Encode()
27087	req, _ := http.NewRequest("GET", urls, body)
27088	req.Header = reqHeaders
27089	googleapi.Expand(req.URL, map[string]string{
27090		"project": c.project,
27091		"zone":    c.zone,
27092	})
27093	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27094}
27095
27096// Do executes the "compute.autoscalers.list" call.
27097// Exactly one of *AutoscalerList or error will be non-nil. Any non-2xx
27098// status code is an error. Response headers are in either
27099// *AutoscalerList.ServerResponse.Header or (if a response was returned
27100// at all) in error.(*googleapi.Error).Header. Use
27101// googleapi.IsNotModified to check whether the returned error was
27102// because http.StatusNotModified was returned.
27103func (c *AutoscalersListCall) Do(opts ...googleapi.CallOption) (*AutoscalerList, error) {
27104	gensupport.SetOptions(c.urlParams_, opts...)
27105	res, err := c.doRequest("json")
27106	if res != nil && res.StatusCode == http.StatusNotModified {
27107		if res.Body != nil {
27108			res.Body.Close()
27109		}
27110		return nil, &googleapi.Error{
27111			Code:   res.StatusCode,
27112			Header: res.Header,
27113		}
27114	}
27115	if err != nil {
27116		return nil, err
27117	}
27118	defer googleapi.CloseBody(res)
27119	if err := googleapi.CheckResponse(res); err != nil {
27120		return nil, err
27121	}
27122	ret := &AutoscalerList{
27123		ServerResponse: googleapi.ServerResponse{
27124			Header:         res.Header,
27125			HTTPStatusCode: res.StatusCode,
27126		},
27127	}
27128	target := &ret
27129	if err := gensupport.DecodeResponse(target, res); err != nil {
27130		return nil, err
27131	}
27132	return ret, nil
27133	// {
27134	//   "description": "Retrieves a list of autoscalers contained within the specified zone.",
27135	//   "httpMethod": "GET",
27136	//   "id": "compute.autoscalers.list",
27137	//   "parameterOrder": [
27138	//     "project",
27139	//     "zone"
27140	//   ],
27141	//   "parameters": {
27142	//     "filter": {
27143	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
27144	//       "location": "query",
27145	//       "type": "string"
27146	//     },
27147	//     "maxResults": {
27148	//       "default": "500",
27149	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
27150	//       "format": "uint32",
27151	//       "location": "query",
27152	//       "minimum": "0",
27153	//       "type": "integer"
27154	//     },
27155	//     "orderBy": {
27156	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
27157	//       "location": "query",
27158	//       "type": "string"
27159	//     },
27160	//     "pageToken": {
27161	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
27162	//       "location": "query",
27163	//       "type": "string"
27164	//     },
27165	//     "project": {
27166	//       "description": "Project ID for this request.",
27167	//       "location": "path",
27168	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
27169	//       "required": true,
27170	//       "type": "string"
27171	//     },
27172	//     "zone": {
27173	//       "description": "Name of the zone for this request.",
27174	//       "location": "path",
27175	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
27176	//       "required": true,
27177	//       "type": "string"
27178	//     }
27179	//   },
27180	//   "path": "{project}/zones/{zone}/autoscalers",
27181	//   "response": {
27182	//     "$ref": "AutoscalerList"
27183	//   },
27184	//   "scopes": [
27185	//     "https://www.googleapis.com/auth/cloud-platform",
27186	//     "https://www.googleapis.com/auth/compute",
27187	//     "https://www.googleapis.com/auth/compute.readonly"
27188	//   ]
27189	// }
27190
27191}
27192
27193// Pages invokes f for each page of results.
27194// A non-nil error returned from f will halt the iteration.
27195// The provided context supersedes any context provided to the Context method.
27196func (c *AutoscalersListCall) Pages(ctx context.Context, f func(*AutoscalerList) error) error {
27197	c.ctx_ = ctx
27198	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
27199	for {
27200		x, err := c.Do()
27201		if err != nil {
27202			return err
27203		}
27204		if err := f(x); err != nil {
27205			return err
27206		}
27207		if x.NextPageToken == "" {
27208			return nil
27209		}
27210		c.PageToken(x.NextPageToken)
27211	}
27212}
27213
27214// method id "compute.autoscalers.patch":
27215
27216type AutoscalersPatchCall struct {
27217	s          *Service
27218	project    string
27219	zone       string
27220	autoscaler *Autoscaler
27221	urlParams_ gensupport.URLParams
27222	ctx_       context.Context
27223	header_    http.Header
27224}
27225
27226// Patch: Updates an autoscaler in the specified project using the data
27227// included in the request. This method supports PATCH semantics and
27228// uses the JSON merge patch format and processing rules.
27229func (r *AutoscalersService) Patch(project string, zone string, autoscaler *Autoscaler) *AutoscalersPatchCall {
27230	c := &AutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27231	c.project = project
27232	c.zone = zone
27233	c.autoscaler = autoscaler
27234	return c
27235}
27236
27237// Autoscaler sets the optional parameter "autoscaler": Name of the
27238// autoscaler to patch.
27239func (c *AutoscalersPatchCall) Autoscaler(autoscaler string) *AutoscalersPatchCall {
27240	c.urlParams_.Set("autoscaler", autoscaler)
27241	return c
27242}
27243
27244// RequestId sets the optional parameter "requestId": An optional
27245// request ID to identify requests. Specify a unique request ID so that
27246// if you must retry your request, the server will know to ignore the
27247// request if it has already been completed.
27248//
27249// For example, consider a situation where you make an initial request
27250// and the request times out. If you make the request again with the
27251// same request ID, the server can check if original operation with the
27252// same request ID was received, and if so, will ignore the second
27253// request. This prevents clients from accidentally creating duplicate
27254// commitments.
27255//
27256// The request ID must be a valid UUID with the exception that zero UUID
27257// is not supported (00000000-0000-0000-0000-000000000000).
27258func (c *AutoscalersPatchCall) RequestId(requestId string) *AutoscalersPatchCall {
27259	c.urlParams_.Set("requestId", requestId)
27260	return c
27261}
27262
27263// Fields allows partial responses to be retrieved. See
27264// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27265// for more information.
27266func (c *AutoscalersPatchCall) Fields(s ...googleapi.Field) *AutoscalersPatchCall {
27267	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27268	return c
27269}
27270
27271// Context sets the context to be used in this call's Do method. Any
27272// pending HTTP request will be aborted if the provided context is
27273// canceled.
27274func (c *AutoscalersPatchCall) Context(ctx context.Context) *AutoscalersPatchCall {
27275	c.ctx_ = ctx
27276	return c
27277}
27278
27279// Header returns an http.Header that can be modified by the caller to
27280// add HTTP headers to the request.
27281func (c *AutoscalersPatchCall) Header() http.Header {
27282	if c.header_ == nil {
27283		c.header_ = make(http.Header)
27284	}
27285	return c.header_
27286}
27287
27288func (c *AutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
27289	reqHeaders := make(http.Header)
27290	for k, v := range c.header_ {
27291		reqHeaders[k] = v
27292	}
27293	reqHeaders.Set("User-Agent", c.s.userAgent())
27294	var body io.Reader = nil
27295	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
27296	if err != nil {
27297		return nil, err
27298	}
27299	reqHeaders.Set("Content-Type", "application/json")
27300	c.urlParams_.Set("alt", alt)
27301	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
27302	urls += "?" + c.urlParams_.Encode()
27303	req, _ := http.NewRequest("PATCH", urls, body)
27304	req.Header = reqHeaders
27305	googleapi.Expand(req.URL, map[string]string{
27306		"project": c.project,
27307		"zone":    c.zone,
27308	})
27309	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27310}
27311
27312// Do executes the "compute.autoscalers.patch" call.
27313// Exactly one of *Operation or error will be non-nil. Any non-2xx
27314// status code is an error. Response headers are in either
27315// *Operation.ServerResponse.Header or (if a response was returned at
27316// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
27317// to check whether the returned error was because
27318// http.StatusNotModified was returned.
27319func (c *AutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
27320	gensupport.SetOptions(c.urlParams_, opts...)
27321	res, err := c.doRequest("json")
27322	if res != nil && res.StatusCode == http.StatusNotModified {
27323		if res.Body != nil {
27324			res.Body.Close()
27325		}
27326		return nil, &googleapi.Error{
27327			Code:   res.StatusCode,
27328			Header: res.Header,
27329		}
27330	}
27331	if err != nil {
27332		return nil, err
27333	}
27334	defer googleapi.CloseBody(res)
27335	if err := googleapi.CheckResponse(res); err != nil {
27336		return nil, err
27337	}
27338	ret := &Operation{
27339		ServerResponse: googleapi.ServerResponse{
27340			Header:         res.Header,
27341			HTTPStatusCode: res.StatusCode,
27342		},
27343	}
27344	target := &ret
27345	if err := gensupport.DecodeResponse(target, res); err != nil {
27346		return nil, err
27347	}
27348	return ret, nil
27349	// {
27350	//   "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.",
27351	//   "httpMethod": "PATCH",
27352	//   "id": "compute.autoscalers.patch",
27353	//   "parameterOrder": [
27354	//     "project",
27355	//     "zone"
27356	//   ],
27357	//   "parameters": {
27358	//     "autoscaler": {
27359	//       "description": "Name of the autoscaler to patch.",
27360	//       "location": "query",
27361	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
27362	//       "type": "string"
27363	//     },
27364	//     "project": {
27365	//       "description": "Project ID for this request.",
27366	//       "location": "path",
27367	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
27368	//       "required": true,
27369	//       "type": "string"
27370	//     },
27371	//     "requestId": {
27372	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
27373	//       "location": "query",
27374	//       "type": "string"
27375	//     },
27376	//     "zone": {
27377	//       "description": "Name of the zone for this request.",
27378	//       "location": "path",
27379	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
27380	//       "required": true,
27381	//       "type": "string"
27382	//     }
27383	//   },
27384	//   "path": "{project}/zones/{zone}/autoscalers",
27385	//   "request": {
27386	//     "$ref": "Autoscaler"
27387	//   },
27388	//   "response": {
27389	//     "$ref": "Operation"
27390	//   },
27391	//   "scopes": [
27392	//     "https://www.googleapis.com/auth/cloud-platform",
27393	//     "https://www.googleapis.com/auth/compute"
27394	//   ]
27395	// }
27396
27397}
27398
27399// method id "compute.autoscalers.update":
27400
27401type AutoscalersUpdateCall struct {
27402	s          *Service
27403	project    string
27404	zone       string
27405	autoscaler *Autoscaler
27406	urlParams_ gensupport.URLParams
27407	ctx_       context.Context
27408	header_    http.Header
27409}
27410
27411// Update: Updates an autoscaler in the specified project using the data
27412// included in the request.
27413func (r *AutoscalersService) Update(project string, zone string, autoscaler *Autoscaler) *AutoscalersUpdateCall {
27414	c := &AutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27415	c.project = project
27416	c.zone = zone
27417	c.autoscaler = autoscaler
27418	return c
27419}
27420
27421// Autoscaler sets the optional parameter "autoscaler": Name of the
27422// autoscaler to update.
27423func (c *AutoscalersUpdateCall) Autoscaler(autoscaler string) *AutoscalersUpdateCall {
27424	c.urlParams_.Set("autoscaler", autoscaler)
27425	return c
27426}
27427
27428// RequestId sets the optional parameter "requestId": An optional
27429// request ID to identify requests. Specify a unique request ID so that
27430// if you must retry your request, the server will know to ignore the
27431// request if it has already been completed.
27432//
27433// For example, consider a situation where you make an initial request
27434// and the request times out. If you make the request again with the
27435// same request ID, the server can check if original operation with the
27436// same request ID was received, and if so, will ignore the second
27437// request. This prevents clients from accidentally creating duplicate
27438// commitments.
27439//
27440// The request ID must be a valid UUID with the exception that zero UUID
27441// is not supported (00000000-0000-0000-0000-000000000000).
27442func (c *AutoscalersUpdateCall) RequestId(requestId string) *AutoscalersUpdateCall {
27443	c.urlParams_.Set("requestId", requestId)
27444	return c
27445}
27446
27447// Fields allows partial responses to be retrieved. See
27448// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27449// for more information.
27450func (c *AutoscalersUpdateCall) Fields(s ...googleapi.Field) *AutoscalersUpdateCall {
27451	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27452	return c
27453}
27454
27455// Context sets the context to be used in this call's Do method. Any
27456// pending HTTP request will be aborted if the provided context is
27457// canceled.
27458func (c *AutoscalersUpdateCall) Context(ctx context.Context) *AutoscalersUpdateCall {
27459	c.ctx_ = ctx
27460	return c
27461}
27462
27463// Header returns an http.Header that can be modified by the caller to
27464// add HTTP headers to the request.
27465func (c *AutoscalersUpdateCall) Header() http.Header {
27466	if c.header_ == nil {
27467		c.header_ = make(http.Header)
27468	}
27469	return c.header_
27470}
27471
27472func (c *AutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
27473	reqHeaders := make(http.Header)
27474	for k, v := range c.header_ {
27475		reqHeaders[k] = v
27476	}
27477	reqHeaders.Set("User-Agent", c.s.userAgent())
27478	var body io.Reader = nil
27479	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
27480	if err != nil {
27481		return nil, err
27482	}
27483	reqHeaders.Set("Content-Type", "application/json")
27484	c.urlParams_.Set("alt", alt)
27485	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
27486	urls += "?" + c.urlParams_.Encode()
27487	req, _ := http.NewRequest("PUT", urls, body)
27488	req.Header = reqHeaders
27489	googleapi.Expand(req.URL, map[string]string{
27490		"project": c.project,
27491		"zone":    c.zone,
27492	})
27493	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27494}
27495
27496// Do executes the "compute.autoscalers.update" call.
27497// Exactly one of *Operation or error will be non-nil. Any non-2xx
27498// status code is an error. Response headers are in either
27499// *Operation.ServerResponse.Header or (if a response was returned at
27500// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
27501// to check whether the returned error was because
27502// http.StatusNotModified was returned.
27503func (c *AutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
27504	gensupport.SetOptions(c.urlParams_, opts...)
27505	res, err := c.doRequest("json")
27506	if res != nil && res.StatusCode == http.StatusNotModified {
27507		if res.Body != nil {
27508			res.Body.Close()
27509		}
27510		return nil, &googleapi.Error{
27511			Code:   res.StatusCode,
27512			Header: res.Header,
27513		}
27514	}
27515	if err != nil {
27516		return nil, err
27517	}
27518	defer googleapi.CloseBody(res)
27519	if err := googleapi.CheckResponse(res); err != nil {
27520		return nil, err
27521	}
27522	ret := &Operation{
27523		ServerResponse: googleapi.ServerResponse{
27524			Header:         res.Header,
27525			HTTPStatusCode: res.StatusCode,
27526		},
27527	}
27528	target := &ret
27529	if err := gensupport.DecodeResponse(target, res); err != nil {
27530		return nil, err
27531	}
27532	return ret, nil
27533	// {
27534	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
27535	//   "httpMethod": "PUT",
27536	//   "id": "compute.autoscalers.update",
27537	//   "parameterOrder": [
27538	//     "project",
27539	//     "zone"
27540	//   ],
27541	//   "parameters": {
27542	//     "autoscaler": {
27543	//       "description": "Name of the autoscaler to update.",
27544	//       "location": "query",
27545	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
27546	//       "type": "string"
27547	//     },
27548	//     "project": {
27549	//       "description": "Project ID for this request.",
27550	//       "location": "path",
27551	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
27552	//       "required": true,
27553	//       "type": "string"
27554	//     },
27555	//     "requestId": {
27556	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
27557	//       "location": "query",
27558	//       "type": "string"
27559	//     },
27560	//     "zone": {
27561	//       "description": "Name of the zone for this request.",
27562	//       "location": "path",
27563	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
27564	//       "required": true,
27565	//       "type": "string"
27566	//     }
27567	//   },
27568	//   "path": "{project}/zones/{zone}/autoscalers",
27569	//   "request": {
27570	//     "$ref": "Autoscaler"
27571	//   },
27572	//   "response": {
27573	//     "$ref": "Operation"
27574	//   },
27575	//   "scopes": [
27576	//     "https://www.googleapis.com/auth/cloud-platform",
27577	//     "https://www.googleapis.com/auth/compute"
27578	//   ]
27579	// }
27580
27581}
27582
27583// method id "compute.backendBuckets.delete":
27584
27585type BackendBucketsDeleteCall struct {
27586	s             *Service
27587	project       string
27588	backendBucket string
27589	urlParams_    gensupport.URLParams
27590	ctx_          context.Context
27591	header_       http.Header
27592}
27593
27594// Delete: Deletes the specified BackendBucket resource.
27595func (r *BackendBucketsService) Delete(project string, backendBucket string) *BackendBucketsDeleteCall {
27596	c := &BackendBucketsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27597	c.project = project
27598	c.backendBucket = backendBucket
27599	return c
27600}
27601
27602// RequestId sets the optional parameter "requestId": An optional
27603// request ID to identify requests. Specify a unique request ID so that
27604// if you must retry your request, the server will know to ignore the
27605// request if it has already been completed.
27606//
27607// For example, consider a situation where you make an initial request
27608// and the request times out. If you make the request again with the
27609// same request ID, the server can check if original operation with the
27610// same request ID was received, and if so, will ignore the second
27611// request. This prevents clients from accidentally creating duplicate
27612// commitments.
27613//
27614// The request ID must be a valid UUID with the exception that zero UUID
27615// is not supported (00000000-0000-0000-0000-000000000000).
27616func (c *BackendBucketsDeleteCall) RequestId(requestId string) *BackendBucketsDeleteCall {
27617	c.urlParams_.Set("requestId", requestId)
27618	return c
27619}
27620
27621// Fields allows partial responses to be retrieved. See
27622// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27623// for more information.
27624func (c *BackendBucketsDeleteCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteCall {
27625	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27626	return c
27627}
27628
27629// Context sets the context to be used in this call's Do method. Any
27630// pending HTTP request will be aborted if the provided context is
27631// canceled.
27632func (c *BackendBucketsDeleteCall) Context(ctx context.Context) *BackendBucketsDeleteCall {
27633	c.ctx_ = ctx
27634	return c
27635}
27636
27637// Header returns an http.Header that can be modified by the caller to
27638// add HTTP headers to the request.
27639func (c *BackendBucketsDeleteCall) Header() http.Header {
27640	if c.header_ == nil {
27641		c.header_ = make(http.Header)
27642	}
27643	return c.header_
27644}
27645
27646func (c *BackendBucketsDeleteCall) doRequest(alt string) (*http.Response, error) {
27647	reqHeaders := make(http.Header)
27648	for k, v := range c.header_ {
27649		reqHeaders[k] = v
27650	}
27651	reqHeaders.Set("User-Agent", c.s.userAgent())
27652	var body io.Reader = nil
27653	c.urlParams_.Set("alt", alt)
27654	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
27655	urls += "?" + c.urlParams_.Encode()
27656	req, _ := http.NewRequest("DELETE", urls, body)
27657	req.Header = reqHeaders
27658	googleapi.Expand(req.URL, map[string]string{
27659		"project":       c.project,
27660		"backendBucket": c.backendBucket,
27661	})
27662	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27663}
27664
27665// Do executes the "compute.backendBuckets.delete" call.
27666// Exactly one of *Operation or error will be non-nil. Any non-2xx
27667// status code is an error. Response headers are in either
27668// *Operation.ServerResponse.Header or (if a response was returned at
27669// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
27670// to check whether the returned error was because
27671// http.StatusNotModified was returned.
27672func (c *BackendBucketsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
27673	gensupport.SetOptions(c.urlParams_, opts...)
27674	res, err := c.doRequest("json")
27675	if res != nil && res.StatusCode == http.StatusNotModified {
27676		if res.Body != nil {
27677			res.Body.Close()
27678		}
27679		return nil, &googleapi.Error{
27680			Code:   res.StatusCode,
27681			Header: res.Header,
27682		}
27683	}
27684	if err != nil {
27685		return nil, err
27686	}
27687	defer googleapi.CloseBody(res)
27688	if err := googleapi.CheckResponse(res); err != nil {
27689		return nil, err
27690	}
27691	ret := &Operation{
27692		ServerResponse: googleapi.ServerResponse{
27693			Header:         res.Header,
27694			HTTPStatusCode: res.StatusCode,
27695		},
27696	}
27697	target := &ret
27698	if err := gensupport.DecodeResponse(target, res); err != nil {
27699		return nil, err
27700	}
27701	return ret, nil
27702	// {
27703	//   "description": "Deletes the specified BackendBucket resource.",
27704	//   "httpMethod": "DELETE",
27705	//   "id": "compute.backendBuckets.delete",
27706	//   "parameterOrder": [
27707	//     "project",
27708	//     "backendBucket"
27709	//   ],
27710	//   "parameters": {
27711	//     "backendBucket": {
27712	//       "description": "Name of the BackendBucket resource to delete.",
27713	//       "location": "path",
27714	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
27715	//       "required": true,
27716	//       "type": "string"
27717	//     },
27718	//     "project": {
27719	//       "description": "Project ID for this request.",
27720	//       "location": "path",
27721	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
27722	//       "required": true,
27723	//       "type": "string"
27724	//     },
27725	//     "requestId": {
27726	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
27727	//       "location": "query",
27728	//       "type": "string"
27729	//     }
27730	//   },
27731	//   "path": "{project}/global/backendBuckets/{backendBucket}",
27732	//   "response": {
27733	//     "$ref": "Operation"
27734	//   },
27735	//   "scopes": [
27736	//     "https://www.googleapis.com/auth/cloud-platform",
27737	//     "https://www.googleapis.com/auth/compute"
27738	//   ]
27739	// }
27740
27741}
27742
27743// method id "compute.backendBuckets.get":
27744
27745type BackendBucketsGetCall struct {
27746	s             *Service
27747	project       string
27748	backendBucket string
27749	urlParams_    gensupport.URLParams
27750	ifNoneMatch_  string
27751	ctx_          context.Context
27752	header_       http.Header
27753}
27754
27755// Get: Returns the specified BackendBucket resource. Gets a list of
27756// available backend buckets by making a list() request.
27757func (r *BackendBucketsService) Get(project string, backendBucket string) *BackendBucketsGetCall {
27758	c := &BackendBucketsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27759	c.project = project
27760	c.backendBucket = backendBucket
27761	return c
27762}
27763
27764// Fields allows partial responses to be retrieved. See
27765// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27766// for more information.
27767func (c *BackendBucketsGetCall) Fields(s ...googleapi.Field) *BackendBucketsGetCall {
27768	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27769	return c
27770}
27771
27772// IfNoneMatch sets the optional parameter which makes the operation
27773// fail if the object's ETag matches the given value. This is useful for
27774// getting updates only after the object has changed since the last
27775// request. Use googleapi.IsNotModified to check whether the response
27776// error from Do is the result of In-None-Match.
27777func (c *BackendBucketsGetCall) IfNoneMatch(entityTag string) *BackendBucketsGetCall {
27778	c.ifNoneMatch_ = entityTag
27779	return c
27780}
27781
27782// Context sets the context to be used in this call's Do method. Any
27783// pending HTTP request will be aborted if the provided context is
27784// canceled.
27785func (c *BackendBucketsGetCall) Context(ctx context.Context) *BackendBucketsGetCall {
27786	c.ctx_ = ctx
27787	return c
27788}
27789
27790// Header returns an http.Header that can be modified by the caller to
27791// add HTTP headers to the request.
27792func (c *BackendBucketsGetCall) Header() http.Header {
27793	if c.header_ == nil {
27794		c.header_ = make(http.Header)
27795	}
27796	return c.header_
27797}
27798
27799func (c *BackendBucketsGetCall) doRequest(alt string) (*http.Response, error) {
27800	reqHeaders := make(http.Header)
27801	for k, v := range c.header_ {
27802		reqHeaders[k] = v
27803	}
27804	reqHeaders.Set("User-Agent", c.s.userAgent())
27805	if c.ifNoneMatch_ != "" {
27806		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
27807	}
27808	var body io.Reader = nil
27809	c.urlParams_.Set("alt", alt)
27810	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
27811	urls += "?" + c.urlParams_.Encode()
27812	req, _ := http.NewRequest("GET", urls, body)
27813	req.Header = reqHeaders
27814	googleapi.Expand(req.URL, map[string]string{
27815		"project":       c.project,
27816		"backendBucket": c.backendBucket,
27817	})
27818	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27819}
27820
27821// Do executes the "compute.backendBuckets.get" call.
27822// Exactly one of *BackendBucket or error will be non-nil. Any non-2xx
27823// status code is an error. Response headers are in either
27824// *BackendBucket.ServerResponse.Header or (if a response was returned
27825// at all) in error.(*googleapi.Error).Header. Use
27826// googleapi.IsNotModified to check whether the returned error was
27827// because http.StatusNotModified was returned.
27828func (c *BackendBucketsGetCall) Do(opts ...googleapi.CallOption) (*BackendBucket, error) {
27829	gensupport.SetOptions(c.urlParams_, opts...)
27830	res, err := c.doRequest("json")
27831	if res != nil && res.StatusCode == http.StatusNotModified {
27832		if res.Body != nil {
27833			res.Body.Close()
27834		}
27835		return nil, &googleapi.Error{
27836			Code:   res.StatusCode,
27837			Header: res.Header,
27838		}
27839	}
27840	if err != nil {
27841		return nil, err
27842	}
27843	defer googleapi.CloseBody(res)
27844	if err := googleapi.CheckResponse(res); err != nil {
27845		return nil, err
27846	}
27847	ret := &BackendBucket{
27848		ServerResponse: googleapi.ServerResponse{
27849			Header:         res.Header,
27850			HTTPStatusCode: res.StatusCode,
27851		},
27852	}
27853	target := &ret
27854	if err := gensupport.DecodeResponse(target, res); err != nil {
27855		return nil, err
27856	}
27857	return ret, nil
27858	// {
27859	//   "description": "Returns the specified BackendBucket resource. Gets a list of available backend buckets by making a list() request.",
27860	//   "httpMethod": "GET",
27861	//   "id": "compute.backendBuckets.get",
27862	//   "parameterOrder": [
27863	//     "project",
27864	//     "backendBucket"
27865	//   ],
27866	//   "parameters": {
27867	//     "backendBucket": {
27868	//       "description": "Name of the BackendBucket resource to return.",
27869	//       "location": "path",
27870	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
27871	//       "required": true,
27872	//       "type": "string"
27873	//     },
27874	//     "project": {
27875	//       "description": "Project ID for this request.",
27876	//       "location": "path",
27877	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
27878	//       "required": true,
27879	//       "type": "string"
27880	//     }
27881	//   },
27882	//   "path": "{project}/global/backendBuckets/{backendBucket}",
27883	//   "response": {
27884	//     "$ref": "BackendBucket"
27885	//   },
27886	//   "scopes": [
27887	//     "https://www.googleapis.com/auth/cloud-platform",
27888	//     "https://www.googleapis.com/auth/compute",
27889	//     "https://www.googleapis.com/auth/compute.readonly"
27890	//   ]
27891	// }
27892
27893}
27894
27895// method id "compute.backendBuckets.insert":
27896
27897type BackendBucketsInsertCall struct {
27898	s             *Service
27899	project       string
27900	backendbucket *BackendBucket
27901	urlParams_    gensupport.URLParams
27902	ctx_          context.Context
27903	header_       http.Header
27904}
27905
27906// Insert: Creates a BackendBucket resource in the specified project
27907// using the data included in the request.
27908func (r *BackendBucketsService) Insert(project string, backendbucket *BackendBucket) *BackendBucketsInsertCall {
27909	c := &BackendBucketsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27910	c.project = project
27911	c.backendbucket = backendbucket
27912	return c
27913}
27914
27915// RequestId sets the optional parameter "requestId": An optional
27916// request ID to identify requests. Specify a unique request ID so that
27917// if you must retry your request, the server will know to ignore the
27918// request if it has already been completed.
27919//
27920// For example, consider a situation where you make an initial request
27921// and the request times out. If you make the request again with the
27922// same request ID, the server can check if original operation with the
27923// same request ID was received, and if so, will ignore the second
27924// request. This prevents clients from accidentally creating duplicate
27925// commitments.
27926//
27927// The request ID must be a valid UUID with the exception that zero UUID
27928// is not supported (00000000-0000-0000-0000-000000000000).
27929func (c *BackendBucketsInsertCall) RequestId(requestId string) *BackendBucketsInsertCall {
27930	c.urlParams_.Set("requestId", requestId)
27931	return c
27932}
27933
27934// Fields allows partial responses to be retrieved. See
27935// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27936// for more information.
27937func (c *BackendBucketsInsertCall) Fields(s ...googleapi.Field) *BackendBucketsInsertCall {
27938	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27939	return c
27940}
27941
27942// Context sets the context to be used in this call's Do method. Any
27943// pending HTTP request will be aborted if the provided context is
27944// canceled.
27945func (c *BackendBucketsInsertCall) Context(ctx context.Context) *BackendBucketsInsertCall {
27946	c.ctx_ = ctx
27947	return c
27948}
27949
27950// Header returns an http.Header that can be modified by the caller to
27951// add HTTP headers to the request.
27952func (c *BackendBucketsInsertCall) Header() http.Header {
27953	if c.header_ == nil {
27954		c.header_ = make(http.Header)
27955	}
27956	return c.header_
27957}
27958
27959func (c *BackendBucketsInsertCall) doRequest(alt string) (*http.Response, error) {
27960	reqHeaders := make(http.Header)
27961	for k, v := range c.header_ {
27962		reqHeaders[k] = v
27963	}
27964	reqHeaders.Set("User-Agent", c.s.userAgent())
27965	var body io.Reader = nil
27966	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
27967	if err != nil {
27968		return nil, err
27969	}
27970	reqHeaders.Set("Content-Type", "application/json")
27971	c.urlParams_.Set("alt", alt)
27972	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets")
27973	urls += "?" + c.urlParams_.Encode()
27974	req, _ := http.NewRequest("POST", urls, body)
27975	req.Header = reqHeaders
27976	googleapi.Expand(req.URL, map[string]string{
27977		"project": c.project,
27978	})
27979	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27980}
27981
27982// Do executes the "compute.backendBuckets.insert" call.
27983// Exactly one of *Operation or error will be non-nil. Any non-2xx
27984// status code is an error. Response headers are in either
27985// *Operation.ServerResponse.Header or (if a response was returned at
27986// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
27987// to check whether the returned error was because
27988// http.StatusNotModified was returned.
27989func (c *BackendBucketsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
27990	gensupport.SetOptions(c.urlParams_, opts...)
27991	res, err := c.doRequest("json")
27992	if res != nil && res.StatusCode == http.StatusNotModified {
27993		if res.Body != nil {
27994			res.Body.Close()
27995		}
27996		return nil, &googleapi.Error{
27997			Code:   res.StatusCode,
27998			Header: res.Header,
27999		}
28000	}
28001	if err != nil {
28002		return nil, err
28003	}
28004	defer googleapi.CloseBody(res)
28005	if err := googleapi.CheckResponse(res); err != nil {
28006		return nil, err
28007	}
28008	ret := &Operation{
28009		ServerResponse: googleapi.ServerResponse{
28010			Header:         res.Header,
28011			HTTPStatusCode: res.StatusCode,
28012		},
28013	}
28014	target := &ret
28015	if err := gensupport.DecodeResponse(target, res); err != nil {
28016		return nil, err
28017	}
28018	return ret, nil
28019	// {
28020	//   "description": "Creates a BackendBucket resource in the specified project using the data included in the request.",
28021	//   "httpMethod": "POST",
28022	//   "id": "compute.backendBuckets.insert",
28023	//   "parameterOrder": [
28024	//     "project"
28025	//   ],
28026	//   "parameters": {
28027	//     "project": {
28028	//       "description": "Project ID for this request.",
28029	//       "location": "path",
28030	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
28031	//       "required": true,
28032	//       "type": "string"
28033	//     },
28034	//     "requestId": {
28035	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
28036	//       "location": "query",
28037	//       "type": "string"
28038	//     }
28039	//   },
28040	//   "path": "{project}/global/backendBuckets",
28041	//   "request": {
28042	//     "$ref": "BackendBucket"
28043	//   },
28044	//   "response": {
28045	//     "$ref": "Operation"
28046	//   },
28047	//   "scopes": [
28048	//     "https://www.googleapis.com/auth/cloud-platform",
28049	//     "https://www.googleapis.com/auth/compute"
28050	//   ]
28051	// }
28052
28053}
28054
28055// method id "compute.backendBuckets.list":
28056
28057type BackendBucketsListCall struct {
28058	s            *Service
28059	project      string
28060	urlParams_   gensupport.URLParams
28061	ifNoneMatch_ string
28062	ctx_         context.Context
28063	header_      http.Header
28064}
28065
28066// List: Retrieves the list of BackendBucket resources available to the
28067// specified project.
28068func (r *BackendBucketsService) List(project string) *BackendBucketsListCall {
28069	c := &BackendBucketsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
28070	c.project = project
28071	return c
28072}
28073
28074// Filter sets the optional parameter "filter": A filter expression that
28075// filters resources listed in the response. The expression must specify
28076// the field name, a comparison operator, and the value that you want to
28077// use for filtering. The value must be a string, a number, or a
28078// boolean. The comparison operator must be either =, !=, >, or <.
28079//
28080// For example, if you are filtering Compute Engine instances, you can
28081// exclude instances named example-instance by specifying name !=
28082// example-instance.
28083//
28084// You can also filter nested fields. For example, you could specify
28085// scheduling.automaticRestart = false to include instances only if they
28086// are not scheduled for automatic restarts. You can use filtering on
28087// nested fields to filter based on resource labels.
28088//
28089// To filter on multiple expressions, provide each separate expression
28090// within parentheses. For example, (scheduling.automaticRestart = true)
28091// (cpuPlatform = "Intel Skylake"). By default, each expression is an
28092// AND expression. However, you can include AND and OR expressions
28093// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
28094// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
28095// true).
28096func (c *BackendBucketsListCall) Filter(filter string) *BackendBucketsListCall {
28097	c.urlParams_.Set("filter", filter)
28098	return c
28099}
28100
28101// MaxResults sets the optional parameter "maxResults": The maximum
28102// number of results per page that should be returned. If the number of
28103// available results is larger than maxResults, Compute Engine returns a
28104// nextPageToken that can be used to get the next page of results in
28105// subsequent list requests. Acceptable values are 0 to 500, inclusive.
28106// (Default: 500)
28107func (c *BackendBucketsListCall) MaxResults(maxResults int64) *BackendBucketsListCall {
28108	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
28109	return c
28110}
28111
28112// OrderBy sets the optional parameter "orderBy": Sorts list results by
28113// a certain order. By default, results are returned in alphanumerical
28114// order based on the resource name.
28115//
28116// You can also sort results in descending order based on the creation
28117// timestamp using orderBy="creationTimestamp desc". This sorts results
28118// based on the creationTimestamp field in reverse chronological order
28119// (newest result first). Use this to sort resources like operations so
28120// that the newest operation is returned first.
28121//
28122// Currently, only sorting by name or creationTimestamp desc is
28123// supported.
28124func (c *BackendBucketsListCall) OrderBy(orderBy string) *BackendBucketsListCall {
28125	c.urlParams_.Set("orderBy", orderBy)
28126	return c
28127}
28128
28129// PageToken sets the optional parameter "pageToken": Specifies a page
28130// token to use. Set pageToken to the nextPageToken returned by a
28131// previous list request to get the next page of results.
28132func (c *BackendBucketsListCall) PageToken(pageToken string) *BackendBucketsListCall {
28133	c.urlParams_.Set("pageToken", pageToken)
28134	return c
28135}
28136
28137// Fields allows partial responses to be retrieved. See
28138// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
28139// for more information.
28140func (c *BackendBucketsListCall) Fields(s ...googleapi.Field) *BackendBucketsListCall {
28141	c.urlParams_.Set("fields", googleapi.CombineFields(s))
28142	return c
28143}
28144
28145// IfNoneMatch sets the optional parameter which makes the operation
28146// fail if the object's ETag matches the given value. This is useful for
28147// getting updates only after the object has changed since the last
28148// request. Use googleapi.IsNotModified to check whether the response
28149// error from Do is the result of In-None-Match.
28150func (c *BackendBucketsListCall) IfNoneMatch(entityTag string) *BackendBucketsListCall {
28151	c.ifNoneMatch_ = entityTag
28152	return c
28153}
28154
28155// Context sets the context to be used in this call's Do method. Any
28156// pending HTTP request will be aborted if the provided context is
28157// canceled.
28158func (c *BackendBucketsListCall) Context(ctx context.Context) *BackendBucketsListCall {
28159	c.ctx_ = ctx
28160	return c
28161}
28162
28163// Header returns an http.Header that can be modified by the caller to
28164// add HTTP headers to the request.
28165func (c *BackendBucketsListCall) Header() http.Header {
28166	if c.header_ == nil {
28167		c.header_ = make(http.Header)
28168	}
28169	return c.header_
28170}
28171
28172func (c *BackendBucketsListCall) doRequest(alt string) (*http.Response, error) {
28173	reqHeaders := make(http.Header)
28174	for k, v := range c.header_ {
28175		reqHeaders[k] = v
28176	}
28177	reqHeaders.Set("User-Agent", c.s.userAgent())
28178	if c.ifNoneMatch_ != "" {
28179		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
28180	}
28181	var body io.Reader = nil
28182	c.urlParams_.Set("alt", alt)
28183	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets")
28184	urls += "?" + c.urlParams_.Encode()
28185	req, _ := http.NewRequest("GET", urls, body)
28186	req.Header = reqHeaders
28187	googleapi.Expand(req.URL, map[string]string{
28188		"project": c.project,
28189	})
28190	return gensupport.SendRequest(c.ctx_, c.s.client, req)
28191}
28192
28193// Do executes the "compute.backendBuckets.list" call.
28194// Exactly one of *BackendBucketList or error will be non-nil. Any
28195// non-2xx status code is an error. Response headers are in either
28196// *BackendBucketList.ServerResponse.Header or (if a response was
28197// returned at all) in error.(*googleapi.Error).Header. Use
28198// googleapi.IsNotModified to check whether the returned error was
28199// because http.StatusNotModified was returned.
28200func (c *BackendBucketsListCall) Do(opts ...googleapi.CallOption) (*BackendBucketList, error) {
28201	gensupport.SetOptions(c.urlParams_, opts...)
28202	res, err := c.doRequest("json")
28203	if res != nil && res.StatusCode == http.StatusNotModified {
28204		if res.Body != nil {
28205			res.Body.Close()
28206		}
28207		return nil, &googleapi.Error{
28208			Code:   res.StatusCode,
28209			Header: res.Header,
28210		}
28211	}
28212	if err != nil {
28213		return nil, err
28214	}
28215	defer googleapi.CloseBody(res)
28216	if err := googleapi.CheckResponse(res); err != nil {
28217		return nil, err
28218	}
28219	ret := &BackendBucketList{
28220		ServerResponse: googleapi.ServerResponse{
28221			Header:         res.Header,
28222			HTTPStatusCode: res.StatusCode,
28223		},
28224	}
28225	target := &ret
28226	if err := gensupport.DecodeResponse(target, res); err != nil {
28227		return nil, err
28228	}
28229	return ret, nil
28230	// {
28231	//   "description": "Retrieves the list of BackendBucket resources available to the specified project.",
28232	//   "httpMethod": "GET",
28233	//   "id": "compute.backendBuckets.list",
28234	//   "parameterOrder": [
28235	//     "project"
28236	//   ],
28237	//   "parameters": {
28238	//     "filter": {
28239	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
28240	//       "location": "query",
28241	//       "type": "string"
28242	//     },
28243	//     "maxResults": {
28244	//       "default": "500",
28245	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
28246	//       "format": "uint32",
28247	//       "location": "query",
28248	//       "minimum": "0",
28249	//       "type": "integer"
28250	//     },
28251	//     "orderBy": {
28252	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
28253	//       "location": "query",
28254	//       "type": "string"
28255	//     },
28256	//     "pageToken": {
28257	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
28258	//       "location": "query",
28259	//       "type": "string"
28260	//     },
28261	//     "project": {
28262	//       "description": "Project ID for this request.",
28263	//       "location": "path",
28264	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
28265	//       "required": true,
28266	//       "type": "string"
28267	//     }
28268	//   },
28269	//   "path": "{project}/global/backendBuckets",
28270	//   "response": {
28271	//     "$ref": "BackendBucketList"
28272	//   },
28273	//   "scopes": [
28274	//     "https://www.googleapis.com/auth/cloud-platform",
28275	//     "https://www.googleapis.com/auth/compute",
28276	//     "https://www.googleapis.com/auth/compute.readonly"
28277	//   ]
28278	// }
28279
28280}
28281
28282// Pages invokes f for each page of results.
28283// A non-nil error returned from f will halt the iteration.
28284// The provided context supersedes any context provided to the Context method.
28285func (c *BackendBucketsListCall) Pages(ctx context.Context, f func(*BackendBucketList) error) error {
28286	c.ctx_ = ctx
28287	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
28288	for {
28289		x, err := c.Do()
28290		if err != nil {
28291			return err
28292		}
28293		if err := f(x); err != nil {
28294			return err
28295		}
28296		if x.NextPageToken == "" {
28297			return nil
28298		}
28299		c.PageToken(x.NextPageToken)
28300	}
28301}
28302
28303// method id "compute.backendBuckets.patch":
28304
28305type BackendBucketsPatchCall struct {
28306	s             *Service
28307	project       string
28308	backendBucket string
28309	backendbucket *BackendBucket
28310	urlParams_    gensupport.URLParams
28311	ctx_          context.Context
28312	header_       http.Header
28313}
28314
28315// Patch: Updates the specified BackendBucket resource with the data
28316// included in the request. This method supports PATCH semantics and
28317// uses the JSON merge patch format and processing rules.
28318func (r *BackendBucketsService) Patch(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsPatchCall {
28319	c := &BackendBucketsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
28320	c.project = project
28321	c.backendBucket = backendBucket
28322	c.backendbucket = backendbucket
28323	return c
28324}
28325
28326// RequestId sets the optional parameter "requestId": An optional
28327// request ID to identify requests. Specify a unique request ID so that
28328// if you must retry your request, the server will know to ignore the
28329// request if it has already been completed.
28330//
28331// For example, consider a situation where you make an initial request
28332// and the request times out. If you make the request again with the
28333// same request ID, the server can check if original operation with the
28334// same request ID was received, and if so, will ignore the second
28335// request. This prevents clients from accidentally creating duplicate
28336// commitments.
28337//
28338// The request ID must be a valid UUID with the exception that zero UUID
28339// is not supported (00000000-0000-0000-0000-000000000000).
28340func (c *BackendBucketsPatchCall) RequestId(requestId string) *BackendBucketsPatchCall {
28341	c.urlParams_.Set("requestId", requestId)
28342	return c
28343}
28344
28345// Fields allows partial responses to be retrieved. See
28346// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
28347// for more information.
28348func (c *BackendBucketsPatchCall) Fields(s ...googleapi.Field) *BackendBucketsPatchCall {
28349	c.urlParams_.Set("fields", googleapi.CombineFields(s))
28350	return c
28351}
28352
28353// Context sets the context to be used in this call's Do method. Any
28354// pending HTTP request will be aborted if the provided context is
28355// canceled.
28356func (c *BackendBucketsPatchCall) Context(ctx context.Context) *BackendBucketsPatchCall {
28357	c.ctx_ = ctx
28358	return c
28359}
28360
28361// Header returns an http.Header that can be modified by the caller to
28362// add HTTP headers to the request.
28363func (c *BackendBucketsPatchCall) Header() http.Header {
28364	if c.header_ == nil {
28365		c.header_ = make(http.Header)
28366	}
28367	return c.header_
28368}
28369
28370func (c *BackendBucketsPatchCall) doRequest(alt string) (*http.Response, error) {
28371	reqHeaders := make(http.Header)
28372	for k, v := range c.header_ {
28373		reqHeaders[k] = v
28374	}
28375	reqHeaders.Set("User-Agent", c.s.userAgent())
28376	var body io.Reader = nil
28377	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
28378	if err != nil {
28379		return nil, err
28380	}
28381	reqHeaders.Set("Content-Type", "application/json")
28382	c.urlParams_.Set("alt", alt)
28383	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
28384	urls += "?" + c.urlParams_.Encode()
28385	req, _ := http.NewRequest("PATCH", urls, body)
28386	req.Header = reqHeaders
28387	googleapi.Expand(req.URL, map[string]string{
28388		"project":       c.project,
28389		"backendBucket": c.backendBucket,
28390	})
28391	return gensupport.SendRequest(c.ctx_, c.s.client, req)
28392}
28393
28394// Do executes the "compute.backendBuckets.patch" call.
28395// Exactly one of *Operation or error will be non-nil. Any non-2xx
28396// status code is an error. Response headers are in either
28397// *Operation.ServerResponse.Header or (if a response was returned at
28398// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
28399// to check whether the returned error was because
28400// http.StatusNotModified was returned.
28401func (c *BackendBucketsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
28402	gensupport.SetOptions(c.urlParams_, opts...)
28403	res, err := c.doRequest("json")
28404	if res != nil && res.StatusCode == http.StatusNotModified {
28405		if res.Body != nil {
28406			res.Body.Close()
28407		}
28408		return nil, &googleapi.Error{
28409			Code:   res.StatusCode,
28410			Header: res.Header,
28411		}
28412	}
28413	if err != nil {
28414		return nil, err
28415	}
28416	defer googleapi.CloseBody(res)
28417	if err := googleapi.CheckResponse(res); err != nil {
28418		return nil, err
28419	}
28420	ret := &Operation{
28421		ServerResponse: googleapi.ServerResponse{
28422			Header:         res.Header,
28423			HTTPStatusCode: res.StatusCode,
28424		},
28425	}
28426	target := &ret
28427	if err := gensupport.DecodeResponse(target, res); err != nil {
28428		return nil, err
28429	}
28430	return ret, nil
28431	// {
28432	//   "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.",
28433	//   "httpMethod": "PATCH",
28434	//   "id": "compute.backendBuckets.patch",
28435	//   "parameterOrder": [
28436	//     "project",
28437	//     "backendBucket"
28438	//   ],
28439	//   "parameters": {
28440	//     "backendBucket": {
28441	//       "description": "Name of the BackendBucket resource to patch.",
28442	//       "location": "path",
28443	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
28444	//       "required": true,
28445	//       "type": "string"
28446	//     },
28447	//     "project": {
28448	//       "description": "Project ID for this request.",
28449	//       "location": "path",
28450	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
28451	//       "required": true,
28452	//       "type": "string"
28453	//     },
28454	//     "requestId": {
28455	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
28456	//       "location": "query",
28457	//       "type": "string"
28458	//     }
28459	//   },
28460	//   "path": "{project}/global/backendBuckets/{backendBucket}",
28461	//   "request": {
28462	//     "$ref": "BackendBucket"
28463	//   },
28464	//   "response": {
28465	//     "$ref": "Operation"
28466	//   },
28467	//   "scopes": [
28468	//     "https://www.googleapis.com/auth/cloud-platform",
28469	//     "https://www.googleapis.com/auth/compute"
28470	//   ]
28471	// }
28472
28473}
28474
28475// method id "compute.backendBuckets.update":
28476
28477type BackendBucketsUpdateCall struct {
28478	s             *Service
28479	project       string
28480	backendBucket string
28481	backendbucket *BackendBucket
28482	urlParams_    gensupport.URLParams
28483	ctx_          context.Context
28484	header_       http.Header
28485}
28486
28487// Update: Updates the specified BackendBucket resource with the data
28488// included in the request.
28489func (r *BackendBucketsService) Update(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsUpdateCall {
28490	c := &BackendBucketsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
28491	c.project = project
28492	c.backendBucket = backendBucket
28493	c.backendbucket = backendbucket
28494	return c
28495}
28496
28497// RequestId sets the optional parameter "requestId": An optional
28498// request ID to identify requests. Specify a unique request ID so that
28499// if you must retry your request, the server will know to ignore the
28500// request if it has already been completed.
28501//
28502// For example, consider a situation where you make an initial request
28503// and the request times out. If you make the request again with the
28504// same request ID, the server can check if original operation with the
28505// same request ID was received, and if so, will ignore the second
28506// request. This prevents clients from accidentally creating duplicate
28507// commitments.
28508//
28509// The request ID must be a valid UUID with the exception that zero UUID
28510// is not supported (00000000-0000-0000-0000-000000000000).
28511func (c *BackendBucketsUpdateCall) RequestId(requestId string) *BackendBucketsUpdateCall {
28512	c.urlParams_.Set("requestId", requestId)
28513	return c
28514}
28515
28516// Fields allows partial responses to be retrieved. See
28517// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
28518// for more information.
28519func (c *BackendBucketsUpdateCall) Fields(s ...googleapi.Field) *BackendBucketsUpdateCall {
28520	c.urlParams_.Set("fields", googleapi.CombineFields(s))
28521	return c
28522}
28523
28524// Context sets the context to be used in this call's Do method. Any
28525// pending HTTP request will be aborted if the provided context is
28526// canceled.
28527func (c *BackendBucketsUpdateCall) Context(ctx context.Context) *BackendBucketsUpdateCall {
28528	c.ctx_ = ctx
28529	return c
28530}
28531
28532// Header returns an http.Header that can be modified by the caller to
28533// add HTTP headers to the request.
28534func (c *BackendBucketsUpdateCall) Header() http.Header {
28535	if c.header_ == nil {
28536		c.header_ = make(http.Header)
28537	}
28538	return c.header_
28539}
28540
28541func (c *BackendBucketsUpdateCall) doRequest(alt string) (*http.Response, error) {
28542	reqHeaders := make(http.Header)
28543	for k, v := range c.header_ {
28544		reqHeaders[k] = v
28545	}
28546	reqHeaders.Set("User-Agent", c.s.userAgent())
28547	var body io.Reader = nil
28548	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
28549	if err != nil {
28550		return nil, err
28551	}
28552	reqHeaders.Set("Content-Type", "application/json")
28553	c.urlParams_.Set("alt", alt)
28554	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
28555	urls += "?" + c.urlParams_.Encode()
28556	req, _ := http.NewRequest("PUT", urls, body)
28557	req.Header = reqHeaders
28558	googleapi.Expand(req.URL, map[string]string{
28559		"project":       c.project,
28560		"backendBucket": c.backendBucket,
28561	})
28562	return gensupport.SendRequest(c.ctx_, c.s.client, req)
28563}
28564
28565// Do executes the "compute.backendBuckets.update" call.
28566// Exactly one of *Operation or error will be non-nil. Any non-2xx
28567// status code is an error. Response headers are in either
28568// *Operation.ServerResponse.Header or (if a response was returned at
28569// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
28570// to check whether the returned error was because
28571// http.StatusNotModified was returned.
28572func (c *BackendBucketsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
28573	gensupport.SetOptions(c.urlParams_, opts...)
28574	res, err := c.doRequest("json")
28575	if res != nil && res.StatusCode == http.StatusNotModified {
28576		if res.Body != nil {
28577			res.Body.Close()
28578		}
28579		return nil, &googleapi.Error{
28580			Code:   res.StatusCode,
28581			Header: res.Header,
28582		}
28583	}
28584	if err != nil {
28585		return nil, err
28586	}
28587	defer googleapi.CloseBody(res)
28588	if err := googleapi.CheckResponse(res); err != nil {
28589		return nil, err
28590	}
28591	ret := &Operation{
28592		ServerResponse: googleapi.ServerResponse{
28593			Header:         res.Header,
28594			HTTPStatusCode: res.StatusCode,
28595		},
28596	}
28597	target := &ret
28598	if err := gensupport.DecodeResponse(target, res); err != nil {
28599		return nil, err
28600	}
28601	return ret, nil
28602	// {
28603	//   "description": "Updates the specified BackendBucket resource with the data included in the request.",
28604	//   "httpMethod": "PUT",
28605	//   "id": "compute.backendBuckets.update",
28606	//   "parameterOrder": [
28607	//     "project",
28608	//     "backendBucket"
28609	//   ],
28610	//   "parameters": {
28611	//     "backendBucket": {
28612	//       "description": "Name of the BackendBucket resource to update.",
28613	//       "location": "path",
28614	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
28615	//       "required": true,
28616	//       "type": "string"
28617	//     },
28618	//     "project": {
28619	//       "description": "Project ID for this request.",
28620	//       "location": "path",
28621	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
28622	//       "required": true,
28623	//       "type": "string"
28624	//     },
28625	//     "requestId": {
28626	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
28627	//       "location": "query",
28628	//       "type": "string"
28629	//     }
28630	//   },
28631	//   "path": "{project}/global/backendBuckets/{backendBucket}",
28632	//   "request": {
28633	//     "$ref": "BackendBucket"
28634	//   },
28635	//   "response": {
28636	//     "$ref": "Operation"
28637	//   },
28638	//   "scopes": [
28639	//     "https://www.googleapis.com/auth/cloud-platform",
28640	//     "https://www.googleapis.com/auth/compute"
28641	//   ]
28642	// }
28643
28644}
28645
28646// method id "compute.backendServices.aggregatedList":
28647
28648type BackendServicesAggregatedListCall struct {
28649	s            *Service
28650	project      string
28651	urlParams_   gensupport.URLParams
28652	ifNoneMatch_ string
28653	ctx_         context.Context
28654	header_      http.Header
28655}
28656
28657// AggregatedList: Retrieves the list of all BackendService resources,
28658// regional and global, available to the specified project.
28659func (r *BackendServicesService) AggregatedList(project string) *BackendServicesAggregatedListCall {
28660	c := &BackendServicesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
28661	c.project = project
28662	return c
28663}
28664
28665// Filter sets the optional parameter "filter": A filter expression that
28666// filters resources listed in the response. The expression must specify
28667// the field name, a comparison operator, and the value that you want to
28668// use for filtering. The value must be a string, a number, or a
28669// boolean. The comparison operator must be either =, !=, >, or <.
28670//
28671// For example, if you are filtering Compute Engine instances, you can
28672// exclude instances named example-instance by specifying name !=
28673// example-instance.
28674//
28675// You can also filter nested fields. For example, you could specify
28676// scheduling.automaticRestart = false to include instances only if they
28677// are not scheduled for automatic restarts. You can use filtering on
28678// nested fields to filter based on resource labels.
28679//
28680// To filter on multiple expressions, provide each separate expression
28681// within parentheses. For example, (scheduling.automaticRestart = true)
28682// (cpuPlatform = "Intel Skylake"). By default, each expression is an
28683// AND expression. However, you can include AND and OR expressions
28684// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
28685// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
28686// true).
28687func (c *BackendServicesAggregatedListCall) Filter(filter string) *BackendServicesAggregatedListCall {
28688	c.urlParams_.Set("filter", filter)
28689	return c
28690}
28691
28692// MaxResults sets the optional parameter "maxResults": The maximum
28693// number of results per page that should be returned. If the number of
28694// available results is larger than maxResults, Compute Engine returns a
28695// nextPageToken that can be used to get the next page of results in
28696// subsequent list requests. Acceptable values are 0 to 500, inclusive.
28697// (Default: 500)
28698func (c *BackendServicesAggregatedListCall) MaxResults(maxResults int64) *BackendServicesAggregatedListCall {
28699	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
28700	return c
28701}
28702
28703// OrderBy sets the optional parameter "orderBy": Sorts list results by
28704// a certain order. By default, results are returned in alphanumerical
28705// order based on the resource name.
28706//
28707// You can also sort results in descending order based on the creation
28708// timestamp using orderBy="creationTimestamp desc". This sorts results
28709// based on the creationTimestamp field in reverse chronological order
28710// (newest result first). Use this to sort resources like operations so
28711// that the newest operation is returned first.
28712//
28713// Currently, only sorting by name or creationTimestamp desc is
28714// supported.
28715func (c *BackendServicesAggregatedListCall) OrderBy(orderBy string) *BackendServicesAggregatedListCall {
28716	c.urlParams_.Set("orderBy", orderBy)
28717	return c
28718}
28719
28720// PageToken sets the optional parameter "pageToken": Specifies a page
28721// token to use. Set pageToken to the nextPageToken returned by a
28722// previous list request to get the next page of results.
28723func (c *BackendServicesAggregatedListCall) PageToken(pageToken string) *BackendServicesAggregatedListCall {
28724	c.urlParams_.Set("pageToken", pageToken)
28725	return c
28726}
28727
28728// Fields allows partial responses to be retrieved. See
28729// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
28730// for more information.
28731func (c *BackendServicesAggregatedListCall) Fields(s ...googleapi.Field) *BackendServicesAggregatedListCall {
28732	c.urlParams_.Set("fields", googleapi.CombineFields(s))
28733	return c
28734}
28735
28736// IfNoneMatch sets the optional parameter which makes the operation
28737// fail if the object's ETag matches the given value. This is useful for
28738// getting updates only after the object has changed since the last
28739// request. Use googleapi.IsNotModified to check whether the response
28740// error from Do is the result of In-None-Match.
28741func (c *BackendServicesAggregatedListCall) IfNoneMatch(entityTag string) *BackendServicesAggregatedListCall {
28742	c.ifNoneMatch_ = entityTag
28743	return c
28744}
28745
28746// Context sets the context to be used in this call's Do method. Any
28747// pending HTTP request will be aborted if the provided context is
28748// canceled.
28749func (c *BackendServicesAggregatedListCall) Context(ctx context.Context) *BackendServicesAggregatedListCall {
28750	c.ctx_ = ctx
28751	return c
28752}
28753
28754// Header returns an http.Header that can be modified by the caller to
28755// add HTTP headers to the request.
28756func (c *BackendServicesAggregatedListCall) Header() http.Header {
28757	if c.header_ == nil {
28758		c.header_ = make(http.Header)
28759	}
28760	return c.header_
28761}
28762
28763func (c *BackendServicesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
28764	reqHeaders := make(http.Header)
28765	for k, v := range c.header_ {
28766		reqHeaders[k] = v
28767	}
28768	reqHeaders.Set("User-Agent", c.s.userAgent())
28769	if c.ifNoneMatch_ != "" {
28770		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
28771	}
28772	var body io.Reader = nil
28773	c.urlParams_.Set("alt", alt)
28774	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/backendServices")
28775	urls += "?" + c.urlParams_.Encode()
28776	req, _ := http.NewRequest("GET", urls, body)
28777	req.Header = reqHeaders
28778	googleapi.Expand(req.URL, map[string]string{
28779		"project": c.project,
28780	})
28781	return gensupport.SendRequest(c.ctx_, c.s.client, req)
28782}
28783
28784// Do executes the "compute.backendServices.aggregatedList" call.
28785// Exactly one of *BackendServiceAggregatedList or error will be
28786// non-nil. Any non-2xx status code is an error. Response headers are in
28787// either *BackendServiceAggregatedList.ServerResponse.Header or (if a
28788// response was returned at all) in error.(*googleapi.Error).Header. Use
28789// googleapi.IsNotModified to check whether the returned error was
28790// because http.StatusNotModified was returned.
28791func (c *BackendServicesAggregatedListCall) Do(opts ...googleapi.CallOption) (*BackendServiceAggregatedList, error) {
28792	gensupport.SetOptions(c.urlParams_, opts...)
28793	res, err := c.doRequest("json")
28794	if res != nil && res.StatusCode == http.StatusNotModified {
28795		if res.Body != nil {
28796			res.Body.Close()
28797		}
28798		return nil, &googleapi.Error{
28799			Code:   res.StatusCode,
28800			Header: res.Header,
28801		}
28802	}
28803	if err != nil {
28804		return nil, err
28805	}
28806	defer googleapi.CloseBody(res)
28807	if err := googleapi.CheckResponse(res); err != nil {
28808		return nil, err
28809	}
28810	ret := &BackendServiceAggregatedList{
28811		ServerResponse: googleapi.ServerResponse{
28812			Header:         res.Header,
28813			HTTPStatusCode: res.StatusCode,
28814		},
28815	}
28816	target := &ret
28817	if err := gensupport.DecodeResponse(target, res); err != nil {
28818		return nil, err
28819	}
28820	return ret, nil
28821	// {
28822	//   "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project.",
28823	//   "httpMethod": "GET",
28824	//   "id": "compute.backendServices.aggregatedList",
28825	//   "parameterOrder": [
28826	//     "project"
28827	//   ],
28828	//   "parameters": {
28829	//     "filter": {
28830	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
28831	//       "location": "query",
28832	//       "type": "string"
28833	//     },
28834	//     "maxResults": {
28835	//       "default": "500",
28836	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
28837	//       "format": "uint32",
28838	//       "location": "query",
28839	//       "minimum": "0",
28840	//       "type": "integer"
28841	//     },
28842	//     "orderBy": {
28843	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
28844	//       "location": "query",
28845	//       "type": "string"
28846	//     },
28847	//     "pageToken": {
28848	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
28849	//       "location": "query",
28850	//       "type": "string"
28851	//     },
28852	//     "project": {
28853	//       "description": "Name of the project scoping this request.",
28854	//       "location": "path",
28855	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
28856	//       "required": true,
28857	//       "type": "string"
28858	//     }
28859	//   },
28860	//   "path": "{project}/aggregated/backendServices",
28861	//   "response": {
28862	//     "$ref": "BackendServiceAggregatedList"
28863	//   },
28864	//   "scopes": [
28865	//     "https://www.googleapis.com/auth/cloud-platform",
28866	//     "https://www.googleapis.com/auth/compute",
28867	//     "https://www.googleapis.com/auth/compute.readonly"
28868	//   ]
28869	// }
28870
28871}
28872
28873// Pages invokes f for each page of results.
28874// A non-nil error returned from f will halt the iteration.
28875// The provided context supersedes any context provided to the Context method.
28876func (c *BackendServicesAggregatedListCall) Pages(ctx context.Context, f func(*BackendServiceAggregatedList) error) error {
28877	c.ctx_ = ctx
28878	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
28879	for {
28880		x, err := c.Do()
28881		if err != nil {
28882			return err
28883		}
28884		if err := f(x); err != nil {
28885			return err
28886		}
28887		if x.NextPageToken == "" {
28888			return nil
28889		}
28890		c.PageToken(x.NextPageToken)
28891	}
28892}
28893
28894// method id "compute.backendServices.delete":
28895
28896type BackendServicesDeleteCall struct {
28897	s              *Service
28898	project        string
28899	backendService string
28900	urlParams_     gensupport.URLParams
28901	ctx_           context.Context
28902	header_        http.Header
28903}
28904
28905// Delete: Deletes the specified BackendService resource.
28906// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/delete
28907func (r *BackendServicesService) Delete(project string, backendService string) *BackendServicesDeleteCall {
28908	c := &BackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
28909	c.project = project
28910	c.backendService = backendService
28911	return c
28912}
28913
28914// RequestId sets the optional parameter "requestId": An optional
28915// request ID to identify requests. Specify a unique request ID so that
28916// if you must retry your request, the server will know to ignore the
28917// request if it has already been completed.
28918//
28919// For example, consider a situation where you make an initial request
28920// and the request times out. If you make the request again with the
28921// same request ID, the server can check if original operation with the
28922// same request ID was received, and if so, will ignore the second
28923// request. This prevents clients from accidentally creating duplicate
28924// commitments.
28925//
28926// The request ID must be a valid UUID with the exception that zero UUID
28927// is not supported (00000000-0000-0000-0000-000000000000).
28928func (c *BackendServicesDeleteCall) RequestId(requestId string) *BackendServicesDeleteCall {
28929	c.urlParams_.Set("requestId", requestId)
28930	return c
28931}
28932
28933// Fields allows partial responses to be retrieved. See
28934// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
28935// for more information.
28936func (c *BackendServicesDeleteCall) Fields(s ...googleapi.Field) *BackendServicesDeleteCall {
28937	c.urlParams_.Set("fields", googleapi.CombineFields(s))
28938	return c
28939}
28940
28941// Context sets the context to be used in this call's Do method. Any
28942// pending HTTP request will be aborted if the provided context is
28943// canceled.
28944func (c *BackendServicesDeleteCall) Context(ctx context.Context) *BackendServicesDeleteCall {
28945	c.ctx_ = ctx
28946	return c
28947}
28948
28949// Header returns an http.Header that can be modified by the caller to
28950// add HTTP headers to the request.
28951func (c *BackendServicesDeleteCall) Header() http.Header {
28952	if c.header_ == nil {
28953		c.header_ = make(http.Header)
28954	}
28955	return c.header_
28956}
28957
28958func (c *BackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
28959	reqHeaders := make(http.Header)
28960	for k, v := range c.header_ {
28961		reqHeaders[k] = v
28962	}
28963	reqHeaders.Set("User-Agent", c.s.userAgent())
28964	var body io.Reader = nil
28965	c.urlParams_.Set("alt", alt)
28966	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
28967	urls += "?" + c.urlParams_.Encode()
28968	req, _ := http.NewRequest("DELETE", urls, body)
28969	req.Header = reqHeaders
28970	googleapi.Expand(req.URL, map[string]string{
28971		"project":        c.project,
28972		"backendService": c.backendService,
28973	})
28974	return gensupport.SendRequest(c.ctx_, c.s.client, req)
28975}
28976
28977// Do executes the "compute.backendServices.delete" call.
28978// Exactly one of *Operation or error will be non-nil. Any non-2xx
28979// status code is an error. Response headers are in either
28980// *Operation.ServerResponse.Header or (if a response was returned at
28981// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
28982// to check whether the returned error was because
28983// http.StatusNotModified was returned.
28984func (c *BackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
28985	gensupport.SetOptions(c.urlParams_, opts...)
28986	res, err := c.doRequest("json")
28987	if res != nil && res.StatusCode == http.StatusNotModified {
28988		if res.Body != nil {
28989			res.Body.Close()
28990		}
28991		return nil, &googleapi.Error{
28992			Code:   res.StatusCode,
28993			Header: res.Header,
28994		}
28995	}
28996	if err != nil {
28997		return nil, err
28998	}
28999	defer googleapi.CloseBody(res)
29000	if err := googleapi.CheckResponse(res); err != nil {
29001		return nil, err
29002	}
29003	ret := &Operation{
29004		ServerResponse: googleapi.ServerResponse{
29005			Header:         res.Header,
29006			HTTPStatusCode: res.StatusCode,
29007		},
29008	}
29009	target := &ret
29010	if err := gensupport.DecodeResponse(target, res); err != nil {
29011		return nil, err
29012	}
29013	return ret, nil
29014	// {
29015	//   "description": "Deletes the specified BackendService resource.",
29016	//   "httpMethod": "DELETE",
29017	//   "id": "compute.backendServices.delete",
29018	//   "parameterOrder": [
29019	//     "project",
29020	//     "backendService"
29021	//   ],
29022	//   "parameters": {
29023	//     "backendService": {
29024	//       "description": "Name of the BackendService resource to delete.",
29025	//       "location": "path",
29026	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
29027	//       "required": true,
29028	//       "type": "string"
29029	//     },
29030	//     "project": {
29031	//       "description": "Project ID for this request.",
29032	//       "location": "path",
29033	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
29034	//       "required": true,
29035	//       "type": "string"
29036	//     },
29037	//     "requestId": {
29038	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
29039	//       "location": "query",
29040	//       "type": "string"
29041	//     }
29042	//   },
29043	//   "path": "{project}/global/backendServices/{backendService}",
29044	//   "response": {
29045	//     "$ref": "Operation"
29046	//   },
29047	//   "scopes": [
29048	//     "https://www.googleapis.com/auth/cloud-platform",
29049	//     "https://www.googleapis.com/auth/compute"
29050	//   ]
29051	// }
29052
29053}
29054
29055// method id "compute.backendServices.get":
29056
29057type BackendServicesGetCall struct {
29058	s              *Service
29059	project        string
29060	backendService string
29061	urlParams_     gensupport.URLParams
29062	ifNoneMatch_   string
29063	ctx_           context.Context
29064	header_        http.Header
29065}
29066
29067// Get: Returns the specified BackendService resource. Gets a list of
29068// available backend services by making a list() request.
29069// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/get
29070func (r *BackendServicesService) Get(project string, backendService string) *BackendServicesGetCall {
29071	c := &BackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
29072	c.project = project
29073	c.backendService = backendService
29074	return c
29075}
29076
29077// Fields allows partial responses to be retrieved. See
29078// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
29079// for more information.
29080func (c *BackendServicesGetCall) Fields(s ...googleapi.Field) *BackendServicesGetCall {
29081	c.urlParams_.Set("fields", googleapi.CombineFields(s))
29082	return c
29083}
29084
29085// IfNoneMatch sets the optional parameter which makes the operation
29086// fail if the object's ETag matches the given value. This is useful for
29087// getting updates only after the object has changed since the last
29088// request. Use googleapi.IsNotModified to check whether the response
29089// error from Do is the result of In-None-Match.
29090func (c *BackendServicesGetCall) IfNoneMatch(entityTag string) *BackendServicesGetCall {
29091	c.ifNoneMatch_ = entityTag
29092	return c
29093}
29094
29095// Context sets the context to be used in this call's Do method. Any
29096// pending HTTP request will be aborted if the provided context is
29097// canceled.
29098func (c *BackendServicesGetCall) Context(ctx context.Context) *BackendServicesGetCall {
29099	c.ctx_ = ctx
29100	return c
29101}
29102
29103// Header returns an http.Header that can be modified by the caller to
29104// add HTTP headers to the request.
29105func (c *BackendServicesGetCall) Header() http.Header {
29106	if c.header_ == nil {
29107		c.header_ = make(http.Header)
29108	}
29109	return c.header_
29110}
29111
29112func (c *BackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
29113	reqHeaders := make(http.Header)
29114	for k, v := range c.header_ {
29115		reqHeaders[k] = v
29116	}
29117	reqHeaders.Set("User-Agent", c.s.userAgent())
29118	if c.ifNoneMatch_ != "" {
29119		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
29120	}
29121	var body io.Reader = nil
29122	c.urlParams_.Set("alt", alt)
29123	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
29124	urls += "?" + c.urlParams_.Encode()
29125	req, _ := http.NewRequest("GET", urls, body)
29126	req.Header = reqHeaders
29127	googleapi.Expand(req.URL, map[string]string{
29128		"project":        c.project,
29129		"backendService": c.backendService,
29130	})
29131	return gensupport.SendRequest(c.ctx_, c.s.client, req)
29132}
29133
29134// Do executes the "compute.backendServices.get" call.
29135// Exactly one of *BackendService or error will be non-nil. Any non-2xx
29136// status code is an error. Response headers are in either
29137// *BackendService.ServerResponse.Header or (if a response was returned
29138// at all) in error.(*googleapi.Error).Header. Use
29139// googleapi.IsNotModified to check whether the returned error was
29140// because http.StatusNotModified was returned.
29141func (c *BackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
29142	gensupport.SetOptions(c.urlParams_, opts...)
29143	res, err := c.doRequest("json")
29144	if res != nil && res.StatusCode == http.StatusNotModified {
29145		if res.Body != nil {
29146			res.Body.Close()
29147		}
29148		return nil, &googleapi.Error{
29149			Code:   res.StatusCode,
29150			Header: res.Header,
29151		}
29152	}
29153	if err != nil {
29154		return nil, err
29155	}
29156	defer googleapi.CloseBody(res)
29157	if err := googleapi.CheckResponse(res); err != nil {
29158		return nil, err
29159	}
29160	ret := &BackendService{
29161		ServerResponse: googleapi.ServerResponse{
29162			Header:         res.Header,
29163			HTTPStatusCode: res.StatusCode,
29164		},
29165	}
29166	target := &ret
29167	if err := gensupport.DecodeResponse(target, res); err != nil {
29168		return nil, err
29169	}
29170	return ret, nil
29171	// {
29172	//   "description": "Returns the specified BackendService resource. Gets a list of available backend services by making a list() request.",
29173	//   "httpMethod": "GET",
29174	//   "id": "compute.backendServices.get",
29175	//   "parameterOrder": [
29176	//     "project",
29177	//     "backendService"
29178	//   ],
29179	//   "parameters": {
29180	//     "backendService": {
29181	//       "description": "Name of the BackendService resource to return.",
29182	//       "location": "path",
29183	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
29184	//       "required": true,
29185	//       "type": "string"
29186	//     },
29187	//     "project": {
29188	//       "description": "Project ID for this request.",
29189	//       "location": "path",
29190	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
29191	//       "required": true,
29192	//       "type": "string"
29193	//     }
29194	//   },
29195	//   "path": "{project}/global/backendServices/{backendService}",
29196	//   "response": {
29197	//     "$ref": "BackendService"
29198	//   },
29199	//   "scopes": [
29200	//     "https://www.googleapis.com/auth/cloud-platform",
29201	//     "https://www.googleapis.com/auth/compute",
29202	//     "https://www.googleapis.com/auth/compute.readonly"
29203	//   ]
29204	// }
29205
29206}
29207
29208// method id "compute.backendServices.getHealth":
29209
29210type BackendServicesGetHealthCall struct {
29211	s                      *Service
29212	project                string
29213	backendService         string
29214	resourcegroupreference *ResourceGroupReference
29215	urlParams_             gensupport.URLParams
29216	ctx_                   context.Context
29217	header_                http.Header
29218}
29219
29220// GetHealth: Gets the most recent health check results for this
29221// BackendService.
29222// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/getHealth
29223func (r *BackendServicesService) GetHealth(project string, backendService string, resourcegroupreference *ResourceGroupReference) *BackendServicesGetHealthCall {
29224	c := &BackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
29225	c.project = project
29226	c.backendService = backendService
29227	c.resourcegroupreference = resourcegroupreference
29228	return c
29229}
29230
29231// Fields allows partial responses to be retrieved. See
29232// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
29233// for more information.
29234func (c *BackendServicesGetHealthCall) Fields(s ...googleapi.Field) *BackendServicesGetHealthCall {
29235	c.urlParams_.Set("fields", googleapi.CombineFields(s))
29236	return c
29237}
29238
29239// Context sets the context to be used in this call's Do method. Any
29240// pending HTTP request will be aborted if the provided context is
29241// canceled.
29242func (c *BackendServicesGetHealthCall) Context(ctx context.Context) *BackendServicesGetHealthCall {
29243	c.ctx_ = ctx
29244	return c
29245}
29246
29247// Header returns an http.Header that can be modified by the caller to
29248// add HTTP headers to the request.
29249func (c *BackendServicesGetHealthCall) Header() http.Header {
29250	if c.header_ == nil {
29251		c.header_ = make(http.Header)
29252	}
29253	return c.header_
29254}
29255
29256func (c *BackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
29257	reqHeaders := make(http.Header)
29258	for k, v := range c.header_ {
29259		reqHeaders[k] = v
29260	}
29261	reqHeaders.Set("User-Agent", c.s.userAgent())
29262	var body io.Reader = nil
29263	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
29264	if err != nil {
29265		return nil, err
29266	}
29267	reqHeaders.Set("Content-Type", "application/json")
29268	c.urlParams_.Set("alt", alt)
29269	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/getHealth")
29270	urls += "?" + c.urlParams_.Encode()
29271	req, _ := http.NewRequest("POST", urls, body)
29272	req.Header = reqHeaders
29273	googleapi.Expand(req.URL, map[string]string{
29274		"project":        c.project,
29275		"backendService": c.backendService,
29276	})
29277	return gensupport.SendRequest(c.ctx_, c.s.client, req)
29278}
29279
29280// Do executes the "compute.backendServices.getHealth" call.
29281// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
29282// Any non-2xx status code is an error. Response headers are in either
29283// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
29284// was returned at all) in error.(*googleapi.Error).Header. Use
29285// googleapi.IsNotModified to check whether the returned error was
29286// because http.StatusNotModified was returned.
29287func (c *BackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
29288	gensupport.SetOptions(c.urlParams_, opts...)
29289	res, err := c.doRequest("json")
29290	if res != nil && res.StatusCode == http.StatusNotModified {
29291		if res.Body != nil {
29292			res.Body.Close()
29293		}
29294		return nil, &googleapi.Error{
29295			Code:   res.StatusCode,
29296			Header: res.Header,
29297		}
29298	}
29299	if err != nil {
29300		return nil, err
29301	}
29302	defer googleapi.CloseBody(res)
29303	if err := googleapi.CheckResponse(res); err != nil {
29304		return nil, err
29305	}
29306	ret := &BackendServiceGroupHealth{
29307		ServerResponse: googleapi.ServerResponse{
29308			Header:         res.Header,
29309			HTTPStatusCode: res.StatusCode,
29310		},
29311	}
29312	target := &ret
29313	if err := gensupport.DecodeResponse(target, res); err != nil {
29314		return nil, err
29315	}
29316	return ret, nil
29317	// {
29318	//   "description": "Gets the most recent health check results for this BackendService.",
29319	//   "httpMethod": "POST",
29320	//   "id": "compute.backendServices.getHealth",
29321	//   "parameterOrder": [
29322	//     "project",
29323	//     "backendService"
29324	//   ],
29325	//   "parameters": {
29326	//     "backendService": {
29327	//       "description": "Name of the BackendService resource to which the queried instance belongs.",
29328	//       "location": "path",
29329	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
29330	//       "required": true,
29331	//       "type": "string"
29332	//     },
29333	//     "project": {
29334	//       "location": "path",
29335	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
29336	//       "required": true,
29337	//       "type": "string"
29338	//     }
29339	//   },
29340	//   "path": "{project}/global/backendServices/{backendService}/getHealth",
29341	//   "request": {
29342	//     "$ref": "ResourceGroupReference"
29343	//   },
29344	//   "response": {
29345	//     "$ref": "BackendServiceGroupHealth"
29346	//   },
29347	//   "scopes": [
29348	//     "https://www.googleapis.com/auth/cloud-platform",
29349	//     "https://www.googleapis.com/auth/compute",
29350	//     "https://www.googleapis.com/auth/compute.readonly"
29351	//   ]
29352	// }
29353
29354}
29355
29356// method id "compute.backendServices.insert":
29357
29358type BackendServicesInsertCall struct {
29359	s              *Service
29360	project        string
29361	backendservice *BackendService
29362	urlParams_     gensupport.URLParams
29363	ctx_           context.Context
29364	header_        http.Header
29365}
29366
29367// Insert: Creates a BackendService resource in the specified project
29368// using the data included in the request. There are several
29369// restrictions and guidelines to keep in mind when creating a backend
29370// service. Read  Restrictions and Guidelines for more information.
29371// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/insert
29372func (r *BackendServicesService) Insert(project string, backendservice *BackendService) *BackendServicesInsertCall {
29373	c := &BackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
29374	c.project = project
29375	c.backendservice = backendservice
29376	return c
29377}
29378
29379// RequestId sets the optional parameter "requestId": An optional
29380// request ID to identify requests. Specify a unique request ID so that
29381// if you must retry your request, the server will know to ignore the
29382// request if it has already been completed.
29383//
29384// For example, consider a situation where you make an initial request
29385// and the request times out. If you make the request again with the
29386// same request ID, the server can check if original operation with the
29387// same request ID was received, and if so, will ignore the second
29388// request. This prevents clients from accidentally creating duplicate
29389// commitments.
29390//
29391// The request ID must be a valid UUID with the exception that zero UUID
29392// is not supported (00000000-0000-0000-0000-000000000000).
29393func (c *BackendServicesInsertCall) RequestId(requestId string) *BackendServicesInsertCall {
29394	c.urlParams_.Set("requestId", requestId)
29395	return c
29396}
29397
29398// Fields allows partial responses to be retrieved. See
29399// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
29400// for more information.
29401func (c *BackendServicesInsertCall) Fields(s ...googleapi.Field) *BackendServicesInsertCall {
29402	c.urlParams_.Set("fields", googleapi.CombineFields(s))
29403	return c
29404}
29405
29406// Context sets the context to be used in this call's Do method. Any
29407// pending HTTP request will be aborted if the provided context is
29408// canceled.
29409func (c *BackendServicesInsertCall) Context(ctx context.Context) *BackendServicesInsertCall {
29410	c.ctx_ = ctx
29411	return c
29412}
29413
29414// Header returns an http.Header that can be modified by the caller to
29415// add HTTP headers to the request.
29416func (c *BackendServicesInsertCall) Header() http.Header {
29417	if c.header_ == nil {
29418		c.header_ = make(http.Header)
29419	}
29420	return c.header_
29421}
29422
29423func (c *BackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
29424	reqHeaders := make(http.Header)
29425	for k, v := range c.header_ {
29426		reqHeaders[k] = v
29427	}
29428	reqHeaders.Set("User-Agent", c.s.userAgent())
29429	var body io.Reader = nil
29430	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
29431	if err != nil {
29432		return nil, err
29433	}
29434	reqHeaders.Set("Content-Type", "application/json")
29435	c.urlParams_.Set("alt", alt)
29436	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices")
29437	urls += "?" + c.urlParams_.Encode()
29438	req, _ := http.NewRequest("POST", urls, body)
29439	req.Header = reqHeaders
29440	googleapi.Expand(req.URL, map[string]string{
29441		"project": c.project,
29442	})
29443	return gensupport.SendRequest(c.ctx_, c.s.client, req)
29444}
29445
29446// Do executes the "compute.backendServices.insert" call.
29447// Exactly one of *Operation or error will be non-nil. Any non-2xx
29448// status code is an error. Response headers are in either
29449// *Operation.ServerResponse.Header or (if a response was returned at
29450// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
29451// to check whether the returned error was because
29452// http.StatusNotModified was returned.
29453func (c *BackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
29454	gensupport.SetOptions(c.urlParams_, opts...)
29455	res, err := c.doRequest("json")
29456	if res != nil && res.StatusCode == http.StatusNotModified {
29457		if res.Body != nil {
29458			res.Body.Close()
29459		}
29460		return nil, &googleapi.Error{
29461			Code:   res.StatusCode,
29462			Header: res.Header,
29463		}
29464	}
29465	if err != nil {
29466		return nil, err
29467	}
29468	defer googleapi.CloseBody(res)
29469	if err := googleapi.CheckResponse(res); err != nil {
29470		return nil, err
29471	}
29472	ret := &Operation{
29473		ServerResponse: googleapi.ServerResponse{
29474			Header:         res.Header,
29475			HTTPStatusCode: res.StatusCode,
29476		},
29477	}
29478	target := &ret
29479	if err := gensupport.DecodeResponse(target, res); err != nil {
29480		return nil, err
29481	}
29482	return ret, nil
29483	// {
29484	//   "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.",
29485	//   "httpMethod": "POST",
29486	//   "id": "compute.backendServices.insert",
29487	//   "parameterOrder": [
29488	//     "project"
29489	//   ],
29490	//   "parameters": {
29491	//     "project": {
29492	//       "description": "Project ID for this request.",
29493	//       "location": "path",
29494	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
29495	//       "required": true,
29496	//       "type": "string"
29497	//     },
29498	//     "requestId": {
29499	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
29500	//       "location": "query",
29501	//       "type": "string"
29502	//     }
29503	//   },
29504	//   "path": "{project}/global/backendServices",
29505	//   "request": {
29506	//     "$ref": "BackendService"
29507	//   },
29508	//   "response": {
29509	//     "$ref": "Operation"
29510	//   },
29511	//   "scopes": [
29512	//     "https://www.googleapis.com/auth/cloud-platform",
29513	//     "https://www.googleapis.com/auth/compute"
29514	//   ]
29515	// }
29516
29517}
29518
29519// method id "compute.backendServices.list":
29520
29521type BackendServicesListCall struct {
29522	s            *Service
29523	project      string
29524	urlParams_   gensupport.URLParams
29525	ifNoneMatch_ string
29526	ctx_         context.Context
29527	header_      http.Header
29528}
29529
29530// List: Retrieves the list of BackendService resources available to the
29531// specified project.
29532// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/list
29533func (r *BackendServicesService) List(project string) *BackendServicesListCall {
29534	c := &BackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
29535	c.project = project
29536	return c
29537}
29538
29539// Filter sets the optional parameter "filter": A filter expression that
29540// filters resources listed in the response. The expression must specify
29541// the field name, a comparison operator, and the value that you want to
29542// use for filtering. The value must be a string, a number, or a
29543// boolean. The comparison operator must be either =, !=, >, or <.
29544//
29545// For example, if you are filtering Compute Engine instances, you can
29546// exclude instances named example-instance by specifying name !=
29547// example-instance.
29548//
29549// You can also filter nested fields. For example, you could specify
29550// scheduling.automaticRestart = false to include instances only if they
29551// are not scheduled for automatic restarts. You can use filtering on
29552// nested fields to filter based on resource labels.
29553//
29554// To filter on multiple expressions, provide each separate expression
29555// within parentheses. For example, (scheduling.automaticRestart = true)
29556// (cpuPlatform = "Intel Skylake"). By default, each expression is an
29557// AND expression. However, you can include AND and OR expressions
29558// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
29559// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
29560// true).
29561func (c *BackendServicesListCall) Filter(filter string) *BackendServicesListCall {
29562	c.urlParams_.Set("filter", filter)
29563	return c
29564}
29565
29566// MaxResults sets the optional parameter "maxResults": The maximum
29567// number of results per page that should be returned. If the number of
29568// available results is larger than maxResults, Compute Engine returns a
29569// nextPageToken that can be used to get the next page of results in
29570// subsequent list requests. Acceptable values are 0 to 500, inclusive.
29571// (Default: 500)
29572func (c *BackendServicesListCall) MaxResults(maxResults int64) *BackendServicesListCall {
29573	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
29574	return c
29575}
29576
29577// OrderBy sets the optional parameter "orderBy": Sorts list results by
29578// a certain order. By default, results are returned in alphanumerical
29579// order based on the resource name.
29580//
29581// You can also sort results in descending order based on the creation
29582// timestamp using orderBy="creationTimestamp desc". This sorts results
29583// based on the creationTimestamp field in reverse chronological order
29584// (newest result first). Use this to sort resources like operations so
29585// that the newest operation is returned first.
29586//
29587// Currently, only sorting by name or creationTimestamp desc is
29588// supported.
29589func (c *BackendServicesListCall) OrderBy(orderBy string) *BackendServicesListCall {
29590	c.urlParams_.Set("orderBy", orderBy)
29591	return c
29592}
29593
29594// PageToken sets the optional parameter "pageToken": Specifies a page
29595// token to use. Set pageToken to the nextPageToken returned by a
29596// previous list request to get the next page of results.
29597func (c *BackendServicesListCall) PageToken(pageToken string) *BackendServicesListCall {
29598	c.urlParams_.Set("pageToken", pageToken)
29599	return c
29600}
29601
29602// Fields allows partial responses to be retrieved. See
29603// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
29604// for more information.
29605func (c *BackendServicesListCall) Fields(s ...googleapi.Field) *BackendServicesListCall {
29606	c.urlParams_.Set("fields", googleapi.CombineFields(s))
29607	return c
29608}
29609
29610// IfNoneMatch sets the optional parameter which makes the operation
29611// fail if the object's ETag matches the given value. This is useful for
29612// getting updates only after the object has changed since the last
29613// request. Use googleapi.IsNotModified to check whether the response
29614// error from Do is the result of In-None-Match.
29615func (c *BackendServicesListCall) IfNoneMatch(entityTag string) *BackendServicesListCall {
29616	c.ifNoneMatch_ = entityTag
29617	return c
29618}
29619
29620// Context sets the context to be used in this call's Do method. Any
29621// pending HTTP request will be aborted if the provided context is
29622// canceled.
29623func (c *BackendServicesListCall) Context(ctx context.Context) *BackendServicesListCall {
29624	c.ctx_ = ctx
29625	return c
29626}
29627
29628// Header returns an http.Header that can be modified by the caller to
29629// add HTTP headers to the request.
29630func (c *BackendServicesListCall) Header() http.Header {
29631	if c.header_ == nil {
29632		c.header_ = make(http.Header)
29633	}
29634	return c.header_
29635}
29636
29637func (c *BackendServicesListCall) doRequest(alt string) (*http.Response, error) {
29638	reqHeaders := make(http.Header)
29639	for k, v := range c.header_ {
29640		reqHeaders[k] = v
29641	}
29642	reqHeaders.Set("User-Agent", c.s.userAgent())
29643	if c.ifNoneMatch_ != "" {
29644		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
29645	}
29646	var body io.Reader = nil
29647	c.urlParams_.Set("alt", alt)
29648	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices")
29649	urls += "?" + c.urlParams_.Encode()
29650	req, _ := http.NewRequest("GET", urls, body)
29651	req.Header = reqHeaders
29652	googleapi.Expand(req.URL, map[string]string{
29653		"project": c.project,
29654	})
29655	return gensupport.SendRequest(c.ctx_, c.s.client, req)
29656}
29657
29658// Do executes the "compute.backendServices.list" call.
29659// Exactly one of *BackendServiceList or error will be non-nil. Any
29660// non-2xx status code is an error. Response headers are in either
29661// *BackendServiceList.ServerResponse.Header or (if a response was
29662// returned at all) in error.(*googleapi.Error).Header. Use
29663// googleapi.IsNotModified to check whether the returned error was
29664// because http.StatusNotModified was returned.
29665func (c *BackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
29666	gensupport.SetOptions(c.urlParams_, opts...)
29667	res, err := c.doRequest("json")
29668	if res != nil && res.StatusCode == http.StatusNotModified {
29669		if res.Body != nil {
29670			res.Body.Close()
29671		}
29672		return nil, &googleapi.Error{
29673			Code:   res.StatusCode,
29674			Header: res.Header,
29675		}
29676	}
29677	if err != nil {
29678		return nil, err
29679	}
29680	defer googleapi.CloseBody(res)
29681	if err := googleapi.CheckResponse(res); err != nil {
29682		return nil, err
29683	}
29684	ret := &BackendServiceList{
29685		ServerResponse: googleapi.ServerResponse{
29686			Header:         res.Header,
29687			HTTPStatusCode: res.StatusCode,
29688		},
29689	}
29690	target := &ret
29691	if err := gensupport.DecodeResponse(target, res); err != nil {
29692		return nil, err
29693	}
29694	return ret, nil
29695	// {
29696	//   "description": "Retrieves the list of BackendService resources available to the specified project.",
29697	//   "httpMethod": "GET",
29698	//   "id": "compute.backendServices.list",
29699	//   "parameterOrder": [
29700	//     "project"
29701	//   ],
29702	//   "parameters": {
29703	//     "filter": {
29704	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
29705	//       "location": "query",
29706	//       "type": "string"
29707	//     },
29708	//     "maxResults": {
29709	//       "default": "500",
29710	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
29711	//       "format": "uint32",
29712	//       "location": "query",
29713	//       "minimum": "0",
29714	//       "type": "integer"
29715	//     },
29716	//     "orderBy": {
29717	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
29718	//       "location": "query",
29719	//       "type": "string"
29720	//     },
29721	//     "pageToken": {
29722	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
29723	//       "location": "query",
29724	//       "type": "string"
29725	//     },
29726	//     "project": {
29727	//       "description": "Project ID for this request.",
29728	//       "location": "path",
29729	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
29730	//       "required": true,
29731	//       "type": "string"
29732	//     }
29733	//   },
29734	//   "path": "{project}/global/backendServices",
29735	//   "response": {
29736	//     "$ref": "BackendServiceList"
29737	//   },
29738	//   "scopes": [
29739	//     "https://www.googleapis.com/auth/cloud-platform",
29740	//     "https://www.googleapis.com/auth/compute",
29741	//     "https://www.googleapis.com/auth/compute.readonly"
29742	//   ]
29743	// }
29744
29745}
29746
29747// Pages invokes f for each page of results.
29748// A non-nil error returned from f will halt the iteration.
29749// The provided context supersedes any context provided to the Context method.
29750func (c *BackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
29751	c.ctx_ = ctx
29752	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
29753	for {
29754		x, err := c.Do()
29755		if err != nil {
29756			return err
29757		}
29758		if err := f(x); err != nil {
29759			return err
29760		}
29761		if x.NextPageToken == "" {
29762			return nil
29763		}
29764		c.PageToken(x.NextPageToken)
29765	}
29766}
29767
29768// method id "compute.backendServices.patch":
29769
29770type BackendServicesPatchCall struct {
29771	s              *Service
29772	project        string
29773	backendService string
29774	backendservice *BackendService
29775	urlParams_     gensupport.URLParams
29776	ctx_           context.Context
29777	header_        http.Header
29778}
29779
29780// Patch: Patches the specified BackendService resource with the data
29781// included in the request. There are several restrictions and
29782// guidelines to keep in mind when updating a backend service. Read
29783// Restrictions and Guidelines for more information. This method
29784// supports PATCH semantics and uses the JSON merge patch format and
29785// processing rules.
29786// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/patch
29787func (r *BackendServicesService) Patch(project string, backendService string, backendservice *BackendService) *BackendServicesPatchCall {
29788	c := &BackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
29789	c.project = project
29790	c.backendService = backendService
29791	c.backendservice = backendservice
29792	return c
29793}
29794
29795// RequestId sets the optional parameter "requestId": An optional
29796// request ID to identify requests. Specify a unique request ID so that
29797// if you must retry your request, the server will know to ignore the
29798// request if it has already been completed.
29799//
29800// For example, consider a situation where you make an initial request
29801// and the request times out. If you make the request again with the
29802// same request ID, the server can check if original operation with the
29803// same request ID was received, and if so, will ignore the second
29804// request. This prevents clients from accidentally creating duplicate
29805// commitments.
29806//
29807// The request ID must be a valid UUID with the exception that zero UUID
29808// is not supported (00000000-0000-0000-0000-000000000000).
29809func (c *BackendServicesPatchCall) RequestId(requestId string) *BackendServicesPatchCall {
29810	c.urlParams_.Set("requestId", requestId)
29811	return c
29812}
29813
29814// Fields allows partial responses to be retrieved. See
29815// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
29816// for more information.
29817func (c *BackendServicesPatchCall) Fields(s ...googleapi.Field) *BackendServicesPatchCall {
29818	c.urlParams_.Set("fields", googleapi.CombineFields(s))
29819	return c
29820}
29821
29822// Context sets the context to be used in this call's Do method. Any
29823// pending HTTP request will be aborted if the provided context is
29824// canceled.
29825func (c *BackendServicesPatchCall) Context(ctx context.Context) *BackendServicesPatchCall {
29826	c.ctx_ = ctx
29827	return c
29828}
29829
29830// Header returns an http.Header that can be modified by the caller to
29831// add HTTP headers to the request.
29832func (c *BackendServicesPatchCall) Header() http.Header {
29833	if c.header_ == nil {
29834		c.header_ = make(http.Header)
29835	}
29836	return c.header_
29837}
29838
29839func (c *BackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
29840	reqHeaders := make(http.Header)
29841	for k, v := range c.header_ {
29842		reqHeaders[k] = v
29843	}
29844	reqHeaders.Set("User-Agent", c.s.userAgent())
29845	var body io.Reader = nil
29846	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
29847	if err != nil {
29848		return nil, err
29849	}
29850	reqHeaders.Set("Content-Type", "application/json")
29851	c.urlParams_.Set("alt", alt)
29852	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
29853	urls += "?" + c.urlParams_.Encode()
29854	req, _ := http.NewRequest("PATCH", urls, body)
29855	req.Header = reqHeaders
29856	googleapi.Expand(req.URL, map[string]string{
29857		"project":        c.project,
29858		"backendService": c.backendService,
29859	})
29860	return gensupport.SendRequest(c.ctx_, c.s.client, req)
29861}
29862
29863// Do executes the "compute.backendServices.patch" call.
29864// Exactly one of *Operation or error will be non-nil. Any non-2xx
29865// status code is an error. Response headers are in either
29866// *Operation.ServerResponse.Header or (if a response was returned at
29867// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
29868// to check whether the returned error was because
29869// http.StatusNotModified was returned.
29870func (c *BackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
29871	gensupport.SetOptions(c.urlParams_, opts...)
29872	res, err := c.doRequest("json")
29873	if res != nil && res.StatusCode == http.StatusNotModified {
29874		if res.Body != nil {
29875			res.Body.Close()
29876		}
29877		return nil, &googleapi.Error{
29878			Code:   res.StatusCode,
29879			Header: res.Header,
29880		}
29881	}
29882	if err != nil {
29883		return nil, err
29884	}
29885	defer googleapi.CloseBody(res)
29886	if err := googleapi.CheckResponse(res); err != nil {
29887		return nil, err
29888	}
29889	ret := &Operation{
29890		ServerResponse: googleapi.ServerResponse{
29891			Header:         res.Header,
29892			HTTPStatusCode: res.StatusCode,
29893		},
29894	}
29895	target := &ret
29896	if err := gensupport.DecodeResponse(target, res); err != nil {
29897		return nil, err
29898	}
29899	return ret, nil
29900	// {
29901	//   "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.",
29902	//   "httpMethod": "PATCH",
29903	//   "id": "compute.backendServices.patch",
29904	//   "parameterOrder": [
29905	//     "project",
29906	//     "backendService"
29907	//   ],
29908	//   "parameters": {
29909	//     "backendService": {
29910	//       "description": "Name of the BackendService resource to patch.",
29911	//       "location": "path",
29912	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
29913	//       "required": true,
29914	//       "type": "string"
29915	//     },
29916	//     "project": {
29917	//       "description": "Project ID for this request.",
29918	//       "location": "path",
29919	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
29920	//       "required": true,
29921	//       "type": "string"
29922	//     },
29923	//     "requestId": {
29924	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
29925	//       "location": "query",
29926	//       "type": "string"
29927	//     }
29928	//   },
29929	//   "path": "{project}/global/backendServices/{backendService}",
29930	//   "request": {
29931	//     "$ref": "BackendService"
29932	//   },
29933	//   "response": {
29934	//     "$ref": "Operation"
29935	//   },
29936	//   "scopes": [
29937	//     "https://www.googleapis.com/auth/cloud-platform",
29938	//     "https://www.googleapis.com/auth/compute"
29939	//   ]
29940	// }
29941
29942}
29943
29944// method id "compute.backendServices.update":
29945
29946type BackendServicesUpdateCall struct {
29947	s              *Service
29948	project        string
29949	backendService string
29950	backendservice *BackendService
29951	urlParams_     gensupport.URLParams
29952	ctx_           context.Context
29953	header_        http.Header
29954}
29955
29956// Update: Updates the specified BackendService resource with the data
29957// included in the request. There are several restrictions and
29958// guidelines to keep in mind when updating a backend service. Read
29959// Restrictions and Guidelines for more information.
29960// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/update
29961func (r *BackendServicesService) Update(project string, backendService string, backendservice *BackendService) *BackendServicesUpdateCall {
29962	c := &BackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
29963	c.project = project
29964	c.backendService = backendService
29965	c.backendservice = backendservice
29966	return c
29967}
29968
29969// RequestId sets the optional parameter "requestId": An optional
29970// request ID to identify requests. Specify a unique request ID so that
29971// if you must retry your request, the server will know to ignore the
29972// request if it has already been completed.
29973//
29974// For example, consider a situation where you make an initial request
29975// and the request times out. If you make the request again with the
29976// same request ID, the server can check if original operation with the
29977// same request ID was received, and if so, will ignore the second
29978// request. This prevents clients from accidentally creating duplicate
29979// commitments.
29980//
29981// The request ID must be a valid UUID with the exception that zero UUID
29982// is not supported (00000000-0000-0000-0000-000000000000).
29983func (c *BackendServicesUpdateCall) RequestId(requestId string) *BackendServicesUpdateCall {
29984	c.urlParams_.Set("requestId", requestId)
29985	return c
29986}
29987
29988// Fields allows partial responses to be retrieved. See
29989// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
29990// for more information.
29991func (c *BackendServicesUpdateCall) Fields(s ...googleapi.Field) *BackendServicesUpdateCall {
29992	c.urlParams_.Set("fields", googleapi.CombineFields(s))
29993	return c
29994}
29995
29996// Context sets the context to be used in this call's Do method. Any
29997// pending HTTP request will be aborted if the provided context is
29998// canceled.
29999func (c *BackendServicesUpdateCall) Context(ctx context.Context) *BackendServicesUpdateCall {
30000	c.ctx_ = ctx
30001	return c
30002}
30003
30004// Header returns an http.Header that can be modified by the caller to
30005// add HTTP headers to the request.
30006func (c *BackendServicesUpdateCall) Header() http.Header {
30007	if c.header_ == nil {
30008		c.header_ = make(http.Header)
30009	}
30010	return c.header_
30011}
30012
30013func (c *BackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
30014	reqHeaders := make(http.Header)
30015	for k, v := range c.header_ {
30016		reqHeaders[k] = v
30017	}
30018	reqHeaders.Set("User-Agent", c.s.userAgent())
30019	var body io.Reader = nil
30020	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
30021	if err != nil {
30022		return nil, err
30023	}
30024	reqHeaders.Set("Content-Type", "application/json")
30025	c.urlParams_.Set("alt", alt)
30026	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
30027	urls += "?" + c.urlParams_.Encode()
30028	req, _ := http.NewRequest("PUT", urls, body)
30029	req.Header = reqHeaders
30030	googleapi.Expand(req.URL, map[string]string{
30031		"project":        c.project,
30032		"backendService": c.backendService,
30033	})
30034	return gensupport.SendRequest(c.ctx_, c.s.client, req)
30035}
30036
30037// Do executes the "compute.backendServices.update" call.
30038// Exactly one of *Operation or error will be non-nil. Any non-2xx
30039// status code is an error. Response headers are in either
30040// *Operation.ServerResponse.Header or (if a response was returned at
30041// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
30042// to check whether the returned error was because
30043// http.StatusNotModified was returned.
30044func (c *BackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
30045	gensupport.SetOptions(c.urlParams_, opts...)
30046	res, err := c.doRequest("json")
30047	if res != nil && res.StatusCode == http.StatusNotModified {
30048		if res.Body != nil {
30049			res.Body.Close()
30050		}
30051		return nil, &googleapi.Error{
30052			Code:   res.StatusCode,
30053			Header: res.Header,
30054		}
30055	}
30056	if err != nil {
30057		return nil, err
30058	}
30059	defer googleapi.CloseBody(res)
30060	if err := googleapi.CheckResponse(res); err != nil {
30061		return nil, err
30062	}
30063	ret := &Operation{
30064		ServerResponse: googleapi.ServerResponse{
30065			Header:         res.Header,
30066			HTTPStatusCode: res.StatusCode,
30067		},
30068	}
30069	target := &ret
30070	if err := gensupport.DecodeResponse(target, res); err != nil {
30071		return nil, err
30072	}
30073	return ret, nil
30074	// {
30075	//   "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.",
30076	//   "httpMethod": "PUT",
30077	//   "id": "compute.backendServices.update",
30078	//   "parameterOrder": [
30079	//     "project",
30080	//     "backendService"
30081	//   ],
30082	//   "parameters": {
30083	//     "backendService": {
30084	//       "description": "Name of the BackendService resource to update.",
30085	//       "location": "path",
30086	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
30087	//       "required": true,
30088	//       "type": "string"
30089	//     },
30090	//     "project": {
30091	//       "description": "Project ID for this request.",
30092	//       "location": "path",
30093	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
30094	//       "required": true,
30095	//       "type": "string"
30096	//     },
30097	//     "requestId": {
30098	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
30099	//       "location": "query",
30100	//       "type": "string"
30101	//     }
30102	//   },
30103	//   "path": "{project}/global/backendServices/{backendService}",
30104	//   "request": {
30105	//     "$ref": "BackendService"
30106	//   },
30107	//   "response": {
30108	//     "$ref": "Operation"
30109	//   },
30110	//   "scopes": [
30111	//     "https://www.googleapis.com/auth/cloud-platform",
30112	//     "https://www.googleapis.com/auth/compute"
30113	//   ]
30114	// }
30115
30116}
30117
30118// method id "compute.diskTypes.aggregatedList":
30119
30120type DiskTypesAggregatedListCall struct {
30121	s            *Service
30122	project      string
30123	urlParams_   gensupport.URLParams
30124	ifNoneMatch_ string
30125	ctx_         context.Context
30126	header_      http.Header
30127}
30128
30129// AggregatedList: Retrieves an aggregated list of disk types.
30130// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/aggregatedList
30131func (r *DiskTypesService) AggregatedList(project string) *DiskTypesAggregatedListCall {
30132	c := &DiskTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
30133	c.project = project
30134	return c
30135}
30136
30137// Filter sets the optional parameter "filter": A filter expression that
30138// filters resources listed in the response. The expression must specify
30139// the field name, a comparison operator, and the value that you want to
30140// use for filtering. The value must be a string, a number, or a
30141// boolean. The comparison operator must be either =, !=, >, or <.
30142//
30143// For example, if you are filtering Compute Engine instances, you can
30144// exclude instances named example-instance by specifying name !=
30145// example-instance.
30146//
30147// You can also filter nested fields. For example, you could specify
30148// scheduling.automaticRestart = false to include instances only if they
30149// are not scheduled for automatic restarts. You can use filtering on
30150// nested fields to filter based on resource labels.
30151//
30152// To filter on multiple expressions, provide each separate expression
30153// within parentheses. For example, (scheduling.automaticRestart = true)
30154// (cpuPlatform = "Intel Skylake"). By default, each expression is an
30155// AND expression. However, you can include AND and OR expressions
30156// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
30157// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
30158// true).
30159func (c *DiskTypesAggregatedListCall) Filter(filter string) *DiskTypesAggregatedListCall {
30160	c.urlParams_.Set("filter", filter)
30161	return c
30162}
30163
30164// MaxResults sets the optional parameter "maxResults": The maximum
30165// number of results per page that should be returned. If the number of
30166// available results is larger than maxResults, Compute Engine returns a
30167// nextPageToken that can be used to get the next page of results in
30168// subsequent list requests. Acceptable values are 0 to 500, inclusive.
30169// (Default: 500)
30170func (c *DiskTypesAggregatedListCall) MaxResults(maxResults int64) *DiskTypesAggregatedListCall {
30171	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
30172	return c
30173}
30174
30175// OrderBy sets the optional parameter "orderBy": Sorts list results by
30176// a certain order. By default, results are returned in alphanumerical
30177// order based on the resource name.
30178//
30179// You can also sort results in descending order based on the creation
30180// timestamp using orderBy="creationTimestamp desc". This sorts results
30181// based on the creationTimestamp field in reverse chronological order
30182// (newest result first). Use this to sort resources like operations so
30183// that the newest operation is returned first.
30184//
30185// Currently, only sorting by name or creationTimestamp desc is
30186// supported.
30187func (c *DiskTypesAggregatedListCall) OrderBy(orderBy string) *DiskTypesAggregatedListCall {
30188	c.urlParams_.Set("orderBy", orderBy)
30189	return c
30190}
30191
30192// PageToken sets the optional parameter "pageToken": Specifies a page
30193// token to use. Set pageToken to the nextPageToken returned by a
30194// previous list request to get the next page of results.
30195func (c *DiskTypesAggregatedListCall) PageToken(pageToken string) *DiskTypesAggregatedListCall {
30196	c.urlParams_.Set("pageToken", pageToken)
30197	return c
30198}
30199
30200// Fields allows partial responses to be retrieved. See
30201// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
30202// for more information.
30203func (c *DiskTypesAggregatedListCall) Fields(s ...googleapi.Field) *DiskTypesAggregatedListCall {
30204	c.urlParams_.Set("fields", googleapi.CombineFields(s))
30205	return c
30206}
30207
30208// IfNoneMatch sets the optional parameter which makes the operation
30209// fail if the object's ETag matches the given value. This is useful for
30210// getting updates only after the object has changed since the last
30211// request. Use googleapi.IsNotModified to check whether the response
30212// error from Do is the result of In-None-Match.
30213func (c *DiskTypesAggregatedListCall) IfNoneMatch(entityTag string) *DiskTypesAggregatedListCall {
30214	c.ifNoneMatch_ = entityTag
30215	return c
30216}
30217
30218// Context sets the context to be used in this call's Do method. Any
30219// pending HTTP request will be aborted if the provided context is
30220// canceled.
30221func (c *DiskTypesAggregatedListCall) Context(ctx context.Context) *DiskTypesAggregatedListCall {
30222	c.ctx_ = ctx
30223	return c
30224}
30225
30226// Header returns an http.Header that can be modified by the caller to
30227// add HTTP headers to the request.
30228func (c *DiskTypesAggregatedListCall) Header() http.Header {
30229	if c.header_ == nil {
30230		c.header_ = make(http.Header)
30231	}
30232	return c.header_
30233}
30234
30235func (c *DiskTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
30236	reqHeaders := make(http.Header)
30237	for k, v := range c.header_ {
30238		reqHeaders[k] = v
30239	}
30240	reqHeaders.Set("User-Agent", c.s.userAgent())
30241	if c.ifNoneMatch_ != "" {
30242		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
30243	}
30244	var body io.Reader = nil
30245	c.urlParams_.Set("alt", alt)
30246	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/diskTypes")
30247	urls += "?" + c.urlParams_.Encode()
30248	req, _ := http.NewRequest("GET", urls, body)
30249	req.Header = reqHeaders
30250	googleapi.Expand(req.URL, map[string]string{
30251		"project": c.project,
30252	})
30253	return gensupport.SendRequest(c.ctx_, c.s.client, req)
30254}
30255
30256// Do executes the "compute.diskTypes.aggregatedList" call.
30257// Exactly one of *DiskTypeAggregatedList or error will be non-nil. Any
30258// non-2xx status code is an error. Response headers are in either
30259// *DiskTypeAggregatedList.ServerResponse.Header or (if a response was
30260// returned at all) in error.(*googleapi.Error).Header. Use
30261// googleapi.IsNotModified to check whether the returned error was
30262// because http.StatusNotModified was returned.
30263func (c *DiskTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskTypeAggregatedList, error) {
30264	gensupport.SetOptions(c.urlParams_, opts...)
30265	res, err := c.doRequest("json")
30266	if res != nil && res.StatusCode == http.StatusNotModified {
30267		if res.Body != nil {
30268			res.Body.Close()
30269		}
30270		return nil, &googleapi.Error{
30271			Code:   res.StatusCode,
30272			Header: res.Header,
30273		}
30274	}
30275	if err != nil {
30276		return nil, err
30277	}
30278	defer googleapi.CloseBody(res)
30279	if err := googleapi.CheckResponse(res); err != nil {
30280		return nil, err
30281	}
30282	ret := &DiskTypeAggregatedList{
30283		ServerResponse: googleapi.ServerResponse{
30284			Header:         res.Header,
30285			HTTPStatusCode: res.StatusCode,
30286		},
30287	}
30288	target := &ret
30289	if err := gensupport.DecodeResponse(target, res); err != nil {
30290		return nil, err
30291	}
30292	return ret, nil
30293	// {
30294	//   "description": "Retrieves an aggregated list of disk types.",
30295	//   "httpMethod": "GET",
30296	//   "id": "compute.diskTypes.aggregatedList",
30297	//   "parameterOrder": [
30298	//     "project"
30299	//   ],
30300	//   "parameters": {
30301	//     "filter": {
30302	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
30303	//       "location": "query",
30304	//       "type": "string"
30305	//     },
30306	//     "maxResults": {
30307	//       "default": "500",
30308	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
30309	//       "format": "uint32",
30310	//       "location": "query",
30311	//       "minimum": "0",
30312	//       "type": "integer"
30313	//     },
30314	//     "orderBy": {
30315	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
30316	//       "location": "query",
30317	//       "type": "string"
30318	//     },
30319	//     "pageToken": {
30320	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
30321	//       "location": "query",
30322	//       "type": "string"
30323	//     },
30324	//     "project": {
30325	//       "description": "Project ID for this request.",
30326	//       "location": "path",
30327	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
30328	//       "required": true,
30329	//       "type": "string"
30330	//     }
30331	//   },
30332	//   "path": "{project}/aggregated/diskTypes",
30333	//   "response": {
30334	//     "$ref": "DiskTypeAggregatedList"
30335	//   },
30336	//   "scopes": [
30337	//     "https://www.googleapis.com/auth/cloud-platform",
30338	//     "https://www.googleapis.com/auth/compute",
30339	//     "https://www.googleapis.com/auth/compute.readonly"
30340	//   ]
30341	// }
30342
30343}
30344
30345// Pages invokes f for each page of results.
30346// A non-nil error returned from f will halt the iteration.
30347// The provided context supersedes any context provided to the Context method.
30348func (c *DiskTypesAggregatedListCall) Pages(ctx context.Context, f func(*DiskTypeAggregatedList) error) error {
30349	c.ctx_ = ctx
30350	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
30351	for {
30352		x, err := c.Do()
30353		if err != nil {
30354			return err
30355		}
30356		if err := f(x); err != nil {
30357			return err
30358		}
30359		if x.NextPageToken == "" {
30360			return nil
30361		}
30362		c.PageToken(x.NextPageToken)
30363	}
30364}
30365
30366// method id "compute.diskTypes.get":
30367
30368type DiskTypesGetCall struct {
30369	s            *Service
30370	project      string
30371	zone         string
30372	diskType     string
30373	urlParams_   gensupport.URLParams
30374	ifNoneMatch_ string
30375	ctx_         context.Context
30376	header_      http.Header
30377}
30378
30379// Get: Returns the specified disk type. Gets a list of available disk
30380// types by making a list() request.
30381// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/get
30382func (r *DiskTypesService) Get(project string, zone string, diskType string) *DiskTypesGetCall {
30383	c := &DiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
30384	c.project = project
30385	c.zone = zone
30386	c.diskType = diskType
30387	return c
30388}
30389
30390// Fields allows partial responses to be retrieved. See
30391// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
30392// for more information.
30393func (c *DiskTypesGetCall) Fields(s ...googleapi.Field) *DiskTypesGetCall {
30394	c.urlParams_.Set("fields", googleapi.CombineFields(s))
30395	return c
30396}
30397
30398// IfNoneMatch sets the optional parameter which makes the operation
30399// fail if the object's ETag matches the given value. This is useful for
30400// getting updates only after the object has changed since the last
30401// request. Use googleapi.IsNotModified to check whether the response
30402// error from Do is the result of In-None-Match.
30403func (c *DiskTypesGetCall) IfNoneMatch(entityTag string) *DiskTypesGetCall {
30404	c.ifNoneMatch_ = entityTag
30405	return c
30406}
30407
30408// Context sets the context to be used in this call's Do method. Any
30409// pending HTTP request will be aborted if the provided context is
30410// canceled.
30411func (c *DiskTypesGetCall) Context(ctx context.Context) *DiskTypesGetCall {
30412	c.ctx_ = ctx
30413	return c
30414}
30415
30416// Header returns an http.Header that can be modified by the caller to
30417// add HTTP headers to the request.
30418func (c *DiskTypesGetCall) Header() http.Header {
30419	if c.header_ == nil {
30420		c.header_ = make(http.Header)
30421	}
30422	return c.header_
30423}
30424
30425func (c *DiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
30426	reqHeaders := make(http.Header)
30427	for k, v := range c.header_ {
30428		reqHeaders[k] = v
30429	}
30430	reqHeaders.Set("User-Agent", c.s.userAgent())
30431	if c.ifNoneMatch_ != "" {
30432		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
30433	}
30434	var body io.Reader = nil
30435	c.urlParams_.Set("alt", alt)
30436	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/diskTypes/{diskType}")
30437	urls += "?" + c.urlParams_.Encode()
30438	req, _ := http.NewRequest("GET", urls, body)
30439	req.Header = reqHeaders
30440	googleapi.Expand(req.URL, map[string]string{
30441		"project":  c.project,
30442		"zone":     c.zone,
30443		"diskType": c.diskType,
30444	})
30445	return gensupport.SendRequest(c.ctx_, c.s.client, req)
30446}
30447
30448// Do executes the "compute.diskTypes.get" call.
30449// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
30450// code is an error. Response headers are in either
30451// *DiskType.ServerResponse.Header or (if a response was returned at
30452// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
30453// to check whether the returned error was because
30454// http.StatusNotModified was returned.
30455func (c *DiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
30456	gensupport.SetOptions(c.urlParams_, opts...)
30457	res, err := c.doRequest("json")
30458	if res != nil && res.StatusCode == http.StatusNotModified {
30459		if res.Body != nil {
30460			res.Body.Close()
30461		}
30462		return nil, &googleapi.Error{
30463			Code:   res.StatusCode,
30464			Header: res.Header,
30465		}
30466	}
30467	if err != nil {
30468		return nil, err
30469	}
30470	defer googleapi.CloseBody(res)
30471	if err := googleapi.CheckResponse(res); err != nil {
30472		return nil, err
30473	}
30474	ret := &DiskType{
30475		ServerResponse: googleapi.ServerResponse{
30476			Header:         res.Header,
30477			HTTPStatusCode: res.StatusCode,
30478		},
30479	}
30480	target := &ret
30481	if err := gensupport.DecodeResponse(target, res); err != nil {
30482		return nil, err
30483	}
30484	return ret, nil
30485	// {
30486	//   "description": "Returns the specified disk type. Gets a list of available disk types by making a list() request.",
30487	//   "httpMethod": "GET",
30488	//   "id": "compute.diskTypes.get",
30489	//   "parameterOrder": [
30490	//     "project",
30491	//     "zone",
30492	//     "diskType"
30493	//   ],
30494	//   "parameters": {
30495	//     "diskType": {
30496	//       "description": "Name of the disk type to return.",
30497	//       "location": "path",
30498	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
30499	//       "required": true,
30500	//       "type": "string"
30501	//     },
30502	//     "project": {
30503	//       "description": "Project ID for this request.",
30504	//       "location": "path",
30505	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
30506	//       "required": true,
30507	//       "type": "string"
30508	//     },
30509	//     "zone": {
30510	//       "description": "The name of the zone for this request.",
30511	//       "location": "path",
30512	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
30513	//       "required": true,
30514	//       "type": "string"
30515	//     }
30516	//   },
30517	//   "path": "{project}/zones/{zone}/diskTypes/{diskType}",
30518	//   "response": {
30519	//     "$ref": "DiskType"
30520	//   },
30521	//   "scopes": [
30522	//     "https://www.googleapis.com/auth/cloud-platform",
30523	//     "https://www.googleapis.com/auth/compute",
30524	//     "https://www.googleapis.com/auth/compute.readonly"
30525	//   ]
30526	// }
30527
30528}
30529
30530// method id "compute.diskTypes.list":
30531
30532type DiskTypesListCall struct {
30533	s            *Service
30534	project      string
30535	zone         string
30536	urlParams_   gensupport.URLParams
30537	ifNoneMatch_ string
30538	ctx_         context.Context
30539	header_      http.Header
30540}
30541
30542// List: Retrieves a list of disk types available to the specified
30543// project.
30544// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/list
30545func (r *DiskTypesService) List(project string, zone string) *DiskTypesListCall {
30546	c := &DiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
30547	c.project = project
30548	c.zone = zone
30549	return c
30550}
30551
30552// Filter sets the optional parameter "filter": A filter expression that
30553// filters resources listed in the response. The expression must specify
30554// the field name, a comparison operator, and the value that you want to
30555// use for filtering. The value must be a string, a number, or a
30556// boolean. The comparison operator must be either =, !=, >, or <.
30557//
30558// For example, if you are filtering Compute Engine instances, you can
30559// exclude instances named example-instance by specifying name !=
30560// example-instance.
30561//
30562// You can also filter nested fields. For example, you could specify
30563// scheduling.automaticRestart = false to include instances only if they
30564// are not scheduled for automatic restarts. You can use filtering on
30565// nested fields to filter based on resource labels.
30566//
30567// To filter on multiple expressions, provide each separate expression
30568// within parentheses. For example, (scheduling.automaticRestart = true)
30569// (cpuPlatform = "Intel Skylake"). By default, each expression is an
30570// AND expression. However, you can include AND and OR expressions
30571// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
30572// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
30573// true).
30574func (c *DiskTypesListCall) Filter(filter string) *DiskTypesListCall {
30575	c.urlParams_.Set("filter", filter)
30576	return c
30577}
30578
30579// MaxResults sets the optional parameter "maxResults": The maximum
30580// number of results per page that should be returned. If the number of
30581// available results is larger than maxResults, Compute Engine returns a
30582// nextPageToken that can be used to get the next page of results in
30583// subsequent list requests. Acceptable values are 0 to 500, inclusive.
30584// (Default: 500)
30585func (c *DiskTypesListCall) MaxResults(maxResults int64) *DiskTypesListCall {
30586	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
30587	return c
30588}
30589
30590// OrderBy sets the optional parameter "orderBy": Sorts list results by
30591// a certain order. By default, results are returned in alphanumerical
30592// order based on the resource name.
30593//
30594// You can also sort results in descending order based on the creation
30595// timestamp using orderBy="creationTimestamp desc". This sorts results
30596// based on the creationTimestamp field in reverse chronological order
30597// (newest result first). Use this to sort resources like operations so
30598// that the newest operation is returned first.
30599//
30600// Currently, only sorting by name or creationTimestamp desc is
30601// supported.
30602func (c *DiskTypesListCall) OrderBy(orderBy string) *DiskTypesListCall {
30603	c.urlParams_.Set("orderBy", orderBy)
30604	return c
30605}
30606
30607// PageToken sets the optional parameter "pageToken": Specifies a page
30608// token to use. Set pageToken to the nextPageToken returned by a
30609// previous list request to get the next page of results.
30610func (c *DiskTypesListCall) PageToken(pageToken string) *DiskTypesListCall {
30611	c.urlParams_.Set("pageToken", pageToken)
30612	return c
30613}
30614
30615// Fields allows partial responses to be retrieved. See
30616// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
30617// for more information.
30618func (c *DiskTypesListCall) Fields(s ...googleapi.Field) *DiskTypesListCall {
30619	c.urlParams_.Set("fields", googleapi.CombineFields(s))
30620	return c
30621}
30622
30623// IfNoneMatch sets the optional parameter which makes the operation
30624// fail if the object's ETag matches the given value. This is useful for
30625// getting updates only after the object has changed since the last
30626// request. Use googleapi.IsNotModified to check whether the response
30627// error from Do is the result of In-None-Match.
30628func (c *DiskTypesListCall) IfNoneMatch(entityTag string) *DiskTypesListCall {
30629	c.ifNoneMatch_ = entityTag
30630	return c
30631}
30632
30633// Context sets the context to be used in this call's Do method. Any
30634// pending HTTP request will be aborted if the provided context is
30635// canceled.
30636func (c *DiskTypesListCall) Context(ctx context.Context) *DiskTypesListCall {
30637	c.ctx_ = ctx
30638	return c
30639}
30640
30641// Header returns an http.Header that can be modified by the caller to
30642// add HTTP headers to the request.
30643func (c *DiskTypesListCall) Header() http.Header {
30644	if c.header_ == nil {
30645		c.header_ = make(http.Header)
30646	}
30647	return c.header_
30648}
30649
30650func (c *DiskTypesListCall) doRequest(alt string) (*http.Response, error) {
30651	reqHeaders := make(http.Header)
30652	for k, v := range c.header_ {
30653		reqHeaders[k] = v
30654	}
30655	reqHeaders.Set("User-Agent", c.s.userAgent())
30656	if c.ifNoneMatch_ != "" {
30657		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
30658	}
30659	var body io.Reader = nil
30660	c.urlParams_.Set("alt", alt)
30661	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/diskTypes")
30662	urls += "?" + c.urlParams_.Encode()
30663	req, _ := http.NewRequest("GET", urls, body)
30664	req.Header = reqHeaders
30665	googleapi.Expand(req.URL, map[string]string{
30666		"project": c.project,
30667		"zone":    c.zone,
30668	})
30669	return gensupport.SendRequest(c.ctx_, c.s.client, req)
30670}
30671
30672// Do executes the "compute.diskTypes.list" call.
30673// Exactly one of *DiskTypeList or error will be non-nil. Any non-2xx
30674// status code is an error. Response headers are in either
30675// *DiskTypeList.ServerResponse.Header or (if a response was returned at
30676// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
30677// to check whether the returned error was because
30678// http.StatusNotModified was returned.
30679func (c *DiskTypesListCall) Do(opts ...googleapi.CallOption) (*DiskTypeList, error) {
30680	gensupport.SetOptions(c.urlParams_, opts...)
30681	res, err := c.doRequest("json")
30682	if res != nil && res.StatusCode == http.StatusNotModified {
30683		if res.Body != nil {
30684			res.Body.Close()
30685		}
30686		return nil, &googleapi.Error{
30687			Code:   res.StatusCode,
30688			Header: res.Header,
30689		}
30690	}
30691	if err != nil {
30692		return nil, err
30693	}
30694	defer googleapi.CloseBody(res)
30695	if err := googleapi.CheckResponse(res); err != nil {
30696		return nil, err
30697	}
30698	ret := &DiskTypeList{
30699		ServerResponse: googleapi.ServerResponse{
30700			Header:         res.Header,
30701			HTTPStatusCode: res.StatusCode,
30702		},
30703	}
30704	target := &ret
30705	if err := gensupport.DecodeResponse(target, res); err != nil {
30706		return nil, err
30707	}
30708	return ret, nil
30709	// {
30710	//   "description": "Retrieves a list of disk types available to the specified project.",
30711	//   "httpMethod": "GET",
30712	//   "id": "compute.diskTypes.list",
30713	//   "parameterOrder": [
30714	//     "project",
30715	//     "zone"
30716	//   ],
30717	//   "parameters": {
30718	//     "filter": {
30719	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
30720	//       "location": "query",
30721	//       "type": "string"
30722	//     },
30723	//     "maxResults": {
30724	//       "default": "500",
30725	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
30726	//       "format": "uint32",
30727	//       "location": "query",
30728	//       "minimum": "0",
30729	//       "type": "integer"
30730	//     },
30731	//     "orderBy": {
30732	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
30733	//       "location": "query",
30734	//       "type": "string"
30735	//     },
30736	//     "pageToken": {
30737	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
30738	//       "location": "query",
30739	//       "type": "string"
30740	//     },
30741	//     "project": {
30742	//       "description": "Project ID for this request.",
30743	//       "location": "path",
30744	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
30745	//       "required": true,
30746	//       "type": "string"
30747	//     },
30748	//     "zone": {
30749	//       "description": "The name of the zone for this request.",
30750	//       "location": "path",
30751	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
30752	//       "required": true,
30753	//       "type": "string"
30754	//     }
30755	//   },
30756	//   "path": "{project}/zones/{zone}/diskTypes",
30757	//   "response": {
30758	//     "$ref": "DiskTypeList"
30759	//   },
30760	//   "scopes": [
30761	//     "https://www.googleapis.com/auth/cloud-platform",
30762	//     "https://www.googleapis.com/auth/compute",
30763	//     "https://www.googleapis.com/auth/compute.readonly"
30764	//   ]
30765	// }
30766
30767}
30768
30769// Pages invokes f for each page of results.
30770// A non-nil error returned from f will halt the iteration.
30771// The provided context supersedes any context provided to the Context method.
30772func (c *DiskTypesListCall) Pages(ctx context.Context, f func(*DiskTypeList) error) error {
30773	c.ctx_ = ctx
30774	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
30775	for {
30776		x, err := c.Do()
30777		if err != nil {
30778			return err
30779		}
30780		if err := f(x); err != nil {
30781			return err
30782		}
30783		if x.NextPageToken == "" {
30784			return nil
30785		}
30786		c.PageToken(x.NextPageToken)
30787	}
30788}
30789
30790// method id "compute.disks.aggregatedList":
30791
30792type DisksAggregatedListCall struct {
30793	s            *Service
30794	project      string
30795	urlParams_   gensupport.URLParams
30796	ifNoneMatch_ string
30797	ctx_         context.Context
30798	header_      http.Header
30799}
30800
30801// AggregatedList: Retrieves an aggregated list of persistent disks.
30802// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/aggregatedList
30803func (r *DisksService) AggregatedList(project string) *DisksAggregatedListCall {
30804	c := &DisksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
30805	c.project = project
30806	return c
30807}
30808
30809// Filter sets the optional parameter "filter": A filter expression that
30810// filters resources listed in the response. The expression must specify
30811// the field name, a comparison operator, and the value that you want to
30812// use for filtering. The value must be a string, a number, or a
30813// boolean. The comparison operator must be either =, !=, >, or <.
30814//
30815// For example, if you are filtering Compute Engine instances, you can
30816// exclude instances named example-instance by specifying name !=
30817// example-instance.
30818//
30819// You can also filter nested fields. For example, you could specify
30820// scheduling.automaticRestart = false to include instances only if they
30821// are not scheduled for automatic restarts. You can use filtering on
30822// nested fields to filter based on resource labels.
30823//
30824// To filter on multiple expressions, provide each separate expression
30825// within parentheses. For example, (scheduling.automaticRestart = true)
30826// (cpuPlatform = "Intel Skylake"). By default, each expression is an
30827// AND expression. However, you can include AND and OR expressions
30828// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
30829// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
30830// true).
30831func (c *DisksAggregatedListCall) Filter(filter string) *DisksAggregatedListCall {
30832	c.urlParams_.Set("filter", filter)
30833	return c
30834}
30835
30836// MaxResults sets the optional parameter "maxResults": The maximum
30837// number of results per page that should be returned. If the number of
30838// available results is larger than maxResults, Compute Engine returns a
30839// nextPageToken that can be used to get the next page of results in
30840// subsequent list requests. Acceptable values are 0 to 500, inclusive.
30841// (Default: 500)
30842func (c *DisksAggregatedListCall) MaxResults(maxResults int64) *DisksAggregatedListCall {
30843	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
30844	return c
30845}
30846
30847// OrderBy sets the optional parameter "orderBy": Sorts list results by
30848// a certain order. By default, results are returned in alphanumerical
30849// order based on the resource name.
30850//
30851// You can also sort results in descending order based on the creation
30852// timestamp using orderBy="creationTimestamp desc". This sorts results
30853// based on the creationTimestamp field in reverse chronological order
30854// (newest result first). Use this to sort resources like operations so
30855// that the newest operation is returned first.
30856//
30857// Currently, only sorting by name or creationTimestamp desc is
30858// supported.
30859func (c *DisksAggregatedListCall) OrderBy(orderBy string) *DisksAggregatedListCall {
30860	c.urlParams_.Set("orderBy", orderBy)
30861	return c
30862}
30863
30864// PageToken sets the optional parameter "pageToken": Specifies a page
30865// token to use. Set pageToken to the nextPageToken returned by a
30866// previous list request to get the next page of results.
30867func (c *DisksAggregatedListCall) PageToken(pageToken string) *DisksAggregatedListCall {
30868	c.urlParams_.Set("pageToken", pageToken)
30869	return c
30870}
30871
30872// Fields allows partial responses to be retrieved. See
30873// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
30874// for more information.
30875func (c *DisksAggregatedListCall) Fields(s ...googleapi.Field) *DisksAggregatedListCall {
30876	c.urlParams_.Set("fields", googleapi.CombineFields(s))
30877	return c
30878}
30879
30880// IfNoneMatch sets the optional parameter which makes the operation
30881// fail if the object's ETag matches the given value. This is useful for
30882// getting updates only after the object has changed since the last
30883// request. Use googleapi.IsNotModified to check whether the response
30884// error from Do is the result of In-None-Match.
30885func (c *DisksAggregatedListCall) IfNoneMatch(entityTag string) *DisksAggregatedListCall {
30886	c.ifNoneMatch_ = entityTag
30887	return c
30888}
30889
30890// Context sets the context to be used in this call's Do method. Any
30891// pending HTTP request will be aborted if the provided context is
30892// canceled.
30893func (c *DisksAggregatedListCall) Context(ctx context.Context) *DisksAggregatedListCall {
30894	c.ctx_ = ctx
30895	return c
30896}
30897
30898// Header returns an http.Header that can be modified by the caller to
30899// add HTTP headers to the request.
30900func (c *DisksAggregatedListCall) Header() http.Header {
30901	if c.header_ == nil {
30902		c.header_ = make(http.Header)
30903	}
30904	return c.header_
30905}
30906
30907func (c *DisksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
30908	reqHeaders := make(http.Header)
30909	for k, v := range c.header_ {
30910		reqHeaders[k] = v
30911	}
30912	reqHeaders.Set("User-Agent", c.s.userAgent())
30913	if c.ifNoneMatch_ != "" {
30914		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
30915	}
30916	var body io.Reader = nil
30917	c.urlParams_.Set("alt", alt)
30918	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/disks")
30919	urls += "?" + c.urlParams_.Encode()
30920	req, _ := http.NewRequest("GET", urls, body)
30921	req.Header = reqHeaders
30922	googleapi.Expand(req.URL, map[string]string{
30923		"project": c.project,
30924	})
30925	return gensupport.SendRequest(c.ctx_, c.s.client, req)
30926}
30927
30928// Do executes the "compute.disks.aggregatedList" call.
30929// Exactly one of *DiskAggregatedList or error will be non-nil. Any
30930// non-2xx status code is an error. Response headers are in either
30931// *DiskAggregatedList.ServerResponse.Header or (if a response was
30932// returned at all) in error.(*googleapi.Error).Header. Use
30933// googleapi.IsNotModified to check whether the returned error was
30934// because http.StatusNotModified was returned.
30935func (c *DisksAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskAggregatedList, error) {
30936	gensupport.SetOptions(c.urlParams_, opts...)
30937	res, err := c.doRequest("json")
30938	if res != nil && res.StatusCode == http.StatusNotModified {
30939		if res.Body != nil {
30940			res.Body.Close()
30941		}
30942		return nil, &googleapi.Error{
30943			Code:   res.StatusCode,
30944			Header: res.Header,
30945		}
30946	}
30947	if err != nil {
30948		return nil, err
30949	}
30950	defer googleapi.CloseBody(res)
30951	if err := googleapi.CheckResponse(res); err != nil {
30952		return nil, err
30953	}
30954	ret := &DiskAggregatedList{
30955		ServerResponse: googleapi.ServerResponse{
30956			Header:         res.Header,
30957			HTTPStatusCode: res.StatusCode,
30958		},
30959	}
30960	target := &ret
30961	if err := gensupport.DecodeResponse(target, res); err != nil {
30962		return nil, err
30963	}
30964	return ret, nil
30965	// {
30966	//   "description": "Retrieves an aggregated list of persistent disks.",
30967	//   "httpMethod": "GET",
30968	//   "id": "compute.disks.aggregatedList",
30969	//   "parameterOrder": [
30970	//     "project"
30971	//   ],
30972	//   "parameters": {
30973	//     "filter": {
30974	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
30975	//       "location": "query",
30976	//       "type": "string"
30977	//     },
30978	//     "maxResults": {
30979	//       "default": "500",
30980	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
30981	//       "format": "uint32",
30982	//       "location": "query",
30983	//       "minimum": "0",
30984	//       "type": "integer"
30985	//     },
30986	//     "orderBy": {
30987	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
30988	//       "location": "query",
30989	//       "type": "string"
30990	//     },
30991	//     "pageToken": {
30992	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
30993	//       "location": "query",
30994	//       "type": "string"
30995	//     },
30996	//     "project": {
30997	//       "description": "Project ID for this request.",
30998	//       "location": "path",
30999	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
31000	//       "required": true,
31001	//       "type": "string"
31002	//     }
31003	//   },
31004	//   "path": "{project}/aggregated/disks",
31005	//   "response": {
31006	//     "$ref": "DiskAggregatedList"
31007	//   },
31008	//   "scopes": [
31009	//     "https://www.googleapis.com/auth/cloud-platform",
31010	//     "https://www.googleapis.com/auth/compute",
31011	//     "https://www.googleapis.com/auth/compute.readonly"
31012	//   ]
31013	// }
31014
31015}
31016
31017// Pages invokes f for each page of results.
31018// A non-nil error returned from f will halt the iteration.
31019// The provided context supersedes any context provided to the Context method.
31020func (c *DisksAggregatedListCall) Pages(ctx context.Context, f func(*DiskAggregatedList) error) error {
31021	c.ctx_ = ctx
31022	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
31023	for {
31024		x, err := c.Do()
31025		if err != nil {
31026			return err
31027		}
31028		if err := f(x); err != nil {
31029			return err
31030		}
31031		if x.NextPageToken == "" {
31032			return nil
31033		}
31034		c.PageToken(x.NextPageToken)
31035	}
31036}
31037
31038// method id "compute.disks.createSnapshot":
31039
31040type DisksCreateSnapshotCall struct {
31041	s          *Service
31042	project    string
31043	zone       string
31044	disk       string
31045	snapshot   *Snapshot
31046	urlParams_ gensupport.URLParams
31047	ctx_       context.Context
31048	header_    http.Header
31049}
31050
31051// CreateSnapshot: Creates a snapshot of a specified persistent disk.
31052// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/createSnapshot
31053func (r *DisksService) CreateSnapshot(project string, zone string, disk string, snapshot *Snapshot) *DisksCreateSnapshotCall {
31054	c := &DisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31055	c.project = project
31056	c.zone = zone
31057	c.disk = disk
31058	c.snapshot = snapshot
31059	return c
31060}
31061
31062// GuestFlush sets the optional parameter "guestFlush":
31063func (c *DisksCreateSnapshotCall) GuestFlush(guestFlush bool) *DisksCreateSnapshotCall {
31064	c.urlParams_.Set("guestFlush", fmt.Sprint(guestFlush))
31065	return c
31066}
31067
31068// RequestId sets the optional parameter "requestId": An optional
31069// request ID to identify requests. Specify a unique request ID so that
31070// if you must retry your request, the server will know to ignore the
31071// request if it has already been completed.
31072//
31073// For example, consider a situation where you make an initial request
31074// and the request times out. If you make the request again with the
31075// same request ID, the server can check if original operation with the
31076// same request ID was received, and if so, will ignore the second
31077// request. This prevents clients from accidentally creating duplicate
31078// commitments.
31079//
31080// The request ID must be a valid UUID with the exception that zero UUID
31081// is not supported (00000000-0000-0000-0000-000000000000).
31082func (c *DisksCreateSnapshotCall) RequestId(requestId string) *DisksCreateSnapshotCall {
31083	c.urlParams_.Set("requestId", requestId)
31084	return c
31085}
31086
31087// Fields allows partial responses to be retrieved. See
31088// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31089// for more information.
31090func (c *DisksCreateSnapshotCall) Fields(s ...googleapi.Field) *DisksCreateSnapshotCall {
31091	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31092	return c
31093}
31094
31095// Context sets the context to be used in this call's Do method. Any
31096// pending HTTP request will be aborted if the provided context is
31097// canceled.
31098func (c *DisksCreateSnapshotCall) Context(ctx context.Context) *DisksCreateSnapshotCall {
31099	c.ctx_ = ctx
31100	return c
31101}
31102
31103// Header returns an http.Header that can be modified by the caller to
31104// add HTTP headers to the request.
31105func (c *DisksCreateSnapshotCall) Header() http.Header {
31106	if c.header_ == nil {
31107		c.header_ = make(http.Header)
31108	}
31109	return c.header_
31110}
31111
31112func (c *DisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
31113	reqHeaders := make(http.Header)
31114	for k, v := range c.header_ {
31115		reqHeaders[k] = v
31116	}
31117	reqHeaders.Set("User-Agent", c.s.userAgent())
31118	var body io.Reader = nil
31119	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
31120	if err != nil {
31121		return nil, err
31122	}
31123	reqHeaders.Set("Content-Type", "application/json")
31124	c.urlParams_.Set("alt", alt)
31125	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/createSnapshot")
31126	urls += "?" + c.urlParams_.Encode()
31127	req, _ := http.NewRequest("POST", urls, body)
31128	req.Header = reqHeaders
31129	googleapi.Expand(req.URL, map[string]string{
31130		"project": c.project,
31131		"zone":    c.zone,
31132		"disk":    c.disk,
31133	})
31134	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31135}
31136
31137// Do executes the "compute.disks.createSnapshot" call.
31138// Exactly one of *Operation or error will be non-nil. Any non-2xx
31139// status code is an error. Response headers are in either
31140// *Operation.ServerResponse.Header or (if a response was returned at
31141// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
31142// to check whether the returned error was because
31143// http.StatusNotModified was returned.
31144func (c *DisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
31145	gensupport.SetOptions(c.urlParams_, opts...)
31146	res, err := c.doRequest("json")
31147	if res != nil && res.StatusCode == http.StatusNotModified {
31148		if res.Body != nil {
31149			res.Body.Close()
31150		}
31151		return nil, &googleapi.Error{
31152			Code:   res.StatusCode,
31153			Header: res.Header,
31154		}
31155	}
31156	if err != nil {
31157		return nil, err
31158	}
31159	defer googleapi.CloseBody(res)
31160	if err := googleapi.CheckResponse(res); err != nil {
31161		return nil, err
31162	}
31163	ret := &Operation{
31164		ServerResponse: googleapi.ServerResponse{
31165			Header:         res.Header,
31166			HTTPStatusCode: res.StatusCode,
31167		},
31168	}
31169	target := &ret
31170	if err := gensupport.DecodeResponse(target, res); err != nil {
31171		return nil, err
31172	}
31173	return ret, nil
31174	// {
31175	//   "description": "Creates a snapshot of a specified persistent disk.",
31176	//   "httpMethod": "POST",
31177	//   "id": "compute.disks.createSnapshot",
31178	//   "parameterOrder": [
31179	//     "project",
31180	//     "zone",
31181	//     "disk"
31182	//   ],
31183	//   "parameters": {
31184	//     "disk": {
31185	//       "description": "Name of the persistent disk to snapshot.",
31186	//       "location": "path",
31187	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
31188	//       "required": true,
31189	//       "type": "string"
31190	//     },
31191	//     "guestFlush": {
31192	//       "location": "query",
31193	//       "type": "boolean"
31194	//     },
31195	//     "project": {
31196	//       "description": "Project ID for this request.",
31197	//       "location": "path",
31198	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
31199	//       "required": true,
31200	//       "type": "string"
31201	//     },
31202	//     "requestId": {
31203	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
31204	//       "location": "query",
31205	//       "type": "string"
31206	//     },
31207	//     "zone": {
31208	//       "description": "The name of the zone for this request.",
31209	//       "location": "path",
31210	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
31211	//       "required": true,
31212	//       "type": "string"
31213	//     }
31214	//   },
31215	//   "path": "{project}/zones/{zone}/disks/{disk}/createSnapshot",
31216	//   "request": {
31217	//     "$ref": "Snapshot"
31218	//   },
31219	//   "response": {
31220	//     "$ref": "Operation"
31221	//   },
31222	//   "scopes": [
31223	//     "https://www.googleapis.com/auth/cloud-platform",
31224	//     "https://www.googleapis.com/auth/compute"
31225	//   ]
31226	// }
31227
31228}
31229
31230// method id "compute.disks.delete":
31231
31232type DisksDeleteCall struct {
31233	s          *Service
31234	project    string
31235	zone       string
31236	disk       string
31237	urlParams_ gensupport.URLParams
31238	ctx_       context.Context
31239	header_    http.Header
31240}
31241
31242// Delete: Deletes the specified persistent disk. Deleting a disk
31243// removes its data permanently and is irreversible. However, deleting a
31244// disk does not delete any snapshots previously made from the disk. You
31245// must separately delete snapshots.
31246// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/delete
31247func (r *DisksService) Delete(project string, zone string, disk string) *DisksDeleteCall {
31248	c := &DisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31249	c.project = project
31250	c.zone = zone
31251	c.disk = disk
31252	return c
31253}
31254
31255// RequestId sets the optional parameter "requestId": An optional
31256// request ID to identify requests. Specify a unique request ID so that
31257// if you must retry your request, the server will know to ignore the
31258// request if it has already been completed.
31259//
31260// For example, consider a situation where you make an initial request
31261// and the request times out. If you make the request again with the
31262// same request ID, the server can check if original operation with the
31263// same request ID was received, and if so, will ignore the second
31264// request. This prevents clients from accidentally creating duplicate
31265// commitments.
31266//
31267// The request ID must be a valid UUID with the exception that zero UUID
31268// is not supported (00000000-0000-0000-0000-000000000000).
31269func (c *DisksDeleteCall) RequestId(requestId string) *DisksDeleteCall {
31270	c.urlParams_.Set("requestId", requestId)
31271	return c
31272}
31273
31274// Fields allows partial responses to be retrieved. See
31275// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31276// for more information.
31277func (c *DisksDeleteCall) Fields(s ...googleapi.Field) *DisksDeleteCall {
31278	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31279	return c
31280}
31281
31282// Context sets the context to be used in this call's Do method. Any
31283// pending HTTP request will be aborted if the provided context is
31284// canceled.
31285func (c *DisksDeleteCall) Context(ctx context.Context) *DisksDeleteCall {
31286	c.ctx_ = ctx
31287	return c
31288}
31289
31290// Header returns an http.Header that can be modified by the caller to
31291// add HTTP headers to the request.
31292func (c *DisksDeleteCall) Header() http.Header {
31293	if c.header_ == nil {
31294		c.header_ = make(http.Header)
31295	}
31296	return c.header_
31297}
31298
31299func (c *DisksDeleteCall) doRequest(alt string) (*http.Response, error) {
31300	reqHeaders := make(http.Header)
31301	for k, v := range c.header_ {
31302		reqHeaders[k] = v
31303	}
31304	reqHeaders.Set("User-Agent", c.s.userAgent())
31305	var body io.Reader = nil
31306	c.urlParams_.Set("alt", alt)
31307	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}")
31308	urls += "?" + c.urlParams_.Encode()
31309	req, _ := http.NewRequest("DELETE", urls, body)
31310	req.Header = reqHeaders
31311	googleapi.Expand(req.URL, map[string]string{
31312		"project": c.project,
31313		"zone":    c.zone,
31314		"disk":    c.disk,
31315	})
31316	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31317}
31318
31319// Do executes the "compute.disks.delete" call.
31320// Exactly one of *Operation or error will be non-nil. Any non-2xx
31321// status code is an error. Response headers are in either
31322// *Operation.ServerResponse.Header or (if a response was returned at
31323// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
31324// to check whether the returned error was because
31325// http.StatusNotModified was returned.
31326func (c *DisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
31327	gensupport.SetOptions(c.urlParams_, opts...)
31328	res, err := c.doRequest("json")
31329	if res != nil && res.StatusCode == http.StatusNotModified {
31330		if res.Body != nil {
31331			res.Body.Close()
31332		}
31333		return nil, &googleapi.Error{
31334			Code:   res.StatusCode,
31335			Header: res.Header,
31336		}
31337	}
31338	if err != nil {
31339		return nil, err
31340	}
31341	defer googleapi.CloseBody(res)
31342	if err := googleapi.CheckResponse(res); err != nil {
31343		return nil, err
31344	}
31345	ret := &Operation{
31346		ServerResponse: googleapi.ServerResponse{
31347			Header:         res.Header,
31348			HTTPStatusCode: res.StatusCode,
31349		},
31350	}
31351	target := &ret
31352	if err := gensupport.DecodeResponse(target, res); err != nil {
31353		return nil, err
31354	}
31355	return ret, nil
31356	// {
31357	//   "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.",
31358	//   "httpMethod": "DELETE",
31359	//   "id": "compute.disks.delete",
31360	//   "parameterOrder": [
31361	//     "project",
31362	//     "zone",
31363	//     "disk"
31364	//   ],
31365	//   "parameters": {
31366	//     "disk": {
31367	//       "description": "Name of the persistent disk to delete.",
31368	//       "location": "path",
31369	//       "required": true,
31370	//       "type": "string"
31371	//     },
31372	//     "project": {
31373	//       "description": "Project ID for this request.",
31374	//       "location": "path",
31375	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
31376	//       "required": true,
31377	//       "type": "string"
31378	//     },
31379	//     "requestId": {
31380	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
31381	//       "location": "query",
31382	//       "type": "string"
31383	//     },
31384	//     "zone": {
31385	//       "description": "The name of the zone for this request.",
31386	//       "location": "path",
31387	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
31388	//       "required": true,
31389	//       "type": "string"
31390	//     }
31391	//   },
31392	//   "path": "{project}/zones/{zone}/disks/{disk}",
31393	//   "response": {
31394	//     "$ref": "Operation"
31395	//   },
31396	//   "scopes": [
31397	//     "https://www.googleapis.com/auth/cloud-platform",
31398	//     "https://www.googleapis.com/auth/compute"
31399	//   ]
31400	// }
31401
31402}
31403
31404// method id "compute.disks.get":
31405
31406type DisksGetCall struct {
31407	s            *Service
31408	project      string
31409	zone         string
31410	disk         string
31411	urlParams_   gensupport.URLParams
31412	ifNoneMatch_ string
31413	ctx_         context.Context
31414	header_      http.Header
31415}
31416
31417// Get: Returns a specified persistent disk. Gets a list of available
31418// persistent disks by making a list() request.
31419// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/get
31420func (r *DisksService) Get(project string, zone string, disk string) *DisksGetCall {
31421	c := &DisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31422	c.project = project
31423	c.zone = zone
31424	c.disk = disk
31425	return c
31426}
31427
31428// Fields allows partial responses to be retrieved. See
31429// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31430// for more information.
31431func (c *DisksGetCall) Fields(s ...googleapi.Field) *DisksGetCall {
31432	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31433	return c
31434}
31435
31436// IfNoneMatch sets the optional parameter which makes the operation
31437// fail if the object's ETag matches the given value. This is useful for
31438// getting updates only after the object has changed since the last
31439// request. Use googleapi.IsNotModified to check whether the response
31440// error from Do is the result of In-None-Match.
31441func (c *DisksGetCall) IfNoneMatch(entityTag string) *DisksGetCall {
31442	c.ifNoneMatch_ = entityTag
31443	return c
31444}
31445
31446// Context sets the context to be used in this call's Do method. Any
31447// pending HTTP request will be aborted if the provided context is
31448// canceled.
31449func (c *DisksGetCall) Context(ctx context.Context) *DisksGetCall {
31450	c.ctx_ = ctx
31451	return c
31452}
31453
31454// Header returns an http.Header that can be modified by the caller to
31455// add HTTP headers to the request.
31456func (c *DisksGetCall) Header() http.Header {
31457	if c.header_ == nil {
31458		c.header_ = make(http.Header)
31459	}
31460	return c.header_
31461}
31462
31463func (c *DisksGetCall) doRequest(alt string) (*http.Response, error) {
31464	reqHeaders := make(http.Header)
31465	for k, v := range c.header_ {
31466		reqHeaders[k] = v
31467	}
31468	reqHeaders.Set("User-Agent", c.s.userAgent())
31469	if c.ifNoneMatch_ != "" {
31470		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
31471	}
31472	var body io.Reader = nil
31473	c.urlParams_.Set("alt", alt)
31474	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}")
31475	urls += "?" + c.urlParams_.Encode()
31476	req, _ := http.NewRequest("GET", urls, body)
31477	req.Header = reqHeaders
31478	googleapi.Expand(req.URL, map[string]string{
31479		"project": c.project,
31480		"zone":    c.zone,
31481		"disk":    c.disk,
31482	})
31483	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31484}
31485
31486// Do executes the "compute.disks.get" call.
31487// Exactly one of *Disk or error will be non-nil. Any non-2xx status
31488// code is an error. Response headers are in either
31489// *Disk.ServerResponse.Header or (if a response was returned at all) in
31490// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
31491// whether the returned error was because http.StatusNotModified was
31492// returned.
31493func (c *DisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
31494	gensupport.SetOptions(c.urlParams_, opts...)
31495	res, err := c.doRequest("json")
31496	if res != nil && res.StatusCode == http.StatusNotModified {
31497		if res.Body != nil {
31498			res.Body.Close()
31499		}
31500		return nil, &googleapi.Error{
31501			Code:   res.StatusCode,
31502			Header: res.Header,
31503		}
31504	}
31505	if err != nil {
31506		return nil, err
31507	}
31508	defer googleapi.CloseBody(res)
31509	if err := googleapi.CheckResponse(res); err != nil {
31510		return nil, err
31511	}
31512	ret := &Disk{
31513		ServerResponse: googleapi.ServerResponse{
31514			Header:         res.Header,
31515			HTTPStatusCode: res.StatusCode,
31516		},
31517	}
31518	target := &ret
31519	if err := gensupport.DecodeResponse(target, res); err != nil {
31520		return nil, err
31521	}
31522	return ret, nil
31523	// {
31524	//   "description": "Returns a specified persistent disk. Gets a list of available persistent disks by making a list() request.",
31525	//   "httpMethod": "GET",
31526	//   "id": "compute.disks.get",
31527	//   "parameterOrder": [
31528	//     "project",
31529	//     "zone",
31530	//     "disk"
31531	//   ],
31532	//   "parameters": {
31533	//     "disk": {
31534	//       "description": "Name of the persistent disk to return.",
31535	//       "location": "path",
31536	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
31537	//       "required": true,
31538	//       "type": "string"
31539	//     },
31540	//     "project": {
31541	//       "description": "Project ID for this request.",
31542	//       "location": "path",
31543	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
31544	//       "required": true,
31545	//       "type": "string"
31546	//     },
31547	//     "zone": {
31548	//       "description": "The name of the zone for this request.",
31549	//       "location": "path",
31550	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
31551	//       "required": true,
31552	//       "type": "string"
31553	//     }
31554	//   },
31555	//   "path": "{project}/zones/{zone}/disks/{disk}",
31556	//   "response": {
31557	//     "$ref": "Disk"
31558	//   },
31559	//   "scopes": [
31560	//     "https://www.googleapis.com/auth/cloud-platform",
31561	//     "https://www.googleapis.com/auth/compute",
31562	//     "https://www.googleapis.com/auth/compute.readonly"
31563	//   ]
31564	// }
31565
31566}
31567
31568// method id "compute.disks.insert":
31569
31570type DisksInsertCall struct {
31571	s          *Service
31572	project    string
31573	zone       string
31574	disk       *Disk
31575	urlParams_ gensupport.URLParams
31576	ctx_       context.Context
31577	header_    http.Header
31578}
31579
31580// Insert: Creates a persistent disk in the specified project using the
31581// data in the request. You can create a disk with a sourceImage, a
31582// sourceSnapshot, or create an empty 500 GB data disk by omitting all
31583// properties. You can also create a disk that is larger than the
31584// default size by specifying the sizeGb property.
31585// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/insert
31586func (r *DisksService) Insert(project string, zone string, disk *Disk) *DisksInsertCall {
31587	c := &DisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31588	c.project = project
31589	c.zone = zone
31590	c.disk = disk
31591	return c
31592}
31593
31594// RequestId sets the optional parameter "requestId": An optional
31595// request ID to identify requests. Specify a unique request ID so that
31596// if you must retry your request, the server will know to ignore the
31597// request if it has already been completed.
31598//
31599// For example, consider a situation where you make an initial request
31600// and the request times out. If you make the request again with the
31601// same request ID, the server can check if original operation with the
31602// same request ID was received, and if so, will ignore the second
31603// request. This prevents clients from accidentally creating duplicate
31604// commitments.
31605//
31606// The request ID must be a valid UUID with the exception that zero UUID
31607// is not supported (00000000-0000-0000-0000-000000000000).
31608func (c *DisksInsertCall) RequestId(requestId string) *DisksInsertCall {
31609	c.urlParams_.Set("requestId", requestId)
31610	return c
31611}
31612
31613// SourceImage sets the optional parameter "sourceImage": Source image
31614// to restore onto a disk.
31615func (c *DisksInsertCall) SourceImage(sourceImage string) *DisksInsertCall {
31616	c.urlParams_.Set("sourceImage", sourceImage)
31617	return c
31618}
31619
31620// Fields allows partial responses to be retrieved. See
31621// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31622// for more information.
31623func (c *DisksInsertCall) Fields(s ...googleapi.Field) *DisksInsertCall {
31624	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31625	return c
31626}
31627
31628// Context sets the context to be used in this call's Do method. Any
31629// pending HTTP request will be aborted if the provided context is
31630// canceled.
31631func (c *DisksInsertCall) Context(ctx context.Context) *DisksInsertCall {
31632	c.ctx_ = ctx
31633	return c
31634}
31635
31636// Header returns an http.Header that can be modified by the caller to
31637// add HTTP headers to the request.
31638func (c *DisksInsertCall) Header() http.Header {
31639	if c.header_ == nil {
31640		c.header_ = make(http.Header)
31641	}
31642	return c.header_
31643}
31644
31645func (c *DisksInsertCall) doRequest(alt string) (*http.Response, error) {
31646	reqHeaders := make(http.Header)
31647	for k, v := range c.header_ {
31648		reqHeaders[k] = v
31649	}
31650	reqHeaders.Set("User-Agent", c.s.userAgent())
31651	var body io.Reader = nil
31652	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
31653	if err != nil {
31654		return nil, err
31655	}
31656	reqHeaders.Set("Content-Type", "application/json")
31657	c.urlParams_.Set("alt", alt)
31658	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks")
31659	urls += "?" + c.urlParams_.Encode()
31660	req, _ := http.NewRequest("POST", urls, body)
31661	req.Header = reqHeaders
31662	googleapi.Expand(req.URL, map[string]string{
31663		"project": c.project,
31664		"zone":    c.zone,
31665	})
31666	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31667}
31668
31669// Do executes the "compute.disks.insert" call.
31670// Exactly one of *Operation or error will be non-nil. Any non-2xx
31671// status code is an error. Response headers are in either
31672// *Operation.ServerResponse.Header or (if a response was returned at
31673// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
31674// to check whether the returned error was because
31675// http.StatusNotModified was returned.
31676func (c *DisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
31677	gensupport.SetOptions(c.urlParams_, opts...)
31678	res, err := c.doRequest("json")
31679	if res != nil && res.StatusCode == http.StatusNotModified {
31680		if res.Body != nil {
31681			res.Body.Close()
31682		}
31683		return nil, &googleapi.Error{
31684			Code:   res.StatusCode,
31685			Header: res.Header,
31686		}
31687	}
31688	if err != nil {
31689		return nil, err
31690	}
31691	defer googleapi.CloseBody(res)
31692	if err := googleapi.CheckResponse(res); err != nil {
31693		return nil, err
31694	}
31695	ret := &Operation{
31696		ServerResponse: googleapi.ServerResponse{
31697			Header:         res.Header,
31698			HTTPStatusCode: res.StatusCode,
31699		},
31700	}
31701	target := &ret
31702	if err := gensupport.DecodeResponse(target, res); err != nil {
31703		return nil, err
31704	}
31705	return ret, nil
31706	// {
31707	//   "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.",
31708	//   "httpMethod": "POST",
31709	//   "id": "compute.disks.insert",
31710	//   "parameterOrder": [
31711	//     "project",
31712	//     "zone"
31713	//   ],
31714	//   "parameters": {
31715	//     "project": {
31716	//       "description": "Project ID for this request.",
31717	//       "location": "path",
31718	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
31719	//       "required": true,
31720	//       "type": "string"
31721	//     },
31722	//     "requestId": {
31723	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
31724	//       "location": "query",
31725	//       "type": "string"
31726	//     },
31727	//     "sourceImage": {
31728	//       "description": "Optional. Source image to restore onto a disk.",
31729	//       "location": "query",
31730	//       "type": "string"
31731	//     },
31732	//     "zone": {
31733	//       "description": "The name of the zone for this request.",
31734	//       "location": "path",
31735	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
31736	//       "required": true,
31737	//       "type": "string"
31738	//     }
31739	//   },
31740	//   "path": "{project}/zones/{zone}/disks",
31741	//   "request": {
31742	//     "$ref": "Disk"
31743	//   },
31744	//   "response": {
31745	//     "$ref": "Operation"
31746	//   },
31747	//   "scopes": [
31748	//     "https://www.googleapis.com/auth/cloud-platform",
31749	//     "https://www.googleapis.com/auth/compute"
31750	//   ]
31751	// }
31752
31753}
31754
31755// method id "compute.disks.list":
31756
31757type DisksListCall struct {
31758	s            *Service
31759	project      string
31760	zone         string
31761	urlParams_   gensupport.URLParams
31762	ifNoneMatch_ string
31763	ctx_         context.Context
31764	header_      http.Header
31765}
31766
31767// List: Retrieves a list of persistent disks contained within the
31768// specified zone.
31769// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/list
31770func (r *DisksService) List(project string, zone string) *DisksListCall {
31771	c := &DisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31772	c.project = project
31773	c.zone = zone
31774	return c
31775}
31776
31777// Filter sets the optional parameter "filter": A filter expression that
31778// filters resources listed in the response. The expression must specify
31779// the field name, a comparison operator, and the value that you want to
31780// use for filtering. The value must be a string, a number, or a
31781// boolean. The comparison operator must be either =, !=, >, or <.
31782//
31783// For example, if you are filtering Compute Engine instances, you can
31784// exclude instances named example-instance by specifying name !=
31785// example-instance.
31786//
31787// You can also filter nested fields. For example, you could specify
31788// scheduling.automaticRestart = false to include instances only if they
31789// are not scheduled for automatic restarts. You can use filtering on
31790// nested fields to filter based on resource labels.
31791//
31792// To filter on multiple expressions, provide each separate expression
31793// within parentheses. For example, (scheduling.automaticRestart = true)
31794// (cpuPlatform = "Intel Skylake"). By default, each expression is an
31795// AND expression. However, you can include AND and OR expressions
31796// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
31797// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
31798// true).
31799func (c *DisksListCall) Filter(filter string) *DisksListCall {
31800	c.urlParams_.Set("filter", filter)
31801	return c
31802}
31803
31804// MaxResults sets the optional parameter "maxResults": The maximum
31805// number of results per page that should be returned. If the number of
31806// available results is larger than maxResults, Compute Engine returns a
31807// nextPageToken that can be used to get the next page of results in
31808// subsequent list requests. Acceptable values are 0 to 500, inclusive.
31809// (Default: 500)
31810func (c *DisksListCall) MaxResults(maxResults int64) *DisksListCall {
31811	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
31812	return c
31813}
31814
31815// OrderBy sets the optional parameter "orderBy": Sorts list results by
31816// a certain order. By default, results are returned in alphanumerical
31817// order based on the resource name.
31818//
31819// You can also sort results in descending order based on the creation
31820// timestamp using orderBy="creationTimestamp desc". This sorts results
31821// based on the creationTimestamp field in reverse chronological order
31822// (newest result first). Use this to sort resources like operations so
31823// that the newest operation is returned first.
31824//
31825// Currently, only sorting by name or creationTimestamp desc is
31826// supported.
31827func (c *DisksListCall) OrderBy(orderBy string) *DisksListCall {
31828	c.urlParams_.Set("orderBy", orderBy)
31829	return c
31830}
31831
31832// PageToken sets the optional parameter "pageToken": Specifies a page
31833// token to use. Set pageToken to the nextPageToken returned by a
31834// previous list request to get the next page of results.
31835func (c *DisksListCall) PageToken(pageToken string) *DisksListCall {
31836	c.urlParams_.Set("pageToken", pageToken)
31837	return c
31838}
31839
31840// Fields allows partial responses to be retrieved. See
31841// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31842// for more information.
31843func (c *DisksListCall) Fields(s ...googleapi.Field) *DisksListCall {
31844	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31845	return c
31846}
31847
31848// IfNoneMatch sets the optional parameter which makes the operation
31849// fail if the object's ETag matches the given value. This is useful for
31850// getting updates only after the object has changed since the last
31851// request. Use googleapi.IsNotModified to check whether the response
31852// error from Do is the result of In-None-Match.
31853func (c *DisksListCall) IfNoneMatch(entityTag string) *DisksListCall {
31854	c.ifNoneMatch_ = entityTag
31855	return c
31856}
31857
31858// Context sets the context to be used in this call's Do method. Any
31859// pending HTTP request will be aborted if the provided context is
31860// canceled.
31861func (c *DisksListCall) Context(ctx context.Context) *DisksListCall {
31862	c.ctx_ = ctx
31863	return c
31864}
31865
31866// Header returns an http.Header that can be modified by the caller to
31867// add HTTP headers to the request.
31868func (c *DisksListCall) Header() http.Header {
31869	if c.header_ == nil {
31870		c.header_ = make(http.Header)
31871	}
31872	return c.header_
31873}
31874
31875func (c *DisksListCall) doRequest(alt string) (*http.Response, error) {
31876	reqHeaders := make(http.Header)
31877	for k, v := range c.header_ {
31878		reqHeaders[k] = v
31879	}
31880	reqHeaders.Set("User-Agent", c.s.userAgent())
31881	if c.ifNoneMatch_ != "" {
31882		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
31883	}
31884	var body io.Reader = nil
31885	c.urlParams_.Set("alt", alt)
31886	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks")
31887	urls += "?" + c.urlParams_.Encode()
31888	req, _ := http.NewRequest("GET", urls, body)
31889	req.Header = reqHeaders
31890	googleapi.Expand(req.URL, map[string]string{
31891		"project": c.project,
31892		"zone":    c.zone,
31893	})
31894	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31895}
31896
31897// Do executes the "compute.disks.list" call.
31898// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
31899// code is an error. Response headers are in either
31900// *DiskList.ServerResponse.Header or (if a response was returned at
31901// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
31902// to check whether the returned error was because
31903// http.StatusNotModified was returned.
31904func (c *DisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
31905	gensupport.SetOptions(c.urlParams_, opts...)
31906	res, err := c.doRequest("json")
31907	if res != nil && res.StatusCode == http.StatusNotModified {
31908		if res.Body != nil {
31909			res.Body.Close()
31910		}
31911		return nil, &googleapi.Error{
31912			Code:   res.StatusCode,
31913			Header: res.Header,
31914		}
31915	}
31916	if err != nil {
31917		return nil, err
31918	}
31919	defer googleapi.CloseBody(res)
31920	if err := googleapi.CheckResponse(res); err != nil {
31921		return nil, err
31922	}
31923	ret := &DiskList{
31924		ServerResponse: googleapi.ServerResponse{
31925			Header:         res.Header,
31926			HTTPStatusCode: res.StatusCode,
31927		},
31928	}
31929	target := &ret
31930	if err := gensupport.DecodeResponse(target, res); err != nil {
31931		return nil, err
31932	}
31933	return ret, nil
31934	// {
31935	//   "description": "Retrieves a list of persistent disks contained within the specified zone.",
31936	//   "httpMethod": "GET",
31937	//   "id": "compute.disks.list",
31938	//   "parameterOrder": [
31939	//     "project",
31940	//     "zone"
31941	//   ],
31942	//   "parameters": {
31943	//     "filter": {
31944	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
31945	//       "location": "query",
31946	//       "type": "string"
31947	//     },
31948	//     "maxResults": {
31949	//       "default": "500",
31950	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
31951	//       "format": "uint32",
31952	//       "location": "query",
31953	//       "minimum": "0",
31954	//       "type": "integer"
31955	//     },
31956	//     "orderBy": {
31957	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
31958	//       "location": "query",
31959	//       "type": "string"
31960	//     },
31961	//     "pageToken": {
31962	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
31963	//       "location": "query",
31964	//       "type": "string"
31965	//     },
31966	//     "project": {
31967	//       "description": "Project ID for this request.",
31968	//       "location": "path",
31969	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
31970	//       "required": true,
31971	//       "type": "string"
31972	//     },
31973	//     "zone": {
31974	//       "description": "The name of the zone for this request.",
31975	//       "location": "path",
31976	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
31977	//       "required": true,
31978	//       "type": "string"
31979	//     }
31980	//   },
31981	//   "path": "{project}/zones/{zone}/disks",
31982	//   "response": {
31983	//     "$ref": "DiskList"
31984	//   },
31985	//   "scopes": [
31986	//     "https://www.googleapis.com/auth/cloud-platform",
31987	//     "https://www.googleapis.com/auth/compute",
31988	//     "https://www.googleapis.com/auth/compute.readonly"
31989	//   ]
31990	// }
31991
31992}
31993
31994// Pages invokes f for each page of results.
31995// A non-nil error returned from f will halt the iteration.
31996// The provided context supersedes any context provided to the Context method.
31997func (c *DisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
31998	c.ctx_ = ctx
31999	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
32000	for {
32001		x, err := c.Do()
32002		if err != nil {
32003			return err
32004		}
32005		if err := f(x); err != nil {
32006			return err
32007		}
32008		if x.NextPageToken == "" {
32009			return nil
32010		}
32011		c.PageToken(x.NextPageToken)
32012	}
32013}
32014
32015// method id "compute.disks.resize":
32016
32017type DisksResizeCall struct {
32018	s                  *Service
32019	project            string
32020	zone               string
32021	disk               string
32022	disksresizerequest *DisksResizeRequest
32023	urlParams_         gensupport.URLParams
32024	ctx_               context.Context
32025	header_            http.Header
32026}
32027
32028// Resize: Resizes the specified persistent disk. You can only increase
32029// the size of the disk.
32030func (r *DisksService) Resize(project string, zone string, disk string, disksresizerequest *DisksResizeRequest) *DisksResizeCall {
32031	c := &DisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32032	c.project = project
32033	c.zone = zone
32034	c.disk = disk
32035	c.disksresizerequest = disksresizerequest
32036	return c
32037}
32038
32039// RequestId sets the optional parameter "requestId": An optional
32040// request ID to identify requests. Specify a unique request ID so that
32041// if you must retry your request, the server will know to ignore the
32042// request if it has already been completed.
32043//
32044// For example, consider a situation where you make an initial request
32045// and the request times out. If you make the request again with the
32046// same request ID, the server can check if original operation with the
32047// same request ID was received, and if so, will ignore the second
32048// request. This prevents clients from accidentally creating duplicate
32049// commitments.
32050//
32051// The request ID must be a valid UUID with the exception that zero UUID
32052// is not supported (00000000-0000-0000-0000-000000000000).
32053func (c *DisksResizeCall) RequestId(requestId string) *DisksResizeCall {
32054	c.urlParams_.Set("requestId", requestId)
32055	return c
32056}
32057
32058// Fields allows partial responses to be retrieved. See
32059// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32060// for more information.
32061func (c *DisksResizeCall) Fields(s ...googleapi.Field) *DisksResizeCall {
32062	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32063	return c
32064}
32065
32066// Context sets the context to be used in this call's Do method. Any
32067// pending HTTP request will be aborted if the provided context is
32068// canceled.
32069func (c *DisksResizeCall) Context(ctx context.Context) *DisksResizeCall {
32070	c.ctx_ = ctx
32071	return c
32072}
32073
32074// Header returns an http.Header that can be modified by the caller to
32075// add HTTP headers to the request.
32076func (c *DisksResizeCall) Header() http.Header {
32077	if c.header_ == nil {
32078		c.header_ = make(http.Header)
32079	}
32080	return c.header_
32081}
32082
32083func (c *DisksResizeCall) doRequest(alt string) (*http.Response, error) {
32084	reqHeaders := make(http.Header)
32085	for k, v := range c.header_ {
32086		reqHeaders[k] = v
32087	}
32088	reqHeaders.Set("User-Agent", c.s.userAgent())
32089	var body io.Reader = nil
32090	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksresizerequest)
32091	if err != nil {
32092		return nil, err
32093	}
32094	reqHeaders.Set("Content-Type", "application/json")
32095	c.urlParams_.Set("alt", alt)
32096	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/resize")
32097	urls += "?" + c.urlParams_.Encode()
32098	req, _ := http.NewRequest("POST", urls, body)
32099	req.Header = reqHeaders
32100	googleapi.Expand(req.URL, map[string]string{
32101		"project": c.project,
32102		"zone":    c.zone,
32103		"disk":    c.disk,
32104	})
32105	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32106}
32107
32108// Do executes the "compute.disks.resize" call.
32109// Exactly one of *Operation or error will be non-nil. Any non-2xx
32110// status code is an error. Response headers are in either
32111// *Operation.ServerResponse.Header or (if a response was returned at
32112// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
32113// to check whether the returned error was because
32114// http.StatusNotModified was returned.
32115func (c *DisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
32116	gensupport.SetOptions(c.urlParams_, opts...)
32117	res, err := c.doRequest("json")
32118	if res != nil && res.StatusCode == http.StatusNotModified {
32119		if res.Body != nil {
32120			res.Body.Close()
32121		}
32122		return nil, &googleapi.Error{
32123			Code:   res.StatusCode,
32124			Header: res.Header,
32125		}
32126	}
32127	if err != nil {
32128		return nil, err
32129	}
32130	defer googleapi.CloseBody(res)
32131	if err := googleapi.CheckResponse(res); err != nil {
32132		return nil, err
32133	}
32134	ret := &Operation{
32135		ServerResponse: googleapi.ServerResponse{
32136			Header:         res.Header,
32137			HTTPStatusCode: res.StatusCode,
32138		},
32139	}
32140	target := &ret
32141	if err := gensupport.DecodeResponse(target, res); err != nil {
32142		return nil, err
32143	}
32144	return ret, nil
32145	// {
32146	//   "description": "Resizes the specified persistent disk. You can only increase the size of the disk.",
32147	//   "httpMethod": "POST",
32148	//   "id": "compute.disks.resize",
32149	//   "parameterOrder": [
32150	//     "project",
32151	//     "zone",
32152	//     "disk"
32153	//   ],
32154	//   "parameters": {
32155	//     "disk": {
32156	//       "description": "The name of the persistent disk.",
32157	//       "location": "path",
32158	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
32159	//       "required": true,
32160	//       "type": "string"
32161	//     },
32162	//     "project": {
32163	//       "description": "Project ID for this request.",
32164	//       "location": "path",
32165	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
32166	//       "required": true,
32167	//       "type": "string"
32168	//     },
32169	//     "requestId": {
32170	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
32171	//       "location": "query",
32172	//       "type": "string"
32173	//     },
32174	//     "zone": {
32175	//       "description": "The name of the zone for this request.",
32176	//       "location": "path",
32177	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
32178	//       "required": true,
32179	//       "type": "string"
32180	//     }
32181	//   },
32182	//   "path": "{project}/zones/{zone}/disks/{disk}/resize",
32183	//   "request": {
32184	//     "$ref": "DisksResizeRequest"
32185	//   },
32186	//   "response": {
32187	//     "$ref": "Operation"
32188	//   },
32189	//   "scopes": [
32190	//     "https://www.googleapis.com/auth/cloud-platform",
32191	//     "https://www.googleapis.com/auth/compute"
32192	//   ]
32193	// }
32194
32195}
32196
32197// method id "compute.disks.setLabels":
32198
32199type DisksSetLabelsCall struct {
32200	s                    *Service
32201	project              string
32202	zone                 string
32203	resource             string
32204	zonesetlabelsrequest *ZoneSetLabelsRequest
32205	urlParams_           gensupport.URLParams
32206	ctx_                 context.Context
32207	header_              http.Header
32208}
32209
32210// SetLabels: Sets the labels on a disk. To learn more about labels,
32211// read the Labeling Resources documentation.
32212func (r *DisksService) SetLabels(project string, zone string, resource string, zonesetlabelsrequest *ZoneSetLabelsRequest) *DisksSetLabelsCall {
32213	c := &DisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32214	c.project = project
32215	c.zone = zone
32216	c.resource = resource
32217	c.zonesetlabelsrequest = zonesetlabelsrequest
32218	return c
32219}
32220
32221// RequestId sets the optional parameter "requestId": An optional
32222// request ID to identify requests. Specify a unique request ID so that
32223// if you must retry your request, the server will know to ignore the
32224// request if it has already been completed.
32225//
32226// For example, consider a situation where you make an initial request
32227// and the request times out. If you make the request again with the
32228// same request ID, the server can check if original operation with the
32229// same request ID was received, and if so, will ignore the second
32230// request. This prevents clients from accidentally creating duplicate
32231// commitments.
32232//
32233// The request ID must be a valid UUID with the exception that zero UUID
32234// is not supported (00000000-0000-0000-0000-000000000000).
32235func (c *DisksSetLabelsCall) RequestId(requestId string) *DisksSetLabelsCall {
32236	c.urlParams_.Set("requestId", requestId)
32237	return c
32238}
32239
32240// Fields allows partial responses to be retrieved. See
32241// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32242// for more information.
32243func (c *DisksSetLabelsCall) Fields(s ...googleapi.Field) *DisksSetLabelsCall {
32244	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32245	return c
32246}
32247
32248// Context sets the context to be used in this call's Do method. Any
32249// pending HTTP request will be aborted if the provided context is
32250// canceled.
32251func (c *DisksSetLabelsCall) Context(ctx context.Context) *DisksSetLabelsCall {
32252	c.ctx_ = ctx
32253	return c
32254}
32255
32256// Header returns an http.Header that can be modified by the caller to
32257// add HTTP headers to the request.
32258func (c *DisksSetLabelsCall) Header() http.Header {
32259	if c.header_ == nil {
32260		c.header_ = make(http.Header)
32261	}
32262	return c.header_
32263}
32264
32265func (c *DisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
32266	reqHeaders := make(http.Header)
32267	for k, v := range c.header_ {
32268		reqHeaders[k] = v
32269	}
32270	reqHeaders.Set("User-Agent", c.s.userAgent())
32271	var body io.Reader = nil
32272	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetlabelsrequest)
32273	if err != nil {
32274		return nil, err
32275	}
32276	reqHeaders.Set("Content-Type", "application/json")
32277	c.urlParams_.Set("alt", alt)
32278	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/setLabels")
32279	urls += "?" + c.urlParams_.Encode()
32280	req, _ := http.NewRequest("POST", urls, body)
32281	req.Header = reqHeaders
32282	googleapi.Expand(req.URL, map[string]string{
32283		"project":  c.project,
32284		"zone":     c.zone,
32285		"resource": c.resource,
32286	})
32287	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32288}
32289
32290// Do executes the "compute.disks.setLabels" call.
32291// Exactly one of *Operation or error will be non-nil. Any non-2xx
32292// status code is an error. Response headers are in either
32293// *Operation.ServerResponse.Header or (if a response was returned at
32294// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
32295// to check whether the returned error was because
32296// http.StatusNotModified was returned.
32297func (c *DisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
32298	gensupport.SetOptions(c.urlParams_, opts...)
32299	res, err := c.doRequest("json")
32300	if res != nil && res.StatusCode == http.StatusNotModified {
32301		if res.Body != nil {
32302			res.Body.Close()
32303		}
32304		return nil, &googleapi.Error{
32305			Code:   res.StatusCode,
32306			Header: res.Header,
32307		}
32308	}
32309	if err != nil {
32310		return nil, err
32311	}
32312	defer googleapi.CloseBody(res)
32313	if err := googleapi.CheckResponse(res); err != nil {
32314		return nil, err
32315	}
32316	ret := &Operation{
32317		ServerResponse: googleapi.ServerResponse{
32318			Header:         res.Header,
32319			HTTPStatusCode: res.StatusCode,
32320		},
32321	}
32322	target := &ret
32323	if err := gensupport.DecodeResponse(target, res); err != nil {
32324		return nil, err
32325	}
32326	return ret, nil
32327	// {
32328	//   "description": "Sets the labels on a disk. To learn more about labels, read the Labeling Resources documentation.",
32329	//   "httpMethod": "POST",
32330	//   "id": "compute.disks.setLabels",
32331	//   "parameterOrder": [
32332	//     "project",
32333	//     "zone",
32334	//     "resource"
32335	//   ],
32336	//   "parameters": {
32337	//     "project": {
32338	//       "description": "Project ID for this request.",
32339	//       "location": "path",
32340	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
32341	//       "required": true,
32342	//       "type": "string"
32343	//     },
32344	//     "requestId": {
32345	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
32346	//       "location": "query",
32347	//       "type": "string"
32348	//     },
32349	//     "resource": {
32350	//       "description": "Name of the resource for this request.",
32351	//       "location": "path",
32352	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
32353	//       "required": true,
32354	//       "type": "string"
32355	//     },
32356	//     "zone": {
32357	//       "description": "The name of the zone for this request.",
32358	//       "location": "path",
32359	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
32360	//       "required": true,
32361	//       "type": "string"
32362	//     }
32363	//   },
32364	//   "path": "{project}/zones/{zone}/disks/{resource}/setLabels",
32365	//   "request": {
32366	//     "$ref": "ZoneSetLabelsRequest"
32367	//   },
32368	//   "response": {
32369	//     "$ref": "Operation"
32370	//   },
32371	//   "scopes": [
32372	//     "https://www.googleapis.com/auth/cloud-platform",
32373	//     "https://www.googleapis.com/auth/compute"
32374	//   ]
32375	// }
32376
32377}
32378
32379// method id "compute.firewalls.delete":
32380
32381type FirewallsDeleteCall struct {
32382	s          *Service
32383	project    string
32384	firewall   string
32385	urlParams_ gensupport.URLParams
32386	ctx_       context.Context
32387	header_    http.Header
32388}
32389
32390// Delete: Deletes the specified firewall.
32391// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/delete
32392func (r *FirewallsService) Delete(project string, firewall string) *FirewallsDeleteCall {
32393	c := &FirewallsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32394	c.project = project
32395	c.firewall = firewall
32396	return c
32397}
32398
32399// RequestId sets the optional parameter "requestId": An optional
32400// request ID to identify requests. Specify a unique request ID so that
32401// if you must retry your request, the server will know to ignore the
32402// request if it has already been completed.
32403//
32404// For example, consider a situation where you make an initial request
32405// and the request times out. If you make the request again with the
32406// same request ID, the server can check if original operation with the
32407// same request ID was received, and if so, will ignore the second
32408// request. This prevents clients from accidentally creating duplicate
32409// commitments.
32410//
32411// The request ID must be a valid UUID with the exception that zero UUID
32412// is not supported (00000000-0000-0000-0000-000000000000).
32413func (c *FirewallsDeleteCall) RequestId(requestId string) *FirewallsDeleteCall {
32414	c.urlParams_.Set("requestId", requestId)
32415	return c
32416}
32417
32418// Fields allows partial responses to be retrieved. See
32419// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32420// for more information.
32421func (c *FirewallsDeleteCall) Fields(s ...googleapi.Field) *FirewallsDeleteCall {
32422	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32423	return c
32424}
32425
32426// Context sets the context to be used in this call's Do method. Any
32427// pending HTTP request will be aborted if the provided context is
32428// canceled.
32429func (c *FirewallsDeleteCall) Context(ctx context.Context) *FirewallsDeleteCall {
32430	c.ctx_ = ctx
32431	return c
32432}
32433
32434// Header returns an http.Header that can be modified by the caller to
32435// add HTTP headers to the request.
32436func (c *FirewallsDeleteCall) Header() http.Header {
32437	if c.header_ == nil {
32438		c.header_ = make(http.Header)
32439	}
32440	return c.header_
32441}
32442
32443func (c *FirewallsDeleteCall) doRequest(alt string) (*http.Response, error) {
32444	reqHeaders := make(http.Header)
32445	for k, v := range c.header_ {
32446		reqHeaders[k] = v
32447	}
32448	reqHeaders.Set("User-Agent", c.s.userAgent())
32449	var body io.Reader = nil
32450	c.urlParams_.Set("alt", alt)
32451	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
32452	urls += "?" + c.urlParams_.Encode()
32453	req, _ := http.NewRequest("DELETE", urls, body)
32454	req.Header = reqHeaders
32455	googleapi.Expand(req.URL, map[string]string{
32456		"project":  c.project,
32457		"firewall": c.firewall,
32458	})
32459	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32460}
32461
32462// Do executes the "compute.firewalls.delete" call.
32463// Exactly one of *Operation or error will be non-nil. Any non-2xx
32464// status code is an error. Response headers are in either
32465// *Operation.ServerResponse.Header or (if a response was returned at
32466// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
32467// to check whether the returned error was because
32468// http.StatusNotModified was returned.
32469func (c *FirewallsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
32470	gensupport.SetOptions(c.urlParams_, opts...)
32471	res, err := c.doRequest("json")
32472	if res != nil && res.StatusCode == http.StatusNotModified {
32473		if res.Body != nil {
32474			res.Body.Close()
32475		}
32476		return nil, &googleapi.Error{
32477			Code:   res.StatusCode,
32478			Header: res.Header,
32479		}
32480	}
32481	if err != nil {
32482		return nil, err
32483	}
32484	defer googleapi.CloseBody(res)
32485	if err := googleapi.CheckResponse(res); err != nil {
32486		return nil, err
32487	}
32488	ret := &Operation{
32489		ServerResponse: googleapi.ServerResponse{
32490			Header:         res.Header,
32491			HTTPStatusCode: res.StatusCode,
32492		},
32493	}
32494	target := &ret
32495	if err := gensupport.DecodeResponse(target, res); err != nil {
32496		return nil, err
32497	}
32498	return ret, nil
32499	// {
32500	//   "description": "Deletes the specified firewall.",
32501	//   "httpMethod": "DELETE",
32502	//   "id": "compute.firewalls.delete",
32503	//   "parameterOrder": [
32504	//     "project",
32505	//     "firewall"
32506	//   ],
32507	//   "parameters": {
32508	//     "firewall": {
32509	//       "description": "Name of the firewall rule to delete.",
32510	//       "location": "path",
32511	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
32512	//       "required": true,
32513	//       "type": "string"
32514	//     },
32515	//     "project": {
32516	//       "description": "Project ID for this request.",
32517	//       "location": "path",
32518	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
32519	//       "required": true,
32520	//       "type": "string"
32521	//     },
32522	//     "requestId": {
32523	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
32524	//       "location": "query",
32525	//       "type": "string"
32526	//     }
32527	//   },
32528	//   "path": "{project}/global/firewalls/{firewall}",
32529	//   "response": {
32530	//     "$ref": "Operation"
32531	//   },
32532	//   "scopes": [
32533	//     "https://www.googleapis.com/auth/cloud-platform",
32534	//     "https://www.googleapis.com/auth/compute"
32535	//   ]
32536	// }
32537
32538}
32539
32540// method id "compute.firewalls.get":
32541
32542type FirewallsGetCall struct {
32543	s            *Service
32544	project      string
32545	firewall     string
32546	urlParams_   gensupport.URLParams
32547	ifNoneMatch_ string
32548	ctx_         context.Context
32549	header_      http.Header
32550}
32551
32552// Get: Returns the specified firewall.
32553// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/get
32554func (r *FirewallsService) Get(project string, firewall string) *FirewallsGetCall {
32555	c := &FirewallsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32556	c.project = project
32557	c.firewall = firewall
32558	return c
32559}
32560
32561// Fields allows partial responses to be retrieved. See
32562// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32563// for more information.
32564func (c *FirewallsGetCall) Fields(s ...googleapi.Field) *FirewallsGetCall {
32565	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32566	return c
32567}
32568
32569// IfNoneMatch sets the optional parameter which makes the operation
32570// fail if the object's ETag matches the given value. This is useful for
32571// getting updates only after the object has changed since the last
32572// request. Use googleapi.IsNotModified to check whether the response
32573// error from Do is the result of In-None-Match.
32574func (c *FirewallsGetCall) IfNoneMatch(entityTag string) *FirewallsGetCall {
32575	c.ifNoneMatch_ = entityTag
32576	return c
32577}
32578
32579// Context sets the context to be used in this call's Do method. Any
32580// pending HTTP request will be aborted if the provided context is
32581// canceled.
32582func (c *FirewallsGetCall) Context(ctx context.Context) *FirewallsGetCall {
32583	c.ctx_ = ctx
32584	return c
32585}
32586
32587// Header returns an http.Header that can be modified by the caller to
32588// add HTTP headers to the request.
32589func (c *FirewallsGetCall) Header() http.Header {
32590	if c.header_ == nil {
32591		c.header_ = make(http.Header)
32592	}
32593	return c.header_
32594}
32595
32596func (c *FirewallsGetCall) doRequest(alt string) (*http.Response, error) {
32597	reqHeaders := make(http.Header)
32598	for k, v := range c.header_ {
32599		reqHeaders[k] = v
32600	}
32601	reqHeaders.Set("User-Agent", c.s.userAgent())
32602	if c.ifNoneMatch_ != "" {
32603		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
32604	}
32605	var body io.Reader = nil
32606	c.urlParams_.Set("alt", alt)
32607	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
32608	urls += "?" + c.urlParams_.Encode()
32609	req, _ := http.NewRequest("GET", urls, body)
32610	req.Header = reqHeaders
32611	googleapi.Expand(req.URL, map[string]string{
32612		"project":  c.project,
32613		"firewall": c.firewall,
32614	})
32615	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32616}
32617
32618// Do executes the "compute.firewalls.get" call.
32619// Exactly one of *Firewall or error will be non-nil. Any non-2xx status
32620// code is an error. Response headers are in either
32621// *Firewall.ServerResponse.Header or (if a response was returned at
32622// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
32623// to check whether the returned error was because
32624// http.StatusNotModified was returned.
32625func (c *FirewallsGetCall) Do(opts ...googleapi.CallOption) (*Firewall, error) {
32626	gensupport.SetOptions(c.urlParams_, opts...)
32627	res, err := c.doRequest("json")
32628	if res != nil && res.StatusCode == http.StatusNotModified {
32629		if res.Body != nil {
32630			res.Body.Close()
32631		}
32632		return nil, &googleapi.Error{
32633			Code:   res.StatusCode,
32634			Header: res.Header,
32635		}
32636	}
32637	if err != nil {
32638		return nil, err
32639	}
32640	defer googleapi.CloseBody(res)
32641	if err := googleapi.CheckResponse(res); err != nil {
32642		return nil, err
32643	}
32644	ret := &Firewall{
32645		ServerResponse: googleapi.ServerResponse{
32646			Header:         res.Header,
32647			HTTPStatusCode: res.StatusCode,
32648		},
32649	}
32650	target := &ret
32651	if err := gensupport.DecodeResponse(target, res); err != nil {
32652		return nil, err
32653	}
32654	return ret, nil
32655	// {
32656	//   "description": "Returns the specified firewall.",
32657	//   "httpMethod": "GET",
32658	//   "id": "compute.firewalls.get",
32659	//   "parameterOrder": [
32660	//     "project",
32661	//     "firewall"
32662	//   ],
32663	//   "parameters": {
32664	//     "firewall": {
32665	//       "description": "Name of the firewall rule to return.",
32666	//       "location": "path",
32667	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
32668	//       "required": true,
32669	//       "type": "string"
32670	//     },
32671	//     "project": {
32672	//       "description": "Project ID for this request.",
32673	//       "location": "path",
32674	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
32675	//       "required": true,
32676	//       "type": "string"
32677	//     }
32678	//   },
32679	//   "path": "{project}/global/firewalls/{firewall}",
32680	//   "response": {
32681	//     "$ref": "Firewall"
32682	//   },
32683	//   "scopes": [
32684	//     "https://www.googleapis.com/auth/cloud-platform",
32685	//     "https://www.googleapis.com/auth/compute",
32686	//     "https://www.googleapis.com/auth/compute.readonly"
32687	//   ]
32688	// }
32689
32690}
32691
32692// method id "compute.firewalls.insert":
32693
32694type FirewallsInsertCall struct {
32695	s          *Service
32696	project    string
32697	firewall   *Firewall
32698	urlParams_ gensupport.URLParams
32699	ctx_       context.Context
32700	header_    http.Header
32701}
32702
32703// Insert: Creates a firewall rule in the specified project using the
32704// data included in the request.
32705// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/insert
32706func (r *FirewallsService) Insert(project string, firewall *Firewall) *FirewallsInsertCall {
32707	c := &FirewallsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32708	c.project = project
32709	c.firewall = firewall
32710	return c
32711}
32712
32713// RequestId sets the optional parameter "requestId": An optional
32714// request ID to identify requests. Specify a unique request ID so that
32715// if you must retry your request, the server will know to ignore the
32716// request if it has already been completed.
32717//
32718// For example, consider a situation where you make an initial request
32719// and the request times out. If you make the request again with the
32720// same request ID, the server can check if original operation with the
32721// same request ID was received, and if so, will ignore the second
32722// request. This prevents clients from accidentally creating duplicate
32723// commitments.
32724//
32725// The request ID must be a valid UUID with the exception that zero UUID
32726// is not supported (00000000-0000-0000-0000-000000000000).
32727func (c *FirewallsInsertCall) RequestId(requestId string) *FirewallsInsertCall {
32728	c.urlParams_.Set("requestId", requestId)
32729	return c
32730}
32731
32732// Fields allows partial responses to be retrieved. See
32733// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32734// for more information.
32735func (c *FirewallsInsertCall) Fields(s ...googleapi.Field) *FirewallsInsertCall {
32736	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32737	return c
32738}
32739
32740// Context sets the context to be used in this call's Do method. Any
32741// pending HTTP request will be aborted if the provided context is
32742// canceled.
32743func (c *FirewallsInsertCall) Context(ctx context.Context) *FirewallsInsertCall {
32744	c.ctx_ = ctx
32745	return c
32746}
32747
32748// Header returns an http.Header that can be modified by the caller to
32749// add HTTP headers to the request.
32750func (c *FirewallsInsertCall) Header() http.Header {
32751	if c.header_ == nil {
32752		c.header_ = make(http.Header)
32753	}
32754	return c.header_
32755}
32756
32757func (c *FirewallsInsertCall) doRequest(alt string) (*http.Response, error) {
32758	reqHeaders := make(http.Header)
32759	for k, v := range c.header_ {
32760		reqHeaders[k] = v
32761	}
32762	reqHeaders.Set("User-Agent", c.s.userAgent())
32763	var body io.Reader = nil
32764	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall)
32765	if err != nil {
32766		return nil, err
32767	}
32768	reqHeaders.Set("Content-Type", "application/json")
32769	c.urlParams_.Set("alt", alt)
32770	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls")
32771	urls += "?" + c.urlParams_.Encode()
32772	req, _ := http.NewRequest("POST", urls, body)
32773	req.Header = reqHeaders
32774	googleapi.Expand(req.URL, map[string]string{
32775		"project": c.project,
32776	})
32777	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32778}
32779
32780// Do executes the "compute.firewalls.insert" call.
32781// Exactly one of *Operation or error will be non-nil. Any non-2xx
32782// status code is an error. Response headers are in either
32783// *Operation.ServerResponse.Header or (if a response was returned at
32784// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
32785// to check whether the returned error was because
32786// http.StatusNotModified was returned.
32787func (c *FirewallsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
32788	gensupport.SetOptions(c.urlParams_, opts...)
32789	res, err := c.doRequest("json")
32790	if res != nil && res.StatusCode == http.StatusNotModified {
32791		if res.Body != nil {
32792			res.Body.Close()
32793		}
32794		return nil, &googleapi.Error{
32795			Code:   res.StatusCode,
32796			Header: res.Header,
32797		}
32798	}
32799	if err != nil {
32800		return nil, err
32801	}
32802	defer googleapi.CloseBody(res)
32803	if err := googleapi.CheckResponse(res); err != nil {
32804		return nil, err
32805	}
32806	ret := &Operation{
32807		ServerResponse: googleapi.ServerResponse{
32808			Header:         res.Header,
32809			HTTPStatusCode: res.StatusCode,
32810		},
32811	}
32812	target := &ret
32813	if err := gensupport.DecodeResponse(target, res); err != nil {
32814		return nil, err
32815	}
32816	return ret, nil
32817	// {
32818	//   "description": "Creates a firewall rule in the specified project using the data included in the request.",
32819	//   "httpMethod": "POST",
32820	//   "id": "compute.firewalls.insert",
32821	//   "parameterOrder": [
32822	//     "project"
32823	//   ],
32824	//   "parameters": {
32825	//     "project": {
32826	//       "description": "Project ID for this request.",
32827	//       "location": "path",
32828	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
32829	//       "required": true,
32830	//       "type": "string"
32831	//     },
32832	//     "requestId": {
32833	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
32834	//       "location": "query",
32835	//       "type": "string"
32836	//     }
32837	//   },
32838	//   "path": "{project}/global/firewalls",
32839	//   "request": {
32840	//     "$ref": "Firewall"
32841	//   },
32842	//   "response": {
32843	//     "$ref": "Operation"
32844	//   },
32845	//   "scopes": [
32846	//     "https://www.googleapis.com/auth/cloud-platform",
32847	//     "https://www.googleapis.com/auth/compute"
32848	//   ]
32849	// }
32850
32851}
32852
32853// method id "compute.firewalls.list":
32854
32855type FirewallsListCall struct {
32856	s            *Service
32857	project      string
32858	urlParams_   gensupport.URLParams
32859	ifNoneMatch_ string
32860	ctx_         context.Context
32861	header_      http.Header
32862}
32863
32864// List: Retrieves the list of firewall rules available to the specified
32865// project.
32866// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/list
32867func (r *FirewallsService) List(project string) *FirewallsListCall {
32868	c := &FirewallsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32869	c.project = project
32870	return c
32871}
32872
32873// Filter sets the optional parameter "filter": A filter expression that
32874// filters resources listed in the response. The expression must specify
32875// the field name, a comparison operator, and the value that you want to
32876// use for filtering. The value must be a string, a number, or a
32877// boolean. The comparison operator must be either =, !=, >, or <.
32878//
32879// For example, if you are filtering Compute Engine instances, you can
32880// exclude instances named example-instance by specifying name !=
32881// example-instance.
32882//
32883// You can also filter nested fields. For example, you could specify
32884// scheduling.automaticRestart = false to include instances only if they
32885// are not scheduled for automatic restarts. You can use filtering on
32886// nested fields to filter based on resource labels.
32887//
32888// To filter on multiple expressions, provide each separate expression
32889// within parentheses. For example, (scheduling.automaticRestart = true)
32890// (cpuPlatform = "Intel Skylake"). By default, each expression is an
32891// AND expression. However, you can include AND and OR expressions
32892// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
32893// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
32894// true).
32895func (c *FirewallsListCall) Filter(filter string) *FirewallsListCall {
32896	c.urlParams_.Set("filter", filter)
32897	return c
32898}
32899
32900// MaxResults sets the optional parameter "maxResults": The maximum
32901// number of results per page that should be returned. If the number of
32902// available results is larger than maxResults, Compute Engine returns a
32903// nextPageToken that can be used to get the next page of results in
32904// subsequent list requests. Acceptable values are 0 to 500, inclusive.
32905// (Default: 500)
32906func (c *FirewallsListCall) MaxResults(maxResults int64) *FirewallsListCall {
32907	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
32908	return c
32909}
32910
32911// OrderBy sets the optional parameter "orderBy": Sorts list results by
32912// a certain order. By default, results are returned in alphanumerical
32913// order based on the resource name.
32914//
32915// You can also sort results in descending order based on the creation
32916// timestamp using orderBy="creationTimestamp desc". This sorts results
32917// based on the creationTimestamp field in reverse chronological order
32918// (newest result first). Use this to sort resources like operations so
32919// that the newest operation is returned first.
32920//
32921// Currently, only sorting by name or creationTimestamp desc is
32922// supported.
32923func (c *FirewallsListCall) OrderBy(orderBy string) *FirewallsListCall {
32924	c.urlParams_.Set("orderBy", orderBy)
32925	return c
32926}
32927
32928// PageToken sets the optional parameter "pageToken": Specifies a page
32929// token to use. Set pageToken to the nextPageToken returned by a
32930// previous list request to get the next page of results.
32931func (c *FirewallsListCall) PageToken(pageToken string) *FirewallsListCall {
32932	c.urlParams_.Set("pageToken", pageToken)
32933	return c
32934}
32935
32936// Fields allows partial responses to be retrieved. See
32937// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32938// for more information.
32939func (c *FirewallsListCall) Fields(s ...googleapi.Field) *FirewallsListCall {
32940	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32941	return c
32942}
32943
32944// IfNoneMatch sets the optional parameter which makes the operation
32945// fail if the object's ETag matches the given value. This is useful for
32946// getting updates only after the object has changed since the last
32947// request. Use googleapi.IsNotModified to check whether the response
32948// error from Do is the result of In-None-Match.
32949func (c *FirewallsListCall) IfNoneMatch(entityTag string) *FirewallsListCall {
32950	c.ifNoneMatch_ = entityTag
32951	return c
32952}
32953
32954// Context sets the context to be used in this call's Do method. Any
32955// pending HTTP request will be aborted if the provided context is
32956// canceled.
32957func (c *FirewallsListCall) Context(ctx context.Context) *FirewallsListCall {
32958	c.ctx_ = ctx
32959	return c
32960}
32961
32962// Header returns an http.Header that can be modified by the caller to
32963// add HTTP headers to the request.
32964func (c *FirewallsListCall) Header() http.Header {
32965	if c.header_ == nil {
32966		c.header_ = make(http.Header)
32967	}
32968	return c.header_
32969}
32970
32971func (c *FirewallsListCall) doRequest(alt string) (*http.Response, error) {
32972	reqHeaders := make(http.Header)
32973	for k, v := range c.header_ {
32974		reqHeaders[k] = v
32975	}
32976	reqHeaders.Set("User-Agent", c.s.userAgent())
32977	if c.ifNoneMatch_ != "" {
32978		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
32979	}
32980	var body io.Reader = nil
32981	c.urlParams_.Set("alt", alt)
32982	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls")
32983	urls += "?" + c.urlParams_.Encode()
32984	req, _ := http.NewRequest("GET", urls, body)
32985	req.Header = reqHeaders
32986	googleapi.Expand(req.URL, map[string]string{
32987		"project": c.project,
32988	})
32989	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32990}
32991
32992// Do executes the "compute.firewalls.list" call.
32993// Exactly one of *FirewallList or error will be non-nil. Any non-2xx
32994// status code is an error. Response headers are in either
32995// *FirewallList.ServerResponse.Header or (if a response was returned at
32996// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
32997// to check whether the returned error was because
32998// http.StatusNotModified was returned.
32999func (c *FirewallsListCall) Do(opts ...googleapi.CallOption) (*FirewallList, error) {
33000	gensupport.SetOptions(c.urlParams_, opts...)
33001	res, err := c.doRequest("json")
33002	if res != nil && res.StatusCode == http.StatusNotModified {
33003		if res.Body != nil {
33004			res.Body.Close()
33005		}
33006		return nil, &googleapi.Error{
33007			Code:   res.StatusCode,
33008			Header: res.Header,
33009		}
33010	}
33011	if err != nil {
33012		return nil, err
33013	}
33014	defer googleapi.CloseBody(res)
33015	if err := googleapi.CheckResponse(res); err != nil {
33016		return nil, err
33017	}
33018	ret := &FirewallList{
33019		ServerResponse: googleapi.ServerResponse{
33020			Header:         res.Header,
33021			HTTPStatusCode: res.StatusCode,
33022		},
33023	}
33024	target := &ret
33025	if err := gensupport.DecodeResponse(target, res); err != nil {
33026		return nil, err
33027	}
33028	return ret, nil
33029	// {
33030	//   "description": "Retrieves the list of firewall rules available to the specified project.",
33031	//   "httpMethod": "GET",
33032	//   "id": "compute.firewalls.list",
33033	//   "parameterOrder": [
33034	//     "project"
33035	//   ],
33036	//   "parameters": {
33037	//     "filter": {
33038	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
33039	//       "location": "query",
33040	//       "type": "string"
33041	//     },
33042	//     "maxResults": {
33043	//       "default": "500",
33044	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
33045	//       "format": "uint32",
33046	//       "location": "query",
33047	//       "minimum": "0",
33048	//       "type": "integer"
33049	//     },
33050	//     "orderBy": {
33051	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
33052	//       "location": "query",
33053	//       "type": "string"
33054	//     },
33055	//     "pageToken": {
33056	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
33057	//       "location": "query",
33058	//       "type": "string"
33059	//     },
33060	//     "project": {
33061	//       "description": "Project ID for this request.",
33062	//       "location": "path",
33063	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
33064	//       "required": true,
33065	//       "type": "string"
33066	//     }
33067	//   },
33068	//   "path": "{project}/global/firewalls",
33069	//   "response": {
33070	//     "$ref": "FirewallList"
33071	//   },
33072	//   "scopes": [
33073	//     "https://www.googleapis.com/auth/cloud-platform",
33074	//     "https://www.googleapis.com/auth/compute",
33075	//     "https://www.googleapis.com/auth/compute.readonly"
33076	//   ]
33077	// }
33078
33079}
33080
33081// Pages invokes f for each page of results.
33082// A non-nil error returned from f will halt the iteration.
33083// The provided context supersedes any context provided to the Context method.
33084func (c *FirewallsListCall) Pages(ctx context.Context, f func(*FirewallList) error) error {
33085	c.ctx_ = ctx
33086	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
33087	for {
33088		x, err := c.Do()
33089		if err != nil {
33090			return err
33091		}
33092		if err := f(x); err != nil {
33093			return err
33094		}
33095		if x.NextPageToken == "" {
33096			return nil
33097		}
33098		c.PageToken(x.NextPageToken)
33099	}
33100}
33101
33102// method id "compute.firewalls.patch":
33103
33104type FirewallsPatchCall struct {
33105	s          *Service
33106	project    string
33107	firewall   string
33108	firewall2  *Firewall
33109	urlParams_ gensupport.URLParams
33110	ctx_       context.Context
33111	header_    http.Header
33112}
33113
33114// Patch: Updates the specified firewall rule with the data included in
33115// the request. This method supports PATCH semantics and uses the JSON
33116// merge patch format and processing rules.
33117// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/patch
33118func (r *FirewallsService) Patch(project string, firewall string, firewall2 *Firewall) *FirewallsPatchCall {
33119	c := &FirewallsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33120	c.project = project
33121	c.firewall = firewall
33122	c.firewall2 = firewall2
33123	return c
33124}
33125
33126// RequestId sets the optional parameter "requestId": An optional
33127// request ID to identify requests. Specify a unique request ID so that
33128// if you must retry your request, the server will know to ignore the
33129// request if it has already been completed.
33130//
33131// For example, consider a situation where you make an initial request
33132// and the request times out. If you make the request again with the
33133// same request ID, the server can check if original operation with the
33134// same request ID was received, and if so, will ignore the second
33135// request. This prevents clients from accidentally creating duplicate
33136// commitments.
33137//
33138// The request ID must be a valid UUID with the exception that zero UUID
33139// is not supported (00000000-0000-0000-0000-000000000000).
33140func (c *FirewallsPatchCall) RequestId(requestId string) *FirewallsPatchCall {
33141	c.urlParams_.Set("requestId", requestId)
33142	return c
33143}
33144
33145// Fields allows partial responses to be retrieved. See
33146// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33147// for more information.
33148func (c *FirewallsPatchCall) Fields(s ...googleapi.Field) *FirewallsPatchCall {
33149	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33150	return c
33151}
33152
33153// Context sets the context to be used in this call's Do method. Any
33154// pending HTTP request will be aborted if the provided context is
33155// canceled.
33156func (c *FirewallsPatchCall) Context(ctx context.Context) *FirewallsPatchCall {
33157	c.ctx_ = ctx
33158	return c
33159}
33160
33161// Header returns an http.Header that can be modified by the caller to
33162// add HTTP headers to the request.
33163func (c *FirewallsPatchCall) Header() http.Header {
33164	if c.header_ == nil {
33165		c.header_ = make(http.Header)
33166	}
33167	return c.header_
33168}
33169
33170func (c *FirewallsPatchCall) doRequest(alt string) (*http.Response, error) {
33171	reqHeaders := make(http.Header)
33172	for k, v := range c.header_ {
33173		reqHeaders[k] = v
33174	}
33175	reqHeaders.Set("User-Agent", c.s.userAgent())
33176	var body io.Reader = nil
33177	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
33178	if err != nil {
33179		return nil, err
33180	}
33181	reqHeaders.Set("Content-Type", "application/json")
33182	c.urlParams_.Set("alt", alt)
33183	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
33184	urls += "?" + c.urlParams_.Encode()
33185	req, _ := http.NewRequest("PATCH", urls, body)
33186	req.Header = reqHeaders
33187	googleapi.Expand(req.URL, map[string]string{
33188		"project":  c.project,
33189		"firewall": c.firewall,
33190	})
33191	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33192}
33193
33194// Do executes the "compute.firewalls.patch" call.
33195// Exactly one of *Operation or error will be non-nil. Any non-2xx
33196// status code is an error. Response headers are in either
33197// *Operation.ServerResponse.Header or (if a response was returned at
33198// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
33199// to check whether the returned error was because
33200// http.StatusNotModified was returned.
33201func (c *FirewallsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
33202	gensupport.SetOptions(c.urlParams_, opts...)
33203	res, err := c.doRequest("json")
33204	if res != nil && res.StatusCode == http.StatusNotModified {
33205		if res.Body != nil {
33206			res.Body.Close()
33207		}
33208		return nil, &googleapi.Error{
33209			Code:   res.StatusCode,
33210			Header: res.Header,
33211		}
33212	}
33213	if err != nil {
33214		return nil, err
33215	}
33216	defer googleapi.CloseBody(res)
33217	if err := googleapi.CheckResponse(res); err != nil {
33218		return nil, err
33219	}
33220	ret := &Operation{
33221		ServerResponse: googleapi.ServerResponse{
33222			Header:         res.Header,
33223			HTTPStatusCode: res.StatusCode,
33224		},
33225	}
33226	target := &ret
33227	if err := gensupport.DecodeResponse(target, res); err != nil {
33228		return nil, err
33229	}
33230	return ret, nil
33231	// {
33232	//   "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.",
33233	//   "httpMethod": "PATCH",
33234	//   "id": "compute.firewalls.patch",
33235	//   "parameterOrder": [
33236	//     "project",
33237	//     "firewall"
33238	//   ],
33239	//   "parameters": {
33240	//     "firewall": {
33241	//       "description": "Name of the firewall rule to patch.",
33242	//       "location": "path",
33243	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
33244	//       "required": true,
33245	//       "type": "string"
33246	//     },
33247	//     "project": {
33248	//       "description": "Project ID for this request.",
33249	//       "location": "path",
33250	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
33251	//       "required": true,
33252	//       "type": "string"
33253	//     },
33254	//     "requestId": {
33255	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
33256	//       "location": "query",
33257	//       "type": "string"
33258	//     }
33259	//   },
33260	//   "path": "{project}/global/firewalls/{firewall}",
33261	//   "request": {
33262	//     "$ref": "Firewall"
33263	//   },
33264	//   "response": {
33265	//     "$ref": "Operation"
33266	//   },
33267	//   "scopes": [
33268	//     "https://www.googleapis.com/auth/cloud-platform",
33269	//     "https://www.googleapis.com/auth/compute"
33270	//   ]
33271	// }
33272
33273}
33274
33275// method id "compute.firewalls.update":
33276
33277type FirewallsUpdateCall struct {
33278	s          *Service
33279	project    string
33280	firewall   string
33281	firewall2  *Firewall
33282	urlParams_ gensupport.URLParams
33283	ctx_       context.Context
33284	header_    http.Header
33285}
33286
33287// Update: Updates the specified firewall rule with the data included in
33288// the request. The PUT method can only update the following fields of
33289// firewall rule: allowed, description, sourceRanges, sourceTags,
33290// targetTags.
33291// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/update
33292func (r *FirewallsService) Update(project string, firewall string, firewall2 *Firewall) *FirewallsUpdateCall {
33293	c := &FirewallsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33294	c.project = project
33295	c.firewall = firewall
33296	c.firewall2 = firewall2
33297	return c
33298}
33299
33300// RequestId sets the optional parameter "requestId": An optional
33301// request ID to identify requests. Specify a unique request ID so that
33302// if you must retry your request, the server will know to ignore the
33303// request if it has already been completed.
33304//
33305// For example, consider a situation where you make an initial request
33306// and the request times out. If you make the request again with the
33307// same request ID, the server can check if original operation with the
33308// same request ID was received, and if so, will ignore the second
33309// request. This prevents clients from accidentally creating duplicate
33310// commitments.
33311//
33312// The request ID must be a valid UUID with the exception that zero UUID
33313// is not supported (00000000-0000-0000-0000-000000000000).
33314func (c *FirewallsUpdateCall) RequestId(requestId string) *FirewallsUpdateCall {
33315	c.urlParams_.Set("requestId", requestId)
33316	return c
33317}
33318
33319// Fields allows partial responses to be retrieved. See
33320// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33321// for more information.
33322func (c *FirewallsUpdateCall) Fields(s ...googleapi.Field) *FirewallsUpdateCall {
33323	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33324	return c
33325}
33326
33327// Context sets the context to be used in this call's Do method. Any
33328// pending HTTP request will be aborted if the provided context is
33329// canceled.
33330func (c *FirewallsUpdateCall) Context(ctx context.Context) *FirewallsUpdateCall {
33331	c.ctx_ = ctx
33332	return c
33333}
33334
33335// Header returns an http.Header that can be modified by the caller to
33336// add HTTP headers to the request.
33337func (c *FirewallsUpdateCall) Header() http.Header {
33338	if c.header_ == nil {
33339		c.header_ = make(http.Header)
33340	}
33341	return c.header_
33342}
33343
33344func (c *FirewallsUpdateCall) doRequest(alt string) (*http.Response, error) {
33345	reqHeaders := make(http.Header)
33346	for k, v := range c.header_ {
33347		reqHeaders[k] = v
33348	}
33349	reqHeaders.Set("User-Agent", c.s.userAgent())
33350	var body io.Reader = nil
33351	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
33352	if err != nil {
33353		return nil, err
33354	}
33355	reqHeaders.Set("Content-Type", "application/json")
33356	c.urlParams_.Set("alt", alt)
33357	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
33358	urls += "?" + c.urlParams_.Encode()
33359	req, _ := http.NewRequest("PUT", urls, body)
33360	req.Header = reqHeaders
33361	googleapi.Expand(req.URL, map[string]string{
33362		"project":  c.project,
33363		"firewall": c.firewall,
33364	})
33365	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33366}
33367
33368// Do executes the "compute.firewalls.update" call.
33369// Exactly one of *Operation or error will be non-nil. Any non-2xx
33370// status code is an error. Response headers are in either
33371// *Operation.ServerResponse.Header or (if a response was returned at
33372// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
33373// to check whether the returned error was because
33374// http.StatusNotModified was returned.
33375func (c *FirewallsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
33376	gensupport.SetOptions(c.urlParams_, opts...)
33377	res, err := c.doRequest("json")
33378	if res != nil && res.StatusCode == http.StatusNotModified {
33379		if res.Body != nil {
33380			res.Body.Close()
33381		}
33382		return nil, &googleapi.Error{
33383			Code:   res.StatusCode,
33384			Header: res.Header,
33385		}
33386	}
33387	if err != nil {
33388		return nil, err
33389	}
33390	defer googleapi.CloseBody(res)
33391	if err := googleapi.CheckResponse(res); err != nil {
33392		return nil, err
33393	}
33394	ret := &Operation{
33395		ServerResponse: googleapi.ServerResponse{
33396			Header:         res.Header,
33397			HTTPStatusCode: res.StatusCode,
33398		},
33399	}
33400	target := &ret
33401	if err := gensupport.DecodeResponse(target, res); err != nil {
33402		return nil, err
33403	}
33404	return ret, nil
33405	// {
33406	//   "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.",
33407	//   "httpMethod": "PUT",
33408	//   "id": "compute.firewalls.update",
33409	//   "parameterOrder": [
33410	//     "project",
33411	//     "firewall"
33412	//   ],
33413	//   "parameters": {
33414	//     "firewall": {
33415	//       "description": "Name of the firewall rule to update.",
33416	//       "location": "path",
33417	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
33418	//       "required": true,
33419	//       "type": "string"
33420	//     },
33421	//     "project": {
33422	//       "description": "Project ID for this request.",
33423	//       "location": "path",
33424	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
33425	//       "required": true,
33426	//       "type": "string"
33427	//     },
33428	//     "requestId": {
33429	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
33430	//       "location": "query",
33431	//       "type": "string"
33432	//     }
33433	//   },
33434	//   "path": "{project}/global/firewalls/{firewall}",
33435	//   "request": {
33436	//     "$ref": "Firewall"
33437	//   },
33438	//   "response": {
33439	//     "$ref": "Operation"
33440	//   },
33441	//   "scopes": [
33442	//     "https://www.googleapis.com/auth/cloud-platform",
33443	//     "https://www.googleapis.com/auth/compute"
33444	//   ]
33445	// }
33446
33447}
33448
33449// method id "compute.forwardingRules.aggregatedList":
33450
33451type ForwardingRulesAggregatedListCall struct {
33452	s            *Service
33453	project      string
33454	urlParams_   gensupport.URLParams
33455	ifNoneMatch_ string
33456	ctx_         context.Context
33457	header_      http.Header
33458}
33459
33460// AggregatedList: Retrieves an aggregated list of forwarding rules.
33461// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/aggregatedList
33462func (r *ForwardingRulesService) AggregatedList(project string) *ForwardingRulesAggregatedListCall {
33463	c := &ForwardingRulesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33464	c.project = project
33465	return c
33466}
33467
33468// Filter sets the optional parameter "filter": A filter expression that
33469// filters resources listed in the response. The expression must specify
33470// the field name, a comparison operator, and the value that you want to
33471// use for filtering. The value must be a string, a number, or a
33472// boolean. The comparison operator must be either =, !=, >, or <.
33473//
33474// For example, if you are filtering Compute Engine instances, you can
33475// exclude instances named example-instance by specifying name !=
33476// example-instance.
33477//
33478// You can also filter nested fields. For example, you could specify
33479// scheduling.automaticRestart = false to include instances only if they
33480// are not scheduled for automatic restarts. You can use filtering on
33481// nested fields to filter based on resource labels.
33482//
33483// To filter on multiple expressions, provide each separate expression
33484// within parentheses. For example, (scheduling.automaticRestart = true)
33485// (cpuPlatform = "Intel Skylake"). By default, each expression is an
33486// AND expression. However, you can include AND and OR expressions
33487// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
33488// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
33489// true).
33490func (c *ForwardingRulesAggregatedListCall) Filter(filter string) *ForwardingRulesAggregatedListCall {
33491	c.urlParams_.Set("filter", filter)
33492	return c
33493}
33494
33495// MaxResults sets the optional parameter "maxResults": The maximum
33496// number of results per page that should be returned. If the number of
33497// available results is larger than maxResults, Compute Engine returns a
33498// nextPageToken that can be used to get the next page of results in
33499// subsequent list requests. Acceptable values are 0 to 500, inclusive.
33500// (Default: 500)
33501func (c *ForwardingRulesAggregatedListCall) MaxResults(maxResults int64) *ForwardingRulesAggregatedListCall {
33502	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
33503	return c
33504}
33505
33506// OrderBy sets the optional parameter "orderBy": Sorts list results by
33507// a certain order. By default, results are returned in alphanumerical
33508// order based on the resource name.
33509//
33510// You can also sort results in descending order based on the creation
33511// timestamp using orderBy="creationTimestamp desc". This sorts results
33512// based on the creationTimestamp field in reverse chronological order
33513// (newest result first). Use this to sort resources like operations so
33514// that the newest operation is returned first.
33515//
33516// Currently, only sorting by name or creationTimestamp desc is
33517// supported.
33518func (c *ForwardingRulesAggregatedListCall) OrderBy(orderBy string) *ForwardingRulesAggregatedListCall {
33519	c.urlParams_.Set("orderBy", orderBy)
33520	return c
33521}
33522
33523// PageToken sets the optional parameter "pageToken": Specifies a page
33524// token to use. Set pageToken to the nextPageToken returned by a
33525// previous list request to get the next page of results.
33526func (c *ForwardingRulesAggregatedListCall) PageToken(pageToken string) *ForwardingRulesAggregatedListCall {
33527	c.urlParams_.Set("pageToken", pageToken)
33528	return c
33529}
33530
33531// Fields allows partial responses to be retrieved. See
33532// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33533// for more information.
33534func (c *ForwardingRulesAggregatedListCall) Fields(s ...googleapi.Field) *ForwardingRulesAggregatedListCall {
33535	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33536	return c
33537}
33538
33539// IfNoneMatch sets the optional parameter which makes the operation
33540// fail if the object's ETag matches the given value. This is useful for
33541// getting updates only after the object has changed since the last
33542// request. Use googleapi.IsNotModified to check whether the response
33543// error from Do is the result of In-None-Match.
33544func (c *ForwardingRulesAggregatedListCall) IfNoneMatch(entityTag string) *ForwardingRulesAggregatedListCall {
33545	c.ifNoneMatch_ = entityTag
33546	return c
33547}
33548
33549// Context sets the context to be used in this call's Do method. Any
33550// pending HTTP request will be aborted if the provided context is
33551// canceled.
33552func (c *ForwardingRulesAggregatedListCall) Context(ctx context.Context) *ForwardingRulesAggregatedListCall {
33553	c.ctx_ = ctx
33554	return c
33555}
33556
33557// Header returns an http.Header that can be modified by the caller to
33558// add HTTP headers to the request.
33559func (c *ForwardingRulesAggregatedListCall) Header() http.Header {
33560	if c.header_ == nil {
33561		c.header_ = make(http.Header)
33562	}
33563	return c.header_
33564}
33565
33566func (c *ForwardingRulesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
33567	reqHeaders := make(http.Header)
33568	for k, v := range c.header_ {
33569		reqHeaders[k] = v
33570	}
33571	reqHeaders.Set("User-Agent", c.s.userAgent())
33572	if c.ifNoneMatch_ != "" {
33573		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
33574	}
33575	var body io.Reader = nil
33576	c.urlParams_.Set("alt", alt)
33577	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/forwardingRules")
33578	urls += "?" + c.urlParams_.Encode()
33579	req, _ := http.NewRequest("GET", urls, body)
33580	req.Header = reqHeaders
33581	googleapi.Expand(req.URL, map[string]string{
33582		"project": c.project,
33583	})
33584	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33585}
33586
33587// Do executes the "compute.forwardingRules.aggregatedList" call.
33588// Exactly one of *ForwardingRuleAggregatedList or error will be
33589// non-nil. Any non-2xx status code is an error. Response headers are in
33590// either *ForwardingRuleAggregatedList.ServerResponse.Header or (if a
33591// response was returned at all) in error.(*googleapi.Error).Header. Use
33592// googleapi.IsNotModified to check whether the returned error was
33593// because http.StatusNotModified was returned.
33594func (c *ForwardingRulesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleAggregatedList, error) {
33595	gensupport.SetOptions(c.urlParams_, opts...)
33596	res, err := c.doRequest("json")
33597	if res != nil && res.StatusCode == http.StatusNotModified {
33598		if res.Body != nil {
33599			res.Body.Close()
33600		}
33601		return nil, &googleapi.Error{
33602			Code:   res.StatusCode,
33603			Header: res.Header,
33604		}
33605	}
33606	if err != nil {
33607		return nil, err
33608	}
33609	defer googleapi.CloseBody(res)
33610	if err := googleapi.CheckResponse(res); err != nil {
33611		return nil, err
33612	}
33613	ret := &ForwardingRuleAggregatedList{
33614		ServerResponse: googleapi.ServerResponse{
33615			Header:         res.Header,
33616			HTTPStatusCode: res.StatusCode,
33617		},
33618	}
33619	target := &ret
33620	if err := gensupport.DecodeResponse(target, res); err != nil {
33621		return nil, err
33622	}
33623	return ret, nil
33624	// {
33625	//   "description": "Retrieves an aggregated list of forwarding rules.",
33626	//   "httpMethod": "GET",
33627	//   "id": "compute.forwardingRules.aggregatedList",
33628	//   "parameterOrder": [
33629	//     "project"
33630	//   ],
33631	//   "parameters": {
33632	//     "filter": {
33633	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
33634	//       "location": "query",
33635	//       "type": "string"
33636	//     },
33637	//     "maxResults": {
33638	//       "default": "500",
33639	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
33640	//       "format": "uint32",
33641	//       "location": "query",
33642	//       "minimum": "0",
33643	//       "type": "integer"
33644	//     },
33645	//     "orderBy": {
33646	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
33647	//       "location": "query",
33648	//       "type": "string"
33649	//     },
33650	//     "pageToken": {
33651	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
33652	//       "location": "query",
33653	//       "type": "string"
33654	//     },
33655	//     "project": {
33656	//       "description": "Project ID for this request.",
33657	//       "location": "path",
33658	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
33659	//       "required": true,
33660	//       "type": "string"
33661	//     }
33662	//   },
33663	//   "path": "{project}/aggregated/forwardingRules",
33664	//   "response": {
33665	//     "$ref": "ForwardingRuleAggregatedList"
33666	//   },
33667	//   "scopes": [
33668	//     "https://www.googleapis.com/auth/cloud-platform",
33669	//     "https://www.googleapis.com/auth/compute",
33670	//     "https://www.googleapis.com/auth/compute.readonly"
33671	//   ]
33672	// }
33673
33674}
33675
33676// Pages invokes f for each page of results.
33677// A non-nil error returned from f will halt the iteration.
33678// The provided context supersedes any context provided to the Context method.
33679func (c *ForwardingRulesAggregatedListCall) Pages(ctx context.Context, f func(*ForwardingRuleAggregatedList) error) error {
33680	c.ctx_ = ctx
33681	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
33682	for {
33683		x, err := c.Do()
33684		if err != nil {
33685			return err
33686		}
33687		if err := f(x); err != nil {
33688			return err
33689		}
33690		if x.NextPageToken == "" {
33691			return nil
33692		}
33693		c.PageToken(x.NextPageToken)
33694	}
33695}
33696
33697// method id "compute.forwardingRules.delete":
33698
33699type ForwardingRulesDeleteCall struct {
33700	s              *Service
33701	project        string
33702	region         string
33703	forwardingRule string
33704	urlParams_     gensupport.URLParams
33705	ctx_           context.Context
33706	header_        http.Header
33707}
33708
33709// Delete: Deletes the specified ForwardingRule resource.
33710// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/delete
33711func (r *ForwardingRulesService) Delete(project string, region string, forwardingRule string) *ForwardingRulesDeleteCall {
33712	c := &ForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33713	c.project = project
33714	c.region = region
33715	c.forwardingRule = forwardingRule
33716	return c
33717}
33718
33719// RequestId sets the optional parameter "requestId": An optional
33720// request ID to identify requests. Specify a unique request ID so that
33721// if you must retry your request, the server will know to ignore the
33722// request if it has already been completed.
33723//
33724// For example, consider a situation where you make an initial request
33725// and the request times out. If you make the request again with the
33726// same request ID, the server can check if original operation with the
33727// same request ID was received, and if so, will ignore the second
33728// request. This prevents clients from accidentally creating duplicate
33729// commitments.
33730//
33731// The request ID must be a valid UUID with the exception that zero UUID
33732// is not supported (00000000-0000-0000-0000-000000000000).
33733func (c *ForwardingRulesDeleteCall) RequestId(requestId string) *ForwardingRulesDeleteCall {
33734	c.urlParams_.Set("requestId", requestId)
33735	return c
33736}
33737
33738// Fields allows partial responses to be retrieved. See
33739// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33740// for more information.
33741func (c *ForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *ForwardingRulesDeleteCall {
33742	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33743	return c
33744}
33745
33746// Context sets the context to be used in this call's Do method. Any
33747// pending HTTP request will be aborted if the provided context is
33748// canceled.
33749func (c *ForwardingRulesDeleteCall) Context(ctx context.Context) *ForwardingRulesDeleteCall {
33750	c.ctx_ = ctx
33751	return c
33752}
33753
33754// Header returns an http.Header that can be modified by the caller to
33755// add HTTP headers to the request.
33756func (c *ForwardingRulesDeleteCall) Header() http.Header {
33757	if c.header_ == nil {
33758		c.header_ = make(http.Header)
33759	}
33760	return c.header_
33761}
33762
33763func (c *ForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
33764	reqHeaders := make(http.Header)
33765	for k, v := range c.header_ {
33766		reqHeaders[k] = v
33767	}
33768	reqHeaders.Set("User-Agent", c.s.userAgent())
33769	var body io.Reader = nil
33770	c.urlParams_.Set("alt", alt)
33771	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
33772	urls += "?" + c.urlParams_.Encode()
33773	req, _ := http.NewRequest("DELETE", urls, body)
33774	req.Header = reqHeaders
33775	googleapi.Expand(req.URL, map[string]string{
33776		"project":        c.project,
33777		"region":         c.region,
33778		"forwardingRule": c.forwardingRule,
33779	})
33780	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33781}
33782
33783// Do executes the "compute.forwardingRules.delete" call.
33784// Exactly one of *Operation or error will be non-nil. Any non-2xx
33785// status code is an error. Response headers are in either
33786// *Operation.ServerResponse.Header or (if a response was returned at
33787// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
33788// to check whether the returned error was because
33789// http.StatusNotModified was returned.
33790func (c *ForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
33791	gensupport.SetOptions(c.urlParams_, opts...)
33792	res, err := c.doRequest("json")
33793	if res != nil && res.StatusCode == http.StatusNotModified {
33794		if res.Body != nil {
33795			res.Body.Close()
33796		}
33797		return nil, &googleapi.Error{
33798			Code:   res.StatusCode,
33799			Header: res.Header,
33800		}
33801	}
33802	if err != nil {
33803		return nil, err
33804	}
33805	defer googleapi.CloseBody(res)
33806	if err := googleapi.CheckResponse(res); err != nil {
33807		return nil, err
33808	}
33809	ret := &Operation{
33810		ServerResponse: googleapi.ServerResponse{
33811			Header:         res.Header,
33812			HTTPStatusCode: res.StatusCode,
33813		},
33814	}
33815	target := &ret
33816	if err := gensupport.DecodeResponse(target, res); err != nil {
33817		return nil, err
33818	}
33819	return ret, nil
33820	// {
33821	//   "description": "Deletes the specified ForwardingRule resource.",
33822	//   "httpMethod": "DELETE",
33823	//   "id": "compute.forwardingRules.delete",
33824	//   "parameterOrder": [
33825	//     "project",
33826	//     "region",
33827	//     "forwardingRule"
33828	//   ],
33829	//   "parameters": {
33830	//     "forwardingRule": {
33831	//       "description": "Name of the ForwardingRule resource to delete.",
33832	//       "location": "path",
33833	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
33834	//       "required": true,
33835	//       "type": "string"
33836	//     },
33837	//     "project": {
33838	//       "description": "Project ID for this request.",
33839	//       "location": "path",
33840	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
33841	//       "required": true,
33842	//       "type": "string"
33843	//     },
33844	//     "region": {
33845	//       "description": "Name of the region scoping this request.",
33846	//       "location": "path",
33847	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
33848	//       "required": true,
33849	//       "type": "string"
33850	//     },
33851	//     "requestId": {
33852	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
33853	//       "location": "query",
33854	//       "type": "string"
33855	//     }
33856	//   },
33857	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
33858	//   "response": {
33859	//     "$ref": "Operation"
33860	//   },
33861	//   "scopes": [
33862	//     "https://www.googleapis.com/auth/cloud-platform",
33863	//     "https://www.googleapis.com/auth/compute"
33864	//   ]
33865	// }
33866
33867}
33868
33869// method id "compute.forwardingRules.get":
33870
33871type ForwardingRulesGetCall struct {
33872	s              *Service
33873	project        string
33874	region         string
33875	forwardingRule string
33876	urlParams_     gensupport.URLParams
33877	ifNoneMatch_   string
33878	ctx_           context.Context
33879	header_        http.Header
33880}
33881
33882// Get: Returns the specified ForwardingRule resource.
33883// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/get
33884func (r *ForwardingRulesService) Get(project string, region string, forwardingRule string) *ForwardingRulesGetCall {
33885	c := &ForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33886	c.project = project
33887	c.region = region
33888	c.forwardingRule = forwardingRule
33889	return c
33890}
33891
33892// Fields allows partial responses to be retrieved. See
33893// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33894// for more information.
33895func (c *ForwardingRulesGetCall) Fields(s ...googleapi.Field) *ForwardingRulesGetCall {
33896	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33897	return c
33898}
33899
33900// IfNoneMatch sets the optional parameter which makes the operation
33901// fail if the object's ETag matches the given value. This is useful for
33902// getting updates only after the object has changed since the last
33903// request. Use googleapi.IsNotModified to check whether the response
33904// error from Do is the result of In-None-Match.
33905func (c *ForwardingRulesGetCall) IfNoneMatch(entityTag string) *ForwardingRulesGetCall {
33906	c.ifNoneMatch_ = entityTag
33907	return c
33908}
33909
33910// Context sets the context to be used in this call's Do method. Any
33911// pending HTTP request will be aborted if the provided context is
33912// canceled.
33913func (c *ForwardingRulesGetCall) Context(ctx context.Context) *ForwardingRulesGetCall {
33914	c.ctx_ = ctx
33915	return c
33916}
33917
33918// Header returns an http.Header that can be modified by the caller to
33919// add HTTP headers to the request.
33920func (c *ForwardingRulesGetCall) Header() http.Header {
33921	if c.header_ == nil {
33922		c.header_ = make(http.Header)
33923	}
33924	return c.header_
33925}
33926
33927func (c *ForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
33928	reqHeaders := make(http.Header)
33929	for k, v := range c.header_ {
33930		reqHeaders[k] = v
33931	}
33932	reqHeaders.Set("User-Agent", c.s.userAgent())
33933	if c.ifNoneMatch_ != "" {
33934		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
33935	}
33936	var body io.Reader = nil
33937	c.urlParams_.Set("alt", alt)
33938	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
33939	urls += "?" + c.urlParams_.Encode()
33940	req, _ := http.NewRequest("GET", urls, body)
33941	req.Header = reqHeaders
33942	googleapi.Expand(req.URL, map[string]string{
33943		"project":        c.project,
33944		"region":         c.region,
33945		"forwardingRule": c.forwardingRule,
33946	})
33947	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33948}
33949
33950// Do executes the "compute.forwardingRules.get" call.
33951// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
33952// status code is an error. Response headers are in either
33953// *ForwardingRule.ServerResponse.Header or (if a response was returned
33954// at all) in error.(*googleapi.Error).Header. Use
33955// googleapi.IsNotModified to check whether the returned error was
33956// because http.StatusNotModified was returned.
33957func (c *ForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
33958	gensupport.SetOptions(c.urlParams_, opts...)
33959	res, err := c.doRequest("json")
33960	if res != nil && res.StatusCode == http.StatusNotModified {
33961		if res.Body != nil {
33962			res.Body.Close()
33963		}
33964		return nil, &googleapi.Error{
33965			Code:   res.StatusCode,
33966			Header: res.Header,
33967		}
33968	}
33969	if err != nil {
33970		return nil, err
33971	}
33972	defer googleapi.CloseBody(res)
33973	if err := googleapi.CheckResponse(res); err != nil {
33974		return nil, err
33975	}
33976	ret := &ForwardingRule{
33977		ServerResponse: googleapi.ServerResponse{
33978			Header:         res.Header,
33979			HTTPStatusCode: res.StatusCode,
33980		},
33981	}
33982	target := &ret
33983	if err := gensupport.DecodeResponse(target, res); err != nil {
33984		return nil, err
33985	}
33986	return ret, nil
33987	// {
33988	//   "description": "Returns the specified ForwardingRule resource.",
33989	//   "httpMethod": "GET",
33990	//   "id": "compute.forwardingRules.get",
33991	//   "parameterOrder": [
33992	//     "project",
33993	//     "region",
33994	//     "forwardingRule"
33995	//   ],
33996	//   "parameters": {
33997	//     "forwardingRule": {
33998	//       "description": "Name of the ForwardingRule resource to return.",
33999	//       "location": "path",
34000	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
34001	//       "required": true,
34002	//       "type": "string"
34003	//     },
34004	//     "project": {
34005	//       "description": "Project ID for this request.",
34006	//       "location": "path",
34007	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
34008	//       "required": true,
34009	//       "type": "string"
34010	//     },
34011	//     "region": {
34012	//       "description": "Name of the region scoping this request.",
34013	//       "location": "path",
34014	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
34015	//       "required": true,
34016	//       "type": "string"
34017	//     }
34018	//   },
34019	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
34020	//   "response": {
34021	//     "$ref": "ForwardingRule"
34022	//   },
34023	//   "scopes": [
34024	//     "https://www.googleapis.com/auth/cloud-platform",
34025	//     "https://www.googleapis.com/auth/compute",
34026	//     "https://www.googleapis.com/auth/compute.readonly"
34027	//   ]
34028	// }
34029
34030}
34031
34032// method id "compute.forwardingRules.insert":
34033
34034type ForwardingRulesInsertCall struct {
34035	s              *Service
34036	project        string
34037	region         string
34038	forwardingrule *ForwardingRule
34039	urlParams_     gensupport.URLParams
34040	ctx_           context.Context
34041	header_        http.Header
34042}
34043
34044// Insert: Creates a ForwardingRule resource in the specified project
34045// and region using the data included in the request.
34046// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/insert
34047func (r *ForwardingRulesService) Insert(project string, region string, forwardingrule *ForwardingRule) *ForwardingRulesInsertCall {
34048	c := &ForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34049	c.project = project
34050	c.region = region
34051	c.forwardingrule = forwardingrule
34052	return c
34053}
34054
34055// RequestId sets the optional parameter "requestId": An optional
34056// request ID to identify requests. Specify a unique request ID so that
34057// if you must retry your request, the server will know to ignore the
34058// request if it has already been completed.
34059//
34060// For example, consider a situation where you make an initial request
34061// and the request times out. If you make the request again with the
34062// same request ID, the server can check if original operation with the
34063// same request ID was received, and if so, will ignore the second
34064// request. This prevents clients from accidentally creating duplicate
34065// commitments.
34066//
34067// The request ID must be a valid UUID with the exception that zero UUID
34068// is not supported (00000000-0000-0000-0000-000000000000).
34069func (c *ForwardingRulesInsertCall) RequestId(requestId string) *ForwardingRulesInsertCall {
34070	c.urlParams_.Set("requestId", requestId)
34071	return c
34072}
34073
34074// Fields allows partial responses to be retrieved. See
34075// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34076// for more information.
34077func (c *ForwardingRulesInsertCall) Fields(s ...googleapi.Field) *ForwardingRulesInsertCall {
34078	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34079	return c
34080}
34081
34082// Context sets the context to be used in this call's Do method. Any
34083// pending HTTP request will be aborted if the provided context is
34084// canceled.
34085func (c *ForwardingRulesInsertCall) Context(ctx context.Context) *ForwardingRulesInsertCall {
34086	c.ctx_ = ctx
34087	return c
34088}
34089
34090// Header returns an http.Header that can be modified by the caller to
34091// add HTTP headers to the request.
34092func (c *ForwardingRulesInsertCall) Header() http.Header {
34093	if c.header_ == nil {
34094		c.header_ = make(http.Header)
34095	}
34096	return c.header_
34097}
34098
34099func (c *ForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
34100	reqHeaders := make(http.Header)
34101	for k, v := range c.header_ {
34102		reqHeaders[k] = v
34103	}
34104	reqHeaders.Set("User-Agent", c.s.userAgent())
34105	var body io.Reader = nil
34106	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
34107	if err != nil {
34108		return nil, err
34109	}
34110	reqHeaders.Set("Content-Type", "application/json")
34111	c.urlParams_.Set("alt", alt)
34112	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules")
34113	urls += "?" + c.urlParams_.Encode()
34114	req, _ := http.NewRequest("POST", urls, body)
34115	req.Header = reqHeaders
34116	googleapi.Expand(req.URL, map[string]string{
34117		"project": c.project,
34118		"region":  c.region,
34119	})
34120	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34121}
34122
34123// Do executes the "compute.forwardingRules.insert" call.
34124// Exactly one of *Operation or error will be non-nil. Any non-2xx
34125// status code is an error. Response headers are in either
34126// *Operation.ServerResponse.Header or (if a response was returned at
34127// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
34128// to check whether the returned error was because
34129// http.StatusNotModified was returned.
34130func (c *ForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
34131	gensupport.SetOptions(c.urlParams_, opts...)
34132	res, err := c.doRequest("json")
34133	if res != nil && res.StatusCode == http.StatusNotModified {
34134		if res.Body != nil {
34135			res.Body.Close()
34136		}
34137		return nil, &googleapi.Error{
34138			Code:   res.StatusCode,
34139			Header: res.Header,
34140		}
34141	}
34142	if err != nil {
34143		return nil, err
34144	}
34145	defer googleapi.CloseBody(res)
34146	if err := googleapi.CheckResponse(res); err != nil {
34147		return nil, err
34148	}
34149	ret := &Operation{
34150		ServerResponse: googleapi.ServerResponse{
34151			Header:         res.Header,
34152			HTTPStatusCode: res.StatusCode,
34153		},
34154	}
34155	target := &ret
34156	if err := gensupport.DecodeResponse(target, res); err != nil {
34157		return nil, err
34158	}
34159	return ret, nil
34160	// {
34161	//   "description": "Creates a ForwardingRule resource in the specified project and region using the data included in the request.",
34162	//   "httpMethod": "POST",
34163	//   "id": "compute.forwardingRules.insert",
34164	//   "parameterOrder": [
34165	//     "project",
34166	//     "region"
34167	//   ],
34168	//   "parameters": {
34169	//     "project": {
34170	//       "description": "Project ID for this request.",
34171	//       "location": "path",
34172	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
34173	//       "required": true,
34174	//       "type": "string"
34175	//     },
34176	//     "region": {
34177	//       "description": "Name of the region scoping this request.",
34178	//       "location": "path",
34179	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
34180	//       "required": true,
34181	//       "type": "string"
34182	//     },
34183	//     "requestId": {
34184	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
34185	//       "location": "query",
34186	//       "type": "string"
34187	//     }
34188	//   },
34189	//   "path": "{project}/regions/{region}/forwardingRules",
34190	//   "request": {
34191	//     "$ref": "ForwardingRule"
34192	//   },
34193	//   "response": {
34194	//     "$ref": "Operation"
34195	//   },
34196	//   "scopes": [
34197	//     "https://www.googleapis.com/auth/cloud-platform",
34198	//     "https://www.googleapis.com/auth/compute"
34199	//   ]
34200	// }
34201
34202}
34203
34204// method id "compute.forwardingRules.list":
34205
34206type ForwardingRulesListCall struct {
34207	s            *Service
34208	project      string
34209	region       string
34210	urlParams_   gensupport.URLParams
34211	ifNoneMatch_ string
34212	ctx_         context.Context
34213	header_      http.Header
34214}
34215
34216// List: Retrieves a list of ForwardingRule resources available to the
34217// specified project and region.
34218// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/list
34219func (r *ForwardingRulesService) List(project string, region string) *ForwardingRulesListCall {
34220	c := &ForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34221	c.project = project
34222	c.region = region
34223	return c
34224}
34225
34226// Filter sets the optional parameter "filter": A filter expression that
34227// filters resources listed in the response. The expression must specify
34228// the field name, a comparison operator, and the value that you want to
34229// use for filtering. The value must be a string, a number, or a
34230// boolean. The comparison operator must be either =, !=, >, or <.
34231//
34232// For example, if you are filtering Compute Engine instances, you can
34233// exclude instances named example-instance by specifying name !=
34234// example-instance.
34235//
34236// You can also filter nested fields. For example, you could specify
34237// scheduling.automaticRestart = false to include instances only if they
34238// are not scheduled for automatic restarts. You can use filtering on
34239// nested fields to filter based on resource labels.
34240//
34241// To filter on multiple expressions, provide each separate expression
34242// within parentheses. For example, (scheduling.automaticRestart = true)
34243// (cpuPlatform = "Intel Skylake"). By default, each expression is an
34244// AND expression. However, you can include AND and OR expressions
34245// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
34246// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
34247// true).
34248func (c *ForwardingRulesListCall) Filter(filter string) *ForwardingRulesListCall {
34249	c.urlParams_.Set("filter", filter)
34250	return c
34251}
34252
34253// MaxResults sets the optional parameter "maxResults": The maximum
34254// number of results per page that should be returned. If the number of
34255// available results is larger than maxResults, Compute Engine returns a
34256// nextPageToken that can be used to get the next page of results in
34257// subsequent list requests. Acceptable values are 0 to 500, inclusive.
34258// (Default: 500)
34259func (c *ForwardingRulesListCall) MaxResults(maxResults int64) *ForwardingRulesListCall {
34260	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
34261	return c
34262}
34263
34264// OrderBy sets the optional parameter "orderBy": Sorts list results by
34265// a certain order. By default, results are returned in alphanumerical
34266// order based on the resource name.
34267//
34268// You can also sort results in descending order based on the creation
34269// timestamp using orderBy="creationTimestamp desc". This sorts results
34270// based on the creationTimestamp field in reverse chronological order
34271// (newest result first). Use this to sort resources like operations so
34272// that the newest operation is returned first.
34273//
34274// Currently, only sorting by name or creationTimestamp desc is
34275// supported.
34276func (c *ForwardingRulesListCall) OrderBy(orderBy string) *ForwardingRulesListCall {
34277	c.urlParams_.Set("orderBy", orderBy)
34278	return c
34279}
34280
34281// PageToken sets the optional parameter "pageToken": Specifies a page
34282// token to use. Set pageToken to the nextPageToken returned by a
34283// previous list request to get the next page of results.
34284func (c *ForwardingRulesListCall) PageToken(pageToken string) *ForwardingRulesListCall {
34285	c.urlParams_.Set("pageToken", pageToken)
34286	return c
34287}
34288
34289// Fields allows partial responses to be retrieved. See
34290// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34291// for more information.
34292func (c *ForwardingRulesListCall) Fields(s ...googleapi.Field) *ForwardingRulesListCall {
34293	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34294	return c
34295}
34296
34297// IfNoneMatch sets the optional parameter which makes the operation
34298// fail if the object's ETag matches the given value. This is useful for
34299// getting updates only after the object has changed since the last
34300// request. Use googleapi.IsNotModified to check whether the response
34301// error from Do is the result of In-None-Match.
34302func (c *ForwardingRulesListCall) IfNoneMatch(entityTag string) *ForwardingRulesListCall {
34303	c.ifNoneMatch_ = entityTag
34304	return c
34305}
34306
34307// Context sets the context to be used in this call's Do method. Any
34308// pending HTTP request will be aborted if the provided context is
34309// canceled.
34310func (c *ForwardingRulesListCall) Context(ctx context.Context) *ForwardingRulesListCall {
34311	c.ctx_ = ctx
34312	return c
34313}
34314
34315// Header returns an http.Header that can be modified by the caller to
34316// add HTTP headers to the request.
34317func (c *ForwardingRulesListCall) Header() http.Header {
34318	if c.header_ == nil {
34319		c.header_ = make(http.Header)
34320	}
34321	return c.header_
34322}
34323
34324func (c *ForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
34325	reqHeaders := make(http.Header)
34326	for k, v := range c.header_ {
34327		reqHeaders[k] = v
34328	}
34329	reqHeaders.Set("User-Agent", c.s.userAgent())
34330	if c.ifNoneMatch_ != "" {
34331		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
34332	}
34333	var body io.Reader = nil
34334	c.urlParams_.Set("alt", alt)
34335	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules")
34336	urls += "?" + c.urlParams_.Encode()
34337	req, _ := http.NewRequest("GET", urls, body)
34338	req.Header = reqHeaders
34339	googleapi.Expand(req.URL, map[string]string{
34340		"project": c.project,
34341		"region":  c.region,
34342	})
34343	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34344}
34345
34346// Do executes the "compute.forwardingRules.list" call.
34347// Exactly one of *ForwardingRuleList or error will be non-nil. Any
34348// non-2xx status code is an error. Response headers are in either
34349// *ForwardingRuleList.ServerResponse.Header or (if a response was
34350// returned at all) in error.(*googleapi.Error).Header. Use
34351// googleapi.IsNotModified to check whether the returned error was
34352// because http.StatusNotModified was returned.
34353func (c *ForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
34354	gensupport.SetOptions(c.urlParams_, opts...)
34355	res, err := c.doRequest("json")
34356	if res != nil && res.StatusCode == http.StatusNotModified {
34357		if res.Body != nil {
34358			res.Body.Close()
34359		}
34360		return nil, &googleapi.Error{
34361			Code:   res.StatusCode,
34362			Header: res.Header,
34363		}
34364	}
34365	if err != nil {
34366		return nil, err
34367	}
34368	defer googleapi.CloseBody(res)
34369	if err := googleapi.CheckResponse(res); err != nil {
34370		return nil, err
34371	}
34372	ret := &ForwardingRuleList{
34373		ServerResponse: googleapi.ServerResponse{
34374			Header:         res.Header,
34375			HTTPStatusCode: res.StatusCode,
34376		},
34377	}
34378	target := &ret
34379	if err := gensupport.DecodeResponse(target, res); err != nil {
34380		return nil, err
34381	}
34382	return ret, nil
34383	// {
34384	//   "description": "Retrieves a list of ForwardingRule resources available to the specified project and region.",
34385	//   "httpMethod": "GET",
34386	//   "id": "compute.forwardingRules.list",
34387	//   "parameterOrder": [
34388	//     "project",
34389	//     "region"
34390	//   ],
34391	//   "parameters": {
34392	//     "filter": {
34393	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
34394	//       "location": "query",
34395	//       "type": "string"
34396	//     },
34397	//     "maxResults": {
34398	//       "default": "500",
34399	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
34400	//       "format": "uint32",
34401	//       "location": "query",
34402	//       "minimum": "0",
34403	//       "type": "integer"
34404	//     },
34405	//     "orderBy": {
34406	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
34407	//       "location": "query",
34408	//       "type": "string"
34409	//     },
34410	//     "pageToken": {
34411	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
34412	//       "location": "query",
34413	//       "type": "string"
34414	//     },
34415	//     "project": {
34416	//       "description": "Project ID for this request.",
34417	//       "location": "path",
34418	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
34419	//       "required": true,
34420	//       "type": "string"
34421	//     },
34422	//     "region": {
34423	//       "description": "Name of the region scoping this request.",
34424	//       "location": "path",
34425	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
34426	//       "required": true,
34427	//       "type": "string"
34428	//     }
34429	//   },
34430	//   "path": "{project}/regions/{region}/forwardingRules",
34431	//   "response": {
34432	//     "$ref": "ForwardingRuleList"
34433	//   },
34434	//   "scopes": [
34435	//     "https://www.googleapis.com/auth/cloud-platform",
34436	//     "https://www.googleapis.com/auth/compute",
34437	//     "https://www.googleapis.com/auth/compute.readonly"
34438	//   ]
34439	// }
34440
34441}
34442
34443// Pages invokes f for each page of results.
34444// A non-nil error returned from f will halt the iteration.
34445// The provided context supersedes any context provided to the Context method.
34446func (c *ForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
34447	c.ctx_ = ctx
34448	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
34449	for {
34450		x, err := c.Do()
34451		if err != nil {
34452			return err
34453		}
34454		if err := f(x); err != nil {
34455			return err
34456		}
34457		if x.NextPageToken == "" {
34458			return nil
34459		}
34460		c.PageToken(x.NextPageToken)
34461	}
34462}
34463
34464// method id "compute.forwardingRules.setTarget":
34465
34466type ForwardingRulesSetTargetCall struct {
34467	s               *Service
34468	project         string
34469	region          string
34470	forwardingRule  string
34471	targetreference *TargetReference
34472	urlParams_      gensupport.URLParams
34473	ctx_            context.Context
34474	header_         http.Header
34475}
34476
34477// SetTarget: Changes target URL for forwarding rule. The new target
34478// should be of the same type as the old target.
34479// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/setTarget
34480func (r *ForwardingRulesService) SetTarget(project string, region string, forwardingRule string, targetreference *TargetReference) *ForwardingRulesSetTargetCall {
34481	c := &ForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34482	c.project = project
34483	c.region = region
34484	c.forwardingRule = forwardingRule
34485	c.targetreference = targetreference
34486	return c
34487}
34488
34489// RequestId sets the optional parameter "requestId": An optional
34490// request ID to identify requests. Specify a unique request ID so that
34491// if you must retry your request, the server will know to ignore the
34492// request if it has already been completed.
34493//
34494// For example, consider a situation where you make an initial request
34495// and the request times out. If you make the request again with the
34496// same request ID, the server can check if original operation with the
34497// same request ID was received, and if so, will ignore the second
34498// request. This prevents clients from accidentally creating duplicate
34499// commitments.
34500//
34501// The request ID must be a valid UUID with the exception that zero UUID
34502// is not supported (00000000-0000-0000-0000-000000000000).
34503func (c *ForwardingRulesSetTargetCall) RequestId(requestId string) *ForwardingRulesSetTargetCall {
34504	c.urlParams_.Set("requestId", requestId)
34505	return c
34506}
34507
34508// Fields allows partial responses to be retrieved. See
34509// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34510// for more information.
34511func (c *ForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *ForwardingRulesSetTargetCall {
34512	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34513	return c
34514}
34515
34516// Context sets the context to be used in this call's Do method. Any
34517// pending HTTP request will be aborted if the provided context is
34518// canceled.
34519func (c *ForwardingRulesSetTargetCall) Context(ctx context.Context) *ForwardingRulesSetTargetCall {
34520	c.ctx_ = ctx
34521	return c
34522}
34523
34524// Header returns an http.Header that can be modified by the caller to
34525// add HTTP headers to the request.
34526func (c *ForwardingRulesSetTargetCall) Header() http.Header {
34527	if c.header_ == nil {
34528		c.header_ = make(http.Header)
34529	}
34530	return c.header_
34531}
34532
34533func (c *ForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
34534	reqHeaders := make(http.Header)
34535	for k, v := range c.header_ {
34536		reqHeaders[k] = v
34537	}
34538	reqHeaders.Set("User-Agent", c.s.userAgent())
34539	var body io.Reader = nil
34540	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
34541	if err != nil {
34542		return nil, err
34543	}
34544	reqHeaders.Set("Content-Type", "application/json")
34545	c.urlParams_.Set("alt", alt)
34546	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget")
34547	urls += "?" + c.urlParams_.Encode()
34548	req, _ := http.NewRequest("POST", urls, body)
34549	req.Header = reqHeaders
34550	googleapi.Expand(req.URL, map[string]string{
34551		"project":        c.project,
34552		"region":         c.region,
34553		"forwardingRule": c.forwardingRule,
34554	})
34555	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34556}
34557
34558// Do executes the "compute.forwardingRules.setTarget" call.
34559// Exactly one of *Operation or error will be non-nil. Any non-2xx
34560// status code is an error. Response headers are in either
34561// *Operation.ServerResponse.Header or (if a response was returned at
34562// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
34563// to check whether the returned error was because
34564// http.StatusNotModified was returned.
34565func (c *ForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
34566	gensupport.SetOptions(c.urlParams_, opts...)
34567	res, err := c.doRequest("json")
34568	if res != nil && res.StatusCode == http.StatusNotModified {
34569		if res.Body != nil {
34570			res.Body.Close()
34571		}
34572		return nil, &googleapi.Error{
34573			Code:   res.StatusCode,
34574			Header: res.Header,
34575		}
34576	}
34577	if err != nil {
34578		return nil, err
34579	}
34580	defer googleapi.CloseBody(res)
34581	if err := googleapi.CheckResponse(res); err != nil {
34582		return nil, err
34583	}
34584	ret := &Operation{
34585		ServerResponse: googleapi.ServerResponse{
34586			Header:         res.Header,
34587			HTTPStatusCode: res.StatusCode,
34588		},
34589	}
34590	target := &ret
34591	if err := gensupport.DecodeResponse(target, res); err != nil {
34592		return nil, err
34593	}
34594	return ret, nil
34595	// {
34596	//   "description": "Changes target URL for forwarding rule. The new target should be of the same type as the old target.",
34597	//   "httpMethod": "POST",
34598	//   "id": "compute.forwardingRules.setTarget",
34599	//   "parameterOrder": [
34600	//     "project",
34601	//     "region",
34602	//     "forwardingRule"
34603	//   ],
34604	//   "parameters": {
34605	//     "forwardingRule": {
34606	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
34607	//       "location": "path",
34608	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
34609	//       "required": true,
34610	//       "type": "string"
34611	//     },
34612	//     "project": {
34613	//       "description": "Project ID for this request.",
34614	//       "location": "path",
34615	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
34616	//       "required": true,
34617	//       "type": "string"
34618	//     },
34619	//     "region": {
34620	//       "description": "Name of the region scoping this request.",
34621	//       "location": "path",
34622	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
34623	//       "required": true,
34624	//       "type": "string"
34625	//     },
34626	//     "requestId": {
34627	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
34628	//       "location": "query",
34629	//       "type": "string"
34630	//     }
34631	//   },
34632	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget",
34633	//   "request": {
34634	//     "$ref": "TargetReference"
34635	//   },
34636	//   "response": {
34637	//     "$ref": "Operation"
34638	//   },
34639	//   "scopes": [
34640	//     "https://www.googleapis.com/auth/cloud-platform",
34641	//     "https://www.googleapis.com/auth/compute"
34642	//   ]
34643	// }
34644
34645}
34646
34647// method id "compute.globalAddresses.delete":
34648
34649type GlobalAddressesDeleteCall struct {
34650	s          *Service
34651	project    string
34652	address    string
34653	urlParams_ gensupport.URLParams
34654	ctx_       context.Context
34655	header_    http.Header
34656}
34657
34658// Delete: Deletes the specified address resource.
34659// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/delete
34660func (r *GlobalAddressesService) Delete(project string, address string) *GlobalAddressesDeleteCall {
34661	c := &GlobalAddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34662	c.project = project
34663	c.address = address
34664	return c
34665}
34666
34667// RequestId sets the optional parameter "requestId": An optional
34668// request ID to identify requests. Specify a unique request ID so that
34669// if you must retry your request, the server will know to ignore the
34670// request if it has already been completed.
34671//
34672// For example, consider a situation where you make an initial request
34673// and the request times out. If you make the request again with the
34674// same request ID, the server can check if original operation with the
34675// same request ID was received, and if so, will ignore the second
34676// request. This prevents clients from accidentally creating duplicate
34677// commitments.
34678//
34679// The request ID must be a valid UUID with the exception that zero UUID
34680// is not supported (00000000-0000-0000-0000-000000000000).
34681func (c *GlobalAddressesDeleteCall) RequestId(requestId string) *GlobalAddressesDeleteCall {
34682	c.urlParams_.Set("requestId", requestId)
34683	return c
34684}
34685
34686// Fields allows partial responses to be retrieved. See
34687// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34688// for more information.
34689func (c *GlobalAddressesDeleteCall) Fields(s ...googleapi.Field) *GlobalAddressesDeleteCall {
34690	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34691	return c
34692}
34693
34694// Context sets the context to be used in this call's Do method. Any
34695// pending HTTP request will be aborted if the provided context is
34696// canceled.
34697func (c *GlobalAddressesDeleteCall) Context(ctx context.Context) *GlobalAddressesDeleteCall {
34698	c.ctx_ = ctx
34699	return c
34700}
34701
34702// Header returns an http.Header that can be modified by the caller to
34703// add HTTP headers to the request.
34704func (c *GlobalAddressesDeleteCall) Header() http.Header {
34705	if c.header_ == nil {
34706		c.header_ = make(http.Header)
34707	}
34708	return c.header_
34709}
34710
34711func (c *GlobalAddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
34712	reqHeaders := make(http.Header)
34713	for k, v := range c.header_ {
34714		reqHeaders[k] = v
34715	}
34716	reqHeaders.Set("User-Agent", c.s.userAgent())
34717	var body io.Reader = nil
34718	c.urlParams_.Set("alt", alt)
34719	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{address}")
34720	urls += "?" + c.urlParams_.Encode()
34721	req, _ := http.NewRequest("DELETE", urls, body)
34722	req.Header = reqHeaders
34723	googleapi.Expand(req.URL, map[string]string{
34724		"project": c.project,
34725		"address": c.address,
34726	})
34727	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34728}
34729
34730// Do executes the "compute.globalAddresses.delete" call.
34731// Exactly one of *Operation or error will be non-nil. Any non-2xx
34732// status code is an error. Response headers are in either
34733// *Operation.ServerResponse.Header or (if a response was returned at
34734// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
34735// to check whether the returned error was because
34736// http.StatusNotModified was returned.
34737func (c *GlobalAddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
34738	gensupport.SetOptions(c.urlParams_, opts...)
34739	res, err := c.doRequest("json")
34740	if res != nil && res.StatusCode == http.StatusNotModified {
34741		if res.Body != nil {
34742			res.Body.Close()
34743		}
34744		return nil, &googleapi.Error{
34745			Code:   res.StatusCode,
34746			Header: res.Header,
34747		}
34748	}
34749	if err != nil {
34750		return nil, err
34751	}
34752	defer googleapi.CloseBody(res)
34753	if err := googleapi.CheckResponse(res); err != nil {
34754		return nil, err
34755	}
34756	ret := &Operation{
34757		ServerResponse: googleapi.ServerResponse{
34758			Header:         res.Header,
34759			HTTPStatusCode: res.StatusCode,
34760		},
34761	}
34762	target := &ret
34763	if err := gensupport.DecodeResponse(target, res); err != nil {
34764		return nil, err
34765	}
34766	return ret, nil
34767	// {
34768	//   "description": "Deletes the specified address resource.",
34769	//   "httpMethod": "DELETE",
34770	//   "id": "compute.globalAddresses.delete",
34771	//   "parameterOrder": [
34772	//     "project",
34773	//     "address"
34774	//   ],
34775	//   "parameters": {
34776	//     "address": {
34777	//       "description": "Name of the address resource to delete.",
34778	//       "location": "path",
34779	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
34780	//       "required": true,
34781	//       "type": "string"
34782	//     },
34783	//     "project": {
34784	//       "description": "Project ID for this request.",
34785	//       "location": "path",
34786	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
34787	//       "required": true,
34788	//       "type": "string"
34789	//     },
34790	//     "requestId": {
34791	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
34792	//       "location": "query",
34793	//       "type": "string"
34794	//     }
34795	//   },
34796	//   "path": "{project}/global/addresses/{address}",
34797	//   "response": {
34798	//     "$ref": "Operation"
34799	//   },
34800	//   "scopes": [
34801	//     "https://www.googleapis.com/auth/cloud-platform",
34802	//     "https://www.googleapis.com/auth/compute"
34803	//   ]
34804	// }
34805
34806}
34807
34808// method id "compute.globalAddresses.get":
34809
34810type GlobalAddressesGetCall struct {
34811	s            *Service
34812	project      string
34813	address      string
34814	urlParams_   gensupport.URLParams
34815	ifNoneMatch_ string
34816	ctx_         context.Context
34817	header_      http.Header
34818}
34819
34820// Get: Returns the specified address resource. Gets a list of available
34821// addresses by making a list() request.
34822// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/get
34823func (r *GlobalAddressesService) Get(project string, address string) *GlobalAddressesGetCall {
34824	c := &GlobalAddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34825	c.project = project
34826	c.address = address
34827	return c
34828}
34829
34830// Fields allows partial responses to be retrieved. See
34831// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34832// for more information.
34833func (c *GlobalAddressesGetCall) Fields(s ...googleapi.Field) *GlobalAddressesGetCall {
34834	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34835	return c
34836}
34837
34838// IfNoneMatch sets the optional parameter which makes the operation
34839// fail if the object's ETag matches the given value. This is useful for
34840// getting updates only after the object has changed since the last
34841// request. Use googleapi.IsNotModified to check whether the response
34842// error from Do is the result of In-None-Match.
34843func (c *GlobalAddressesGetCall) IfNoneMatch(entityTag string) *GlobalAddressesGetCall {
34844	c.ifNoneMatch_ = entityTag
34845	return c
34846}
34847
34848// Context sets the context to be used in this call's Do method. Any
34849// pending HTTP request will be aborted if the provided context is
34850// canceled.
34851func (c *GlobalAddressesGetCall) Context(ctx context.Context) *GlobalAddressesGetCall {
34852	c.ctx_ = ctx
34853	return c
34854}
34855
34856// Header returns an http.Header that can be modified by the caller to
34857// add HTTP headers to the request.
34858func (c *GlobalAddressesGetCall) Header() http.Header {
34859	if c.header_ == nil {
34860		c.header_ = make(http.Header)
34861	}
34862	return c.header_
34863}
34864
34865func (c *GlobalAddressesGetCall) doRequest(alt string) (*http.Response, error) {
34866	reqHeaders := make(http.Header)
34867	for k, v := range c.header_ {
34868		reqHeaders[k] = v
34869	}
34870	reqHeaders.Set("User-Agent", c.s.userAgent())
34871	if c.ifNoneMatch_ != "" {
34872		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
34873	}
34874	var body io.Reader = nil
34875	c.urlParams_.Set("alt", alt)
34876	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{address}")
34877	urls += "?" + c.urlParams_.Encode()
34878	req, _ := http.NewRequest("GET", urls, body)
34879	req.Header = reqHeaders
34880	googleapi.Expand(req.URL, map[string]string{
34881		"project": c.project,
34882		"address": c.address,
34883	})
34884	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34885}
34886
34887// Do executes the "compute.globalAddresses.get" call.
34888// Exactly one of *Address or error will be non-nil. Any non-2xx status
34889// code is an error. Response headers are in either
34890// *Address.ServerResponse.Header or (if a response was returned at all)
34891// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
34892// check whether the returned error was because http.StatusNotModified
34893// was returned.
34894func (c *GlobalAddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
34895	gensupport.SetOptions(c.urlParams_, opts...)
34896	res, err := c.doRequest("json")
34897	if res != nil && res.StatusCode == http.StatusNotModified {
34898		if res.Body != nil {
34899			res.Body.Close()
34900		}
34901		return nil, &googleapi.Error{
34902			Code:   res.StatusCode,
34903			Header: res.Header,
34904		}
34905	}
34906	if err != nil {
34907		return nil, err
34908	}
34909	defer googleapi.CloseBody(res)
34910	if err := googleapi.CheckResponse(res); err != nil {
34911		return nil, err
34912	}
34913	ret := &Address{
34914		ServerResponse: googleapi.ServerResponse{
34915			Header:         res.Header,
34916			HTTPStatusCode: res.StatusCode,
34917		},
34918	}
34919	target := &ret
34920	if err := gensupport.DecodeResponse(target, res); err != nil {
34921		return nil, err
34922	}
34923	return ret, nil
34924	// {
34925	//   "description": "Returns the specified address resource. Gets a list of available addresses by making a list() request.",
34926	//   "httpMethod": "GET",
34927	//   "id": "compute.globalAddresses.get",
34928	//   "parameterOrder": [
34929	//     "project",
34930	//     "address"
34931	//   ],
34932	//   "parameters": {
34933	//     "address": {
34934	//       "description": "Name of the address resource to return.",
34935	//       "location": "path",
34936	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
34937	//       "required": true,
34938	//       "type": "string"
34939	//     },
34940	//     "project": {
34941	//       "description": "Project ID for this request.",
34942	//       "location": "path",
34943	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
34944	//       "required": true,
34945	//       "type": "string"
34946	//     }
34947	//   },
34948	//   "path": "{project}/global/addresses/{address}",
34949	//   "response": {
34950	//     "$ref": "Address"
34951	//   },
34952	//   "scopes": [
34953	//     "https://www.googleapis.com/auth/cloud-platform",
34954	//     "https://www.googleapis.com/auth/compute",
34955	//     "https://www.googleapis.com/auth/compute.readonly"
34956	//   ]
34957	// }
34958
34959}
34960
34961// method id "compute.globalAddresses.insert":
34962
34963type GlobalAddressesInsertCall struct {
34964	s          *Service
34965	project    string
34966	address    *Address
34967	urlParams_ gensupport.URLParams
34968	ctx_       context.Context
34969	header_    http.Header
34970}
34971
34972// Insert: Creates an address resource in the specified project using
34973// the data included in the request.
34974// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/insert
34975func (r *GlobalAddressesService) Insert(project string, address *Address) *GlobalAddressesInsertCall {
34976	c := &GlobalAddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34977	c.project = project
34978	c.address = address
34979	return c
34980}
34981
34982// RequestId sets the optional parameter "requestId": An optional
34983// request ID to identify requests. Specify a unique request ID so that
34984// if you must retry your request, the server will know to ignore the
34985// request if it has already been completed.
34986//
34987// For example, consider a situation where you make an initial request
34988// and the request times out. If you make the request again with the
34989// same request ID, the server can check if original operation with the
34990// same request ID was received, and if so, will ignore the second
34991// request. This prevents clients from accidentally creating duplicate
34992// commitments.
34993//
34994// The request ID must be a valid UUID with the exception that zero UUID
34995// is not supported (00000000-0000-0000-0000-000000000000).
34996func (c *GlobalAddressesInsertCall) RequestId(requestId string) *GlobalAddressesInsertCall {
34997	c.urlParams_.Set("requestId", requestId)
34998	return c
34999}
35000
35001// Fields allows partial responses to be retrieved. See
35002// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35003// for more information.
35004func (c *GlobalAddressesInsertCall) Fields(s ...googleapi.Field) *GlobalAddressesInsertCall {
35005	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35006	return c
35007}
35008
35009// Context sets the context to be used in this call's Do method. Any
35010// pending HTTP request will be aborted if the provided context is
35011// canceled.
35012func (c *GlobalAddressesInsertCall) Context(ctx context.Context) *GlobalAddressesInsertCall {
35013	c.ctx_ = ctx
35014	return c
35015}
35016
35017// Header returns an http.Header that can be modified by the caller to
35018// add HTTP headers to the request.
35019func (c *GlobalAddressesInsertCall) Header() http.Header {
35020	if c.header_ == nil {
35021		c.header_ = make(http.Header)
35022	}
35023	return c.header_
35024}
35025
35026func (c *GlobalAddressesInsertCall) doRequest(alt string) (*http.Response, error) {
35027	reqHeaders := make(http.Header)
35028	for k, v := range c.header_ {
35029		reqHeaders[k] = v
35030	}
35031	reqHeaders.Set("User-Agent", c.s.userAgent())
35032	var body io.Reader = nil
35033	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
35034	if err != nil {
35035		return nil, err
35036	}
35037	reqHeaders.Set("Content-Type", "application/json")
35038	c.urlParams_.Set("alt", alt)
35039	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses")
35040	urls += "?" + c.urlParams_.Encode()
35041	req, _ := http.NewRequest("POST", urls, body)
35042	req.Header = reqHeaders
35043	googleapi.Expand(req.URL, map[string]string{
35044		"project": c.project,
35045	})
35046	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35047}
35048
35049// Do executes the "compute.globalAddresses.insert" call.
35050// Exactly one of *Operation or error will be non-nil. Any non-2xx
35051// status code is an error. Response headers are in either
35052// *Operation.ServerResponse.Header or (if a response was returned at
35053// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
35054// to check whether the returned error was because
35055// http.StatusNotModified was returned.
35056func (c *GlobalAddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
35057	gensupport.SetOptions(c.urlParams_, opts...)
35058	res, err := c.doRequest("json")
35059	if res != nil && res.StatusCode == http.StatusNotModified {
35060		if res.Body != nil {
35061			res.Body.Close()
35062		}
35063		return nil, &googleapi.Error{
35064			Code:   res.StatusCode,
35065			Header: res.Header,
35066		}
35067	}
35068	if err != nil {
35069		return nil, err
35070	}
35071	defer googleapi.CloseBody(res)
35072	if err := googleapi.CheckResponse(res); err != nil {
35073		return nil, err
35074	}
35075	ret := &Operation{
35076		ServerResponse: googleapi.ServerResponse{
35077			Header:         res.Header,
35078			HTTPStatusCode: res.StatusCode,
35079		},
35080	}
35081	target := &ret
35082	if err := gensupport.DecodeResponse(target, res); err != nil {
35083		return nil, err
35084	}
35085	return ret, nil
35086	// {
35087	//   "description": "Creates an address resource in the specified project using the data included in the request.",
35088	//   "httpMethod": "POST",
35089	//   "id": "compute.globalAddresses.insert",
35090	//   "parameterOrder": [
35091	//     "project"
35092	//   ],
35093	//   "parameters": {
35094	//     "project": {
35095	//       "description": "Project ID for this request.",
35096	//       "location": "path",
35097	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
35098	//       "required": true,
35099	//       "type": "string"
35100	//     },
35101	//     "requestId": {
35102	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
35103	//       "location": "query",
35104	//       "type": "string"
35105	//     }
35106	//   },
35107	//   "path": "{project}/global/addresses",
35108	//   "request": {
35109	//     "$ref": "Address"
35110	//   },
35111	//   "response": {
35112	//     "$ref": "Operation"
35113	//   },
35114	//   "scopes": [
35115	//     "https://www.googleapis.com/auth/cloud-platform",
35116	//     "https://www.googleapis.com/auth/compute"
35117	//   ]
35118	// }
35119
35120}
35121
35122// method id "compute.globalAddresses.list":
35123
35124type GlobalAddressesListCall struct {
35125	s            *Service
35126	project      string
35127	urlParams_   gensupport.URLParams
35128	ifNoneMatch_ string
35129	ctx_         context.Context
35130	header_      http.Header
35131}
35132
35133// List: Retrieves a list of global addresses.
35134// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/list
35135func (r *GlobalAddressesService) List(project string) *GlobalAddressesListCall {
35136	c := &GlobalAddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35137	c.project = project
35138	return c
35139}
35140
35141// Filter sets the optional parameter "filter": A filter expression that
35142// filters resources listed in the response. The expression must specify
35143// the field name, a comparison operator, and the value that you want to
35144// use for filtering. The value must be a string, a number, or a
35145// boolean. The comparison operator must be either =, !=, >, or <.
35146//
35147// For example, if you are filtering Compute Engine instances, you can
35148// exclude instances named example-instance by specifying name !=
35149// example-instance.
35150//
35151// You can also filter nested fields. For example, you could specify
35152// scheduling.automaticRestart = false to include instances only if they
35153// are not scheduled for automatic restarts. You can use filtering on
35154// nested fields to filter based on resource labels.
35155//
35156// To filter on multiple expressions, provide each separate expression
35157// within parentheses. For example, (scheduling.automaticRestart = true)
35158// (cpuPlatform = "Intel Skylake"). By default, each expression is an
35159// AND expression. However, you can include AND and OR expressions
35160// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
35161// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
35162// true).
35163func (c *GlobalAddressesListCall) Filter(filter string) *GlobalAddressesListCall {
35164	c.urlParams_.Set("filter", filter)
35165	return c
35166}
35167
35168// MaxResults sets the optional parameter "maxResults": The maximum
35169// number of results per page that should be returned. If the number of
35170// available results is larger than maxResults, Compute Engine returns a
35171// nextPageToken that can be used to get the next page of results in
35172// subsequent list requests. Acceptable values are 0 to 500, inclusive.
35173// (Default: 500)
35174func (c *GlobalAddressesListCall) MaxResults(maxResults int64) *GlobalAddressesListCall {
35175	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
35176	return c
35177}
35178
35179// OrderBy sets the optional parameter "orderBy": Sorts list results by
35180// a certain order. By default, results are returned in alphanumerical
35181// order based on the resource name.
35182//
35183// You can also sort results in descending order based on the creation
35184// timestamp using orderBy="creationTimestamp desc". This sorts results
35185// based on the creationTimestamp field in reverse chronological order
35186// (newest result first). Use this to sort resources like operations so
35187// that the newest operation is returned first.
35188//
35189// Currently, only sorting by name or creationTimestamp desc is
35190// supported.
35191func (c *GlobalAddressesListCall) OrderBy(orderBy string) *GlobalAddressesListCall {
35192	c.urlParams_.Set("orderBy", orderBy)
35193	return c
35194}
35195
35196// PageToken sets the optional parameter "pageToken": Specifies a page
35197// token to use. Set pageToken to the nextPageToken returned by a
35198// previous list request to get the next page of results.
35199func (c *GlobalAddressesListCall) PageToken(pageToken string) *GlobalAddressesListCall {
35200	c.urlParams_.Set("pageToken", pageToken)
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 *GlobalAddressesListCall) Fields(s ...googleapi.Field) *GlobalAddressesListCall {
35208	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35209	return c
35210}
35211
35212// IfNoneMatch sets the optional parameter which makes the operation
35213// fail if the object's ETag matches the given value. This is useful for
35214// getting updates only after the object has changed since the last
35215// request. Use googleapi.IsNotModified to check whether the response
35216// error from Do is the result of In-None-Match.
35217func (c *GlobalAddressesListCall) IfNoneMatch(entityTag string) *GlobalAddressesListCall {
35218	c.ifNoneMatch_ = entityTag
35219	return c
35220}
35221
35222// Context sets the context to be used in this call's Do method. Any
35223// pending HTTP request will be aborted if the provided context is
35224// canceled.
35225func (c *GlobalAddressesListCall) Context(ctx context.Context) *GlobalAddressesListCall {
35226	c.ctx_ = ctx
35227	return c
35228}
35229
35230// Header returns an http.Header that can be modified by the caller to
35231// add HTTP headers to the request.
35232func (c *GlobalAddressesListCall) Header() http.Header {
35233	if c.header_ == nil {
35234		c.header_ = make(http.Header)
35235	}
35236	return c.header_
35237}
35238
35239func (c *GlobalAddressesListCall) doRequest(alt string) (*http.Response, error) {
35240	reqHeaders := make(http.Header)
35241	for k, v := range c.header_ {
35242		reqHeaders[k] = v
35243	}
35244	reqHeaders.Set("User-Agent", c.s.userAgent())
35245	if c.ifNoneMatch_ != "" {
35246		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
35247	}
35248	var body io.Reader = nil
35249	c.urlParams_.Set("alt", alt)
35250	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses")
35251	urls += "?" + c.urlParams_.Encode()
35252	req, _ := http.NewRequest("GET", urls, body)
35253	req.Header = reqHeaders
35254	googleapi.Expand(req.URL, map[string]string{
35255		"project": c.project,
35256	})
35257	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35258}
35259
35260// Do executes the "compute.globalAddresses.list" call.
35261// Exactly one of *AddressList or error will be non-nil. Any non-2xx
35262// status code is an error. Response headers are in either
35263// *AddressList.ServerResponse.Header or (if a response was returned at
35264// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
35265// to check whether the returned error was because
35266// http.StatusNotModified was returned.
35267func (c *GlobalAddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
35268	gensupport.SetOptions(c.urlParams_, opts...)
35269	res, err := c.doRequest("json")
35270	if res != nil && res.StatusCode == http.StatusNotModified {
35271		if res.Body != nil {
35272			res.Body.Close()
35273		}
35274		return nil, &googleapi.Error{
35275			Code:   res.StatusCode,
35276			Header: res.Header,
35277		}
35278	}
35279	if err != nil {
35280		return nil, err
35281	}
35282	defer googleapi.CloseBody(res)
35283	if err := googleapi.CheckResponse(res); err != nil {
35284		return nil, err
35285	}
35286	ret := &AddressList{
35287		ServerResponse: googleapi.ServerResponse{
35288			Header:         res.Header,
35289			HTTPStatusCode: res.StatusCode,
35290		},
35291	}
35292	target := &ret
35293	if err := gensupport.DecodeResponse(target, res); err != nil {
35294		return nil, err
35295	}
35296	return ret, nil
35297	// {
35298	//   "description": "Retrieves a list of global addresses.",
35299	//   "httpMethod": "GET",
35300	//   "id": "compute.globalAddresses.list",
35301	//   "parameterOrder": [
35302	//     "project"
35303	//   ],
35304	//   "parameters": {
35305	//     "filter": {
35306	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
35307	//       "location": "query",
35308	//       "type": "string"
35309	//     },
35310	//     "maxResults": {
35311	//       "default": "500",
35312	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
35313	//       "format": "uint32",
35314	//       "location": "query",
35315	//       "minimum": "0",
35316	//       "type": "integer"
35317	//     },
35318	//     "orderBy": {
35319	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
35320	//       "location": "query",
35321	//       "type": "string"
35322	//     },
35323	//     "pageToken": {
35324	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
35325	//       "location": "query",
35326	//       "type": "string"
35327	//     },
35328	//     "project": {
35329	//       "description": "Project ID for this request.",
35330	//       "location": "path",
35331	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
35332	//       "required": true,
35333	//       "type": "string"
35334	//     }
35335	//   },
35336	//   "path": "{project}/global/addresses",
35337	//   "response": {
35338	//     "$ref": "AddressList"
35339	//   },
35340	//   "scopes": [
35341	//     "https://www.googleapis.com/auth/cloud-platform",
35342	//     "https://www.googleapis.com/auth/compute",
35343	//     "https://www.googleapis.com/auth/compute.readonly"
35344	//   ]
35345	// }
35346
35347}
35348
35349// Pages invokes f for each page of results.
35350// A non-nil error returned from f will halt the iteration.
35351// The provided context supersedes any context provided to the Context method.
35352func (c *GlobalAddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
35353	c.ctx_ = ctx
35354	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
35355	for {
35356		x, err := c.Do()
35357		if err != nil {
35358			return err
35359		}
35360		if err := f(x); err != nil {
35361			return err
35362		}
35363		if x.NextPageToken == "" {
35364			return nil
35365		}
35366		c.PageToken(x.NextPageToken)
35367	}
35368}
35369
35370// method id "compute.globalForwardingRules.delete":
35371
35372type GlobalForwardingRulesDeleteCall struct {
35373	s              *Service
35374	project        string
35375	forwardingRule string
35376	urlParams_     gensupport.URLParams
35377	ctx_           context.Context
35378	header_        http.Header
35379}
35380
35381// Delete: Deletes the specified GlobalForwardingRule resource.
35382// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/delete
35383func (r *GlobalForwardingRulesService) Delete(project string, forwardingRule string) *GlobalForwardingRulesDeleteCall {
35384	c := &GlobalForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35385	c.project = project
35386	c.forwardingRule = forwardingRule
35387	return c
35388}
35389
35390// RequestId sets the optional parameter "requestId": An optional
35391// request ID to identify requests. Specify a unique request ID so that
35392// if you must retry your request, the server will know to ignore the
35393// request if it has already been completed.
35394//
35395// For example, consider a situation where you make an initial request
35396// and the request times out. If you make the request again with the
35397// same request ID, the server can check if original operation with the
35398// same request ID was received, and if so, will ignore the second
35399// request. This prevents clients from accidentally creating duplicate
35400// commitments.
35401//
35402// The request ID must be a valid UUID with the exception that zero UUID
35403// is not supported (00000000-0000-0000-0000-000000000000).
35404func (c *GlobalForwardingRulesDeleteCall) RequestId(requestId string) *GlobalForwardingRulesDeleteCall {
35405	c.urlParams_.Set("requestId", requestId)
35406	return c
35407}
35408
35409// Fields allows partial responses to be retrieved. See
35410// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35411// for more information.
35412func (c *GlobalForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesDeleteCall {
35413	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35414	return c
35415}
35416
35417// Context sets the context to be used in this call's Do method. Any
35418// pending HTTP request will be aborted if the provided context is
35419// canceled.
35420func (c *GlobalForwardingRulesDeleteCall) Context(ctx context.Context) *GlobalForwardingRulesDeleteCall {
35421	c.ctx_ = ctx
35422	return c
35423}
35424
35425// Header returns an http.Header that can be modified by the caller to
35426// add HTTP headers to the request.
35427func (c *GlobalForwardingRulesDeleteCall) Header() http.Header {
35428	if c.header_ == nil {
35429		c.header_ = make(http.Header)
35430	}
35431	return c.header_
35432}
35433
35434func (c *GlobalForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
35435	reqHeaders := make(http.Header)
35436	for k, v := range c.header_ {
35437		reqHeaders[k] = v
35438	}
35439	reqHeaders.Set("User-Agent", c.s.userAgent())
35440	var body io.Reader = nil
35441	c.urlParams_.Set("alt", alt)
35442	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
35443	urls += "?" + c.urlParams_.Encode()
35444	req, _ := http.NewRequest("DELETE", urls, body)
35445	req.Header = reqHeaders
35446	googleapi.Expand(req.URL, map[string]string{
35447		"project":        c.project,
35448		"forwardingRule": c.forwardingRule,
35449	})
35450	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35451}
35452
35453// Do executes the "compute.globalForwardingRules.delete" call.
35454// Exactly one of *Operation or error will be non-nil. Any non-2xx
35455// status code is an error. Response headers are in either
35456// *Operation.ServerResponse.Header or (if a response was returned at
35457// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
35458// to check whether the returned error was because
35459// http.StatusNotModified was returned.
35460func (c *GlobalForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
35461	gensupport.SetOptions(c.urlParams_, opts...)
35462	res, err := c.doRequest("json")
35463	if res != nil && res.StatusCode == http.StatusNotModified {
35464		if res.Body != nil {
35465			res.Body.Close()
35466		}
35467		return nil, &googleapi.Error{
35468			Code:   res.StatusCode,
35469			Header: res.Header,
35470		}
35471	}
35472	if err != nil {
35473		return nil, err
35474	}
35475	defer googleapi.CloseBody(res)
35476	if err := googleapi.CheckResponse(res); err != nil {
35477		return nil, err
35478	}
35479	ret := &Operation{
35480		ServerResponse: googleapi.ServerResponse{
35481			Header:         res.Header,
35482			HTTPStatusCode: res.StatusCode,
35483		},
35484	}
35485	target := &ret
35486	if err := gensupport.DecodeResponse(target, res); err != nil {
35487		return nil, err
35488	}
35489	return ret, nil
35490	// {
35491	//   "description": "Deletes the specified GlobalForwardingRule resource.",
35492	//   "httpMethod": "DELETE",
35493	//   "id": "compute.globalForwardingRules.delete",
35494	//   "parameterOrder": [
35495	//     "project",
35496	//     "forwardingRule"
35497	//   ],
35498	//   "parameters": {
35499	//     "forwardingRule": {
35500	//       "description": "Name of the ForwardingRule resource to delete.",
35501	//       "location": "path",
35502	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
35503	//       "required": true,
35504	//       "type": "string"
35505	//     },
35506	//     "project": {
35507	//       "description": "Project ID for this request.",
35508	//       "location": "path",
35509	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
35510	//       "required": true,
35511	//       "type": "string"
35512	//     },
35513	//     "requestId": {
35514	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
35515	//       "location": "query",
35516	//       "type": "string"
35517	//     }
35518	//   },
35519	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
35520	//   "response": {
35521	//     "$ref": "Operation"
35522	//   },
35523	//   "scopes": [
35524	//     "https://www.googleapis.com/auth/cloud-platform",
35525	//     "https://www.googleapis.com/auth/compute"
35526	//   ]
35527	// }
35528
35529}
35530
35531// method id "compute.globalForwardingRules.get":
35532
35533type GlobalForwardingRulesGetCall struct {
35534	s              *Service
35535	project        string
35536	forwardingRule string
35537	urlParams_     gensupport.URLParams
35538	ifNoneMatch_   string
35539	ctx_           context.Context
35540	header_        http.Header
35541}
35542
35543// Get: Returns the specified GlobalForwardingRule resource. Gets a list
35544// of available forwarding rules by making a list() request.
35545// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/get
35546func (r *GlobalForwardingRulesService) Get(project string, forwardingRule string) *GlobalForwardingRulesGetCall {
35547	c := &GlobalForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35548	c.project = project
35549	c.forwardingRule = forwardingRule
35550	return c
35551}
35552
35553// Fields allows partial responses to be retrieved. See
35554// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35555// for more information.
35556func (c *GlobalForwardingRulesGetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesGetCall {
35557	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35558	return c
35559}
35560
35561// IfNoneMatch sets the optional parameter which makes the operation
35562// fail if the object's ETag matches the given value. This is useful for
35563// getting updates only after the object has changed since the last
35564// request. Use googleapi.IsNotModified to check whether the response
35565// error from Do is the result of In-None-Match.
35566func (c *GlobalForwardingRulesGetCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesGetCall {
35567	c.ifNoneMatch_ = entityTag
35568	return c
35569}
35570
35571// Context sets the context to be used in this call's Do method. Any
35572// pending HTTP request will be aborted if the provided context is
35573// canceled.
35574func (c *GlobalForwardingRulesGetCall) Context(ctx context.Context) *GlobalForwardingRulesGetCall {
35575	c.ctx_ = ctx
35576	return c
35577}
35578
35579// Header returns an http.Header that can be modified by the caller to
35580// add HTTP headers to the request.
35581func (c *GlobalForwardingRulesGetCall) Header() http.Header {
35582	if c.header_ == nil {
35583		c.header_ = make(http.Header)
35584	}
35585	return c.header_
35586}
35587
35588func (c *GlobalForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
35589	reqHeaders := make(http.Header)
35590	for k, v := range c.header_ {
35591		reqHeaders[k] = v
35592	}
35593	reqHeaders.Set("User-Agent", c.s.userAgent())
35594	if c.ifNoneMatch_ != "" {
35595		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
35596	}
35597	var body io.Reader = nil
35598	c.urlParams_.Set("alt", alt)
35599	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
35600	urls += "?" + c.urlParams_.Encode()
35601	req, _ := http.NewRequest("GET", urls, body)
35602	req.Header = reqHeaders
35603	googleapi.Expand(req.URL, map[string]string{
35604		"project":        c.project,
35605		"forwardingRule": c.forwardingRule,
35606	})
35607	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35608}
35609
35610// Do executes the "compute.globalForwardingRules.get" call.
35611// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
35612// status code is an error. Response headers are in either
35613// *ForwardingRule.ServerResponse.Header or (if a response was returned
35614// at all) in error.(*googleapi.Error).Header. Use
35615// googleapi.IsNotModified to check whether the returned error was
35616// because http.StatusNotModified was returned.
35617func (c *GlobalForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
35618	gensupport.SetOptions(c.urlParams_, opts...)
35619	res, err := c.doRequest("json")
35620	if res != nil && res.StatusCode == http.StatusNotModified {
35621		if res.Body != nil {
35622			res.Body.Close()
35623		}
35624		return nil, &googleapi.Error{
35625			Code:   res.StatusCode,
35626			Header: res.Header,
35627		}
35628	}
35629	if err != nil {
35630		return nil, err
35631	}
35632	defer googleapi.CloseBody(res)
35633	if err := googleapi.CheckResponse(res); err != nil {
35634		return nil, err
35635	}
35636	ret := &ForwardingRule{
35637		ServerResponse: googleapi.ServerResponse{
35638			Header:         res.Header,
35639			HTTPStatusCode: res.StatusCode,
35640		},
35641	}
35642	target := &ret
35643	if err := gensupport.DecodeResponse(target, res); err != nil {
35644		return nil, err
35645	}
35646	return ret, nil
35647	// {
35648	//   "description": "Returns the specified GlobalForwardingRule resource. Gets a list of available forwarding rules by making a list() request.",
35649	//   "httpMethod": "GET",
35650	//   "id": "compute.globalForwardingRules.get",
35651	//   "parameterOrder": [
35652	//     "project",
35653	//     "forwardingRule"
35654	//   ],
35655	//   "parameters": {
35656	//     "forwardingRule": {
35657	//       "description": "Name of the ForwardingRule resource to return.",
35658	//       "location": "path",
35659	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
35660	//       "required": true,
35661	//       "type": "string"
35662	//     },
35663	//     "project": {
35664	//       "description": "Project ID for this request.",
35665	//       "location": "path",
35666	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
35667	//       "required": true,
35668	//       "type": "string"
35669	//     }
35670	//   },
35671	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
35672	//   "response": {
35673	//     "$ref": "ForwardingRule"
35674	//   },
35675	//   "scopes": [
35676	//     "https://www.googleapis.com/auth/cloud-platform",
35677	//     "https://www.googleapis.com/auth/compute",
35678	//     "https://www.googleapis.com/auth/compute.readonly"
35679	//   ]
35680	// }
35681
35682}
35683
35684// method id "compute.globalForwardingRules.insert":
35685
35686type GlobalForwardingRulesInsertCall struct {
35687	s              *Service
35688	project        string
35689	forwardingrule *ForwardingRule
35690	urlParams_     gensupport.URLParams
35691	ctx_           context.Context
35692	header_        http.Header
35693}
35694
35695// Insert: Creates a GlobalForwardingRule resource in the specified
35696// project using the data included in the request.
35697// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/insert
35698func (r *GlobalForwardingRulesService) Insert(project string, forwardingrule *ForwardingRule) *GlobalForwardingRulesInsertCall {
35699	c := &GlobalForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35700	c.project = project
35701	c.forwardingrule = forwardingrule
35702	return c
35703}
35704
35705// RequestId sets the optional parameter "requestId": An optional
35706// request ID to identify requests. Specify a unique request ID so that
35707// if you must retry your request, the server will know to ignore the
35708// request if it has already been completed.
35709//
35710// For example, consider a situation where you make an initial request
35711// and the request times out. If you make the request again with the
35712// same request ID, the server can check if original operation with the
35713// same request ID was received, and if so, will ignore the second
35714// request. This prevents clients from accidentally creating duplicate
35715// commitments.
35716//
35717// The request ID must be a valid UUID with the exception that zero UUID
35718// is not supported (00000000-0000-0000-0000-000000000000).
35719func (c *GlobalForwardingRulesInsertCall) RequestId(requestId string) *GlobalForwardingRulesInsertCall {
35720	c.urlParams_.Set("requestId", requestId)
35721	return c
35722}
35723
35724// Fields allows partial responses to be retrieved. See
35725// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35726// for more information.
35727func (c *GlobalForwardingRulesInsertCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesInsertCall {
35728	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35729	return c
35730}
35731
35732// Context sets the context to be used in this call's Do method. Any
35733// pending HTTP request will be aborted if the provided context is
35734// canceled.
35735func (c *GlobalForwardingRulesInsertCall) Context(ctx context.Context) *GlobalForwardingRulesInsertCall {
35736	c.ctx_ = ctx
35737	return c
35738}
35739
35740// Header returns an http.Header that can be modified by the caller to
35741// add HTTP headers to the request.
35742func (c *GlobalForwardingRulesInsertCall) Header() http.Header {
35743	if c.header_ == nil {
35744		c.header_ = make(http.Header)
35745	}
35746	return c.header_
35747}
35748
35749func (c *GlobalForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
35750	reqHeaders := make(http.Header)
35751	for k, v := range c.header_ {
35752		reqHeaders[k] = v
35753	}
35754	reqHeaders.Set("User-Agent", c.s.userAgent())
35755	var body io.Reader = nil
35756	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
35757	if err != nil {
35758		return nil, err
35759	}
35760	reqHeaders.Set("Content-Type", "application/json")
35761	c.urlParams_.Set("alt", alt)
35762	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules")
35763	urls += "?" + c.urlParams_.Encode()
35764	req, _ := http.NewRequest("POST", urls, body)
35765	req.Header = reqHeaders
35766	googleapi.Expand(req.URL, map[string]string{
35767		"project": c.project,
35768	})
35769	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35770}
35771
35772// Do executes the "compute.globalForwardingRules.insert" call.
35773// Exactly one of *Operation or error will be non-nil. Any non-2xx
35774// status code is an error. Response headers are in either
35775// *Operation.ServerResponse.Header or (if a response was returned at
35776// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
35777// to check whether the returned error was because
35778// http.StatusNotModified was returned.
35779func (c *GlobalForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
35780	gensupport.SetOptions(c.urlParams_, opts...)
35781	res, err := c.doRequest("json")
35782	if res != nil && res.StatusCode == http.StatusNotModified {
35783		if res.Body != nil {
35784			res.Body.Close()
35785		}
35786		return nil, &googleapi.Error{
35787			Code:   res.StatusCode,
35788			Header: res.Header,
35789		}
35790	}
35791	if err != nil {
35792		return nil, err
35793	}
35794	defer googleapi.CloseBody(res)
35795	if err := googleapi.CheckResponse(res); err != nil {
35796		return nil, err
35797	}
35798	ret := &Operation{
35799		ServerResponse: googleapi.ServerResponse{
35800			Header:         res.Header,
35801			HTTPStatusCode: res.StatusCode,
35802		},
35803	}
35804	target := &ret
35805	if err := gensupport.DecodeResponse(target, res); err != nil {
35806		return nil, err
35807	}
35808	return ret, nil
35809	// {
35810	//   "description": "Creates a GlobalForwardingRule resource in the specified project using the data included in the request.",
35811	//   "httpMethod": "POST",
35812	//   "id": "compute.globalForwardingRules.insert",
35813	//   "parameterOrder": [
35814	//     "project"
35815	//   ],
35816	//   "parameters": {
35817	//     "project": {
35818	//       "description": "Project ID for this request.",
35819	//       "location": "path",
35820	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
35821	//       "required": true,
35822	//       "type": "string"
35823	//     },
35824	//     "requestId": {
35825	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
35826	//       "location": "query",
35827	//       "type": "string"
35828	//     }
35829	//   },
35830	//   "path": "{project}/global/forwardingRules",
35831	//   "request": {
35832	//     "$ref": "ForwardingRule"
35833	//   },
35834	//   "response": {
35835	//     "$ref": "Operation"
35836	//   },
35837	//   "scopes": [
35838	//     "https://www.googleapis.com/auth/cloud-platform",
35839	//     "https://www.googleapis.com/auth/compute"
35840	//   ]
35841	// }
35842
35843}
35844
35845// method id "compute.globalForwardingRules.list":
35846
35847type GlobalForwardingRulesListCall struct {
35848	s            *Service
35849	project      string
35850	urlParams_   gensupport.URLParams
35851	ifNoneMatch_ string
35852	ctx_         context.Context
35853	header_      http.Header
35854}
35855
35856// List: Retrieves a list of GlobalForwardingRule resources available to
35857// the specified project.
35858// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/list
35859func (r *GlobalForwardingRulesService) List(project string) *GlobalForwardingRulesListCall {
35860	c := &GlobalForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35861	c.project = project
35862	return c
35863}
35864
35865// Filter sets the optional parameter "filter": A filter expression that
35866// filters resources listed in the response. The expression must specify
35867// the field name, a comparison operator, and the value that you want to
35868// use for filtering. The value must be a string, a number, or a
35869// boolean. The comparison operator must be either =, !=, >, or <.
35870//
35871// For example, if you are filtering Compute Engine instances, you can
35872// exclude instances named example-instance by specifying name !=
35873// example-instance.
35874//
35875// You can also filter nested fields. For example, you could specify
35876// scheduling.automaticRestart = false to include instances only if they
35877// are not scheduled for automatic restarts. You can use filtering on
35878// nested fields to filter based on resource labels.
35879//
35880// To filter on multiple expressions, provide each separate expression
35881// within parentheses. For example, (scheduling.automaticRestart = true)
35882// (cpuPlatform = "Intel Skylake"). By default, each expression is an
35883// AND expression. However, you can include AND and OR expressions
35884// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
35885// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
35886// true).
35887func (c *GlobalForwardingRulesListCall) Filter(filter string) *GlobalForwardingRulesListCall {
35888	c.urlParams_.Set("filter", filter)
35889	return c
35890}
35891
35892// MaxResults sets the optional parameter "maxResults": The maximum
35893// number of results per page that should be returned. If the number of
35894// available results is larger than maxResults, Compute Engine returns a
35895// nextPageToken that can be used to get the next page of results in
35896// subsequent list requests. Acceptable values are 0 to 500, inclusive.
35897// (Default: 500)
35898func (c *GlobalForwardingRulesListCall) MaxResults(maxResults int64) *GlobalForwardingRulesListCall {
35899	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
35900	return c
35901}
35902
35903// OrderBy sets the optional parameter "orderBy": Sorts list results by
35904// a certain order. By default, results are returned in alphanumerical
35905// order based on the resource name.
35906//
35907// You can also sort results in descending order based on the creation
35908// timestamp using orderBy="creationTimestamp desc". This sorts results
35909// based on the creationTimestamp field in reverse chronological order
35910// (newest result first). Use this to sort resources like operations so
35911// that the newest operation is returned first.
35912//
35913// Currently, only sorting by name or creationTimestamp desc is
35914// supported.
35915func (c *GlobalForwardingRulesListCall) OrderBy(orderBy string) *GlobalForwardingRulesListCall {
35916	c.urlParams_.Set("orderBy", orderBy)
35917	return c
35918}
35919
35920// PageToken sets the optional parameter "pageToken": Specifies a page
35921// token to use. Set pageToken to the nextPageToken returned by a
35922// previous list request to get the next page of results.
35923func (c *GlobalForwardingRulesListCall) PageToken(pageToken string) *GlobalForwardingRulesListCall {
35924	c.urlParams_.Set("pageToken", pageToken)
35925	return c
35926}
35927
35928// Fields allows partial responses to be retrieved. See
35929// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35930// for more information.
35931func (c *GlobalForwardingRulesListCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesListCall {
35932	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35933	return c
35934}
35935
35936// IfNoneMatch sets the optional parameter which makes the operation
35937// fail if the object's ETag matches the given value. This is useful for
35938// getting updates only after the object has changed since the last
35939// request. Use googleapi.IsNotModified to check whether the response
35940// error from Do is the result of In-None-Match.
35941func (c *GlobalForwardingRulesListCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesListCall {
35942	c.ifNoneMatch_ = entityTag
35943	return c
35944}
35945
35946// Context sets the context to be used in this call's Do method. Any
35947// pending HTTP request will be aborted if the provided context is
35948// canceled.
35949func (c *GlobalForwardingRulesListCall) Context(ctx context.Context) *GlobalForwardingRulesListCall {
35950	c.ctx_ = ctx
35951	return c
35952}
35953
35954// Header returns an http.Header that can be modified by the caller to
35955// add HTTP headers to the request.
35956func (c *GlobalForwardingRulesListCall) Header() http.Header {
35957	if c.header_ == nil {
35958		c.header_ = make(http.Header)
35959	}
35960	return c.header_
35961}
35962
35963func (c *GlobalForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
35964	reqHeaders := make(http.Header)
35965	for k, v := range c.header_ {
35966		reqHeaders[k] = v
35967	}
35968	reqHeaders.Set("User-Agent", c.s.userAgent())
35969	if c.ifNoneMatch_ != "" {
35970		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
35971	}
35972	var body io.Reader = nil
35973	c.urlParams_.Set("alt", alt)
35974	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules")
35975	urls += "?" + c.urlParams_.Encode()
35976	req, _ := http.NewRequest("GET", urls, body)
35977	req.Header = reqHeaders
35978	googleapi.Expand(req.URL, map[string]string{
35979		"project": c.project,
35980	})
35981	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35982}
35983
35984// Do executes the "compute.globalForwardingRules.list" call.
35985// Exactly one of *ForwardingRuleList or error will be non-nil. Any
35986// non-2xx status code is an error. Response headers are in either
35987// *ForwardingRuleList.ServerResponse.Header or (if a response was
35988// returned at all) in error.(*googleapi.Error).Header. Use
35989// googleapi.IsNotModified to check whether the returned error was
35990// because http.StatusNotModified was returned.
35991func (c *GlobalForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
35992	gensupport.SetOptions(c.urlParams_, opts...)
35993	res, err := c.doRequest("json")
35994	if res != nil && res.StatusCode == http.StatusNotModified {
35995		if res.Body != nil {
35996			res.Body.Close()
35997		}
35998		return nil, &googleapi.Error{
35999			Code:   res.StatusCode,
36000			Header: res.Header,
36001		}
36002	}
36003	if err != nil {
36004		return nil, err
36005	}
36006	defer googleapi.CloseBody(res)
36007	if err := googleapi.CheckResponse(res); err != nil {
36008		return nil, err
36009	}
36010	ret := &ForwardingRuleList{
36011		ServerResponse: googleapi.ServerResponse{
36012			Header:         res.Header,
36013			HTTPStatusCode: res.StatusCode,
36014		},
36015	}
36016	target := &ret
36017	if err := gensupport.DecodeResponse(target, res); err != nil {
36018		return nil, err
36019	}
36020	return ret, nil
36021	// {
36022	//   "description": "Retrieves a list of GlobalForwardingRule resources available to the specified project.",
36023	//   "httpMethod": "GET",
36024	//   "id": "compute.globalForwardingRules.list",
36025	//   "parameterOrder": [
36026	//     "project"
36027	//   ],
36028	//   "parameters": {
36029	//     "filter": {
36030	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
36031	//       "location": "query",
36032	//       "type": "string"
36033	//     },
36034	//     "maxResults": {
36035	//       "default": "500",
36036	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
36037	//       "format": "uint32",
36038	//       "location": "query",
36039	//       "minimum": "0",
36040	//       "type": "integer"
36041	//     },
36042	//     "orderBy": {
36043	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
36044	//       "location": "query",
36045	//       "type": "string"
36046	//     },
36047	//     "pageToken": {
36048	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
36049	//       "location": "query",
36050	//       "type": "string"
36051	//     },
36052	//     "project": {
36053	//       "description": "Project ID for this request.",
36054	//       "location": "path",
36055	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
36056	//       "required": true,
36057	//       "type": "string"
36058	//     }
36059	//   },
36060	//   "path": "{project}/global/forwardingRules",
36061	//   "response": {
36062	//     "$ref": "ForwardingRuleList"
36063	//   },
36064	//   "scopes": [
36065	//     "https://www.googleapis.com/auth/cloud-platform",
36066	//     "https://www.googleapis.com/auth/compute",
36067	//     "https://www.googleapis.com/auth/compute.readonly"
36068	//   ]
36069	// }
36070
36071}
36072
36073// Pages invokes f for each page of results.
36074// A non-nil error returned from f will halt the iteration.
36075// The provided context supersedes any context provided to the Context method.
36076func (c *GlobalForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
36077	c.ctx_ = ctx
36078	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
36079	for {
36080		x, err := c.Do()
36081		if err != nil {
36082			return err
36083		}
36084		if err := f(x); err != nil {
36085			return err
36086		}
36087		if x.NextPageToken == "" {
36088			return nil
36089		}
36090		c.PageToken(x.NextPageToken)
36091	}
36092}
36093
36094// method id "compute.globalForwardingRules.setTarget":
36095
36096type GlobalForwardingRulesSetTargetCall struct {
36097	s               *Service
36098	project         string
36099	forwardingRule  string
36100	targetreference *TargetReference
36101	urlParams_      gensupport.URLParams
36102	ctx_            context.Context
36103	header_         http.Header
36104}
36105
36106// SetTarget: Changes target URL for the GlobalForwardingRule resource.
36107// The new target should be of the same type as the old target.
36108// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/setTarget
36109func (r *GlobalForwardingRulesService) SetTarget(project string, forwardingRule string, targetreference *TargetReference) *GlobalForwardingRulesSetTargetCall {
36110	c := &GlobalForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36111	c.project = project
36112	c.forwardingRule = forwardingRule
36113	c.targetreference = targetreference
36114	return c
36115}
36116
36117// RequestId sets the optional parameter "requestId": An optional
36118// request ID to identify requests. Specify a unique request ID so that
36119// if you must retry your request, the server will know to ignore the
36120// request if it has already been completed.
36121//
36122// For example, consider a situation where you make an initial request
36123// and the request times out. If you make the request again with the
36124// same request ID, the server can check if original operation with the
36125// same request ID was received, and if so, will ignore the second
36126// request. This prevents clients from accidentally creating duplicate
36127// commitments.
36128//
36129// The request ID must be a valid UUID with the exception that zero UUID
36130// is not supported (00000000-0000-0000-0000-000000000000).
36131func (c *GlobalForwardingRulesSetTargetCall) RequestId(requestId string) *GlobalForwardingRulesSetTargetCall {
36132	c.urlParams_.Set("requestId", requestId)
36133	return c
36134}
36135
36136// Fields allows partial responses to be retrieved. See
36137// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36138// for more information.
36139func (c *GlobalForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetTargetCall {
36140	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36141	return c
36142}
36143
36144// Context sets the context to be used in this call's Do method. Any
36145// pending HTTP request will be aborted if the provided context is
36146// canceled.
36147func (c *GlobalForwardingRulesSetTargetCall) Context(ctx context.Context) *GlobalForwardingRulesSetTargetCall {
36148	c.ctx_ = ctx
36149	return c
36150}
36151
36152// Header returns an http.Header that can be modified by the caller to
36153// add HTTP headers to the request.
36154func (c *GlobalForwardingRulesSetTargetCall) Header() http.Header {
36155	if c.header_ == nil {
36156		c.header_ = make(http.Header)
36157	}
36158	return c.header_
36159}
36160
36161func (c *GlobalForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
36162	reqHeaders := make(http.Header)
36163	for k, v := range c.header_ {
36164		reqHeaders[k] = v
36165	}
36166	reqHeaders.Set("User-Agent", c.s.userAgent())
36167	var body io.Reader = nil
36168	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
36169	if err != nil {
36170		return nil, err
36171	}
36172	reqHeaders.Set("Content-Type", "application/json")
36173	c.urlParams_.Set("alt", alt)
36174	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}/setTarget")
36175	urls += "?" + c.urlParams_.Encode()
36176	req, _ := http.NewRequest("POST", urls, body)
36177	req.Header = reqHeaders
36178	googleapi.Expand(req.URL, map[string]string{
36179		"project":        c.project,
36180		"forwardingRule": c.forwardingRule,
36181	})
36182	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36183}
36184
36185// Do executes the "compute.globalForwardingRules.setTarget" call.
36186// Exactly one of *Operation or error will be non-nil. Any non-2xx
36187// status code is an error. Response headers are in either
36188// *Operation.ServerResponse.Header or (if a response was returned at
36189// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
36190// to check whether the returned error was because
36191// http.StatusNotModified was returned.
36192func (c *GlobalForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
36193	gensupport.SetOptions(c.urlParams_, opts...)
36194	res, err := c.doRequest("json")
36195	if res != nil && res.StatusCode == http.StatusNotModified {
36196		if res.Body != nil {
36197			res.Body.Close()
36198		}
36199		return nil, &googleapi.Error{
36200			Code:   res.StatusCode,
36201			Header: res.Header,
36202		}
36203	}
36204	if err != nil {
36205		return nil, err
36206	}
36207	defer googleapi.CloseBody(res)
36208	if err := googleapi.CheckResponse(res); err != nil {
36209		return nil, err
36210	}
36211	ret := &Operation{
36212		ServerResponse: googleapi.ServerResponse{
36213			Header:         res.Header,
36214			HTTPStatusCode: res.StatusCode,
36215		},
36216	}
36217	target := &ret
36218	if err := gensupport.DecodeResponse(target, res); err != nil {
36219		return nil, err
36220	}
36221	return ret, nil
36222	// {
36223	//   "description": "Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.",
36224	//   "httpMethod": "POST",
36225	//   "id": "compute.globalForwardingRules.setTarget",
36226	//   "parameterOrder": [
36227	//     "project",
36228	//     "forwardingRule"
36229	//   ],
36230	//   "parameters": {
36231	//     "forwardingRule": {
36232	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
36233	//       "location": "path",
36234	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
36235	//       "required": true,
36236	//       "type": "string"
36237	//     },
36238	//     "project": {
36239	//       "description": "Project ID for this request.",
36240	//       "location": "path",
36241	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
36242	//       "required": true,
36243	//       "type": "string"
36244	//     },
36245	//     "requestId": {
36246	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
36247	//       "location": "query",
36248	//       "type": "string"
36249	//     }
36250	//   },
36251	//   "path": "{project}/global/forwardingRules/{forwardingRule}/setTarget",
36252	//   "request": {
36253	//     "$ref": "TargetReference"
36254	//   },
36255	//   "response": {
36256	//     "$ref": "Operation"
36257	//   },
36258	//   "scopes": [
36259	//     "https://www.googleapis.com/auth/cloud-platform",
36260	//     "https://www.googleapis.com/auth/compute"
36261	//   ]
36262	// }
36263
36264}
36265
36266// method id "compute.globalOperations.aggregatedList":
36267
36268type GlobalOperationsAggregatedListCall struct {
36269	s            *Service
36270	project      string
36271	urlParams_   gensupport.URLParams
36272	ifNoneMatch_ string
36273	ctx_         context.Context
36274	header_      http.Header
36275}
36276
36277// AggregatedList: Retrieves an aggregated list of all operations.
36278// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/aggregatedList
36279func (r *GlobalOperationsService) AggregatedList(project string) *GlobalOperationsAggregatedListCall {
36280	c := &GlobalOperationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36281	c.project = project
36282	return c
36283}
36284
36285// Filter sets the optional parameter "filter": A filter expression that
36286// filters resources listed in the response. The expression must specify
36287// the field name, a comparison operator, and the value that you want to
36288// use for filtering. The value must be a string, a number, or a
36289// boolean. The comparison operator must be either =, !=, >, or <.
36290//
36291// For example, if you are filtering Compute Engine instances, you can
36292// exclude instances named example-instance by specifying name !=
36293// example-instance.
36294//
36295// You can also filter nested fields. For example, you could specify
36296// scheduling.automaticRestart = false to include instances only if they
36297// are not scheduled for automatic restarts. You can use filtering on
36298// nested fields to filter based on resource labels.
36299//
36300// To filter on multiple expressions, provide each separate expression
36301// within parentheses. For example, (scheduling.automaticRestart = true)
36302// (cpuPlatform = "Intel Skylake"). By default, each expression is an
36303// AND expression. However, you can include AND and OR expressions
36304// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
36305// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
36306// true).
36307func (c *GlobalOperationsAggregatedListCall) Filter(filter string) *GlobalOperationsAggregatedListCall {
36308	c.urlParams_.Set("filter", filter)
36309	return c
36310}
36311
36312// MaxResults sets the optional parameter "maxResults": The maximum
36313// number of results per page that should be returned. If the number of
36314// available results is larger than maxResults, Compute Engine returns a
36315// nextPageToken that can be used to get the next page of results in
36316// subsequent list requests. Acceptable values are 0 to 500, inclusive.
36317// (Default: 500)
36318func (c *GlobalOperationsAggregatedListCall) MaxResults(maxResults int64) *GlobalOperationsAggregatedListCall {
36319	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
36320	return c
36321}
36322
36323// OrderBy sets the optional parameter "orderBy": Sorts list results by
36324// a certain order. By default, results are returned in alphanumerical
36325// order based on the resource name.
36326//
36327// You can also sort results in descending order based on the creation
36328// timestamp using orderBy="creationTimestamp desc". This sorts results
36329// based on the creationTimestamp field in reverse chronological order
36330// (newest result first). Use this to sort resources like operations so
36331// that the newest operation is returned first.
36332//
36333// Currently, only sorting by name or creationTimestamp desc is
36334// supported.
36335func (c *GlobalOperationsAggregatedListCall) OrderBy(orderBy string) *GlobalOperationsAggregatedListCall {
36336	c.urlParams_.Set("orderBy", orderBy)
36337	return c
36338}
36339
36340// PageToken sets the optional parameter "pageToken": Specifies a page
36341// token to use. Set pageToken to the nextPageToken returned by a
36342// previous list request to get the next page of results.
36343func (c *GlobalOperationsAggregatedListCall) PageToken(pageToken string) *GlobalOperationsAggregatedListCall {
36344	c.urlParams_.Set("pageToken", pageToken)
36345	return c
36346}
36347
36348// Fields allows partial responses to be retrieved. See
36349// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36350// for more information.
36351func (c *GlobalOperationsAggregatedListCall) Fields(s ...googleapi.Field) *GlobalOperationsAggregatedListCall {
36352	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36353	return c
36354}
36355
36356// IfNoneMatch sets the optional parameter which makes the operation
36357// fail if the object's ETag matches the given value. This is useful for
36358// getting updates only after the object has changed since the last
36359// request. Use googleapi.IsNotModified to check whether the response
36360// error from Do is the result of In-None-Match.
36361func (c *GlobalOperationsAggregatedListCall) IfNoneMatch(entityTag string) *GlobalOperationsAggregatedListCall {
36362	c.ifNoneMatch_ = entityTag
36363	return c
36364}
36365
36366// Context sets the context to be used in this call's Do method. Any
36367// pending HTTP request will be aborted if the provided context is
36368// canceled.
36369func (c *GlobalOperationsAggregatedListCall) Context(ctx context.Context) *GlobalOperationsAggregatedListCall {
36370	c.ctx_ = ctx
36371	return c
36372}
36373
36374// Header returns an http.Header that can be modified by the caller to
36375// add HTTP headers to the request.
36376func (c *GlobalOperationsAggregatedListCall) Header() http.Header {
36377	if c.header_ == nil {
36378		c.header_ = make(http.Header)
36379	}
36380	return c.header_
36381}
36382
36383func (c *GlobalOperationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
36384	reqHeaders := make(http.Header)
36385	for k, v := range c.header_ {
36386		reqHeaders[k] = v
36387	}
36388	reqHeaders.Set("User-Agent", c.s.userAgent())
36389	if c.ifNoneMatch_ != "" {
36390		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
36391	}
36392	var body io.Reader = nil
36393	c.urlParams_.Set("alt", alt)
36394	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/operations")
36395	urls += "?" + c.urlParams_.Encode()
36396	req, _ := http.NewRequest("GET", urls, body)
36397	req.Header = reqHeaders
36398	googleapi.Expand(req.URL, map[string]string{
36399		"project": c.project,
36400	})
36401	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36402}
36403
36404// Do executes the "compute.globalOperations.aggregatedList" call.
36405// Exactly one of *OperationAggregatedList or error will be non-nil. Any
36406// non-2xx status code is an error. Response headers are in either
36407// *OperationAggregatedList.ServerResponse.Header or (if a response was
36408// returned at all) in error.(*googleapi.Error).Header. Use
36409// googleapi.IsNotModified to check whether the returned error was
36410// because http.StatusNotModified was returned.
36411func (c *GlobalOperationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*OperationAggregatedList, error) {
36412	gensupport.SetOptions(c.urlParams_, opts...)
36413	res, err := c.doRequest("json")
36414	if res != nil && res.StatusCode == http.StatusNotModified {
36415		if res.Body != nil {
36416			res.Body.Close()
36417		}
36418		return nil, &googleapi.Error{
36419			Code:   res.StatusCode,
36420			Header: res.Header,
36421		}
36422	}
36423	if err != nil {
36424		return nil, err
36425	}
36426	defer googleapi.CloseBody(res)
36427	if err := googleapi.CheckResponse(res); err != nil {
36428		return nil, err
36429	}
36430	ret := &OperationAggregatedList{
36431		ServerResponse: googleapi.ServerResponse{
36432			Header:         res.Header,
36433			HTTPStatusCode: res.StatusCode,
36434		},
36435	}
36436	target := &ret
36437	if err := gensupport.DecodeResponse(target, res); err != nil {
36438		return nil, err
36439	}
36440	return ret, nil
36441	// {
36442	//   "description": "Retrieves an aggregated list of all operations.",
36443	//   "httpMethod": "GET",
36444	//   "id": "compute.globalOperations.aggregatedList",
36445	//   "parameterOrder": [
36446	//     "project"
36447	//   ],
36448	//   "parameters": {
36449	//     "filter": {
36450	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
36451	//       "location": "query",
36452	//       "type": "string"
36453	//     },
36454	//     "maxResults": {
36455	//       "default": "500",
36456	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
36457	//       "format": "uint32",
36458	//       "location": "query",
36459	//       "minimum": "0",
36460	//       "type": "integer"
36461	//     },
36462	//     "orderBy": {
36463	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
36464	//       "location": "query",
36465	//       "type": "string"
36466	//     },
36467	//     "pageToken": {
36468	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
36469	//       "location": "query",
36470	//       "type": "string"
36471	//     },
36472	//     "project": {
36473	//       "description": "Project ID for this request.",
36474	//       "location": "path",
36475	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
36476	//       "required": true,
36477	//       "type": "string"
36478	//     }
36479	//   },
36480	//   "path": "{project}/aggregated/operations",
36481	//   "response": {
36482	//     "$ref": "OperationAggregatedList"
36483	//   },
36484	//   "scopes": [
36485	//     "https://www.googleapis.com/auth/cloud-platform",
36486	//     "https://www.googleapis.com/auth/compute",
36487	//     "https://www.googleapis.com/auth/compute.readonly"
36488	//   ]
36489	// }
36490
36491}
36492
36493// Pages invokes f for each page of results.
36494// A non-nil error returned from f will halt the iteration.
36495// The provided context supersedes any context provided to the Context method.
36496func (c *GlobalOperationsAggregatedListCall) Pages(ctx context.Context, f func(*OperationAggregatedList) error) error {
36497	c.ctx_ = ctx
36498	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
36499	for {
36500		x, err := c.Do()
36501		if err != nil {
36502			return err
36503		}
36504		if err := f(x); err != nil {
36505			return err
36506		}
36507		if x.NextPageToken == "" {
36508			return nil
36509		}
36510		c.PageToken(x.NextPageToken)
36511	}
36512}
36513
36514// method id "compute.globalOperations.delete":
36515
36516type GlobalOperationsDeleteCall struct {
36517	s          *Service
36518	project    string
36519	operation  string
36520	urlParams_ gensupport.URLParams
36521	ctx_       context.Context
36522	header_    http.Header
36523}
36524
36525// Delete: Deletes the specified Operations resource.
36526// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/delete
36527func (r *GlobalOperationsService) Delete(project string, operation string) *GlobalOperationsDeleteCall {
36528	c := &GlobalOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36529	c.project = project
36530	c.operation = operation
36531	return c
36532}
36533
36534// Fields allows partial responses to be retrieved. See
36535// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36536// for more information.
36537func (c *GlobalOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOperationsDeleteCall {
36538	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36539	return c
36540}
36541
36542// Context sets the context to be used in this call's Do method. Any
36543// pending HTTP request will be aborted if the provided context is
36544// canceled.
36545func (c *GlobalOperationsDeleteCall) Context(ctx context.Context) *GlobalOperationsDeleteCall {
36546	c.ctx_ = ctx
36547	return c
36548}
36549
36550// Header returns an http.Header that can be modified by the caller to
36551// add HTTP headers to the request.
36552func (c *GlobalOperationsDeleteCall) Header() http.Header {
36553	if c.header_ == nil {
36554		c.header_ = make(http.Header)
36555	}
36556	return c.header_
36557}
36558
36559func (c *GlobalOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
36560	reqHeaders := make(http.Header)
36561	for k, v := range c.header_ {
36562		reqHeaders[k] = v
36563	}
36564	reqHeaders.Set("User-Agent", c.s.userAgent())
36565	var body io.Reader = nil
36566	c.urlParams_.Set("alt", alt)
36567	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}")
36568	urls += "?" + c.urlParams_.Encode()
36569	req, _ := http.NewRequest("DELETE", urls, body)
36570	req.Header = reqHeaders
36571	googleapi.Expand(req.URL, map[string]string{
36572		"project":   c.project,
36573		"operation": c.operation,
36574	})
36575	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36576}
36577
36578// Do executes the "compute.globalOperations.delete" call.
36579func (c *GlobalOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
36580	gensupport.SetOptions(c.urlParams_, opts...)
36581	res, err := c.doRequest("json")
36582	if err != nil {
36583		return err
36584	}
36585	defer googleapi.CloseBody(res)
36586	if err := googleapi.CheckResponse(res); err != nil {
36587		return err
36588	}
36589	return nil
36590	// {
36591	//   "description": "Deletes the specified Operations resource.",
36592	//   "httpMethod": "DELETE",
36593	//   "id": "compute.globalOperations.delete",
36594	//   "parameterOrder": [
36595	//     "project",
36596	//     "operation"
36597	//   ],
36598	//   "parameters": {
36599	//     "operation": {
36600	//       "description": "Name of the Operations resource to delete.",
36601	//       "location": "path",
36602	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
36603	//       "required": true,
36604	//       "type": "string"
36605	//     },
36606	//     "project": {
36607	//       "description": "Project ID for this request.",
36608	//       "location": "path",
36609	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
36610	//       "required": true,
36611	//       "type": "string"
36612	//     }
36613	//   },
36614	//   "path": "{project}/global/operations/{operation}",
36615	//   "scopes": [
36616	//     "https://www.googleapis.com/auth/cloud-platform",
36617	//     "https://www.googleapis.com/auth/compute"
36618	//   ]
36619	// }
36620
36621}
36622
36623// method id "compute.globalOperations.get":
36624
36625type GlobalOperationsGetCall struct {
36626	s            *Service
36627	project      string
36628	operation    string
36629	urlParams_   gensupport.URLParams
36630	ifNoneMatch_ string
36631	ctx_         context.Context
36632	header_      http.Header
36633}
36634
36635// Get: Retrieves the specified Operations resource. Gets a list of
36636// operations by making a list() request.
36637// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/get
36638func (r *GlobalOperationsService) Get(project string, operation string) *GlobalOperationsGetCall {
36639	c := &GlobalOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36640	c.project = project
36641	c.operation = operation
36642	return c
36643}
36644
36645// Fields allows partial responses to be retrieved. See
36646// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36647// for more information.
36648func (c *GlobalOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOperationsGetCall {
36649	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36650	return c
36651}
36652
36653// IfNoneMatch sets the optional parameter which makes the operation
36654// fail if the object's ETag matches the given value. This is useful for
36655// getting updates only after the object has changed since the last
36656// request. Use googleapi.IsNotModified to check whether the response
36657// error from Do is the result of In-None-Match.
36658func (c *GlobalOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOperationsGetCall {
36659	c.ifNoneMatch_ = entityTag
36660	return c
36661}
36662
36663// Context sets the context to be used in this call's Do method. Any
36664// pending HTTP request will be aborted if the provided context is
36665// canceled.
36666func (c *GlobalOperationsGetCall) Context(ctx context.Context) *GlobalOperationsGetCall {
36667	c.ctx_ = ctx
36668	return c
36669}
36670
36671// Header returns an http.Header that can be modified by the caller to
36672// add HTTP headers to the request.
36673func (c *GlobalOperationsGetCall) Header() http.Header {
36674	if c.header_ == nil {
36675		c.header_ = make(http.Header)
36676	}
36677	return c.header_
36678}
36679
36680func (c *GlobalOperationsGetCall) doRequest(alt string) (*http.Response, error) {
36681	reqHeaders := make(http.Header)
36682	for k, v := range c.header_ {
36683		reqHeaders[k] = v
36684	}
36685	reqHeaders.Set("User-Agent", c.s.userAgent())
36686	if c.ifNoneMatch_ != "" {
36687		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
36688	}
36689	var body io.Reader = nil
36690	c.urlParams_.Set("alt", alt)
36691	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}")
36692	urls += "?" + c.urlParams_.Encode()
36693	req, _ := http.NewRequest("GET", urls, body)
36694	req.Header = reqHeaders
36695	googleapi.Expand(req.URL, map[string]string{
36696		"project":   c.project,
36697		"operation": c.operation,
36698	})
36699	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36700}
36701
36702// Do executes the "compute.globalOperations.get" call.
36703// Exactly one of *Operation or error will be non-nil. Any non-2xx
36704// status code is an error. Response headers are in either
36705// *Operation.ServerResponse.Header or (if a response was returned at
36706// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
36707// to check whether the returned error was because
36708// http.StatusNotModified was returned.
36709func (c *GlobalOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
36710	gensupport.SetOptions(c.urlParams_, opts...)
36711	res, err := c.doRequest("json")
36712	if res != nil && res.StatusCode == http.StatusNotModified {
36713		if res.Body != nil {
36714			res.Body.Close()
36715		}
36716		return nil, &googleapi.Error{
36717			Code:   res.StatusCode,
36718			Header: res.Header,
36719		}
36720	}
36721	if err != nil {
36722		return nil, err
36723	}
36724	defer googleapi.CloseBody(res)
36725	if err := googleapi.CheckResponse(res); err != nil {
36726		return nil, err
36727	}
36728	ret := &Operation{
36729		ServerResponse: googleapi.ServerResponse{
36730			Header:         res.Header,
36731			HTTPStatusCode: res.StatusCode,
36732		},
36733	}
36734	target := &ret
36735	if err := gensupport.DecodeResponse(target, res); err != nil {
36736		return nil, err
36737	}
36738	return ret, nil
36739	// {
36740	//   "description": "Retrieves the specified Operations resource. Gets a list of operations by making a list() request.",
36741	//   "httpMethod": "GET",
36742	//   "id": "compute.globalOperations.get",
36743	//   "parameterOrder": [
36744	//     "project",
36745	//     "operation"
36746	//   ],
36747	//   "parameters": {
36748	//     "operation": {
36749	//       "description": "Name of the Operations resource to return.",
36750	//       "location": "path",
36751	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
36752	//       "required": true,
36753	//       "type": "string"
36754	//     },
36755	//     "project": {
36756	//       "description": "Project ID for this request.",
36757	//       "location": "path",
36758	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
36759	//       "required": true,
36760	//       "type": "string"
36761	//     }
36762	//   },
36763	//   "path": "{project}/global/operations/{operation}",
36764	//   "response": {
36765	//     "$ref": "Operation"
36766	//   },
36767	//   "scopes": [
36768	//     "https://www.googleapis.com/auth/cloud-platform",
36769	//     "https://www.googleapis.com/auth/compute",
36770	//     "https://www.googleapis.com/auth/compute.readonly"
36771	//   ]
36772	// }
36773
36774}
36775
36776// method id "compute.globalOperations.list":
36777
36778type GlobalOperationsListCall struct {
36779	s            *Service
36780	project      string
36781	urlParams_   gensupport.URLParams
36782	ifNoneMatch_ string
36783	ctx_         context.Context
36784	header_      http.Header
36785}
36786
36787// List: Retrieves a list of Operation resources contained within the
36788// specified project.
36789// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/list
36790func (r *GlobalOperationsService) List(project string) *GlobalOperationsListCall {
36791	c := &GlobalOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36792	c.project = project
36793	return c
36794}
36795
36796// Filter sets the optional parameter "filter": A filter expression that
36797// filters resources listed in the response. The expression must specify
36798// the field name, a comparison operator, and the value that you want to
36799// use for filtering. The value must be a string, a number, or a
36800// boolean. The comparison operator must be either =, !=, >, or <.
36801//
36802// For example, if you are filtering Compute Engine instances, you can
36803// exclude instances named example-instance by specifying name !=
36804// example-instance.
36805//
36806// You can also filter nested fields. For example, you could specify
36807// scheduling.automaticRestart = false to include instances only if they
36808// are not scheduled for automatic restarts. You can use filtering on
36809// nested fields to filter based on resource labels.
36810//
36811// To filter on multiple expressions, provide each separate expression
36812// within parentheses. For example, (scheduling.automaticRestart = true)
36813// (cpuPlatform = "Intel Skylake"). By default, each expression is an
36814// AND expression. However, you can include AND and OR expressions
36815// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
36816// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
36817// true).
36818func (c *GlobalOperationsListCall) Filter(filter string) *GlobalOperationsListCall {
36819	c.urlParams_.Set("filter", filter)
36820	return c
36821}
36822
36823// MaxResults sets the optional parameter "maxResults": The maximum
36824// number of results per page that should be returned. If the number of
36825// available results is larger than maxResults, Compute Engine returns a
36826// nextPageToken that can be used to get the next page of results in
36827// subsequent list requests. Acceptable values are 0 to 500, inclusive.
36828// (Default: 500)
36829func (c *GlobalOperationsListCall) MaxResults(maxResults int64) *GlobalOperationsListCall {
36830	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
36831	return c
36832}
36833
36834// OrderBy sets the optional parameter "orderBy": Sorts list results by
36835// a certain order. By default, results are returned in alphanumerical
36836// order based on the resource name.
36837//
36838// You can also sort results in descending order based on the creation
36839// timestamp using orderBy="creationTimestamp desc". This sorts results
36840// based on the creationTimestamp field in reverse chronological order
36841// (newest result first). Use this to sort resources like operations so
36842// that the newest operation is returned first.
36843//
36844// Currently, only sorting by name or creationTimestamp desc is
36845// supported.
36846func (c *GlobalOperationsListCall) OrderBy(orderBy string) *GlobalOperationsListCall {
36847	c.urlParams_.Set("orderBy", orderBy)
36848	return c
36849}
36850
36851// PageToken sets the optional parameter "pageToken": Specifies a page
36852// token to use. Set pageToken to the nextPageToken returned by a
36853// previous list request to get the next page of results.
36854func (c *GlobalOperationsListCall) PageToken(pageToken string) *GlobalOperationsListCall {
36855	c.urlParams_.Set("pageToken", pageToken)
36856	return c
36857}
36858
36859// Fields allows partial responses to be retrieved. See
36860// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36861// for more information.
36862func (c *GlobalOperationsListCall) Fields(s ...googleapi.Field) *GlobalOperationsListCall {
36863	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36864	return c
36865}
36866
36867// IfNoneMatch sets the optional parameter which makes the operation
36868// fail if the object's ETag matches the given value. This is useful for
36869// getting updates only after the object has changed since the last
36870// request. Use googleapi.IsNotModified to check whether the response
36871// error from Do is the result of In-None-Match.
36872func (c *GlobalOperationsListCall) IfNoneMatch(entityTag string) *GlobalOperationsListCall {
36873	c.ifNoneMatch_ = entityTag
36874	return c
36875}
36876
36877// Context sets the context to be used in this call's Do method. Any
36878// pending HTTP request will be aborted if the provided context is
36879// canceled.
36880func (c *GlobalOperationsListCall) Context(ctx context.Context) *GlobalOperationsListCall {
36881	c.ctx_ = ctx
36882	return c
36883}
36884
36885// Header returns an http.Header that can be modified by the caller to
36886// add HTTP headers to the request.
36887func (c *GlobalOperationsListCall) Header() http.Header {
36888	if c.header_ == nil {
36889		c.header_ = make(http.Header)
36890	}
36891	return c.header_
36892}
36893
36894func (c *GlobalOperationsListCall) doRequest(alt string) (*http.Response, error) {
36895	reqHeaders := make(http.Header)
36896	for k, v := range c.header_ {
36897		reqHeaders[k] = v
36898	}
36899	reqHeaders.Set("User-Agent", c.s.userAgent())
36900	if c.ifNoneMatch_ != "" {
36901		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
36902	}
36903	var body io.Reader = nil
36904	c.urlParams_.Set("alt", alt)
36905	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations")
36906	urls += "?" + c.urlParams_.Encode()
36907	req, _ := http.NewRequest("GET", urls, body)
36908	req.Header = reqHeaders
36909	googleapi.Expand(req.URL, map[string]string{
36910		"project": c.project,
36911	})
36912	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36913}
36914
36915// Do executes the "compute.globalOperations.list" call.
36916// Exactly one of *OperationList or error will be non-nil. Any non-2xx
36917// status code is an error. Response headers are in either
36918// *OperationList.ServerResponse.Header or (if a response was returned
36919// at all) in error.(*googleapi.Error).Header. Use
36920// googleapi.IsNotModified to check whether the returned error was
36921// because http.StatusNotModified was returned.
36922func (c *GlobalOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
36923	gensupport.SetOptions(c.urlParams_, opts...)
36924	res, err := c.doRequest("json")
36925	if res != nil && res.StatusCode == http.StatusNotModified {
36926		if res.Body != nil {
36927			res.Body.Close()
36928		}
36929		return nil, &googleapi.Error{
36930			Code:   res.StatusCode,
36931			Header: res.Header,
36932		}
36933	}
36934	if err != nil {
36935		return nil, err
36936	}
36937	defer googleapi.CloseBody(res)
36938	if err := googleapi.CheckResponse(res); err != nil {
36939		return nil, err
36940	}
36941	ret := &OperationList{
36942		ServerResponse: googleapi.ServerResponse{
36943			Header:         res.Header,
36944			HTTPStatusCode: res.StatusCode,
36945		},
36946	}
36947	target := &ret
36948	if err := gensupport.DecodeResponse(target, res); err != nil {
36949		return nil, err
36950	}
36951	return ret, nil
36952	// {
36953	//   "description": "Retrieves a list of Operation resources contained within the specified project.",
36954	//   "httpMethod": "GET",
36955	//   "id": "compute.globalOperations.list",
36956	//   "parameterOrder": [
36957	//     "project"
36958	//   ],
36959	//   "parameters": {
36960	//     "filter": {
36961	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
36962	//       "location": "query",
36963	//       "type": "string"
36964	//     },
36965	//     "maxResults": {
36966	//       "default": "500",
36967	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
36968	//       "format": "uint32",
36969	//       "location": "query",
36970	//       "minimum": "0",
36971	//       "type": "integer"
36972	//     },
36973	//     "orderBy": {
36974	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
36975	//       "location": "query",
36976	//       "type": "string"
36977	//     },
36978	//     "pageToken": {
36979	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
36980	//       "location": "query",
36981	//       "type": "string"
36982	//     },
36983	//     "project": {
36984	//       "description": "Project ID for this request.",
36985	//       "location": "path",
36986	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
36987	//       "required": true,
36988	//       "type": "string"
36989	//     }
36990	//   },
36991	//   "path": "{project}/global/operations",
36992	//   "response": {
36993	//     "$ref": "OperationList"
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// Pages invokes f for each page of results.
37005// A non-nil error returned from f will halt the iteration.
37006// The provided context supersedes any context provided to the Context method.
37007func (c *GlobalOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
37008	c.ctx_ = ctx
37009	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
37010	for {
37011		x, err := c.Do()
37012		if err != nil {
37013			return err
37014		}
37015		if err := f(x); err != nil {
37016			return err
37017		}
37018		if x.NextPageToken == "" {
37019			return nil
37020		}
37021		c.PageToken(x.NextPageToken)
37022	}
37023}
37024
37025// method id "compute.healthChecks.delete":
37026
37027type HealthChecksDeleteCall struct {
37028	s           *Service
37029	project     string
37030	healthCheck string
37031	urlParams_  gensupport.URLParams
37032	ctx_        context.Context
37033	header_     http.Header
37034}
37035
37036// Delete: Deletes the specified HealthCheck resource.
37037func (r *HealthChecksService) Delete(project string, healthCheck string) *HealthChecksDeleteCall {
37038	c := &HealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37039	c.project = project
37040	c.healthCheck = healthCheck
37041	return c
37042}
37043
37044// RequestId sets the optional parameter "requestId": An optional
37045// request ID to identify requests. Specify a unique request ID so that
37046// if you must retry your request, the server will know to ignore the
37047// request if it has already been completed.
37048//
37049// For example, consider a situation where you make an initial request
37050// and the request times out. If you make the request again with the
37051// same request ID, the server can check if original operation with the
37052// same request ID was received, and if so, will ignore the second
37053// request. This prevents clients from accidentally creating duplicate
37054// commitments.
37055//
37056// The request ID must be a valid UUID with the exception that zero UUID
37057// is not supported (00000000-0000-0000-0000-000000000000).
37058func (c *HealthChecksDeleteCall) RequestId(requestId string) *HealthChecksDeleteCall {
37059	c.urlParams_.Set("requestId", requestId)
37060	return c
37061}
37062
37063// Fields allows partial responses to be retrieved. See
37064// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37065// for more information.
37066func (c *HealthChecksDeleteCall) Fields(s ...googleapi.Field) *HealthChecksDeleteCall {
37067	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37068	return c
37069}
37070
37071// Context sets the context to be used in this call's Do method. Any
37072// pending HTTP request will be aborted if the provided context is
37073// canceled.
37074func (c *HealthChecksDeleteCall) Context(ctx context.Context) *HealthChecksDeleteCall {
37075	c.ctx_ = ctx
37076	return c
37077}
37078
37079// Header returns an http.Header that can be modified by the caller to
37080// add HTTP headers to the request.
37081func (c *HealthChecksDeleteCall) Header() http.Header {
37082	if c.header_ == nil {
37083		c.header_ = make(http.Header)
37084	}
37085	return c.header_
37086}
37087
37088func (c *HealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
37089	reqHeaders := make(http.Header)
37090	for k, v := range c.header_ {
37091		reqHeaders[k] = v
37092	}
37093	reqHeaders.Set("User-Agent", c.s.userAgent())
37094	var body io.Reader = nil
37095	c.urlParams_.Set("alt", alt)
37096	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
37097	urls += "?" + c.urlParams_.Encode()
37098	req, _ := http.NewRequest("DELETE", urls, body)
37099	req.Header = reqHeaders
37100	googleapi.Expand(req.URL, map[string]string{
37101		"project":     c.project,
37102		"healthCheck": c.healthCheck,
37103	})
37104	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37105}
37106
37107// Do executes the "compute.healthChecks.delete" call.
37108// Exactly one of *Operation or error will be non-nil. Any non-2xx
37109// status code is an error. Response headers are in either
37110// *Operation.ServerResponse.Header or (if a response was returned at
37111// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
37112// to check whether the returned error was because
37113// http.StatusNotModified was returned.
37114func (c *HealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
37115	gensupport.SetOptions(c.urlParams_, opts...)
37116	res, err := c.doRequest("json")
37117	if res != nil && res.StatusCode == http.StatusNotModified {
37118		if res.Body != nil {
37119			res.Body.Close()
37120		}
37121		return nil, &googleapi.Error{
37122			Code:   res.StatusCode,
37123			Header: res.Header,
37124		}
37125	}
37126	if err != nil {
37127		return nil, err
37128	}
37129	defer googleapi.CloseBody(res)
37130	if err := googleapi.CheckResponse(res); err != nil {
37131		return nil, err
37132	}
37133	ret := &Operation{
37134		ServerResponse: googleapi.ServerResponse{
37135			Header:         res.Header,
37136			HTTPStatusCode: res.StatusCode,
37137		},
37138	}
37139	target := &ret
37140	if err := gensupport.DecodeResponse(target, res); err != nil {
37141		return nil, err
37142	}
37143	return ret, nil
37144	// {
37145	//   "description": "Deletes the specified HealthCheck resource.",
37146	//   "httpMethod": "DELETE",
37147	//   "id": "compute.healthChecks.delete",
37148	//   "parameterOrder": [
37149	//     "project",
37150	//     "healthCheck"
37151	//   ],
37152	//   "parameters": {
37153	//     "healthCheck": {
37154	//       "description": "Name of the HealthCheck resource to delete.",
37155	//       "location": "path",
37156	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
37157	//       "required": true,
37158	//       "type": "string"
37159	//     },
37160	//     "project": {
37161	//       "description": "Project ID for this request.",
37162	//       "location": "path",
37163	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
37164	//       "required": true,
37165	//       "type": "string"
37166	//     },
37167	//     "requestId": {
37168	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
37169	//       "location": "query",
37170	//       "type": "string"
37171	//     }
37172	//   },
37173	//   "path": "{project}/global/healthChecks/{healthCheck}",
37174	//   "response": {
37175	//     "$ref": "Operation"
37176	//   },
37177	//   "scopes": [
37178	//     "https://www.googleapis.com/auth/cloud-platform",
37179	//     "https://www.googleapis.com/auth/compute"
37180	//   ]
37181	// }
37182
37183}
37184
37185// method id "compute.healthChecks.get":
37186
37187type HealthChecksGetCall struct {
37188	s            *Service
37189	project      string
37190	healthCheck  string
37191	urlParams_   gensupport.URLParams
37192	ifNoneMatch_ string
37193	ctx_         context.Context
37194	header_      http.Header
37195}
37196
37197// Get: Returns the specified HealthCheck resource. Gets a list of
37198// available health checks by making a list() request.
37199func (r *HealthChecksService) Get(project string, healthCheck string) *HealthChecksGetCall {
37200	c := &HealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37201	c.project = project
37202	c.healthCheck = healthCheck
37203	return c
37204}
37205
37206// Fields allows partial responses to be retrieved. See
37207// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37208// for more information.
37209func (c *HealthChecksGetCall) Fields(s ...googleapi.Field) *HealthChecksGetCall {
37210	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37211	return c
37212}
37213
37214// IfNoneMatch sets the optional parameter which makes the operation
37215// fail if the object's ETag matches the given value. This is useful for
37216// getting updates only after the object has changed since the last
37217// request. Use googleapi.IsNotModified to check whether the response
37218// error from Do is the result of In-None-Match.
37219func (c *HealthChecksGetCall) IfNoneMatch(entityTag string) *HealthChecksGetCall {
37220	c.ifNoneMatch_ = entityTag
37221	return c
37222}
37223
37224// Context sets the context to be used in this call's Do method. Any
37225// pending HTTP request will be aborted if the provided context is
37226// canceled.
37227func (c *HealthChecksGetCall) Context(ctx context.Context) *HealthChecksGetCall {
37228	c.ctx_ = ctx
37229	return c
37230}
37231
37232// Header returns an http.Header that can be modified by the caller to
37233// add HTTP headers to the request.
37234func (c *HealthChecksGetCall) Header() http.Header {
37235	if c.header_ == nil {
37236		c.header_ = make(http.Header)
37237	}
37238	return c.header_
37239}
37240
37241func (c *HealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
37242	reqHeaders := make(http.Header)
37243	for k, v := range c.header_ {
37244		reqHeaders[k] = v
37245	}
37246	reqHeaders.Set("User-Agent", c.s.userAgent())
37247	if c.ifNoneMatch_ != "" {
37248		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
37249	}
37250	var body io.Reader = nil
37251	c.urlParams_.Set("alt", alt)
37252	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
37253	urls += "?" + c.urlParams_.Encode()
37254	req, _ := http.NewRequest("GET", urls, body)
37255	req.Header = reqHeaders
37256	googleapi.Expand(req.URL, map[string]string{
37257		"project":     c.project,
37258		"healthCheck": c.healthCheck,
37259	})
37260	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37261}
37262
37263// Do executes the "compute.healthChecks.get" call.
37264// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
37265// status code is an error. Response headers are in either
37266// *HealthCheck.ServerResponse.Header or (if a response was returned at
37267// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
37268// to check whether the returned error was because
37269// http.StatusNotModified was returned.
37270func (c *HealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
37271	gensupport.SetOptions(c.urlParams_, opts...)
37272	res, err := c.doRequest("json")
37273	if res != nil && res.StatusCode == http.StatusNotModified {
37274		if res.Body != nil {
37275			res.Body.Close()
37276		}
37277		return nil, &googleapi.Error{
37278			Code:   res.StatusCode,
37279			Header: res.Header,
37280		}
37281	}
37282	if err != nil {
37283		return nil, err
37284	}
37285	defer googleapi.CloseBody(res)
37286	if err := googleapi.CheckResponse(res); err != nil {
37287		return nil, err
37288	}
37289	ret := &HealthCheck{
37290		ServerResponse: googleapi.ServerResponse{
37291			Header:         res.Header,
37292			HTTPStatusCode: res.StatusCode,
37293		},
37294	}
37295	target := &ret
37296	if err := gensupport.DecodeResponse(target, res); err != nil {
37297		return nil, err
37298	}
37299	return ret, nil
37300	// {
37301	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
37302	//   "httpMethod": "GET",
37303	//   "id": "compute.healthChecks.get",
37304	//   "parameterOrder": [
37305	//     "project",
37306	//     "healthCheck"
37307	//   ],
37308	//   "parameters": {
37309	//     "healthCheck": {
37310	//       "description": "Name of the HealthCheck resource to return.",
37311	//       "location": "path",
37312	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
37313	//       "required": true,
37314	//       "type": "string"
37315	//     },
37316	//     "project": {
37317	//       "description": "Project ID for this request.",
37318	//       "location": "path",
37319	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
37320	//       "required": true,
37321	//       "type": "string"
37322	//     }
37323	//   },
37324	//   "path": "{project}/global/healthChecks/{healthCheck}",
37325	//   "response": {
37326	//     "$ref": "HealthCheck"
37327	//   },
37328	//   "scopes": [
37329	//     "https://www.googleapis.com/auth/cloud-platform",
37330	//     "https://www.googleapis.com/auth/compute",
37331	//     "https://www.googleapis.com/auth/compute.readonly"
37332	//   ]
37333	// }
37334
37335}
37336
37337// method id "compute.healthChecks.insert":
37338
37339type HealthChecksInsertCall struct {
37340	s           *Service
37341	project     string
37342	healthcheck *HealthCheck
37343	urlParams_  gensupport.URLParams
37344	ctx_        context.Context
37345	header_     http.Header
37346}
37347
37348// Insert: Creates a HealthCheck resource in the specified project using
37349// the data included in the request.
37350func (r *HealthChecksService) Insert(project string, healthcheck *HealthCheck) *HealthChecksInsertCall {
37351	c := &HealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37352	c.project = project
37353	c.healthcheck = healthcheck
37354	return c
37355}
37356
37357// RequestId sets the optional parameter "requestId": An optional
37358// request ID to identify requests. Specify a unique request ID so that
37359// if you must retry your request, the server will know to ignore the
37360// request if it has already been completed.
37361//
37362// For example, consider a situation where you make an initial request
37363// and the request times out. If you make the request again with the
37364// same request ID, the server can check if original operation with the
37365// same request ID was received, and if so, will ignore the second
37366// request. This prevents clients from accidentally creating duplicate
37367// commitments.
37368//
37369// The request ID must be a valid UUID with the exception that zero UUID
37370// is not supported (00000000-0000-0000-0000-000000000000).
37371func (c *HealthChecksInsertCall) RequestId(requestId string) *HealthChecksInsertCall {
37372	c.urlParams_.Set("requestId", requestId)
37373	return c
37374}
37375
37376// Fields allows partial responses to be retrieved. See
37377// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37378// for more information.
37379func (c *HealthChecksInsertCall) Fields(s ...googleapi.Field) *HealthChecksInsertCall {
37380	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37381	return c
37382}
37383
37384// Context sets the context to be used in this call's Do method. Any
37385// pending HTTP request will be aborted if the provided context is
37386// canceled.
37387func (c *HealthChecksInsertCall) Context(ctx context.Context) *HealthChecksInsertCall {
37388	c.ctx_ = ctx
37389	return c
37390}
37391
37392// Header returns an http.Header that can be modified by the caller to
37393// add HTTP headers to the request.
37394func (c *HealthChecksInsertCall) Header() http.Header {
37395	if c.header_ == nil {
37396		c.header_ = make(http.Header)
37397	}
37398	return c.header_
37399}
37400
37401func (c *HealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
37402	reqHeaders := make(http.Header)
37403	for k, v := range c.header_ {
37404		reqHeaders[k] = v
37405	}
37406	reqHeaders.Set("User-Agent", c.s.userAgent())
37407	var body io.Reader = nil
37408	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
37409	if err != nil {
37410		return nil, err
37411	}
37412	reqHeaders.Set("Content-Type", "application/json")
37413	c.urlParams_.Set("alt", alt)
37414	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks")
37415	urls += "?" + c.urlParams_.Encode()
37416	req, _ := http.NewRequest("POST", urls, body)
37417	req.Header = reqHeaders
37418	googleapi.Expand(req.URL, map[string]string{
37419		"project": c.project,
37420	})
37421	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37422}
37423
37424// Do executes the "compute.healthChecks.insert" call.
37425// Exactly one of *Operation or error will be non-nil. Any non-2xx
37426// status code is an error. Response headers are in either
37427// *Operation.ServerResponse.Header or (if a response was returned at
37428// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
37429// to check whether the returned error was because
37430// http.StatusNotModified was returned.
37431func (c *HealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
37432	gensupport.SetOptions(c.urlParams_, opts...)
37433	res, err := c.doRequest("json")
37434	if res != nil && res.StatusCode == http.StatusNotModified {
37435		if res.Body != nil {
37436			res.Body.Close()
37437		}
37438		return nil, &googleapi.Error{
37439			Code:   res.StatusCode,
37440			Header: res.Header,
37441		}
37442	}
37443	if err != nil {
37444		return nil, err
37445	}
37446	defer googleapi.CloseBody(res)
37447	if err := googleapi.CheckResponse(res); err != nil {
37448		return nil, err
37449	}
37450	ret := &Operation{
37451		ServerResponse: googleapi.ServerResponse{
37452			Header:         res.Header,
37453			HTTPStatusCode: res.StatusCode,
37454		},
37455	}
37456	target := &ret
37457	if err := gensupport.DecodeResponse(target, res); err != nil {
37458		return nil, err
37459	}
37460	return ret, nil
37461	// {
37462	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
37463	//   "httpMethod": "POST",
37464	//   "id": "compute.healthChecks.insert",
37465	//   "parameterOrder": [
37466	//     "project"
37467	//   ],
37468	//   "parameters": {
37469	//     "project": {
37470	//       "description": "Project ID for this request.",
37471	//       "location": "path",
37472	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
37473	//       "required": true,
37474	//       "type": "string"
37475	//     },
37476	//     "requestId": {
37477	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
37478	//       "location": "query",
37479	//       "type": "string"
37480	//     }
37481	//   },
37482	//   "path": "{project}/global/healthChecks",
37483	//   "request": {
37484	//     "$ref": "HealthCheck"
37485	//   },
37486	//   "response": {
37487	//     "$ref": "Operation"
37488	//   },
37489	//   "scopes": [
37490	//     "https://www.googleapis.com/auth/cloud-platform",
37491	//     "https://www.googleapis.com/auth/compute"
37492	//   ]
37493	// }
37494
37495}
37496
37497// method id "compute.healthChecks.list":
37498
37499type HealthChecksListCall struct {
37500	s            *Service
37501	project      string
37502	urlParams_   gensupport.URLParams
37503	ifNoneMatch_ string
37504	ctx_         context.Context
37505	header_      http.Header
37506}
37507
37508// List: Retrieves the list of HealthCheck resources available to the
37509// specified project.
37510func (r *HealthChecksService) List(project string) *HealthChecksListCall {
37511	c := &HealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37512	c.project = project
37513	return c
37514}
37515
37516// Filter sets the optional parameter "filter": A filter expression that
37517// filters resources listed in the response. The expression must specify
37518// the field name, a comparison operator, and the value that you want to
37519// use for filtering. The value must be a string, a number, or a
37520// boolean. The comparison operator must be either =, !=, >, or <.
37521//
37522// For example, if you are filtering Compute Engine instances, you can
37523// exclude instances named example-instance by specifying name !=
37524// example-instance.
37525//
37526// You can also filter nested fields. For example, you could specify
37527// scheduling.automaticRestart = false to include instances only if they
37528// are not scheduled for automatic restarts. You can use filtering on
37529// nested fields to filter based on resource labels.
37530//
37531// To filter on multiple expressions, provide each separate expression
37532// within parentheses. For example, (scheduling.automaticRestart = true)
37533// (cpuPlatform = "Intel Skylake"). By default, each expression is an
37534// AND expression. However, you can include AND and OR expressions
37535// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
37536// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
37537// true).
37538func (c *HealthChecksListCall) Filter(filter string) *HealthChecksListCall {
37539	c.urlParams_.Set("filter", filter)
37540	return c
37541}
37542
37543// MaxResults sets the optional parameter "maxResults": The maximum
37544// number of results per page that should be returned. If the number of
37545// available results is larger than maxResults, Compute Engine returns a
37546// nextPageToken that can be used to get the next page of results in
37547// subsequent list requests. Acceptable values are 0 to 500, inclusive.
37548// (Default: 500)
37549func (c *HealthChecksListCall) MaxResults(maxResults int64) *HealthChecksListCall {
37550	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
37551	return c
37552}
37553
37554// OrderBy sets the optional parameter "orderBy": Sorts list results by
37555// a certain order. By default, results are returned in alphanumerical
37556// order based on the resource name.
37557//
37558// You can also sort results in descending order based on the creation
37559// timestamp using orderBy="creationTimestamp desc". This sorts results
37560// based on the creationTimestamp field in reverse chronological order
37561// (newest result first). Use this to sort resources like operations so
37562// that the newest operation is returned first.
37563//
37564// Currently, only sorting by name or creationTimestamp desc is
37565// supported.
37566func (c *HealthChecksListCall) OrderBy(orderBy string) *HealthChecksListCall {
37567	c.urlParams_.Set("orderBy", orderBy)
37568	return c
37569}
37570
37571// PageToken sets the optional parameter "pageToken": Specifies a page
37572// token to use. Set pageToken to the nextPageToken returned by a
37573// previous list request to get the next page of results.
37574func (c *HealthChecksListCall) PageToken(pageToken string) *HealthChecksListCall {
37575	c.urlParams_.Set("pageToken", pageToken)
37576	return c
37577}
37578
37579// Fields allows partial responses to be retrieved. See
37580// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37581// for more information.
37582func (c *HealthChecksListCall) Fields(s ...googleapi.Field) *HealthChecksListCall {
37583	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37584	return c
37585}
37586
37587// IfNoneMatch sets the optional parameter which makes the operation
37588// fail if the object's ETag matches the given value. This is useful for
37589// getting updates only after the object has changed since the last
37590// request. Use googleapi.IsNotModified to check whether the response
37591// error from Do is the result of In-None-Match.
37592func (c *HealthChecksListCall) IfNoneMatch(entityTag string) *HealthChecksListCall {
37593	c.ifNoneMatch_ = entityTag
37594	return c
37595}
37596
37597// Context sets the context to be used in this call's Do method. Any
37598// pending HTTP request will be aborted if the provided context is
37599// canceled.
37600func (c *HealthChecksListCall) Context(ctx context.Context) *HealthChecksListCall {
37601	c.ctx_ = ctx
37602	return c
37603}
37604
37605// Header returns an http.Header that can be modified by the caller to
37606// add HTTP headers to the request.
37607func (c *HealthChecksListCall) Header() http.Header {
37608	if c.header_ == nil {
37609		c.header_ = make(http.Header)
37610	}
37611	return c.header_
37612}
37613
37614func (c *HealthChecksListCall) doRequest(alt string) (*http.Response, error) {
37615	reqHeaders := make(http.Header)
37616	for k, v := range c.header_ {
37617		reqHeaders[k] = v
37618	}
37619	reqHeaders.Set("User-Agent", c.s.userAgent())
37620	if c.ifNoneMatch_ != "" {
37621		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
37622	}
37623	var body io.Reader = nil
37624	c.urlParams_.Set("alt", alt)
37625	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks")
37626	urls += "?" + c.urlParams_.Encode()
37627	req, _ := http.NewRequest("GET", urls, body)
37628	req.Header = reqHeaders
37629	googleapi.Expand(req.URL, map[string]string{
37630		"project": c.project,
37631	})
37632	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37633}
37634
37635// Do executes the "compute.healthChecks.list" call.
37636// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
37637// status code is an error. Response headers are in either
37638// *HealthCheckList.ServerResponse.Header or (if a response was returned
37639// at all) in error.(*googleapi.Error).Header. Use
37640// googleapi.IsNotModified to check whether the returned error was
37641// because http.StatusNotModified was returned.
37642func (c *HealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
37643	gensupport.SetOptions(c.urlParams_, opts...)
37644	res, err := c.doRequest("json")
37645	if res != nil && res.StatusCode == http.StatusNotModified {
37646		if res.Body != nil {
37647			res.Body.Close()
37648		}
37649		return nil, &googleapi.Error{
37650			Code:   res.StatusCode,
37651			Header: res.Header,
37652		}
37653	}
37654	if err != nil {
37655		return nil, err
37656	}
37657	defer googleapi.CloseBody(res)
37658	if err := googleapi.CheckResponse(res); err != nil {
37659		return nil, err
37660	}
37661	ret := &HealthCheckList{
37662		ServerResponse: googleapi.ServerResponse{
37663			Header:         res.Header,
37664			HTTPStatusCode: res.StatusCode,
37665		},
37666	}
37667	target := &ret
37668	if err := gensupport.DecodeResponse(target, res); err != nil {
37669		return nil, err
37670	}
37671	return ret, nil
37672	// {
37673	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
37674	//   "httpMethod": "GET",
37675	//   "id": "compute.healthChecks.list",
37676	//   "parameterOrder": [
37677	//     "project"
37678	//   ],
37679	//   "parameters": {
37680	//     "filter": {
37681	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
37682	//       "location": "query",
37683	//       "type": "string"
37684	//     },
37685	//     "maxResults": {
37686	//       "default": "500",
37687	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
37688	//       "format": "uint32",
37689	//       "location": "query",
37690	//       "minimum": "0",
37691	//       "type": "integer"
37692	//     },
37693	//     "orderBy": {
37694	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
37695	//       "location": "query",
37696	//       "type": "string"
37697	//     },
37698	//     "pageToken": {
37699	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
37700	//       "location": "query",
37701	//       "type": "string"
37702	//     },
37703	//     "project": {
37704	//       "description": "Project ID for this request.",
37705	//       "location": "path",
37706	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
37707	//       "required": true,
37708	//       "type": "string"
37709	//     }
37710	//   },
37711	//   "path": "{project}/global/healthChecks",
37712	//   "response": {
37713	//     "$ref": "HealthCheckList"
37714	//   },
37715	//   "scopes": [
37716	//     "https://www.googleapis.com/auth/cloud-platform",
37717	//     "https://www.googleapis.com/auth/compute",
37718	//     "https://www.googleapis.com/auth/compute.readonly"
37719	//   ]
37720	// }
37721
37722}
37723
37724// Pages invokes f for each page of results.
37725// A non-nil error returned from f will halt the iteration.
37726// The provided context supersedes any context provided to the Context method.
37727func (c *HealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
37728	c.ctx_ = ctx
37729	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
37730	for {
37731		x, err := c.Do()
37732		if err != nil {
37733			return err
37734		}
37735		if err := f(x); err != nil {
37736			return err
37737		}
37738		if x.NextPageToken == "" {
37739			return nil
37740		}
37741		c.PageToken(x.NextPageToken)
37742	}
37743}
37744
37745// method id "compute.healthChecks.patch":
37746
37747type HealthChecksPatchCall struct {
37748	s           *Service
37749	project     string
37750	healthCheck string
37751	healthcheck *HealthCheck
37752	urlParams_  gensupport.URLParams
37753	ctx_        context.Context
37754	header_     http.Header
37755}
37756
37757// Patch: Updates a HealthCheck resource in the specified project using
37758// the data included in the request. This method supports PATCH
37759// semantics and uses the JSON merge patch format and processing rules.
37760func (r *HealthChecksService) Patch(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksPatchCall {
37761	c := &HealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37762	c.project = project
37763	c.healthCheck = healthCheck
37764	c.healthcheck = healthcheck
37765	return c
37766}
37767
37768// RequestId sets the optional parameter "requestId": An optional
37769// request ID to identify requests. Specify a unique request ID so that
37770// if you must retry your request, the server will know to ignore the
37771// request if it has already been completed.
37772//
37773// For example, consider a situation where you make an initial request
37774// and the request times out. If you make the request again with the
37775// same request ID, the server can check if original operation with the
37776// same request ID was received, and if so, will ignore the second
37777// request. This prevents clients from accidentally creating duplicate
37778// commitments.
37779//
37780// The request ID must be a valid UUID with the exception that zero UUID
37781// is not supported (00000000-0000-0000-0000-000000000000).
37782func (c *HealthChecksPatchCall) RequestId(requestId string) *HealthChecksPatchCall {
37783	c.urlParams_.Set("requestId", requestId)
37784	return c
37785}
37786
37787// Fields allows partial responses to be retrieved. See
37788// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37789// for more information.
37790func (c *HealthChecksPatchCall) Fields(s ...googleapi.Field) *HealthChecksPatchCall {
37791	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37792	return c
37793}
37794
37795// Context sets the context to be used in this call's Do method. Any
37796// pending HTTP request will be aborted if the provided context is
37797// canceled.
37798func (c *HealthChecksPatchCall) Context(ctx context.Context) *HealthChecksPatchCall {
37799	c.ctx_ = ctx
37800	return c
37801}
37802
37803// Header returns an http.Header that can be modified by the caller to
37804// add HTTP headers to the request.
37805func (c *HealthChecksPatchCall) Header() http.Header {
37806	if c.header_ == nil {
37807		c.header_ = make(http.Header)
37808	}
37809	return c.header_
37810}
37811
37812func (c *HealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
37813	reqHeaders := make(http.Header)
37814	for k, v := range c.header_ {
37815		reqHeaders[k] = v
37816	}
37817	reqHeaders.Set("User-Agent", c.s.userAgent())
37818	var body io.Reader = nil
37819	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
37820	if err != nil {
37821		return nil, err
37822	}
37823	reqHeaders.Set("Content-Type", "application/json")
37824	c.urlParams_.Set("alt", alt)
37825	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
37826	urls += "?" + c.urlParams_.Encode()
37827	req, _ := http.NewRequest("PATCH", urls, body)
37828	req.Header = reqHeaders
37829	googleapi.Expand(req.URL, map[string]string{
37830		"project":     c.project,
37831		"healthCheck": c.healthCheck,
37832	})
37833	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37834}
37835
37836// Do executes the "compute.healthChecks.patch" call.
37837// Exactly one of *Operation or error will be non-nil. Any non-2xx
37838// status code is an error. Response headers are in either
37839// *Operation.ServerResponse.Header or (if a response was returned at
37840// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
37841// to check whether the returned error was because
37842// http.StatusNotModified was returned.
37843func (c *HealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
37844	gensupport.SetOptions(c.urlParams_, opts...)
37845	res, err := c.doRequest("json")
37846	if res != nil && res.StatusCode == http.StatusNotModified {
37847		if res.Body != nil {
37848			res.Body.Close()
37849		}
37850		return nil, &googleapi.Error{
37851			Code:   res.StatusCode,
37852			Header: res.Header,
37853		}
37854	}
37855	if err != nil {
37856		return nil, err
37857	}
37858	defer googleapi.CloseBody(res)
37859	if err := googleapi.CheckResponse(res); err != nil {
37860		return nil, err
37861	}
37862	ret := &Operation{
37863		ServerResponse: googleapi.ServerResponse{
37864			Header:         res.Header,
37865			HTTPStatusCode: res.StatusCode,
37866		},
37867	}
37868	target := &ret
37869	if err := gensupport.DecodeResponse(target, res); err != nil {
37870		return nil, err
37871	}
37872	return ret, nil
37873	// {
37874	//   "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.",
37875	//   "httpMethod": "PATCH",
37876	//   "id": "compute.healthChecks.patch",
37877	//   "parameterOrder": [
37878	//     "project",
37879	//     "healthCheck"
37880	//   ],
37881	//   "parameters": {
37882	//     "healthCheck": {
37883	//       "description": "Name of the HealthCheck resource to patch.",
37884	//       "location": "path",
37885	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
37886	//       "required": true,
37887	//       "type": "string"
37888	//     },
37889	//     "project": {
37890	//       "description": "Project ID for this request.",
37891	//       "location": "path",
37892	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
37893	//       "required": true,
37894	//       "type": "string"
37895	//     },
37896	//     "requestId": {
37897	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
37898	//       "location": "query",
37899	//       "type": "string"
37900	//     }
37901	//   },
37902	//   "path": "{project}/global/healthChecks/{healthCheck}",
37903	//   "request": {
37904	//     "$ref": "HealthCheck"
37905	//   },
37906	//   "response": {
37907	//     "$ref": "Operation"
37908	//   },
37909	//   "scopes": [
37910	//     "https://www.googleapis.com/auth/cloud-platform",
37911	//     "https://www.googleapis.com/auth/compute"
37912	//   ]
37913	// }
37914
37915}
37916
37917// method id "compute.healthChecks.update":
37918
37919type HealthChecksUpdateCall struct {
37920	s           *Service
37921	project     string
37922	healthCheck string
37923	healthcheck *HealthCheck
37924	urlParams_  gensupport.URLParams
37925	ctx_        context.Context
37926	header_     http.Header
37927}
37928
37929// Update: Updates a HealthCheck resource in the specified project using
37930// the data included in the request.
37931func (r *HealthChecksService) Update(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksUpdateCall {
37932	c := &HealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37933	c.project = project
37934	c.healthCheck = healthCheck
37935	c.healthcheck = healthcheck
37936	return c
37937}
37938
37939// RequestId sets the optional parameter "requestId": An optional
37940// request ID to identify requests. Specify a unique request ID so that
37941// if you must retry your request, the server will know to ignore the
37942// request if it has already been completed.
37943//
37944// For example, consider a situation where you make an initial request
37945// and the request times out. If you make the request again with the
37946// same request ID, the server can check if original operation with the
37947// same request ID was received, and if so, will ignore the second
37948// request. This prevents clients from accidentally creating duplicate
37949// commitments.
37950//
37951// The request ID must be a valid UUID with the exception that zero UUID
37952// is not supported (00000000-0000-0000-0000-000000000000).
37953func (c *HealthChecksUpdateCall) RequestId(requestId string) *HealthChecksUpdateCall {
37954	c.urlParams_.Set("requestId", requestId)
37955	return c
37956}
37957
37958// Fields allows partial responses to be retrieved. See
37959// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37960// for more information.
37961func (c *HealthChecksUpdateCall) Fields(s ...googleapi.Field) *HealthChecksUpdateCall {
37962	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37963	return c
37964}
37965
37966// Context sets the context to be used in this call's Do method. Any
37967// pending HTTP request will be aborted if the provided context is
37968// canceled.
37969func (c *HealthChecksUpdateCall) Context(ctx context.Context) *HealthChecksUpdateCall {
37970	c.ctx_ = ctx
37971	return c
37972}
37973
37974// Header returns an http.Header that can be modified by the caller to
37975// add HTTP headers to the request.
37976func (c *HealthChecksUpdateCall) Header() http.Header {
37977	if c.header_ == nil {
37978		c.header_ = make(http.Header)
37979	}
37980	return c.header_
37981}
37982
37983func (c *HealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
37984	reqHeaders := make(http.Header)
37985	for k, v := range c.header_ {
37986		reqHeaders[k] = v
37987	}
37988	reqHeaders.Set("User-Agent", c.s.userAgent())
37989	var body io.Reader = nil
37990	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
37991	if err != nil {
37992		return nil, err
37993	}
37994	reqHeaders.Set("Content-Type", "application/json")
37995	c.urlParams_.Set("alt", alt)
37996	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
37997	urls += "?" + c.urlParams_.Encode()
37998	req, _ := http.NewRequest("PUT", urls, body)
37999	req.Header = reqHeaders
38000	googleapi.Expand(req.URL, map[string]string{
38001		"project":     c.project,
38002		"healthCheck": c.healthCheck,
38003	})
38004	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38005}
38006
38007// Do executes the "compute.healthChecks.update" call.
38008// Exactly one of *Operation or error will be non-nil. Any non-2xx
38009// status code is an error. Response headers are in either
38010// *Operation.ServerResponse.Header or (if a response was returned at
38011// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
38012// to check whether the returned error was because
38013// http.StatusNotModified was returned.
38014func (c *HealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
38015	gensupport.SetOptions(c.urlParams_, opts...)
38016	res, err := c.doRequest("json")
38017	if res != nil && res.StatusCode == http.StatusNotModified {
38018		if res.Body != nil {
38019			res.Body.Close()
38020		}
38021		return nil, &googleapi.Error{
38022			Code:   res.StatusCode,
38023			Header: res.Header,
38024		}
38025	}
38026	if err != nil {
38027		return nil, err
38028	}
38029	defer googleapi.CloseBody(res)
38030	if err := googleapi.CheckResponse(res); err != nil {
38031		return nil, err
38032	}
38033	ret := &Operation{
38034		ServerResponse: googleapi.ServerResponse{
38035			Header:         res.Header,
38036			HTTPStatusCode: res.StatusCode,
38037		},
38038	}
38039	target := &ret
38040	if err := gensupport.DecodeResponse(target, res); err != nil {
38041		return nil, err
38042	}
38043	return ret, nil
38044	// {
38045	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
38046	//   "httpMethod": "PUT",
38047	//   "id": "compute.healthChecks.update",
38048	//   "parameterOrder": [
38049	//     "project",
38050	//     "healthCheck"
38051	//   ],
38052	//   "parameters": {
38053	//     "healthCheck": {
38054	//       "description": "Name of the HealthCheck resource to update.",
38055	//       "location": "path",
38056	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
38057	//       "required": true,
38058	//       "type": "string"
38059	//     },
38060	//     "project": {
38061	//       "description": "Project ID for this request.",
38062	//       "location": "path",
38063	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
38064	//       "required": true,
38065	//       "type": "string"
38066	//     },
38067	//     "requestId": {
38068	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
38069	//       "location": "query",
38070	//       "type": "string"
38071	//     }
38072	//   },
38073	//   "path": "{project}/global/healthChecks/{healthCheck}",
38074	//   "request": {
38075	//     "$ref": "HealthCheck"
38076	//   },
38077	//   "response": {
38078	//     "$ref": "Operation"
38079	//   },
38080	//   "scopes": [
38081	//     "https://www.googleapis.com/auth/cloud-platform",
38082	//     "https://www.googleapis.com/auth/compute"
38083	//   ]
38084	// }
38085
38086}
38087
38088// method id "compute.httpHealthChecks.delete":
38089
38090type HttpHealthChecksDeleteCall struct {
38091	s               *Service
38092	project         string
38093	httpHealthCheck string
38094	urlParams_      gensupport.URLParams
38095	ctx_            context.Context
38096	header_         http.Header
38097}
38098
38099// Delete: Deletes the specified HttpHealthCheck resource.
38100// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/delete
38101func (r *HttpHealthChecksService) Delete(project string, httpHealthCheck string) *HttpHealthChecksDeleteCall {
38102	c := &HttpHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38103	c.project = project
38104	c.httpHealthCheck = httpHealthCheck
38105	return c
38106}
38107
38108// RequestId sets the optional parameter "requestId": An optional
38109// request ID to identify requests. Specify a unique request ID so that
38110// if you must retry your request, the server will know to ignore the
38111// request if it has already been completed.
38112//
38113// For example, consider a situation where you make an initial request
38114// and the request times out. If you make the request again with the
38115// same request ID, the server can check if original operation with the
38116// same request ID was received, and if so, will ignore the second
38117// request. This prevents clients from accidentally creating duplicate
38118// commitments.
38119//
38120// The request ID must be a valid UUID with the exception that zero UUID
38121// is not supported (00000000-0000-0000-0000-000000000000).
38122func (c *HttpHealthChecksDeleteCall) RequestId(requestId string) *HttpHealthChecksDeleteCall {
38123	c.urlParams_.Set("requestId", requestId)
38124	return c
38125}
38126
38127// Fields allows partial responses to be retrieved. See
38128// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38129// for more information.
38130func (c *HttpHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpHealthChecksDeleteCall {
38131	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38132	return c
38133}
38134
38135// Context sets the context to be used in this call's Do method. Any
38136// pending HTTP request will be aborted if the provided context is
38137// canceled.
38138func (c *HttpHealthChecksDeleteCall) Context(ctx context.Context) *HttpHealthChecksDeleteCall {
38139	c.ctx_ = ctx
38140	return c
38141}
38142
38143// Header returns an http.Header that can be modified by the caller to
38144// add HTTP headers to the request.
38145func (c *HttpHealthChecksDeleteCall) Header() http.Header {
38146	if c.header_ == nil {
38147		c.header_ = make(http.Header)
38148	}
38149	return c.header_
38150}
38151
38152func (c *HttpHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
38153	reqHeaders := make(http.Header)
38154	for k, v := range c.header_ {
38155		reqHeaders[k] = v
38156	}
38157	reqHeaders.Set("User-Agent", c.s.userAgent())
38158	var body io.Reader = nil
38159	c.urlParams_.Set("alt", alt)
38160	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
38161	urls += "?" + c.urlParams_.Encode()
38162	req, _ := http.NewRequest("DELETE", urls, body)
38163	req.Header = reqHeaders
38164	googleapi.Expand(req.URL, map[string]string{
38165		"project":         c.project,
38166		"httpHealthCheck": c.httpHealthCheck,
38167	})
38168	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38169}
38170
38171// Do executes the "compute.httpHealthChecks.delete" call.
38172// Exactly one of *Operation or error will be non-nil. Any non-2xx
38173// status code is an error. Response headers are in either
38174// *Operation.ServerResponse.Header or (if a response was returned at
38175// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
38176// to check whether the returned error was because
38177// http.StatusNotModified was returned.
38178func (c *HttpHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
38179	gensupport.SetOptions(c.urlParams_, opts...)
38180	res, err := c.doRequest("json")
38181	if res != nil && res.StatusCode == http.StatusNotModified {
38182		if res.Body != nil {
38183			res.Body.Close()
38184		}
38185		return nil, &googleapi.Error{
38186			Code:   res.StatusCode,
38187			Header: res.Header,
38188		}
38189	}
38190	if err != nil {
38191		return nil, err
38192	}
38193	defer googleapi.CloseBody(res)
38194	if err := googleapi.CheckResponse(res); err != nil {
38195		return nil, err
38196	}
38197	ret := &Operation{
38198		ServerResponse: googleapi.ServerResponse{
38199			Header:         res.Header,
38200			HTTPStatusCode: res.StatusCode,
38201		},
38202	}
38203	target := &ret
38204	if err := gensupport.DecodeResponse(target, res); err != nil {
38205		return nil, err
38206	}
38207	return ret, nil
38208	// {
38209	//   "description": "Deletes the specified HttpHealthCheck resource.",
38210	//   "httpMethod": "DELETE",
38211	//   "id": "compute.httpHealthChecks.delete",
38212	//   "parameterOrder": [
38213	//     "project",
38214	//     "httpHealthCheck"
38215	//   ],
38216	//   "parameters": {
38217	//     "httpHealthCheck": {
38218	//       "description": "Name of the HttpHealthCheck resource to delete.",
38219	//       "location": "path",
38220	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
38221	//       "required": true,
38222	//       "type": "string"
38223	//     },
38224	//     "project": {
38225	//       "description": "Project ID for this request.",
38226	//       "location": "path",
38227	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
38228	//       "required": true,
38229	//       "type": "string"
38230	//     },
38231	//     "requestId": {
38232	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
38233	//       "location": "query",
38234	//       "type": "string"
38235	//     }
38236	//   },
38237	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
38238	//   "response": {
38239	//     "$ref": "Operation"
38240	//   },
38241	//   "scopes": [
38242	//     "https://www.googleapis.com/auth/cloud-platform",
38243	//     "https://www.googleapis.com/auth/compute"
38244	//   ]
38245	// }
38246
38247}
38248
38249// method id "compute.httpHealthChecks.get":
38250
38251type HttpHealthChecksGetCall struct {
38252	s               *Service
38253	project         string
38254	httpHealthCheck string
38255	urlParams_      gensupport.URLParams
38256	ifNoneMatch_    string
38257	ctx_            context.Context
38258	header_         http.Header
38259}
38260
38261// Get: Returns the specified HttpHealthCheck resource. Gets a list of
38262// available HTTP health checks by making a list() request.
38263// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/get
38264func (r *HttpHealthChecksService) Get(project string, httpHealthCheck string) *HttpHealthChecksGetCall {
38265	c := &HttpHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38266	c.project = project
38267	c.httpHealthCheck = httpHealthCheck
38268	return c
38269}
38270
38271// Fields allows partial responses to be retrieved. See
38272// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38273// for more information.
38274func (c *HttpHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpHealthChecksGetCall {
38275	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38276	return c
38277}
38278
38279// IfNoneMatch sets the optional parameter which makes the operation
38280// fail if the object's ETag matches the given value. This is useful for
38281// getting updates only after the object has changed since the last
38282// request. Use googleapi.IsNotModified to check whether the response
38283// error from Do is the result of In-None-Match.
38284func (c *HttpHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpHealthChecksGetCall {
38285	c.ifNoneMatch_ = entityTag
38286	return c
38287}
38288
38289// Context sets the context to be used in this call's Do method. Any
38290// pending HTTP request will be aborted if the provided context is
38291// canceled.
38292func (c *HttpHealthChecksGetCall) Context(ctx context.Context) *HttpHealthChecksGetCall {
38293	c.ctx_ = ctx
38294	return c
38295}
38296
38297// Header returns an http.Header that can be modified by the caller to
38298// add HTTP headers to the request.
38299func (c *HttpHealthChecksGetCall) Header() http.Header {
38300	if c.header_ == nil {
38301		c.header_ = make(http.Header)
38302	}
38303	return c.header_
38304}
38305
38306func (c *HttpHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
38307	reqHeaders := make(http.Header)
38308	for k, v := range c.header_ {
38309		reqHeaders[k] = v
38310	}
38311	reqHeaders.Set("User-Agent", c.s.userAgent())
38312	if c.ifNoneMatch_ != "" {
38313		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
38314	}
38315	var body io.Reader = nil
38316	c.urlParams_.Set("alt", alt)
38317	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
38318	urls += "?" + c.urlParams_.Encode()
38319	req, _ := http.NewRequest("GET", urls, body)
38320	req.Header = reqHeaders
38321	googleapi.Expand(req.URL, map[string]string{
38322		"project":         c.project,
38323		"httpHealthCheck": c.httpHealthCheck,
38324	})
38325	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38326}
38327
38328// Do executes the "compute.httpHealthChecks.get" call.
38329// Exactly one of *HttpHealthCheck or error will be non-nil. Any non-2xx
38330// status code is an error. Response headers are in either
38331// *HttpHealthCheck.ServerResponse.Header or (if a response was returned
38332// at all) in error.(*googleapi.Error).Header. Use
38333// googleapi.IsNotModified to check whether the returned error was
38334// because http.StatusNotModified was returned.
38335func (c *HttpHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheck, error) {
38336	gensupport.SetOptions(c.urlParams_, opts...)
38337	res, err := c.doRequest("json")
38338	if res != nil && res.StatusCode == http.StatusNotModified {
38339		if res.Body != nil {
38340			res.Body.Close()
38341		}
38342		return nil, &googleapi.Error{
38343			Code:   res.StatusCode,
38344			Header: res.Header,
38345		}
38346	}
38347	if err != nil {
38348		return nil, err
38349	}
38350	defer googleapi.CloseBody(res)
38351	if err := googleapi.CheckResponse(res); err != nil {
38352		return nil, err
38353	}
38354	ret := &HttpHealthCheck{
38355		ServerResponse: googleapi.ServerResponse{
38356			Header:         res.Header,
38357			HTTPStatusCode: res.StatusCode,
38358		},
38359	}
38360	target := &ret
38361	if err := gensupport.DecodeResponse(target, res); err != nil {
38362		return nil, err
38363	}
38364	return ret, nil
38365	// {
38366	//   "description": "Returns the specified HttpHealthCheck resource. Gets a list of available HTTP health checks by making a list() request.",
38367	//   "httpMethod": "GET",
38368	//   "id": "compute.httpHealthChecks.get",
38369	//   "parameterOrder": [
38370	//     "project",
38371	//     "httpHealthCheck"
38372	//   ],
38373	//   "parameters": {
38374	//     "httpHealthCheck": {
38375	//       "description": "Name of the HttpHealthCheck resource to return.",
38376	//       "location": "path",
38377	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
38378	//       "required": true,
38379	//       "type": "string"
38380	//     },
38381	//     "project": {
38382	//       "description": "Project ID for this request.",
38383	//       "location": "path",
38384	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
38385	//       "required": true,
38386	//       "type": "string"
38387	//     }
38388	//   },
38389	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
38390	//   "response": {
38391	//     "$ref": "HttpHealthCheck"
38392	//   },
38393	//   "scopes": [
38394	//     "https://www.googleapis.com/auth/cloud-platform",
38395	//     "https://www.googleapis.com/auth/compute",
38396	//     "https://www.googleapis.com/auth/compute.readonly"
38397	//   ]
38398	// }
38399
38400}
38401
38402// method id "compute.httpHealthChecks.insert":
38403
38404type HttpHealthChecksInsertCall struct {
38405	s               *Service
38406	project         string
38407	httphealthcheck *HttpHealthCheck
38408	urlParams_      gensupport.URLParams
38409	ctx_            context.Context
38410	header_         http.Header
38411}
38412
38413// Insert: Creates a HttpHealthCheck resource in the specified project
38414// using the data included in the request.
38415// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/insert
38416func (r *HttpHealthChecksService) Insert(project string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksInsertCall {
38417	c := &HttpHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38418	c.project = project
38419	c.httphealthcheck = httphealthcheck
38420	return c
38421}
38422
38423// RequestId sets the optional parameter "requestId": An optional
38424// request ID to identify requests. Specify a unique request ID so that
38425// if you must retry your request, the server will know to ignore the
38426// request if it has already been completed.
38427//
38428// For example, consider a situation where you make an initial request
38429// and the request times out. If you make the request again with the
38430// same request ID, the server can check if original operation with the
38431// same request ID was received, and if so, will ignore the second
38432// request. This prevents clients from accidentally creating duplicate
38433// commitments.
38434//
38435// The request ID must be a valid UUID with the exception that zero UUID
38436// is not supported (00000000-0000-0000-0000-000000000000).
38437func (c *HttpHealthChecksInsertCall) RequestId(requestId string) *HttpHealthChecksInsertCall {
38438	c.urlParams_.Set("requestId", requestId)
38439	return c
38440}
38441
38442// Fields allows partial responses to be retrieved. See
38443// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38444// for more information.
38445func (c *HttpHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpHealthChecksInsertCall {
38446	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38447	return c
38448}
38449
38450// Context sets the context to be used in this call's Do method. Any
38451// pending HTTP request will be aborted if the provided context is
38452// canceled.
38453func (c *HttpHealthChecksInsertCall) Context(ctx context.Context) *HttpHealthChecksInsertCall {
38454	c.ctx_ = ctx
38455	return c
38456}
38457
38458// Header returns an http.Header that can be modified by the caller to
38459// add HTTP headers to the request.
38460func (c *HttpHealthChecksInsertCall) Header() http.Header {
38461	if c.header_ == nil {
38462		c.header_ = make(http.Header)
38463	}
38464	return c.header_
38465}
38466
38467func (c *HttpHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
38468	reqHeaders := make(http.Header)
38469	for k, v := range c.header_ {
38470		reqHeaders[k] = v
38471	}
38472	reqHeaders.Set("User-Agent", c.s.userAgent())
38473	var body io.Reader = nil
38474	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
38475	if err != nil {
38476		return nil, err
38477	}
38478	reqHeaders.Set("Content-Type", "application/json")
38479	c.urlParams_.Set("alt", alt)
38480	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks")
38481	urls += "?" + c.urlParams_.Encode()
38482	req, _ := http.NewRequest("POST", urls, body)
38483	req.Header = reqHeaders
38484	googleapi.Expand(req.URL, map[string]string{
38485		"project": c.project,
38486	})
38487	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38488}
38489
38490// Do executes the "compute.httpHealthChecks.insert" call.
38491// Exactly one of *Operation or error will be non-nil. Any non-2xx
38492// status code is an error. Response headers are in either
38493// *Operation.ServerResponse.Header or (if a response was returned at
38494// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
38495// to check whether the returned error was because
38496// http.StatusNotModified was returned.
38497func (c *HttpHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
38498	gensupport.SetOptions(c.urlParams_, opts...)
38499	res, err := c.doRequest("json")
38500	if res != nil && res.StatusCode == http.StatusNotModified {
38501		if res.Body != nil {
38502			res.Body.Close()
38503		}
38504		return nil, &googleapi.Error{
38505			Code:   res.StatusCode,
38506			Header: res.Header,
38507		}
38508	}
38509	if err != nil {
38510		return nil, err
38511	}
38512	defer googleapi.CloseBody(res)
38513	if err := googleapi.CheckResponse(res); err != nil {
38514		return nil, err
38515	}
38516	ret := &Operation{
38517		ServerResponse: googleapi.ServerResponse{
38518			Header:         res.Header,
38519			HTTPStatusCode: res.StatusCode,
38520		},
38521	}
38522	target := &ret
38523	if err := gensupport.DecodeResponse(target, res); err != nil {
38524		return nil, err
38525	}
38526	return ret, nil
38527	// {
38528	//   "description": "Creates a HttpHealthCheck resource in the specified project using the data included in the request.",
38529	//   "httpMethod": "POST",
38530	//   "id": "compute.httpHealthChecks.insert",
38531	//   "parameterOrder": [
38532	//     "project"
38533	//   ],
38534	//   "parameters": {
38535	//     "project": {
38536	//       "description": "Project ID for this request.",
38537	//       "location": "path",
38538	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
38539	//       "required": true,
38540	//       "type": "string"
38541	//     },
38542	//     "requestId": {
38543	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
38544	//       "location": "query",
38545	//       "type": "string"
38546	//     }
38547	//   },
38548	//   "path": "{project}/global/httpHealthChecks",
38549	//   "request": {
38550	//     "$ref": "HttpHealthCheck"
38551	//   },
38552	//   "response": {
38553	//     "$ref": "Operation"
38554	//   },
38555	//   "scopes": [
38556	//     "https://www.googleapis.com/auth/cloud-platform",
38557	//     "https://www.googleapis.com/auth/compute"
38558	//   ]
38559	// }
38560
38561}
38562
38563// method id "compute.httpHealthChecks.list":
38564
38565type HttpHealthChecksListCall struct {
38566	s            *Service
38567	project      string
38568	urlParams_   gensupport.URLParams
38569	ifNoneMatch_ string
38570	ctx_         context.Context
38571	header_      http.Header
38572}
38573
38574// List: Retrieves the list of HttpHealthCheck resources available to
38575// the specified project.
38576// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/list
38577func (r *HttpHealthChecksService) List(project string) *HttpHealthChecksListCall {
38578	c := &HttpHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38579	c.project = project
38580	return c
38581}
38582
38583// Filter sets the optional parameter "filter": A filter expression that
38584// filters resources listed in the response. The expression must specify
38585// the field name, a comparison operator, and the value that you want to
38586// use for filtering. The value must be a string, a number, or a
38587// boolean. The comparison operator must be either =, !=, >, or <.
38588//
38589// For example, if you are filtering Compute Engine instances, you can
38590// exclude instances named example-instance by specifying name !=
38591// example-instance.
38592//
38593// You can also filter nested fields. For example, you could specify
38594// scheduling.automaticRestart = false to include instances only if they
38595// are not scheduled for automatic restarts. You can use filtering on
38596// nested fields to filter based on resource labels.
38597//
38598// To filter on multiple expressions, provide each separate expression
38599// within parentheses. For example, (scheduling.automaticRestart = true)
38600// (cpuPlatform = "Intel Skylake"). By default, each expression is an
38601// AND expression. However, you can include AND and OR expressions
38602// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
38603// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
38604// true).
38605func (c *HttpHealthChecksListCall) Filter(filter string) *HttpHealthChecksListCall {
38606	c.urlParams_.Set("filter", filter)
38607	return c
38608}
38609
38610// MaxResults sets the optional parameter "maxResults": The maximum
38611// number of results per page that should be returned. If the number of
38612// available results is larger than maxResults, Compute Engine returns a
38613// nextPageToken that can be used to get the next page of results in
38614// subsequent list requests. Acceptable values are 0 to 500, inclusive.
38615// (Default: 500)
38616func (c *HttpHealthChecksListCall) MaxResults(maxResults int64) *HttpHealthChecksListCall {
38617	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
38618	return c
38619}
38620
38621// OrderBy sets the optional parameter "orderBy": Sorts list results by
38622// a certain order. By default, results are returned in alphanumerical
38623// order based on the resource name.
38624//
38625// You can also sort results in descending order based on the creation
38626// timestamp using orderBy="creationTimestamp desc". This sorts results
38627// based on the creationTimestamp field in reverse chronological order
38628// (newest result first). Use this to sort resources like operations so
38629// that the newest operation is returned first.
38630//
38631// Currently, only sorting by name or creationTimestamp desc is
38632// supported.
38633func (c *HttpHealthChecksListCall) OrderBy(orderBy string) *HttpHealthChecksListCall {
38634	c.urlParams_.Set("orderBy", orderBy)
38635	return c
38636}
38637
38638// PageToken sets the optional parameter "pageToken": Specifies a page
38639// token to use. Set pageToken to the nextPageToken returned by a
38640// previous list request to get the next page of results.
38641func (c *HttpHealthChecksListCall) PageToken(pageToken string) *HttpHealthChecksListCall {
38642	c.urlParams_.Set("pageToken", pageToken)
38643	return c
38644}
38645
38646// Fields allows partial responses to be retrieved. See
38647// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38648// for more information.
38649func (c *HttpHealthChecksListCall) Fields(s ...googleapi.Field) *HttpHealthChecksListCall {
38650	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38651	return c
38652}
38653
38654// IfNoneMatch sets the optional parameter which makes the operation
38655// fail if the object's ETag matches the given value. This is useful for
38656// getting updates only after the object has changed since the last
38657// request. Use googleapi.IsNotModified to check whether the response
38658// error from Do is the result of In-None-Match.
38659func (c *HttpHealthChecksListCall) IfNoneMatch(entityTag string) *HttpHealthChecksListCall {
38660	c.ifNoneMatch_ = entityTag
38661	return c
38662}
38663
38664// Context sets the context to be used in this call's Do method. Any
38665// pending HTTP request will be aborted if the provided context is
38666// canceled.
38667func (c *HttpHealthChecksListCall) Context(ctx context.Context) *HttpHealthChecksListCall {
38668	c.ctx_ = ctx
38669	return c
38670}
38671
38672// Header returns an http.Header that can be modified by the caller to
38673// add HTTP headers to the request.
38674func (c *HttpHealthChecksListCall) Header() http.Header {
38675	if c.header_ == nil {
38676		c.header_ = make(http.Header)
38677	}
38678	return c.header_
38679}
38680
38681func (c *HttpHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
38682	reqHeaders := make(http.Header)
38683	for k, v := range c.header_ {
38684		reqHeaders[k] = v
38685	}
38686	reqHeaders.Set("User-Agent", c.s.userAgent())
38687	if c.ifNoneMatch_ != "" {
38688		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
38689	}
38690	var body io.Reader = nil
38691	c.urlParams_.Set("alt", alt)
38692	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks")
38693	urls += "?" + c.urlParams_.Encode()
38694	req, _ := http.NewRequest("GET", urls, body)
38695	req.Header = reqHeaders
38696	googleapi.Expand(req.URL, map[string]string{
38697		"project": c.project,
38698	})
38699	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38700}
38701
38702// Do executes the "compute.httpHealthChecks.list" call.
38703// Exactly one of *HttpHealthCheckList or error will be non-nil. Any
38704// non-2xx status code is an error. Response headers are in either
38705// *HttpHealthCheckList.ServerResponse.Header or (if a response was
38706// returned at all) in error.(*googleapi.Error).Header. Use
38707// googleapi.IsNotModified to check whether the returned error was
38708// because http.StatusNotModified was returned.
38709func (c *HttpHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheckList, error) {
38710	gensupport.SetOptions(c.urlParams_, opts...)
38711	res, err := c.doRequest("json")
38712	if res != nil && res.StatusCode == http.StatusNotModified {
38713		if res.Body != nil {
38714			res.Body.Close()
38715		}
38716		return nil, &googleapi.Error{
38717			Code:   res.StatusCode,
38718			Header: res.Header,
38719		}
38720	}
38721	if err != nil {
38722		return nil, err
38723	}
38724	defer googleapi.CloseBody(res)
38725	if err := googleapi.CheckResponse(res); err != nil {
38726		return nil, err
38727	}
38728	ret := &HttpHealthCheckList{
38729		ServerResponse: googleapi.ServerResponse{
38730			Header:         res.Header,
38731			HTTPStatusCode: res.StatusCode,
38732		},
38733	}
38734	target := &ret
38735	if err := gensupport.DecodeResponse(target, res); err != nil {
38736		return nil, err
38737	}
38738	return ret, nil
38739	// {
38740	//   "description": "Retrieves the list of HttpHealthCheck resources available to the specified project.",
38741	//   "httpMethod": "GET",
38742	//   "id": "compute.httpHealthChecks.list",
38743	//   "parameterOrder": [
38744	//     "project"
38745	//   ],
38746	//   "parameters": {
38747	//     "filter": {
38748	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
38749	//       "location": "query",
38750	//       "type": "string"
38751	//     },
38752	//     "maxResults": {
38753	//       "default": "500",
38754	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
38755	//       "format": "uint32",
38756	//       "location": "query",
38757	//       "minimum": "0",
38758	//       "type": "integer"
38759	//     },
38760	//     "orderBy": {
38761	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
38762	//       "location": "query",
38763	//       "type": "string"
38764	//     },
38765	//     "pageToken": {
38766	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
38767	//       "location": "query",
38768	//       "type": "string"
38769	//     },
38770	//     "project": {
38771	//       "description": "Project ID for this request.",
38772	//       "location": "path",
38773	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
38774	//       "required": true,
38775	//       "type": "string"
38776	//     }
38777	//   },
38778	//   "path": "{project}/global/httpHealthChecks",
38779	//   "response": {
38780	//     "$ref": "HttpHealthCheckList"
38781	//   },
38782	//   "scopes": [
38783	//     "https://www.googleapis.com/auth/cloud-platform",
38784	//     "https://www.googleapis.com/auth/compute",
38785	//     "https://www.googleapis.com/auth/compute.readonly"
38786	//   ]
38787	// }
38788
38789}
38790
38791// Pages invokes f for each page of results.
38792// A non-nil error returned from f will halt the iteration.
38793// The provided context supersedes any context provided to the Context method.
38794func (c *HttpHealthChecksListCall) Pages(ctx context.Context, f func(*HttpHealthCheckList) error) error {
38795	c.ctx_ = ctx
38796	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
38797	for {
38798		x, err := c.Do()
38799		if err != nil {
38800			return err
38801		}
38802		if err := f(x); err != nil {
38803			return err
38804		}
38805		if x.NextPageToken == "" {
38806			return nil
38807		}
38808		c.PageToken(x.NextPageToken)
38809	}
38810}
38811
38812// method id "compute.httpHealthChecks.patch":
38813
38814type HttpHealthChecksPatchCall struct {
38815	s               *Service
38816	project         string
38817	httpHealthCheck string
38818	httphealthcheck *HttpHealthCheck
38819	urlParams_      gensupport.URLParams
38820	ctx_            context.Context
38821	header_         http.Header
38822}
38823
38824// Patch: Updates a HttpHealthCheck resource in the specified project
38825// using the data included in the request. This method supports PATCH
38826// semantics and uses the JSON merge patch format and processing rules.
38827// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/patch
38828func (r *HttpHealthChecksService) Patch(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksPatchCall {
38829	c := &HttpHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38830	c.project = project
38831	c.httpHealthCheck = httpHealthCheck
38832	c.httphealthcheck = httphealthcheck
38833	return c
38834}
38835
38836// RequestId sets the optional parameter "requestId": An optional
38837// request ID to identify requests. Specify a unique request ID so that
38838// if you must retry your request, the server will know to ignore the
38839// request if it has already been completed.
38840//
38841// For example, consider a situation where you make an initial request
38842// and the request times out. If you make the request again with the
38843// same request ID, the server can check if original operation with the
38844// same request ID was received, and if so, will ignore the second
38845// request. This prevents clients from accidentally creating duplicate
38846// commitments.
38847//
38848// The request ID must be a valid UUID with the exception that zero UUID
38849// is not supported (00000000-0000-0000-0000-000000000000).
38850func (c *HttpHealthChecksPatchCall) RequestId(requestId string) *HttpHealthChecksPatchCall {
38851	c.urlParams_.Set("requestId", requestId)
38852	return c
38853}
38854
38855// Fields allows partial responses to be retrieved. See
38856// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38857// for more information.
38858func (c *HttpHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpHealthChecksPatchCall {
38859	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38860	return c
38861}
38862
38863// Context sets the context to be used in this call's Do method. Any
38864// pending HTTP request will be aborted if the provided context is
38865// canceled.
38866func (c *HttpHealthChecksPatchCall) Context(ctx context.Context) *HttpHealthChecksPatchCall {
38867	c.ctx_ = ctx
38868	return c
38869}
38870
38871// Header returns an http.Header that can be modified by the caller to
38872// add HTTP headers to the request.
38873func (c *HttpHealthChecksPatchCall) Header() http.Header {
38874	if c.header_ == nil {
38875		c.header_ = make(http.Header)
38876	}
38877	return c.header_
38878}
38879
38880func (c *HttpHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
38881	reqHeaders := make(http.Header)
38882	for k, v := range c.header_ {
38883		reqHeaders[k] = v
38884	}
38885	reqHeaders.Set("User-Agent", c.s.userAgent())
38886	var body io.Reader = nil
38887	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
38888	if err != nil {
38889		return nil, err
38890	}
38891	reqHeaders.Set("Content-Type", "application/json")
38892	c.urlParams_.Set("alt", alt)
38893	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
38894	urls += "?" + c.urlParams_.Encode()
38895	req, _ := http.NewRequest("PATCH", urls, body)
38896	req.Header = reqHeaders
38897	googleapi.Expand(req.URL, map[string]string{
38898		"project":         c.project,
38899		"httpHealthCheck": c.httpHealthCheck,
38900	})
38901	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38902}
38903
38904// Do executes the "compute.httpHealthChecks.patch" call.
38905// Exactly one of *Operation or error will be non-nil. Any non-2xx
38906// status code is an error. Response headers are in either
38907// *Operation.ServerResponse.Header or (if a response was returned at
38908// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
38909// to check whether the returned error was because
38910// http.StatusNotModified was returned.
38911func (c *HttpHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
38912	gensupport.SetOptions(c.urlParams_, opts...)
38913	res, err := c.doRequest("json")
38914	if res != nil && res.StatusCode == http.StatusNotModified {
38915		if res.Body != nil {
38916			res.Body.Close()
38917		}
38918		return nil, &googleapi.Error{
38919			Code:   res.StatusCode,
38920			Header: res.Header,
38921		}
38922	}
38923	if err != nil {
38924		return nil, err
38925	}
38926	defer googleapi.CloseBody(res)
38927	if err := googleapi.CheckResponse(res); err != nil {
38928		return nil, err
38929	}
38930	ret := &Operation{
38931		ServerResponse: googleapi.ServerResponse{
38932			Header:         res.Header,
38933			HTTPStatusCode: res.StatusCode,
38934		},
38935	}
38936	target := &ret
38937	if err := gensupport.DecodeResponse(target, res); err != nil {
38938		return nil, err
38939	}
38940	return ret, nil
38941	// {
38942	//   "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.",
38943	//   "httpMethod": "PATCH",
38944	//   "id": "compute.httpHealthChecks.patch",
38945	//   "parameterOrder": [
38946	//     "project",
38947	//     "httpHealthCheck"
38948	//   ],
38949	//   "parameters": {
38950	//     "httpHealthCheck": {
38951	//       "description": "Name of the HttpHealthCheck resource to patch.",
38952	//       "location": "path",
38953	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
38954	//       "required": true,
38955	//       "type": "string"
38956	//     },
38957	//     "project": {
38958	//       "description": "Project ID for this request.",
38959	//       "location": "path",
38960	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
38961	//       "required": true,
38962	//       "type": "string"
38963	//     },
38964	//     "requestId": {
38965	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
38966	//       "location": "query",
38967	//       "type": "string"
38968	//     }
38969	//   },
38970	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
38971	//   "request": {
38972	//     "$ref": "HttpHealthCheck"
38973	//   },
38974	//   "response": {
38975	//     "$ref": "Operation"
38976	//   },
38977	//   "scopes": [
38978	//     "https://www.googleapis.com/auth/cloud-platform",
38979	//     "https://www.googleapis.com/auth/compute"
38980	//   ]
38981	// }
38982
38983}
38984
38985// method id "compute.httpHealthChecks.update":
38986
38987type HttpHealthChecksUpdateCall struct {
38988	s               *Service
38989	project         string
38990	httpHealthCheck string
38991	httphealthcheck *HttpHealthCheck
38992	urlParams_      gensupport.URLParams
38993	ctx_            context.Context
38994	header_         http.Header
38995}
38996
38997// Update: Updates a HttpHealthCheck resource in the specified project
38998// using the data included in the request.
38999// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/update
39000func (r *HttpHealthChecksService) Update(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksUpdateCall {
39001	c := &HttpHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39002	c.project = project
39003	c.httpHealthCheck = httpHealthCheck
39004	c.httphealthcheck = httphealthcheck
39005	return c
39006}
39007
39008// RequestId sets the optional parameter "requestId": An optional
39009// request ID to identify requests. Specify a unique request ID so that
39010// if you must retry your request, the server will know to ignore the
39011// request if it has already been completed.
39012//
39013// For example, consider a situation where you make an initial request
39014// and the request times out. If you make the request again with the
39015// same request ID, the server can check if original operation with the
39016// same request ID was received, and if so, will ignore the second
39017// request. This prevents clients from accidentally creating duplicate
39018// commitments.
39019//
39020// The request ID must be a valid UUID with the exception that zero UUID
39021// is not supported (00000000-0000-0000-0000-000000000000).
39022func (c *HttpHealthChecksUpdateCall) RequestId(requestId string) *HttpHealthChecksUpdateCall {
39023	c.urlParams_.Set("requestId", requestId)
39024	return c
39025}
39026
39027// Fields allows partial responses to be retrieved. See
39028// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39029// for more information.
39030func (c *HttpHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpHealthChecksUpdateCall {
39031	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39032	return c
39033}
39034
39035// Context sets the context to be used in this call's Do method. Any
39036// pending HTTP request will be aborted if the provided context is
39037// canceled.
39038func (c *HttpHealthChecksUpdateCall) Context(ctx context.Context) *HttpHealthChecksUpdateCall {
39039	c.ctx_ = ctx
39040	return c
39041}
39042
39043// Header returns an http.Header that can be modified by the caller to
39044// add HTTP headers to the request.
39045func (c *HttpHealthChecksUpdateCall) Header() http.Header {
39046	if c.header_ == nil {
39047		c.header_ = make(http.Header)
39048	}
39049	return c.header_
39050}
39051
39052func (c *HttpHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
39053	reqHeaders := make(http.Header)
39054	for k, v := range c.header_ {
39055		reqHeaders[k] = v
39056	}
39057	reqHeaders.Set("User-Agent", c.s.userAgent())
39058	var body io.Reader = nil
39059	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
39060	if err != nil {
39061		return nil, err
39062	}
39063	reqHeaders.Set("Content-Type", "application/json")
39064	c.urlParams_.Set("alt", alt)
39065	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
39066	urls += "?" + c.urlParams_.Encode()
39067	req, _ := http.NewRequest("PUT", urls, body)
39068	req.Header = reqHeaders
39069	googleapi.Expand(req.URL, map[string]string{
39070		"project":         c.project,
39071		"httpHealthCheck": c.httpHealthCheck,
39072	})
39073	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39074}
39075
39076// Do executes the "compute.httpHealthChecks.update" call.
39077// Exactly one of *Operation or error will be non-nil. Any non-2xx
39078// status code is an error. Response headers are in either
39079// *Operation.ServerResponse.Header or (if a response was returned at
39080// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
39081// to check whether the returned error was because
39082// http.StatusNotModified was returned.
39083func (c *HttpHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
39084	gensupport.SetOptions(c.urlParams_, opts...)
39085	res, err := c.doRequest("json")
39086	if res != nil && res.StatusCode == http.StatusNotModified {
39087		if res.Body != nil {
39088			res.Body.Close()
39089		}
39090		return nil, &googleapi.Error{
39091			Code:   res.StatusCode,
39092			Header: res.Header,
39093		}
39094	}
39095	if err != nil {
39096		return nil, err
39097	}
39098	defer googleapi.CloseBody(res)
39099	if err := googleapi.CheckResponse(res); err != nil {
39100		return nil, err
39101	}
39102	ret := &Operation{
39103		ServerResponse: googleapi.ServerResponse{
39104			Header:         res.Header,
39105			HTTPStatusCode: res.StatusCode,
39106		},
39107	}
39108	target := &ret
39109	if err := gensupport.DecodeResponse(target, res); err != nil {
39110		return nil, err
39111	}
39112	return ret, nil
39113	// {
39114	//   "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request.",
39115	//   "httpMethod": "PUT",
39116	//   "id": "compute.httpHealthChecks.update",
39117	//   "parameterOrder": [
39118	//     "project",
39119	//     "httpHealthCheck"
39120	//   ],
39121	//   "parameters": {
39122	//     "httpHealthCheck": {
39123	//       "description": "Name of the HttpHealthCheck resource to update.",
39124	//       "location": "path",
39125	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
39126	//       "required": true,
39127	//       "type": "string"
39128	//     },
39129	//     "project": {
39130	//       "description": "Project ID for this request.",
39131	//       "location": "path",
39132	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
39133	//       "required": true,
39134	//       "type": "string"
39135	//     },
39136	//     "requestId": {
39137	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
39138	//       "location": "query",
39139	//       "type": "string"
39140	//     }
39141	//   },
39142	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
39143	//   "request": {
39144	//     "$ref": "HttpHealthCheck"
39145	//   },
39146	//   "response": {
39147	//     "$ref": "Operation"
39148	//   },
39149	//   "scopes": [
39150	//     "https://www.googleapis.com/auth/cloud-platform",
39151	//     "https://www.googleapis.com/auth/compute"
39152	//   ]
39153	// }
39154
39155}
39156
39157// method id "compute.httpsHealthChecks.delete":
39158
39159type HttpsHealthChecksDeleteCall struct {
39160	s                *Service
39161	project          string
39162	httpsHealthCheck string
39163	urlParams_       gensupport.URLParams
39164	ctx_             context.Context
39165	header_          http.Header
39166}
39167
39168// Delete: Deletes the specified HttpsHealthCheck resource.
39169func (r *HttpsHealthChecksService) Delete(project string, httpsHealthCheck string) *HttpsHealthChecksDeleteCall {
39170	c := &HttpsHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39171	c.project = project
39172	c.httpsHealthCheck = httpsHealthCheck
39173	return c
39174}
39175
39176// RequestId sets the optional parameter "requestId": An optional
39177// request ID to identify requests. Specify a unique request ID so that
39178// if you must retry your request, the server will know to ignore the
39179// request if it has already been completed.
39180//
39181// For example, consider a situation where you make an initial request
39182// and the request times out. If you make the request again with the
39183// same request ID, the server can check if original operation with the
39184// same request ID was received, and if so, will ignore the second
39185// request. This prevents clients from accidentally creating duplicate
39186// commitments.
39187//
39188// The request ID must be a valid UUID with the exception that zero UUID
39189// is not supported (00000000-0000-0000-0000-000000000000).
39190func (c *HttpsHealthChecksDeleteCall) RequestId(requestId string) *HttpsHealthChecksDeleteCall {
39191	c.urlParams_.Set("requestId", requestId)
39192	return c
39193}
39194
39195// Fields allows partial responses to be retrieved. See
39196// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39197// for more information.
39198func (c *HttpsHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpsHealthChecksDeleteCall {
39199	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39200	return c
39201}
39202
39203// Context sets the context to be used in this call's Do method. Any
39204// pending HTTP request will be aborted if the provided context is
39205// canceled.
39206func (c *HttpsHealthChecksDeleteCall) Context(ctx context.Context) *HttpsHealthChecksDeleteCall {
39207	c.ctx_ = ctx
39208	return c
39209}
39210
39211// Header returns an http.Header that can be modified by the caller to
39212// add HTTP headers to the request.
39213func (c *HttpsHealthChecksDeleteCall) Header() http.Header {
39214	if c.header_ == nil {
39215		c.header_ = make(http.Header)
39216	}
39217	return c.header_
39218}
39219
39220func (c *HttpsHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
39221	reqHeaders := make(http.Header)
39222	for k, v := range c.header_ {
39223		reqHeaders[k] = v
39224	}
39225	reqHeaders.Set("User-Agent", c.s.userAgent())
39226	var body io.Reader = nil
39227	c.urlParams_.Set("alt", alt)
39228	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
39229	urls += "?" + c.urlParams_.Encode()
39230	req, _ := http.NewRequest("DELETE", urls, body)
39231	req.Header = reqHeaders
39232	googleapi.Expand(req.URL, map[string]string{
39233		"project":          c.project,
39234		"httpsHealthCheck": c.httpsHealthCheck,
39235	})
39236	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39237}
39238
39239// Do executes the "compute.httpsHealthChecks.delete" call.
39240// Exactly one of *Operation or error will be non-nil. Any non-2xx
39241// status code is an error. Response headers are in either
39242// *Operation.ServerResponse.Header or (if a response was returned at
39243// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
39244// to check whether the returned error was because
39245// http.StatusNotModified was returned.
39246func (c *HttpsHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
39247	gensupport.SetOptions(c.urlParams_, opts...)
39248	res, err := c.doRequest("json")
39249	if res != nil && res.StatusCode == http.StatusNotModified {
39250		if res.Body != nil {
39251			res.Body.Close()
39252		}
39253		return nil, &googleapi.Error{
39254			Code:   res.StatusCode,
39255			Header: res.Header,
39256		}
39257	}
39258	if err != nil {
39259		return nil, err
39260	}
39261	defer googleapi.CloseBody(res)
39262	if err := googleapi.CheckResponse(res); err != nil {
39263		return nil, err
39264	}
39265	ret := &Operation{
39266		ServerResponse: googleapi.ServerResponse{
39267			Header:         res.Header,
39268			HTTPStatusCode: res.StatusCode,
39269		},
39270	}
39271	target := &ret
39272	if err := gensupport.DecodeResponse(target, res); err != nil {
39273		return nil, err
39274	}
39275	return ret, nil
39276	// {
39277	//   "description": "Deletes the specified HttpsHealthCheck resource.",
39278	//   "httpMethod": "DELETE",
39279	//   "id": "compute.httpsHealthChecks.delete",
39280	//   "parameterOrder": [
39281	//     "project",
39282	//     "httpsHealthCheck"
39283	//   ],
39284	//   "parameters": {
39285	//     "httpsHealthCheck": {
39286	//       "description": "Name of the HttpsHealthCheck resource to delete.",
39287	//       "location": "path",
39288	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
39289	//       "required": true,
39290	//       "type": "string"
39291	//     },
39292	//     "project": {
39293	//       "description": "Project ID for this request.",
39294	//       "location": "path",
39295	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
39296	//       "required": true,
39297	//       "type": "string"
39298	//     },
39299	//     "requestId": {
39300	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
39301	//       "location": "query",
39302	//       "type": "string"
39303	//     }
39304	//   },
39305	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
39306	//   "response": {
39307	//     "$ref": "Operation"
39308	//   },
39309	//   "scopes": [
39310	//     "https://www.googleapis.com/auth/cloud-platform",
39311	//     "https://www.googleapis.com/auth/compute"
39312	//   ]
39313	// }
39314
39315}
39316
39317// method id "compute.httpsHealthChecks.get":
39318
39319type HttpsHealthChecksGetCall struct {
39320	s                *Service
39321	project          string
39322	httpsHealthCheck string
39323	urlParams_       gensupport.URLParams
39324	ifNoneMatch_     string
39325	ctx_             context.Context
39326	header_          http.Header
39327}
39328
39329// Get: Returns the specified HttpsHealthCheck resource. Gets a list of
39330// available HTTPS health checks by making a list() request.
39331func (r *HttpsHealthChecksService) Get(project string, httpsHealthCheck string) *HttpsHealthChecksGetCall {
39332	c := &HttpsHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39333	c.project = project
39334	c.httpsHealthCheck = httpsHealthCheck
39335	return c
39336}
39337
39338// Fields allows partial responses to be retrieved. See
39339// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39340// for more information.
39341func (c *HttpsHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpsHealthChecksGetCall {
39342	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39343	return c
39344}
39345
39346// IfNoneMatch sets the optional parameter which makes the operation
39347// fail if the object's ETag matches the given value. This is useful for
39348// getting updates only after the object has changed since the last
39349// request. Use googleapi.IsNotModified to check whether the response
39350// error from Do is the result of In-None-Match.
39351func (c *HttpsHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpsHealthChecksGetCall {
39352	c.ifNoneMatch_ = entityTag
39353	return c
39354}
39355
39356// Context sets the context to be used in this call's Do method. Any
39357// pending HTTP request will be aborted if the provided context is
39358// canceled.
39359func (c *HttpsHealthChecksGetCall) Context(ctx context.Context) *HttpsHealthChecksGetCall {
39360	c.ctx_ = ctx
39361	return c
39362}
39363
39364// Header returns an http.Header that can be modified by the caller to
39365// add HTTP headers to the request.
39366func (c *HttpsHealthChecksGetCall) Header() http.Header {
39367	if c.header_ == nil {
39368		c.header_ = make(http.Header)
39369	}
39370	return c.header_
39371}
39372
39373func (c *HttpsHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
39374	reqHeaders := make(http.Header)
39375	for k, v := range c.header_ {
39376		reqHeaders[k] = v
39377	}
39378	reqHeaders.Set("User-Agent", c.s.userAgent())
39379	if c.ifNoneMatch_ != "" {
39380		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
39381	}
39382	var body io.Reader = nil
39383	c.urlParams_.Set("alt", alt)
39384	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
39385	urls += "?" + c.urlParams_.Encode()
39386	req, _ := http.NewRequest("GET", urls, body)
39387	req.Header = reqHeaders
39388	googleapi.Expand(req.URL, map[string]string{
39389		"project":          c.project,
39390		"httpsHealthCheck": c.httpsHealthCheck,
39391	})
39392	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39393}
39394
39395// Do executes the "compute.httpsHealthChecks.get" call.
39396// Exactly one of *HttpsHealthCheck or error will be non-nil. Any
39397// non-2xx status code is an error. Response headers are in either
39398// *HttpsHealthCheck.ServerResponse.Header or (if a response was
39399// returned at all) in error.(*googleapi.Error).Header. Use
39400// googleapi.IsNotModified to check whether the returned error was
39401// because http.StatusNotModified was returned.
39402func (c *HttpsHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheck, error) {
39403	gensupport.SetOptions(c.urlParams_, opts...)
39404	res, err := c.doRequest("json")
39405	if res != nil && res.StatusCode == http.StatusNotModified {
39406		if res.Body != nil {
39407			res.Body.Close()
39408		}
39409		return nil, &googleapi.Error{
39410			Code:   res.StatusCode,
39411			Header: res.Header,
39412		}
39413	}
39414	if err != nil {
39415		return nil, err
39416	}
39417	defer googleapi.CloseBody(res)
39418	if err := googleapi.CheckResponse(res); err != nil {
39419		return nil, err
39420	}
39421	ret := &HttpsHealthCheck{
39422		ServerResponse: googleapi.ServerResponse{
39423			Header:         res.Header,
39424			HTTPStatusCode: res.StatusCode,
39425		},
39426	}
39427	target := &ret
39428	if err := gensupport.DecodeResponse(target, res); err != nil {
39429		return nil, err
39430	}
39431	return ret, nil
39432	// {
39433	//   "description": "Returns the specified HttpsHealthCheck resource. Gets a list of available HTTPS health checks by making a list() request.",
39434	//   "httpMethod": "GET",
39435	//   "id": "compute.httpsHealthChecks.get",
39436	//   "parameterOrder": [
39437	//     "project",
39438	//     "httpsHealthCheck"
39439	//   ],
39440	//   "parameters": {
39441	//     "httpsHealthCheck": {
39442	//       "description": "Name of the HttpsHealthCheck resource to return.",
39443	//       "location": "path",
39444	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
39445	//       "required": true,
39446	//       "type": "string"
39447	//     },
39448	//     "project": {
39449	//       "description": "Project ID for this request.",
39450	//       "location": "path",
39451	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
39452	//       "required": true,
39453	//       "type": "string"
39454	//     }
39455	//   },
39456	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
39457	//   "response": {
39458	//     "$ref": "HttpsHealthCheck"
39459	//   },
39460	//   "scopes": [
39461	//     "https://www.googleapis.com/auth/cloud-platform",
39462	//     "https://www.googleapis.com/auth/compute",
39463	//     "https://www.googleapis.com/auth/compute.readonly"
39464	//   ]
39465	// }
39466
39467}
39468
39469// method id "compute.httpsHealthChecks.insert":
39470
39471type HttpsHealthChecksInsertCall struct {
39472	s                *Service
39473	project          string
39474	httpshealthcheck *HttpsHealthCheck
39475	urlParams_       gensupport.URLParams
39476	ctx_             context.Context
39477	header_          http.Header
39478}
39479
39480// Insert: Creates a HttpsHealthCheck resource in the specified project
39481// using the data included in the request.
39482func (r *HttpsHealthChecksService) Insert(project string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksInsertCall {
39483	c := &HttpsHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39484	c.project = project
39485	c.httpshealthcheck = httpshealthcheck
39486	return c
39487}
39488
39489// RequestId sets the optional parameter "requestId": An optional
39490// request ID to identify requests. Specify a unique request ID so that
39491// if you must retry your request, the server will know to ignore the
39492// request if it has already been completed.
39493//
39494// For example, consider a situation where you make an initial request
39495// and the request times out. If you make the request again with the
39496// same request ID, the server can check if original operation with the
39497// same request ID was received, and if so, will ignore the second
39498// request. This prevents clients from accidentally creating duplicate
39499// commitments.
39500//
39501// The request ID must be a valid UUID with the exception that zero UUID
39502// is not supported (00000000-0000-0000-0000-000000000000).
39503func (c *HttpsHealthChecksInsertCall) RequestId(requestId string) *HttpsHealthChecksInsertCall {
39504	c.urlParams_.Set("requestId", requestId)
39505	return c
39506}
39507
39508// Fields allows partial responses to be retrieved. See
39509// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39510// for more information.
39511func (c *HttpsHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpsHealthChecksInsertCall {
39512	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39513	return c
39514}
39515
39516// Context sets the context to be used in this call's Do method. Any
39517// pending HTTP request will be aborted if the provided context is
39518// canceled.
39519func (c *HttpsHealthChecksInsertCall) Context(ctx context.Context) *HttpsHealthChecksInsertCall {
39520	c.ctx_ = ctx
39521	return c
39522}
39523
39524// Header returns an http.Header that can be modified by the caller to
39525// add HTTP headers to the request.
39526func (c *HttpsHealthChecksInsertCall) Header() http.Header {
39527	if c.header_ == nil {
39528		c.header_ = make(http.Header)
39529	}
39530	return c.header_
39531}
39532
39533func (c *HttpsHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
39534	reqHeaders := make(http.Header)
39535	for k, v := range c.header_ {
39536		reqHeaders[k] = v
39537	}
39538	reqHeaders.Set("User-Agent", c.s.userAgent())
39539	var body io.Reader = nil
39540	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
39541	if err != nil {
39542		return nil, err
39543	}
39544	reqHeaders.Set("Content-Type", "application/json")
39545	c.urlParams_.Set("alt", alt)
39546	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks")
39547	urls += "?" + c.urlParams_.Encode()
39548	req, _ := http.NewRequest("POST", urls, body)
39549	req.Header = reqHeaders
39550	googleapi.Expand(req.URL, map[string]string{
39551		"project": c.project,
39552	})
39553	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39554}
39555
39556// Do executes the "compute.httpsHealthChecks.insert" call.
39557// Exactly one of *Operation or error will be non-nil. Any non-2xx
39558// status code is an error. Response headers are in either
39559// *Operation.ServerResponse.Header or (if a response was returned at
39560// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
39561// to check whether the returned error was because
39562// http.StatusNotModified was returned.
39563func (c *HttpsHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
39564	gensupport.SetOptions(c.urlParams_, opts...)
39565	res, err := c.doRequest("json")
39566	if res != nil && res.StatusCode == http.StatusNotModified {
39567		if res.Body != nil {
39568			res.Body.Close()
39569		}
39570		return nil, &googleapi.Error{
39571			Code:   res.StatusCode,
39572			Header: res.Header,
39573		}
39574	}
39575	if err != nil {
39576		return nil, err
39577	}
39578	defer googleapi.CloseBody(res)
39579	if err := googleapi.CheckResponse(res); err != nil {
39580		return nil, err
39581	}
39582	ret := &Operation{
39583		ServerResponse: googleapi.ServerResponse{
39584			Header:         res.Header,
39585			HTTPStatusCode: res.StatusCode,
39586		},
39587	}
39588	target := &ret
39589	if err := gensupport.DecodeResponse(target, res); err != nil {
39590		return nil, err
39591	}
39592	return ret, nil
39593	// {
39594	//   "description": "Creates a HttpsHealthCheck resource in the specified project using the data included in the request.",
39595	//   "httpMethod": "POST",
39596	//   "id": "compute.httpsHealthChecks.insert",
39597	//   "parameterOrder": [
39598	//     "project"
39599	//   ],
39600	//   "parameters": {
39601	//     "project": {
39602	//       "description": "Project ID for this request.",
39603	//       "location": "path",
39604	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
39605	//       "required": true,
39606	//       "type": "string"
39607	//     },
39608	//     "requestId": {
39609	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
39610	//       "location": "query",
39611	//       "type": "string"
39612	//     }
39613	//   },
39614	//   "path": "{project}/global/httpsHealthChecks",
39615	//   "request": {
39616	//     "$ref": "HttpsHealthCheck"
39617	//   },
39618	//   "response": {
39619	//     "$ref": "Operation"
39620	//   },
39621	//   "scopes": [
39622	//     "https://www.googleapis.com/auth/cloud-platform",
39623	//     "https://www.googleapis.com/auth/compute"
39624	//   ]
39625	// }
39626
39627}
39628
39629// method id "compute.httpsHealthChecks.list":
39630
39631type HttpsHealthChecksListCall struct {
39632	s            *Service
39633	project      string
39634	urlParams_   gensupport.URLParams
39635	ifNoneMatch_ string
39636	ctx_         context.Context
39637	header_      http.Header
39638}
39639
39640// List: Retrieves the list of HttpsHealthCheck resources available to
39641// the specified project.
39642func (r *HttpsHealthChecksService) List(project string) *HttpsHealthChecksListCall {
39643	c := &HttpsHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39644	c.project = project
39645	return c
39646}
39647
39648// Filter sets the optional parameter "filter": A filter expression that
39649// filters resources listed in the response. The expression must specify
39650// the field name, a comparison operator, and the value that you want to
39651// use for filtering. The value must be a string, a number, or a
39652// boolean. The comparison operator must be either =, !=, >, or <.
39653//
39654// For example, if you are filtering Compute Engine instances, you can
39655// exclude instances named example-instance by specifying name !=
39656// example-instance.
39657//
39658// You can also filter nested fields. For example, you could specify
39659// scheduling.automaticRestart = false to include instances only if they
39660// are not scheduled for automatic restarts. You can use filtering on
39661// nested fields to filter based on resource labels.
39662//
39663// To filter on multiple expressions, provide each separate expression
39664// within parentheses. For example, (scheduling.automaticRestart = true)
39665// (cpuPlatform = "Intel Skylake"). By default, each expression is an
39666// AND expression. However, you can include AND and OR expressions
39667// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
39668// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
39669// true).
39670func (c *HttpsHealthChecksListCall) Filter(filter string) *HttpsHealthChecksListCall {
39671	c.urlParams_.Set("filter", filter)
39672	return c
39673}
39674
39675// MaxResults sets the optional parameter "maxResults": The maximum
39676// number of results per page that should be returned. If the number of
39677// available results is larger than maxResults, Compute Engine returns a
39678// nextPageToken that can be used to get the next page of results in
39679// subsequent list requests. Acceptable values are 0 to 500, inclusive.
39680// (Default: 500)
39681func (c *HttpsHealthChecksListCall) MaxResults(maxResults int64) *HttpsHealthChecksListCall {
39682	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
39683	return c
39684}
39685
39686// OrderBy sets the optional parameter "orderBy": Sorts list results by
39687// a certain order. By default, results are returned in alphanumerical
39688// order based on the resource name.
39689//
39690// You can also sort results in descending order based on the creation
39691// timestamp using orderBy="creationTimestamp desc". This sorts results
39692// based on the creationTimestamp field in reverse chronological order
39693// (newest result first). Use this to sort resources like operations so
39694// that the newest operation is returned first.
39695//
39696// Currently, only sorting by name or creationTimestamp desc is
39697// supported.
39698func (c *HttpsHealthChecksListCall) OrderBy(orderBy string) *HttpsHealthChecksListCall {
39699	c.urlParams_.Set("orderBy", orderBy)
39700	return c
39701}
39702
39703// PageToken sets the optional parameter "pageToken": Specifies a page
39704// token to use. Set pageToken to the nextPageToken returned by a
39705// previous list request to get the next page of results.
39706func (c *HttpsHealthChecksListCall) PageToken(pageToken string) *HttpsHealthChecksListCall {
39707	c.urlParams_.Set("pageToken", pageToken)
39708	return c
39709}
39710
39711// Fields allows partial responses to be retrieved. See
39712// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39713// for more information.
39714func (c *HttpsHealthChecksListCall) Fields(s ...googleapi.Field) *HttpsHealthChecksListCall {
39715	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39716	return c
39717}
39718
39719// IfNoneMatch sets the optional parameter which makes the operation
39720// fail if the object's ETag matches the given value. This is useful for
39721// getting updates only after the object has changed since the last
39722// request. Use googleapi.IsNotModified to check whether the response
39723// error from Do is the result of In-None-Match.
39724func (c *HttpsHealthChecksListCall) IfNoneMatch(entityTag string) *HttpsHealthChecksListCall {
39725	c.ifNoneMatch_ = entityTag
39726	return c
39727}
39728
39729// Context sets the context to be used in this call's Do method. Any
39730// pending HTTP request will be aborted if the provided context is
39731// canceled.
39732func (c *HttpsHealthChecksListCall) Context(ctx context.Context) *HttpsHealthChecksListCall {
39733	c.ctx_ = ctx
39734	return c
39735}
39736
39737// Header returns an http.Header that can be modified by the caller to
39738// add HTTP headers to the request.
39739func (c *HttpsHealthChecksListCall) Header() http.Header {
39740	if c.header_ == nil {
39741		c.header_ = make(http.Header)
39742	}
39743	return c.header_
39744}
39745
39746func (c *HttpsHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
39747	reqHeaders := make(http.Header)
39748	for k, v := range c.header_ {
39749		reqHeaders[k] = v
39750	}
39751	reqHeaders.Set("User-Agent", c.s.userAgent())
39752	if c.ifNoneMatch_ != "" {
39753		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
39754	}
39755	var body io.Reader = nil
39756	c.urlParams_.Set("alt", alt)
39757	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks")
39758	urls += "?" + c.urlParams_.Encode()
39759	req, _ := http.NewRequest("GET", urls, body)
39760	req.Header = reqHeaders
39761	googleapi.Expand(req.URL, map[string]string{
39762		"project": c.project,
39763	})
39764	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39765}
39766
39767// Do executes the "compute.httpsHealthChecks.list" call.
39768// Exactly one of *HttpsHealthCheckList or error will be non-nil. Any
39769// non-2xx status code is an error. Response headers are in either
39770// *HttpsHealthCheckList.ServerResponse.Header or (if a response was
39771// returned at all) in error.(*googleapi.Error).Header. Use
39772// googleapi.IsNotModified to check whether the returned error was
39773// because http.StatusNotModified was returned.
39774func (c *HttpsHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheckList, error) {
39775	gensupport.SetOptions(c.urlParams_, opts...)
39776	res, err := c.doRequest("json")
39777	if res != nil && res.StatusCode == http.StatusNotModified {
39778		if res.Body != nil {
39779			res.Body.Close()
39780		}
39781		return nil, &googleapi.Error{
39782			Code:   res.StatusCode,
39783			Header: res.Header,
39784		}
39785	}
39786	if err != nil {
39787		return nil, err
39788	}
39789	defer googleapi.CloseBody(res)
39790	if err := googleapi.CheckResponse(res); err != nil {
39791		return nil, err
39792	}
39793	ret := &HttpsHealthCheckList{
39794		ServerResponse: googleapi.ServerResponse{
39795			Header:         res.Header,
39796			HTTPStatusCode: res.StatusCode,
39797		},
39798	}
39799	target := &ret
39800	if err := gensupport.DecodeResponse(target, res); err != nil {
39801		return nil, err
39802	}
39803	return ret, nil
39804	// {
39805	//   "description": "Retrieves the list of HttpsHealthCheck resources available to the specified project.",
39806	//   "httpMethod": "GET",
39807	//   "id": "compute.httpsHealthChecks.list",
39808	//   "parameterOrder": [
39809	//     "project"
39810	//   ],
39811	//   "parameters": {
39812	//     "filter": {
39813	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
39814	//       "location": "query",
39815	//       "type": "string"
39816	//     },
39817	//     "maxResults": {
39818	//       "default": "500",
39819	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
39820	//       "format": "uint32",
39821	//       "location": "query",
39822	//       "minimum": "0",
39823	//       "type": "integer"
39824	//     },
39825	//     "orderBy": {
39826	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
39827	//       "location": "query",
39828	//       "type": "string"
39829	//     },
39830	//     "pageToken": {
39831	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
39832	//       "location": "query",
39833	//       "type": "string"
39834	//     },
39835	//     "project": {
39836	//       "description": "Project ID for this request.",
39837	//       "location": "path",
39838	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
39839	//       "required": true,
39840	//       "type": "string"
39841	//     }
39842	//   },
39843	//   "path": "{project}/global/httpsHealthChecks",
39844	//   "response": {
39845	//     "$ref": "HttpsHealthCheckList"
39846	//   },
39847	//   "scopes": [
39848	//     "https://www.googleapis.com/auth/cloud-platform",
39849	//     "https://www.googleapis.com/auth/compute",
39850	//     "https://www.googleapis.com/auth/compute.readonly"
39851	//   ]
39852	// }
39853
39854}
39855
39856// Pages invokes f for each page of results.
39857// A non-nil error returned from f will halt the iteration.
39858// The provided context supersedes any context provided to the Context method.
39859func (c *HttpsHealthChecksListCall) Pages(ctx context.Context, f func(*HttpsHealthCheckList) error) error {
39860	c.ctx_ = ctx
39861	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
39862	for {
39863		x, err := c.Do()
39864		if err != nil {
39865			return err
39866		}
39867		if err := f(x); err != nil {
39868			return err
39869		}
39870		if x.NextPageToken == "" {
39871			return nil
39872		}
39873		c.PageToken(x.NextPageToken)
39874	}
39875}
39876
39877// method id "compute.httpsHealthChecks.patch":
39878
39879type HttpsHealthChecksPatchCall struct {
39880	s                *Service
39881	project          string
39882	httpsHealthCheck string
39883	httpshealthcheck *HttpsHealthCheck
39884	urlParams_       gensupport.URLParams
39885	ctx_             context.Context
39886	header_          http.Header
39887}
39888
39889// Patch: Updates a HttpsHealthCheck resource in the specified project
39890// using the data included in the request. This method supports PATCH
39891// semantics and uses the JSON merge patch format and processing rules.
39892func (r *HttpsHealthChecksService) Patch(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksPatchCall {
39893	c := &HttpsHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39894	c.project = project
39895	c.httpsHealthCheck = httpsHealthCheck
39896	c.httpshealthcheck = httpshealthcheck
39897	return c
39898}
39899
39900// RequestId sets the optional parameter "requestId": An optional
39901// request ID to identify requests. Specify a unique request ID so that
39902// if you must retry your request, the server will know to ignore the
39903// request if it has already been completed.
39904//
39905// For example, consider a situation where you make an initial request
39906// and the request times out. If you make the request again with the
39907// same request ID, the server can check if original operation with the
39908// same request ID was received, and if so, will ignore the second
39909// request. This prevents clients from accidentally creating duplicate
39910// commitments.
39911//
39912// The request ID must be a valid UUID with the exception that zero UUID
39913// is not supported (00000000-0000-0000-0000-000000000000).
39914func (c *HttpsHealthChecksPatchCall) RequestId(requestId string) *HttpsHealthChecksPatchCall {
39915	c.urlParams_.Set("requestId", requestId)
39916	return c
39917}
39918
39919// Fields allows partial responses to be retrieved. See
39920// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39921// for more information.
39922func (c *HttpsHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpsHealthChecksPatchCall {
39923	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39924	return c
39925}
39926
39927// Context sets the context to be used in this call's Do method. Any
39928// pending HTTP request will be aborted if the provided context is
39929// canceled.
39930func (c *HttpsHealthChecksPatchCall) Context(ctx context.Context) *HttpsHealthChecksPatchCall {
39931	c.ctx_ = ctx
39932	return c
39933}
39934
39935// Header returns an http.Header that can be modified by the caller to
39936// add HTTP headers to the request.
39937func (c *HttpsHealthChecksPatchCall) Header() http.Header {
39938	if c.header_ == nil {
39939		c.header_ = make(http.Header)
39940	}
39941	return c.header_
39942}
39943
39944func (c *HttpsHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
39945	reqHeaders := make(http.Header)
39946	for k, v := range c.header_ {
39947		reqHeaders[k] = v
39948	}
39949	reqHeaders.Set("User-Agent", c.s.userAgent())
39950	var body io.Reader = nil
39951	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
39952	if err != nil {
39953		return nil, err
39954	}
39955	reqHeaders.Set("Content-Type", "application/json")
39956	c.urlParams_.Set("alt", alt)
39957	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
39958	urls += "?" + c.urlParams_.Encode()
39959	req, _ := http.NewRequest("PATCH", urls, body)
39960	req.Header = reqHeaders
39961	googleapi.Expand(req.URL, map[string]string{
39962		"project":          c.project,
39963		"httpsHealthCheck": c.httpsHealthCheck,
39964	})
39965	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39966}
39967
39968// Do executes the "compute.httpsHealthChecks.patch" call.
39969// Exactly one of *Operation or error will be non-nil. Any non-2xx
39970// status code is an error. Response headers are in either
39971// *Operation.ServerResponse.Header or (if a response was returned at
39972// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
39973// to check whether the returned error was because
39974// http.StatusNotModified was returned.
39975func (c *HttpsHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
39976	gensupport.SetOptions(c.urlParams_, opts...)
39977	res, err := c.doRequest("json")
39978	if res != nil && res.StatusCode == http.StatusNotModified {
39979		if res.Body != nil {
39980			res.Body.Close()
39981		}
39982		return nil, &googleapi.Error{
39983			Code:   res.StatusCode,
39984			Header: res.Header,
39985		}
39986	}
39987	if err != nil {
39988		return nil, err
39989	}
39990	defer googleapi.CloseBody(res)
39991	if err := googleapi.CheckResponse(res); err != nil {
39992		return nil, err
39993	}
39994	ret := &Operation{
39995		ServerResponse: googleapi.ServerResponse{
39996			Header:         res.Header,
39997			HTTPStatusCode: res.StatusCode,
39998		},
39999	}
40000	target := &ret
40001	if err := gensupport.DecodeResponse(target, res); err != nil {
40002		return nil, err
40003	}
40004	return ret, nil
40005	// {
40006	//   "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.",
40007	//   "httpMethod": "PATCH",
40008	//   "id": "compute.httpsHealthChecks.patch",
40009	//   "parameterOrder": [
40010	//     "project",
40011	//     "httpsHealthCheck"
40012	//   ],
40013	//   "parameters": {
40014	//     "httpsHealthCheck": {
40015	//       "description": "Name of the HttpsHealthCheck resource to patch.",
40016	//       "location": "path",
40017	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
40018	//       "required": true,
40019	//       "type": "string"
40020	//     },
40021	//     "project": {
40022	//       "description": "Project ID for this request.",
40023	//       "location": "path",
40024	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
40025	//       "required": true,
40026	//       "type": "string"
40027	//     },
40028	//     "requestId": {
40029	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
40030	//       "location": "query",
40031	//       "type": "string"
40032	//     }
40033	//   },
40034	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
40035	//   "request": {
40036	//     "$ref": "HttpsHealthCheck"
40037	//   },
40038	//   "response": {
40039	//     "$ref": "Operation"
40040	//   },
40041	//   "scopes": [
40042	//     "https://www.googleapis.com/auth/cloud-platform",
40043	//     "https://www.googleapis.com/auth/compute"
40044	//   ]
40045	// }
40046
40047}
40048
40049// method id "compute.httpsHealthChecks.update":
40050
40051type HttpsHealthChecksUpdateCall struct {
40052	s                *Service
40053	project          string
40054	httpsHealthCheck string
40055	httpshealthcheck *HttpsHealthCheck
40056	urlParams_       gensupport.URLParams
40057	ctx_             context.Context
40058	header_          http.Header
40059}
40060
40061// Update: Updates a HttpsHealthCheck resource in the specified project
40062// using the data included in the request.
40063func (r *HttpsHealthChecksService) Update(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksUpdateCall {
40064	c := &HttpsHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40065	c.project = project
40066	c.httpsHealthCheck = httpsHealthCheck
40067	c.httpshealthcheck = httpshealthcheck
40068	return c
40069}
40070
40071// RequestId sets the optional parameter "requestId": An optional
40072// request ID to identify requests. Specify a unique request ID so that
40073// if you must retry your request, the server will know to ignore the
40074// request if it has already been completed.
40075//
40076// For example, consider a situation where you make an initial request
40077// and the request times out. If you make the request again with the
40078// same request ID, the server can check if original operation with the
40079// same request ID was received, and if so, will ignore the second
40080// request. This prevents clients from accidentally creating duplicate
40081// commitments.
40082//
40083// The request ID must be a valid UUID with the exception that zero UUID
40084// is not supported (00000000-0000-0000-0000-000000000000).
40085func (c *HttpsHealthChecksUpdateCall) RequestId(requestId string) *HttpsHealthChecksUpdateCall {
40086	c.urlParams_.Set("requestId", requestId)
40087	return c
40088}
40089
40090// Fields allows partial responses to be retrieved. See
40091// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40092// for more information.
40093func (c *HttpsHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpsHealthChecksUpdateCall {
40094	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40095	return c
40096}
40097
40098// Context sets the context to be used in this call's Do method. Any
40099// pending HTTP request will be aborted if the provided context is
40100// canceled.
40101func (c *HttpsHealthChecksUpdateCall) Context(ctx context.Context) *HttpsHealthChecksUpdateCall {
40102	c.ctx_ = ctx
40103	return c
40104}
40105
40106// Header returns an http.Header that can be modified by the caller to
40107// add HTTP headers to the request.
40108func (c *HttpsHealthChecksUpdateCall) Header() http.Header {
40109	if c.header_ == nil {
40110		c.header_ = make(http.Header)
40111	}
40112	return c.header_
40113}
40114
40115func (c *HttpsHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
40116	reqHeaders := make(http.Header)
40117	for k, v := range c.header_ {
40118		reqHeaders[k] = v
40119	}
40120	reqHeaders.Set("User-Agent", c.s.userAgent())
40121	var body io.Reader = nil
40122	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
40123	if err != nil {
40124		return nil, err
40125	}
40126	reqHeaders.Set("Content-Type", "application/json")
40127	c.urlParams_.Set("alt", alt)
40128	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
40129	urls += "?" + c.urlParams_.Encode()
40130	req, _ := http.NewRequest("PUT", urls, body)
40131	req.Header = reqHeaders
40132	googleapi.Expand(req.URL, map[string]string{
40133		"project":          c.project,
40134		"httpsHealthCheck": c.httpsHealthCheck,
40135	})
40136	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40137}
40138
40139// Do executes the "compute.httpsHealthChecks.update" call.
40140// Exactly one of *Operation or error will be non-nil. Any non-2xx
40141// status code is an error. Response headers are in either
40142// *Operation.ServerResponse.Header or (if a response was returned at
40143// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
40144// to check whether the returned error was because
40145// http.StatusNotModified was returned.
40146func (c *HttpsHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
40147	gensupport.SetOptions(c.urlParams_, opts...)
40148	res, err := c.doRequest("json")
40149	if res != nil && res.StatusCode == http.StatusNotModified {
40150		if res.Body != nil {
40151			res.Body.Close()
40152		}
40153		return nil, &googleapi.Error{
40154			Code:   res.StatusCode,
40155			Header: res.Header,
40156		}
40157	}
40158	if err != nil {
40159		return nil, err
40160	}
40161	defer googleapi.CloseBody(res)
40162	if err := googleapi.CheckResponse(res); err != nil {
40163		return nil, err
40164	}
40165	ret := &Operation{
40166		ServerResponse: googleapi.ServerResponse{
40167			Header:         res.Header,
40168			HTTPStatusCode: res.StatusCode,
40169		},
40170	}
40171	target := &ret
40172	if err := gensupport.DecodeResponse(target, res); err != nil {
40173		return nil, err
40174	}
40175	return ret, nil
40176	// {
40177	//   "description": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request.",
40178	//   "httpMethod": "PUT",
40179	//   "id": "compute.httpsHealthChecks.update",
40180	//   "parameterOrder": [
40181	//     "project",
40182	//     "httpsHealthCheck"
40183	//   ],
40184	//   "parameters": {
40185	//     "httpsHealthCheck": {
40186	//       "description": "Name of the HttpsHealthCheck resource to update.",
40187	//       "location": "path",
40188	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
40189	//       "required": true,
40190	//       "type": "string"
40191	//     },
40192	//     "project": {
40193	//       "description": "Project ID for this request.",
40194	//       "location": "path",
40195	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
40196	//       "required": true,
40197	//       "type": "string"
40198	//     },
40199	//     "requestId": {
40200	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
40201	//       "location": "query",
40202	//       "type": "string"
40203	//     }
40204	//   },
40205	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
40206	//   "request": {
40207	//     "$ref": "HttpsHealthCheck"
40208	//   },
40209	//   "response": {
40210	//     "$ref": "Operation"
40211	//   },
40212	//   "scopes": [
40213	//     "https://www.googleapis.com/auth/cloud-platform",
40214	//     "https://www.googleapis.com/auth/compute"
40215	//   ]
40216	// }
40217
40218}
40219
40220// method id "compute.images.delete":
40221
40222type ImagesDeleteCall struct {
40223	s          *Service
40224	project    string
40225	image      string
40226	urlParams_ gensupport.URLParams
40227	ctx_       context.Context
40228	header_    http.Header
40229}
40230
40231// Delete: Deletes the specified image.
40232// For details, see https://cloud.google.com/compute/docs/reference/latest/images/delete
40233func (r *ImagesService) Delete(project string, image string) *ImagesDeleteCall {
40234	c := &ImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40235	c.project = project
40236	c.image = image
40237	return c
40238}
40239
40240// RequestId sets the optional parameter "requestId": An optional
40241// request ID to identify requests. Specify a unique request ID so that
40242// if you must retry your request, the server will know to ignore the
40243// request if it has already been completed.
40244//
40245// For example, consider a situation where you make an initial request
40246// and the request times out. If you make the request again with the
40247// same request ID, the server can check if original operation with the
40248// same request ID was received, and if so, will ignore the second
40249// request. This prevents clients from accidentally creating duplicate
40250// commitments.
40251//
40252// The request ID must be a valid UUID with the exception that zero UUID
40253// is not supported (00000000-0000-0000-0000-000000000000).
40254func (c *ImagesDeleteCall) RequestId(requestId string) *ImagesDeleteCall {
40255	c.urlParams_.Set("requestId", requestId)
40256	return c
40257}
40258
40259// Fields allows partial responses to be retrieved. See
40260// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40261// for more information.
40262func (c *ImagesDeleteCall) Fields(s ...googleapi.Field) *ImagesDeleteCall {
40263	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40264	return c
40265}
40266
40267// Context sets the context to be used in this call's Do method. Any
40268// pending HTTP request will be aborted if the provided context is
40269// canceled.
40270func (c *ImagesDeleteCall) Context(ctx context.Context) *ImagesDeleteCall {
40271	c.ctx_ = ctx
40272	return c
40273}
40274
40275// Header returns an http.Header that can be modified by the caller to
40276// add HTTP headers to the request.
40277func (c *ImagesDeleteCall) Header() http.Header {
40278	if c.header_ == nil {
40279		c.header_ = make(http.Header)
40280	}
40281	return c.header_
40282}
40283
40284func (c *ImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
40285	reqHeaders := make(http.Header)
40286	for k, v := range c.header_ {
40287		reqHeaders[k] = v
40288	}
40289	reqHeaders.Set("User-Agent", c.s.userAgent())
40290	var body io.Reader = nil
40291	c.urlParams_.Set("alt", alt)
40292	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}")
40293	urls += "?" + c.urlParams_.Encode()
40294	req, _ := http.NewRequest("DELETE", urls, body)
40295	req.Header = reqHeaders
40296	googleapi.Expand(req.URL, map[string]string{
40297		"project": c.project,
40298		"image":   c.image,
40299	})
40300	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40301}
40302
40303// Do executes the "compute.images.delete" call.
40304// Exactly one of *Operation or error will be non-nil. Any non-2xx
40305// status code is an error. Response headers are in either
40306// *Operation.ServerResponse.Header or (if a response was returned at
40307// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
40308// to check whether the returned error was because
40309// http.StatusNotModified was returned.
40310func (c *ImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
40311	gensupport.SetOptions(c.urlParams_, opts...)
40312	res, err := c.doRequest("json")
40313	if res != nil && res.StatusCode == http.StatusNotModified {
40314		if res.Body != nil {
40315			res.Body.Close()
40316		}
40317		return nil, &googleapi.Error{
40318			Code:   res.StatusCode,
40319			Header: res.Header,
40320		}
40321	}
40322	if err != nil {
40323		return nil, err
40324	}
40325	defer googleapi.CloseBody(res)
40326	if err := googleapi.CheckResponse(res); err != nil {
40327		return nil, err
40328	}
40329	ret := &Operation{
40330		ServerResponse: googleapi.ServerResponse{
40331			Header:         res.Header,
40332			HTTPStatusCode: res.StatusCode,
40333		},
40334	}
40335	target := &ret
40336	if err := gensupport.DecodeResponse(target, res); err != nil {
40337		return nil, err
40338	}
40339	return ret, nil
40340	// {
40341	//   "description": "Deletes the specified image.",
40342	//   "httpMethod": "DELETE",
40343	//   "id": "compute.images.delete",
40344	//   "parameterOrder": [
40345	//     "project",
40346	//     "image"
40347	//   ],
40348	//   "parameters": {
40349	//     "image": {
40350	//       "description": "Name of the image resource to delete.",
40351	//       "location": "path",
40352	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
40353	//       "required": true,
40354	//       "type": "string"
40355	//     },
40356	//     "project": {
40357	//       "description": "Project ID for this request.",
40358	//       "location": "path",
40359	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
40360	//       "required": true,
40361	//       "type": "string"
40362	//     },
40363	//     "requestId": {
40364	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
40365	//       "location": "query",
40366	//       "type": "string"
40367	//     }
40368	//   },
40369	//   "path": "{project}/global/images/{image}",
40370	//   "response": {
40371	//     "$ref": "Operation"
40372	//   },
40373	//   "scopes": [
40374	//     "https://www.googleapis.com/auth/cloud-platform",
40375	//     "https://www.googleapis.com/auth/compute"
40376	//   ]
40377	// }
40378
40379}
40380
40381// method id "compute.images.deprecate":
40382
40383type ImagesDeprecateCall struct {
40384	s                 *Service
40385	project           string
40386	image             string
40387	deprecationstatus *DeprecationStatus
40388	urlParams_        gensupport.URLParams
40389	ctx_              context.Context
40390	header_           http.Header
40391}
40392
40393// Deprecate: Sets the deprecation status of an image.
40394//
40395// If an empty request body is given, clears the deprecation status
40396// instead.
40397// For details, see https://cloud.google.com/compute/docs/reference/latest/images/deprecate
40398func (r *ImagesService) Deprecate(project string, image string, deprecationstatus *DeprecationStatus) *ImagesDeprecateCall {
40399	c := &ImagesDeprecateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40400	c.project = project
40401	c.image = image
40402	c.deprecationstatus = deprecationstatus
40403	return c
40404}
40405
40406// RequestId sets the optional parameter "requestId": An optional
40407// request ID to identify requests. Specify a unique request ID so that
40408// if you must retry your request, the server will know to ignore the
40409// request if it has already been completed.
40410//
40411// For example, consider a situation where you make an initial request
40412// and the request times out. If you make the request again with the
40413// same request ID, the server can check if original operation with the
40414// same request ID was received, and if so, will ignore the second
40415// request. This prevents clients from accidentally creating duplicate
40416// commitments.
40417//
40418// The request ID must be a valid UUID with the exception that zero UUID
40419// is not supported (00000000-0000-0000-0000-000000000000).
40420func (c *ImagesDeprecateCall) RequestId(requestId string) *ImagesDeprecateCall {
40421	c.urlParams_.Set("requestId", requestId)
40422	return c
40423}
40424
40425// Fields allows partial responses to be retrieved. See
40426// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40427// for more information.
40428func (c *ImagesDeprecateCall) Fields(s ...googleapi.Field) *ImagesDeprecateCall {
40429	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40430	return c
40431}
40432
40433// Context sets the context to be used in this call's Do method. Any
40434// pending HTTP request will be aborted if the provided context is
40435// canceled.
40436func (c *ImagesDeprecateCall) Context(ctx context.Context) *ImagesDeprecateCall {
40437	c.ctx_ = ctx
40438	return c
40439}
40440
40441// Header returns an http.Header that can be modified by the caller to
40442// add HTTP headers to the request.
40443func (c *ImagesDeprecateCall) Header() http.Header {
40444	if c.header_ == nil {
40445		c.header_ = make(http.Header)
40446	}
40447	return c.header_
40448}
40449
40450func (c *ImagesDeprecateCall) doRequest(alt string) (*http.Response, error) {
40451	reqHeaders := make(http.Header)
40452	for k, v := range c.header_ {
40453		reqHeaders[k] = v
40454	}
40455	reqHeaders.Set("User-Agent", c.s.userAgent())
40456	var body io.Reader = nil
40457	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deprecationstatus)
40458	if err != nil {
40459		return nil, err
40460	}
40461	reqHeaders.Set("Content-Type", "application/json")
40462	c.urlParams_.Set("alt", alt)
40463	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}/deprecate")
40464	urls += "?" + c.urlParams_.Encode()
40465	req, _ := http.NewRequest("POST", urls, body)
40466	req.Header = reqHeaders
40467	googleapi.Expand(req.URL, map[string]string{
40468		"project": c.project,
40469		"image":   c.image,
40470	})
40471	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40472}
40473
40474// Do executes the "compute.images.deprecate" call.
40475// Exactly one of *Operation or error will be non-nil. Any non-2xx
40476// status code is an error. Response headers are in either
40477// *Operation.ServerResponse.Header or (if a response was returned at
40478// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
40479// to check whether the returned error was because
40480// http.StatusNotModified was returned.
40481func (c *ImagesDeprecateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
40482	gensupport.SetOptions(c.urlParams_, opts...)
40483	res, err := c.doRequest("json")
40484	if res != nil && res.StatusCode == http.StatusNotModified {
40485		if res.Body != nil {
40486			res.Body.Close()
40487		}
40488		return nil, &googleapi.Error{
40489			Code:   res.StatusCode,
40490			Header: res.Header,
40491		}
40492	}
40493	if err != nil {
40494		return nil, err
40495	}
40496	defer googleapi.CloseBody(res)
40497	if err := googleapi.CheckResponse(res); err != nil {
40498		return nil, err
40499	}
40500	ret := &Operation{
40501		ServerResponse: googleapi.ServerResponse{
40502			Header:         res.Header,
40503			HTTPStatusCode: res.StatusCode,
40504		},
40505	}
40506	target := &ret
40507	if err := gensupport.DecodeResponse(target, res); err != nil {
40508		return nil, err
40509	}
40510	return ret, nil
40511	// {
40512	//   "description": "Sets the deprecation status of an image.\n\nIf an empty request body is given, clears the deprecation status instead.",
40513	//   "httpMethod": "POST",
40514	//   "id": "compute.images.deprecate",
40515	//   "parameterOrder": [
40516	//     "project",
40517	//     "image"
40518	//   ],
40519	//   "parameters": {
40520	//     "image": {
40521	//       "description": "Image name.",
40522	//       "location": "path",
40523	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
40524	//       "required": true,
40525	//       "type": "string"
40526	//     },
40527	//     "project": {
40528	//       "description": "Project ID for this request.",
40529	//       "location": "path",
40530	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
40531	//       "required": true,
40532	//       "type": "string"
40533	//     },
40534	//     "requestId": {
40535	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
40536	//       "location": "query",
40537	//       "type": "string"
40538	//     }
40539	//   },
40540	//   "path": "{project}/global/images/{image}/deprecate",
40541	//   "request": {
40542	//     "$ref": "DeprecationStatus"
40543	//   },
40544	//   "response": {
40545	//     "$ref": "Operation"
40546	//   },
40547	//   "scopes": [
40548	//     "https://www.googleapis.com/auth/cloud-platform",
40549	//     "https://www.googleapis.com/auth/compute"
40550	//   ]
40551	// }
40552
40553}
40554
40555// method id "compute.images.get":
40556
40557type ImagesGetCall struct {
40558	s            *Service
40559	project      string
40560	image        string
40561	urlParams_   gensupport.URLParams
40562	ifNoneMatch_ string
40563	ctx_         context.Context
40564	header_      http.Header
40565}
40566
40567// Get: Returns the specified image. Gets a list of available images by
40568// making a list() request.
40569// For details, see https://cloud.google.com/compute/docs/reference/latest/images/get
40570func (r *ImagesService) Get(project string, image string) *ImagesGetCall {
40571	c := &ImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40572	c.project = project
40573	c.image = image
40574	return c
40575}
40576
40577// Fields allows partial responses to be retrieved. See
40578// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40579// for more information.
40580func (c *ImagesGetCall) Fields(s ...googleapi.Field) *ImagesGetCall {
40581	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40582	return c
40583}
40584
40585// IfNoneMatch sets the optional parameter which makes the operation
40586// fail if the object's ETag matches the given value. This is useful for
40587// getting updates only after the object has changed since the last
40588// request. Use googleapi.IsNotModified to check whether the response
40589// error from Do is the result of In-None-Match.
40590func (c *ImagesGetCall) IfNoneMatch(entityTag string) *ImagesGetCall {
40591	c.ifNoneMatch_ = entityTag
40592	return c
40593}
40594
40595// Context sets the context to be used in this call's Do method. Any
40596// pending HTTP request will be aborted if the provided context is
40597// canceled.
40598func (c *ImagesGetCall) Context(ctx context.Context) *ImagesGetCall {
40599	c.ctx_ = ctx
40600	return c
40601}
40602
40603// Header returns an http.Header that can be modified by the caller to
40604// add HTTP headers to the request.
40605func (c *ImagesGetCall) Header() http.Header {
40606	if c.header_ == nil {
40607		c.header_ = make(http.Header)
40608	}
40609	return c.header_
40610}
40611
40612func (c *ImagesGetCall) doRequest(alt string) (*http.Response, error) {
40613	reqHeaders := make(http.Header)
40614	for k, v := range c.header_ {
40615		reqHeaders[k] = v
40616	}
40617	reqHeaders.Set("User-Agent", c.s.userAgent())
40618	if c.ifNoneMatch_ != "" {
40619		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
40620	}
40621	var body io.Reader = nil
40622	c.urlParams_.Set("alt", alt)
40623	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}")
40624	urls += "?" + c.urlParams_.Encode()
40625	req, _ := http.NewRequest("GET", urls, body)
40626	req.Header = reqHeaders
40627	googleapi.Expand(req.URL, map[string]string{
40628		"project": c.project,
40629		"image":   c.image,
40630	})
40631	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40632}
40633
40634// Do executes the "compute.images.get" call.
40635// Exactly one of *Image or error will be non-nil. Any non-2xx status
40636// code is an error. Response headers are in either
40637// *Image.ServerResponse.Header or (if a response was returned at all)
40638// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
40639// check whether the returned error was because http.StatusNotModified
40640// was returned.
40641func (c *ImagesGetCall) Do(opts ...googleapi.CallOption) (*Image, error) {
40642	gensupport.SetOptions(c.urlParams_, opts...)
40643	res, err := c.doRequest("json")
40644	if res != nil && res.StatusCode == http.StatusNotModified {
40645		if res.Body != nil {
40646			res.Body.Close()
40647		}
40648		return nil, &googleapi.Error{
40649			Code:   res.StatusCode,
40650			Header: res.Header,
40651		}
40652	}
40653	if err != nil {
40654		return nil, err
40655	}
40656	defer googleapi.CloseBody(res)
40657	if err := googleapi.CheckResponse(res); err != nil {
40658		return nil, err
40659	}
40660	ret := &Image{
40661		ServerResponse: googleapi.ServerResponse{
40662			Header:         res.Header,
40663			HTTPStatusCode: res.StatusCode,
40664		},
40665	}
40666	target := &ret
40667	if err := gensupport.DecodeResponse(target, res); err != nil {
40668		return nil, err
40669	}
40670	return ret, nil
40671	// {
40672	//   "description": "Returns the specified image. Gets a list of available images by making a list() request.",
40673	//   "httpMethod": "GET",
40674	//   "id": "compute.images.get",
40675	//   "parameterOrder": [
40676	//     "project",
40677	//     "image"
40678	//   ],
40679	//   "parameters": {
40680	//     "image": {
40681	//       "description": "Name of the image resource to return.",
40682	//       "location": "path",
40683	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
40684	//       "required": true,
40685	//       "type": "string"
40686	//     },
40687	//     "project": {
40688	//       "description": "Project ID for this request.",
40689	//       "location": "path",
40690	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
40691	//       "required": true,
40692	//       "type": "string"
40693	//     }
40694	//   },
40695	//   "path": "{project}/global/images/{image}",
40696	//   "response": {
40697	//     "$ref": "Image"
40698	//   },
40699	//   "scopes": [
40700	//     "https://www.googleapis.com/auth/cloud-platform",
40701	//     "https://www.googleapis.com/auth/compute",
40702	//     "https://www.googleapis.com/auth/compute.readonly"
40703	//   ]
40704	// }
40705
40706}
40707
40708// method id "compute.images.getFromFamily":
40709
40710type ImagesGetFromFamilyCall struct {
40711	s            *Service
40712	project      string
40713	family       string
40714	urlParams_   gensupport.URLParams
40715	ifNoneMatch_ string
40716	ctx_         context.Context
40717	header_      http.Header
40718}
40719
40720// GetFromFamily: Returns the latest image that is part of an image
40721// family and is not deprecated.
40722func (r *ImagesService) GetFromFamily(project string, family string) *ImagesGetFromFamilyCall {
40723	c := &ImagesGetFromFamilyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40724	c.project = project
40725	c.family = family
40726	return c
40727}
40728
40729// Fields allows partial responses to be retrieved. See
40730// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40731// for more information.
40732func (c *ImagesGetFromFamilyCall) Fields(s ...googleapi.Field) *ImagesGetFromFamilyCall {
40733	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40734	return c
40735}
40736
40737// IfNoneMatch sets the optional parameter which makes the operation
40738// fail if the object's ETag matches the given value. This is useful for
40739// getting updates only after the object has changed since the last
40740// request. Use googleapi.IsNotModified to check whether the response
40741// error from Do is the result of In-None-Match.
40742func (c *ImagesGetFromFamilyCall) IfNoneMatch(entityTag string) *ImagesGetFromFamilyCall {
40743	c.ifNoneMatch_ = entityTag
40744	return c
40745}
40746
40747// Context sets the context to be used in this call's Do method. Any
40748// pending HTTP request will be aborted if the provided context is
40749// canceled.
40750func (c *ImagesGetFromFamilyCall) Context(ctx context.Context) *ImagesGetFromFamilyCall {
40751	c.ctx_ = ctx
40752	return c
40753}
40754
40755// Header returns an http.Header that can be modified by the caller to
40756// add HTTP headers to the request.
40757func (c *ImagesGetFromFamilyCall) Header() http.Header {
40758	if c.header_ == nil {
40759		c.header_ = make(http.Header)
40760	}
40761	return c.header_
40762}
40763
40764func (c *ImagesGetFromFamilyCall) doRequest(alt string) (*http.Response, error) {
40765	reqHeaders := make(http.Header)
40766	for k, v := range c.header_ {
40767		reqHeaders[k] = v
40768	}
40769	reqHeaders.Set("User-Agent", c.s.userAgent())
40770	if c.ifNoneMatch_ != "" {
40771		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
40772	}
40773	var body io.Reader = nil
40774	c.urlParams_.Set("alt", alt)
40775	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/family/{family}")
40776	urls += "?" + c.urlParams_.Encode()
40777	req, _ := http.NewRequest("GET", urls, body)
40778	req.Header = reqHeaders
40779	googleapi.Expand(req.URL, map[string]string{
40780		"project": c.project,
40781		"family":  c.family,
40782	})
40783	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40784}
40785
40786// Do executes the "compute.images.getFromFamily" call.
40787// Exactly one of *Image or error will be non-nil. Any non-2xx status
40788// code is an error. Response headers are in either
40789// *Image.ServerResponse.Header or (if a response was returned at all)
40790// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
40791// check whether the returned error was because http.StatusNotModified
40792// was returned.
40793func (c *ImagesGetFromFamilyCall) Do(opts ...googleapi.CallOption) (*Image, error) {
40794	gensupport.SetOptions(c.urlParams_, opts...)
40795	res, err := c.doRequest("json")
40796	if res != nil && res.StatusCode == http.StatusNotModified {
40797		if res.Body != nil {
40798			res.Body.Close()
40799		}
40800		return nil, &googleapi.Error{
40801			Code:   res.StatusCode,
40802			Header: res.Header,
40803		}
40804	}
40805	if err != nil {
40806		return nil, err
40807	}
40808	defer googleapi.CloseBody(res)
40809	if err := googleapi.CheckResponse(res); err != nil {
40810		return nil, err
40811	}
40812	ret := &Image{
40813		ServerResponse: googleapi.ServerResponse{
40814			Header:         res.Header,
40815			HTTPStatusCode: res.StatusCode,
40816		},
40817	}
40818	target := &ret
40819	if err := gensupport.DecodeResponse(target, res); err != nil {
40820		return nil, err
40821	}
40822	return ret, nil
40823	// {
40824	//   "description": "Returns the latest image that is part of an image family and is not deprecated.",
40825	//   "httpMethod": "GET",
40826	//   "id": "compute.images.getFromFamily",
40827	//   "parameterOrder": [
40828	//     "project",
40829	//     "family"
40830	//   ],
40831	//   "parameters": {
40832	//     "family": {
40833	//       "description": "Name of the image family to search for.",
40834	//       "location": "path",
40835	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
40836	//       "required": true,
40837	//       "type": "string"
40838	//     },
40839	//     "project": {
40840	//       "description": "Project ID for this request.",
40841	//       "location": "path",
40842	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
40843	//       "required": true,
40844	//       "type": "string"
40845	//     }
40846	//   },
40847	//   "path": "{project}/global/images/family/{family}",
40848	//   "response": {
40849	//     "$ref": "Image"
40850	//   },
40851	//   "scopes": [
40852	//     "https://www.googleapis.com/auth/cloud-platform",
40853	//     "https://www.googleapis.com/auth/compute",
40854	//     "https://www.googleapis.com/auth/compute.readonly"
40855	//   ]
40856	// }
40857
40858}
40859
40860// method id "compute.images.insert":
40861
40862type ImagesInsertCall struct {
40863	s          *Service
40864	project    string
40865	image      *Image
40866	urlParams_ gensupport.URLParams
40867	ctx_       context.Context
40868	header_    http.Header
40869}
40870
40871// Insert: Creates an image in the specified project using the data
40872// included in the request.
40873// For details, see https://cloud.google.com/compute/docs/reference/latest/images/insert
40874func (r *ImagesService) Insert(project string, image *Image) *ImagesInsertCall {
40875	c := &ImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40876	c.project = project
40877	c.image = image
40878	return c
40879}
40880
40881// ForceCreate sets the optional parameter "forceCreate": Force image
40882// creation if true.
40883func (c *ImagesInsertCall) ForceCreate(forceCreate bool) *ImagesInsertCall {
40884	c.urlParams_.Set("forceCreate", fmt.Sprint(forceCreate))
40885	return c
40886}
40887
40888// RequestId sets the optional parameter "requestId": An optional
40889// request ID to identify requests. Specify a unique request ID so that
40890// if you must retry your request, the server will know to ignore the
40891// request if it has already been completed.
40892//
40893// For example, consider a situation where you make an initial request
40894// and the request times out. If you make the request again with the
40895// same request ID, the server can check if original operation with the
40896// same request ID was received, and if so, will ignore the second
40897// request. This prevents clients from accidentally creating duplicate
40898// commitments.
40899//
40900// The request ID must be a valid UUID with the exception that zero UUID
40901// is not supported (00000000-0000-0000-0000-000000000000).
40902func (c *ImagesInsertCall) RequestId(requestId string) *ImagesInsertCall {
40903	c.urlParams_.Set("requestId", requestId)
40904	return c
40905}
40906
40907// Fields allows partial responses to be retrieved. See
40908// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40909// for more information.
40910func (c *ImagesInsertCall) Fields(s ...googleapi.Field) *ImagesInsertCall {
40911	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40912	return c
40913}
40914
40915// Context sets the context to be used in this call's Do method. Any
40916// pending HTTP request will be aborted if the provided context is
40917// canceled.
40918func (c *ImagesInsertCall) Context(ctx context.Context) *ImagesInsertCall {
40919	c.ctx_ = ctx
40920	return c
40921}
40922
40923// Header returns an http.Header that can be modified by the caller to
40924// add HTTP headers to the request.
40925func (c *ImagesInsertCall) Header() http.Header {
40926	if c.header_ == nil {
40927		c.header_ = make(http.Header)
40928	}
40929	return c.header_
40930}
40931
40932func (c *ImagesInsertCall) doRequest(alt string) (*http.Response, error) {
40933	reqHeaders := make(http.Header)
40934	for k, v := range c.header_ {
40935		reqHeaders[k] = v
40936	}
40937	reqHeaders.Set("User-Agent", c.s.userAgent())
40938	var body io.Reader = nil
40939	body, err := googleapi.WithoutDataWrapper.JSONReader(c.image)
40940	if err != nil {
40941		return nil, err
40942	}
40943	reqHeaders.Set("Content-Type", "application/json")
40944	c.urlParams_.Set("alt", alt)
40945	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images")
40946	urls += "?" + c.urlParams_.Encode()
40947	req, _ := http.NewRequest("POST", urls, body)
40948	req.Header = reqHeaders
40949	googleapi.Expand(req.URL, map[string]string{
40950		"project": c.project,
40951	})
40952	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40953}
40954
40955// Do executes the "compute.images.insert" call.
40956// Exactly one of *Operation or error will be non-nil. Any non-2xx
40957// status code is an error. Response headers are in either
40958// *Operation.ServerResponse.Header or (if a response was returned at
40959// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
40960// to check whether the returned error was because
40961// http.StatusNotModified was returned.
40962func (c *ImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
40963	gensupport.SetOptions(c.urlParams_, opts...)
40964	res, err := c.doRequest("json")
40965	if res != nil && res.StatusCode == http.StatusNotModified {
40966		if res.Body != nil {
40967			res.Body.Close()
40968		}
40969		return nil, &googleapi.Error{
40970			Code:   res.StatusCode,
40971			Header: res.Header,
40972		}
40973	}
40974	if err != nil {
40975		return nil, err
40976	}
40977	defer googleapi.CloseBody(res)
40978	if err := googleapi.CheckResponse(res); err != nil {
40979		return nil, err
40980	}
40981	ret := &Operation{
40982		ServerResponse: googleapi.ServerResponse{
40983			Header:         res.Header,
40984			HTTPStatusCode: res.StatusCode,
40985		},
40986	}
40987	target := &ret
40988	if err := gensupport.DecodeResponse(target, res); err != nil {
40989		return nil, err
40990	}
40991	return ret, nil
40992	// {
40993	//   "description": "Creates an image in the specified project using the data included in the request.",
40994	//   "httpMethod": "POST",
40995	//   "id": "compute.images.insert",
40996	//   "parameterOrder": [
40997	//     "project"
40998	//   ],
40999	//   "parameters": {
41000	//     "forceCreate": {
41001	//       "description": "Force image creation if true.",
41002	//       "location": "query",
41003	//       "type": "boolean"
41004	//     },
41005	//     "project": {
41006	//       "description": "Project ID for this request.",
41007	//       "location": "path",
41008	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
41009	//       "required": true,
41010	//       "type": "string"
41011	//     },
41012	//     "requestId": {
41013	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
41014	//       "location": "query",
41015	//       "type": "string"
41016	//     }
41017	//   },
41018	//   "path": "{project}/global/images",
41019	//   "request": {
41020	//     "$ref": "Image"
41021	//   },
41022	//   "response": {
41023	//     "$ref": "Operation"
41024	//   },
41025	//   "scopes": [
41026	//     "https://www.googleapis.com/auth/cloud-platform",
41027	//     "https://www.googleapis.com/auth/compute",
41028	//     "https://www.googleapis.com/auth/devstorage.full_control",
41029	//     "https://www.googleapis.com/auth/devstorage.read_only",
41030	//     "https://www.googleapis.com/auth/devstorage.read_write"
41031	//   ]
41032	// }
41033
41034}
41035
41036// method id "compute.images.list":
41037
41038type ImagesListCall struct {
41039	s            *Service
41040	project      string
41041	urlParams_   gensupport.URLParams
41042	ifNoneMatch_ string
41043	ctx_         context.Context
41044	header_      http.Header
41045}
41046
41047// List: Retrieves the list of custom images available to the specified
41048// project. Custom images are images you create that belong to your
41049// project. This method does not get any images that belong to other
41050// projects, including publicly-available images, like Debian 8. If you
41051// want to get a list of publicly-available images, use this method to
41052// make a request to the respective image project, such as debian-cloud
41053// or windows-cloud.
41054// For details, see https://cloud.google.com/compute/docs/reference/latest/images/list
41055func (r *ImagesService) List(project string) *ImagesListCall {
41056	c := &ImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
41057	c.project = project
41058	return c
41059}
41060
41061// Filter sets the optional parameter "filter": A filter expression that
41062// filters resources listed in the response. The expression must specify
41063// the field name, a comparison operator, and the value that you want to
41064// use for filtering. The value must be a string, a number, or a
41065// boolean. The comparison operator must be either =, !=, >, or <.
41066//
41067// For example, if you are filtering Compute Engine instances, you can
41068// exclude instances named example-instance by specifying name !=
41069// example-instance.
41070//
41071// You can also filter nested fields. For example, you could specify
41072// scheduling.automaticRestart = false to include instances only if they
41073// are not scheduled for automatic restarts. You can use filtering on
41074// nested fields to filter based on resource labels.
41075//
41076// To filter on multiple expressions, provide each separate expression
41077// within parentheses. For example, (scheduling.automaticRestart = true)
41078// (cpuPlatform = "Intel Skylake"). By default, each expression is an
41079// AND expression. However, you can include AND and OR expressions
41080// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
41081// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
41082// true).
41083func (c *ImagesListCall) Filter(filter string) *ImagesListCall {
41084	c.urlParams_.Set("filter", filter)
41085	return c
41086}
41087
41088// MaxResults sets the optional parameter "maxResults": The maximum
41089// number of results per page that should be returned. If the number of
41090// available results is larger than maxResults, Compute Engine returns a
41091// nextPageToken that can be used to get the next page of results in
41092// subsequent list requests. Acceptable values are 0 to 500, inclusive.
41093// (Default: 500)
41094func (c *ImagesListCall) MaxResults(maxResults int64) *ImagesListCall {
41095	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
41096	return c
41097}
41098
41099// OrderBy sets the optional parameter "orderBy": Sorts list results by
41100// a certain order. By default, results are returned in alphanumerical
41101// order based on the resource name.
41102//
41103// You can also sort results in descending order based on the creation
41104// timestamp using orderBy="creationTimestamp desc". This sorts results
41105// based on the creationTimestamp field in reverse chronological order
41106// (newest result first). Use this to sort resources like operations so
41107// that the newest operation is returned first.
41108//
41109// Currently, only sorting by name or creationTimestamp desc is
41110// supported.
41111func (c *ImagesListCall) OrderBy(orderBy string) *ImagesListCall {
41112	c.urlParams_.Set("orderBy", orderBy)
41113	return c
41114}
41115
41116// PageToken sets the optional parameter "pageToken": Specifies a page
41117// token to use. Set pageToken to the nextPageToken returned by a
41118// previous list request to get the next page of results.
41119func (c *ImagesListCall) PageToken(pageToken string) *ImagesListCall {
41120	c.urlParams_.Set("pageToken", pageToken)
41121	return c
41122}
41123
41124// Fields allows partial responses to be retrieved. See
41125// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
41126// for more information.
41127func (c *ImagesListCall) Fields(s ...googleapi.Field) *ImagesListCall {
41128	c.urlParams_.Set("fields", googleapi.CombineFields(s))
41129	return c
41130}
41131
41132// IfNoneMatch sets the optional parameter which makes the operation
41133// fail if the object's ETag matches the given value. This is useful for
41134// getting updates only after the object has changed since the last
41135// request. Use googleapi.IsNotModified to check whether the response
41136// error from Do is the result of In-None-Match.
41137func (c *ImagesListCall) IfNoneMatch(entityTag string) *ImagesListCall {
41138	c.ifNoneMatch_ = entityTag
41139	return c
41140}
41141
41142// Context sets the context to be used in this call's Do method. Any
41143// pending HTTP request will be aborted if the provided context is
41144// canceled.
41145func (c *ImagesListCall) Context(ctx context.Context) *ImagesListCall {
41146	c.ctx_ = ctx
41147	return c
41148}
41149
41150// Header returns an http.Header that can be modified by the caller to
41151// add HTTP headers to the request.
41152func (c *ImagesListCall) Header() http.Header {
41153	if c.header_ == nil {
41154		c.header_ = make(http.Header)
41155	}
41156	return c.header_
41157}
41158
41159func (c *ImagesListCall) doRequest(alt string) (*http.Response, error) {
41160	reqHeaders := make(http.Header)
41161	for k, v := range c.header_ {
41162		reqHeaders[k] = v
41163	}
41164	reqHeaders.Set("User-Agent", c.s.userAgent())
41165	if c.ifNoneMatch_ != "" {
41166		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
41167	}
41168	var body io.Reader = nil
41169	c.urlParams_.Set("alt", alt)
41170	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images")
41171	urls += "?" + c.urlParams_.Encode()
41172	req, _ := http.NewRequest("GET", urls, body)
41173	req.Header = reqHeaders
41174	googleapi.Expand(req.URL, map[string]string{
41175		"project": c.project,
41176	})
41177	return gensupport.SendRequest(c.ctx_, c.s.client, req)
41178}
41179
41180// Do executes the "compute.images.list" call.
41181// Exactly one of *ImageList or error will be non-nil. Any non-2xx
41182// status code is an error. Response headers are in either
41183// *ImageList.ServerResponse.Header or (if a response was returned at
41184// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
41185// to check whether the returned error was because
41186// http.StatusNotModified was returned.
41187func (c *ImagesListCall) Do(opts ...googleapi.CallOption) (*ImageList, error) {
41188	gensupport.SetOptions(c.urlParams_, opts...)
41189	res, err := c.doRequest("json")
41190	if res != nil && res.StatusCode == http.StatusNotModified {
41191		if res.Body != nil {
41192			res.Body.Close()
41193		}
41194		return nil, &googleapi.Error{
41195			Code:   res.StatusCode,
41196			Header: res.Header,
41197		}
41198	}
41199	if err != nil {
41200		return nil, err
41201	}
41202	defer googleapi.CloseBody(res)
41203	if err := googleapi.CheckResponse(res); err != nil {
41204		return nil, err
41205	}
41206	ret := &ImageList{
41207		ServerResponse: googleapi.ServerResponse{
41208			Header:         res.Header,
41209			HTTPStatusCode: res.StatusCode,
41210		},
41211	}
41212	target := &ret
41213	if err := gensupport.DecodeResponse(target, res); err != nil {
41214		return nil, err
41215	}
41216	return ret, nil
41217	// {
41218	//   "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.",
41219	//   "httpMethod": "GET",
41220	//   "id": "compute.images.list",
41221	//   "parameterOrder": [
41222	//     "project"
41223	//   ],
41224	//   "parameters": {
41225	//     "filter": {
41226	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
41227	//       "location": "query",
41228	//       "type": "string"
41229	//     },
41230	//     "maxResults": {
41231	//       "default": "500",
41232	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
41233	//       "format": "uint32",
41234	//       "location": "query",
41235	//       "minimum": "0",
41236	//       "type": "integer"
41237	//     },
41238	//     "orderBy": {
41239	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
41240	//       "location": "query",
41241	//       "type": "string"
41242	//     },
41243	//     "pageToken": {
41244	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
41245	//       "location": "query",
41246	//       "type": "string"
41247	//     },
41248	//     "project": {
41249	//       "description": "Project ID for this request.",
41250	//       "location": "path",
41251	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
41252	//       "required": true,
41253	//       "type": "string"
41254	//     }
41255	//   },
41256	//   "path": "{project}/global/images",
41257	//   "response": {
41258	//     "$ref": "ImageList"
41259	//   },
41260	//   "scopes": [
41261	//     "https://www.googleapis.com/auth/cloud-platform",
41262	//     "https://www.googleapis.com/auth/compute",
41263	//     "https://www.googleapis.com/auth/compute.readonly"
41264	//   ]
41265	// }
41266
41267}
41268
41269// Pages invokes f for each page of results.
41270// A non-nil error returned from f will halt the iteration.
41271// The provided context supersedes any context provided to the Context method.
41272func (c *ImagesListCall) Pages(ctx context.Context, f func(*ImageList) error) error {
41273	c.ctx_ = ctx
41274	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
41275	for {
41276		x, err := c.Do()
41277		if err != nil {
41278			return err
41279		}
41280		if err := f(x); err != nil {
41281			return err
41282		}
41283		if x.NextPageToken == "" {
41284			return nil
41285		}
41286		c.PageToken(x.NextPageToken)
41287	}
41288}
41289
41290// method id "compute.images.setLabels":
41291
41292type ImagesSetLabelsCall struct {
41293	s                      *Service
41294	project                string
41295	resource               string
41296	globalsetlabelsrequest *GlobalSetLabelsRequest
41297	urlParams_             gensupport.URLParams
41298	ctx_                   context.Context
41299	header_                http.Header
41300}
41301
41302// SetLabels: Sets the labels on an image. To learn more about labels,
41303// read the Labeling Resources documentation.
41304func (r *ImagesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ImagesSetLabelsCall {
41305	c := &ImagesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
41306	c.project = project
41307	c.resource = resource
41308	c.globalsetlabelsrequest = globalsetlabelsrequest
41309	return c
41310}
41311
41312// Fields allows partial responses to be retrieved. See
41313// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
41314// for more information.
41315func (c *ImagesSetLabelsCall) Fields(s ...googleapi.Field) *ImagesSetLabelsCall {
41316	c.urlParams_.Set("fields", googleapi.CombineFields(s))
41317	return c
41318}
41319
41320// Context sets the context to be used in this call's Do method. Any
41321// pending HTTP request will be aborted if the provided context is
41322// canceled.
41323func (c *ImagesSetLabelsCall) Context(ctx context.Context) *ImagesSetLabelsCall {
41324	c.ctx_ = ctx
41325	return c
41326}
41327
41328// Header returns an http.Header that can be modified by the caller to
41329// add HTTP headers to the request.
41330func (c *ImagesSetLabelsCall) Header() http.Header {
41331	if c.header_ == nil {
41332		c.header_ = make(http.Header)
41333	}
41334	return c.header_
41335}
41336
41337func (c *ImagesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
41338	reqHeaders := make(http.Header)
41339	for k, v := range c.header_ {
41340		reqHeaders[k] = v
41341	}
41342	reqHeaders.Set("User-Agent", c.s.userAgent())
41343	var body io.Reader = nil
41344	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
41345	if err != nil {
41346		return nil, err
41347	}
41348	reqHeaders.Set("Content-Type", "application/json")
41349	c.urlParams_.Set("alt", alt)
41350	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/setLabels")
41351	urls += "?" + c.urlParams_.Encode()
41352	req, _ := http.NewRequest("POST", urls, body)
41353	req.Header = reqHeaders
41354	googleapi.Expand(req.URL, map[string]string{
41355		"project":  c.project,
41356		"resource": c.resource,
41357	})
41358	return gensupport.SendRequest(c.ctx_, c.s.client, req)
41359}
41360
41361// Do executes the "compute.images.setLabels" call.
41362// Exactly one of *Operation or error will be non-nil. Any non-2xx
41363// status code is an error. Response headers are in either
41364// *Operation.ServerResponse.Header or (if a response was returned at
41365// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
41366// to check whether the returned error was because
41367// http.StatusNotModified was returned.
41368func (c *ImagesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
41369	gensupport.SetOptions(c.urlParams_, opts...)
41370	res, err := c.doRequest("json")
41371	if res != nil && res.StatusCode == http.StatusNotModified {
41372		if res.Body != nil {
41373			res.Body.Close()
41374		}
41375		return nil, &googleapi.Error{
41376			Code:   res.StatusCode,
41377			Header: res.Header,
41378		}
41379	}
41380	if err != nil {
41381		return nil, err
41382	}
41383	defer googleapi.CloseBody(res)
41384	if err := googleapi.CheckResponse(res); err != nil {
41385		return nil, err
41386	}
41387	ret := &Operation{
41388		ServerResponse: googleapi.ServerResponse{
41389			Header:         res.Header,
41390			HTTPStatusCode: res.StatusCode,
41391		},
41392	}
41393	target := &ret
41394	if err := gensupport.DecodeResponse(target, res); err != nil {
41395		return nil, err
41396	}
41397	return ret, nil
41398	// {
41399	//   "description": "Sets the labels on an image. To learn more about labels, read the Labeling Resources documentation.",
41400	//   "httpMethod": "POST",
41401	//   "id": "compute.images.setLabels",
41402	//   "parameterOrder": [
41403	//     "project",
41404	//     "resource"
41405	//   ],
41406	//   "parameters": {
41407	//     "project": {
41408	//       "description": "Project ID for this request.",
41409	//       "location": "path",
41410	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
41411	//       "required": true,
41412	//       "type": "string"
41413	//     },
41414	//     "resource": {
41415	//       "description": "Name of the resource for this request.",
41416	//       "location": "path",
41417	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?",
41418	//       "required": true,
41419	//       "type": "string"
41420	//     }
41421	//   },
41422	//   "path": "{project}/global/images/{resource}/setLabels",
41423	//   "request": {
41424	//     "$ref": "GlobalSetLabelsRequest"
41425	//   },
41426	//   "response": {
41427	//     "$ref": "Operation"
41428	//   },
41429	//   "scopes": [
41430	//     "https://www.googleapis.com/auth/cloud-platform",
41431	//     "https://www.googleapis.com/auth/compute"
41432	//   ]
41433	// }
41434
41435}
41436
41437// method id "compute.instanceGroupManagers.abandonInstances":
41438
41439type InstanceGroupManagersAbandonInstancesCall struct {
41440	s                                            *Service
41441	project                                      string
41442	zone                                         string
41443	instanceGroupManager                         string
41444	instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest
41445	urlParams_                                   gensupport.URLParams
41446	ctx_                                         context.Context
41447	header_                                      http.Header
41448}
41449
41450// AbandonInstances: Schedules a group action to remove the specified
41451// instances from the managed instance group. Abandoning an instance
41452// does not delete the instance, but it does remove the instance from
41453// any target pools that are applied by the managed instance group. This
41454// method reduces the targetSize of the managed instance group by the
41455// number of instances that you abandon. This operation is marked as
41456// DONE when the action is scheduled even if the instances have not yet
41457// been removed from the group. You must separately verify the status of
41458// the abandoning action with the listmanagedinstances method.
41459//
41460// If the group is part of a backend service that has enabled connection
41461// draining, it can take up to 60 seconds after the connection draining
41462// duration has elapsed before the VM instance is removed or
41463// deleted.
41464//
41465// You can specify a maximum of 1000 instances with this method per
41466// request.
41467func (r *InstanceGroupManagersService) AbandonInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest) *InstanceGroupManagersAbandonInstancesCall {
41468	c := &InstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
41469	c.project = project
41470	c.zone = zone
41471	c.instanceGroupManager = instanceGroupManager
41472	c.instancegroupmanagersabandoninstancesrequest = instancegroupmanagersabandoninstancesrequest
41473	return c
41474}
41475
41476// RequestId sets the optional parameter "requestId": An optional
41477// request ID to identify requests. Specify a unique request ID so that
41478// if you must retry your request, the server will know to ignore the
41479// request if it has already been completed.
41480//
41481// For example, consider a situation where you make an initial request
41482// and the request times out. If you make the request again with the
41483// same request ID, the server can check if original operation with the
41484// same request ID was received, and if so, will ignore the second
41485// request. This prevents clients from accidentally creating duplicate
41486// commitments.
41487//
41488// The request ID must be a valid UUID with the exception that zero UUID
41489// is not supported (00000000-0000-0000-0000-000000000000).
41490func (c *InstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *InstanceGroupManagersAbandonInstancesCall {
41491	c.urlParams_.Set("requestId", requestId)
41492	return c
41493}
41494
41495// Fields allows partial responses to be retrieved. See
41496// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
41497// for more information.
41498func (c *InstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAbandonInstancesCall {
41499	c.urlParams_.Set("fields", googleapi.CombineFields(s))
41500	return c
41501}
41502
41503// Context sets the context to be used in this call's Do method. Any
41504// pending HTTP request will be aborted if the provided context is
41505// canceled.
41506func (c *InstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *InstanceGroupManagersAbandonInstancesCall {
41507	c.ctx_ = ctx
41508	return c
41509}
41510
41511// Header returns an http.Header that can be modified by the caller to
41512// add HTTP headers to the request.
41513func (c *InstanceGroupManagersAbandonInstancesCall) Header() http.Header {
41514	if c.header_ == nil {
41515		c.header_ = make(http.Header)
41516	}
41517	return c.header_
41518}
41519
41520func (c *InstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
41521	reqHeaders := make(http.Header)
41522	for k, v := range c.header_ {
41523		reqHeaders[k] = v
41524	}
41525	reqHeaders.Set("User-Agent", c.s.userAgent())
41526	var body io.Reader = nil
41527	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersabandoninstancesrequest)
41528	if err != nil {
41529		return nil, err
41530	}
41531	reqHeaders.Set("Content-Type", "application/json")
41532	c.urlParams_.Set("alt", alt)
41533	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
41534	urls += "?" + c.urlParams_.Encode()
41535	req, _ := http.NewRequest("POST", urls, body)
41536	req.Header = reqHeaders
41537	googleapi.Expand(req.URL, map[string]string{
41538		"project":              c.project,
41539		"zone":                 c.zone,
41540		"instanceGroupManager": c.instanceGroupManager,
41541	})
41542	return gensupport.SendRequest(c.ctx_, c.s.client, req)
41543}
41544
41545// Do executes the "compute.instanceGroupManagers.abandonInstances" call.
41546// Exactly one of *Operation or error will be non-nil. Any non-2xx
41547// status code is an error. Response headers are in either
41548// *Operation.ServerResponse.Header or (if a response was returned at
41549// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
41550// to check whether the returned error was because
41551// http.StatusNotModified was returned.
41552func (c *InstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
41553	gensupport.SetOptions(c.urlParams_, opts...)
41554	res, err := c.doRequest("json")
41555	if res != nil && res.StatusCode == http.StatusNotModified {
41556		if res.Body != nil {
41557			res.Body.Close()
41558		}
41559		return nil, &googleapi.Error{
41560			Code:   res.StatusCode,
41561			Header: res.Header,
41562		}
41563	}
41564	if err != nil {
41565		return nil, err
41566	}
41567	defer googleapi.CloseBody(res)
41568	if err := googleapi.CheckResponse(res); err != nil {
41569		return nil, err
41570	}
41571	ret := &Operation{
41572		ServerResponse: googleapi.ServerResponse{
41573			Header:         res.Header,
41574			HTTPStatusCode: res.StatusCode,
41575		},
41576	}
41577	target := &ret
41578	if err := gensupport.DecodeResponse(target, res); err != nil {
41579		return nil, err
41580	}
41581	return ret, nil
41582	// {
41583	//   "description": "Schedules a group action to remove the specified instances 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.",
41584	//   "httpMethod": "POST",
41585	//   "id": "compute.instanceGroupManagers.abandonInstances",
41586	//   "parameterOrder": [
41587	//     "project",
41588	//     "zone",
41589	//     "instanceGroupManager"
41590	//   ],
41591	//   "parameters": {
41592	//     "instanceGroupManager": {
41593	//       "description": "The name of the managed instance group.",
41594	//       "location": "path",
41595	//       "required": true,
41596	//       "type": "string"
41597	//     },
41598	//     "project": {
41599	//       "description": "Project ID for this request.",
41600	//       "location": "path",
41601	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
41602	//       "required": true,
41603	//       "type": "string"
41604	//     },
41605	//     "requestId": {
41606	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
41607	//       "location": "query",
41608	//       "type": "string"
41609	//     },
41610	//     "zone": {
41611	//       "description": "The name of the zone where the managed instance group is located.",
41612	//       "location": "path",
41613	//       "required": true,
41614	//       "type": "string"
41615	//     }
41616	//   },
41617	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
41618	//   "request": {
41619	//     "$ref": "InstanceGroupManagersAbandonInstancesRequest"
41620	//   },
41621	//   "response": {
41622	//     "$ref": "Operation"
41623	//   },
41624	//   "scopes": [
41625	//     "https://www.googleapis.com/auth/cloud-platform",
41626	//     "https://www.googleapis.com/auth/compute"
41627	//   ]
41628	// }
41629
41630}
41631
41632// method id "compute.instanceGroupManagers.aggregatedList":
41633
41634type InstanceGroupManagersAggregatedListCall struct {
41635	s            *Service
41636	project      string
41637	urlParams_   gensupport.URLParams
41638	ifNoneMatch_ string
41639	ctx_         context.Context
41640	header_      http.Header
41641}
41642
41643// AggregatedList: Retrieves the list of managed instance groups and
41644// groups them by zone.
41645func (r *InstanceGroupManagersService) AggregatedList(project string) *InstanceGroupManagersAggregatedListCall {
41646	c := &InstanceGroupManagersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
41647	c.project = project
41648	return c
41649}
41650
41651// Filter sets the optional parameter "filter": A filter expression that
41652// filters resources listed in the response. The expression must specify
41653// the field name, a comparison operator, and the value that you want to
41654// use for filtering. The value must be a string, a number, or a
41655// boolean. The comparison operator must be either =, !=, >, or <.
41656//
41657// For example, if you are filtering Compute Engine instances, you can
41658// exclude instances named example-instance by specifying name !=
41659// example-instance.
41660//
41661// You can also filter nested fields. For example, you could specify
41662// scheduling.automaticRestart = false to include instances only if they
41663// are not scheduled for automatic restarts. You can use filtering on
41664// nested fields to filter based on resource labels.
41665//
41666// To filter on multiple expressions, provide each separate expression
41667// within parentheses. For example, (scheduling.automaticRestart = true)
41668// (cpuPlatform = "Intel Skylake"). By default, each expression is an
41669// AND expression. However, you can include AND and OR expressions
41670// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
41671// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
41672// true).
41673func (c *InstanceGroupManagersAggregatedListCall) Filter(filter string) *InstanceGroupManagersAggregatedListCall {
41674	c.urlParams_.Set("filter", filter)
41675	return c
41676}
41677
41678// MaxResults sets the optional parameter "maxResults": The maximum
41679// number of results per page that should be returned. If the number of
41680// available results is larger than maxResults, Compute Engine returns a
41681// nextPageToken that can be used to get the next page of results in
41682// subsequent list requests. Acceptable values are 0 to 500, inclusive.
41683// (Default: 500)
41684func (c *InstanceGroupManagersAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupManagersAggregatedListCall {
41685	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
41686	return c
41687}
41688
41689// OrderBy sets the optional parameter "orderBy": Sorts list results by
41690// a certain order. By default, results are returned in alphanumerical
41691// order based on the resource name.
41692//
41693// You can also sort results in descending order based on the creation
41694// timestamp using orderBy="creationTimestamp desc". This sorts results
41695// based on the creationTimestamp field in reverse chronological order
41696// (newest result first). Use this to sort resources like operations so
41697// that the newest operation is returned first.
41698//
41699// Currently, only sorting by name or creationTimestamp desc is
41700// supported.
41701func (c *InstanceGroupManagersAggregatedListCall) OrderBy(orderBy string) *InstanceGroupManagersAggregatedListCall {
41702	c.urlParams_.Set("orderBy", orderBy)
41703	return c
41704}
41705
41706// PageToken sets the optional parameter "pageToken": Specifies a page
41707// token to use. Set pageToken to the nextPageToken returned by a
41708// previous list request to get the next page of results.
41709func (c *InstanceGroupManagersAggregatedListCall) PageToken(pageToken string) *InstanceGroupManagersAggregatedListCall {
41710	c.urlParams_.Set("pageToken", pageToken)
41711	return c
41712}
41713
41714// Fields allows partial responses to be retrieved. See
41715// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
41716// for more information.
41717func (c *InstanceGroupManagersAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAggregatedListCall {
41718	c.urlParams_.Set("fields", googleapi.CombineFields(s))
41719	return c
41720}
41721
41722// IfNoneMatch sets the optional parameter which makes the operation
41723// fail if the object's ETag matches the given value. This is useful for
41724// getting updates only after the object has changed since the last
41725// request. Use googleapi.IsNotModified to check whether the response
41726// error from Do is the result of In-None-Match.
41727func (c *InstanceGroupManagersAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersAggregatedListCall {
41728	c.ifNoneMatch_ = entityTag
41729	return c
41730}
41731
41732// Context sets the context to be used in this call's Do method. Any
41733// pending HTTP request will be aborted if the provided context is
41734// canceled.
41735func (c *InstanceGroupManagersAggregatedListCall) Context(ctx context.Context) *InstanceGroupManagersAggregatedListCall {
41736	c.ctx_ = ctx
41737	return c
41738}
41739
41740// Header returns an http.Header that can be modified by the caller to
41741// add HTTP headers to the request.
41742func (c *InstanceGroupManagersAggregatedListCall) Header() http.Header {
41743	if c.header_ == nil {
41744		c.header_ = make(http.Header)
41745	}
41746	return c.header_
41747}
41748
41749func (c *InstanceGroupManagersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
41750	reqHeaders := make(http.Header)
41751	for k, v := range c.header_ {
41752		reqHeaders[k] = v
41753	}
41754	reqHeaders.Set("User-Agent", c.s.userAgent())
41755	if c.ifNoneMatch_ != "" {
41756		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
41757	}
41758	var body io.Reader = nil
41759	c.urlParams_.Set("alt", alt)
41760	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instanceGroupManagers")
41761	urls += "?" + c.urlParams_.Encode()
41762	req, _ := http.NewRequest("GET", urls, body)
41763	req.Header = reqHeaders
41764	googleapi.Expand(req.URL, map[string]string{
41765		"project": c.project,
41766	})
41767	return gensupport.SendRequest(c.ctx_, c.s.client, req)
41768}
41769
41770// Do executes the "compute.instanceGroupManagers.aggregatedList" call.
41771// Exactly one of *InstanceGroupManagerAggregatedList or error will be
41772// non-nil. Any non-2xx status code is an error. Response headers are in
41773// either *InstanceGroupManagerAggregatedList.ServerResponse.Header or
41774// (if a response was returned at all) in
41775// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
41776// whether the returned error was because http.StatusNotModified was
41777// returned.
41778func (c *InstanceGroupManagersAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerAggregatedList, error) {
41779	gensupport.SetOptions(c.urlParams_, opts...)
41780	res, err := c.doRequest("json")
41781	if res != nil && res.StatusCode == http.StatusNotModified {
41782		if res.Body != nil {
41783			res.Body.Close()
41784		}
41785		return nil, &googleapi.Error{
41786			Code:   res.StatusCode,
41787			Header: res.Header,
41788		}
41789	}
41790	if err != nil {
41791		return nil, err
41792	}
41793	defer googleapi.CloseBody(res)
41794	if err := googleapi.CheckResponse(res); err != nil {
41795		return nil, err
41796	}
41797	ret := &InstanceGroupManagerAggregatedList{
41798		ServerResponse: googleapi.ServerResponse{
41799			Header:         res.Header,
41800			HTTPStatusCode: res.StatusCode,
41801		},
41802	}
41803	target := &ret
41804	if err := gensupport.DecodeResponse(target, res); err != nil {
41805		return nil, err
41806	}
41807	return ret, nil
41808	// {
41809	//   "description": "Retrieves the list of managed instance groups and groups them by zone.",
41810	//   "httpMethod": "GET",
41811	//   "id": "compute.instanceGroupManagers.aggregatedList",
41812	//   "parameterOrder": [
41813	//     "project"
41814	//   ],
41815	//   "parameters": {
41816	//     "filter": {
41817	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
41818	//       "location": "query",
41819	//       "type": "string"
41820	//     },
41821	//     "maxResults": {
41822	//       "default": "500",
41823	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
41824	//       "format": "uint32",
41825	//       "location": "query",
41826	//       "minimum": "0",
41827	//       "type": "integer"
41828	//     },
41829	//     "orderBy": {
41830	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
41831	//       "location": "query",
41832	//       "type": "string"
41833	//     },
41834	//     "pageToken": {
41835	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
41836	//       "location": "query",
41837	//       "type": "string"
41838	//     },
41839	//     "project": {
41840	//       "description": "Project ID for this request.",
41841	//       "location": "path",
41842	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
41843	//       "required": true,
41844	//       "type": "string"
41845	//     }
41846	//   },
41847	//   "path": "{project}/aggregated/instanceGroupManagers",
41848	//   "response": {
41849	//     "$ref": "InstanceGroupManagerAggregatedList"
41850	//   },
41851	//   "scopes": [
41852	//     "https://www.googleapis.com/auth/cloud-platform",
41853	//     "https://www.googleapis.com/auth/compute",
41854	//     "https://www.googleapis.com/auth/compute.readonly"
41855	//   ]
41856	// }
41857
41858}
41859
41860// Pages invokes f for each page of results.
41861// A non-nil error returned from f will halt the iteration.
41862// The provided context supersedes any context provided to the Context method.
41863func (c *InstanceGroupManagersAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerAggregatedList) error) error {
41864	c.ctx_ = ctx
41865	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
41866	for {
41867		x, err := c.Do()
41868		if err != nil {
41869			return err
41870		}
41871		if err := f(x); err != nil {
41872			return err
41873		}
41874		if x.NextPageToken == "" {
41875			return nil
41876		}
41877		c.PageToken(x.NextPageToken)
41878	}
41879}
41880
41881// method id "compute.instanceGroupManagers.delete":
41882
41883type InstanceGroupManagersDeleteCall struct {
41884	s                    *Service
41885	project              string
41886	zone                 string
41887	instanceGroupManager string
41888	urlParams_           gensupport.URLParams
41889	ctx_                 context.Context
41890	header_              http.Header
41891}
41892
41893// Delete: Deletes the specified managed instance group and all of the
41894// instances in that group. Note that the instance group must not belong
41895// to a backend service. Read  Deleting an instance group for more
41896// information.
41897func (r *InstanceGroupManagersService) Delete(project string, zone string, instanceGroupManager string) *InstanceGroupManagersDeleteCall {
41898	c := &InstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
41899	c.project = project
41900	c.zone = zone
41901	c.instanceGroupManager = instanceGroupManager
41902	return c
41903}
41904
41905// RequestId sets the optional parameter "requestId": An optional
41906// request ID to identify requests. Specify a unique request ID so that
41907// if you must retry your request, the server will know to ignore the
41908// request if it has already been completed.
41909//
41910// For example, consider a situation where you make an initial request
41911// and the request times out. If you make the request again with the
41912// same request ID, the server can check if original operation with the
41913// same request ID was received, and if so, will ignore the second
41914// request. This prevents clients from accidentally creating duplicate
41915// commitments.
41916//
41917// The request ID must be a valid UUID with the exception that zero UUID
41918// is not supported (00000000-0000-0000-0000-000000000000).
41919func (c *InstanceGroupManagersDeleteCall) RequestId(requestId string) *InstanceGroupManagersDeleteCall {
41920	c.urlParams_.Set("requestId", requestId)
41921	return c
41922}
41923
41924// Fields allows partial responses to be retrieved. See
41925// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
41926// for more information.
41927func (c *InstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteCall {
41928	c.urlParams_.Set("fields", googleapi.CombineFields(s))
41929	return c
41930}
41931
41932// Context sets the context to be used in this call's Do method. Any
41933// pending HTTP request will be aborted if the provided context is
41934// canceled.
41935func (c *InstanceGroupManagersDeleteCall) Context(ctx context.Context) *InstanceGroupManagersDeleteCall {
41936	c.ctx_ = ctx
41937	return c
41938}
41939
41940// Header returns an http.Header that can be modified by the caller to
41941// add HTTP headers to the request.
41942func (c *InstanceGroupManagersDeleteCall) Header() http.Header {
41943	if c.header_ == nil {
41944		c.header_ = make(http.Header)
41945	}
41946	return c.header_
41947}
41948
41949func (c *InstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
41950	reqHeaders := make(http.Header)
41951	for k, v := range c.header_ {
41952		reqHeaders[k] = v
41953	}
41954	reqHeaders.Set("User-Agent", c.s.userAgent())
41955	var body io.Reader = nil
41956	c.urlParams_.Set("alt", alt)
41957	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
41958	urls += "?" + c.urlParams_.Encode()
41959	req, _ := http.NewRequest("DELETE", urls, body)
41960	req.Header = reqHeaders
41961	googleapi.Expand(req.URL, map[string]string{
41962		"project":              c.project,
41963		"zone":                 c.zone,
41964		"instanceGroupManager": c.instanceGroupManager,
41965	})
41966	return gensupport.SendRequest(c.ctx_, c.s.client, req)
41967}
41968
41969// Do executes the "compute.instanceGroupManagers.delete" call.
41970// Exactly one of *Operation or error will be non-nil. Any non-2xx
41971// status code is an error. Response headers are in either
41972// *Operation.ServerResponse.Header or (if a response was returned at
41973// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
41974// to check whether the returned error was because
41975// http.StatusNotModified was returned.
41976func (c *InstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
41977	gensupport.SetOptions(c.urlParams_, opts...)
41978	res, err := c.doRequest("json")
41979	if res != nil && res.StatusCode == http.StatusNotModified {
41980		if res.Body != nil {
41981			res.Body.Close()
41982		}
41983		return nil, &googleapi.Error{
41984			Code:   res.StatusCode,
41985			Header: res.Header,
41986		}
41987	}
41988	if err != nil {
41989		return nil, err
41990	}
41991	defer googleapi.CloseBody(res)
41992	if err := googleapi.CheckResponse(res); err != nil {
41993		return nil, err
41994	}
41995	ret := &Operation{
41996		ServerResponse: googleapi.ServerResponse{
41997			Header:         res.Header,
41998			HTTPStatusCode: res.StatusCode,
41999		},
42000	}
42001	target := &ret
42002	if err := gensupport.DecodeResponse(target, res); err != nil {
42003		return nil, err
42004	}
42005	return ret, nil
42006	// {
42007	//   "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.",
42008	//   "httpMethod": "DELETE",
42009	//   "id": "compute.instanceGroupManagers.delete",
42010	//   "parameterOrder": [
42011	//     "project",
42012	//     "zone",
42013	//     "instanceGroupManager"
42014	//   ],
42015	//   "parameters": {
42016	//     "instanceGroupManager": {
42017	//       "description": "The name of the managed instance group to delete.",
42018	//       "location": "path",
42019	//       "required": true,
42020	//       "type": "string"
42021	//     },
42022	//     "project": {
42023	//       "description": "Project ID for this request.",
42024	//       "location": "path",
42025	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
42026	//       "required": true,
42027	//       "type": "string"
42028	//     },
42029	//     "requestId": {
42030	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
42031	//       "location": "query",
42032	//       "type": "string"
42033	//     },
42034	//     "zone": {
42035	//       "description": "The name of the zone where the managed instance group is located.",
42036	//       "location": "path",
42037	//       "required": true,
42038	//       "type": "string"
42039	//     }
42040	//   },
42041	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
42042	//   "response": {
42043	//     "$ref": "Operation"
42044	//   },
42045	//   "scopes": [
42046	//     "https://www.googleapis.com/auth/cloud-platform",
42047	//     "https://www.googleapis.com/auth/compute"
42048	//   ]
42049	// }
42050
42051}
42052
42053// method id "compute.instanceGroupManagers.deleteInstances":
42054
42055type InstanceGroupManagersDeleteInstancesCall struct {
42056	s                                           *Service
42057	project                                     string
42058	zone                                        string
42059	instanceGroupManager                        string
42060	instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest
42061	urlParams_                                  gensupport.URLParams
42062	ctx_                                        context.Context
42063	header_                                     http.Header
42064}
42065
42066// DeleteInstances: Schedules a group action to delete the specified
42067// instances in the managed instance group. The instances are also
42068// removed from any target pools of which they were a member. This
42069// method reduces the targetSize of the managed instance group by the
42070// number of instances that you delete. This operation is marked as DONE
42071// when the action is scheduled even if the instances are still being
42072// deleted. You must separately verify the status of the deleting action
42073// with the listmanagedinstances method.
42074//
42075// If the group is part of a backend service that has enabled connection
42076// draining, it can take up to 60 seconds after the connection draining
42077// duration has elapsed before the VM instance is removed or
42078// deleted.
42079//
42080// You can specify a maximum of 1000 instances with this method per
42081// request.
42082func (r *InstanceGroupManagersService) DeleteInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest) *InstanceGroupManagersDeleteInstancesCall {
42083	c := &InstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
42084	c.project = project
42085	c.zone = zone
42086	c.instanceGroupManager = instanceGroupManager
42087	c.instancegroupmanagersdeleteinstancesrequest = instancegroupmanagersdeleteinstancesrequest
42088	return c
42089}
42090
42091// RequestId sets the optional parameter "requestId": An optional
42092// request ID to identify requests. Specify a unique request ID so that
42093// if you must retry your request, the server will know to ignore the
42094// request if it has already been completed.
42095//
42096// For example, consider a situation where you make an initial request
42097// and the request times out. If you make the request again with the
42098// same request ID, the server can check if original operation with the
42099// same request ID was received, and if so, will ignore the second
42100// request. This prevents clients from accidentally creating duplicate
42101// commitments.
42102//
42103// The request ID must be a valid UUID with the exception that zero UUID
42104// is not supported (00000000-0000-0000-0000-000000000000).
42105func (c *InstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *InstanceGroupManagersDeleteInstancesCall {
42106	c.urlParams_.Set("requestId", requestId)
42107	return c
42108}
42109
42110// Fields allows partial responses to be retrieved. See
42111// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
42112// for more information.
42113func (c *InstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteInstancesCall {
42114	c.urlParams_.Set("fields", googleapi.CombineFields(s))
42115	return c
42116}
42117
42118// Context sets the context to be used in this call's Do method. Any
42119// pending HTTP request will be aborted if the provided context is
42120// canceled.
42121func (c *InstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *InstanceGroupManagersDeleteInstancesCall {
42122	c.ctx_ = ctx
42123	return c
42124}
42125
42126// Header returns an http.Header that can be modified by the caller to
42127// add HTTP headers to the request.
42128func (c *InstanceGroupManagersDeleteInstancesCall) Header() http.Header {
42129	if c.header_ == nil {
42130		c.header_ = make(http.Header)
42131	}
42132	return c.header_
42133}
42134
42135func (c *InstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
42136	reqHeaders := make(http.Header)
42137	for k, v := range c.header_ {
42138		reqHeaders[k] = v
42139	}
42140	reqHeaders.Set("User-Agent", c.s.userAgent())
42141	var body io.Reader = nil
42142	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteinstancesrequest)
42143	if err != nil {
42144		return nil, err
42145	}
42146	reqHeaders.Set("Content-Type", "application/json")
42147	c.urlParams_.Set("alt", alt)
42148	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
42149	urls += "?" + c.urlParams_.Encode()
42150	req, _ := http.NewRequest("POST", urls, body)
42151	req.Header = reqHeaders
42152	googleapi.Expand(req.URL, map[string]string{
42153		"project":              c.project,
42154		"zone":                 c.zone,
42155		"instanceGroupManager": c.instanceGroupManager,
42156	})
42157	return gensupport.SendRequest(c.ctx_, c.s.client, req)
42158}
42159
42160// Do executes the "compute.instanceGroupManagers.deleteInstances" call.
42161// Exactly one of *Operation or error will be non-nil. Any non-2xx
42162// status code is an error. Response headers are in either
42163// *Operation.ServerResponse.Header or (if a response was returned at
42164// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
42165// to check whether the returned error was because
42166// http.StatusNotModified was returned.
42167func (c *InstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
42168	gensupport.SetOptions(c.urlParams_, opts...)
42169	res, err := c.doRequest("json")
42170	if res != nil && res.StatusCode == http.StatusNotModified {
42171		if res.Body != nil {
42172			res.Body.Close()
42173		}
42174		return nil, &googleapi.Error{
42175			Code:   res.StatusCode,
42176			Header: res.Header,
42177		}
42178	}
42179	if err != nil {
42180		return nil, err
42181	}
42182	defer googleapi.CloseBody(res)
42183	if err := googleapi.CheckResponse(res); err != nil {
42184		return nil, err
42185	}
42186	ret := &Operation{
42187		ServerResponse: googleapi.ServerResponse{
42188			Header:         res.Header,
42189			HTTPStatusCode: res.StatusCode,
42190		},
42191	}
42192	target := &ret
42193	if err := gensupport.DecodeResponse(target, res); err != nil {
42194		return nil, err
42195	}
42196	return ret, nil
42197	// {
42198	//   "description": "Schedules a group action to delete the specified instances in the managed instance group. 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.",
42199	//   "httpMethod": "POST",
42200	//   "id": "compute.instanceGroupManagers.deleteInstances",
42201	//   "parameterOrder": [
42202	//     "project",
42203	//     "zone",
42204	//     "instanceGroupManager"
42205	//   ],
42206	//   "parameters": {
42207	//     "instanceGroupManager": {
42208	//       "description": "The name of the managed instance group.",
42209	//       "location": "path",
42210	//       "required": true,
42211	//       "type": "string"
42212	//     },
42213	//     "project": {
42214	//       "description": "Project ID for this request.",
42215	//       "location": "path",
42216	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
42217	//       "required": true,
42218	//       "type": "string"
42219	//     },
42220	//     "requestId": {
42221	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
42222	//       "location": "query",
42223	//       "type": "string"
42224	//     },
42225	//     "zone": {
42226	//       "description": "The name of the zone where the managed instance group is located.",
42227	//       "location": "path",
42228	//       "required": true,
42229	//       "type": "string"
42230	//     }
42231	//   },
42232	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
42233	//   "request": {
42234	//     "$ref": "InstanceGroupManagersDeleteInstancesRequest"
42235	//   },
42236	//   "response": {
42237	//     "$ref": "Operation"
42238	//   },
42239	//   "scopes": [
42240	//     "https://www.googleapis.com/auth/cloud-platform",
42241	//     "https://www.googleapis.com/auth/compute"
42242	//   ]
42243	// }
42244
42245}
42246
42247// method id "compute.instanceGroupManagers.get":
42248
42249type InstanceGroupManagersGetCall struct {
42250	s                    *Service
42251	project              string
42252	zone                 string
42253	instanceGroupManager string
42254	urlParams_           gensupport.URLParams
42255	ifNoneMatch_         string
42256	ctx_                 context.Context
42257	header_              http.Header
42258}
42259
42260// Get: Returns all of the details about the specified managed instance
42261// group. Gets a list of available managed instance groups by making a
42262// list() request.
42263func (r *InstanceGroupManagersService) Get(project string, zone string, instanceGroupManager string) *InstanceGroupManagersGetCall {
42264	c := &InstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
42265	c.project = project
42266	c.zone = zone
42267	c.instanceGroupManager = instanceGroupManager
42268	return c
42269}
42270
42271// Fields allows partial responses to be retrieved. See
42272// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
42273// for more information.
42274func (c *InstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *InstanceGroupManagersGetCall {
42275	c.urlParams_.Set("fields", googleapi.CombineFields(s))
42276	return c
42277}
42278
42279// IfNoneMatch sets the optional parameter which makes the operation
42280// fail if the object's ETag matches the given value. This is useful for
42281// getting updates only after the object has changed since the last
42282// request. Use googleapi.IsNotModified to check whether the response
42283// error from Do is the result of In-None-Match.
42284func (c *InstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *InstanceGroupManagersGetCall {
42285	c.ifNoneMatch_ = entityTag
42286	return c
42287}
42288
42289// Context sets the context to be used in this call's Do method. Any
42290// pending HTTP request will be aborted if the provided context is
42291// canceled.
42292func (c *InstanceGroupManagersGetCall) Context(ctx context.Context) *InstanceGroupManagersGetCall {
42293	c.ctx_ = ctx
42294	return c
42295}
42296
42297// Header returns an http.Header that can be modified by the caller to
42298// add HTTP headers to the request.
42299func (c *InstanceGroupManagersGetCall) Header() http.Header {
42300	if c.header_ == nil {
42301		c.header_ = make(http.Header)
42302	}
42303	return c.header_
42304}
42305
42306func (c *InstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
42307	reqHeaders := make(http.Header)
42308	for k, v := range c.header_ {
42309		reqHeaders[k] = v
42310	}
42311	reqHeaders.Set("User-Agent", c.s.userAgent())
42312	if c.ifNoneMatch_ != "" {
42313		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
42314	}
42315	var body io.Reader = nil
42316	c.urlParams_.Set("alt", alt)
42317	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
42318	urls += "?" + c.urlParams_.Encode()
42319	req, _ := http.NewRequest("GET", urls, body)
42320	req.Header = reqHeaders
42321	googleapi.Expand(req.URL, map[string]string{
42322		"project":              c.project,
42323		"zone":                 c.zone,
42324		"instanceGroupManager": c.instanceGroupManager,
42325	})
42326	return gensupport.SendRequest(c.ctx_, c.s.client, req)
42327}
42328
42329// Do executes the "compute.instanceGroupManagers.get" call.
42330// Exactly one of *InstanceGroupManager or error will be non-nil. Any
42331// non-2xx status code is an error. Response headers are in either
42332// *InstanceGroupManager.ServerResponse.Header or (if a response was
42333// returned at all) in error.(*googleapi.Error).Header. Use
42334// googleapi.IsNotModified to check whether the returned error was
42335// because http.StatusNotModified was returned.
42336func (c *InstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
42337	gensupport.SetOptions(c.urlParams_, opts...)
42338	res, err := c.doRequest("json")
42339	if res != nil && res.StatusCode == http.StatusNotModified {
42340		if res.Body != nil {
42341			res.Body.Close()
42342		}
42343		return nil, &googleapi.Error{
42344			Code:   res.StatusCode,
42345			Header: res.Header,
42346		}
42347	}
42348	if err != nil {
42349		return nil, err
42350	}
42351	defer googleapi.CloseBody(res)
42352	if err := googleapi.CheckResponse(res); err != nil {
42353		return nil, err
42354	}
42355	ret := &InstanceGroupManager{
42356		ServerResponse: googleapi.ServerResponse{
42357			Header:         res.Header,
42358			HTTPStatusCode: res.StatusCode,
42359		},
42360	}
42361	target := &ret
42362	if err := gensupport.DecodeResponse(target, res); err != nil {
42363		return nil, err
42364	}
42365	return ret, nil
42366	// {
42367	//   "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.",
42368	//   "httpMethod": "GET",
42369	//   "id": "compute.instanceGroupManagers.get",
42370	//   "parameterOrder": [
42371	//     "project",
42372	//     "zone",
42373	//     "instanceGroupManager"
42374	//   ],
42375	//   "parameters": {
42376	//     "instanceGroupManager": {
42377	//       "description": "The name of the managed instance group.",
42378	//       "location": "path",
42379	//       "required": true,
42380	//       "type": "string"
42381	//     },
42382	//     "project": {
42383	//       "description": "Project ID for this request.",
42384	//       "location": "path",
42385	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
42386	//       "required": true,
42387	//       "type": "string"
42388	//     },
42389	//     "zone": {
42390	//       "description": "The name of the zone where the managed instance group is located.",
42391	//       "location": "path",
42392	//       "required": true,
42393	//       "type": "string"
42394	//     }
42395	//   },
42396	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
42397	//   "response": {
42398	//     "$ref": "InstanceGroupManager"
42399	//   },
42400	//   "scopes": [
42401	//     "https://www.googleapis.com/auth/cloud-platform",
42402	//     "https://www.googleapis.com/auth/compute",
42403	//     "https://www.googleapis.com/auth/compute.readonly"
42404	//   ]
42405	// }
42406
42407}
42408
42409// method id "compute.instanceGroupManagers.insert":
42410
42411type InstanceGroupManagersInsertCall struct {
42412	s                    *Service
42413	project              string
42414	zone                 string
42415	instancegroupmanager *InstanceGroupManager
42416	urlParams_           gensupport.URLParams
42417	ctx_                 context.Context
42418	header_              http.Header
42419}
42420
42421// Insert: Creates a managed instance group using the information that
42422// you specify in the request. After the group is created, it schedules
42423// an action to create instances in the group using the specified
42424// instance template. This operation is marked as DONE when the group is
42425// created even if the instances in the group have not yet been created.
42426// You must separately verify the status of the individual instances
42427// with the listmanagedinstances method.
42428//
42429// A managed instance group can have up to 1000 VM instances per group.
42430// Please contact Cloud Support if you need an increase in this limit.
42431func (r *InstanceGroupManagersService) Insert(project string, zone string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersInsertCall {
42432	c := &InstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
42433	c.project = project
42434	c.zone = zone
42435	c.instancegroupmanager = instancegroupmanager
42436	return c
42437}
42438
42439// RequestId sets the optional parameter "requestId": An optional
42440// request ID to identify requests. Specify a unique request ID so that
42441// if you must retry your request, the server will know to ignore the
42442// request if it has already been completed.
42443//
42444// For example, consider a situation where you make an initial request
42445// and the request times out. If you make the request again with the
42446// same request ID, the server can check if original operation with the
42447// same request ID was received, and if so, will ignore the second
42448// request. This prevents clients from accidentally creating duplicate
42449// commitments.
42450//
42451// The request ID must be a valid UUID with the exception that zero UUID
42452// is not supported (00000000-0000-0000-0000-000000000000).
42453func (c *InstanceGroupManagersInsertCall) RequestId(requestId string) *InstanceGroupManagersInsertCall {
42454	c.urlParams_.Set("requestId", requestId)
42455	return c
42456}
42457
42458// Fields allows partial responses to be retrieved. See
42459// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
42460// for more information.
42461func (c *InstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *InstanceGroupManagersInsertCall {
42462	c.urlParams_.Set("fields", googleapi.CombineFields(s))
42463	return c
42464}
42465
42466// Context sets the context to be used in this call's Do method. Any
42467// pending HTTP request will be aborted if the provided context is
42468// canceled.
42469func (c *InstanceGroupManagersInsertCall) Context(ctx context.Context) *InstanceGroupManagersInsertCall {
42470	c.ctx_ = ctx
42471	return c
42472}
42473
42474// Header returns an http.Header that can be modified by the caller to
42475// add HTTP headers to the request.
42476func (c *InstanceGroupManagersInsertCall) Header() http.Header {
42477	if c.header_ == nil {
42478		c.header_ = make(http.Header)
42479	}
42480	return c.header_
42481}
42482
42483func (c *InstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
42484	reqHeaders := make(http.Header)
42485	for k, v := range c.header_ {
42486		reqHeaders[k] = v
42487	}
42488	reqHeaders.Set("User-Agent", c.s.userAgent())
42489	var body io.Reader = nil
42490	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
42491	if err != nil {
42492		return nil, err
42493	}
42494	reqHeaders.Set("Content-Type", "application/json")
42495	c.urlParams_.Set("alt", alt)
42496	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers")
42497	urls += "?" + c.urlParams_.Encode()
42498	req, _ := http.NewRequest("POST", urls, body)
42499	req.Header = reqHeaders
42500	googleapi.Expand(req.URL, map[string]string{
42501		"project": c.project,
42502		"zone":    c.zone,
42503	})
42504	return gensupport.SendRequest(c.ctx_, c.s.client, req)
42505}
42506
42507// Do executes the "compute.instanceGroupManagers.insert" call.
42508// Exactly one of *Operation or error will be non-nil. Any non-2xx
42509// status code is an error. Response headers are in either
42510// *Operation.ServerResponse.Header or (if a response was returned at
42511// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
42512// to check whether the returned error was because
42513// http.StatusNotModified was returned.
42514func (c *InstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
42515	gensupport.SetOptions(c.urlParams_, opts...)
42516	res, err := c.doRequest("json")
42517	if res != nil && res.StatusCode == http.StatusNotModified {
42518		if res.Body != nil {
42519			res.Body.Close()
42520		}
42521		return nil, &googleapi.Error{
42522			Code:   res.StatusCode,
42523			Header: res.Header,
42524		}
42525	}
42526	if err != nil {
42527		return nil, err
42528	}
42529	defer googleapi.CloseBody(res)
42530	if err := googleapi.CheckResponse(res); err != nil {
42531		return nil, err
42532	}
42533	ret := &Operation{
42534		ServerResponse: googleapi.ServerResponse{
42535			Header:         res.Header,
42536			HTTPStatusCode: res.StatusCode,
42537		},
42538	}
42539	target := &ret
42540	if err := gensupport.DecodeResponse(target, res); err != nil {
42541		return nil, err
42542	}
42543	return ret, nil
42544	// {
42545	//   "description": "Creates a managed instance group using the information that you specify in the request. After the group is created, it schedules an action to create instances in the group 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.",
42546	//   "httpMethod": "POST",
42547	//   "id": "compute.instanceGroupManagers.insert",
42548	//   "parameterOrder": [
42549	//     "project",
42550	//     "zone"
42551	//   ],
42552	//   "parameters": {
42553	//     "project": {
42554	//       "description": "Project ID for this request.",
42555	//       "location": "path",
42556	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
42557	//       "required": true,
42558	//       "type": "string"
42559	//     },
42560	//     "requestId": {
42561	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
42562	//       "location": "query",
42563	//       "type": "string"
42564	//     },
42565	//     "zone": {
42566	//       "description": "The name of the zone where you want to create the managed instance group.",
42567	//       "location": "path",
42568	//       "required": true,
42569	//       "type": "string"
42570	//     }
42571	//   },
42572	//   "path": "{project}/zones/{zone}/instanceGroupManagers",
42573	//   "request": {
42574	//     "$ref": "InstanceGroupManager"
42575	//   },
42576	//   "response": {
42577	//     "$ref": "Operation"
42578	//   },
42579	//   "scopes": [
42580	//     "https://www.googleapis.com/auth/cloud-platform",
42581	//     "https://www.googleapis.com/auth/compute"
42582	//   ]
42583	// }
42584
42585}
42586
42587// method id "compute.instanceGroupManagers.list":
42588
42589type InstanceGroupManagersListCall struct {
42590	s            *Service
42591	project      string
42592	zone         string
42593	urlParams_   gensupport.URLParams
42594	ifNoneMatch_ string
42595	ctx_         context.Context
42596	header_      http.Header
42597}
42598
42599// List: Retrieves a list of managed instance groups that are contained
42600// within the specified project and zone.
42601func (r *InstanceGroupManagersService) List(project string, zone string) *InstanceGroupManagersListCall {
42602	c := &InstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
42603	c.project = project
42604	c.zone = zone
42605	return c
42606}
42607
42608// Filter sets the optional parameter "filter": A filter expression that
42609// filters resources listed in the response. The expression must specify
42610// the field name, a comparison operator, and the value that you want to
42611// use for filtering. The value must be a string, a number, or a
42612// boolean. The comparison operator must be either =, !=, >, or <.
42613//
42614// For example, if you are filtering Compute Engine instances, you can
42615// exclude instances named example-instance by specifying name !=
42616// example-instance.
42617//
42618// You can also filter nested fields. For example, you could specify
42619// scheduling.automaticRestart = false to include instances only if they
42620// are not scheduled for automatic restarts. You can use filtering on
42621// nested fields to filter based on resource labels.
42622//
42623// To filter on multiple expressions, provide each separate expression
42624// within parentheses. For example, (scheduling.automaticRestart = true)
42625// (cpuPlatform = "Intel Skylake"). By default, each expression is an
42626// AND expression. However, you can include AND and OR expressions
42627// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
42628// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
42629// true).
42630func (c *InstanceGroupManagersListCall) Filter(filter string) *InstanceGroupManagersListCall {
42631	c.urlParams_.Set("filter", filter)
42632	return c
42633}
42634
42635// MaxResults sets the optional parameter "maxResults": The maximum
42636// number of results per page that should be returned. If the number of
42637// available results is larger than maxResults, Compute Engine returns a
42638// nextPageToken that can be used to get the next page of results in
42639// subsequent list requests. Acceptable values are 0 to 500, inclusive.
42640// (Default: 500)
42641func (c *InstanceGroupManagersListCall) MaxResults(maxResults int64) *InstanceGroupManagersListCall {
42642	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
42643	return c
42644}
42645
42646// OrderBy sets the optional parameter "orderBy": Sorts list results by
42647// a certain order. By default, results are returned in alphanumerical
42648// order based on the resource name.
42649//
42650// You can also sort results in descending order based on the creation
42651// timestamp using orderBy="creationTimestamp desc". This sorts results
42652// based on the creationTimestamp field in reverse chronological order
42653// (newest result first). Use this to sort resources like operations so
42654// that the newest operation is returned first.
42655//
42656// Currently, only sorting by name or creationTimestamp desc is
42657// supported.
42658func (c *InstanceGroupManagersListCall) OrderBy(orderBy string) *InstanceGroupManagersListCall {
42659	c.urlParams_.Set("orderBy", orderBy)
42660	return c
42661}
42662
42663// PageToken sets the optional parameter "pageToken": Specifies a page
42664// token to use. Set pageToken to the nextPageToken returned by a
42665// previous list request to get the next page of results.
42666func (c *InstanceGroupManagersListCall) PageToken(pageToken string) *InstanceGroupManagersListCall {
42667	c.urlParams_.Set("pageToken", pageToken)
42668	return c
42669}
42670
42671// Fields allows partial responses to be retrieved. See
42672// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
42673// for more information.
42674func (c *InstanceGroupManagersListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListCall {
42675	c.urlParams_.Set("fields", googleapi.CombineFields(s))
42676	return c
42677}
42678
42679// IfNoneMatch sets the optional parameter which makes the operation
42680// fail if the object's ETag matches the given value. This is useful for
42681// getting updates only after the object has changed since the last
42682// request. Use googleapi.IsNotModified to check whether the response
42683// error from Do is the result of In-None-Match.
42684func (c *InstanceGroupManagersListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListCall {
42685	c.ifNoneMatch_ = entityTag
42686	return c
42687}
42688
42689// Context sets the context to be used in this call's Do method. Any
42690// pending HTTP request will be aborted if the provided context is
42691// canceled.
42692func (c *InstanceGroupManagersListCall) Context(ctx context.Context) *InstanceGroupManagersListCall {
42693	c.ctx_ = ctx
42694	return c
42695}
42696
42697// Header returns an http.Header that can be modified by the caller to
42698// add HTTP headers to the request.
42699func (c *InstanceGroupManagersListCall) Header() http.Header {
42700	if c.header_ == nil {
42701		c.header_ = make(http.Header)
42702	}
42703	return c.header_
42704}
42705
42706func (c *InstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
42707	reqHeaders := make(http.Header)
42708	for k, v := range c.header_ {
42709		reqHeaders[k] = v
42710	}
42711	reqHeaders.Set("User-Agent", c.s.userAgent())
42712	if c.ifNoneMatch_ != "" {
42713		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
42714	}
42715	var body io.Reader = nil
42716	c.urlParams_.Set("alt", alt)
42717	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers")
42718	urls += "?" + c.urlParams_.Encode()
42719	req, _ := http.NewRequest("GET", urls, body)
42720	req.Header = reqHeaders
42721	googleapi.Expand(req.URL, map[string]string{
42722		"project": c.project,
42723		"zone":    c.zone,
42724	})
42725	return gensupport.SendRequest(c.ctx_, c.s.client, req)
42726}
42727
42728// Do executes the "compute.instanceGroupManagers.list" call.
42729// Exactly one of *InstanceGroupManagerList or error will be non-nil.
42730// Any non-2xx status code is an error. Response headers are in either
42731// *InstanceGroupManagerList.ServerResponse.Header or (if a response was
42732// returned at all) in error.(*googleapi.Error).Header. Use
42733// googleapi.IsNotModified to check whether the returned error was
42734// because http.StatusNotModified was returned.
42735func (c *InstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerList, error) {
42736	gensupport.SetOptions(c.urlParams_, opts...)
42737	res, err := c.doRequest("json")
42738	if res != nil && res.StatusCode == http.StatusNotModified {
42739		if res.Body != nil {
42740			res.Body.Close()
42741		}
42742		return nil, &googleapi.Error{
42743			Code:   res.StatusCode,
42744			Header: res.Header,
42745		}
42746	}
42747	if err != nil {
42748		return nil, err
42749	}
42750	defer googleapi.CloseBody(res)
42751	if err := googleapi.CheckResponse(res); err != nil {
42752		return nil, err
42753	}
42754	ret := &InstanceGroupManagerList{
42755		ServerResponse: googleapi.ServerResponse{
42756			Header:         res.Header,
42757			HTTPStatusCode: res.StatusCode,
42758		},
42759	}
42760	target := &ret
42761	if err := gensupport.DecodeResponse(target, res); err != nil {
42762		return nil, err
42763	}
42764	return ret, nil
42765	// {
42766	//   "description": "Retrieves a list of managed instance groups that are contained within the specified project and zone.",
42767	//   "httpMethod": "GET",
42768	//   "id": "compute.instanceGroupManagers.list",
42769	//   "parameterOrder": [
42770	//     "project",
42771	//     "zone"
42772	//   ],
42773	//   "parameters": {
42774	//     "filter": {
42775	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
42776	//       "location": "query",
42777	//       "type": "string"
42778	//     },
42779	//     "maxResults": {
42780	//       "default": "500",
42781	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
42782	//       "format": "uint32",
42783	//       "location": "query",
42784	//       "minimum": "0",
42785	//       "type": "integer"
42786	//     },
42787	//     "orderBy": {
42788	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
42789	//       "location": "query",
42790	//       "type": "string"
42791	//     },
42792	//     "pageToken": {
42793	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
42794	//       "location": "query",
42795	//       "type": "string"
42796	//     },
42797	//     "project": {
42798	//       "description": "Project ID for this request.",
42799	//       "location": "path",
42800	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
42801	//       "required": true,
42802	//       "type": "string"
42803	//     },
42804	//     "zone": {
42805	//       "description": "The name of the zone where the managed instance group is located.",
42806	//       "location": "path",
42807	//       "required": true,
42808	//       "type": "string"
42809	//     }
42810	//   },
42811	//   "path": "{project}/zones/{zone}/instanceGroupManagers",
42812	//   "response": {
42813	//     "$ref": "InstanceGroupManagerList"
42814	//   },
42815	//   "scopes": [
42816	//     "https://www.googleapis.com/auth/cloud-platform",
42817	//     "https://www.googleapis.com/auth/compute",
42818	//     "https://www.googleapis.com/auth/compute.readonly"
42819	//   ]
42820	// }
42821
42822}
42823
42824// Pages invokes f for each page of results.
42825// A non-nil error returned from f will halt the iteration.
42826// The provided context supersedes any context provided to the Context method.
42827func (c *InstanceGroupManagersListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerList) error) error {
42828	c.ctx_ = ctx
42829	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
42830	for {
42831		x, err := c.Do()
42832		if err != nil {
42833			return err
42834		}
42835		if err := f(x); err != nil {
42836			return err
42837		}
42838		if x.NextPageToken == "" {
42839			return nil
42840		}
42841		c.PageToken(x.NextPageToken)
42842	}
42843}
42844
42845// method id "compute.instanceGroupManagers.listManagedInstances":
42846
42847type InstanceGroupManagersListManagedInstancesCall struct {
42848	s                    *Service
42849	project              string
42850	zone                 string
42851	instanceGroupManager string
42852	urlParams_           gensupport.URLParams
42853	ctx_                 context.Context
42854	header_              http.Header
42855}
42856
42857// ListManagedInstances: Lists all of the instances in the managed
42858// instance group. Each instance in the list has a currentAction, which
42859// indicates the action that the managed instance group is performing on
42860// the instance. For example, if the group is still creating an
42861// instance, the currentAction is CREATING. If a previous action failed,
42862// the list displays the errors for that failed action.
42863func (r *InstanceGroupManagersService) ListManagedInstances(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListManagedInstancesCall {
42864	c := &InstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
42865	c.project = project
42866	c.zone = zone
42867	c.instanceGroupManager = instanceGroupManager
42868	return c
42869}
42870
42871// Filter sets the optional parameter "filter":
42872func (c *InstanceGroupManagersListManagedInstancesCall) Filter(filter string) *InstanceGroupManagersListManagedInstancesCall {
42873	c.urlParams_.Set("filter", filter)
42874	return c
42875}
42876
42877// MaxResults sets the optional parameter "maxResults":
42878func (c *InstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *InstanceGroupManagersListManagedInstancesCall {
42879	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
42880	return c
42881}
42882
42883// OrderBy sets the optional parameter "order_by":
42884func (c *InstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *InstanceGroupManagersListManagedInstancesCall {
42885	c.urlParams_.Set("order_by", orderBy)
42886	return c
42887}
42888
42889// PageToken sets the optional parameter "pageToken":
42890func (c *InstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *InstanceGroupManagersListManagedInstancesCall {
42891	c.urlParams_.Set("pageToken", pageToken)
42892	return c
42893}
42894
42895// Fields allows partial responses to be retrieved. See
42896// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
42897// for more information.
42898func (c *InstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListManagedInstancesCall {
42899	c.urlParams_.Set("fields", googleapi.CombineFields(s))
42900	return c
42901}
42902
42903// Context sets the context to be used in this call's Do method. Any
42904// pending HTTP request will be aborted if the provided context is
42905// canceled.
42906func (c *InstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *InstanceGroupManagersListManagedInstancesCall {
42907	c.ctx_ = ctx
42908	return c
42909}
42910
42911// Header returns an http.Header that can be modified by the caller to
42912// add HTTP headers to the request.
42913func (c *InstanceGroupManagersListManagedInstancesCall) Header() http.Header {
42914	if c.header_ == nil {
42915		c.header_ = make(http.Header)
42916	}
42917	return c.header_
42918}
42919
42920func (c *InstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
42921	reqHeaders := make(http.Header)
42922	for k, v := range c.header_ {
42923		reqHeaders[k] = v
42924	}
42925	reqHeaders.Set("User-Agent", c.s.userAgent())
42926	var body io.Reader = nil
42927	c.urlParams_.Set("alt", alt)
42928	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
42929	urls += "?" + c.urlParams_.Encode()
42930	req, _ := http.NewRequest("POST", urls, body)
42931	req.Header = reqHeaders
42932	googleapi.Expand(req.URL, map[string]string{
42933		"project":              c.project,
42934		"zone":                 c.zone,
42935		"instanceGroupManager": c.instanceGroupManager,
42936	})
42937	return gensupport.SendRequest(c.ctx_, c.s.client, req)
42938}
42939
42940// Do executes the "compute.instanceGroupManagers.listManagedInstances" call.
42941// Exactly one of *InstanceGroupManagersListManagedInstancesResponse or
42942// error will be non-nil. Any non-2xx status code is an error. Response
42943// headers are in either
42944// *InstanceGroupManagersListManagedInstancesResponse.ServerResponse.Head
42945// er or (if a response was returned at all) in
42946// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
42947// whether the returned error was because http.StatusNotModified was
42948// returned.
42949func (c *InstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListManagedInstancesResponse, error) {
42950	gensupport.SetOptions(c.urlParams_, opts...)
42951	res, err := c.doRequest("json")
42952	if res != nil && res.StatusCode == http.StatusNotModified {
42953		if res.Body != nil {
42954			res.Body.Close()
42955		}
42956		return nil, &googleapi.Error{
42957			Code:   res.StatusCode,
42958			Header: res.Header,
42959		}
42960	}
42961	if err != nil {
42962		return nil, err
42963	}
42964	defer googleapi.CloseBody(res)
42965	if err := googleapi.CheckResponse(res); err != nil {
42966		return nil, err
42967	}
42968	ret := &InstanceGroupManagersListManagedInstancesResponse{
42969		ServerResponse: googleapi.ServerResponse{
42970			Header:         res.Header,
42971			HTTPStatusCode: res.StatusCode,
42972		},
42973	}
42974	target := &ret
42975	if err := gensupport.DecodeResponse(target, res); err != nil {
42976		return nil, err
42977	}
42978	return ret, nil
42979	// {
42980	//   "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.",
42981	//   "httpMethod": "POST",
42982	//   "id": "compute.instanceGroupManagers.listManagedInstances",
42983	//   "parameterOrder": [
42984	//     "project",
42985	//     "zone",
42986	//     "instanceGroupManager"
42987	//   ],
42988	//   "parameters": {
42989	//     "filter": {
42990	//       "location": "query",
42991	//       "type": "string"
42992	//     },
42993	//     "instanceGroupManager": {
42994	//       "description": "The name of the managed instance group.",
42995	//       "location": "path",
42996	//       "required": true,
42997	//       "type": "string"
42998	//     },
42999	//     "maxResults": {
43000	//       "default": "500",
43001	//       "format": "uint32",
43002	//       "location": "query",
43003	//       "minimum": "0",
43004	//       "type": "integer"
43005	//     },
43006	//     "order_by": {
43007	//       "location": "query",
43008	//       "type": "string"
43009	//     },
43010	//     "pageToken": {
43011	//       "location": "query",
43012	//       "type": "string"
43013	//     },
43014	//     "project": {
43015	//       "description": "Project ID for this request.",
43016	//       "location": "path",
43017	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43018	//       "required": true,
43019	//       "type": "string"
43020	//     },
43021	//     "zone": {
43022	//       "description": "The name of the zone where the managed instance group is located.",
43023	//       "location": "path",
43024	//       "required": true,
43025	//       "type": "string"
43026	//     }
43027	//   },
43028	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
43029	//   "response": {
43030	//     "$ref": "InstanceGroupManagersListManagedInstancesResponse"
43031	//   },
43032	//   "scopes": [
43033	//     "https://www.googleapis.com/auth/cloud-platform",
43034	//     "https://www.googleapis.com/auth/compute",
43035	//     "https://www.googleapis.com/auth/compute.readonly"
43036	//   ]
43037	// }
43038
43039}
43040
43041// method id "compute.instanceGroupManagers.recreateInstances":
43042
43043type InstanceGroupManagersRecreateInstancesCall struct {
43044	s                                             *Service
43045	project                                       string
43046	zone                                          string
43047	instanceGroupManager                          string
43048	instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest
43049	urlParams_                                    gensupport.URLParams
43050	ctx_                                          context.Context
43051	header_                                       http.Header
43052}
43053
43054// RecreateInstances: Schedules a group action to recreate the specified
43055// instances in the managed instance group. The instances are deleted
43056// and recreated using the current instance template for the managed
43057// instance group. This operation is marked as DONE when the action is
43058// scheduled even if the instances have not yet been recreated. You must
43059// separately verify the status of the recreating action with the
43060// listmanagedinstances method.
43061//
43062// If the group is part of a backend service that has enabled connection
43063// draining, it can take up to 60 seconds after the connection draining
43064// duration has elapsed before the VM instance is removed or
43065// deleted.
43066//
43067// You can specify a maximum of 1000 instances with this method per
43068// request.
43069func (r *InstanceGroupManagersService) RecreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest) *InstanceGroupManagersRecreateInstancesCall {
43070	c := &InstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43071	c.project = project
43072	c.zone = zone
43073	c.instanceGroupManager = instanceGroupManager
43074	c.instancegroupmanagersrecreateinstancesrequest = instancegroupmanagersrecreateinstancesrequest
43075	return c
43076}
43077
43078// RequestId sets the optional parameter "requestId": An optional
43079// request ID to identify requests. Specify a unique request ID so that
43080// if you must retry your request, the server will know to ignore the
43081// request if it has already been completed.
43082//
43083// For example, consider a situation where you make an initial request
43084// and the request times out. If you make the request again with the
43085// same request ID, the server can check if original operation with the
43086// same request ID was received, and if so, will ignore the second
43087// request. This prevents clients from accidentally creating duplicate
43088// commitments.
43089//
43090// The request ID must be a valid UUID with the exception that zero UUID
43091// is not supported (00000000-0000-0000-0000-000000000000).
43092func (c *InstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersRecreateInstancesCall {
43093	c.urlParams_.Set("requestId", requestId)
43094	return c
43095}
43096
43097// Fields allows partial responses to be retrieved. See
43098// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43099// for more information.
43100func (c *InstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersRecreateInstancesCall {
43101	c.urlParams_.Set("fields", googleapi.CombineFields(s))
43102	return c
43103}
43104
43105// Context sets the context to be used in this call's Do method. Any
43106// pending HTTP request will be aborted if the provided context is
43107// canceled.
43108func (c *InstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersRecreateInstancesCall {
43109	c.ctx_ = ctx
43110	return c
43111}
43112
43113// Header returns an http.Header that can be modified by the caller to
43114// add HTTP headers to the request.
43115func (c *InstanceGroupManagersRecreateInstancesCall) Header() http.Header {
43116	if c.header_ == nil {
43117		c.header_ = make(http.Header)
43118	}
43119	return c.header_
43120}
43121
43122func (c *InstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
43123	reqHeaders := make(http.Header)
43124	for k, v := range c.header_ {
43125		reqHeaders[k] = v
43126	}
43127	reqHeaders.Set("User-Agent", c.s.userAgent())
43128	var body io.Reader = nil
43129	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersrecreateinstancesrequest)
43130	if err != nil {
43131		return nil, err
43132	}
43133	reqHeaders.Set("Content-Type", "application/json")
43134	c.urlParams_.Set("alt", alt)
43135	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
43136	urls += "?" + c.urlParams_.Encode()
43137	req, _ := http.NewRequest("POST", urls, body)
43138	req.Header = reqHeaders
43139	googleapi.Expand(req.URL, map[string]string{
43140		"project":              c.project,
43141		"zone":                 c.zone,
43142		"instanceGroupManager": c.instanceGroupManager,
43143	})
43144	return gensupport.SendRequest(c.ctx_, c.s.client, req)
43145}
43146
43147// Do executes the "compute.instanceGroupManagers.recreateInstances" call.
43148// Exactly one of *Operation or error will be non-nil. Any non-2xx
43149// status code is an error. Response headers are in either
43150// *Operation.ServerResponse.Header or (if a response was returned at
43151// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
43152// to check whether the returned error was because
43153// http.StatusNotModified was returned.
43154func (c *InstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
43155	gensupport.SetOptions(c.urlParams_, opts...)
43156	res, err := c.doRequest("json")
43157	if res != nil && res.StatusCode == http.StatusNotModified {
43158		if res.Body != nil {
43159			res.Body.Close()
43160		}
43161		return nil, &googleapi.Error{
43162			Code:   res.StatusCode,
43163			Header: res.Header,
43164		}
43165	}
43166	if err != nil {
43167		return nil, err
43168	}
43169	defer googleapi.CloseBody(res)
43170	if err := googleapi.CheckResponse(res); err != nil {
43171		return nil, err
43172	}
43173	ret := &Operation{
43174		ServerResponse: googleapi.ServerResponse{
43175			Header:         res.Header,
43176			HTTPStatusCode: res.StatusCode,
43177		},
43178	}
43179	target := &ret
43180	if err := gensupport.DecodeResponse(target, res); err != nil {
43181		return nil, err
43182	}
43183	return ret, nil
43184	// {
43185	//   "description": "Schedules a group action to recreate the specified instances in the managed instance group. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the action is scheduled 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.",
43186	//   "httpMethod": "POST",
43187	//   "id": "compute.instanceGroupManagers.recreateInstances",
43188	//   "parameterOrder": [
43189	//     "project",
43190	//     "zone",
43191	//     "instanceGroupManager"
43192	//   ],
43193	//   "parameters": {
43194	//     "instanceGroupManager": {
43195	//       "description": "The name of the managed instance group.",
43196	//       "location": "path",
43197	//       "required": true,
43198	//       "type": "string"
43199	//     },
43200	//     "project": {
43201	//       "description": "Project ID for this request.",
43202	//       "location": "path",
43203	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43204	//       "required": true,
43205	//       "type": "string"
43206	//     },
43207	//     "requestId": {
43208	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
43209	//       "location": "query",
43210	//       "type": "string"
43211	//     },
43212	//     "zone": {
43213	//       "description": "The name of the zone where the managed instance group is located.",
43214	//       "location": "path",
43215	//       "required": true,
43216	//       "type": "string"
43217	//     }
43218	//   },
43219	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
43220	//   "request": {
43221	//     "$ref": "InstanceGroupManagersRecreateInstancesRequest"
43222	//   },
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.instanceGroupManagers.resize":
43235
43236type InstanceGroupManagersResizeCall struct {
43237	s                    *Service
43238	project              string
43239	zone                 string
43240	instanceGroupManager string
43241	urlParams_           gensupport.URLParams
43242	ctx_                 context.Context
43243	header_              http.Header
43244}
43245
43246// Resize: Resizes the managed instance group. If you increase the size,
43247// the group creates new instances using the current instance template.
43248// If you decrease the size, the group deletes instances. The resize
43249// operation is marked DONE when the resize actions are scheduled even
43250// if the group has not yet added or deleted any instances. You must
43251// separately verify the status of the creating or deleting actions with
43252// the listmanagedinstances method.
43253//
43254// If the group is part of a backend service that has enabled connection
43255// draining, it can take up to 60 seconds after the connection draining
43256// duration has elapsed before the VM instance is removed or deleted.
43257func (r *InstanceGroupManagersService) Resize(project string, zone string, instanceGroupManager string, size int64) *InstanceGroupManagersResizeCall {
43258	c := &InstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43259	c.project = project
43260	c.zone = zone
43261	c.instanceGroupManager = instanceGroupManager
43262	c.urlParams_.Set("size", fmt.Sprint(size))
43263	return c
43264}
43265
43266// RequestId sets the optional parameter "requestId": An optional
43267// request ID to identify requests. Specify a unique request ID so that
43268// if you must retry your request, the server will know to ignore the
43269// request if it has already been completed.
43270//
43271// For example, consider a situation where you make an initial request
43272// and the request times out. If you make the request again with the
43273// same request ID, the server can check if original operation with the
43274// same request ID was received, and if so, will ignore the second
43275// request. This prevents clients from accidentally creating duplicate
43276// commitments.
43277//
43278// The request ID must be a valid UUID with the exception that zero UUID
43279// is not supported (00000000-0000-0000-0000-000000000000).
43280func (c *InstanceGroupManagersResizeCall) RequestId(requestId string) *InstanceGroupManagersResizeCall {
43281	c.urlParams_.Set("requestId", requestId)
43282	return c
43283}
43284
43285// Fields allows partial responses to be retrieved. See
43286// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43287// for more information.
43288func (c *InstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeCall {
43289	c.urlParams_.Set("fields", googleapi.CombineFields(s))
43290	return c
43291}
43292
43293// Context sets the context to be used in this call's Do method. Any
43294// pending HTTP request will be aborted if the provided context is
43295// canceled.
43296func (c *InstanceGroupManagersResizeCall) Context(ctx context.Context) *InstanceGroupManagersResizeCall {
43297	c.ctx_ = ctx
43298	return c
43299}
43300
43301// Header returns an http.Header that can be modified by the caller to
43302// add HTTP headers to the request.
43303func (c *InstanceGroupManagersResizeCall) Header() http.Header {
43304	if c.header_ == nil {
43305		c.header_ = make(http.Header)
43306	}
43307	return c.header_
43308}
43309
43310func (c *InstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
43311	reqHeaders := make(http.Header)
43312	for k, v := range c.header_ {
43313		reqHeaders[k] = v
43314	}
43315	reqHeaders.Set("User-Agent", c.s.userAgent())
43316	var body io.Reader = nil
43317	c.urlParams_.Set("alt", alt)
43318	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize")
43319	urls += "?" + c.urlParams_.Encode()
43320	req, _ := http.NewRequest("POST", urls, body)
43321	req.Header = reqHeaders
43322	googleapi.Expand(req.URL, map[string]string{
43323		"project":              c.project,
43324		"zone":                 c.zone,
43325		"instanceGroupManager": c.instanceGroupManager,
43326	})
43327	return gensupport.SendRequest(c.ctx_, c.s.client, req)
43328}
43329
43330// Do executes the "compute.instanceGroupManagers.resize" call.
43331// Exactly one of *Operation or error will be non-nil. Any non-2xx
43332// status code is an error. Response headers are in either
43333// *Operation.ServerResponse.Header or (if a response was returned at
43334// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
43335// to check whether the returned error was because
43336// http.StatusNotModified was returned.
43337func (c *InstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
43338	gensupport.SetOptions(c.urlParams_, opts...)
43339	res, err := c.doRequest("json")
43340	if res != nil && res.StatusCode == http.StatusNotModified {
43341		if res.Body != nil {
43342			res.Body.Close()
43343		}
43344		return nil, &googleapi.Error{
43345			Code:   res.StatusCode,
43346			Header: res.Header,
43347		}
43348	}
43349	if err != nil {
43350		return nil, err
43351	}
43352	defer googleapi.CloseBody(res)
43353	if err := googleapi.CheckResponse(res); err != nil {
43354		return nil, err
43355	}
43356	ret := &Operation{
43357		ServerResponse: googleapi.ServerResponse{
43358			Header:         res.Header,
43359			HTTPStatusCode: res.StatusCode,
43360		},
43361	}
43362	target := &ret
43363	if err := gensupport.DecodeResponse(target, res); err != nil {
43364		return nil, err
43365	}
43366	return ret, nil
43367	// {
43368	//   "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\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.",
43369	//   "httpMethod": "POST",
43370	//   "id": "compute.instanceGroupManagers.resize",
43371	//   "parameterOrder": [
43372	//     "project",
43373	//     "zone",
43374	//     "instanceGroupManager",
43375	//     "size"
43376	//   ],
43377	//   "parameters": {
43378	//     "instanceGroupManager": {
43379	//       "description": "The name of the managed instance group.",
43380	//       "location": "path",
43381	//       "required": true,
43382	//       "type": "string"
43383	//     },
43384	//     "project": {
43385	//       "description": "Project ID for this request.",
43386	//       "location": "path",
43387	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43388	//       "required": true,
43389	//       "type": "string"
43390	//     },
43391	//     "requestId": {
43392	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
43393	//       "location": "query",
43394	//       "type": "string"
43395	//     },
43396	//     "size": {
43397	//       "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.",
43398	//       "format": "int32",
43399	//       "location": "query",
43400	//       "required": true,
43401	//       "type": "integer"
43402	//     },
43403	//     "zone": {
43404	//       "description": "The name of the zone where the managed instance group is located.",
43405	//       "location": "path",
43406	//       "required": true,
43407	//       "type": "string"
43408	//     }
43409	//   },
43410	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize",
43411	//   "response": {
43412	//     "$ref": "Operation"
43413	//   },
43414	//   "scopes": [
43415	//     "https://www.googleapis.com/auth/cloud-platform",
43416	//     "https://www.googleapis.com/auth/compute"
43417	//   ]
43418	// }
43419
43420}
43421
43422// method id "compute.instanceGroupManagers.setInstanceTemplate":
43423
43424type InstanceGroupManagersSetInstanceTemplateCall struct {
43425	s                                               *Service
43426	project                                         string
43427	zone                                            string
43428	instanceGroupManager                            string
43429	instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest
43430	urlParams_                                      gensupport.URLParams
43431	ctx_                                            context.Context
43432	header_                                         http.Header
43433}
43434
43435// SetInstanceTemplate: Specifies the instance template to use when
43436// creating new instances in this group. The templates for existing
43437// instances in the group do not change unless you recreate them.
43438func (r *InstanceGroupManagersService) SetInstanceTemplate(project string, zone string, instanceGroupManager string, instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest) *InstanceGroupManagersSetInstanceTemplateCall {
43439	c := &InstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43440	c.project = project
43441	c.zone = zone
43442	c.instanceGroupManager = instanceGroupManager
43443	c.instancegroupmanagerssetinstancetemplaterequest = instancegroupmanagerssetinstancetemplaterequest
43444	return c
43445}
43446
43447// RequestId sets the optional parameter "requestId": An optional
43448// request ID to identify requests. Specify a unique request ID so that
43449// if you must retry your request, the server will know to ignore the
43450// request if it has already been completed.
43451//
43452// For example, consider a situation where you make an initial request
43453// and the request times out. If you make the request again with the
43454// same request ID, the server can check if original operation with the
43455// same request ID was received, and if so, will ignore the second
43456// request. This prevents clients from accidentally creating duplicate
43457// commitments.
43458//
43459// The request ID must be a valid UUID with the exception that zero UUID
43460// is not supported (00000000-0000-0000-0000-000000000000).
43461func (c *InstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *InstanceGroupManagersSetInstanceTemplateCall {
43462	c.urlParams_.Set("requestId", requestId)
43463	return c
43464}
43465
43466// Fields allows partial responses to be retrieved. See
43467// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43468// for more information.
43469func (c *InstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetInstanceTemplateCall {
43470	c.urlParams_.Set("fields", googleapi.CombineFields(s))
43471	return c
43472}
43473
43474// Context sets the context to be used in this call's Do method. Any
43475// pending HTTP request will be aborted if the provided context is
43476// canceled.
43477func (c *InstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *InstanceGroupManagersSetInstanceTemplateCall {
43478	c.ctx_ = ctx
43479	return c
43480}
43481
43482// Header returns an http.Header that can be modified by the caller to
43483// add HTTP headers to the request.
43484func (c *InstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
43485	if c.header_ == nil {
43486		c.header_ = make(http.Header)
43487	}
43488	return c.header_
43489}
43490
43491func (c *InstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
43492	reqHeaders := make(http.Header)
43493	for k, v := range c.header_ {
43494		reqHeaders[k] = v
43495	}
43496	reqHeaders.Set("User-Agent", c.s.userAgent())
43497	var body io.Reader = nil
43498	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssetinstancetemplaterequest)
43499	if err != nil {
43500		return nil, err
43501	}
43502	reqHeaders.Set("Content-Type", "application/json")
43503	c.urlParams_.Set("alt", alt)
43504	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
43505	urls += "?" + c.urlParams_.Encode()
43506	req, _ := http.NewRequest("POST", urls, body)
43507	req.Header = reqHeaders
43508	googleapi.Expand(req.URL, map[string]string{
43509		"project":              c.project,
43510		"zone":                 c.zone,
43511		"instanceGroupManager": c.instanceGroupManager,
43512	})
43513	return gensupport.SendRequest(c.ctx_, c.s.client, req)
43514}
43515
43516// Do executes the "compute.instanceGroupManagers.setInstanceTemplate" call.
43517// Exactly one of *Operation or error will be non-nil. Any non-2xx
43518// status code is an error. Response headers are in either
43519// *Operation.ServerResponse.Header or (if a response was returned at
43520// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
43521// to check whether the returned error was because
43522// http.StatusNotModified was returned.
43523func (c *InstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
43524	gensupport.SetOptions(c.urlParams_, opts...)
43525	res, err := c.doRequest("json")
43526	if res != nil && res.StatusCode == http.StatusNotModified {
43527		if res.Body != nil {
43528			res.Body.Close()
43529		}
43530		return nil, &googleapi.Error{
43531			Code:   res.StatusCode,
43532			Header: res.Header,
43533		}
43534	}
43535	if err != nil {
43536		return nil, err
43537	}
43538	defer googleapi.CloseBody(res)
43539	if err := googleapi.CheckResponse(res); err != nil {
43540		return nil, err
43541	}
43542	ret := &Operation{
43543		ServerResponse: googleapi.ServerResponse{
43544			Header:         res.Header,
43545			HTTPStatusCode: res.StatusCode,
43546		},
43547	}
43548	target := &ret
43549	if err := gensupport.DecodeResponse(target, res); err != nil {
43550		return nil, err
43551	}
43552	return ret, nil
43553	// {
43554	//   "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.",
43555	//   "httpMethod": "POST",
43556	//   "id": "compute.instanceGroupManagers.setInstanceTemplate",
43557	//   "parameterOrder": [
43558	//     "project",
43559	//     "zone",
43560	//     "instanceGroupManager"
43561	//   ],
43562	//   "parameters": {
43563	//     "instanceGroupManager": {
43564	//       "description": "The name of the managed instance group.",
43565	//       "location": "path",
43566	//       "required": true,
43567	//       "type": "string"
43568	//     },
43569	//     "project": {
43570	//       "description": "Project ID for this request.",
43571	//       "location": "path",
43572	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43573	//       "required": true,
43574	//       "type": "string"
43575	//     },
43576	//     "requestId": {
43577	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
43578	//       "location": "query",
43579	//       "type": "string"
43580	//     },
43581	//     "zone": {
43582	//       "description": "The name of the zone where the managed instance group is located.",
43583	//       "location": "path",
43584	//       "required": true,
43585	//       "type": "string"
43586	//     }
43587	//   },
43588	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
43589	//   "request": {
43590	//     "$ref": "InstanceGroupManagersSetInstanceTemplateRequest"
43591	//   },
43592	//   "response": {
43593	//     "$ref": "Operation"
43594	//   },
43595	//   "scopes": [
43596	//     "https://www.googleapis.com/auth/cloud-platform",
43597	//     "https://www.googleapis.com/auth/compute"
43598	//   ]
43599	// }
43600
43601}
43602
43603// method id "compute.instanceGroupManagers.setTargetPools":
43604
43605type InstanceGroupManagersSetTargetPoolsCall struct {
43606	s                                          *Service
43607	project                                    string
43608	zone                                       string
43609	instanceGroupManager                       string
43610	instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest
43611	urlParams_                                 gensupport.URLParams
43612	ctx_                                       context.Context
43613	header_                                    http.Header
43614}
43615
43616// SetTargetPools: Modifies the target pools to which all instances in
43617// this managed instance group are assigned. The target pools
43618// automatically apply to all of the instances in the managed instance
43619// group. This operation is marked DONE when you make the request even
43620// if the instances have not yet been added to their target pools. The
43621// change might take some time to apply to all of the instances in the
43622// group depending on the size of the group.
43623func (r *InstanceGroupManagersService) SetTargetPools(project string, zone string, instanceGroupManager string, instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest) *InstanceGroupManagersSetTargetPoolsCall {
43624	c := &InstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43625	c.project = project
43626	c.zone = zone
43627	c.instanceGroupManager = instanceGroupManager
43628	c.instancegroupmanagerssettargetpoolsrequest = instancegroupmanagerssettargetpoolsrequest
43629	return c
43630}
43631
43632// RequestId sets the optional parameter "requestId": An optional
43633// request ID to identify requests. Specify a unique request ID so that
43634// if you must retry your request, the server will know to ignore the
43635// request if it has already been completed.
43636//
43637// For example, consider a situation where you make an initial request
43638// and the request times out. If you make the request again with the
43639// same request ID, the server can check if original operation with the
43640// same request ID was received, and if so, will ignore the second
43641// request. This prevents clients from accidentally creating duplicate
43642// commitments.
43643//
43644// The request ID must be a valid UUID with the exception that zero UUID
43645// is not supported (00000000-0000-0000-0000-000000000000).
43646func (c *InstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *InstanceGroupManagersSetTargetPoolsCall {
43647	c.urlParams_.Set("requestId", requestId)
43648	return c
43649}
43650
43651// Fields allows partial responses to be retrieved. See
43652// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43653// for more information.
43654func (c *InstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetTargetPoolsCall {
43655	c.urlParams_.Set("fields", googleapi.CombineFields(s))
43656	return c
43657}
43658
43659// Context sets the context to be used in this call's Do method. Any
43660// pending HTTP request will be aborted if the provided context is
43661// canceled.
43662func (c *InstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *InstanceGroupManagersSetTargetPoolsCall {
43663	c.ctx_ = ctx
43664	return c
43665}
43666
43667// Header returns an http.Header that can be modified by the caller to
43668// add HTTP headers to the request.
43669func (c *InstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
43670	if c.header_ == nil {
43671		c.header_ = make(http.Header)
43672	}
43673	return c.header_
43674}
43675
43676func (c *InstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
43677	reqHeaders := make(http.Header)
43678	for k, v := range c.header_ {
43679		reqHeaders[k] = v
43680	}
43681	reqHeaders.Set("User-Agent", c.s.userAgent())
43682	var body io.Reader = nil
43683	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssettargetpoolsrequest)
43684	if err != nil {
43685		return nil, err
43686	}
43687	reqHeaders.Set("Content-Type", "application/json")
43688	c.urlParams_.Set("alt", alt)
43689	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
43690	urls += "?" + c.urlParams_.Encode()
43691	req, _ := http.NewRequest("POST", urls, body)
43692	req.Header = reqHeaders
43693	googleapi.Expand(req.URL, map[string]string{
43694		"project":              c.project,
43695		"zone":                 c.zone,
43696		"instanceGroupManager": c.instanceGroupManager,
43697	})
43698	return gensupport.SendRequest(c.ctx_, c.s.client, req)
43699}
43700
43701// Do executes the "compute.instanceGroupManagers.setTargetPools" call.
43702// Exactly one of *Operation or error will be non-nil. Any non-2xx
43703// status code is an error. Response headers are in either
43704// *Operation.ServerResponse.Header or (if a response was returned at
43705// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
43706// to check whether the returned error was because
43707// http.StatusNotModified was returned.
43708func (c *InstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
43709	gensupport.SetOptions(c.urlParams_, opts...)
43710	res, err := c.doRequest("json")
43711	if res != nil && res.StatusCode == http.StatusNotModified {
43712		if res.Body != nil {
43713			res.Body.Close()
43714		}
43715		return nil, &googleapi.Error{
43716			Code:   res.StatusCode,
43717			Header: res.Header,
43718		}
43719	}
43720	if err != nil {
43721		return nil, err
43722	}
43723	defer googleapi.CloseBody(res)
43724	if err := googleapi.CheckResponse(res); err != nil {
43725		return nil, err
43726	}
43727	ret := &Operation{
43728		ServerResponse: googleapi.ServerResponse{
43729			Header:         res.Header,
43730			HTTPStatusCode: res.StatusCode,
43731		},
43732	}
43733	target := &ret
43734	if err := gensupport.DecodeResponse(target, res); err != nil {
43735		return nil, err
43736	}
43737	return ret, nil
43738	// {
43739	//   "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.",
43740	//   "httpMethod": "POST",
43741	//   "id": "compute.instanceGroupManagers.setTargetPools",
43742	//   "parameterOrder": [
43743	//     "project",
43744	//     "zone",
43745	//     "instanceGroupManager"
43746	//   ],
43747	//   "parameters": {
43748	//     "instanceGroupManager": {
43749	//       "description": "The name of the managed instance group.",
43750	//       "location": "path",
43751	//       "required": true,
43752	//       "type": "string"
43753	//     },
43754	//     "project": {
43755	//       "description": "Project ID for this request.",
43756	//       "location": "path",
43757	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43758	//       "required": true,
43759	//       "type": "string"
43760	//     },
43761	//     "requestId": {
43762	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
43763	//       "location": "query",
43764	//       "type": "string"
43765	//     },
43766	//     "zone": {
43767	//       "description": "The name of the zone where the managed instance group is located.",
43768	//       "location": "path",
43769	//       "required": true,
43770	//       "type": "string"
43771	//     }
43772	//   },
43773	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
43774	//   "request": {
43775	//     "$ref": "InstanceGroupManagersSetTargetPoolsRequest"
43776	//   },
43777	//   "response": {
43778	//     "$ref": "Operation"
43779	//   },
43780	//   "scopes": [
43781	//     "https://www.googleapis.com/auth/cloud-platform",
43782	//     "https://www.googleapis.com/auth/compute"
43783	//   ]
43784	// }
43785
43786}
43787
43788// method id "compute.instanceGroups.addInstances":
43789
43790type InstanceGroupsAddInstancesCall struct {
43791	s                                 *Service
43792	project                           string
43793	zone                              string
43794	instanceGroup                     string
43795	instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest
43796	urlParams_                        gensupport.URLParams
43797	ctx_                              context.Context
43798	header_                           http.Header
43799}
43800
43801// AddInstances: Adds a list of instances to the specified instance
43802// group. All of the instances in the instance group must be in the same
43803// network/subnetwork. Read  Adding instances for more information.
43804func (r *InstanceGroupsService) AddInstances(project string, zone string, instanceGroup string, instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest) *InstanceGroupsAddInstancesCall {
43805	c := &InstanceGroupsAddInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43806	c.project = project
43807	c.zone = zone
43808	c.instanceGroup = instanceGroup
43809	c.instancegroupsaddinstancesrequest = instancegroupsaddinstancesrequest
43810	return c
43811}
43812
43813// RequestId sets the optional parameter "requestId": An optional
43814// request ID to identify requests. Specify a unique request ID so that
43815// if you must retry your request, the server will know to ignore the
43816// request if it has already been completed.
43817//
43818// For example, consider a situation where you make an initial request
43819// and the request times out. If you make the request again with the
43820// same request ID, the server can check if original operation with the
43821// same request ID was received, and if so, will ignore the second
43822// request. This prevents clients from accidentally creating duplicate
43823// commitments.
43824//
43825// The request ID must be a valid UUID with the exception that zero UUID
43826// is not supported (00000000-0000-0000-0000-000000000000).
43827func (c *InstanceGroupsAddInstancesCall) RequestId(requestId string) *InstanceGroupsAddInstancesCall {
43828	c.urlParams_.Set("requestId", requestId)
43829	return c
43830}
43831
43832// Fields allows partial responses to be retrieved. See
43833// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43834// for more information.
43835func (c *InstanceGroupsAddInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsAddInstancesCall {
43836	c.urlParams_.Set("fields", googleapi.CombineFields(s))
43837	return c
43838}
43839
43840// Context sets the context to be used in this call's Do method. Any
43841// pending HTTP request will be aborted if the provided context is
43842// canceled.
43843func (c *InstanceGroupsAddInstancesCall) Context(ctx context.Context) *InstanceGroupsAddInstancesCall {
43844	c.ctx_ = ctx
43845	return c
43846}
43847
43848// Header returns an http.Header that can be modified by the caller to
43849// add HTTP headers to the request.
43850func (c *InstanceGroupsAddInstancesCall) Header() http.Header {
43851	if c.header_ == nil {
43852		c.header_ = make(http.Header)
43853	}
43854	return c.header_
43855}
43856
43857func (c *InstanceGroupsAddInstancesCall) doRequest(alt string) (*http.Response, error) {
43858	reqHeaders := make(http.Header)
43859	for k, v := range c.header_ {
43860		reqHeaders[k] = v
43861	}
43862	reqHeaders.Set("User-Agent", c.s.userAgent())
43863	var body io.Reader = nil
43864	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsaddinstancesrequest)
43865	if err != nil {
43866		return nil, err
43867	}
43868	reqHeaders.Set("Content-Type", "application/json")
43869	c.urlParams_.Set("alt", alt)
43870	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances")
43871	urls += "?" + c.urlParams_.Encode()
43872	req, _ := http.NewRequest("POST", urls, body)
43873	req.Header = reqHeaders
43874	googleapi.Expand(req.URL, map[string]string{
43875		"project":       c.project,
43876		"zone":          c.zone,
43877		"instanceGroup": c.instanceGroup,
43878	})
43879	return gensupport.SendRequest(c.ctx_, c.s.client, req)
43880}
43881
43882// Do executes the "compute.instanceGroups.addInstances" call.
43883// Exactly one of *Operation or error will be non-nil. Any non-2xx
43884// status code is an error. Response headers are in either
43885// *Operation.ServerResponse.Header or (if a response was returned at
43886// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
43887// to check whether the returned error was because
43888// http.StatusNotModified was returned.
43889func (c *InstanceGroupsAddInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
43890	gensupport.SetOptions(c.urlParams_, opts...)
43891	res, err := c.doRequest("json")
43892	if res != nil && res.StatusCode == http.StatusNotModified {
43893		if res.Body != nil {
43894			res.Body.Close()
43895		}
43896		return nil, &googleapi.Error{
43897			Code:   res.StatusCode,
43898			Header: res.Header,
43899		}
43900	}
43901	if err != nil {
43902		return nil, err
43903	}
43904	defer googleapi.CloseBody(res)
43905	if err := googleapi.CheckResponse(res); err != nil {
43906		return nil, err
43907	}
43908	ret := &Operation{
43909		ServerResponse: googleapi.ServerResponse{
43910			Header:         res.Header,
43911			HTTPStatusCode: res.StatusCode,
43912		},
43913	}
43914	target := &ret
43915	if err := gensupport.DecodeResponse(target, res); err != nil {
43916		return nil, err
43917	}
43918	return ret, nil
43919	// {
43920	//   "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.",
43921	//   "httpMethod": "POST",
43922	//   "id": "compute.instanceGroups.addInstances",
43923	//   "parameterOrder": [
43924	//     "project",
43925	//     "zone",
43926	//     "instanceGroup"
43927	//   ],
43928	//   "parameters": {
43929	//     "instanceGroup": {
43930	//       "description": "The name of the instance group where you are adding instances.",
43931	//       "location": "path",
43932	//       "required": true,
43933	//       "type": "string"
43934	//     },
43935	//     "project": {
43936	//       "description": "Project ID for this request.",
43937	//       "location": "path",
43938	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43939	//       "required": true,
43940	//       "type": "string"
43941	//     },
43942	//     "requestId": {
43943	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
43944	//       "location": "query",
43945	//       "type": "string"
43946	//     },
43947	//     "zone": {
43948	//       "description": "The name of the zone where the instance group is located.",
43949	//       "location": "path",
43950	//       "required": true,
43951	//       "type": "string"
43952	//     }
43953	//   },
43954	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances",
43955	//   "request": {
43956	//     "$ref": "InstanceGroupsAddInstancesRequest"
43957	//   },
43958	//   "response": {
43959	//     "$ref": "Operation"
43960	//   },
43961	//   "scopes": [
43962	//     "https://www.googleapis.com/auth/cloud-platform",
43963	//     "https://www.googleapis.com/auth/compute"
43964	//   ]
43965	// }
43966
43967}
43968
43969// method id "compute.instanceGroups.aggregatedList":
43970
43971type InstanceGroupsAggregatedListCall struct {
43972	s            *Service
43973	project      string
43974	urlParams_   gensupport.URLParams
43975	ifNoneMatch_ string
43976	ctx_         context.Context
43977	header_      http.Header
43978}
43979
43980// AggregatedList: Retrieves the list of instance groups and sorts them
43981// by zone.
43982func (r *InstanceGroupsService) AggregatedList(project string) *InstanceGroupsAggregatedListCall {
43983	c := &InstanceGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43984	c.project = project
43985	return c
43986}
43987
43988// Filter sets the optional parameter "filter": A filter expression that
43989// filters resources listed in the response. The expression must specify
43990// the field name, a comparison operator, and the value that you want to
43991// use for filtering. The value must be a string, a number, or a
43992// boolean. The comparison operator must be either =, !=, >, or <.
43993//
43994// For example, if you are filtering Compute Engine instances, you can
43995// exclude instances named example-instance by specifying name !=
43996// example-instance.
43997//
43998// You can also filter nested fields. For example, you could specify
43999// scheduling.automaticRestart = false to include instances only if they
44000// are not scheduled for automatic restarts. You can use filtering on
44001// nested fields to filter based on resource labels.
44002//
44003// To filter on multiple expressions, provide each separate expression
44004// within parentheses. For example, (scheduling.automaticRestart = true)
44005// (cpuPlatform = "Intel Skylake"). By default, each expression is an
44006// AND expression. However, you can include AND and OR expressions
44007// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
44008// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
44009// true).
44010func (c *InstanceGroupsAggregatedListCall) Filter(filter string) *InstanceGroupsAggregatedListCall {
44011	c.urlParams_.Set("filter", filter)
44012	return c
44013}
44014
44015// MaxResults sets the optional parameter "maxResults": The maximum
44016// number of results per page that should be returned. If the number of
44017// available results is larger than maxResults, Compute Engine returns a
44018// nextPageToken that can be used to get the next page of results in
44019// subsequent list requests. Acceptable values are 0 to 500, inclusive.
44020// (Default: 500)
44021func (c *InstanceGroupsAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupsAggregatedListCall {
44022	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
44023	return c
44024}
44025
44026// OrderBy sets the optional parameter "orderBy": Sorts list results by
44027// a certain order. By default, results are returned in alphanumerical
44028// order based on the resource name.
44029//
44030// You can also sort results in descending order based on the creation
44031// timestamp using orderBy="creationTimestamp desc". This sorts results
44032// based on the creationTimestamp field in reverse chronological order
44033// (newest result first). Use this to sort resources like operations so
44034// that the newest operation is returned first.
44035//
44036// Currently, only sorting by name or creationTimestamp desc is
44037// supported.
44038func (c *InstanceGroupsAggregatedListCall) OrderBy(orderBy string) *InstanceGroupsAggregatedListCall {
44039	c.urlParams_.Set("orderBy", orderBy)
44040	return c
44041}
44042
44043// PageToken sets the optional parameter "pageToken": Specifies a page
44044// token to use. Set pageToken to the nextPageToken returned by a
44045// previous list request to get the next page of results.
44046func (c *InstanceGroupsAggregatedListCall) PageToken(pageToken string) *InstanceGroupsAggregatedListCall {
44047	c.urlParams_.Set("pageToken", pageToken)
44048	return c
44049}
44050
44051// Fields allows partial responses to be retrieved. See
44052// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44053// for more information.
44054func (c *InstanceGroupsAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupsAggregatedListCall {
44055	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44056	return c
44057}
44058
44059// IfNoneMatch sets the optional parameter which makes the operation
44060// fail if the object's ETag matches the given value. This is useful for
44061// getting updates only after the object has changed since the last
44062// request. Use googleapi.IsNotModified to check whether the response
44063// error from Do is the result of In-None-Match.
44064func (c *InstanceGroupsAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupsAggregatedListCall {
44065	c.ifNoneMatch_ = entityTag
44066	return c
44067}
44068
44069// Context sets the context to be used in this call's Do method. Any
44070// pending HTTP request will be aborted if the provided context is
44071// canceled.
44072func (c *InstanceGroupsAggregatedListCall) Context(ctx context.Context) *InstanceGroupsAggregatedListCall {
44073	c.ctx_ = ctx
44074	return c
44075}
44076
44077// Header returns an http.Header that can be modified by the caller to
44078// add HTTP headers to the request.
44079func (c *InstanceGroupsAggregatedListCall) Header() http.Header {
44080	if c.header_ == nil {
44081		c.header_ = make(http.Header)
44082	}
44083	return c.header_
44084}
44085
44086func (c *InstanceGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
44087	reqHeaders := make(http.Header)
44088	for k, v := range c.header_ {
44089		reqHeaders[k] = v
44090	}
44091	reqHeaders.Set("User-Agent", c.s.userAgent())
44092	if c.ifNoneMatch_ != "" {
44093		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
44094	}
44095	var body io.Reader = nil
44096	c.urlParams_.Set("alt", alt)
44097	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instanceGroups")
44098	urls += "?" + c.urlParams_.Encode()
44099	req, _ := http.NewRequest("GET", urls, body)
44100	req.Header = reqHeaders
44101	googleapi.Expand(req.URL, map[string]string{
44102		"project": c.project,
44103	})
44104	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44105}
44106
44107// Do executes the "compute.instanceGroups.aggregatedList" call.
44108// Exactly one of *InstanceGroupAggregatedList or error will be non-nil.
44109// Any non-2xx status code is an error. Response headers are in either
44110// *InstanceGroupAggregatedList.ServerResponse.Header or (if a response
44111// was returned at all) in error.(*googleapi.Error).Header. Use
44112// googleapi.IsNotModified to check whether the returned error was
44113// because http.StatusNotModified was returned.
44114func (c *InstanceGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupAggregatedList, error) {
44115	gensupport.SetOptions(c.urlParams_, opts...)
44116	res, err := c.doRequest("json")
44117	if res != nil && res.StatusCode == http.StatusNotModified {
44118		if res.Body != nil {
44119			res.Body.Close()
44120		}
44121		return nil, &googleapi.Error{
44122			Code:   res.StatusCode,
44123			Header: res.Header,
44124		}
44125	}
44126	if err != nil {
44127		return nil, err
44128	}
44129	defer googleapi.CloseBody(res)
44130	if err := googleapi.CheckResponse(res); err != nil {
44131		return nil, err
44132	}
44133	ret := &InstanceGroupAggregatedList{
44134		ServerResponse: googleapi.ServerResponse{
44135			Header:         res.Header,
44136			HTTPStatusCode: res.StatusCode,
44137		},
44138	}
44139	target := &ret
44140	if err := gensupport.DecodeResponse(target, res); err != nil {
44141		return nil, err
44142	}
44143	return ret, nil
44144	// {
44145	//   "description": "Retrieves the list of instance groups and sorts them by zone.",
44146	//   "httpMethod": "GET",
44147	//   "id": "compute.instanceGroups.aggregatedList",
44148	//   "parameterOrder": [
44149	//     "project"
44150	//   ],
44151	//   "parameters": {
44152	//     "filter": {
44153	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
44154	//       "location": "query",
44155	//       "type": "string"
44156	//     },
44157	//     "maxResults": {
44158	//       "default": "500",
44159	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
44160	//       "format": "uint32",
44161	//       "location": "query",
44162	//       "minimum": "0",
44163	//       "type": "integer"
44164	//     },
44165	//     "orderBy": {
44166	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
44167	//       "location": "query",
44168	//       "type": "string"
44169	//     },
44170	//     "pageToken": {
44171	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
44172	//       "location": "query",
44173	//       "type": "string"
44174	//     },
44175	//     "project": {
44176	//       "description": "Project ID for this request.",
44177	//       "location": "path",
44178	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44179	//       "required": true,
44180	//       "type": "string"
44181	//     }
44182	//   },
44183	//   "path": "{project}/aggregated/instanceGroups",
44184	//   "response": {
44185	//     "$ref": "InstanceGroupAggregatedList"
44186	//   },
44187	//   "scopes": [
44188	//     "https://www.googleapis.com/auth/cloud-platform",
44189	//     "https://www.googleapis.com/auth/compute",
44190	//     "https://www.googleapis.com/auth/compute.readonly"
44191	//   ]
44192	// }
44193
44194}
44195
44196// Pages invokes f for each page of results.
44197// A non-nil error returned from f will halt the iteration.
44198// The provided context supersedes any context provided to the Context method.
44199func (c *InstanceGroupsAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupAggregatedList) error) error {
44200	c.ctx_ = ctx
44201	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
44202	for {
44203		x, err := c.Do()
44204		if err != nil {
44205			return err
44206		}
44207		if err := f(x); err != nil {
44208			return err
44209		}
44210		if x.NextPageToken == "" {
44211			return nil
44212		}
44213		c.PageToken(x.NextPageToken)
44214	}
44215}
44216
44217// method id "compute.instanceGroups.delete":
44218
44219type InstanceGroupsDeleteCall struct {
44220	s             *Service
44221	project       string
44222	zone          string
44223	instanceGroup string
44224	urlParams_    gensupport.URLParams
44225	ctx_          context.Context
44226	header_       http.Header
44227}
44228
44229// Delete: Deletes the specified instance group. The instances in the
44230// group are not deleted. Note that instance group must not belong to a
44231// backend service. Read  Deleting an instance group for more
44232// information.
44233func (r *InstanceGroupsService) Delete(project string, zone string, instanceGroup string) *InstanceGroupsDeleteCall {
44234	c := &InstanceGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44235	c.project = project
44236	c.zone = zone
44237	c.instanceGroup = instanceGroup
44238	return c
44239}
44240
44241// RequestId sets the optional parameter "requestId": An optional
44242// request ID to identify requests. Specify a unique request ID so that
44243// if you must retry your request, the server will know to ignore the
44244// request if it has already been completed.
44245//
44246// For example, consider a situation where you make an initial request
44247// and the request times out. If you make the request again with the
44248// same request ID, the server can check if original operation with the
44249// same request ID was received, and if so, will ignore the second
44250// request. This prevents clients from accidentally creating duplicate
44251// commitments.
44252//
44253// The request ID must be a valid UUID with the exception that zero UUID
44254// is not supported (00000000-0000-0000-0000-000000000000).
44255func (c *InstanceGroupsDeleteCall) RequestId(requestId string) *InstanceGroupsDeleteCall {
44256	c.urlParams_.Set("requestId", requestId)
44257	return c
44258}
44259
44260// Fields allows partial responses to be retrieved. See
44261// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44262// for more information.
44263func (c *InstanceGroupsDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupsDeleteCall {
44264	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44265	return c
44266}
44267
44268// Context sets the context to be used in this call's Do method. Any
44269// pending HTTP request will be aborted if the provided context is
44270// canceled.
44271func (c *InstanceGroupsDeleteCall) Context(ctx context.Context) *InstanceGroupsDeleteCall {
44272	c.ctx_ = ctx
44273	return c
44274}
44275
44276// Header returns an http.Header that can be modified by the caller to
44277// add HTTP headers to the request.
44278func (c *InstanceGroupsDeleteCall) Header() http.Header {
44279	if c.header_ == nil {
44280		c.header_ = make(http.Header)
44281	}
44282	return c.header_
44283}
44284
44285func (c *InstanceGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
44286	reqHeaders := make(http.Header)
44287	for k, v := range c.header_ {
44288		reqHeaders[k] = v
44289	}
44290	reqHeaders.Set("User-Agent", c.s.userAgent())
44291	var body io.Reader = nil
44292	c.urlParams_.Set("alt", alt)
44293	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}")
44294	urls += "?" + c.urlParams_.Encode()
44295	req, _ := http.NewRequest("DELETE", urls, body)
44296	req.Header = reqHeaders
44297	googleapi.Expand(req.URL, map[string]string{
44298		"project":       c.project,
44299		"zone":          c.zone,
44300		"instanceGroup": c.instanceGroup,
44301	})
44302	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44303}
44304
44305// Do executes the "compute.instanceGroups.delete" call.
44306// Exactly one of *Operation or error will be non-nil. Any non-2xx
44307// status code is an error. Response headers are in either
44308// *Operation.ServerResponse.Header or (if a response was returned at
44309// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
44310// to check whether the returned error was because
44311// http.StatusNotModified was returned.
44312func (c *InstanceGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
44313	gensupport.SetOptions(c.urlParams_, opts...)
44314	res, err := c.doRequest("json")
44315	if res != nil && res.StatusCode == http.StatusNotModified {
44316		if res.Body != nil {
44317			res.Body.Close()
44318		}
44319		return nil, &googleapi.Error{
44320			Code:   res.StatusCode,
44321			Header: res.Header,
44322		}
44323	}
44324	if err != nil {
44325		return nil, err
44326	}
44327	defer googleapi.CloseBody(res)
44328	if err := googleapi.CheckResponse(res); err != nil {
44329		return nil, err
44330	}
44331	ret := &Operation{
44332		ServerResponse: googleapi.ServerResponse{
44333			Header:         res.Header,
44334			HTTPStatusCode: res.StatusCode,
44335		},
44336	}
44337	target := &ret
44338	if err := gensupport.DecodeResponse(target, res); err != nil {
44339		return nil, err
44340	}
44341	return ret, nil
44342	// {
44343	//   "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.",
44344	//   "httpMethod": "DELETE",
44345	//   "id": "compute.instanceGroups.delete",
44346	//   "parameterOrder": [
44347	//     "project",
44348	//     "zone",
44349	//     "instanceGroup"
44350	//   ],
44351	//   "parameters": {
44352	//     "instanceGroup": {
44353	//       "description": "The name of the instance group to delete.",
44354	//       "location": "path",
44355	//       "required": true,
44356	//       "type": "string"
44357	//     },
44358	//     "project": {
44359	//       "description": "Project ID for this request.",
44360	//       "location": "path",
44361	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44362	//       "required": true,
44363	//       "type": "string"
44364	//     },
44365	//     "requestId": {
44366	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
44367	//       "location": "query",
44368	//       "type": "string"
44369	//     },
44370	//     "zone": {
44371	//       "description": "The name of the zone where the instance group is located.",
44372	//       "location": "path",
44373	//       "required": true,
44374	//       "type": "string"
44375	//     }
44376	//   },
44377	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}",
44378	//   "response": {
44379	//     "$ref": "Operation"
44380	//   },
44381	//   "scopes": [
44382	//     "https://www.googleapis.com/auth/cloud-platform",
44383	//     "https://www.googleapis.com/auth/compute"
44384	//   ]
44385	// }
44386
44387}
44388
44389// method id "compute.instanceGroups.get":
44390
44391type InstanceGroupsGetCall struct {
44392	s             *Service
44393	project       string
44394	zone          string
44395	instanceGroup string
44396	urlParams_    gensupport.URLParams
44397	ifNoneMatch_  string
44398	ctx_          context.Context
44399	header_       http.Header
44400}
44401
44402// Get: Returns the specified instance group. Gets a list of available
44403// instance groups by making a list() request.
44404func (r *InstanceGroupsService) Get(project string, zone string, instanceGroup string) *InstanceGroupsGetCall {
44405	c := &InstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44406	c.project = project
44407	c.zone = zone
44408	c.instanceGroup = instanceGroup
44409	return c
44410}
44411
44412// Fields allows partial responses to be retrieved. See
44413// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44414// for more information.
44415func (c *InstanceGroupsGetCall) Fields(s ...googleapi.Field) *InstanceGroupsGetCall {
44416	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44417	return c
44418}
44419
44420// IfNoneMatch sets the optional parameter which makes the operation
44421// fail if the object's ETag matches the given value. This is useful for
44422// getting updates only after the object has changed since the last
44423// request. Use googleapi.IsNotModified to check whether the response
44424// error from Do is the result of In-None-Match.
44425func (c *InstanceGroupsGetCall) IfNoneMatch(entityTag string) *InstanceGroupsGetCall {
44426	c.ifNoneMatch_ = entityTag
44427	return c
44428}
44429
44430// Context sets the context to be used in this call's Do method. Any
44431// pending HTTP request will be aborted if the provided context is
44432// canceled.
44433func (c *InstanceGroupsGetCall) Context(ctx context.Context) *InstanceGroupsGetCall {
44434	c.ctx_ = ctx
44435	return c
44436}
44437
44438// Header returns an http.Header that can be modified by the caller to
44439// add HTTP headers to the request.
44440func (c *InstanceGroupsGetCall) Header() http.Header {
44441	if c.header_ == nil {
44442		c.header_ = make(http.Header)
44443	}
44444	return c.header_
44445}
44446
44447func (c *InstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
44448	reqHeaders := make(http.Header)
44449	for k, v := range c.header_ {
44450		reqHeaders[k] = v
44451	}
44452	reqHeaders.Set("User-Agent", c.s.userAgent())
44453	if c.ifNoneMatch_ != "" {
44454		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
44455	}
44456	var body io.Reader = nil
44457	c.urlParams_.Set("alt", alt)
44458	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}")
44459	urls += "?" + c.urlParams_.Encode()
44460	req, _ := http.NewRequest("GET", urls, body)
44461	req.Header = reqHeaders
44462	googleapi.Expand(req.URL, map[string]string{
44463		"project":       c.project,
44464		"zone":          c.zone,
44465		"instanceGroup": c.instanceGroup,
44466	})
44467	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44468}
44469
44470// Do executes the "compute.instanceGroups.get" call.
44471// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
44472// status code is an error. Response headers are in either
44473// *InstanceGroup.ServerResponse.Header or (if a response was returned
44474// at all) in error.(*googleapi.Error).Header. Use
44475// googleapi.IsNotModified to check whether the returned error was
44476// because http.StatusNotModified was returned.
44477func (c *InstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
44478	gensupport.SetOptions(c.urlParams_, opts...)
44479	res, err := c.doRequest("json")
44480	if res != nil && res.StatusCode == http.StatusNotModified {
44481		if res.Body != nil {
44482			res.Body.Close()
44483		}
44484		return nil, &googleapi.Error{
44485			Code:   res.StatusCode,
44486			Header: res.Header,
44487		}
44488	}
44489	if err != nil {
44490		return nil, err
44491	}
44492	defer googleapi.CloseBody(res)
44493	if err := googleapi.CheckResponse(res); err != nil {
44494		return nil, err
44495	}
44496	ret := &InstanceGroup{
44497		ServerResponse: googleapi.ServerResponse{
44498			Header:         res.Header,
44499			HTTPStatusCode: res.StatusCode,
44500		},
44501	}
44502	target := &ret
44503	if err := gensupport.DecodeResponse(target, res); err != nil {
44504		return nil, err
44505	}
44506	return ret, nil
44507	// {
44508	//   "description": "Returns the specified instance group. Gets a list of available instance groups by making a list() request.",
44509	//   "httpMethod": "GET",
44510	//   "id": "compute.instanceGroups.get",
44511	//   "parameterOrder": [
44512	//     "project",
44513	//     "zone",
44514	//     "instanceGroup"
44515	//   ],
44516	//   "parameters": {
44517	//     "instanceGroup": {
44518	//       "description": "The name of the instance group.",
44519	//       "location": "path",
44520	//       "required": true,
44521	//       "type": "string"
44522	//     },
44523	//     "project": {
44524	//       "description": "Project ID for this request.",
44525	//       "location": "path",
44526	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44527	//       "required": true,
44528	//       "type": "string"
44529	//     },
44530	//     "zone": {
44531	//       "description": "The name of the zone where the instance group is located.",
44532	//       "location": "path",
44533	//       "required": true,
44534	//       "type": "string"
44535	//     }
44536	//   },
44537	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}",
44538	//   "response": {
44539	//     "$ref": "InstanceGroup"
44540	//   },
44541	//   "scopes": [
44542	//     "https://www.googleapis.com/auth/cloud-platform",
44543	//     "https://www.googleapis.com/auth/compute",
44544	//     "https://www.googleapis.com/auth/compute.readonly"
44545	//   ]
44546	// }
44547
44548}
44549
44550// method id "compute.instanceGroups.insert":
44551
44552type InstanceGroupsInsertCall struct {
44553	s             *Service
44554	project       string
44555	zone          string
44556	instancegroup *InstanceGroup
44557	urlParams_    gensupport.URLParams
44558	ctx_          context.Context
44559	header_       http.Header
44560}
44561
44562// Insert: Creates an instance group in the specified project using the
44563// parameters that are included in the request.
44564func (r *InstanceGroupsService) Insert(project string, zone string, instancegroup *InstanceGroup) *InstanceGroupsInsertCall {
44565	c := &InstanceGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44566	c.project = project
44567	c.zone = zone
44568	c.instancegroup = instancegroup
44569	return c
44570}
44571
44572// RequestId sets the optional parameter "requestId": An optional
44573// request ID to identify requests. Specify a unique request ID so that
44574// if you must retry your request, the server will know to ignore the
44575// request if it has already been completed.
44576//
44577// For example, consider a situation where you make an initial request
44578// and the request times out. If you make the request again with the
44579// same request ID, the server can check if original operation with the
44580// same request ID was received, and if so, will ignore the second
44581// request. This prevents clients from accidentally creating duplicate
44582// commitments.
44583//
44584// The request ID must be a valid UUID with the exception that zero UUID
44585// is not supported (00000000-0000-0000-0000-000000000000).
44586func (c *InstanceGroupsInsertCall) RequestId(requestId string) *InstanceGroupsInsertCall {
44587	c.urlParams_.Set("requestId", requestId)
44588	return c
44589}
44590
44591// Fields allows partial responses to be retrieved. See
44592// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44593// for more information.
44594func (c *InstanceGroupsInsertCall) Fields(s ...googleapi.Field) *InstanceGroupsInsertCall {
44595	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44596	return c
44597}
44598
44599// Context sets the context to be used in this call's Do method. Any
44600// pending HTTP request will be aborted if the provided context is
44601// canceled.
44602func (c *InstanceGroupsInsertCall) Context(ctx context.Context) *InstanceGroupsInsertCall {
44603	c.ctx_ = ctx
44604	return c
44605}
44606
44607// Header returns an http.Header that can be modified by the caller to
44608// add HTTP headers to the request.
44609func (c *InstanceGroupsInsertCall) Header() http.Header {
44610	if c.header_ == nil {
44611		c.header_ = make(http.Header)
44612	}
44613	return c.header_
44614}
44615
44616func (c *InstanceGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
44617	reqHeaders := make(http.Header)
44618	for k, v := range c.header_ {
44619		reqHeaders[k] = v
44620	}
44621	reqHeaders.Set("User-Agent", c.s.userAgent())
44622	var body io.Reader = nil
44623	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroup)
44624	if err != nil {
44625		return nil, err
44626	}
44627	reqHeaders.Set("Content-Type", "application/json")
44628	c.urlParams_.Set("alt", alt)
44629	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups")
44630	urls += "?" + c.urlParams_.Encode()
44631	req, _ := http.NewRequest("POST", urls, body)
44632	req.Header = reqHeaders
44633	googleapi.Expand(req.URL, map[string]string{
44634		"project": c.project,
44635		"zone":    c.zone,
44636	})
44637	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44638}
44639
44640// Do executes the "compute.instanceGroups.insert" call.
44641// Exactly one of *Operation or error will be non-nil. Any non-2xx
44642// status code is an error. Response headers are in either
44643// *Operation.ServerResponse.Header or (if a response was returned at
44644// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
44645// to check whether the returned error was because
44646// http.StatusNotModified was returned.
44647func (c *InstanceGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
44648	gensupport.SetOptions(c.urlParams_, opts...)
44649	res, err := c.doRequest("json")
44650	if res != nil && res.StatusCode == http.StatusNotModified {
44651		if res.Body != nil {
44652			res.Body.Close()
44653		}
44654		return nil, &googleapi.Error{
44655			Code:   res.StatusCode,
44656			Header: res.Header,
44657		}
44658	}
44659	if err != nil {
44660		return nil, err
44661	}
44662	defer googleapi.CloseBody(res)
44663	if err := googleapi.CheckResponse(res); err != nil {
44664		return nil, err
44665	}
44666	ret := &Operation{
44667		ServerResponse: googleapi.ServerResponse{
44668			Header:         res.Header,
44669			HTTPStatusCode: res.StatusCode,
44670		},
44671	}
44672	target := &ret
44673	if err := gensupport.DecodeResponse(target, res); err != nil {
44674		return nil, err
44675	}
44676	return ret, nil
44677	// {
44678	//   "description": "Creates an instance group in the specified project using the parameters that are included in the request.",
44679	//   "httpMethod": "POST",
44680	//   "id": "compute.instanceGroups.insert",
44681	//   "parameterOrder": [
44682	//     "project",
44683	//     "zone"
44684	//   ],
44685	//   "parameters": {
44686	//     "project": {
44687	//       "description": "Project ID for this request.",
44688	//       "location": "path",
44689	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44690	//       "required": true,
44691	//       "type": "string"
44692	//     },
44693	//     "requestId": {
44694	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
44695	//       "location": "query",
44696	//       "type": "string"
44697	//     },
44698	//     "zone": {
44699	//       "description": "The name of the zone where you want to create the instance group.",
44700	//       "location": "path",
44701	//       "required": true,
44702	//       "type": "string"
44703	//     }
44704	//   },
44705	//   "path": "{project}/zones/{zone}/instanceGroups",
44706	//   "request": {
44707	//     "$ref": "InstanceGroup"
44708	//   },
44709	//   "response": {
44710	//     "$ref": "Operation"
44711	//   },
44712	//   "scopes": [
44713	//     "https://www.googleapis.com/auth/cloud-platform",
44714	//     "https://www.googleapis.com/auth/compute"
44715	//   ]
44716	// }
44717
44718}
44719
44720// method id "compute.instanceGroups.list":
44721
44722type InstanceGroupsListCall struct {
44723	s            *Service
44724	project      string
44725	zone         string
44726	urlParams_   gensupport.URLParams
44727	ifNoneMatch_ string
44728	ctx_         context.Context
44729	header_      http.Header
44730}
44731
44732// List: Retrieves the list of instance groups that are located in the
44733// specified project and zone.
44734func (r *InstanceGroupsService) List(project string, zone string) *InstanceGroupsListCall {
44735	c := &InstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44736	c.project = project
44737	c.zone = zone
44738	return c
44739}
44740
44741// Filter sets the optional parameter "filter": A filter expression that
44742// filters resources listed in the response. The expression must specify
44743// the field name, a comparison operator, and the value that you want to
44744// use for filtering. The value must be a string, a number, or a
44745// boolean. The comparison operator must be either =, !=, >, or <.
44746//
44747// For example, if you are filtering Compute Engine instances, you can
44748// exclude instances named example-instance by specifying name !=
44749// example-instance.
44750//
44751// You can also filter nested fields. For example, you could specify
44752// scheduling.automaticRestart = false to include instances only if they
44753// are not scheduled for automatic restarts. You can use filtering on
44754// nested fields to filter based on resource labels.
44755//
44756// To filter on multiple expressions, provide each separate expression
44757// within parentheses. For example, (scheduling.automaticRestart = true)
44758// (cpuPlatform = "Intel Skylake"). By default, each expression is an
44759// AND expression. However, you can include AND and OR expressions
44760// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
44761// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
44762// true).
44763func (c *InstanceGroupsListCall) Filter(filter string) *InstanceGroupsListCall {
44764	c.urlParams_.Set("filter", filter)
44765	return c
44766}
44767
44768// MaxResults sets the optional parameter "maxResults": The maximum
44769// number of results per page that should be returned. If the number of
44770// available results is larger than maxResults, Compute Engine returns a
44771// nextPageToken that can be used to get the next page of results in
44772// subsequent list requests. Acceptable values are 0 to 500, inclusive.
44773// (Default: 500)
44774func (c *InstanceGroupsListCall) MaxResults(maxResults int64) *InstanceGroupsListCall {
44775	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
44776	return c
44777}
44778
44779// OrderBy sets the optional parameter "orderBy": Sorts list results by
44780// a certain order. By default, results are returned in alphanumerical
44781// order based on the resource name.
44782//
44783// You can also sort results in descending order based on the creation
44784// timestamp using orderBy="creationTimestamp desc". This sorts results
44785// based on the creationTimestamp field in reverse chronological order
44786// (newest result first). Use this to sort resources like operations so
44787// that the newest operation is returned first.
44788//
44789// Currently, only sorting by name or creationTimestamp desc is
44790// supported.
44791func (c *InstanceGroupsListCall) OrderBy(orderBy string) *InstanceGroupsListCall {
44792	c.urlParams_.Set("orderBy", orderBy)
44793	return c
44794}
44795
44796// PageToken sets the optional parameter "pageToken": Specifies a page
44797// token to use. Set pageToken to the nextPageToken returned by a
44798// previous list request to get the next page of results.
44799func (c *InstanceGroupsListCall) PageToken(pageToken string) *InstanceGroupsListCall {
44800	c.urlParams_.Set("pageToken", pageToken)
44801	return c
44802}
44803
44804// Fields allows partial responses to be retrieved. See
44805// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44806// for more information.
44807func (c *InstanceGroupsListCall) Fields(s ...googleapi.Field) *InstanceGroupsListCall {
44808	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44809	return c
44810}
44811
44812// IfNoneMatch sets the optional parameter which makes the operation
44813// fail if the object's ETag matches the given value. This is useful for
44814// getting updates only after the object has changed since the last
44815// request. Use googleapi.IsNotModified to check whether the response
44816// error from Do is the result of In-None-Match.
44817func (c *InstanceGroupsListCall) IfNoneMatch(entityTag string) *InstanceGroupsListCall {
44818	c.ifNoneMatch_ = entityTag
44819	return c
44820}
44821
44822// Context sets the context to be used in this call's Do method. Any
44823// pending HTTP request will be aborted if the provided context is
44824// canceled.
44825func (c *InstanceGroupsListCall) Context(ctx context.Context) *InstanceGroupsListCall {
44826	c.ctx_ = ctx
44827	return c
44828}
44829
44830// Header returns an http.Header that can be modified by the caller to
44831// add HTTP headers to the request.
44832func (c *InstanceGroupsListCall) Header() http.Header {
44833	if c.header_ == nil {
44834		c.header_ = make(http.Header)
44835	}
44836	return c.header_
44837}
44838
44839func (c *InstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
44840	reqHeaders := make(http.Header)
44841	for k, v := range c.header_ {
44842		reqHeaders[k] = v
44843	}
44844	reqHeaders.Set("User-Agent", c.s.userAgent())
44845	if c.ifNoneMatch_ != "" {
44846		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
44847	}
44848	var body io.Reader = nil
44849	c.urlParams_.Set("alt", alt)
44850	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups")
44851	urls += "?" + c.urlParams_.Encode()
44852	req, _ := http.NewRequest("GET", urls, body)
44853	req.Header = reqHeaders
44854	googleapi.Expand(req.URL, map[string]string{
44855		"project": c.project,
44856		"zone":    c.zone,
44857	})
44858	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44859}
44860
44861// Do executes the "compute.instanceGroups.list" call.
44862// Exactly one of *InstanceGroupList or error will be non-nil. Any
44863// non-2xx status code is an error. Response headers are in either
44864// *InstanceGroupList.ServerResponse.Header or (if a response was
44865// returned at all) in error.(*googleapi.Error).Header. Use
44866// googleapi.IsNotModified to check whether the returned error was
44867// because http.StatusNotModified was returned.
44868func (c *InstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupList, error) {
44869	gensupport.SetOptions(c.urlParams_, opts...)
44870	res, err := c.doRequest("json")
44871	if res != nil && res.StatusCode == http.StatusNotModified {
44872		if res.Body != nil {
44873			res.Body.Close()
44874		}
44875		return nil, &googleapi.Error{
44876			Code:   res.StatusCode,
44877			Header: res.Header,
44878		}
44879	}
44880	if err != nil {
44881		return nil, err
44882	}
44883	defer googleapi.CloseBody(res)
44884	if err := googleapi.CheckResponse(res); err != nil {
44885		return nil, err
44886	}
44887	ret := &InstanceGroupList{
44888		ServerResponse: googleapi.ServerResponse{
44889			Header:         res.Header,
44890			HTTPStatusCode: res.StatusCode,
44891		},
44892	}
44893	target := &ret
44894	if err := gensupport.DecodeResponse(target, res); err != nil {
44895		return nil, err
44896	}
44897	return ret, nil
44898	// {
44899	//   "description": "Retrieves the list of instance groups that are located in the specified project and zone.",
44900	//   "httpMethod": "GET",
44901	//   "id": "compute.instanceGroups.list",
44902	//   "parameterOrder": [
44903	//     "project",
44904	//     "zone"
44905	//   ],
44906	//   "parameters": {
44907	//     "filter": {
44908	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
44909	//       "location": "query",
44910	//       "type": "string"
44911	//     },
44912	//     "maxResults": {
44913	//       "default": "500",
44914	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
44915	//       "format": "uint32",
44916	//       "location": "query",
44917	//       "minimum": "0",
44918	//       "type": "integer"
44919	//     },
44920	//     "orderBy": {
44921	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
44922	//       "location": "query",
44923	//       "type": "string"
44924	//     },
44925	//     "pageToken": {
44926	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
44927	//       "location": "query",
44928	//       "type": "string"
44929	//     },
44930	//     "project": {
44931	//       "description": "Project ID for this request.",
44932	//       "location": "path",
44933	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44934	//       "required": true,
44935	//       "type": "string"
44936	//     },
44937	//     "zone": {
44938	//       "description": "The name of the zone where the instance group is located.",
44939	//       "location": "path",
44940	//       "required": true,
44941	//       "type": "string"
44942	//     }
44943	//   },
44944	//   "path": "{project}/zones/{zone}/instanceGroups",
44945	//   "response": {
44946	//     "$ref": "InstanceGroupList"
44947	//   },
44948	//   "scopes": [
44949	//     "https://www.googleapis.com/auth/cloud-platform",
44950	//     "https://www.googleapis.com/auth/compute",
44951	//     "https://www.googleapis.com/auth/compute.readonly"
44952	//   ]
44953	// }
44954
44955}
44956
44957// Pages invokes f for each page of results.
44958// A non-nil error returned from f will halt the iteration.
44959// The provided context supersedes any context provided to the Context method.
44960func (c *InstanceGroupsListCall) Pages(ctx context.Context, f func(*InstanceGroupList) error) error {
44961	c.ctx_ = ctx
44962	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
44963	for {
44964		x, err := c.Do()
44965		if err != nil {
44966			return err
44967		}
44968		if err := f(x); err != nil {
44969			return err
44970		}
44971		if x.NextPageToken == "" {
44972			return nil
44973		}
44974		c.PageToken(x.NextPageToken)
44975	}
44976}
44977
44978// method id "compute.instanceGroups.listInstances":
44979
44980type InstanceGroupsListInstancesCall struct {
44981	s                                  *Service
44982	project                            string
44983	zone                               string
44984	instanceGroup                      string
44985	instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest
44986	urlParams_                         gensupport.URLParams
44987	ctx_                               context.Context
44988	header_                            http.Header
44989}
44990
44991// ListInstances: Lists the instances in the specified instance group.
44992func (r *InstanceGroupsService) ListInstances(project string, zone string, instanceGroup string, instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest) *InstanceGroupsListInstancesCall {
44993	c := &InstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44994	c.project = project
44995	c.zone = zone
44996	c.instanceGroup = instanceGroup
44997	c.instancegroupslistinstancesrequest = instancegroupslistinstancesrequest
44998	return c
44999}
45000
45001// Filter sets the optional parameter "filter": A filter expression that
45002// filters resources listed in the response. The expression must specify
45003// the field name, a comparison operator, and the value that you want to
45004// use for filtering. The value must be a string, a number, or a
45005// boolean. The comparison operator must be either =, !=, >, or <.
45006//
45007// For example, if you are filtering Compute Engine instances, you can
45008// exclude instances named example-instance by specifying name !=
45009// example-instance.
45010//
45011// You can also filter nested fields. For example, you could specify
45012// scheduling.automaticRestart = false to include instances only if they
45013// are not scheduled for automatic restarts. You can use filtering on
45014// nested fields to filter based on resource labels.
45015//
45016// To filter on multiple expressions, provide each separate expression
45017// within parentheses. For example, (scheduling.automaticRestart = true)
45018// (cpuPlatform = "Intel Skylake"). By default, each expression is an
45019// AND expression. However, you can include AND and OR expressions
45020// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
45021// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
45022// true).
45023func (c *InstanceGroupsListInstancesCall) Filter(filter string) *InstanceGroupsListInstancesCall {
45024	c.urlParams_.Set("filter", filter)
45025	return c
45026}
45027
45028// MaxResults sets the optional parameter "maxResults": The maximum
45029// number of results per page that should be returned. If the number of
45030// available results is larger than maxResults, Compute Engine returns a
45031// nextPageToken that can be used to get the next page of results in
45032// subsequent list requests. Acceptable values are 0 to 500, inclusive.
45033// (Default: 500)
45034func (c *InstanceGroupsListInstancesCall) MaxResults(maxResults int64) *InstanceGroupsListInstancesCall {
45035	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
45036	return c
45037}
45038
45039// OrderBy sets the optional parameter "orderBy": Sorts list results by
45040// a certain order. By default, results are returned in alphanumerical
45041// order based on the resource name.
45042//
45043// You can also sort results in descending order based on the creation
45044// timestamp using orderBy="creationTimestamp desc". This sorts results
45045// based on the creationTimestamp field in reverse chronological order
45046// (newest result first). Use this to sort resources like operations so
45047// that the newest operation is returned first.
45048//
45049// Currently, only sorting by name or creationTimestamp desc is
45050// supported.
45051func (c *InstanceGroupsListInstancesCall) OrderBy(orderBy string) *InstanceGroupsListInstancesCall {
45052	c.urlParams_.Set("orderBy", orderBy)
45053	return c
45054}
45055
45056// PageToken sets the optional parameter "pageToken": Specifies a page
45057// token to use. Set pageToken to the nextPageToken returned by a
45058// previous list request to get the next page of results.
45059func (c *InstanceGroupsListInstancesCall) PageToken(pageToken string) *InstanceGroupsListInstancesCall {
45060	c.urlParams_.Set("pageToken", pageToken)
45061	return c
45062}
45063
45064// Fields allows partial responses to be retrieved. See
45065// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45066// for more information.
45067func (c *InstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsListInstancesCall {
45068	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45069	return c
45070}
45071
45072// Context sets the context to be used in this call's Do method. Any
45073// pending HTTP request will be aborted if the provided context is
45074// canceled.
45075func (c *InstanceGroupsListInstancesCall) Context(ctx context.Context) *InstanceGroupsListInstancesCall {
45076	c.ctx_ = ctx
45077	return c
45078}
45079
45080// Header returns an http.Header that can be modified by the caller to
45081// add HTTP headers to the request.
45082func (c *InstanceGroupsListInstancesCall) Header() http.Header {
45083	if c.header_ == nil {
45084		c.header_ = make(http.Header)
45085	}
45086	return c.header_
45087}
45088
45089func (c *InstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
45090	reqHeaders := make(http.Header)
45091	for k, v := range c.header_ {
45092		reqHeaders[k] = v
45093	}
45094	reqHeaders.Set("User-Agent", c.s.userAgent())
45095	var body io.Reader = nil
45096	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupslistinstancesrequest)
45097	if err != nil {
45098		return nil, err
45099	}
45100	reqHeaders.Set("Content-Type", "application/json")
45101	c.urlParams_.Set("alt", alt)
45102	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances")
45103	urls += "?" + c.urlParams_.Encode()
45104	req, _ := http.NewRequest("POST", urls, body)
45105	req.Header = reqHeaders
45106	googleapi.Expand(req.URL, map[string]string{
45107		"project":       c.project,
45108		"zone":          c.zone,
45109		"instanceGroup": c.instanceGroup,
45110	})
45111	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45112}
45113
45114// Do executes the "compute.instanceGroups.listInstances" call.
45115// Exactly one of *InstanceGroupsListInstances or error will be non-nil.
45116// Any non-2xx status code is an error. Response headers are in either
45117// *InstanceGroupsListInstances.ServerResponse.Header or (if a response
45118// was returned at all) in error.(*googleapi.Error).Header. Use
45119// googleapi.IsNotModified to check whether the returned error was
45120// because http.StatusNotModified was returned.
45121func (c *InstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupsListInstances, error) {
45122	gensupport.SetOptions(c.urlParams_, opts...)
45123	res, err := c.doRequest("json")
45124	if res != nil && res.StatusCode == http.StatusNotModified {
45125		if res.Body != nil {
45126			res.Body.Close()
45127		}
45128		return nil, &googleapi.Error{
45129			Code:   res.StatusCode,
45130			Header: res.Header,
45131		}
45132	}
45133	if err != nil {
45134		return nil, err
45135	}
45136	defer googleapi.CloseBody(res)
45137	if err := googleapi.CheckResponse(res); err != nil {
45138		return nil, err
45139	}
45140	ret := &InstanceGroupsListInstances{
45141		ServerResponse: googleapi.ServerResponse{
45142			Header:         res.Header,
45143			HTTPStatusCode: res.StatusCode,
45144		},
45145	}
45146	target := &ret
45147	if err := gensupport.DecodeResponse(target, res); err != nil {
45148		return nil, err
45149	}
45150	return ret, nil
45151	// {
45152	//   "description": "Lists the instances in the specified instance group.",
45153	//   "httpMethod": "POST",
45154	//   "id": "compute.instanceGroups.listInstances",
45155	//   "parameterOrder": [
45156	//     "project",
45157	//     "zone",
45158	//     "instanceGroup"
45159	//   ],
45160	//   "parameters": {
45161	//     "filter": {
45162	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
45163	//       "location": "query",
45164	//       "type": "string"
45165	//     },
45166	//     "instanceGroup": {
45167	//       "description": "The name of the instance group from which you want to generate a list of included instances.",
45168	//       "location": "path",
45169	//       "required": true,
45170	//       "type": "string"
45171	//     },
45172	//     "maxResults": {
45173	//       "default": "500",
45174	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
45175	//       "format": "uint32",
45176	//       "location": "query",
45177	//       "minimum": "0",
45178	//       "type": "integer"
45179	//     },
45180	//     "orderBy": {
45181	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
45182	//       "location": "query",
45183	//       "type": "string"
45184	//     },
45185	//     "pageToken": {
45186	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
45187	//       "location": "query",
45188	//       "type": "string"
45189	//     },
45190	//     "project": {
45191	//       "description": "Project ID for this request.",
45192	//       "location": "path",
45193	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45194	//       "required": true,
45195	//       "type": "string"
45196	//     },
45197	//     "zone": {
45198	//       "description": "The name of the zone where the instance group is located.",
45199	//       "location": "path",
45200	//       "required": true,
45201	//       "type": "string"
45202	//     }
45203	//   },
45204	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances",
45205	//   "request": {
45206	//     "$ref": "InstanceGroupsListInstancesRequest"
45207	//   },
45208	//   "response": {
45209	//     "$ref": "InstanceGroupsListInstances"
45210	//   },
45211	//   "scopes": [
45212	//     "https://www.googleapis.com/auth/cloud-platform",
45213	//     "https://www.googleapis.com/auth/compute",
45214	//     "https://www.googleapis.com/auth/compute.readonly"
45215	//   ]
45216	// }
45217
45218}
45219
45220// Pages invokes f for each page of results.
45221// A non-nil error returned from f will halt the iteration.
45222// The provided context supersedes any context provided to the Context method.
45223func (c *InstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupsListInstances) error) error {
45224	c.ctx_ = ctx
45225	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
45226	for {
45227		x, err := c.Do()
45228		if err != nil {
45229			return err
45230		}
45231		if err := f(x); err != nil {
45232			return err
45233		}
45234		if x.NextPageToken == "" {
45235			return nil
45236		}
45237		c.PageToken(x.NextPageToken)
45238	}
45239}
45240
45241// method id "compute.instanceGroups.removeInstances":
45242
45243type InstanceGroupsRemoveInstancesCall struct {
45244	s                                    *Service
45245	project                              string
45246	zone                                 string
45247	instanceGroup                        string
45248	instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest
45249	urlParams_                           gensupport.URLParams
45250	ctx_                                 context.Context
45251	header_                              http.Header
45252}
45253
45254// RemoveInstances: Removes one or more instances from the specified
45255// instance group, but does not delete those instances.
45256//
45257// If the group is part of a backend service that has enabled connection
45258// draining, it can take up to 60 seconds after the connection draining
45259// duration before the VM instance is removed or deleted.
45260func (r *InstanceGroupsService) RemoveInstances(project string, zone string, instanceGroup string, instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest) *InstanceGroupsRemoveInstancesCall {
45261	c := &InstanceGroupsRemoveInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45262	c.project = project
45263	c.zone = zone
45264	c.instanceGroup = instanceGroup
45265	c.instancegroupsremoveinstancesrequest = instancegroupsremoveinstancesrequest
45266	return c
45267}
45268
45269// RequestId sets the optional parameter "requestId": An optional
45270// request ID to identify requests. Specify a unique request ID so that
45271// if you must retry your request, the server will know to ignore the
45272// request if it has already been completed.
45273//
45274// For example, consider a situation where you make an initial request
45275// and the request times out. If you make the request again with the
45276// same request ID, the server can check if original operation with the
45277// same request ID was received, and if so, will ignore the second
45278// request. This prevents clients from accidentally creating duplicate
45279// commitments.
45280//
45281// The request ID must be a valid UUID with the exception that zero UUID
45282// is not supported (00000000-0000-0000-0000-000000000000).
45283func (c *InstanceGroupsRemoveInstancesCall) RequestId(requestId string) *InstanceGroupsRemoveInstancesCall {
45284	c.urlParams_.Set("requestId", requestId)
45285	return c
45286}
45287
45288// Fields allows partial responses to be retrieved. See
45289// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45290// for more information.
45291func (c *InstanceGroupsRemoveInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsRemoveInstancesCall {
45292	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45293	return c
45294}
45295
45296// Context sets the context to be used in this call's Do method. Any
45297// pending HTTP request will be aborted if the provided context is
45298// canceled.
45299func (c *InstanceGroupsRemoveInstancesCall) Context(ctx context.Context) *InstanceGroupsRemoveInstancesCall {
45300	c.ctx_ = ctx
45301	return c
45302}
45303
45304// Header returns an http.Header that can be modified by the caller to
45305// add HTTP headers to the request.
45306func (c *InstanceGroupsRemoveInstancesCall) Header() http.Header {
45307	if c.header_ == nil {
45308		c.header_ = make(http.Header)
45309	}
45310	return c.header_
45311}
45312
45313func (c *InstanceGroupsRemoveInstancesCall) doRequest(alt string) (*http.Response, error) {
45314	reqHeaders := make(http.Header)
45315	for k, v := range c.header_ {
45316		reqHeaders[k] = v
45317	}
45318	reqHeaders.Set("User-Agent", c.s.userAgent())
45319	var body io.Reader = nil
45320	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsremoveinstancesrequest)
45321	if err != nil {
45322		return nil, err
45323	}
45324	reqHeaders.Set("Content-Type", "application/json")
45325	c.urlParams_.Set("alt", alt)
45326	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances")
45327	urls += "?" + c.urlParams_.Encode()
45328	req, _ := http.NewRequest("POST", urls, body)
45329	req.Header = reqHeaders
45330	googleapi.Expand(req.URL, map[string]string{
45331		"project":       c.project,
45332		"zone":          c.zone,
45333		"instanceGroup": c.instanceGroup,
45334	})
45335	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45336}
45337
45338// Do executes the "compute.instanceGroups.removeInstances" call.
45339// Exactly one of *Operation or error will be non-nil. Any non-2xx
45340// status code is an error. Response headers are in either
45341// *Operation.ServerResponse.Header or (if a response was returned at
45342// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
45343// to check whether the returned error was because
45344// http.StatusNotModified was returned.
45345func (c *InstanceGroupsRemoveInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
45346	gensupport.SetOptions(c.urlParams_, opts...)
45347	res, err := c.doRequest("json")
45348	if res != nil && res.StatusCode == http.StatusNotModified {
45349		if res.Body != nil {
45350			res.Body.Close()
45351		}
45352		return nil, &googleapi.Error{
45353			Code:   res.StatusCode,
45354			Header: res.Header,
45355		}
45356	}
45357	if err != nil {
45358		return nil, err
45359	}
45360	defer googleapi.CloseBody(res)
45361	if err := googleapi.CheckResponse(res); err != nil {
45362		return nil, err
45363	}
45364	ret := &Operation{
45365		ServerResponse: googleapi.ServerResponse{
45366			Header:         res.Header,
45367			HTTPStatusCode: res.StatusCode,
45368		},
45369	}
45370	target := &ret
45371	if err := gensupport.DecodeResponse(target, res); err != nil {
45372		return nil, err
45373	}
45374	return ret, nil
45375	// {
45376	//   "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.",
45377	//   "httpMethod": "POST",
45378	//   "id": "compute.instanceGroups.removeInstances",
45379	//   "parameterOrder": [
45380	//     "project",
45381	//     "zone",
45382	//     "instanceGroup"
45383	//   ],
45384	//   "parameters": {
45385	//     "instanceGroup": {
45386	//       "description": "The name of the instance group where the specified instances will be removed.",
45387	//       "location": "path",
45388	//       "required": true,
45389	//       "type": "string"
45390	//     },
45391	//     "project": {
45392	//       "description": "Project ID for this request.",
45393	//       "location": "path",
45394	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45395	//       "required": true,
45396	//       "type": "string"
45397	//     },
45398	//     "requestId": {
45399	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
45400	//       "location": "query",
45401	//       "type": "string"
45402	//     },
45403	//     "zone": {
45404	//       "description": "The name of the zone where the instance group is located.",
45405	//       "location": "path",
45406	//       "required": true,
45407	//       "type": "string"
45408	//     }
45409	//   },
45410	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances",
45411	//   "request": {
45412	//     "$ref": "InstanceGroupsRemoveInstancesRequest"
45413	//   },
45414	//   "response": {
45415	//     "$ref": "Operation"
45416	//   },
45417	//   "scopes": [
45418	//     "https://www.googleapis.com/auth/cloud-platform",
45419	//     "https://www.googleapis.com/auth/compute"
45420	//   ]
45421	// }
45422
45423}
45424
45425// method id "compute.instanceGroups.setNamedPorts":
45426
45427type InstanceGroupsSetNamedPortsCall struct {
45428	s                                  *Service
45429	project                            string
45430	zone                               string
45431	instanceGroup                      string
45432	instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest
45433	urlParams_                         gensupport.URLParams
45434	ctx_                               context.Context
45435	header_                            http.Header
45436}
45437
45438// SetNamedPorts: Sets the named ports for the specified instance group.
45439func (r *InstanceGroupsService) SetNamedPorts(project string, zone string, instanceGroup string, instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest) *InstanceGroupsSetNamedPortsCall {
45440	c := &InstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45441	c.project = project
45442	c.zone = zone
45443	c.instanceGroup = instanceGroup
45444	c.instancegroupssetnamedportsrequest = instancegroupssetnamedportsrequest
45445	return c
45446}
45447
45448// RequestId sets the optional parameter "requestId": An optional
45449// request ID to identify requests. Specify a unique request ID so that
45450// if you must retry your request, the server will know to ignore the
45451// request if it has already been completed.
45452//
45453// For example, consider a situation where you make an initial request
45454// and the request times out. If you make the request again with the
45455// same request ID, the server can check if original operation with the
45456// same request ID was received, and if so, will ignore the second
45457// request. This prevents clients from accidentally creating duplicate
45458// commitments.
45459//
45460// The request ID must be a valid UUID with the exception that zero UUID
45461// is not supported (00000000-0000-0000-0000-000000000000).
45462func (c *InstanceGroupsSetNamedPortsCall) RequestId(requestId string) *InstanceGroupsSetNamedPortsCall {
45463	c.urlParams_.Set("requestId", requestId)
45464	return c
45465}
45466
45467// Fields allows partial responses to be retrieved. See
45468// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45469// for more information.
45470func (c *InstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *InstanceGroupsSetNamedPortsCall {
45471	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45472	return c
45473}
45474
45475// Context sets the context to be used in this call's Do method. Any
45476// pending HTTP request will be aborted if the provided context is
45477// canceled.
45478func (c *InstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *InstanceGroupsSetNamedPortsCall {
45479	c.ctx_ = ctx
45480	return c
45481}
45482
45483// Header returns an http.Header that can be modified by the caller to
45484// add HTTP headers to the request.
45485func (c *InstanceGroupsSetNamedPortsCall) Header() http.Header {
45486	if c.header_ == nil {
45487		c.header_ = make(http.Header)
45488	}
45489	return c.header_
45490}
45491
45492func (c *InstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
45493	reqHeaders := make(http.Header)
45494	for k, v := range c.header_ {
45495		reqHeaders[k] = v
45496	}
45497	reqHeaders.Set("User-Agent", c.s.userAgent())
45498	var body io.Reader = nil
45499	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupssetnamedportsrequest)
45500	if err != nil {
45501		return nil, err
45502	}
45503	reqHeaders.Set("Content-Type", "application/json")
45504	c.urlParams_.Set("alt", alt)
45505	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts")
45506	urls += "?" + c.urlParams_.Encode()
45507	req, _ := http.NewRequest("POST", urls, body)
45508	req.Header = reqHeaders
45509	googleapi.Expand(req.URL, map[string]string{
45510		"project":       c.project,
45511		"zone":          c.zone,
45512		"instanceGroup": c.instanceGroup,
45513	})
45514	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45515}
45516
45517// Do executes the "compute.instanceGroups.setNamedPorts" call.
45518// Exactly one of *Operation or error will be non-nil. Any non-2xx
45519// status code is an error. Response headers are in either
45520// *Operation.ServerResponse.Header or (if a response was returned at
45521// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
45522// to check whether the returned error was because
45523// http.StatusNotModified was returned.
45524func (c *InstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
45525	gensupport.SetOptions(c.urlParams_, opts...)
45526	res, err := c.doRequest("json")
45527	if res != nil && res.StatusCode == http.StatusNotModified {
45528		if res.Body != nil {
45529			res.Body.Close()
45530		}
45531		return nil, &googleapi.Error{
45532			Code:   res.StatusCode,
45533			Header: res.Header,
45534		}
45535	}
45536	if err != nil {
45537		return nil, err
45538	}
45539	defer googleapi.CloseBody(res)
45540	if err := googleapi.CheckResponse(res); err != nil {
45541		return nil, err
45542	}
45543	ret := &Operation{
45544		ServerResponse: googleapi.ServerResponse{
45545			Header:         res.Header,
45546			HTTPStatusCode: res.StatusCode,
45547		},
45548	}
45549	target := &ret
45550	if err := gensupport.DecodeResponse(target, res); err != nil {
45551		return nil, err
45552	}
45553	return ret, nil
45554	// {
45555	//   "description": "Sets the named ports for the specified instance group.",
45556	//   "httpMethod": "POST",
45557	//   "id": "compute.instanceGroups.setNamedPorts",
45558	//   "parameterOrder": [
45559	//     "project",
45560	//     "zone",
45561	//     "instanceGroup"
45562	//   ],
45563	//   "parameters": {
45564	//     "instanceGroup": {
45565	//       "description": "The name of the instance group where the named ports are updated.",
45566	//       "location": "path",
45567	//       "required": true,
45568	//       "type": "string"
45569	//     },
45570	//     "project": {
45571	//       "description": "Project ID for this request.",
45572	//       "location": "path",
45573	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45574	//       "required": true,
45575	//       "type": "string"
45576	//     },
45577	//     "requestId": {
45578	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
45579	//       "location": "query",
45580	//       "type": "string"
45581	//     },
45582	//     "zone": {
45583	//       "description": "The name of the zone where the instance group is located.",
45584	//       "location": "path",
45585	//       "required": true,
45586	//       "type": "string"
45587	//     }
45588	//   },
45589	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts",
45590	//   "request": {
45591	//     "$ref": "InstanceGroupsSetNamedPortsRequest"
45592	//   },
45593	//   "response": {
45594	//     "$ref": "Operation"
45595	//   },
45596	//   "scopes": [
45597	//     "https://www.googleapis.com/auth/cloud-platform",
45598	//     "https://www.googleapis.com/auth/compute"
45599	//   ]
45600	// }
45601
45602}
45603
45604// method id "compute.instanceTemplates.delete":
45605
45606type InstanceTemplatesDeleteCall struct {
45607	s                *Service
45608	project          string
45609	instanceTemplate string
45610	urlParams_       gensupport.URLParams
45611	ctx_             context.Context
45612	header_          http.Header
45613}
45614
45615// Delete: Deletes the specified instance template. Deleting an instance
45616// template is permanent and cannot be undone. It's not possible to
45617// delete templates which are in use by an instance group.
45618// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/delete
45619func (r *InstanceTemplatesService) Delete(project string, instanceTemplate string) *InstanceTemplatesDeleteCall {
45620	c := &InstanceTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45621	c.project = project
45622	c.instanceTemplate = instanceTemplate
45623	return c
45624}
45625
45626// RequestId sets the optional parameter "requestId": An optional
45627// request ID to identify requests. Specify a unique request ID so that
45628// if you must retry your request, the server will know to ignore the
45629// request if it has already been completed.
45630//
45631// For example, consider a situation where you make an initial request
45632// and the request times out. If you make the request again with the
45633// same request ID, the server can check if original operation with the
45634// same request ID was received, and if so, will ignore the second
45635// request. This prevents clients from accidentally creating duplicate
45636// commitments.
45637//
45638// The request ID must be a valid UUID with the exception that zero UUID
45639// is not supported (00000000-0000-0000-0000-000000000000).
45640func (c *InstanceTemplatesDeleteCall) RequestId(requestId string) *InstanceTemplatesDeleteCall {
45641	c.urlParams_.Set("requestId", requestId)
45642	return c
45643}
45644
45645// Fields allows partial responses to be retrieved. See
45646// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45647// for more information.
45648func (c *InstanceTemplatesDeleteCall) Fields(s ...googleapi.Field) *InstanceTemplatesDeleteCall {
45649	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45650	return c
45651}
45652
45653// Context sets the context to be used in this call's Do method. Any
45654// pending HTTP request will be aborted if the provided context is
45655// canceled.
45656func (c *InstanceTemplatesDeleteCall) Context(ctx context.Context) *InstanceTemplatesDeleteCall {
45657	c.ctx_ = ctx
45658	return c
45659}
45660
45661// Header returns an http.Header that can be modified by the caller to
45662// add HTTP headers to the request.
45663func (c *InstanceTemplatesDeleteCall) Header() http.Header {
45664	if c.header_ == nil {
45665		c.header_ = make(http.Header)
45666	}
45667	return c.header_
45668}
45669
45670func (c *InstanceTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
45671	reqHeaders := make(http.Header)
45672	for k, v := range c.header_ {
45673		reqHeaders[k] = v
45674	}
45675	reqHeaders.Set("User-Agent", c.s.userAgent())
45676	var body io.Reader = nil
45677	c.urlParams_.Set("alt", alt)
45678	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{instanceTemplate}")
45679	urls += "?" + c.urlParams_.Encode()
45680	req, _ := http.NewRequest("DELETE", urls, body)
45681	req.Header = reqHeaders
45682	googleapi.Expand(req.URL, map[string]string{
45683		"project":          c.project,
45684		"instanceTemplate": c.instanceTemplate,
45685	})
45686	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45687}
45688
45689// Do executes the "compute.instanceTemplates.delete" call.
45690// Exactly one of *Operation or error will be non-nil. Any non-2xx
45691// status code is an error. Response headers are in either
45692// *Operation.ServerResponse.Header or (if a response was returned at
45693// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
45694// to check whether the returned error was because
45695// http.StatusNotModified was returned.
45696func (c *InstanceTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
45697	gensupport.SetOptions(c.urlParams_, opts...)
45698	res, err := c.doRequest("json")
45699	if res != nil && res.StatusCode == http.StatusNotModified {
45700		if res.Body != nil {
45701			res.Body.Close()
45702		}
45703		return nil, &googleapi.Error{
45704			Code:   res.StatusCode,
45705			Header: res.Header,
45706		}
45707	}
45708	if err != nil {
45709		return nil, err
45710	}
45711	defer googleapi.CloseBody(res)
45712	if err := googleapi.CheckResponse(res); err != nil {
45713		return nil, err
45714	}
45715	ret := &Operation{
45716		ServerResponse: googleapi.ServerResponse{
45717			Header:         res.Header,
45718			HTTPStatusCode: res.StatusCode,
45719		},
45720	}
45721	target := &ret
45722	if err := gensupport.DecodeResponse(target, res); err != nil {
45723		return nil, err
45724	}
45725	return ret, nil
45726	// {
45727	//   "description": "Deletes the specified instance template. Deleting an instance template is permanent and cannot be undone. It's not possible to delete templates which are in use by an instance group.",
45728	//   "httpMethod": "DELETE",
45729	//   "id": "compute.instanceTemplates.delete",
45730	//   "parameterOrder": [
45731	//     "project",
45732	//     "instanceTemplate"
45733	//   ],
45734	//   "parameters": {
45735	//     "instanceTemplate": {
45736	//       "description": "The name of the instance template to delete.",
45737	//       "location": "path",
45738	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
45739	//       "required": true,
45740	//       "type": "string"
45741	//     },
45742	//     "project": {
45743	//       "description": "Project ID for this request.",
45744	//       "location": "path",
45745	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45746	//       "required": true,
45747	//       "type": "string"
45748	//     },
45749	//     "requestId": {
45750	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
45751	//       "location": "query",
45752	//       "type": "string"
45753	//     }
45754	//   },
45755	//   "path": "{project}/global/instanceTemplates/{instanceTemplate}",
45756	//   "response": {
45757	//     "$ref": "Operation"
45758	//   },
45759	//   "scopes": [
45760	//     "https://www.googleapis.com/auth/cloud-platform",
45761	//     "https://www.googleapis.com/auth/compute"
45762	//   ]
45763	// }
45764
45765}
45766
45767// method id "compute.instanceTemplates.get":
45768
45769type InstanceTemplatesGetCall struct {
45770	s                *Service
45771	project          string
45772	instanceTemplate string
45773	urlParams_       gensupport.URLParams
45774	ifNoneMatch_     string
45775	ctx_             context.Context
45776	header_          http.Header
45777}
45778
45779// Get: Returns the specified instance template. Gets a list of
45780// available instance templates by making a list() request.
45781// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/get
45782func (r *InstanceTemplatesService) Get(project string, instanceTemplate string) *InstanceTemplatesGetCall {
45783	c := &InstanceTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45784	c.project = project
45785	c.instanceTemplate = instanceTemplate
45786	return c
45787}
45788
45789// Fields allows partial responses to be retrieved. See
45790// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45791// for more information.
45792func (c *InstanceTemplatesGetCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetCall {
45793	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45794	return c
45795}
45796
45797// IfNoneMatch sets the optional parameter which makes the operation
45798// fail if the object's ETag matches the given value. This is useful for
45799// getting updates only after the object has changed since the last
45800// request. Use googleapi.IsNotModified to check whether the response
45801// error from Do is the result of In-None-Match.
45802func (c *InstanceTemplatesGetCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetCall {
45803	c.ifNoneMatch_ = entityTag
45804	return c
45805}
45806
45807// Context sets the context to be used in this call's Do method. Any
45808// pending HTTP request will be aborted if the provided context is
45809// canceled.
45810func (c *InstanceTemplatesGetCall) Context(ctx context.Context) *InstanceTemplatesGetCall {
45811	c.ctx_ = ctx
45812	return c
45813}
45814
45815// Header returns an http.Header that can be modified by the caller to
45816// add HTTP headers to the request.
45817func (c *InstanceTemplatesGetCall) Header() http.Header {
45818	if c.header_ == nil {
45819		c.header_ = make(http.Header)
45820	}
45821	return c.header_
45822}
45823
45824func (c *InstanceTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
45825	reqHeaders := make(http.Header)
45826	for k, v := range c.header_ {
45827		reqHeaders[k] = v
45828	}
45829	reqHeaders.Set("User-Agent", c.s.userAgent())
45830	if c.ifNoneMatch_ != "" {
45831		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
45832	}
45833	var body io.Reader = nil
45834	c.urlParams_.Set("alt", alt)
45835	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{instanceTemplate}")
45836	urls += "?" + c.urlParams_.Encode()
45837	req, _ := http.NewRequest("GET", urls, body)
45838	req.Header = reqHeaders
45839	googleapi.Expand(req.URL, map[string]string{
45840		"project":          c.project,
45841		"instanceTemplate": c.instanceTemplate,
45842	})
45843	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45844}
45845
45846// Do executes the "compute.instanceTemplates.get" call.
45847// Exactly one of *InstanceTemplate or error will be non-nil. Any
45848// non-2xx status code is an error. Response headers are in either
45849// *InstanceTemplate.ServerResponse.Header or (if a response was
45850// returned at all) in error.(*googleapi.Error).Header. Use
45851// googleapi.IsNotModified to check whether the returned error was
45852// because http.StatusNotModified was returned.
45853func (c *InstanceTemplatesGetCall) Do(opts ...googleapi.CallOption) (*InstanceTemplate, error) {
45854	gensupport.SetOptions(c.urlParams_, opts...)
45855	res, err := c.doRequest("json")
45856	if res != nil && res.StatusCode == http.StatusNotModified {
45857		if res.Body != nil {
45858			res.Body.Close()
45859		}
45860		return nil, &googleapi.Error{
45861			Code:   res.StatusCode,
45862			Header: res.Header,
45863		}
45864	}
45865	if err != nil {
45866		return nil, err
45867	}
45868	defer googleapi.CloseBody(res)
45869	if err := googleapi.CheckResponse(res); err != nil {
45870		return nil, err
45871	}
45872	ret := &InstanceTemplate{
45873		ServerResponse: googleapi.ServerResponse{
45874			Header:         res.Header,
45875			HTTPStatusCode: res.StatusCode,
45876		},
45877	}
45878	target := &ret
45879	if err := gensupport.DecodeResponse(target, res); err != nil {
45880		return nil, err
45881	}
45882	return ret, nil
45883	// {
45884	//   "description": "Returns the specified instance template. Gets a list of available instance templates by making a list() request.",
45885	//   "httpMethod": "GET",
45886	//   "id": "compute.instanceTemplates.get",
45887	//   "parameterOrder": [
45888	//     "project",
45889	//     "instanceTemplate"
45890	//   ],
45891	//   "parameters": {
45892	//     "instanceTemplate": {
45893	//       "description": "The name of the instance template.",
45894	//       "location": "path",
45895	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
45896	//       "required": true,
45897	//       "type": "string"
45898	//     },
45899	//     "project": {
45900	//       "description": "Project ID for this request.",
45901	//       "location": "path",
45902	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45903	//       "required": true,
45904	//       "type": "string"
45905	//     }
45906	//   },
45907	//   "path": "{project}/global/instanceTemplates/{instanceTemplate}",
45908	//   "response": {
45909	//     "$ref": "InstanceTemplate"
45910	//   },
45911	//   "scopes": [
45912	//     "https://www.googleapis.com/auth/cloud-platform",
45913	//     "https://www.googleapis.com/auth/compute",
45914	//     "https://www.googleapis.com/auth/compute.readonly"
45915	//   ]
45916	// }
45917
45918}
45919
45920// method id "compute.instanceTemplates.insert":
45921
45922type InstanceTemplatesInsertCall struct {
45923	s                *Service
45924	project          string
45925	instancetemplate *InstanceTemplate
45926	urlParams_       gensupport.URLParams
45927	ctx_             context.Context
45928	header_          http.Header
45929}
45930
45931// Insert: Creates an instance template in the specified project using
45932// the data that is included in the request. If you are creating a new
45933// template to update an existing instance group, your new instance
45934// template must use the same network or, if applicable, the same
45935// subnetwork as the original template.
45936// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/insert
45937func (r *InstanceTemplatesService) Insert(project string, instancetemplate *InstanceTemplate) *InstanceTemplatesInsertCall {
45938	c := &InstanceTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45939	c.project = project
45940	c.instancetemplate = instancetemplate
45941	return c
45942}
45943
45944// RequestId sets the optional parameter "requestId": An optional
45945// request ID to identify requests. Specify a unique request ID so that
45946// if you must retry your request, the server will know to ignore the
45947// request if it has already been completed.
45948//
45949// For example, consider a situation where you make an initial request
45950// and the request times out. If you make the request again with the
45951// same request ID, the server can check if original operation with the
45952// same request ID was received, and if so, will ignore the second
45953// request. This prevents clients from accidentally creating duplicate
45954// commitments.
45955//
45956// The request ID must be a valid UUID with the exception that zero UUID
45957// is not supported (00000000-0000-0000-0000-000000000000).
45958func (c *InstanceTemplatesInsertCall) RequestId(requestId string) *InstanceTemplatesInsertCall {
45959	c.urlParams_.Set("requestId", requestId)
45960	return c
45961}
45962
45963// Fields allows partial responses to be retrieved. See
45964// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45965// for more information.
45966func (c *InstanceTemplatesInsertCall) Fields(s ...googleapi.Field) *InstanceTemplatesInsertCall {
45967	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45968	return c
45969}
45970
45971// Context sets the context to be used in this call's Do method. Any
45972// pending HTTP request will be aborted if the provided context is
45973// canceled.
45974func (c *InstanceTemplatesInsertCall) Context(ctx context.Context) *InstanceTemplatesInsertCall {
45975	c.ctx_ = ctx
45976	return c
45977}
45978
45979// Header returns an http.Header that can be modified by the caller to
45980// add HTTP headers to the request.
45981func (c *InstanceTemplatesInsertCall) Header() http.Header {
45982	if c.header_ == nil {
45983		c.header_ = make(http.Header)
45984	}
45985	return c.header_
45986}
45987
45988func (c *InstanceTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
45989	reqHeaders := make(http.Header)
45990	for k, v := range c.header_ {
45991		reqHeaders[k] = v
45992	}
45993	reqHeaders.Set("User-Agent", c.s.userAgent())
45994	var body io.Reader = nil
45995	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancetemplate)
45996	if err != nil {
45997		return nil, err
45998	}
45999	reqHeaders.Set("Content-Type", "application/json")
46000	c.urlParams_.Set("alt", alt)
46001	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates")
46002	urls += "?" + c.urlParams_.Encode()
46003	req, _ := http.NewRequest("POST", urls, body)
46004	req.Header = reqHeaders
46005	googleapi.Expand(req.URL, map[string]string{
46006		"project": c.project,
46007	})
46008	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46009}
46010
46011// Do executes the "compute.instanceTemplates.insert" call.
46012// Exactly one of *Operation or error will be non-nil. Any non-2xx
46013// status code is an error. Response headers are in either
46014// *Operation.ServerResponse.Header or (if a response was returned at
46015// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46016// to check whether the returned error was because
46017// http.StatusNotModified was returned.
46018func (c *InstanceTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
46019	gensupport.SetOptions(c.urlParams_, opts...)
46020	res, err := c.doRequest("json")
46021	if res != nil && res.StatusCode == http.StatusNotModified {
46022		if res.Body != nil {
46023			res.Body.Close()
46024		}
46025		return nil, &googleapi.Error{
46026			Code:   res.StatusCode,
46027			Header: res.Header,
46028		}
46029	}
46030	if err != nil {
46031		return nil, err
46032	}
46033	defer googleapi.CloseBody(res)
46034	if err := googleapi.CheckResponse(res); err != nil {
46035		return nil, err
46036	}
46037	ret := &Operation{
46038		ServerResponse: googleapi.ServerResponse{
46039			Header:         res.Header,
46040			HTTPStatusCode: res.StatusCode,
46041		},
46042	}
46043	target := &ret
46044	if err := gensupport.DecodeResponse(target, res); err != nil {
46045		return nil, err
46046	}
46047	return ret, nil
46048	// {
46049	//   "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.",
46050	//   "httpMethod": "POST",
46051	//   "id": "compute.instanceTemplates.insert",
46052	//   "parameterOrder": [
46053	//     "project"
46054	//   ],
46055	//   "parameters": {
46056	//     "project": {
46057	//       "description": "Project ID for this request.",
46058	//       "location": "path",
46059	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46060	//       "required": true,
46061	//       "type": "string"
46062	//     },
46063	//     "requestId": {
46064	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
46065	//       "location": "query",
46066	//       "type": "string"
46067	//     }
46068	//   },
46069	//   "path": "{project}/global/instanceTemplates",
46070	//   "request": {
46071	//     "$ref": "InstanceTemplate"
46072	//   },
46073	//   "response": {
46074	//     "$ref": "Operation"
46075	//   },
46076	//   "scopes": [
46077	//     "https://www.googleapis.com/auth/cloud-platform",
46078	//     "https://www.googleapis.com/auth/compute"
46079	//   ]
46080	// }
46081
46082}
46083
46084// method id "compute.instanceTemplates.list":
46085
46086type InstanceTemplatesListCall struct {
46087	s            *Service
46088	project      string
46089	urlParams_   gensupport.URLParams
46090	ifNoneMatch_ string
46091	ctx_         context.Context
46092	header_      http.Header
46093}
46094
46095// List: Retrieves a list of instance templates that are contained
46096// within the specified project and zone.
46097// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/list
46098func (r *InstanceTemplatesService) List(project string) *InstanceTemplatesListCall {
46099	c := &InstanceTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46100	c.project = project
46101	return c
46102}
46103
46104// Filter sets the optional parameter "filter": A filter expression that
46105// filters resources listed in the response. The expression must specify
46106// the field name, a comparison operator, and the value that you want to
46107// use for filtering. The value must be a string, a number, or a
46108// boolean. The comparison operator must be either =, !=, >, or <.
46109//
46110// For example, if you are filtering Compute Engine instances, you can
46111// exclude instances named example-instance by specifying name !=
46112// example-instance.
46113//
46114// You can also filter nested fields. For example, you could specify
46115// scheduling.automaticRestart = false to include instances only if they
46116// are not scheduled for automatic restarts. You can use filtering on
46117// nested fields to filter based on resource labels.
46118//
46119// To filter on multiple expressions, provide each separate expression
46120// within parentheses. For example, (scheduling.automaticRestart = true)
46121// (cpuPlatform = "Intel Skylake"). By default, each expression is an
46122// AND expression. However, you can include AND and OR expressions
46123// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
46124// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
46125// true).
46126func (c *InstanceTemplatesListCall) Filter(filter string) *InstanceTemplatesListCall {
46127	c.urlParams_.Set("filter", filter)
46128	return c
46129}
46130
46131// MaxResults sets the optional parameter "maxResults": The maximum
46132// number of results per page that should be returned. If the number of
46133// available results is larger than maxResults, Compute Engine returns a
46134// nextPageToken that can be used to get the next page of results in
46135// subsequent list requests. Acceptable values are 0 to 500, inclusive.
46136// (Default: 500)
46137func (c *InstanceTemplatesListCall) MaxResults(maxResults int64) *InstanceTemplatesListCall {
46138	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
46139	return c
46140}
46141
46142// OrderBy sets the optional parameter "orderBy": Sorts list results by
46143// a certain order. By default, results are returned in alphanumerical
46144// order based on the resource name.
46145//
46146// You can also sort results in descending order based on the creation
46147// timestamp using orderBy="creationTimestamp desc". This sorts results
46148// based on the creationTimestamp field in reverse chronological order
46149// (newest result first). Use this to sort resources like operations so
46150// that the newest operation is returned first.
46151//
46152// Currently, only sorting by name or creationTimestamp desc is
46153// supported.
46154func (c *InstanceTemplatesListCall) OrderBy(orderBy string) *InstanceTemplatesListCall {
46155	c.urlParams_.Set("orderBy", orderBy)
46156	return c
46157}
46158
46159// PageToken sets the optional parameter "pageToken": Specifies a page
46160// token to use. Set pageToken to the nextPageToken returned by a
46161// previous list request to get the next page of results.
46162func (c *InstanceTemplatesListCall) PageToken(pageToken string) *InstanceTemplatesListCall {
46163	c.urlParams_.Set("pageToken", pageToken)
46164	return c
46165}
46166
46167// Fields allows partial responses to be retrieved. See
46168// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46169// for more information.
46170func (c *InstanceTemplatesListCall) Fields(s ...googleapi.Field) *InstanceTemplatesListCall {
46171	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46172	return c
46173}
46174
46175// IfNoneMatch sets the optional parameter which makes the operation
46176// fail if the object's ETag matches the given value. This is useful for
46177// getting updates only after the object has changed since the last
46178// request. Use googleapi.IsNotModified to check whether the response
46179// error from Do is the result of In-None-Match.
46180func (c *InstanceTemplatesListCall) IfNoneMatch(entityTag string) *InstanceTemplatesListCall {
46181	c.ifNoneMatch_ = entityTag
46182	return c
46183}
46184
46185// Context sets the context to be used in this call's Do method. Any
46186// pending HTTP request will be aborted if the provided context is
46187// canceled.
46188func (c *InstanceTemplatesListCall) Context(ctx context.Context) *InstanceTemplatesListCall {
46189	c.ctx_ = ctx
46190	return c
46191}
46192
46193// Header returns an http.Header that can be modified by the caller to
46194// add HTTP headers to the request.
46195func (c *InstanceTemplatesListCall) Header() http.Header {
46196	if c.header_ == nil {
46197		c.header_ = make(http.Header)
46198	}
46199	return c.header_
46200}
46201
46202func (c *InstanceTemplatesListCall) doRequest(alt string) (*http.Response, error) {
46203	reqHeaders := make(http.Header)
46204	for k, v := range c.header_ {
46205		reqHeaders[k] = v
46206	}
46207	reqHeaders.Set("User-Agent", c.s.userAgent())
46208	if c.ifNoneMatch_ != "" {
46209		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
46210	}
46211	var body io.Reader = nil
46212	c.urlParams_.Set("alt", alt)
46213	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates")
46214	urls += "?" + c.urlParams_.Encode()
46215	req, _ := http.NewRequest("GET", urls, body)
46216	req.Header = reqHeaders
46217	googleapi.Expand(req.URL, map[string]string{
46218		"project": c.project,
46219	})
46220	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46221}
46222
46223// Do executes the "compute.instanceTemplates.list" call.
46224// Exactly one of *InstanceTemplateList or error will be non-nil. Any
46225// non-2xx status code is an error. Response headers are in either
46226// *InstanceTemplateList.ServerResponse.Header or (if a response was
46227// returned at all) in error.(*googleapi.Error).Header. Use
46228// googleapi.IsNotModified to check whether the returned error was
46229// because http.StatusNotModified was returned.
46230func (c *InstanceTemplatesListCall) Do(opts ...googleapi.CallOption) (*InstanceTemplateList, error) {
46231	gensupport.SetOptions(c.urlParams_, opts...)
46232	res, err := c.doRequest("json")
46233	if res != nil && res.StatusCode == http.StatusNotModified {
46234		if res.Body != nil {
46235			res.Body.Close()
46236		}
46237		return nil, &googleapi.Error{
46238			Code:   res.StatusCode,
46239			Header: res.Header,
46240		}
46241	}
46242	if err != nil {
46243		return nil, err
46244	}
46245	defer googleapi.CloseBody(res)
46246	if err := googleapi.CheckResponse(res); err != nil {
46247		return nil, err
46248	}
46249	ret := &InstanceTemplateList{
46250		ServerResponse: googleapi.ServerResponse{
46251			Header:         res.Header,
46252			HTTPStatusCode: res.StatusCode,
46253		},
46254	}
46255	target := &ret
46256	if err := gensupport.DecodeResponse(target, res); err != nil {
46257		return nil, err
46258	}
46259	return ret, nil
46260	// {
46261	//   "description": "Retrieves a list of instance templates that are contained within the specified project and zone.",
46262	//   "httpMethod": "GET",
46263	//   "id": "compute.instanceTemplates.list",
46264	//   "parameterOrder": [
46265	//     "project"
46266	//   ],
46267	//   "parameters": {
46268	//     "filter": {
46269	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
46270	//       "location": "query",
46271	//       "type": "string"
46272	//     },
46273	//     "maxResults": {
46274	//       "default": "500",
46275	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
46276	//       "format": "uint32",
46277	//       "location": "query",
46278	//       "minimum": "0",
46279	//       "type": "integer"
46280	//     },
46281	//     "orderBy": {
46282	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
46283	//       "location": "query",
46284	//       "type": "string"
46285	//     },
46286	//     "pageToken": {
46287	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
46288	//       "location": "query",
46289	//       "type": "string"
46290	//     },
46291	//     "project": {
46292	//       "description": "Project ID for this request.",
46293	//       "location": "path",
46294	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46295	//       "required": true,
46296	//       "type": "string"
46297	//     }
46298	//   },
46299	//   "path": "{project}/global/instanceTemplates",
46300	//   "response": {
46301	//     "$ref": "InstanceTemplateList"
46302	//   },
46303	//   "scopes": [
46304	//     "https://www.googleapis.com/auth/cloud-platform",
46305	//     "https://www.googleapis.com/auth/compute",
46306	//     "https://www.googleapis.com/auth/compute.readonly"
46307	//   ]
46308	// }
46309
46310}
46311
46312// Pages invokes f for each page of results.
46313// A non-nil error returned from f will halt the iteration.
46314// The provided context supersedes any context provided to the Context method.
46315func (c *InstanceTemplatesListCall) Pages(ctx context.Context, f func(*InstanceTemplateList) error) error {
46316	c.ctx_ = ctx
46317	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
46318	for {
46319		x, err := c.Do()
46320		if err != nil {
46321			return err
46322		}
46323		if err := f(x); err != nil {
46324			return err
46325		}
46326		if x.NextPageToken == "" {
46327			return nil
46328		}
46329		c.PageToken(x.NextPageToken)
46330	}
46331}
46332
46333// method id "compute.instances.addAccessConfig":
46334
46335type InstancesAddAccessConfigCall struct {
46336	s            *Service
46337	project      string
46338	zone         string
46339	instance     string
46340	accessconfig *AccessConfig
46341	urlParams_   gensupport.URLParams
46342	ctx_         context.Context
46343	header_      http.Header
46344}
46345
46346// AddAccessConfig: Adds an access config to an instance's network
46347// interface.
46348// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/addAccessConfig
46349func (r *InstancesService) AddAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesAddAccessConfigCall {
46350	c := &InstancesAddAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46351	c.project = project
46352	c.zone = zone
46353	c.instance = instance
46354	c.urlParams_.Set("networkInterface", networkInterface)
46355	c.accessconfig = accessconfig
46356	return c
46357}
46358
46359// RequestId sets the optional parameter "requestId": An optional
46360// request ID to identify requests. Specify a unique request ID so that
46361// if you must retry your request, the server will know to ignore the
46362// request if it has already been completed.
46363//
46364// For example, consider a situation where you make an initial request
46365// and the request times out. If you make the request again with the
46366// same request ID, the server can check if original operation with the
46367// same request ID was received, and if so, will ignore the second
46368// request. This prevents clients from accidentally creating duplicate
46369// commitments.
46370//
46371// The request ID must be a valid UUID with the exception that zero UUID
46372// is not supported (00000000-0000-0000-0000-000000000000).
46373func (c *InstancesAddAccessConfigCall) RequestId(requestId string) *InstancesAddAccessConfigCall {
46374	c.urlParams_.Set("requestId", requestId)
46375	return c
46376}
46377
46378// Fields allows partial responses to be retrieved. See
46379// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46380// for more information.
46381func (c *InstancesAddAccessConfigCall) Fields(s ...googleapi.Field) *InstancesAddAccessConfigCall {
46382	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46383	return c
46384}
46385
46386// Context sets the context to be used in this call's Do method. Any
46387// pending HTTP request will be aborted if the provided context is
46388// canceled.
46389func (c *InstancesAddAccessConfigCall) Context(ctx context.Context) *InstancesAddAccessConfigCall {
46390	c.ctx_ = ctx
46391	return c
46392}
46393
46394// Header returns an http.Header that can be modified by the caller to
46395// add HTTP headers to the request.
46396func (c *InstancesAddAccessConfigCall) Header() http.Header {
46397	if c.header_ == nil {
46398		c.header_ = make(http.Header)
46399	}
46400	return c.header_
46401}
46402
46403func (c *InstancesAddAccessConfigCall) doRequest(alt string) (*http.Response, error) {
46404	reqHeaders := make(http.Header)
46405	for k, v := range c.header_ {
46406		reqHeaders[k] = v
46407	}
46408	reqHeaders.Set("User-Agent", c.s.userAgent())
46409	var body io.Reader = nil
46410	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
46411	if err != nil {
46412		return nil, err
46413	}
46414	reqHeaders.Set("Content-Type", "application/json")
46415	c.urlParams_.Set("alt", alt)
46416	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/addAccessConfig")
46417	urls += "?" + c.urlParams_.Encode()
46418	req, _ := http.NewRequest("POST", urls, body)
46419	req.Header = reqHeaders
46420	googleapi.Expand(req.URL, map[string]string{
46421		"project":  c.project,
46422		"zone":     c.zone,
46423		"instance": c.instance,
46424	})
46425	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46426}
46427
46428// Do executes the "compute.instances.addAccessConfig" call.
46429// Exactly one of *Operation or error will be non-nil. Any non-2xx
46430// status code is an error. Response headers are in either
46431// *Operation.ServerResponse.Header or (if a response was returned at
46432// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46433// to check whether the returned error was because
46434// http.StatusNotModified was returned.
46435func (c *InstancesAddAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
46436	gensupport.SetOptions(c.urlParams_, opts...)
46437	res, err := c.doRequest("json")
46438	if res != nil && res.StatusCode == http.StatusNotModified {
46439		if res.Body != nil {
46440			res.Body.Close()
46441		}
46442		return nil, &googleapi.Error{
46443			Code:   res.StatusCode,
46444			Header: res.Header,
46445		}
46446	}
46447	if err != nil {
46448		return nil, err
46449	}
46450	defer googleapi.CloseBody(res)
46451	if err := googleapi.CheckResponse(res); err != nil {
46452		return nil, err
46453	}
46454	ret := &Operation{
46455		ServerResponse: googleapi.ServerResponse{
46456			Header:         res.Header,
46457			HTTPStatusCode: res.StatusCode,
46458		},
46459	}
46460	target := &ret
46461	if err := gensupport.DecodeResponse(target, res); err != nil {
46462		return nil, err
46463	}
46464	return ret, nil
46465	// {
46466	//   "description": "Adds an access config to an instance's network interface.",
46467	//   "httpMethod": "POST",
46468	//   "id": "compute.instances.addAccessConfig",
46469	//   "parameterOrder": [
46470	//     "project",
46471	//     "zone",
46472	//     "instance",
46473	//     "networkInterface"
46474	//   ],
46475	//   "parameters": {
46476	//     "instance": {
46477	//       "description": "The instance name for this request.",
46478	//       "location": "path",
46479	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46480	//       "required": true,
46481	//       "type": "string"
46482	//     },
46483	//     "networkInterface": {
46484	//       "description": "The name of the network interface to add to this instance.",
46485	//       "location": "query",
46486	//       "required": true,
46487	//       "type": "string"
46488	//     },
46489	//     "project": {
46490	//       "description": "Project ID for this request.",
46491	//       "location": "path",
46492	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46493	//       "required": true,
46494	//       "type": "string"
46495	//     },
46496	//     "requestId": {
46497	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
46498	//       "location": "query",
46499	//       "type": "string"
46500	//     },
46501	//     "zone": {
46502	//       "description": "The name of the zone for this request.",
46503	//       "location": "path",
46504	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46505	//       "required": true,
46506	//       "type": "string"
46507	//     }
46508	//   },
46509	//   "path": "{project}/zones/{zone}/instances/{instance}/addAccessConfig",
46510	//   "request": {
46511	//     "$ref": "AccessConfig"
46512	//   },
46513	//   "response": {
46514	//     "$ref": "Operation"
46515	//   },
46516	//   "scopes": [
46517	//     "https://www.googleapis.com/auth/cloud-platform",
46518	//     "https://www.googleapis.com/auth/compute"
46519	//   ]
46520	// }
46521
46522}
46523
46524// method id "compute.instances.aggregatedList":
46525
46526type InstancesAggregatedListCall struct {
46527	s            *Service
46528	project      string
46529	urlParams_   gensupport.URLParams
46530	ifNoneMatch_ string
46531	ctx_         context.Context
46532	header_      http.Header
46533}
46534
46535// AggregatedList: Retrieves aggregated list of instances.
46536// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/aggregatedList
46537func (r *InstancesService) AggregatedList(project string) *InstancesAggregatedListCall {
46538	c := &InstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46539	c.project = project
46540	return c
46541}
46542
46543// Filter sets the optional parameter "filter": A filter expression that
46544// filters resources listed in the response. The expression must specify
46545// the field name, a comparison operator, and the value that you want to
46546// use for filtering. The value must be a string, a number, or a
46547// boolean. The comparison operator must be either =, !=, >, or <.
46548//
46549// For example, if you are filtering Compute Engine instances, you can
46550// exclude instances named example-instance by specifying name !=
46551// example-instance.
46552//
46553// You can also filter nested fields. For example, you could specify
46554// scheduling.automaticRestart = false to include instances only if they
46555// are not scheduled for automatic restarts. You can use filtering on
46556// nested fields to filter based on resource labels.
46557//
46558// To filter on multiple expressions, provide each separate expression
46559// within parentheses. For example, (scheduling.automaticRestart = true)
46560// (cpuPlatform = "Intel Skylake"). By default, each expression is an
46561// AND expression. However, you can include AND and OR expressions
46562// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
46563// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
46564// true).
46565func (c *InstancesAggregatedListCall) Filter(filter string) *InstancesAggregatedListCall {
46566	c.urlParams_.Set("filter", filter)
46567	return c
46568}
46569
46570// MaxResults sets the optional parameter "maxResults": The maximum
46571// number of results per page that should be returned. If the number of
46572// available results is larger than maxResults, Compute Engine returns a
46573// nextPageToken that can be used to get the next page of results in
46574// subsequent list requests. Acceptable values are 0 to 500, inclusive.
46575// (Default: 500)
46576func (c *InstancesAggregatedListCall) MaxResults(maxResults int64) *InstancesAggregatedListCall {
46577	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
46578	return c
46579}
46580
46581// OrderBy sets the optional parameter "orderBy": Sorts list results by
46582// a certain order. By default, results are returned in alphanumerical
46583// order based on the resource name.
46584//
46585// You can also sort results in descending order based on the creation
46586// timestamp using orderBy="creationTimestamp desc". This sorts results
46587// based on the creationTimestamp field in reverse chronological order
46588// (newest result first). Use this to sort resources like operations so
46589// that the newest operation is returned first.
46590//
46591// Currently, only sorting by name or creationTimestamp desc is
46592// supported.
46593func (c *InstancesAggregatedListCall) OrderBy(orderBy string) *InstancesAggregatedListCall {
46594	c.urlParams_.Set("orderBy", orderBy)
46595	return c
46596}
46597
46598// PageToken sets the optional parameter "pageToken": Specifies a page
46599// token to use. Set pageToken to the nextPageToken returned by a
46600// previous list request to get the next page of results.
46601func (c *InstancesAggregatedListCall) PageToken(pageToken string) *InstancesAggregatedListCall {
46602	c.urlParams_.Set("pageToken", pageToken)
46603	return c
46604}
46605
46606// Fields allows partial responses to be retrieved. See
46607// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46608// for more information.
46609func (c *InstancesAggregatedListCall) Fields(s ...googleapi.Field) *InstancesAggregatedListCall {
46610	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46611	return c
46612}
46613
46614// IfNoneMatch sets the optional parameter which makes the operation
46615// fail if the object's ETag matches the given value. This is useful for
46616// getting updates only after the object has changed since the last
46617// request. Use googleapi.IsNotModified to check whether the response
46618// error from Do is the result of In-None-Match.
46619func (c *InstancesAggregatedListCall) IfNoneMatch(entityTag string) *InstancesAggregatedListCall {
46620	c.ifNoneMatch_ = entityTag
46621	return c
46622}
46623
46624// Context sets the context to be used in this call's Do method. Any
46625// pending HTTP request will be aborted if the provided context is
46626// canceled.
46627func (c *InstancesAggregatedListCall) Context(ctx context.Context) *InstancesAggregatedListCall {
46628	c.ctx_ = ctx
46629	return c
46630}
46631
46632// Header returns an http.Header that can be modified by the caller to
46633// add HTTP headers to the request.
46634func (c *InstancesAggregatedListCall) Header() http.Header {
46635	if c.header_ == nil {
46636		c.header_ = make(http.Header)
46637	}
46638	return c.header_
46639}
46640
46641func (c *InstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
46642	reqHeaders := make(http.Header)
46643	for k, v := range c.header_ {
46644		reqHeaders[k] = v
46645	}
46646	reqHeaders.Set("User-Agent", c.s.userAgent())
46647	if c.ifNoneMatch_ != "" {
46648		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
46649	}
46650	var body io.Reader = nil
46651	c.urlParams_.Set("alt", alt)
46652	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instances")
46653	urls += "?" + c.urlParams_.Encode()
46654	req, _ := http.NewRequest("GET", urls, body)
46655	req.Header = reqHeaders
46656	googleapi.Expand(req.URL, map[string]string{
46657		"project": c.project,
46658	})
46659	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46660}
46661
46662// Do executes the "compute.instances.aggregatedList" call.
46663// Exactly one of *InstanceAggregatedList or error will be non-nil. Any
46664// non-2xx status code is an error. Response headers are in either
46665// *InstanceAggregatedList.ServerResponse.Header or (if a response was
46666// returned at all) in error.(*googleapi.Error).Header. Use
46667// googleapi.IsNotModified to check whether the returned error was
46668// because http.StatusNotModified was returned.
46669func (c *InstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceAggregatedList, error) {
46670	gensupport.SetOptions(c.urlParams_, opts...)
46671	res, err := c.doRequest("json")
46672	if res != nil && res.StatusCode == http.StatusNotModified {
46673		if res.Body != nil {
46674			res.Body.Close()
46675		}
46676		return nil, &googleapi.Error{
46677			Code:   res.StatusCode,
46678			Header: res.Header,
46679		}
46680	}
46681	if err != nil {
46682		return nil, err
46683	}
46684	defer googleapi.CloseBody(res)
46685	if err := googleapi.CheckResponse(res); err != nil {
46686		return nil, err
46687	}
46688	ret := &InstanceAggregatedList{
46689		ServerResponse: googleapi.ServerResponse{
46690			Header:         res.Header,
46691			HTTPStatusCode: res.StatusCode,
46692		},
46693	}
46694	target := &ret
46695	if err := gensupport.DecodeResponse(target, res); err != nil {
46696		return nil, err
46697	}
46698	return ret, nil
46699	// {
46700	//   "description": "Retrieves aggregated list of instances.",
46701	//   "httpMethod": "GET",
46702	//   "id": "compute.instances.aggregatedList",
46703	//   "parameterOrder": [
46704	//     "project"
46705	//   ],
46706	//   "parameters": {
46707	//     "filter": {
46708	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
46709	//       "location": "query",
46710	//       "type": "string"
46711	//     },
46712	//     "maxResults": {
46713	//       "default": "500",
46714	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
46715	//       "format": "uint32",
46716	//       "location": "query",
46717	//       "minimum": "0",
46718	//       "type": "integer"
46719	//     },
46720	//     "orderBy": {
46721	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
46722	//       "location": "query",
46723	//       "type": "string"
46724	//     },
46725	//     "pageToken": {
46726	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
46727	//       "location": "query",
46728	//       "type": "string"
46729	//     },
46730	//     "project": {
46731	//       "description": "Project ID for this request.",
46732	//       "location": "path",
46733	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46734	//       "required": true,
46735	//       "type": "string"
46736	//     }
46737	//   },
46738	//   "path": "{project}/aggregated/instances",
46739	//   "response": {
46740	//     "$ref": "InstanceAggregatedList"
46741	//   },
46742	//   "scopes": [
46743	//     "https://www.googleapis.com/auth/cloud-platform",
46744	//     "https://www.googleapis.com/auth/compute",
46745	//     "https://www.googleapis.com/auth/compute.readonly"
46746	//   ]
46747	// }
46748
46749}
46750
46751// Pages invokes f for each page of results.
46752// A non-nil error returned from f will halt the iteration.
46753// The provided context supersedes any context provided to the Context method.
46754func (c *InstancesAggregatedListCall) Pages(ctx context.Context, f func(*InstanceAggregatedList) error) error {
46755	c.ctx_ = ctx
46756	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
46757	for {
46758		x, err := c.Do()
46759		if err != nil {
46760			return err
46761		}
46762		if err := f(x); err != nil {
46763			return err
46764		}
46765		if x.NextPageToken == "" {
46766			return nil
46767		}
46768		c.PageToken(x.NextPageToken)
46769	}
46770}
46771
46772// method id "compute.instances.attachDisk":
46773
46774type InstancesAttachDiskCall struct {
46775	s            *Service
46776	project      string
46777	zone         string
46778	instance     string
46779	attacheddisk *AttachedDisk
46780	urlParams_   gensupport.URLParams
46781	ctx_         context.Context
46782	header_      http.Header
46783}
46784
46785// AttachDisk: Attaches an existing Disk resource to an instance. You
46786// must first create the disk before you can attach it. It is not
46787// possible to create and attach a disk at the same time. For more
46788// information, read Adding a persistent disk to your instance.
46789// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/attachDisk
46790func (r *InstancesService) AttachDisk(project string, zone string, instance string, attacheddisk *AttachedDisk) *InstancesAttachDiskCall {
46791	c := &InstancesAttachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46792	c.project = project
46793	c.zone = zone
46794	c.instance = instance
46795	c.attacheddisk = attacheddisk
46796	return c
46797}
46798
46799// RequestId sets the optional parameter "requestId": An optional
46800// request ID to identify requests. Specify a unique request ID so that
46801// if you must retry your request, the server will know to ignore the
46802// request if it has already been completed.
46803//
46804// For example, consider a situation where you make an initial request
46805// and the request times out. If you make the request again with the
46806// same request ID, the server can check if original operation with the
46807// same request ID was received, and if so, will ignore the second
46808// request. This prevents clients from accidentally creating duplicate
46809// commitments.
46810//
46811// The request ID must be a valid UUID with the exception that zero UUID
46812// is not supported (00000000-0000-0000-0000-000000000000).
46813func (c *InstancesAttachDiskCall) RequestId(requestId string) *InstancesAttachDiskCall {
46814	c.urlParams_.Set("requestId", requestId)
46815	return c
46816}
46817
46818// Fields allows partial responses to be retrieved. See
46819// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46820// for more information.
46821func (c *InstancesAttachDiskCall) Fields(s ...googleapi.Field) *InstancesAttachDiskCall {
46822	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46823	return c
46824}
46825
46826// Context sets the context to be used in this call's Do method. Any
46827// pending HTTP request will be aborted if the provided context is
46828// canceled.
46829func (c *InstancesAttachDiskCall) Context(ctx context.Context) *InstancesAttachDiskCall {
46830	c.ctx_ = ctx
46831	return c
46832}
46833
46834// Header returns an http.Header that can be modified by the caller to
46835// add HTTP headers to the request.
46836func (c *InstancesAttachDiskCall) Header() http.Header {
46837	if c.header_ == nil {
46838		c.header_ = make(http.Header)
46839	}
46840	return c.header_
46841}
46842
46843func (c *InstancesAttachDiskCall) doRequest(alt string) (*http.Response, error) {
46844	reqHeaders := make(http.Header)
46845	for k, v := range c.header_ {
46846		reqHeaders[k] = v
46847	}
46848	reqHeaders.Set("User-Agent", c.s.userAgent())
46849	var body io.Reader = nil
46850	body, err := googleapi.WithoutDataWrapper.JSONReader(c.attacheddisk)
46851	if err != nil {
46852		return nil, err
46853	}
46854	reqHeaders.Set("Content-Type", "application/json")
46855	c.urlParams_.Set("alt", alt)
46856	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/attachDisk")
46857	urls += "?" + c.urlParams_.Encode()
46858	req, _ := http.NewRequest("POST", urls, body)
46859	req.Header = reqHeaders
46860	googleapi.Expand(req.URL, map[string]string{
46861		"project":  c.project,
46862		"zone":     c.zone,
46863		"instance": c.instance,
46864	})
46865	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46866}
46867
46868// Do executes the "compute.instances.attachDisk" call.
46869// Exactly one of *Operation or error will be non-nil. Any non-2xx
46870// status code is an error. Response headers are in either
46871// *Operation.ServerResponse.Header or (if a response was returned at
46872// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46873// to check whether the returned error was because
46874// http.StatusNotModified was returned.
46875func (c *InstancesAttachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
46876	gensupport.SetOptions(c.urlParams_, opts...)
46877	res, err := c.doRequest("json")
46878	if res != nil && res.StatusCode == http.StatusNotModified {
46879		if res.Body != nil {
46880			res.Body.Close()
46881		}
46882		return nil, &googleapi.Error{
46883			Code:   res.StatusCode,
46884			Header: res.Header,
46885		}
46886	}
46887	if err != nil {
46888		return nil, err
46889	}
46890	defer googleapi.CloseBody(res)
46891	if err := googleapi.CheckResponse(res); err != nil {
46892		return nil, err
46893	}
46894	ret := &Operation{
46895		ServerResponse: googleapi.ServerResponse{
46896			Header:         res.Header,
46897			HTTPStatusCode: res.StatusCode,
46898		},
46899	}
46900	target := &ret
46901	if err := gensupport.DecodeResponse(target, res); err != nil {
46902		return nil, err
46903	}
46904	return ret, nil
46905	// {
46906	//   "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.",
46907	//   "httpMethod": "POST",
46908	//   "id": "compute.instances.attachDisk",
46909	//   "parameterOrder": [
46910	//     "project",
46911	//     "zone",
46912	//     "instance"
46913	//   ],
46914	//   "parameters": {
46915	//     "instance": {
46916	//       "description": "The instance name for this request.",
46917	//       "location": "path",
46918	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46919	//       "required": true,
46920	//       "type": "string"
46921	//     },
46922	//     "project": {
46923	//       "description": "Project ID for this request.",
46924	//       "location": "path",
46925	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46926	//       "required": true,
46927	//       "type": "string"
46928	//     },
46929	//     "requestId": {
46930	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
46931	//       "location": "query",
46932	//       "type": "string"
46933	//     },
46934	//     "zone": {
46935	//       "description": "The name of the zone for this request.",
46936	//       "location": "path",
46937	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46938	//       "required": true,
46939	//       "type": "string"
46940	//     }
46941	//   },
46942	//   "path": "{project}/zones/{zone}/instances/{instance}/attachDisk",
46943	//   "request": {
46944	//     "$ref": "AttachedDisk"
46945	//   },
46946	//   "response": {
46947	//     "$ref": "Operation"
46948	//   },
46949	//   "scopes": [
46950	//     "https://www.googleapis.com/auth/cloud-platform",
46951	//     "https://www.googleapis.com/auth/compute"
46952	//   ]
46953	// }
46954
46955}
46956
46957// method id "compute.instances.delete":
46958
46959type InstancesDeleteCall struct {
46960	s          *Service
46961	project    string
46962	zone       string
46963	instance   string
46964	urlParams_ gensupport.URLParams
46965	ctx_       context.Context
46966	header_    http.Header
46967}
46968
46969// Delete: Deletes the specified Instance resource. For more
46970// information, see Stopping or Deleting an Instance.
46971// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/delete
46972func (r *InstancesService) Delete(project string, zone string, instance string) *InstancesDeleteCall {
46973	c := &InstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46974	c.project = project
46975	c.zone = zone
46976	c.instance = instance
46977	return c
46978}
46979
46980// RequestId sets the optional parameter "requestId": An optional
46981// request ID to identify requests. Specify a unique request ID so that
46982// if you must retry your request, the server will know to ignore the
46983// request if it has already been completed.
46984//
46985// For example, consider a situation where you make an initial request
46986// and the request times out. If you make the request again with the
46987// same request ID, the server can check if original operation with the
46988// same request ID was received, and if so, will ignore the second
46989// request. This prevents clients from accidentally creating duplicate
46990// commitments.
46991//
46992// The request ID must be a valid UUID with the exception that zero UUID
46993// is not supported (00000000-0000-0000-0000-000000000000).
46994func (c *InstancesDeleteCall) RequestId(requestId string) *InstancesDeleteCall {
46995	c.urlParams_.Set("requestId", requestId)
46996	return c
46997}
46998
46999// Fields allows partial responses to be retrieved. See
47000// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47001// for more information.
47002func (c *InstancesDeleteCall) Fields(s ...googleapi.Field) *InstancesDeleteCall {
47003	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47004	return c
47005}
47006
47007// Context sets the context to be used in this call's Do method. Any
47008// pending HTTP request will be aborted if the provided context is
47009// canceled.
47010func (c *InstancesDeleteCall) Context(ctx context.Context) *InstancesDeleteCall {
47011	c.ctx_ = ctx
47012	return c
47013}
47014
47015// Header returns an http.Header that can be modified by the caller to
47016// add HTTP headers to the request.
47017func (c *InstancesDeleteCall) Header() http.Header {
47018	if c.header_ == nil {
47019		c.header_ = make(http.Header)
47020	}
47021	return c.header_
47022}
47023
47024func (c *InstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
47025	reqHeaders := make(http.Header)
47026	for k, v := range c.header_ {
47027		reqHeaders[k] = v
47028	}
47029	reqHeaders.Set("User-Agent", c.s.userAgent())
47030	var body io.Reader = nil
47031	c.urlParams_.Set("alt", alt)
47032	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
47033	urls += "?" + c.urlParams_.Encode()
47034	req, _ := http.NewRequest("DELETE", urls, body)
47035	req.Header = reqHeaders
47036	googleapi.Expand(req.URL, map[string]string{
47037		"project":  c.project,
47038		"zone":     c.zone,
47039		"instance": c.instance,
47040	})
47041	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47042}
47043
47044// Do executes the "compute.instances.delete" call.
47045// Exactly one of *Operation or error will be non-nil. Any non-2xx
47046// status code is an error. Response headers are in either
47047// *Operation.ServerResponse.Header or (if a response was returned at
47048// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47049// to check whether the returned error was because
47050// http.StatusNotModified was returned.
47051func (c *InstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
47052	gensupport.SetOptions(c.urlParams_, opts...)
47053	res, err := c.doRequest("json")
47054	if res != nil && res.StatusCode == http.StatusNotModified {
47055		if res.Body != nil {
47056			res.Body.Close()
47057		}
47058		return nil, &googleapi.Error{
47059			Code:   res.StatusCode,
47060			Header: res.Header,
47061		}
47062	}
47063	if err != nil {
47064		return nil, err
47065	}
47066	defer googleapi.CloseBody(res)
47067	if err := googleapi.CheckResponse(res); err != nil {
47068		return nil, err
47069	}
47070	ret := &Operation{
47071		ServerResponse: googleapi.ServerResponse{
47072			Header:         res.Header,
47073			HTTPStatusCode: res.StatusCode,
47074		},
47075	}
47076	target := &ret
47077	if err := gensupport.DecodeResponse(target, res); err != nil {
47078		return nil, err
47079	}
47080	return ret, nil
47081	// {
47082	//   "description": "Deletes the specified Instance resource. For more information, see Stopping or Deleting an Instance.",
47083	//   "httpMethod": "DELETE",
47084	//   "id": "compute.instances.delete",
47085	//   "parameterOrder": [
47086	//     "project",
47087	//     "zone",
47088	//     "instance"
47089	//   ],
47090	//   "parameters": {
47091	//     "instance": {
47092	//       "description": "Name of the instance resource to delete.",
47093	//       "location": "path",
47094	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47095	//       "required": true,
47096	//       "type": "string"
47097	//     },
47098	//     "project": {
47099	//       "description": "Project ID for this request.",
47100	//       "location": "path",
47101	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47102	//       "required": true,
47103	//       "type": "string"
47104	//     },
47105	//     "requestId": {
47106	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
47107	//       "location": "query",
47108	//       "type": "string"
47109	//     },
47110	//     "zone": {
47111	//       "description": "The name of the zone for this request.",
47112	//       "location": "path",
47113	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47114	//       "required": true,
47115	//       "type": "string"
47116	//     }
47117	//   },
47118	//   "path": "{project}/zones/{zone}/instances/{instance}",
47119	//   "response": {
47120	//     "$ref": "Operation"
47121	//   },
47122	//   "scopes": [
47123	//     "https://www.googleapis.com/auth/cloud-platform",
47124	//     "https://www.googleapis.com/auth/compute"
47125	//   ]
47126	// }
47127
47128}
47129
47130// method id "compute.instances.deleteAccessConfig":
47131
47132type InstancesDeleteAccessConfigCall struct {
47133	s          *Service
47134	project    string
47135	zone       string
47136	instance   string
47137	urlParams_ gensupport.URLParams
47138	ctx_       context.Context
47139	header_    http.Header
47140}
47141
47142// DeleteAccessConfig: Deletes an access config from an instance's
47143// network interface.
47144// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/deleteAccessConfig
47145func (r *InstancesService) DeleteAccessConfig(project string, zone string, instance string, accessConfig string, networkInterface string) *InstancesDeleteAccessConfigCall {
47146	c := &InstancesDeleteAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47147	c.project = project
47148	c.zone = zone
47149	c.instance = instance
47150	c.urlParams_.Set("accessConfig", accessConfig)
47151	c.urlParams_.Set("networkInterface", networkInterface)
47152	return c
47153}
47154
47155// RequestId sets the optional parameter "requestId": An optional
47156// request ID to identify requests. Specify a unique request ID so that
47157// if you must retry your request, the server will know to ignore the
47158// request if it has already been completed.
47159//
47160// For example, consider a situation where you make an initial request
47161// and the request times out. If you make the request again with the
47162// same request ID, the server can check if original operation with the
47163// same request ID was received, and if so, will ignore the second
47164// request. This prevents clients from accidentally creating duplicate
47165// commitments.
47166//
47167// The request ID must be a valid UUID with the exception that zero UUID
47168// is not supported (00000000-0000-0000-0000-000000000000).
47169func (c *InstancesDeleteAccessConfigCall) RequestId(requestId string) *InstancesDeleteAccessConfigCall {
47170	c.urlParams_.Set("requestId", requestId)
47171	return c
47172}
47173
47174// Fields allows partial responses to be retrieved. See
47175// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47176// for more information.
47177func (c *InstancesDeleteAccessConfigCall) Fields(s ...googleapi.Field) *InstancesDeleteAccessConfigCall {
47178	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47179	return c
47180}
47181
47182// Context sets the context to be used in this call's Do method. Any
47183// pending HTTP request will be aborted if the provided context is
47184// canceled.
47185func (c *InstancesDeleteAccessConfigCall) Context(ctx context.Context) *InstancesDeleteAccessConfigCall {
47186	c.ctx_ = ctx
47187	return c
47188}
47189
47190// Header returns an http.Header that can be modified by the caller to
47191// add HTTP headers to the request.
47192func (c *InstancesDeleteAccessConfigCall) Header() http.Header {
47193	if c.header_ == nil {
47194		c.header_ = make(http.Header)
47195	}
47196	return c.header_
47197}
47198
47199func (c *InstancesDeleteAccessConfigCall) doRequest(alt string) (*http.Response, error) {
47200	reqHeaders := make(http.Header)
47201	for k, v := range c.header_ {
47202		reqHeaders[k] = v
47203	}
47204	reqHeaders.Set("User-Agent", c.s.userAgent())
47205	var body io.Reader = nil
47206	c.urlParams_.Set("alt", alt)
47207	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/deleteAccessConfig")
47208	urls += "?" + c.urlParams_.Encode()
47209	req, _ := http.NewRequest("POST", urls, body)
47210	req.Header = reqHeaders
47211	googleapi.Expand(req.URL, map[string]string{
47212		"project":  c.project,
47213		"zone":     c.zone,
47214		"instance": c.instance,
47215	})
47216	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47217}
47218
47219// Do executes the "compute.instances.deleteAccessConfig" call.
47220// Exactly one of *Operation or error will be non-nil. Any non-2xx
47221// status code is an error. Response headers are in either
47222// *Operation.ServerResponse.Header or (if a response was returned at
47223// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47224// to check whether the returned error was because
47225// http.StatusNotModified was returned.
47226func (c *InstancesDeleteAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
47227	gensupport.SetOptions(c.urlParams_, opts...)
47228	res, err := c.doRequest("json")
47229	if res != nil && res.StatusCode == http.StatusNotModified {
47230		if res.Body != nil {
47231			res.Body.Close()
47232		}
47233		return nil, &googleapi.Error{
47234			Code:   res.StatusCode,
47235			Header: res.Header,
47236		}
47237	}
47238	if err != nil {
47239		return nil, err
47240	}
47241	defer googleapi.CloseBody(res)
47242	if err := googleapi.CheckResponse(res); err != nil {
47243		return nil, err
47244	}
47245	ret := &Operation{
47246		ServerResponse: googleapi.ServerResponse{
47247			Header:         res.Header,
47248			HTTPStatusCode: res.StatusCode,
47249		},
47250	}
47251	target := &ret
47252	if err := gensupport.DecodeResponse(target, res); err != nil {
47253		return nil, err
47254	}
47255	return ret, nil
47256	// {
47257	//   "description": "Deletes an access config from an instance's network interface.",
47258	//   "httpMethod": "POST",
47259	//   "id": "compute.instances.deleteAccessConfig",
47260	//   "parameterOrder": [
47261	//     "project",
47262	//     "zone",
47263	//     "instance",
47264	//     "accessConfig",
47265	//     "networkInterface"
47266	//   ],
47267	//   "parameters": {
47268	//     "accessConfig": {
47269	//       "description": "The name of the access config to delete.",
47270	//       "location": "query",
47271	//       "required": true,
47272	//       "type": "string"
47273	//     },
47274	//     "instance": {
47275	//       "description": "The instance name for this request.",
47276	//       "location": "path",
47277	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47278	//       "required": true,
47279	//       "type": "string"
47280	//     },
47281	//     "networkInterface": {
47282	//       "description": "The name of the network interface.",
47283	//       "location": "query",
47284	//       "required": true,
47285	//       "type": "string"
47286	//     },
47287	//     "project": {
47288	//       "description": "Project ID for this request.",
47289	//       "location": "path",
47290	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47291	//       "required": true,
47292	//       "type": "string"
47293	//     },
47294	//     "requestId": {
47295	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
47296	//       "location": "query",
47297	//       "type": "string"
47298	//     },
47299	//     "zone": {
47300	//       "description": "The name of the zone for this request.",
47301	//       "location": "path",
47302	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47303	//       "required": true,
47304	//       "type": "string"
47305	//     }
47306	//   },
47307	//   "path": "{project}/zones/{zone}/instances/{instance}/deleteAccessConfig",
47308	//   "response": {
47309	//     "$ref": "Operation"
47310	//   },
47311	//   "scopes": [
47312	//     "https://www.googleapis.com/auth/cloud-platform",
47313	//     "https://www.googleapis.com/auth/compute"
47314	//   ]
47315	// }
47316
47317}
47318
47319// method id "compute.instances.detachDisk":
47320
47321type InstancesDetachDiskCall struct {
47322	s          *Service
47323	project    string
47324	zone       string
47325	instance   string
47326	urlParams_ gensupport.URLParams
47327	ctx_       context.Context
47328	header_    http.Header
47329}
47330
47331// DetachDisk: Detaches a disk from an instance.
47332// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/detachDisk
47333func (r *InstancesService) DetachDisk(project string, zone string, instance string, deviceName string) *InstancesDetachDiskCall {
47334	c := &InstancesDetachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47335	c.project = project
47336	c.zone = zone
47337	c.instance = instance
47338	c.urlParams_.Set("deviceName", deviceName)
47339	return c
47340}
47341
47342// RequestId sets the optional parameter "requestId": An optional
47343// request ID to identify requests. Specify a unique request ID so that
47344// if you must retry your request, the server will know to ignore the
47345// request if it has already been completed.
47346//
47347// For example, consider a situation where you make an initial request
47348// and the request times out. If you make the request again with the
47349// same request ID, the server can check if original operation with the
47350// same request ID was received, and if so, will ignore the second
47351// request. This prevents clients from accidentally creating duplicate
47352// commitments.
47353//
47354// The request ID must be a valid UUID with the exception that zero UUID
47355// is not supported (00000000-0000-0000-0000-000000000000).
47356func (c *InstancesDetachDiskCall) RequestId(requestId string) *InstancesDetachDiskCall {
47357	c.urlParams_.Set("requestId", requestId)
47358	return c
47359}
47360
47361// Fields allows partial responses to be retrieved. See
47362// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47363// for more information.
47364func (c *InstancesDetachDiskCall) Fields(s ...googleapi.Field) *InstancesDetachDiskCall {
47365	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47366	return c
47367}
47368
47369// Context sets the context to be used in this call's Do method. Any
47370// pending HTTP request will be aborted if the provided context is
47371// canceled.
47372func (c *InstancesDetachDiskCall) Context(ctx context.Context) *InstancesDetachDiskCall {
47373	c.ctx_ = ctx
47374	return c
47375}
47376
47377// Header returns an http.Header that can be modified by the caller to
47378// add HTTP headers to the request.
47379func (c *InstancesDetachDiskCall) Header() http.Header {
47380	if c.header_ == nil {
47381		c.header_ = make(http.Header)
47382	}
47383	return c.header_
47384}
47385
47386func (c *InstancesDetachDiskCall) doRequest(alt string) (*http.Response, error) {
47387	reqHeaders := make(http.Header)
47388	for k, v := range c.header_ {
47389		reqHeaders[k] = v
47390	}
47391	reqHeaders.Set("User-Agent", c.s.userAgent())
47392	var body io.Reader = nil
47393	c.urlParams_.Set("alt", alt)
47394	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/detachDisk")
47395	urls += "?" + c.urlParams_.Encode()
47396	req, _ := http.NewRequest("POST", urls, body)
47397	req.Header = reqHeaders
47398	googleapi.Expand(req.URL, map[string]string{
47399		"project":  c.project,
47400		"zone":     c.zone,
47401		"instance": c.instance,
47402	})
47403	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47404}
47405
47406// Do executes the "compute.instances.detachDisk" call.
47407// Exactly one of *Operation or error will be non-nil. Any non-2xx
47408// status code is an error. Response headers are in either
47409// *Operation.ServerResponse.Header or (if a response was returned at
47410// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47411// to check whether the returned error was because
47412// http.StatusNotModified was returned.
47413func (c *InstancesDetachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
47414	gensupport.SetOptions(c.urlParams_, opts...)
47415	res, err := c.doRequest("json")
47416	if res != nil && res.StatusCode == http.StatusNotModified {
47417		if res.Body != nil {
47418			res.Body.Close()
47419		}
47420		return nil, &googleapi.Error{
47421			Code:   res.StatusCode,
47422			Header: res.Header,
47423		}
47424	}
47425	if err != nil {
47426		return nil, err
47427	}
47428	defer googleapi.CloseBody(res)
47429	if err := googleapi.CheckResponse(res); err != nil {
47430		return nil, err
47431	}
47432	ret := &Operation{
47433		ServerResponse: googleapi.ServerResponse{
47434			Header:         res.Header,
47435			HTTPStatusCode: res.StatusCode,
47436		},
47437	}
47438	target := &ret
47439	if err := gensupport.DecodeResponse(target, res); err != nil {
47440		return nil, err
47441	}
47442	return ret, nil
47443	// {
47444	//   "description": "Detaches a disk from an instance.",
47445	//   "httpMethod": "POST",
47446	//   "id": "compute.instances.detachDisk",
47447	//   "parameterOrder": [
47448	//     "project",
47449	//     "zone",
47450	//     "instance",
47451	//     "deviceName"
47452	//   ],
47453	//   "parameters": {
47454	//     "deviceName": {
47455	//       "description": "Disk device name to detach.",
47456	//       "location": "query",
47457	//       "required": true,
47458	//       "type": "string"
47459	//     },
47460	//     "instance": {
47461	//       "description": "Instance name.",
47462	//       "location": "path",
47463	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47464	//       "required": true,
47465	//       "type": "string"
47466	//     },
47467	//     "project": {
47468	//       "description": "Project ID for this request.",
47469	//       "location": "path",
47470	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47471	//       "required": true,
47472	//       "type": "string"
47473	//     },
47474	//     "requestId": {
47475	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
47476	//       "location": "query",
47477	//       "type": "string"
47478	//     },
47479	//     "zone": {
47480	//       "description": "The name of the zone for this request.",
47481	//       "location": "path",
47482	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47483	//       "required": true,
47484	//       "type": "string"
47485	//     }
47486	//   },
47487	//   "path": "{project}/zones/{zone}/instances/{instance}/detachDisk",
47488	//   "response": {
47489	//     "$ref": "Operation"
47490	//   },
47491	//   "scopes": [
47492	//     "https://www.googleapis.com/auth/cloud-platform",
47493	//     "https://www.googleapis.com/auth/compute"
47494	//   ]
47495	// }
47496
47497}
47498
47499// method id "compute.instances.get":
47500
47501type InstancesGetCall struct {
47502	s            *Service
47503	project      string
47504	zone         string
47505	instance     string
47506	urlParams_   gensupport.URLParams
47507	ifNoneMatch_ string
47508	ctx_         context.Context
47509	header_      http.Header
47510}
47511
47512// Get: Returns the specified Instance resource. Gets a list of
47513// available instances by making a list() request.
47514// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/get
47515func (r *InstancesService) Get(project string, zone string, instance string) *InstancesGetCall {
47516	c := &InstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47517	c.project = project
47518	c.zone = zone
47519	c.instance = instance
47520	return c
47521}
47522
47523// Fields allows partial responses to be retrieved. See
47524// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47525// for more information.
47526func (c *InstancesGetCall) Fields(s ...googleapi.Field) *InstancesGetCall {
47527	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47528	return c
47529}
47530
47531// IfNoneMatch sets the optional parameter which makes the operation
47532// fail if the object's ETag matches the given value. This is useful for
47533// getting updates only after the object has changed since the last
47534// request. Use googleapi.IsNotModified to check whether the response
47535// error from Do is the result of In-None-Match.
47536func (c *InstancesGetCall) IfNoneMatch(entityTag string) *InstancesGetCall {
47537	c.ifNoneMatch_ = entityTag
47538	return c
47539}
47540
47541// Context sets the context to be used in this call's Do method. Any
47542// pending HTTP request will be aborted if the provided context is
47543// canceled.
47544func (c *InstancesGetCall) Context(ctx context.Context) *InstancesGetCall {
47545	c.ctx_ = ctx
47546	return c
47547}
47548
47549// Header returns an http.Header that can be modified by the caller to
47550// add HTTP headers to the request.
47551func (c *InstancesGetCall) Header() http.Header {
47552	if c.header_ == nil {
47553		c.header_ = make(http.Header)
47554	}
47555	return c.header_
47556}
47557
47558func (c *InstancesGetCall) doRequest(alt string) (*http.Response, error) {
47559	reqHeaders := make(http.Header)
47560	for k, v := range c.header_ {
47561		reqHeaders[k] = v
47562	}
47563	reqHeaders.Set("User-Agent", c.s.userAgent())
47564	if c.ifNoneMatch_ != "" {
47565		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
47566	}
47567	var body io.Reader = nil
47568	c.urlParams_.Set("alt", alt)
47569	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
47570	urls += "?" + c.urlParams_.Encode()
47571	req, _ := http.NewRequest("GET", urls, body)
47572	req.Header = reqHeaders
47573	googleapi.Expand(req.URL, map[string]string{
47574		"project":  c.project,
47575		"zone":     c.zone,
47576		"instance": c.instance,
47577	})
47578	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47579}
47580
47581// Do executes the "compute.instances.get" call.
47582// Exactly one of *Instance or error will be non-nil. Any non-2xx status
47583// code is an error. Response headers are in either
47584// *Instance.ServerResponse.Header or (if a response was returned at
47585// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47586// to check whether the returned error was because
47587// http.StatusNotModified was returned.
47588func (c *InstancesGetCall) Do(opts ...googleapi.CallOption) (*Instance, error) {
47589	gensupport.SetOptions(c.urlParams_, opts...)
47590	res, err := c.doRequest("json")
47591	if res != nil && res.StatusCode == http.StatusNotModified {
47592		if res.Body != nil {
47593			res.Body.Close()
47594		}
47595		return nil, &googleapi.Error{
47596			Code:   res.StatusCode,
47597			Header: res.Header,
47598		}
47599	}
47600	if err != nil {
47601		return nil, err
47602	}
47603	defer googleapi.CloseBody(res)
47604	if err := googleapi.CheckResponse(res); err != nil {
47605		return nil, err
47606	}
47607	ret := &Instance{
47608		ServerResponse: googleapi.ServerResponse{
47609			Header:         res.Header,
47610			HTTPStatusCode: res.StatusCode,
47611		},
47612	}
47613	target := &ret
47614	if err := gensupport.DecodeResponse(target, res); err != nil {
47615		return nil, err
47616	}
47617	return ret, nil
47618	// {
47619	//   "description": "Returns the specified Instance resource. Gets a list of available instances by making a list() request.",
47620	//   "httpMethod": "GET",
47621	//   "id": "compute.instances.get",
47622	//   "parameterOrder": [
47623	//     "project",
47624	//     "zone",
47625	//     "instance"
47626	//   ],
47627	//   "parameters": {
47628	//     "instance": {
47629	//       "description": "Name of the instance resource to return.",
47630	//       "location": "path",
47631	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47632	//       "required": true,
47633	//       "type": "string"
47634	//     },
47635	//     "project": {
47636	//       "description": "Project ID for this request.",
47637	//       "location": "path",
47638	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47639	//       "required": true,
47640	//       "type": "string"
47641	//     },
47642	//     "zone": {
47643	//       "description": "The name of the zone for this request.",
47644	//       "location": "path",
47645	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47646	//       "required": true,
47647	//       "type": "string"
47648	//     }
47649	//   },
47650	//   "path": "{project}/zones/{zone}/instances/{instance}",
47651	//   "response": {
47652	//     "$ref": "Instance"
47653	//   },
47654	//   "scopes": [
47655	//     "https://www.googleapis.com/auth/cloud-platform",
47656	//     "https://www.googleapis.com/auth/compute",
47657	//     "https://www.googleapis.com/auth/compute.readonly"
47658	//   ]
47659	// }
47660
47661}
47662
47663// method id "compute.instances.getSerialPortOutput":
47664
47665type InstancesGetSerialPortOutputCall struct {
47666	s            *Service
47667	project      string
47668	zone         string
47669	instance     string
47670	urlParams_   gensupport.URLParams
47671	ifNoneMatch_ string
47672	ctx_         context.Context
47673	header_      http.Header
47674}
47675
47676// GetSerialPortOutput: Returns the specified instance's serial port
47677// output.
47678// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/getSerialPortOutput
47679func (r *InstancesService) GetSerialPortOutput(project string, zone string, instance string) *InstancesGetSerialPortOutputCall {
47680	c := &InstancesGetSerialPortOutputCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47681	c.project = project
47682	c.zone = zone
47683	c.instance = instance
47684	return c
47685}
47686
47687// Port sets the optional parameter "port": Specifies which COM or
47688// serial port to retrieve data from.
47689func (c *InstancesGetSerialPortOutputCall) Port(port int64) *InstancesGetSerialPortOutputCall {
47690	c.urlParams_.Set("port", fmt.Sprint(port))
47691	return c
47692}
47693
47694// Start sets the optional parameter "start": Returns output starting
47695// from a specific byte position. Use this to page through output when
47696// the output is too large to return in a single request. For the
47697// initial request, leave this field unspecified. For subsequent calls,
47698// this field should be set to the next value returned in the previous
47699// call.
47700func (c *InstancesGetSerialPortOutputCall) Start(start int64) *InstancesGetSerialPortOutputCall {
47701	c.urlParams_.Set("start", fmt.Sprint(start))
47702	return c
47703}
47704
47705// Fields allows partial responses to be retrieved. See
47706// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47707// for more information.
47708func (c *InstancesGetSerialPortOutputCall) Fields(s ...googleapi.Field) *InstancesGetSerialPortOutputCall {
47709	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47710	return c
47711}
47712
47713// IfNoneMatch sets the optional parameter which makes the operation
47714// fail if the object's ETag matches the given value. This is useful for
47715// getting updates only after the object has changed since the last
47716// request. Use googleapi.IsNotModified to check whether the response
47717// error from Do is the result of In-None-Match.
47718func (c *InstancesGetSerialPortOutputCall) IfNoneMatch(entityTag string) *InstancesGetSerialPortOutputCall {
47719	c.ifNoneMatch_ = entityTag
47720	return c
47721}
47722
47723// Context sets the context to be used in this call's Do method. Any
47724// pending HTTP request will be aborted if the provided context is
47725// canceled.
47726func (c *InstancesGetSerialPortOutputCall) Context(ctx context.Context) *InstancesGetSerialPortOutputCall {
47727	c.ctx_ = ctx
47728	return c
47729}
47730
47731// Header returns an http.Header that can be modified by the caller to
47732// add HTTP headers to the request.
47733func (c *InstancesGetSerialPortOutputCall) Header() http.Header {
47734	if c.header_ == nil {
47735		c.header_ = make(http.Header)
47736	}
47737	return c.header_
47738}
47739
47740func (c *InstancesGetSerialPortOutputCall) doRequest(alt string) (*http.Response, error) {
47741	reqHeaders := make(http.Header)
47742	for k, v := range c.header_ {
47743		reqHeaders[k] = v
47744	}
47745	reqHeaders.Set("User-Agent", c.s.userAgent())
47746	if c.ifNoneMatch_ != "" {
47747		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
47748	}
47749	var body io.Reader = nil
47750	c.urlParams_.Set("alt", alt)
47751	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/serialPort")
47752	urls += "?" + c.urlParams_.Encode()
47753	req, _ := http.NewRequest("GET", urls, body)
47754	req.Header = reqHeaders
47755	googleapi.Expand(req.URL, map[string]string{
47756		"project":  c.project,
47757		"zone":     c.zone,
47758		"instance": c.instance,
47759	})
47760	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47761}
47762
47763// Do executes the "compute.instances.getSerialPortOutput" call.
47764// Exactly one of *SerialPortOutput or error will be non-nil. Any
47765// non-2xx status code is an error. Response headers are in either
47766// *SerialPortOutput.ServerResponse.Header or (if a response was
47767// returned at all) in error.(*googleapi.Error).Header. Use
47768// googleapi.IsNotModified to check whether the returned error was
47769// because http.StatusNotModified was returned.
47770func (c *InstancesGetSerialPortOutputCall) Do(opts ...googleapi.CallOption) (*SerialPortOutput, error) {
47771	gensupport.SetOptions(c.urlParams_, opts...)
47772	res, err := c.doRequest("json")
47773	if res != nil && res.StatusCode == http.StatusNotModified {
47774		if res.Body != nil {
47775			res.Body.Close()
47776		}
47777		return nil, &googleapi.Error{
47778			Code:   res.StatusCode,
47779			Header: res.Header,
47780		}
47781	}
47782	if err != nil {
47783		return nil, err
47784	}
47785	defer googleapi.CloseBody(res)
47786	if err := googleapi.CheckResponse(res); err != nil {
47787		return nil, err
47788	}
47789	ret := &SerialPortOutput{
47790		ServerResponse: googleapi.ServerResponse{
47791			Header:         res.Header,
47792			HTTPStatusCode: res.StatusCode,
47793		},
47794	}
47795	target := &ret
47796	if err := gensupport.DecodeResponse(target, res); err != nil {
47797		return nil, err
47798	}
47799	return ret, nil
47800	// {
47801	//   "description": "Returns the specified instance's serial port output.",
47802	//   "httpMethod": "GET",
47803	//   "id": "compute.instances.getSerialPortOutput",
47804	//   "parameterOrder": [
47805	//     "project",
47806	//     "zone",
47807	//     "instance"
47808	//   ],
47809	//   "parameters": {
47810	//     "instance": {
47811	//       "description": "Name of the instance scoping this request.",
47812	//       "location": "path",
47813	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47814	//       "required": true,
47815	//       "type": "string"
47816	//     },
47817	//     "port": {
47818	//       "default": "1",
47819	//       "description": "Specifies which COM or serial port to retrieve data from.",
47820	//       "format": "int32",
47821	//       "location": "query",
47822	//       "maximum": "4",
47823	//       "minimum": "1",
47824	//       "type": "integer"
47825	//     },
47826	//     "project": {
47827	//       "description": "Project ID for this request.",
47828	//       "location": "path",
47829	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47830	//       "required": true,
47831	//       "type": "string"
47832	//     },
47833	//     "start": {
47834	//       "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.",
47835	//       "format": "int64",
47836	//       "location": "query",
47837	//       "type": "string"
47838	//     },
47839	//     "zone": {
47840	//       "description": "The name of the zone for this request.",
47841	//       "location": "path",
47842	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47843	//       "required": true,
47844	//       "type": "string"
47845	//     }
47846	//   },
47847	//   "path": "{project}/zones/{zone}/instances/{instance}/serialPort",
47848	//   "response": {
47849	//     "$ref": "SerialPortOutput"
47850	//   },
47851	//   "scopes": [
47852	//     "https://www.googleapis.com/auth/cloud-platform",
47853	//     "https://www.googleapis.com/auth/compute",
47854	//     "https://www.googleapis.com/auth/compute.readonly"
47855	//   ]
47856	// }
47857
47858}
47859
47860// method id "compute.instances.insert":
47861
47862type InstancesInsertCall struct {
47863	s          *Service
47864	project    string
47865	zone       string
47866	instance   *Instance
47867	urlParams_ gensupport.URLParams
47868	ctx_       context.Context
47869	header_    http.Header
47870}
47871
47872// Insert: Creates an instance resource in the specified project using
47873// the data included in the request.
47874// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/insert
47875func (r *InstancesService) Insert(project string, zone string, instance *Instance) *InstancesInsertCall {
47876	c := &InstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47877	c.project = project
47878	c.zone = zone
47879	c.instance = instance
47880	return c
47881}
47882
47883// RequestId sets the optional parameter "requestId": An optional
47884// request ID to identify requests. Specify a unique request ID so that
47885// if you must retry your request, the server will know to ignore the
47886// request if it has already been completed.
47887//
47888// For example, consider a situation where you make an initial request
47889// and the request times out. If you make the request again with the
47890// same request ID, the server can check if original operation with the
47891// same request ID was received, and if so, will ignore the second
47892// request. This prevents clients from accidentally creating duplicate
47893// commitments.
47894//
47895// The request ID must be a valid UUID with the exception that zero UUID
47896// is not supported (00000000-0000-0000-0000-000000000000).
47897func (c *InstancesInsertCall) RequestId(requestId string) *InstancesInsertCall {
47898	c.urlParams_.Set("requestId", requestId)
47899	return c
47900}
47901
47902// SourceInstanceTemplate sets the optional parameter
47903// "sourceInstanceTemplate": Specifies instance template to create the
47904// instance.
47905//
47906// This field is optional. It can be a full or partial URL. For example,
47907// the following are all valid URLs to an instance template:
47908// -
47909// https://www.googleapis.com/compute/v1/projects/project/global/global/instanceTemplates/instanceTemplate
47910// - projects/project/global/global/instanceTemplates/instanceTemplate
47911//
47912// - global/instancesTemplates/instanceTemplate
47913func (c *InstancesInsertCall) SourceInstanceTemplate(sourceInstanceTemplate string) *InstancesInsertCall {
47914	c.urlParams_.Set("sourceInstanceTemplate", sourceInstanceTemplate)
47915	return c
47916}
47917
47918// Fields allows partial responses to be retrieved. See
47919// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47920// for more information.
47921func (c *InstancesInsertCall) Fields(s ...googleapi.Field) *InstancesInsertCall {
47922	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47923	return c
47924}
47925
47926// Context sets the context to be used in this call's Do method. Any
47927// pending HTTP request will be aborted if the provided context is
47928// canceled.
47929func (c *InstancesInsertCall) Context(ctx context.Context) *InstancesInsertCall {
47930	c.ctx_ = ctx
47931	return c
47932}
47933
47934// Header returns an http.Header that can be modified by the caller to
47935// add HTTP headers to the request.
47936func (c *InstancesInsertCall) Header() http.Header {
47937	if c.header_ == nil {
47938		c.header_ = make(http.Header)
47939	}
47940	return c.header_
47941}
47942
47943func (c *InstancesInsertCall) doRequest(alt string) (*http.Response, error) {
47944	reqHeaders := make(http.Header)
47945	for k, v := range c.header_ {
47946		reqHeaders[k] = v
47947	}
47948	reqHeaders.Set("User-Agent", c.s.userAgent())
47949	var body io.Reader = nil
47950	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance)
47951	if err != nil {
47952		return nil, err
47953	}
47954	reqHeaders.Set("Content-Type", "application/json")
47955	c.urlParams_.Set("alt", alt)
47956	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances")
47957	urls += "?" + c.urlParams_.Encode()
47958	req, _ := http.NewRequest("POST", urls, body)
47959	req.Header = reqHeaders
47960	googleapi.Expand(req.URL, map[string]string{
47961		"project": c.project,
47962		"zone":    c.zone,
47963	})
47964	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47965}
47966
47967// Do executes the "compute.instances.insert" call.
47968// Exactly one of *Operation or error will be non-nil. Any non-2xx
47969// status code is an error. Response headers are in either
47970// *Operation.ServerResponse.Header or (if a response was returned at
47971// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47972// to check whether the returned error was because
47973// http.StatusNotModified was returned.
47974func (c *InstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
47975	gensupport.SetOptions(c.urlParams_, opts...)
47976	res, err := c.doRequest("json")
47977	if res != nil && res.StatusCode == http.StatusNotModified {
47978		if res.Body != nil {
47979			res.Body.Close()
47980		}
47981		return nil, &googleapi.Error{
47982			Code:   res.StatusCode,
47983			Header: res.Header,
47984		}
47985	}
47986	if err != nil {
47987		return nil, err
47988	}
47989	defer googleapi.CloseBody(res)
47990	if err := googleapi.CheckResponse(res); err != nil {
47991		return nil, err
47992	}
47993	ret := &Operation{
47994		ServerResponse: googleapi.ServerResponse{
47995			Header:         res.Header,
47996			HTTPStatusCode: res.StatusCode,
47997		},
47998	}
47999	target := &ret
48000	if err := gensupport.DecodeResponse(target, res); err != nil {
48001		return nil, err
48002	}
48003	return ret, nil
48004	// {
48005	//   "description": "Creates an instance resource in the specified project using the data included in the request.",
48006	//   "httpMethod": "POST",
48007	//   "id": "compute.instances.insert",
48008	//   "parameterOrder": [
48009	//     "project",
48010	//     "zone"
48011	//   ],
48012	//   "parameters": {
48013	//     "project": {
48014	//       "description": "Project ID for this request.",
48015	//       "location": "path",
48016	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48017	//       "required": true,
48018	//       "type": "string"
48019	//     },
48020	//     "requestId": {
48021	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48022	//       "location": "query",
48023	//       "type": "string"
48024	//     },
48025	//     "sourceInstanceTemplate": {
48026	//       "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/global/instanceTemplates/instanceTemplate \n- projects/project/global/global/instanceTemplates/instanceTemplate \n- global/instancesTemplates/instanceTemplate",
48027	//       "location": "query",
48028	//       "type": "string"
48029	//     },
48030	//     "zone": {
48031	//       "description": "The name of the zone for this request.",
48032	//       "location": "path",
48033	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48034	//       "required": true,
48035	//       "type": "string"
48036	//     }
48037	//   },
48038	//   "path": "{project}/zones/{zone}/instances",
48039	//   "request": {
48040	//     "$ref": "Instance"
48041	//   },
48042	//   "response": {
48043	//     "$ref": "Operation"
48044	//   },
48045	//   "scopes": [
48046	//     "https://www.googleapis.com/auth/cloud-platform",
48047	//     "https://www.googleapis.com/auth/compute"
48048	//   ]
48049	// }
48050
48051}
48052
48053// method id "compute.instances.list":
48054
48055type InstancesListCall struct {
48056	s            *Service
48057	project      string
48058	zone         string
48059	urlParams_   gensupport.URLParams
48060	ifNoneMatch_ string
48061	ctx_         context.Context
48062	header_      http.Header
48063}
48064
48065// List: Retrieves the list of instances contained within the specified
48066// zone.
48067// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/list
48068func (r *InstancesService) List(project string, zone string) *InstancesListCall {
48069	c := &InstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48070	c.project = project
48071	c.zone = zone
48072	return c
48073}
48074
48075// Filter sets the optional parameter "filter": A filter expression that
48076// filters resources listed in the response. The expression must specify
48077// the field name, a comparison operator, and the value that you want to
48078// use for filtering. The value must be a string, a number, or a
48079// boolean. The comparison operator must be either =, !=, >, or <.
48080//
48081// For example, if you are filtering Compute Engine instances, you can
48082// exclude instances named example-instance by specifying name !=
48083// example-instance.
48084//
48085// You can also filter nested fields. For example, you could specify
48086// scheduling.automaticRestart = false to include instances only if they
48087// are not scheduled for automatic restarts. You can use filtering on
48088// nested fields to filter based on resource labels.
48089//
48090// To filter on multiple expressions, provide each separate expression
48091// within parentheses. For example, (scheduling.automaticRestart = true)
48092// (cpuPlatform = "Intel Skylake"). By default, each expression is an
48093// AND expression. However, you can include AND and OR expressions
48094// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
48095// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
48096// true).
48097func (c *InstancesListCall) Filter(filter string) *InstancesListCall {
48098	c.urlParams_.Set("filter", filter)
48099	return c
48100}
48101
48102// MaxResults sets the optional parameter "maxResults": The maximum
48103// number of results per page that should be returned. If the number of
48104// available results is larger than maxResults, Compute Engine returns a
48105// nextPageToken that can be used to get the next page of results in
48106// subsequent list requests. Acceptable values are 0 to 500, inclusive.
48107// (Default: 500)
48108func (c *InstancesListCall) MaxResults(maxResults int64) *InstancesListCall {
48109	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
48110	return c
48111}
48112
48113// OrderBy sets the optional parameter "orderBy": Sorts list results by
48114// a certain order. By default, results are returned in alphanumerical
48115// order based on the resource name.
48116//
48117// You can also sort results in descending order based on the creation
48118// timestamp using orderBy="creationTimestamp desc". This sorts results
48119// based on the creationTimestamp field in reverse chronological order
48120// (newest result first). Use this to sort resources like operations so
48121// that the newest operation is returned first.
48122//
48123// Currently, only sorting by name or creationTimestamp desc is
48124// supported.
48125func (c *InstancesListCall) OrderBy(orderBy string) *InstancesListCall {
48126	c.urlParams_.Set("orderBy", orderBy)
48127	return c
48128}
48129
48130// PageToken sets the optional parameter "pageToken": Specifies a page
48131// token to use. Set pageToken to the nextPageToken returned by a
48132// previous list request to get the next page of results.
48133func (c *InstancesListCall) PageToken(pageToken string) *InstancesListCall {
48134	c.urlParams_.Set("pageToken", pageToken)
48135	return c
48136}
48137
48138// Fields allows partial responses to be retrieved. See
48139// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48140// for more information.
48141func (c *InstancesListCall) Fields(s ...googleapi.Field) *InstancesListCall {
48142	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48143	return c
48144}
48145
48146// IfNoneMatch sets the optional parameter which makes the operation
48147// fail if the object's ETag matches the given value. This is useful for
48148// getting updates only after the object has changed since the last
48149// request. Use googleapi.IsNotModified to check whether the response
48150// error from Do is the result of In-None-Match.
48151func (c *InstancesListCall) IfNoneMatch(entityTag string) *InstancesListCall {
48152	c.ifNoneMatch_ = entityTag
48153	return c
48154}
48155
48156// Context sets the context to be used in this call's Do method. Any
48157// pending HTTP request will be aborted if the provided context is
48158// canceled.
48159func (c *InstancesListCall) Context(ctx context.Context) *InstancesListCall {
48160	c.ctx_ = ctx
48161	return c
48162}
48163
48164// Header returns an http.Header that can be modified by the caller to
48165// add HTTP headers to the request.
48166func (c *InstancesListCall) Header() http.Header {
48167	if c.header_ == nil {
48168		c.header_ = make(http.Header)
48169	}
48170	return c.header_
48171}
48172
48173func (c *InstancesListCall) doRequest(alt string) (*http.Response, error) {
48174	reqHeaders := make(http.Header)
48175	for k, v := range c.header_ {
48176		reqHeaders[k] = v
48177	}
48178	reqHeaders.Set("User-Agent", c.s.userAgent())
48179	if c.ifNoneMatch_ != "" {
48180		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
48181	}
48182	var body io.Reader = nil
48183	c.urlParams_.Set("alt", alt)
48184	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances")
48185	urls += "?" + c.urlParams_.Encode()
48186	req, _ := http.NewRequest("GET", urls, body)
48187	req.Header = reqHeaders
48188	googleapi.Expand(req.URL, map[string]string{
48189		"project": c.project,
48190		"zone":    c.zone,
48191	})
48192	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48193}
48194
48195// Do executes the "compute.instances.list" call.
48196// Exactly one of *InstanceList or error will be non-nil. Any non-2xx
48197// status code is an error. Response headers are in either
48198// *InstanceList.ServerResponse.Header or (if a response was returned at
48199// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48200// to check whether the returned error was because
48201// http.StatusNotModified was returned.
48202func (c *InstancesListCall) Do(opts ...googleapi.CallOption) (*InstanceList, error) {
48203	gensupport.SetOptions(c.urlParams_, opts...)
48204	res, err := c.doRequest("json")
48205	if res != nil && res.StatusCode == http.StatusNotModified {
48206		if res.Body != nil {
48207			res.Body.Close()
48208		}
48209		return nil, &googleapi.Error{
48210			Code:   res.StatusCode,
48211			Header: res.Header,
48212		}
48213	}
48214	if err != nil {
48215		return nil, err
48216	}
48217	defer googleapi.CloseBody(res)
48218	if err := googleapi.CheckResponse(res); err != nil {
48219		return nil, err
48220	}
48221	ret := &InstanceList{
48222		ServerResponse: googleapi.ServerResponse{
48223			Header:         res.Header,
48224			HTTPStatusCode: res.StatusCode,
48225		},
48226	}
48227	target := &ret
48228	if err := gensupport.DecodeResponse(target, res); err != nil {
48229		return nil, err
48230	}
48231	return ret, nil
48232	// {
48233	//   "description": "Retrieves the list of instances contained within the specified zone.",
48234	//   "httpMethod": "GET",
48235	//   "id": "compute.instances.list",
48236	//   "parameterOrder": [
48237	//     "project",
48238	//     "zone"
48239	//   ],
48240	//   "parameters": {
48241	//     "filter": {
48242	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
48243	//       "location": "query",
48244	//       "type": "string"
48245	//     },
48246	//     "maxResults": {
48247	//       "default": "500",
48248	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
48249	//       "format": "uint32",
48250	//       "location": "query",
48251	//       "minimum": "0",
48252	//       "type": "integer"
48253	//     },
48254	//     "orderBy": {
48255	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
48256	//       "location": "query",
48257	//       "type": "string"
48258	//     },
48259	//     "pageToken": {
48260	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
48261	//       "location": "query",
48262	//       "type": "string"
48263	//     },
48264	//     "project": {
48265	//       "description": "Project ID for this request.",
48266	//       "location": "path",
48267	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48268	//       "required": true,
48269	//       "type": "string"
48270	//     },
48271	//     "zone": {
48272	//       "description": "The name of the zone for this request.",
48273	//       "location": "path",
48274	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48275	//       "required": true,
48276	//       "type": "string"
48277	//     }
48278	//   },
48279	//   "path": "{project}/zones/{zone}/instances",
48280	//   "response": {
48281	//     "$ref": "InstanceList"
48282	//   },
48283	//   "scopes": [
48284	//     "https://www.googleapis.com/auth/cloud-platform",
48285	//     "https://www.googleapis.com/auth/compute",
48286	//     "https://www.googleapis.com/auth/compute.readonly"
48287	//   ]
48288	// }
48289
48290}
48291
48292// Pages invokes f for each page of results.
48293// A non-nil error returned from f will halt the iteration.
48294// The provided context supersedes any context provided to the Context method.
48295func (c *InstancesListCall) Pages(ctx context.Context, f func(*InstanceList) error) error {
48296	c.ctx_ = ctx
48297	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
48298	for {
48299		x, err := c.Do()
48300		if err != nil {
48301			return err
48302		}
48303		if err := f(x); err != nil {
48304			return err
48305		}
48306		if x.NextPageToken == "" {
48307			return nil
48308		}
48309		c.PageToken(x.NextPageToken)
48310	}
48311}
48312
48313// method id "compute.instances.listReferrers":
48314
48315type InstancesListReferrersCall struct {
48316	s            *Service
48317	project      string
48318	zone         string
48319	instance     string
48320	urlParams_   gensupport.URLParams
48321	ifNoneMatch_ string
48322	ctx_         context.Context
48323	header_      http.Header
48324}
48325
48326// ListReferrers: Retrieves the list of referrers to instances contained
48327// within the specified zone.
48328func (r *InstancesService) ListReferrers(project string, zone string, instance string) *InstancesListReferrersCall {
48329	c := &InstancesListReferrersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48330	c.project = project
48331	c.zone = zone
48332	c.instance = instance
48333	return c
48334}
48335
48336// Filter sets the optional parameter "filter": A filter expression that
48337// filters resources listed in the response. The expression must specify
48338// the field name, a comparison operator, and the value that you want to
48339// use for filtering. The value must be a string, a number, or a
48340// boolean. The comparison operator must be either =, !=, >, or <.
48341//
48342// For example, if you are filtering Compute Engine instances, you can
48343// exclude instances named example-instance by specifying name !=
48344// example-instance.
48345//
48346// You can also filter nested fields. For example, you could specify
48347// scheduling.automaticRestart = false to include instances only if they
48348// are not scheduled for automatic restarts. You can use filtering on
48349// nested fields to filter based on resource labels.
48350//
48351// To filter on multiple expressions, provide each separate expression
48352// within parentheses. For example, (scheduling.automaticRestart = true)
48353// (cpuPlatform = "Intel Skylake"). By default, each expression is an
48354// AND expression. However, you can include AND and OR expressions
48355// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
48356// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
48357// true).
48358func (c *InstancesListReferrersCall) Filter(filter string) *InstancesListReferrersCall {
48359	c.urlParams_.Set("filter", filter)
48360	return c
48361}
48362
48363// MaxResults sets the optional parameter "maxResults": The maximum
48364// number of results per page that should be returned. If the number of
48365// available results is larger than maxResults, Compute Engine returns a
48366// nextPageToken that can be used to get the next page of results in
48367// subsequent list requests. Acceptable values are 0 to 500, inclusive.
48368// (Default: 500)
48369func (c *InstancesListReferrersCall) MaxResults(maxResults int64) *InstancesListReferrersCall {
48370	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
48371	return c
48372}
48373
48374// OrderBy sets the optional parameter "orderBy": Sorts list results by
48375// a certain order. By default, results are returned in alphanumerical
48376// order based on the resource name.
48377//
48378// You can also sort results in descending order based on the creation
48379// timestamp using orderBy="creationTimestamp desc". This sorts results
48380// based on the creationTimestamp field in reverse chronological order
48381// (newest result first). Use this to sort resources like operations so
48382// that the newest operation is returned first.
48383//
48384// Currently, only sorting by name or creationTimestamp desc is
48385// supported.
48386func (c *InstancesListReferrersCall) OrderBy(orderBy string) *InstancesListReferrersCall {
48387	c.urlParams_.Set("orderBy", orderBy)
48388	return c
48389}
48390
48391// PageToken sets the optional parameter "pageToken": Specifies a page
48392// token to use. Set pageToken to the nextPageToken returned by a
48393// previous list request to get the next page of results.
48394func (c *InstancesListReferrersCall) PageToken(pageToken string) *InstancesListReferrersCall {
48395	c.urlParams_.Set("pageToken", pageToken)
48396	return c
48397}
48398
48399// Fields allows partial responses to be retrieved. See
48400// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48401// for more information.
48402func (c *InstancesListReferrersCall) Fields(s ...googleapi.Field) *InstancesListReferrersCall {
48403	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48404	return c
48405}
48406
48407// IfNoneMatch sets the optional parameter which makes the operation
48408// fail if the object's ETag matches the given value. This is useful for
48409// getting updates only after the object has changed since the last
48410// request. Use googleapi.IsNotModified to check whether the response
48411// error from Do is the result of In-None-Match.
48412func (c *InstancesListReferrersCall) IfNoneMatch(entityTag string) *InstancesListReferrersCall {
48413	c.ifNoneMatch_ = entityTag
48414	return c
48415}
48416
48417// Context sets the context to be used in this call's Do method. Any
48418// pending HTTP request will be aborted if the provided context is
48419// canceled.
48420func (c *InstancesListReferrersCall) Context(ctx context.Context) *InstancesListReferrersCall {
48421	c.ctx_ = ctx
48422	return c
48423}
48424
48425// Header returns an http.Header that can be modified by the caller to
48426// add HTTP headers to the request.
48427func (c *InstancesListReferrersCall) Header() http.Header {
48428	if c.header_ == nil {
48429		c.header_ = make(http.Header)
48430	}
48431	return c.header_
48432}
48433
48434func (c *InstancesListReferrersCall) doRequest(alt string) (*http.Response, error) {
48435	reqHeaders := make(http.Header)
48436	for k, v := range c.header_ {
48437		reqHeaders[k] = v
48438	}
48439	reqHeaders.Set("User-Agent", c.s.userAgent())
48440	if c.ifNoneMatch_ != "" {
48441		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
48442	}
48443	var body io.Reader = nil
48444	c.urlParams_.Set("alt", alt)
48445	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/referrers")
48446	urls += "?" + c.urlParams_.Encode()
48447	req, _ := http.NewRequest("GET", urls, body)
48448	req.Header = reqHeaders
48449	googleapi.Expand(req.URL, map[string]string{
48450		"project":  c.project,
48451		"zone":     c.zone,
48452		"instance": c.instance,
48453	})
48454	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48455}
48456
48457// Do executes the "compute.instances.listReferrers" call.
48458// Exactly one of *InstanceListReferrers or error will be non-nil. Any
48459// non-2xx status code is an error. Response headers are in either
48460// *InstanceListReferrers.ServerResponse.Header or (if a response was
48461// returned at all) in error.(*googleapi.Error).Header. Use
48462// googleapi.IsNotModified to check whether the returned error was
48463// because http.StatusNotModified was returned.
48464func (c *InstancesListReferrersCall) Do(opts ...googleapi.CallOption) (*InstanceListReferrers, error) {
48465	gensupport.SetOptions(c.urlParams_, opts...)
48466	res, err := c.doRequest("json")
48467	if res != nil && res.StatusCode == http.StatusNotModified {
48468		if res.Body != nil {
48469			res.Body.Close()
48470		}
48471		return nil, &googleapi.Error{
48472			Code:   res.StatusCode,
48473			Header: res.Header,
48474		}
48475	}
48476	if err != nil {
48477		return nil, err
48478	}
48479	defer googleapi.CloseBody(res)
48480	if err := googleapi.CheckResponse(res); err != nil {
48481		return nil, err
48482	}
48483	ret := &InstanceListReferrers{
48484		ServerResponse: googleapi.ServerResponse{
48485			Header:         res.Header,
48486			HTTPStatusCode: res.StatusCode,
48487		},
48488	}
48489	target := &ret
48490	if err := gensupport.DecodeResponse(target, res); err != nil {
48491		return nil, err
48492	}
48493	return ret, nil
48494	// {
48495	//   "description": "Retrieves the list of referrers to instances contained within the specified zone.",
48496	//   "httpMethod": "GET",
48497	//   "id": "compute.instances.listReferrers",
48498	//   "parameterOrder": [
48499	//     "project",
48500	//     "zone",
48501	//     "instance"
48502	//   ],
48503	//   "parameters": {
48504	//     "filter": {
48505	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
48506	//       "location": "query",
48507	//       "type": "string"
48508	//     },
48509	//     "instance": {
48510	//       "description": "Name of the target instance scoping this request, or '-' if the request should span over all instances in the container.",
48511	//       "location": "path",
48512	//       "pattern": "-|[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48513	//       "required": true,
48514	//       "type": "string"
48515	//     },
48516	//     "maxResults": {
48517	//       "default": "500",
48518	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
48519	//       "format": "uint32",
48520	//       "location": "query",
48521	//       "minimum": "0",
48522	//       "type": "integer"
48523	//     },
48524	//     "orderBy": {
48525	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
48526	//       "location": "query",
48527	//       "type": "string"
48528	//     },
48529	//     "pageToken": {
48530	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
48531	//       "location": "query",
48532	//       "type": "string"
48533	//     },
48534	//     "project": {
48535	//       "description": "Project ID for this request.",
48536	//       "location": "path",
48537	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48538	//       "required": true,
48539	//       "type": "string"
48540	//     },
48541	//     "zone": {
48542	//       "description": "The name of the zone for this request.",
48543	//       "location": "path",
48544	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48545	//       "required": true,
48546	//       "type": "string"
48547	//     }
48548	//   },
48549	//   "path": "{project}/zones/{zone}/instances/{instance}/referrers",
48550	//   "response": {
48551	//     "$ref": "InstanceListReferrers"
48552	//   },
48553	//   "scopes": [
48554	//     "https://www.googleapis.com/auth/cloud-platform",
48555	//     "https://www.googleapis.com/auth/compute",
48556	//     "https://www.googleapis.com/auth/compute.readonly"
48557	//   ]
48558	// }
48559
48560}
48561
48562// Pages invokes f for each page of results.
48563// A non-nil error returned from f will halt the iteration.
48564// The provided context supersedes any context provided to the Context method.
48565func (c *InstancesListReferrersCall) Pages(ctx context.Context, f func(*InstanceListReferrers) error) error {
48566	c.ctx_ = ctx
48567	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
48568	for {
48569		x, err := c.Do()
48570		if err != nil {
48571			return err
48572		}
48573		if err := f(x); err != nil {
48574			return err
48575		}
48576		if x.NextPageToken == "" {
48577			return nil
48578		}
48579		c.PageToken(x.NextPageToken)
48580	}
48581}
48582
48583// method id "compute.instances.reset":
48584
48585type InstancesResetCall struct {
48586	s          *Service
48587	project    string
48588	zone       string
48589	instance   string
48590	urlParams_ gensupport.URLParams
48591	ctx_       context.Context
48592	header_    http.Header
48593}
48594
48595// Reset: Performs a reset on the instance. For more information, see
48596// Resetting an instance.
48597// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/reset
48598func (r *InstancesService) Reset(project string, zone string, instance string) *InstancesResetCall {
48599	c := &InstancesResetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48600	c.project = project
48601	c.zone = zone
48602	c.instance = instance
48603	return c
48604}
48605
48606// RequestId sets the optional parameter "requestId": An optional
48607// request ID to identify requests. Specify a unique request ID so that
48608// if you must retry your request, the server will know to ignore the
48609// request if it has already been completed.
48610//
48611// For example, consider a situation where you make an initial request
48612// and the request times out. If you make the request again with the
48613// same request ID, the server can check if original operation with the
48614// same request ID was received, and if so, will ignore the second
48615// request. This prevents clients from accidentally creating duplicate
48616// commitments.
48617//
48618// The request ID must be a valid UUID with the exception that zero UUID
48619// is not supported (00000000-0000-0000-0000-000000000000).
48620func (c *InstancesResetCall) RequestId(requestId string) *InstancesResetCall {
48621	c.urlParams_.Set("requestId", requestId)
48622	return c
48623}
48624
48625// Fields allows partial responses to be retrieved. See
48626// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48627// for more information.
48628func (c *InstancesResetCall) Fields(s ...googleapi.Field) *InstancesResetCall {
48629	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48630	return c
48631}
48632
48633// Context sets the context to be used in this call's Do method. Any
48634// pending HTTP request will be aborted if the provided context is
48635// canceled.
48636func (c *InstancesResetCall) Context(ctx context.Context) *InstancesResetCall {
48637	c.ctx_ = ctx
48638	return c
48639}
48640
48641// Header returns an http.Header that can be modified by the caller to
48642// add HTTP headers to the request.
48643func (c *InstancesResetCall) Header() http.Header {
48644	if c.header_ == nil {
48645		c.header_ = make(http.Header)
48646	}
48647	return c.header_
48648}
48649
48650func (c *InstancesResetCall) doRequest(alt string) (*http.Response, error) {
48651	reqHeaders := make(http.Header)
48652	for k, v := range c.header_ {
48653		reqHeaders[k] = v
48654	}
48655	reqHeaders.Set("User-Agent", c.s.userAgent())
48656	var body io.Reader = nil
48657	c.urlParams_.Set("alt", alt)
48658	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/reset")
48659	urls += "?" + c.urlParams_.Encode()
48660	req, _ := http.NewRequest("POST", urls, body)
48661	req.Header = reqHeaders
48662	googleapi.Expand(req.URL, map[string]string{
48663		"project":  c.project,
48664		"zone":     c.zone,
48665		"instance": c.instance,
48666	})
48667	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48668}
48669
48670// Do executes the "compute.instances.reset" call.
48671// Exactly one of *Operation or error will be non-nil. Any non-2xx
48672// status code is an error. Response headers are in either
48673// *Operation.ServerResponse.Header or (if a response was returned at
48674// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48675// to check whether the returned error was because
48676// http.StatusNotModified was returned.
48677func (c *InstancesResetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48678	gensupport.SetOptions(c.urlParams_, opts...)
48679	res, err := c.doRequest("json")
48680	if res != nil && res.StatusCode == http.StatusNotModified {
48681		if res.Body != nil {
48682			res.Body.Close()
48683		}
48684		return nil, &googleapi.Error{
48685			Code:   res.StatusCode,
48686			Header: res.Header,
48687		}
48688	}
48689	if err != nil {
48690		return nil, err
48691	}
48692	defer googleapi.CloseBody(res)
48693	if err := googleapi.CheckResponse(res); err != nil {
48694		return nil, err
48695	}
48696	ret := &Operation{
48697		ServerResponse: googleapi.ServerResponse{
48698			Header:         res.Header,
48699			HTTPStatusCode: res.StatusCode,
48700		},
48701	}
48702	target := &ret
48703	if err := gensupport.DecodeResponse(target, res); err != nil {
48704		return nil, err
48705	}
48706	return ret, nil
48707	// {
48708	//   "description": "Performs a reset on the instance. For more information, see Resetting an instance.",
48709	//   "httpMethod": "POST",
48710	//   "id": "compute.instances.reset",
48711	//   "parameterOrder": [
48712	//     "project",
48713	//     "zone",
48714	//     "instance"
48715	//   ],
48716	//   "parameters": {
48717	//     "instance": {
48718	//       "description": "Name of the instance scoping this request.",
48719	//       "location": "path",
48720	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48721	//       "required": true,
48722	//       "type": "string"
48723	//     },
48724	//     "project": {
48725	//       "description": "Project ID for this request.",
48726	//       "location": "path",
48727	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48728	//       "required": true,
48729	//       "type": "string"
48730	//     },
48731	//     "requestId": {
48732	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48733	//       "location": "query",
48734	//       "type": "string"
48735	//     },
48736	//     "zone": {
48737	//       "description": "The name of the zone for this request.",
48738	//       "location": "path",
48739	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48740	//       "required": true,
48741	//       "type": "string"
48742	//     }
48743	//   },
48744	//   "path": "{project}/zones/{zone}/instances/{instance}/reset",
48745	//   "response": {
48746	//     "$ref": "Operation"
48747	//   },
48748	//   "scopes": [
48749	//     "https://www.googleapis.com/auth/cloud-platform",
48750	//     "https://www.googleapis.com/auth/compute"
48751	//   ]
48752	// }
48753
48754}
48755
48756// method id "compute.instances.setDeletionProtection":
48757
48758type InstancesSetDeletionProtectionCall struct {
48759	s          *Service
48760	project    string
48761	zone       string
48762	resource   string
48763	urlParams_ gensupport.URLParams
48764	ctx_       context.Context
48765	header_    http.Header
48766}
48767
48768// SetDeletionProtection: Sets deletion protection on the instance.
48769func (r *InstancesService) SetDeletionProtection(project string, zone string, resource string) *InstancesSetDeletionProtectionCall {
48770	c := &InstancesSetDeletionProtectionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48771	c.project = project
48772	c.zone = zone
48773	c.resource = resource
48774	return c
48775}
48776
48777// DeletionProtection sets the optional parameter "deletionProtection":
48778// Whether the resource should be protected against deletion.
48779func (c *InstancesSetDeletionProtectionCall) DeletionProtection(deletionProtection bool) *InstancesSetDeletionProtectionCall {
48780	c.urlParams_.Set("deletionProtection", fmt.Sprint(deletionProtection))
48781	return c
48782}
48783
48784// RequestId sets the optional parameter "requestId": An optional
48785// request ID to identify requests. Specify a unique request ID so that
48786// if you must retry your request, the server will know to ignore the
48787// request if it has already been completed.
48788//
48789// For example, consider a situation where you make an initial request
48790// and the request times out. If you make the request again with the
48791// same request ID, the server can check if original operation with the
48792// same request ID was received, and if so, will ignore the second
48793// request. This prevents clients from accidentally creating duplicate
48794// commitments.
48795//
48796// The request ID must be a valid UUID with the exception that zero UUID
48797// is not supported (00000000-0000-0000-0000-000000000000).
48798func (c *InstancesSetDeletionProtectionCall) RequestId(requestId string) *InstancesSetDeletionProtectionCall {
48799	c.urlParams_.Set("requestId", requestId)
48800	return c
48801}
48802
48803// Fields allows partial responses to be retrieved. See
48804// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48805// for more information.
48806func (c *InstancesSetDeletionProtectionCall) Fields(s ...googleapi.Field) *InstancesSetDeletionProtectionCall {
48807	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48808	return c
48809}
48810
48811// Context sets the context to be used in this call's Do method. Any
48812// pending HTTP request will be aborted if the provided context is
48813// canceled.
48814func (c *InstancesSetDeletionProtectionCall) Context(ctx context.Context) *InstancesSetDeletionProtectionCall {
48815	c.ctx_ = ctx
48816	return c
48817}
48818
48819// Header returns an http.Header that can be modified by the caller to
48820// add HTTP headers to the request.
48821func (c *InstancesSetDeletionProtectionCall) Header() http.Header {
48822	if c.header_ == nil {
48823		c.header_ = make(http.Header)
48824	}
48825	return c.header_
48826}
48827
48828func (c *InstancesSetDeletionProtectionCall) doRequest(alt string) (*http.Response, error) {
48829	reqHeaders := make(http.Header)
48830	for k, v := range c.header_ {
48831		reqHeaders[k] = v
48832	}
48833	reqHeaders.Set("User-Agent", c.s.userAgent())
48834	var body io.Reader = nil
48835	c.urlParams_.Set("alt", alt)
48836	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/setDeletionProtection")
48837	urls += "?" + c.urlParams_.Encode()
48838	req, _ := http.NewRequest("POST", urls, body)
48839	req.Header = reqHeaders
48840	googleapi.Expand(req.URL, map[string]string{
48841		"project":  c.project,
48842		"zone":     c.zone,
48843		"resource": c.resource,
48844	})
48845	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48846}
48847
48848// Do executes the "compute.instances.setDeletionProtection" call.
48849// Exactly one of *Operation or error will be non-nil. Any non-2xx
48850// status code is an error. Response headers are in either
48851// *Operation.ServerResponse.Header or (if a response was returned at
48852// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48853// to check whether the returned error was because
48854// http.StatusNotModified was returned.
48855func (c *InstancesSetDeletionProtectionCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48856	gensupport.SetOptions(c.urlParams_, opts...)
48857	res, err := c.doRequest("json")
48858	if res != nil && res.StatusCode == http.StatusNotModified {
48859		if res.Body != nil {
48860			res.Body.Close()
48861		}
48862		return nil, &googleapi.Error{
48863			Code:   res.StatusCode,
48864			Header: res.Header,
48865		}
48866	}
48867	if err != nil {
48868		return nil, err
48869	}
48870	defer googleapi.CloseBody(res)
48871	if err := googleapi.CheckResponse(res); err != nil {
48872		return nil, err
48873	}
48874	ret := &Operation{
48875		ServerResponse: googleapi.ServerResponse{
48876			Header:         res.Header,
48877			HTTPStatusCode: res.StatusCode,
48878		},
48879	}
48880	target := &ret
48881	if err := gensupport.DecodeResponse(target, res); err != nil {
48882		return nil, err
48883	}
48884	return ret, nil
48885	// {
48886	//   "description": "Sets deletion protection on the instance.",
48887	//   "httpMethod": "POST",
48888	//   "id": "compute.instances.setDeletionProtection",
48889	//   "parameterOrder": [
48890	//     "project",
48891	//     "zone",
48892	//     "resource"
48893	//   ],
48894	//   "parameters": {
48895	//     "deletionProtection": {
48896	//       "default": "true",
48897	//       "description": "Whether the resource should be protected against deletion.",
48898	//       "location": "query",
48899	//       "type": "boolean"
48900	//     },
48901	//     "project": {
48902	//       "description": "Project ID for this request.",
48903	//       "location": "path",
48904	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48905	//       "required": true,
48906	//       "type": "string"
48907	//     },
48908	//     "requestId": {
48909	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48910	//       "location": "query",
48911	//       "type": "string"
48912	//     },
48913	//     "resource": {
48914	//       "description": "Name of the resource for this request.",
48915	//       "location": "path",
48916	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48917	//       "required": true,
48918	//       "type": "string"
48919	//     },
48920	//     "zone": {
48921	//       "description": "The name of the zone for this request.",
48922	//       "location": "path",
48923	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48924	//       "required": true,
48925	//       "type": "string"
48926	//     }
48927	//   },
48928	//   "path": "{project}/zones/{zone}/instances/{resource}/setDeletionProtection",
48929	//   "response": {
48930	//     "$ref": "Operation"
48931	//   },
48932	//   "scopes": [
48933	//     "https://www.googleapis.com/auth/cloud-platform",
48934	//     "https://www.googleapis.com/auth/compute"
48935	//   ]
48936	// }
48937
48938}
48939
48940// method id "compute.instances.setDiskAutoDelete":
48941
48942type InstancesSetDiskAutoDeleteCall struct {
48943	s          *Service
48944	project    string
48945	zone       string
48946	instance   string
48947	urlParams_ gensupport.URLParams
48948	ctx_       context.Context
48949	header_    http.Header
48950}
48951
48952// SetDiskAutoDelete: Sets the auto-delete flag for a disk attached to
48953// an instance.
48954// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setDiskAutoDelete
48955func (r *InstancesService) SetDiskAutoDelete(project string, zone string, instance string, autoDelete bool, deviceName string) *InstancesSetDiskAutoDeleteCall {
48956	c := &InstancesSetDiskAutoDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48957	c.project = project
48958	c.zone = zone
48959	c.instance = instance
48960	c.urlParams_.Set("autoDelete", fmt.Sprint(autoDelete))
48961	c.urlParams_.Set("deviceName", deviceName)
48962	return c
48963}
48964
48965// RequestId sets the optional parameter "requestId": An optional
48966// request ID to identify requests. Specify a unique request ID so that
48967// if you must retry your request, the server will know to ignore the
48968// request if it has already been completed.
48969//
48970// For example, consider a situation where you make an initial request
48971// and the request times out. If you make the request again with the
48972// same request ID, the server can check if original operation with the
48973// same request ID was received, and if so, will ignore the second
48974// request. This prevents clients from accidentally creating duplicate
48975// commitments.
48976//
48977// The request ID must be a valid UUID with the exception that zero UUID
48978// is not supported (00000000-0000-0000-0000-000000000000).
48979func (c *InstancesSetDiskAutoDeleteCall) RequestId(requestId string) *InstancesSetDiskAutoDeleteCall {
48980	c.urlParams_.Set("requestId", requestId)
48981	return c
48982}
48983
48984// Fields allows partial responses to be retrieved. See
48985// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48986// for more information.
48987func (c *InstancesSetDiskAutoDeleteCall) Fields(s ...googleapi.Field) *InstancesSetDiskAutoDeleteCall {
48988	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48989	return c
48990}
48991
48992// Context sets the context to be used in this call's Do method. Any
48993// pending HTTP request will be aborted if the provided context is
48994// canceled.
48995func (c *InstancesSetDiskAutoDeleteCall) Context(ctx context.Context) *InstancesSetDiskAutoDeleteCall {
48996	c.ctx_ = ctx
48997	return c
48998}
48999
49000// Header returns an http.Header that can be modified by the caller to
49001// add HTTP headers to the request.
49002func (c *InstancesSetDiskAutoDeleteCall) Header() http.Header {
49003	if c.header_ == nil {
49004		c.header_ = make(http.Header)
49005	}
49006	return c.header_
49007}
49008
49009func (c *InstancesSetDiskAutoDeleteCall) doRequest(alt string) (*http.Response, error) {
49010	reqHeaders := make(http.Header)
49011	for k, v := range c.header_ {
49012		reqHeaders[k] = v
49013	}
49014	reqHeaders.Set("User-Agent", c.s.userAgent())
49015	var body io.Reader = nil
49016	c.urlParams_.Set("alt", alt)
49017	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete")
49018	urls += "?" + c.urlParams_.Encode()
49019	req, _ := http.NewRequest("POST", urls, body)
49020	req.Header = reqHeaders
49021	googleapi.Expand(req.URL, map[string]string{
49022		"project":  c.project,
49023		"zone":     c.zone,
49024		"instance": c.instance,
49025	})
49026	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49027}
49028
49029// Do executes the "compute.instances.setDiskAutoDelete" call.
49030// Exactly one of *Operation or error will be non-nil. Any non-2xx
49031// status code is an error. Response headers are in either
49032// *Operation.ServerResponse.Header or (if a response was returned at
49033// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49034// to check whether the returned error was because
49035// http.StatusNotModified was returned.
49036func (c *InstancesSetDiskAutoDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49037	gensupport.SetOptions(c.urlParams_, opts...)
49038	res, err := c.doRequest("json")
49039	if res != nil && res.StatusCode == http.StatusNotModified {
49040		if res.Body != nil {
49041			res.Body.Close()
49042		}
49043		return nil, &googleapi.Error{
49044			Code:   res.StatusCode,
49045			Header: res.Header,
49046		}
49047	}
49048	if err != nil {
49049		return nil, err
49050	}
49051	defer googleapi.CloseBody(res)
49052	if err := googleapi.CheckResponse(res); err != nil {
49053		return nil, err
49054	}
49055	ret := &Operation{
49056		ServerResponse: googleapi.ServerResponse{
49057			Header:         res.Header,
49058			HTTPStatusCode: res.StatusCode,
49059		},
49060	}
49061	target := &ret
49062	if err := gensupport.DecodeResponse(target, res); err != nil {
49063		return nil, err
49064	}
49065	return ret, nil
49066	// {
49067	//   "description": "Sets the auto-delete flag for a disk attached to an instance.",
49068	//   "httpMethod": "POST",
49069	//   "id": "compute.instances.setDiskAutoDelete",
49070	//   "parameterOrder": [
49071	//     "project",
49072	//     "zone",
49073	//     "instance",
49074	//     "autoDelete",
49075	//     "deviceName"
49076	//   ],
49077	//   "parameters": {
49078	//     "autoDelete": {
49079	//       "description": "Whether to auto-delete the disk when the instance is deleted.",
49080	//       "location": "query",
49081	//       "required": true,
49082	//       "type": "boolean"
49083	//     },
49084	//     "deviceName": {
49085	//       "description": "The device name of the disk to modify.",
49086	//       "location": "query",
49087	//       "pattern": "\\w[\\w.-]{0,254}",
49088	//       "required": true,
49089	//       "type": "string"
49090	//     },
49091	//     "instance": {
49092	//       "description": "The instance name.",
49093	//       "location": "path",
49094	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49095	//       "required": true,
49096	//       "type": "string"
49097	//     },
49098	//     "project": {
49099	//       "description": "Project ID for this request.",
49100	//       "location": "path",
49101	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49102	//       "required": true,
49103	//       "type": "string"
49104	//     },
49105	//     "requestId": {
49106	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49107	//       "location": "query",
49108	//       "type": "string"
49109	//     },
49110	//     "zone": {
49111	//       "description": "The name of the zone for this request.",
49112	//       "location": "path",
49113	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49114	//       "required": true,
49115	//       "type": "string"
49116	//     }
49117	//   },
49118	//   "path": "{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete",
49119	//   "response": {
49120	//     "$ref": "Operation"
49121	//   },
49122	//   "scopes": [
49123	//     "https://www.googleapis.com/auth/cloud-platform",
49124	//     "https://www.googleapis.com/auth/compute"
49125	//   ]
49126	// }
49127
49128}
49129
49130// method id "compute.instances.setLabels":
49131
49132type InstancesSetLabelsCall struct {
49133	s                         *Service
49134	project                   string
49135	zone                      string
49136	instance                  string
49137	instancessetlabelsrequest *InstancesSetLabelsRequest
49138	urlParams_                gensupport.URLParams
49139	ctx_                      context.Context
49140	header_                   http.Header
49141}
49142
49143// SetLabels: Sets labels on an instance. To learn more about labels,
49144// read the Labeling Resources documentation.
49145func (r *InstancesService) SetLabels(project string, zone string, instance string, instancessetlabelsrequest *InstancesSetLabelsRequest) *InstancesSetLabelsCall {
49146	c := &InstancesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49147	c.project = project
49148	c.zone = zone
49149	c.instance = instance
49150	c.instancessetlabelsrequest = instancessetlabelsrequest
49151	return c
49152}
49153
49154// RequestId sets the optional parameter "requestId": An optional
49155// request ID to identify requests. Specify a unique request ID so that
49156// if you must retry your request, the server will know to ignore the
49157// request if it has already been completed.
49158//
49159// For example, consider a situation where you make an initial request
49160// and the request times out. If you make the request again with the
49161// same request ID, the server can check if original operation with the
49162// same request ID was received, and if so, will ignore the second
49163// request. This prevents clients from accidentally creating duplicate
49164// commitments.
49165//
49166// The request ID must be a valid UUID with the exception that zero UUID
49167// is not supported (00000000-0000-0000-0000-000000000000).
49168func (c *InstancesSetLabelsCall) RequestId(requestId string) *InstancesSetLabelsCall {
49169	c.urlParams_.Set("requestId", requestId)
49170	return c
49171}
49172
49173// Fields allows partial responses to be retrieved. See
49174// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49175// for more information.
49176func (c *InstancesSetLabelsCall) Fields(s ...googleapi.Field) *InstancesSetLabelsCall {
49177	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49178	return c
49179}
49180
49181// Context sets the context to be used in this call's Do method. Any
49182// pending HTTP request will be aborted if the provided context is
49183// canceled.
49184func (c *InstancesSetLabelsCall) Context(ctx context.Context) *InstancesSetLabelsCall {
49185	c.ctx_ = ctx
49186	return c
49187}
49188
49189// Header returns an http.Header that can be modified by the caller to
49190// add HTTP headers to the request.
49191func (c *InstancesSetLabelsCall) Header() http.Header {
49192	if c.header_ == nil {
49193		c.header_ = make(http.Header)
49194	}
49195	return c.header_
49196}
49197
49198func (c *InstancesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
49199	reqHeaders := make(http.Header)
49200	for k, v := range c.header_ {
49201		reqHeaders[k] = v
49202	}
49203	reqHeaders.Set("User-Agent", c.s.userAgent())
49204	var body io.Reader = nil
49205	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetlabelsrequest)
49206	if err != nil {
49207		return nil, err
49208	}
49209	reqHeaders.Set("Content-Type", "application/json")
49210	c.urlParams_.Set("alt", alt)
49211	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setLabels")
49212	urls += "?" + c.urlParams_.Encode()
49213	req, _ := http.NewRequest("POST", urls, body)
49214	req.Header = reqHeaders
49215	googleapi.Expand(req.URL, map[string]string{
49216		"project":  c.project,
49217		"zone":     c.zone,
49218		"instance": c.instance,
49219	})
49220	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49221}
49222
49223// Do executes the "compute.instances.setLabels" call.
49224// Exactly one of *Operation or error will be non-nil. Any non-2xx
49225// status code is an error. Response headers are in either
49226// *Operation.ServerResponse.Header or (if a response was returned at
49227// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49228// to check whether the returned error was because
49229// http.StatusNotModified was returned.
49230func (c *InstancesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49231	gensupport.SetOptions(c.urlParams_, opts...)
49232	res, err := c.doRequest("json")
49233	if res != nil && res.StatusCode == http.StatusNotModified {
49234		if res.Body != nil {
49235			res.Body.Close()
49236		}
49237		return nil, &googleapi.Error{
49238			Code:   res.StatusCode,
49239			Header: res.Header,
49240		}
49241	}
49242	if err != nil {
49243		return nil, err
49244	}
49245	defer googleapi.CloseBody(res)
49246	if err := googleapi.CheckResponse(res); err != nil {
49247		return nil, err
49248	}
49249	ret := &Operation{
49250		ServerResponse: googleapi.ServerResponse{
49251			Header:         res.Header,
49252			HTTPStatusCode: res.StatusCode,
49253		},
49254	}
49255	target := &ret
49256	if err := gensupport.DecodeResponse(target, res); err != nil {
49257		return nil, err
49258	}
49259	return ret, nil
49260	// {
49261	//   "description": "Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation.",
49262	//   "httpMethod": "POST",
49263	//   "id": "compute.instances.setLabels",
49264	//   "parameterOrder": [
49265	//     "project",
49266	//     "zone",
49267	//     "instance"
49268	//   ],
49269	//   "parameters": {
49270	//     "instance": {
49271	//       "description": "Name of the instance scoping this request.",
49272	//       "location": "path",
49273	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49274	//       "required": true,
49275	//       "type": "string"
49276	//     },
49277	//     "project": {
49278	//       "description": "Project ID for this request.",
49279	//       "location": "path",
49280	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49281	//       "required": true,
49282	//       "type": "string"
49283	//     },
49284	//     "requestId": {
49285	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49286	//       "location": "query",
49287	//       "type": "string"
49288	//     },
49289	//     "zone": {
49290	//       "description": "The name of the zone for this request.",
49291	//       "location": "path",
49292	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49293	//       "required": true,
49294	//       "type": "string"
49295	//     }
49296	//   },
49297	//   "path": "{project}/zones/{zone}/instances/{instance}/setLabels",
49298	//   "request": {
49299	//     "$ref": "InstancesSetLabelsRequest"
49300	//   },
49301	//   "response": {
49302	//     "$ref": "Operation"
49303	//   },
49304	//   "scopes": [
49305	//     "https://www.googleapis.com/auth/cloud-platform",
49306	//     "https://www.googleapis.com/auth/compute"
49307	//   ]
49308	// }
49309
49310}
49311
49312// method id "compute.instances.setMachineResources":
49313
49314type InstancesSetMachineResourcesCall struct {
49315	s                                   *Service
49316	project                             string
49317	zone                                string
49318	instance                            string
49319	instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest
49320	urlParams_                          gensupport.URLParams
49321	ctx_                                context.Context
49322	header_                             http.Header
49323}
49324
49325// SetMachineResources: Changes the number and/or type of accelerator
49326// for a stopped instance to the values specified in the request.
49327func (r *InstancesService) SetMachineResources(project string, zone string, instance string, instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest) *InstancesSetMachineResourcesCall {
49328	c := &InstancesSetMachineResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49329	c.project = project
49330	c.zone = zone
49331	c.instance = instance
49332	c.instancessetmachineresourcesrequest = instancessetmachineresourcesrequest
49333	return c
49334}
49335
49336// RequestId sets the optional parameter "requestId": An optional
49337// request ID to identify requests. Specify a unique request ID so that
49338// if you must retry your request, the server will know to ignore the
49339// request if it has already been completed.
49340//
49341// For example, consider a situation where you make an initial request
49342// and the request times out. If you make the request again with the
49343// same request ID, the server can check if original operation with the
49344// same request ID was received, and if so, will ignore the second
49345// request. This prevents clients from accidentally creating duplicate
49346// commitments.
49347//
49348// The request ID must be a valid UUID with the exception that zero UUID
49349// is not supported (00000000-0000-0000-0000-000000000000).
49350func (c *InstancesSetMachineResourcesCall) RequestId(requestId string) *InstancesSetMachineResourcesCall {
49351	c.urlParams_.Set("requestId", requestId)
49352	return c
49353}
49354
49355// Fields allows partial responses to be retrieved. See
49356// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49357// for more information.
49358func (c *InstancesSetMachineResourcesCall) Fields(s ...googleapi.Field) *InstancesSetMachineResourcesCall {
49359	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49360	return c
49361}
49362
49363// Context sets the context to be used in this call's Do method. Any
49364// pending HTTP request will be aborted if the provided context is
49365// canceled.
49366func (c *InstancesSetMachineResourcesCall) Context(ctx context.Context) *InstancesSetMachineResourcesCall {
49367	c.ctx_ = ctx
49368	return c
49369}
49370
49371// Header returns an http.Header that can be modified by the caller to
49372// add HTTP headers to the request.
49373func (c *InstancesSetMachineResourcesCall) Header() http.Header {
49374	if c.header_ == nil {
49375		c.header_ = make(http.Header)
49376	}
49377	return c.header_
49378}
49379
49380func (c *InstancesSetMachineResourcesCall) doRequest(alt string) (*http.Response, error) {
49381	reqHeaders := make(http.Header)
49382	for k, v := range c.header_ {
49383		reqHeaders[k] = v
49384	}
49385	reqHeaders.Set("User-Agent", c.s.userAgent())
49386	var body io.Reader = nil
49387	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachineresourcesrequest)
49388	if err != nil {
49389		return nil, err
49390	}
49391	reqHeaders.Set("Content-Type", "application/json")
49392	c.urlParams_.Set("alt", alt)
49393	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMachineResources")
49394	urls += "?" + c.urlParams_.Encode()
49395	req, _ := http.NewRequest("POST", urls, body)
49396	req.Header = reqHeaders
49397	googleapi.Expand(req.URL, map[string]string{
49398		"project":  c.project,
49399		"zone":     c.zone,
49400		"instance": c.instance,
49401	})
49402	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49403}
49404
49405// Do executes the "compute.instances.setMachineResources" call.
49406// Exactly one of *Operation or error will be non-nil. Any non-2xx
49407// status code is an error. Response headers are in either
49408// *Operation.ServerResponse.Header or (if a response was returned at
49409// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49410// to check whether the returned error was because
49411// http.StatusNotModified was returned.
49412func (c *InstancesSetMachineResourcesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49413	gensupport.SetOptions(c.urlParams_, opts...)
49414	res, err := c.doRequest("json")
49415	if res != nil && res.StatusCode == http.StatusNotModified {
49416		if res.Body != nil {
49417			res.Body.Close()
49418		}
49419		return nil, &googleapi.Error{
49420			Code:   res.StatusCode,
49421			Header: res.Header,
49422		}
49423	}
49424	if err != nil {
49425		return nil, err
49426	}
49427	defer googleapi.CloseBody(res)
49428	if err := googleapi.CheckResponse(res); err != nil {
49429		return nil, err
49430	}
49431	ret := &Operation{
49432		ServerResponse: googleapi.ServerResponse{
49433			Header:         res.Header,
49434			HTTPStatusCode: res.StatusCode,
49435		},
49436	}
49437	target := &ret
49438	if err := gensupport.DecodeResponse(target, res); err != nil {
49439		return nil, err
49440	}
49441	return ret, nil
49442	// {
49443	//   "description": "Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.",
49444	//   "httpMethod": "POST",
49445	//   "id": "compute.instances.setMachineResources",
49446	//   "parameterOrder": [
49447	//     "project",
49448	//     "zone",
49449	//     "instance"
49450	//   ],
49451	//   "parameters": {
49452	//     "instance": {
49453	//       "description": "Name of the instance scoping this request.",
49454	//       "location": "path",
49455	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49456	//       "required": true,
49457	//       "type": "string"
49458	//     },
49459	//     "project": {
49460	//       "description": "Project ID for this request.",
49461	//       "location": "path",
49462	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49463	//       "required": true,
49464	//       "type": "string"
49465	//     },
49466	//     "requestId": {
49467	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49468	//       "location": "query",
49469	//       "type": "string"
49470	//     },
49471	//     "zone": {
49472	//       "description": "The name of the zone for this request.",
49473	//       "location": "path",
49474	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49475	//       "required": true,
49476	//       "type": "string"
49477	//     }
49478	//   },
49479	//   "path": "{project}/zones/{zone}/instances/{instance}/setMachineResources",
49480	//   "request": {
49481	//     "$ref": "InstancesSetMachineResourcesRequest"
49482	//   },
49483	//   "response": {
49484	//     "$ref": "Operation"
49485	//   },
49486	//   "scopes": [
49487	//     "https://www.googleapis.com/auth/cloud-platform",
49488	//     "https://www.googleapis.com/auth/compute"
49489	//   ]
49490	// }
49491
49492}
49493
49494// method id "compute.instances.setMachineType":
49495
49496type InstancesSetMachineTypeCall struct {
49497	s                              *Service
49498	project                        string
49499	zone                           string
49500	instance                       string
49501	instancessetmachinetyperequest *InstancesSetMachineTypeRequest
49502	urlParams_                     gensupport.URLParams
49503	ctx_                           context.Context
49504	header_                        http.Header
49505}
49506
49507// SetMachineType: Changes the machine type for a stopped instance to
49508// the machine type specified in the request.
49509func (r *InstancesService) SetMachineType(project string, zone string, instance string, instancessetmachinetyperequest *InstancesSetMachineTypeRequest) *InstancesSetMachineTypeCall {
49510	c := &InstancesSetMachineTypeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49511	c.project = project
49512	c.zone = zone
49513	c.instance = instance
49514	c.instancessetmachinetyperequest = instancessetmachinetyperequest
49515	return c
49516}
49517
49518// RequestId sets the optional parameter "requestId": An optional
49519// request ID to identify requests. Specify a unique request ID so that
49520// if you must retry your request, the server will know to ignore the
49521// request if it has already been completed.
49522//
49523// For example, consider a situation where you make an initial request
49524// and the request times out. If you make the request again with the
49525// same request ID, the server can check if original operation with the
49526// same request ID was received, and if so, will ignore the second
49527// request. This prevents clients from accidentally creating duplicate
49528// commitments.
49529//
49530// The request ID must be a valid UUID with the exception that zero UUID
49531// is not supported (00000000-0000-0000-0000-000000000000).
49532func (c *InstancesSetMachineTypeCall) RequestId(requestId string) *InstancesSetMachineTypeCall {
49533	c.urlParams_.Set("requestId", requestId)
49534	return c
49535}
49536
49537// Fields allows partial responses to be retrieved. See
49538// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49539// for more information.
49540func (c *InstancesSetMachineTypeCall) Fields(s ...googleapi.Field) *InstancesSetMachineTypeCall {
49541	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49542	return c
49543}
49544
49545// Context sets the context to be used in this call's Do method. Any
49546// pending HTTP request will be aborted if the provided context is
49547// canceled.
49548func (c *InstancesSetMachineTypeCall) Context(ctx context.Context) *InstancesSetMachineTypeCall {
49549	c.ctx_ = ctx
49550	return c
49551}
49552
49553// Header returns an http.Header that can be modified by the caller to
49554// add HTTP headers to the request.
49555func (c *InstancesSetMachineTypeCall) Header() http.Header {
49556	if c.header_ == nil {
49557		c.header_ = make(http.Header)
49558	}
49559	return c.header_
49560}
49561
49562func (c *InstancesSetMachineTypeCall) doRequest(alt string) (*http.Response, error) {
49563	reqHeaders := make(http.Header)
49564	for k, v := range c.header_ {
49565		reqHeaders[k] = v
49566	}
49567	reqHeaders.Set("User-Agent", c.s.userAgent())
49568	var body io.Reader = nil
49569	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachinetyperequest)
49570	if err != nil {
49571		return nil, err
49572	}
49573	reqHeaders.Set("Content-Type", "application/json")
49574	c.urlParams_.Set("alt", alt)
49575	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMachineType")
49576	urls += "?" + c.urlParams_.Encode()
49577	req, _ := http.NewRequest("POST", urls, body)
49578	req.Header = reqHeaders
49579	googleapi.Expand(req.URL, map[string]string{
49580		"project":  c.project,
49581		"zone":     c.zone,
49582		"instance": c.instance,
49583	})
49584	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49585}
49586
49587// Do executes the "compute.instances.setMachineType" call.
49588// Exactly one of *Operation or error will be non-nil. Any non-2xx
49589// status code is an error. Response headers are in either
49590// *Operation.ServerResponse.Header or (if a response was returned at
49591// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49592// to check whether the returned error was because
49593// http.StatusNotModified was returned.
49594func (c *InstancesSetMachineTypeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49595	gensupport.SetOptions(c.urlParams_, opts...)
49596	res, err := c.doRequest("json")
49597	if res != nil && res.StatusCode == http.StatusNotModified {
49598		if res.Body != nil {
49599			res.Body.Close()
49600		}
49601		return nil, &googleapi.Error{
49602			Code:   res.StatusCode,
49603			Header: res.Header,
49604		}
49605	}
49606	if err != nil {
49607		return nil, err
49608	}
49609	defer googleapi.CloseBody(res)
49610	if err := googleapi.CheckResponse(res); err != nil {
49611		return nil, err
49612	}
49613	ret := &Operation{
49614		ServerResponse: googleapi.ServerResponse{
49615			Header:         res.Header,
49616			HTTPStatusCode: res.StatusCode,
49617		},
49618	}
49619	target := &ret
49620	if err := gensupport.DecodeResponse(target, res); err != nil {
49621		return nil, err
49622	}
49623	return ret, nil
49624	// {
49625	//   "description": "Changes the machine type for a stopped instance to the machine type specified in the request.",
49626	//   "httpMethod": "POST",
49627	//   "id": "compute.instances.setMachineType",
49628	//   "parameterOrder": [
49629	//     "project",
49630	//     "zone",
49631	//     "instance"
49632	//   ],
49633	//   "parameters": {
49634	//     "instance": {
49635	//       "description": "Name of the instance scoping this request.",
49636	//       "location": "path",
49637	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49638	//       "required": true,
49639	//       "type": "string"
49640	//     },
49641	//     "project": {
49642	//       "description": "Project ID for this request.",
49643	//       "location": "path",
49644	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49645	//       "required": true,
49646	//       "type": "string"
49647	//     },
49648	//     "requestId": {
49649	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49650	//       "location": "query",
49651	//       "type": "string"
49652	//     },
49653	//     "zone": {
49654	//       "description": "The name of the zone for this request.",
49655	//       "location": "path",
49656	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49657	//       "required": true,
49658	//       "type": "string"
49659	//     }
49660	//   },
49661	//   "path": "{project}/zones/{zone}/instances/{instance}/setMachineType",
49662	//   "request": {
49663	//     "$ref": "InstancesSetMachineTypeRequest"
49664	//   },
49665	//   "response": {
49666	//     "$ref": "Operation"
49667	//   },
49668	//   "scopes": [
49669	//     "https://www.googleapis.com/auth/cloud-platform",
49670	//     "https://www.googleapis.com/auth/compute"
49671	//   ]
49672	// }
49673
49674}
49675
49676// method id "compute.instances.setMetadata":
49677
49678type InstancesSetMetadataCall struct {
49679	s          *Service
49680	project    string
49681	zone       string
49682	instance   string
49683	metadata   *Metadata
49684	urlParams_ gensupport.URLParams
49685	ctx_       context.Context
49686	header_    http.Header
49687}
49688
49689// SetMetadata: Sets metadata for the specified instance to the data
49690// included in the request.
49691// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setMetadata
49692func (r *InstancesService) SetMetadata(project string, zone string, instance string, metadata *Metadata) *InstancesSetMetadataCall {
49693	c := &InstancesSetMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49694	c.project = project
49695	c.zone = zone
49696	c.instance = instance
49697	c.metadata = metadata
49698	return c
49699}
49700
49701// RequestId sets the optional parameter "requestId": An optional
49702// request ID to identify requests. Specify a unique request ID so that
49703// if you must retry your request, the server will know to ignore the
49704// request if it has already been completed.
49705//
49706// For example, consider a situation where you make an initial request
49707// and the request times out. If you make the request again with the
49708// same request ID, the server can check if original operation with the
49709// same request ID was received, and if so, will ignore the second
49710// request. This prevents clients from accidentally creating duplicate
49711// commitments.
49712//
49713// The request ID must be a valid UUID with the exception that zero UUID
49714// is not supported (00000000-0000-0000-0000-000000000000).
49715func (c *InstancesSetMetadataCall) RequestId(requestId string) *InstancesSetMetadataCall {
49716	c.urlParams_.Set("requestId", requestId)
49717	return c
49718}
49719
49720// Fields allows partial responses to be retrieved. See
49721// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49722// for more information.
49723func (c *InstancesSetMetadataCall) Fields(s ...googleapi.Field) *InstancesSetMetadataCall {
49724	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49725	return c
49726}
49727
49728// Context sets the context to be used in this call's Do method. Any
49729// pending HTTP request will be aborted if the provided context is
49730// canceled.
49731func (c *InstancesSetMetadataCall) Context(ctx context.Context) *InstancesSetMetadataCall {
49732	c.ctx_ = ctx
49733	return c
49734}
49735
49736// Header returns an http.Header that can be modified by the caller to
49737// add HTTP headers to the request.
49738func (c *InstancesSetMetadataCall) Header() http.Header {
49739	if c.header_ == nil {
49740		c.header_ = make(http.Header)
49741	}
49742	return c.header_
49743}
49744
49745func (c *InstancesSetMetadataCall) doRequest(alt string) (*http.Response, error) {
49746	reqHeaders := make(http.Header)
49747	for k, v := range c.header_ {
49748		reqHeaders[k] = v
49749	}
49750	reqHeaders.Set("User-Agent", c.s.userAgent())
49751	var body io.Reader = nil
49752	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
49753	if err != nil {
49754		return nil, err
49755	}
49756	reqHeaders.Set("Content-Type", "application/json")
49757	c.urlParams_.Set("alt", alt)
49758	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMetadata")
49759	urls += "?" + c.urlParams_.Encode()
49760	req, _ := http.NewRequest("POST", urls, body)
49761	req.Header = reqHeaders
49762	googleapi.Expand(req.URL, map[string]string{
49763		"project":  c.project,
49764		"zone":     c.zone,
49765		"instance": c.instance,
49766	})
49767	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49768}
49769
49770// Do executes the "compute.instances.setMetadata" call.
49771// Exactly one of *Operation or error will be non-nil. Any non-2xx
49772// status code is an error. Response headers are in either
49773// *Operation.ServerResponse.Header or (if a response was returned at
49774// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49775// to check whether the returned error was because
49776// http.StatusNotModified was returned.
49777func (c *InstancesSetMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49778	gensupport.SetOptions(c.urlParams_, opts...)
49779	res, err := c.doRequest("json")
49780	if res != nil && res.StatusCode == http.StatusNotModified {
49781		if res.Body != nil {
49782			res.Body.Close()
49783		}
49784		return nil, &googleapi.Error{
49785			Code:   res.StatusCode,
49786			Header: res.Header,
49787		}
49788	}
49789	if err != nil {
49790		return nil, err
49791	}
49792	defer googleapi.CloseBody(res)
49793	if err := googleapi.CheckResponse(res); err != nil {
49794		return nil, err
49795	}
49796	ret := &Operation{
49797		ServerResponse: googleapi.ServerResponse{
49798			Header:         res.Header,
49799			HTTPStatusCode: res.StatusCode,
49800		},
49801	}
49802	target := &ret
49803	if err := gensupport.DecodeResponse(target, res); err != nil {
49804		return nil, err
49805	}
49806	return ret, nil
49807	// {
49808	//   "description": "Sets metadata for the specified instance to the data included in the request.",
49809	//   "httpMethod": "POST",
49810	//   "id": "compute.instances.setMetadata",
49811	//   "parameterOrder": [
49812	//     "project",
49813	//     "zone",
49814	//     "instance"
49815	//   ],
49816	//   "parameters": {
49817	//     "instance": {
49818	//       "description": "Name of the instance scoping this request.",
49819	//       "location": "path",
49820	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49821	//       "required": true,
49822	//       "type": "string"
49823	//     },
49824	//     "project": {
49825	//       "description": "Project ID for this request.",
49826	//       "location": "path",
49827	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49828	//       "required": true,
49829	//       "type": "string"
49830	//     },
49831	//     "requestId": {
49832	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49833	//       "location": "query",
49834	//       "type": "string"
49835	//     },
49836	//     "zone": {
49837	//       "description": "The name of the zone for this request.",
49838	//       "location": "path",
49839	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49840	//       "required": true,
49841	//       "type": "string"
49842	//     }
49843	//   },
49844	//   "path": "{project}/zones/{zone}/instances/{instance}/setMetadata",
49845	//   "request": {
49846	//     "$ref": "Metadata"
49847	//   },
49848	//   "response": {
49849	//     "$ref": "Operation"
49850	//   },
49851	//   "scopes": [
49852	//     "https://www.googleapis.com/auth/cloud-platform",
49853	//     "https://www.googleapis.com/auth/compute"
49854	//   ]
49855	// }
49856
49857}
49858
49859// method id "compute.instances.setMinCpuPlatform":
49860
49861type InstancesSetMinCpuPlatformCall struct {
49862	s                                 *Service
49863	project                           string
49864	zone                              string
49865	instance                          string
49866	instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest
49867	urlParams_                        gensupport.URLParams
49868	ctx_                              context.Context
49869	header_                           http.Header
49870}
49871
49872// SetMinCpuPlatform: Changes the minimum CPU platform that this
49873// instance should use. This method can only be called on a stopped
49874// instance. For more information, read Specifying a Minimum CPU
49875// Platform.
49876func (r *InstancesService) SetMinCpuPlatform(project string, zone string, instance string, instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest) *InstancesSetMinCpuPlatformCall {
49877	c := &InstancesSetMinCpuPlatformCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49878	c.project = project
49879	c.zone = zone
49880	c.instance = instance
49881	c.instancessetmincpuplatformrequest = instancessetmincpuplatformrequest
49882	return c
49883}
49884
49885// RequestId sets the optional parameter "requestId": An optional
49886// request ID to identify requests. Specify a unique request ID so that
49887// if you must retry your request, the server will know to ignore the
49888// request if it has already been completed.
49889//
49890// For example, consider a situation where you make an initial request
49891// and the request times out. If you make the request again with the
49892// same request ID, the server can check if original operation with the
49893// same request ID was received, and if so, will ignore the second
49894// request. This prevents clients from accidentally creating duplicate
49895// commitments.
49896//
49897// The request ID must be a valid UUID with the exception that zero UUID
49898// is not supported (00000000-0000-0000-0000-000000000000).
49899func (c *InstancesSetMinCpuPlatformCall) RequestId(requestId string) *InstancesSetMinCpuPlatformCall {
49900	c.urlParams_.Set("requestId", requestId)
49901	return c
49902}
49903
49904// Fields allows partial responses to be retrieved. See
49905// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49906// for more information.
49907func (c *InstancesSetMinCpuPlatformCall) Fields(s ...googleapi.Field) *InstancesSetMinCpuPlatformCall {
49908	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49909	return c
49910}
49911
49912// Context sets the context to be used in this call's Do method. Any
49913// pending HTTP request will be aborted if the provided context is
49914// canceled.
49915func (c *InstancesSetMinCpuPlatformCall) Context(ctx context.Context) *InstancesSetMinCpuPlatformCall {
49916	c.ctx_ = ctx
49917	return c
49918}
49919
49920// Header returns an http.Header that can be modified by the caller to
49921// add HTTP headers to the request.
49922func (c *InstancesSetMinCpuPlatformCall) Header() http.Header {
49923	if c.header_ == nil {
49924		c.header_ = make(http.Header)
49925	}
49926	return c.header_
49927}
49928
49929func (c *InstancesSetMinCpuPlatformCall) doRequest(alt string) (*http.Response, error) {
49930	reqHeaders := make(http.Header)
49931	for k, v := range c.header_ {
49932		reqHeaders[k] = v
49933	}
49934	reqHeaders.Set("User-Agent", c.s.userAgent())
49935	var body io.Reader = nil
49936	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmincpuplatformrequest)
49937	if err != nil {
49938		return nil, err
49939	}
49940	reqHeaders.Set("Content-Type", "application/json")
49941	c.urlParams_.Set("alt", alt)
49942	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform")
49943	urls += "?" + c.urlParams_.Encode()
49944	req, _ := http.NewRequest("POST", urls, body)
49945	req.Header = reqHeaders
49946	googleapi.Expand(req.URL, map[string]string{
49947		"project":  c.project,
49948		"zone":     c.zone,
49949		"instance": c.instance,
49950	})
49951	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49952}
49953
49954// Do executes the "compute.instances.setMinCpuPlatform" call.
49955// Exactly one of *Operation or error will be non-nil. Any non-2xx
49956// status code is an error. Response headers are in either
49957// *Operation.ServerResponse.Header or (if a response was returned at
49958// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49959// to check whether the returned error was because
49960// http.StatusNotModified was returned.
49961func (c *InstancesSetMinCpuPlatformCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49962	gensupport.SetOptions(c.urlParams_, opts...)
49963	res, err := c.doRequest("json")
49964	if res != nil && res.StatusCode == http.StatusNotModified {
49965		if res.Body != nil {
49966			res.Body.Close()
49967		}
49968		return nil, &googleapi.Error{
49969			Code:   res.StatusCode,
49970			Header: res.Header,
49971		}
49972	}
49973	if err != nil {
49974		return nil, err
49975	}
49976	defer googleapi.CloseBody(res)
49977	if err := googleapi.CheckResponse(res); err != nil {
49978		return nil, err
49979	}
49980	ret := &Operation{
49981		ServerResponse: googleapi.ServerResponse{
49982			Header:         res.Header,
49983			HTTPStatusCode: res.StatusCode,
49984		},
49985	}
49986	target := &ret
49987	if err := gensupport.DecodeResponse(target, res); err != nil {
49988		return nil, err
49989	}
49990	return ret, nil
49991	// {
49992	//   "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.",
49993	//   "httpMethod": "POST",
49994	//   "id": "compute.instances.setMinCpuPlatform",
49995	//   "parameterOrder": [
49996	//     "project",
49997	//     "zone",
49998	//     "instance"
49999	//   ],
50000	//   "parameters": {
50001	//     "instance": {
50002	//       "description": "Name of the instance scoping this request.",
50003	//       "location": "path",
50004	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50005	//       "required": true,
50006	//       "type": "string"
50007	//     },
50008	//     "project": {
50009	//       "description": "Project ID for this request.",
50010	//       "location": "path",
50011	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50012	//       "required": true,
50013	//       "type": "string"
50014	//     },
50015	//     "requestId": {
50016	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50017	//       "location": "query",
50018	//       "type": "string"
50019	//     },
50020	//     "zone": {
50021	//       "description": "The name of the zone for this request.",
50022	//       "location": "path",
50023	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50024	//       "required": true,
50025	//       "type": "string"
50026	//     }
50027	//   },
50028	//   "path": "{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform",
50029	//   "request": {
50030	//     "$ref": "InstancesSetMinCpuPlatformRequest"
50031	//   },
50032	//   "response": {
50033	//     "$ref": "Operation"
50034	//   },
50035	//   "scopes": [
50036	//     "https://www.googleapis.com/auth/cloud-platform",
50037	//     "https://www.googleapis.com/auth/compute"
50038	//   ]
50039	// }
50040
50041}
50042
50043// method id "compute.instances.setScheduling":
50044
50045type InstancesSetSchedulingCall struct {
50046	s          *Service
50047	project    string
50048	zone       string
50049	instance   string
50050	scheduling *Scheduling
50051	urlParams_ gensupport.URLParams
50052	ctx_       context.Context
50053	header_    http.Header
50054}
50055
50056// SetScheduling: Sets an instance's scheduling options.
50057// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setScheduling
50058func (r *InstancesService) SetScheduling(project string, zone string, instance string, scheduling *Scheduling) *InstancesSetSchedulingCall {
50059	c := &InstancesSetSchedulingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50060	c.project = project
50061	c.zone = zone
50062	c.instance = instance
50063	c.scheduling = scheduling
50064	return c
50065}
50066
50067// RequestId sets the optional parameter "requestId": An optional
50068// request ID to identify requests. Specify a unique request ID so that
50069// if you must retry your request, the server will know to ignore the
50070// request if it has already been completed.
50071//
50072// For example, consider a situation where you make an initial request
50073// and the request times out. If you make the request again with the
50074// same request ID, the server can check if original operation with the
50075// same request ID was received, and if so, will ignore the second
50076// request. This prevents clients from accidentally creating duplicate
50077// commitments.
50078//
50079// The request ID must be a valid UUID with the exception that zero UUID
50080// is not supported (00000000-0000-0000-0000-000000000000).
50081func (c *InstancesSetSchedulingCall) RequestId(requestId string) *InstancesSetSchedulingCall {
50082	c.urlParams_.Set("requestId", requestId)
50083	return c
50084}
50085
50086// Fields allows partial responses to be retrieved. See
50087// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50088// for more information.
50089func (c *InstancesSetSchedulingCall) Fields(s ...googleapi.Field) *InstancesSetSchedulingCall {
50090	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50091	return c
50092}
50093
50094// Context sets the context to be used in this call's Do method. Any
50095// pending HTTP request will be aborted if the provided context is
50096// canceled.
50097func (c *InstancesSetSchedulingCall) Context(ctx context.Context) *InstancesSetSchedulingCall {
50098	c.ctx_ = ctx
50099	return c
50100}
50101
50102// Header returns an http.Header that can be modified by the caller to
50103// add HTTP headers to the request.
50104func (c *InstancesSetSchedulingCall) Header() http.Header {
50105	if c.header_ == nil {
50106		c.header_ = make(http.Header)
50107	}
50108	return c.header_
50109}
50110
50111func (c *InstancesSetSchedulingCall) doRequest(alt string) (*http.Response, error) {
50112	reqHeaders := make(http.Header)
50113	for k, v := range c.header_ {
50114		reqHeaders[k] = v
50115	}
50116	reqHeaders.Set("User-Agent", c.s.userAgent())
50117	var body io.Reader = nil
50118	body, err := googleapi.WithoutDataWrapper.JSONReader(c.scheduling)
50119	if err != nil {
50120		return nil, err
50121	}
50122	reqHeaders.Set("Content-Type", "application/json")
50123	c.urlParams_.Set("alt", alt)
50124	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setScheduling")
50125	urls += "?" + c.urlParams_.Encode()
50126	req, _ := http.NewRequest("POST", urls, body)
50127	req.Header = reqHeaders
50128	googleapi.Expand(req.URL, map[string]string{
50129		"project":  c.project,
50130		"zone":     c.zone,
50131		"instance": c.instance,
50132	})
50133	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50134}
50135
50136// Do executes the "compute.instances.setScheduling" call.
50137// Exactly one of *Operation or error will be non-nil. Any non-2xx
50138// status code is an error. Response headers are in either
50139// *Operation.ServerResponse.Header or (if a response was returned at
50140// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50141// to check whether the returned error was because
50142// http.StatusNotModified was returned.
50143func (c *InstancesSetSchedulingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50144	gensupport.SetOptions(c.urlParams_, opts...)
50145	res, err := c.doRequest("json")
50146	if res != nil && res.StatusCode == http.StatusNotModified {
50147		if res.Body != nil {
50148			res.Body.Close()
50149		}
50150		return nil, &googleapi.Error{
50151			Code:   res.StatusCode,
50152			Header: res.Header,
50153		}
50154	}
50155	if err != nil {
50156		return nil, err
50157	}
50158	defer googleapi.CloseBody(res)
50159	if err := googleapi.CheckResponse(res); err != nil {
50160		return nil, err
50161	}
50162	ret := &Operation{
50163		ServerResponse: googleapi.ServerResponse{
50164			Header:         res.Header,
50165			HTTPStatusCode: res.StatusCode,
50166		},
50167	}
50168	target := &ret
50169	if err := gensupport.DecodeResponse(target, res); err != nil {
50170		return nil, err
50171	}
50172	return ret, nil
50173	// {
50174	//   "description": "Sets an instance's scheduling options.",
50175	//   "httpMethod": "POST",
50176	//   "id": "compute.instances.setScheduling",
50177	//   "parameterOrder": [
50178	//     "project",
50179	//     "zone",
50180	//     "instance"
50181	//   ],
50182	//   "parameters": {
50183	//     "instance": {
50184	//       "description": "Instance name.",
50185	//       "location": "path",
50186	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50187	//       "required": true,
50188	//       "type": "string"
50189	//     },
50190	//     "project": {
50191	//       "description": "Project ID for this request.",
50192	//       "location": "path",
50193	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50194	//       "required": true,
50195	//       "type": "string"
50196	//     },
50197	//     "requestId": {
50198	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50199	//       "location": "query",
50200	//       "type": "string"
50201	//     },
50202	//     "zone": {
50203	//       "description": "The name of the zone for this request.",
50204	//       "location": "path",
50205	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50206	//       "required": true,
50207	//       "type": "string"
50208	//     }
50209	//   },
50210	//   "path": "{project}/zones/{zone}/instances/{instance}/setScheduling",
50211	//   "request": {
50212	//     "$ref": "Scheduling"
50213	//   },
50214	//   "response": {
50215	//     "$ref": "Operation"
50216	//   },
50217	//   "scopes": [
50218	//     "https://www.googleapis.com/auth/cloud-platform",
50219	//     "https://www.googleapis.com/auth/compute"
50220	//   ]
50221	// }
50222
50223}
50224
50225// method id "compute.instances.setServiceAccount":
50226
50227type InstancesSetServiceAccountCall struct {
50228	s                                 *Service
50229	project                           string
50230	zone                              string
50231	instance                          string
50232	instancessetserviceaccountrequest *InstancesSetServiceAccountRequest
50233	urlParams_                        gensupport.URLParams
50234	ctx_                              context.Context
50235	header_                           http.Header
50236}
50237
50238// SetServiceAccount: Sets the service account on the instance. For more
50239// information, read Changing the service account and access scopes for
50240// an instance.
50241func (r *InstancesService) SetServiceAccount(project string, zone string, instance string, instancessetserviceaccountrequest *InstancesSetServiceAccountRequest) *InstancesSetServiceAccountCall {
50242	c := &InstancesSetServiceAccountCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50243	c.project = project
50244	c.zone = zone
50245	c.instance = instance
50246	c.instancessetserviceaccountrequest = instancessetserviceaccountrequest
50247	return c
50248}
50249
50250// RequestId sets the optional parameter "requestId": An optional
50251// request ID to identify requests. Specify a unique request ID so that
50252// if you must retry your request, the server will know to ignore the
50253// request if it has already been completed.
50254//
50255// For example, consider a situation where you make an initial request
50256// and the request times out. If you make the request again with the
50257// same request ID, the server can check if original operation with the
50258// same request ID was received, and if so, will ignore the second
50259// request. This prevents clients from accidentally creating duplicate
50260// commitments.
50261//
50262// The request ID must be a valid UUID with the exception that zero UUID
50263// is not supported (00000000-0000-0000-0000-000000000000).
50264func (c *InstancesSetServiceAccountCall) RequestId(requestId string) *InstancesSetServiceAccountCall {
50265	c.urlParams_.Set("requestId", requestId)
50266	return c
50267}
50268
50269// Fields allows partial responses to be retrieved. See
50270// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50271// for more information.
50272func (c *InstancesSetServiceAccountCall) Fields(s ...googleapi.Field) *InstancesSetServiceAccountCall {
50273	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50274	return c
50275}
50276
50277// Context sets the context to be used in this call's Do method. Any
50278// pending HTTP request will be aborted if the provided context is
50279// canceled.
50280func (c *InstancesSetServiceAccountCall) Context(ctx context.Context) *InstancesSetServiceAccountCall {
50281	c.ctx_ = ctx
50282	return c
50283}
50284
50285// Header returns an http.Header that can be modified by the caller to
50286// add HTTP headers to the request.
50287func (c *InstancesSetServiceAccountCall) Header() http.Header {
50288	if c.header_ == nil {
50289		c.header_ = make(http.Header)
50290	}
50291	return c.header_
50292}
50293
50294func (c *InstancesSetServiceAccountCall) doRequest(alt string) (*http.Response, error) {
50295	reqHeaders := make(http.Header)
50296	for k, v := range c.header_ {
50297		reqHeaders[k] = v
50298	}
50299	reqHeaders.Set("User-Agent", c.s.userAgent())
50300	var body io.Reader = nil
50301	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetserviceaccountrequest)
50302	if err != nil {
50303		return nil, err
50304	}
50305	reqHeaders.Set("Content-Type", "application/json")
50306	c.urlParams_.Set("alt", alt)
50307	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setServiceAccount")
50308	urls += "?" + c.urlParams_.Encode()
50309	req, _ := http.NewRequest("POST", urls, body)
50310	req.Header = reqHeaders
50311	googleapi.Expand(req.URL, map[string]string{
50312		"project":  c.project,
50313		"zone":     c.zone,
50314		"instance": c.instance,
50315	})
50316	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50317}
50318
50319// Do executes the "compute.instances.setServiceAccount" call.
50320// Exactly one of *Operation or error will be non-nil. Any non-2xx
50321// status code is an error. Response headers are in either
50322// *Operation.ServerResponse.Header or (if a response was returned at
50323// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50324// to check whether the returned error was because
50325// http.StatusNotModified was returned.
50326func (c *InstancesSetServiceAccountCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50327	gensupport.SetOptions(c.urlParams_, opts...)
50328	res, err := c.doRequest("json")
50329	if res != nil && res.StatusCode == http.StatusNotModified {
50330		if res.Body != nil {
50331			res.Body.Close()
50332		}
50333		return nil, &googleapi.Error{
50334			Code:   res.StatusCode,
50335			Header: res.Header,
50336		}
50337	}
50338	if err != nil {
50339		return nil, err
50340	}
50341	defer googleapi.CloseBody(res)
50342	if err := googleapi.CheckResponse(res); err != nil {
50343		return nil, err
50344	}
50345	ret := &Operation{
50346		ServerResponse: googleapi.ServerResponse{
50347			Header:         res.Header,
50348			HTTPStatusCode: res.StatusCode,
50349		},
50350	}
50351	target := &ret
50352	if err := gensupport.DecodeResponse(target, res); err != nil {
50353		return nil, err
50354	}
50355	return ret, nil
50356	// {
50357	//   "description": "Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.",
50358	//   "httpMethod": "POST",
50359	//   "id": "compute.instances.setServiceAccount",
50360	//   "parameterOrder": [
50361	//     "project",
50362	//     "zone",
50363	//     "instance"
50364	//   ],
50365	//   "parameters": {
50366	//     "instance": {
50367	//       "description": "Name of the instance resource to start.",
50368	//       "location": "path",
50369	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50370	//       "required": true,
50371	//       "type": "string"
50372	//     },
50373	//     "project": {
50374	//       "description": "Project ID for this request.",
50375	//       "location": "path",
50376	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50377	//       "required": true,
50378	//       "type": "string"
50379	//     },
50380	//     "requestId": {
50381	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50382	//       "location": "query",
50383	//       "type": "string"
50384	//     },
50385	//     "zone": {
50386	//       "description": "The name of the zone for this request.",
50387	//       "location": "path",
50388	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50389	//       "required": true,
50390	//       "type": "string"
50391	//     }
50392	//   },
50393	//   "path": "{project}/zones/{zone}/instances/{instance}/setServiceAccount",
50394	//   "request": {
50395	//     "$ref": "InstancesSetServiceAccountRequest"
50396	//   },
50397	//   "response": {
50398	//     "$ref": "Operation"
50399	//   },
50400	//   "scopes": [
50401	//     "https://www.googleapis.com/auth/cloud-platform",
50402	//     "https://www.googleapis.com/auth/compute"
50403	//   ]
50404	// }
50405
50406}
50407
50408// method id "compute.instances.setTags":
50409
50410type InstancesSetTagsCall struct {
50411	s          *Service
50412	project    string
50413	zone       string
50414	instance   string
50415	tags       *Tags
50416	urlParams_ gensupport.URLParams
50417	ctx_       context.Context
50418	header_    http.Header
50419}
50420
50421// SetTags: Sets tags for the specified instance to the data included in
50422// the request.
50423// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setTags
50424func (r *InstancesService) SetTags(project string, zone string, instance string, tags *Tags) *InstancesSetTagsCall {
50425	c := &InstancesSetTagsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50426	c.project = project
50427	c.zone = zone
50428	c.instance = instance
50429	c.tags = tags
50430	return c
50431}
50432
50433// RequestId sets the optional parameter "requestId": An optional
50434// request ID to identify requests. Specify a unique request ID so that
50435// if you must retry your request, the server will know to ignore the
50436// request if it has already been completed.
50437//
50438// For example, consider a situation where you make an initial request
50439// and the request times out. If you make the request again with the
50440// same request ID, the server can check if original operation with the
50441// same request ID was received, and if so, will ignore the second
50442// request. This prevents clients from accidentally creating duplicate
50443// commitments.
50444//
50445// The request ID must be a valid UUID with the exception that zero UUID
50446// is not supported (00000000-0000-0000-0000-000000000000).
50447func (c *InstancesSetTagsCall) RequestId(requestId string) *InstancesSetTagsCall {
50448	c.urlParams_.Set("requestId", requestId)
50449	return c
50450}
50451
50452// Fields allows partial responses to be retrieved. See
50453// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50454// for more information.
50455func (c *InstancesSetTagsCall) Fields(s ...googleapi.Field) *InstancesSetTagsCall {
50456	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50457	return c
50458}
50459
50460// Context sets the context to be used in this call's Do method. Any
50461// pending HTTP request will be aborted if the provided context is
50462// canceled.
50463func (c *InstancesSetTagsCall) Context(ctx context.Context) *InstancesSetTagsCall {
50464	c.ctx_ = ctx
50465	return c
50466}
50467
50468// Header returns an http.Header that can be modified by the caller to
50469// add HTTP headers to the request.
50470func (c *InstancesSetTagsCall) Header() http.Header {
50471	if c.header_ == nil {
50472		c.header_ = make(http.Header)
50473	}
50474	return c.header_
50475}
50476
50477func (c *InstancesSetTagsCall) doRequest(alt string) (*http.Response, error) {
50478	reqHeaders := make(http.Header)
50479	for k, v := range c.header_ {
50480		reqHeaders[k] = v
50481	}
50482	reqHeaders.Set("User-Agent", c.s.userAgent())
50483	var body io.Reader = nil
50484	body, err := googleapi.WithoutDataWrapper.JSONReader(c.tags)
50485	if err != nil {
50486		return nil, err
50487	}
50488	reqHeaders.Set("Content-Type", "application/json")
50489	c.urlParams_.Set("alt", alt)
50490	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setTags")
50491	urls += "?" + c.urlParams_.Encode()
50492	req, _ := http.NewRequest("POST", urls, body)
50493	req.Header = reqHeaders
50494	googleapi.Expand(req.URL, map[string]string{
50495		"project":  c.project,
50496		"zone":     c.zone,
50497		"instance": c.instance,
50498	})
50499	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50500}
50501
50502// Do executes the "compute.instances.setTags" call.
50503// Exactly one of *Operation or error will be non-nil. Any non-2xx
50504// status code is an error. Response headers are in either
50505// *Operation.ServerResponse.Header or (if a response was returned at
50506// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50507// to check whether the returned error was because
50508// http.StatusNotModified was returned.
50509func (c *InstancesSetTagsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50510	gensupport.SetOptions(c.urlParams_, opts...)
50511	res, err := c.doRequest("json")
50512	if res != nil && res.StatusCode == http.StatusNotModified {
50513		if res.Body != nil {
50514			res.Body.Close()
50515		}
50516		return nil, &googleapi.Error{
50517			Code:   res.StatusCode,
50518			Header: res.Header,
50519		}
50520	}
50521	if err != nil {
50522		return nil, err
50523	}
50524	defer googleapi.CloseBody(res)
50525	if err := googleapi.CheckResponse(res); err != nil {
50526		return nil, err
50527	}
50528	ret := &Operation{
50529		ServerResponse: googleapi.ServerResponse{
50530			Header:         res.Header,
50531			HTTPStatusCode: res.StatusCode,
50532		},
50533	}
50534	target := &ret
50535	if err := gensupport.DecodeResponse(target, res); err != nil {
50536		return nil, err
50537	}
50538	return ret, nil
50539	// {
50540	//   "description": "Sets tags for the specified instance to the data included in the request.",
50541	//   "httpMethod": "POST",
50542	//   "id": "compute.instances.setTags",
50543	//   "parameterOrder": [
50544	//     "project",
50545	//     "zone",
50546	//     "instance"
50547	//   ],
50548	//   "parameters": {
50549	//     "instance": {
50550	//       "description": "Name of the instance scoping this request.",
50551	//       "location": "path",
50552	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50553	//       "required": true,
50554	//       "type": "string"
50555	//     },
50556	//     "project": {
50557	//       "description": "Project ID for this request.",
50558	//       "location": "path",
50559	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50560	//       "required": true,
50561	//       "type": "string"
50562	//     },
50563	//     "requestId": {
50564	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50565	//       "location": "query",
50566	//       "type": "string"
50567	//     },
50568	//     "zone": {
50569	//       "description": "The name of the zone for this request.",
50570	//       "location": "path",
50571	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50572	//       "required": true,
50573	//       "type": "string"
50574	//     }
50575	//   },
50576	//   "path": "{project}/zones/{zone}/instances/{instance}/setTags",
50577	//   "request": {
50578	//     "$ref": "Tags"
50579	//   },
50580	//   "response": {
50581	//     "$ref": "Operation"
50582	//   },
50583	//   "scopes": [
50584	//     "https://www.googleapis.com/auth/cloud-platform",
50585	//     "https://www.googleapis.com/auth/compute"
50586	//   ]
50587	// }
50588
50589}
50590
50591// method id "compute.instances.start":
50592
50593type InstancesStartCall struct {
50594	s          *Service
50595	project    string
50596	zone       string
50597	instance   string
50598	urlParams_ gensupport.URLParams
50599	ctx_       context.Context
50600	header_    http.Header
50601}
50602
50603// Start: Starts an instance that was stopped using the instances().stop
50604// method. For more information, see Restart an instance.
50605// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/start
50606func (r *InstancesService) Start(project string, zone string, instance string) *InstancesStartCall {
50607	c := &InstancesStartCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50608	c.project = project
50609	c.zone = zone
50610	c.instance = instance
50611	return c
50612}
50613
50614// RequestId sets the optional parameter "requestId": An optional
50615// request ID to identify requests. Specify a unique request ID so that
50616// if you must retry your request, the server will know to ignore the
50617// request if it has already been completed.
50618//
50619// For example, consider a situation where you make an initial request
50620// and the request times out. If you make the request again with the
50621// same request ID, the server can check if original operation with the
50622// same request ID was received, and if so, will ignore the second
50623// request. This prevents clients from accidentally creating duplicate
50624// commitments.
50625//
50626// The request ID must be a valid UUID with the exception that zero UUID
50627// is not supported (00000000-0000-0000-0000-000000000000).
50628func (c *InstancesStartCall) RequestId(requestId string) *InstancesStartCall {
50629	c.urlParams_.Set("requestId", requestId)
50630	return c
50631}
50632
50633// Fields allows partial responses to be retrieved. See
50634// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50635// for more information.
50636func (c *InstancesStartCall) Fields(s ...googleapi.Field) *InstancesStartCall {
50637	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50638	return c
50639}
50640
50641// Context sets the context to be used in this call's Do method. Any
50642// pending HTTP request will be aborted if the provided context is
50643// canceled.
50644func (c *InstancesStartCall) Context(ctx context.Context) *InstancesStartCall {
50645	c.ctx_ = ctx
50646	return c
50647}
50648
50649// Header returns an http.Header that can be modified by the caller to
50650// add HTTP headers to the request.
50651func (c *InstancesStartCall) Header() http.Header {
50652	if c.header_ == nil {
50653		c.header_ = make(http.Header)
50654	}
50655	return c.header_
50656}
50657
50658func (c *InstancesStartCall) doRequest(alt string) (*http.Response, error) {
50659	reqHeaders := make(http.Header)
50660	for k, v := range c.header_ {
50661		reqHeaders[k] = v
50662	}
50663	reqHeaders.Set("User-Agent", c.s.userAgent())
50664	var body io.Reader = nil
50665	c.urlParams_.Set("alt", alt)
50666	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/start")
50667	urls += "?" + c.urlParams_.Encode()
50668	req, _ := http.NewRequest("POST", urls, body)
50669	req.Header = reqHeaders
50670	googleapi.Expand(req.URL, map[string]string{
50671		"project":  c.project,
50672		"zone":     c.zone,
50673		"instance": c.instance,
50674	})
50675	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50676}
50677
50678// Do executes the "compute.instances.start" call.
50679// Exactly one of *Operation or error will be non-nil. Any non-2xx
50680// status code is an error. Response headers are in either
50681// *Operation.ServerResponse.Header or (if a response was returned at
50682// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50683// to check whether the returned error was because
50684// http.StatusNotModified was returned.
50685func (c *InstancesStartCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50686	gensupport.SetOptions(c.urlParams_, opts...)
50687	res, err := c.doRequest("json")
50688	if res != nil && res.StatusCode == http.StatusNotModified {
50689		if res.Body != nil {
50690			res.Body.Close()
50691		}
50692		return nil, &googleapi.Error{
50693			Code:   res.StatusCode,
50694			Header: res.Header,
50695		}
50696	}
50697	if err != nil {
50698		return nil, err
50699	}
50700	defer googleapi.CloseBody(res)
50701	if err := googleapi.CheckResponse(res); err != nil {
50702		return nil, err
50703	}
50704	ret := &Operation{
50705		ServerResponse: googleapi.ServerResponse{
50706			Header:         res.Header,
50707			HTTPStatusCode: res.StatusCode,
50708		},
50709	}
50710	target := &ret
50711	if err := gensupport.DecodeResponse(target, res); err != nil {
50712		return nil, err
50713	}
50714	return ret, nil
50715	// {
50716	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
50717	//   "httpMethod": "POST",
50718	//   "id": "compute.instances.start",
50719	//   "parameterOrder": [
50720	//     "project",
50721	//     "zone",
50722	//     "instance"
50723	//   ],
50724	//   "parameters": {
50725	//     "instance": {
50726	//       "description": "Name of the instance resource to start.",
50727	//       "location": "path",
50728	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50729	//       "required": true,
50730	//       "type": "string"
50731	//     },
50732	//     "project": {
50733	//       "description": "Project ID for this request.",
50734	//       "location": "path",
50735	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50736	//       "required": true,
50737	//       "type": "string"
50738	//     },
50739	//     "requestId": {
50740	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50741	//       "location": "query",
50742	//       "type": "string"
50743	//     },
50744	//     "zone": {
50745	//       "description": "The name of the zone for this request.",
50746	//       "location": "path",
50747	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50748	//       "required": true,
50749	//       "type": "string"
50750	//     }
50751	//   },
50752	//   "path": "{project}/zones/{zone}/instances/{instance}/start",
50753	//   "response": {
50754	//     "$ref": "Operation"
50755	//   },
50756	//   "scopes": [
50757	//     "https://www.googleapis.com/auth/cloud-platform",
50758	//     "https://www.googleapis.com/auth/compute"
50759	//   ]
50760	// }
50761
50762}
50763
50764// method id "compute.instances.startWithEncryptionKey":
50765
50766type InstancesStartWithEncryptionKeyCall struct {
50767	s                                      *Service
50768	project                                string
50769	zone                                   string
50770	instance                               string
50771	instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest
50772	urlParams_                             gensupport.URLParams
50773	ctx_                                   context.Context
50774	header_                                http.Header
50775}
50776
50777// StartWithEncryptionKey: Starts an instance that was stopped using the
50778// instances().stop method. For more information, see Restart an
50779// instance.
50780func (r *InstancesService) StartWithEncryptionKey(project string, zone string, instance string, instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest) *InstancesStartWithEncryptionKeyCall {
50781	c := &InstancesStartWithEncryptionKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50782	c.project = project
50783	c.zone = zone
50784	c.instance = instance
50785	c.instancesstartwithencryptionkeyrequest = instancesstartwithencryptionkeyrequest
50786	return c
50787}
50788
50789// RequestId sets the optional parameter "requestId": An optional
50790// request ID to identify requests. Specify a unique request ID so that
50791// if you must retry your request, the server will know to ignore the
50792// request if it has already been completed.
50793//
50794// For example, consider a situation where you make an initial request
50795// and the request times out. If you make the request again with the
50796// same request ID, the server can check if original operation with the
50797// same request ID was received, and if so, will ignore the second
50798// request. This prevents clients from accidentally creating duplicate
50799// commitments.
50800//
50801// The request ID must be a valid UUID with the exception that zero UUID
50802// is not supported (00000000-0000-0000-0000-000000000000).
50803func (c *InstancesStartWithEncryptionKeyCall) RequestId(requestId string) *InstancesStartWithEncryptionKeyCall {
50804	c.urlParams_.Set("requestId", requestId)
50805	return c
50806}
50807
50808// Fields allows partial responses to be retrieved. See
50809// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50810// for more information.
50811func (c *InstancesStartWithEncryptionKeyCall) Fields(s ...googleapi.Field) *InstancesStartWithEncryptionKeyCall {
50812	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50813	return c
50814}
50815
50816// Context sets the context to be used in this call's Do method. Any
50817// pending HTTP request will be aborted if the provided context is
50818// canceled.
50819func (c *InstancesStartWithEncryptionKeyCall) Context(ctx context.Context) *InstancesStartWithEncryptionKeyCall {
50820	c.ctx_ = ctx
50821	return c
50822}
50823
50824// Header returns an http.Header that can be modified by the caller to
50825// add HTTP headers to the request.
50826func (c *InstancesStartWithEncryptionKeyCall) Header() http.Header {
50827	if c.header_ == nil {
50828		c.header_ = make(http.Header)
50829	}
50830	return c.header_
50831}
50832
50833func (c *InstancesStartWithEncryptionKeyCall) doRequest(alt string) (*http.Response, error) {
50834	reqHeaders := make(http.Header)
50835	for k, v := range c.header_ {
50836		reqHeaders[k] = v
50837	}
50838	reqHeaders.Set("User-Agent", c.s.userAgent())
50839	var body io.Reader = nil
50840	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesstartwithencryptionkeyrequest)
50841	if err != nil {
50842		return nil, err
50843	}
50844	reqHeaders.Set("Content-Type", "application/json")
50845	c.urlParams_.Set("alt", alt)
50846	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey")
50847	urls += "?" + c.urlParams_.Encode()
50848	req, _ := http.NewRequest("POST", urls, body)
50849	req.Header = reqHeaders
50850	googleapi.Expand(req.URL, map[string]string{
50851		"project":  c.project,
50852		"zone":     c.zone,
50853		"instance": c.instance,
50854	})
50855	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50856}
50857
50858// Do executes the "compute.instances.startWithEncryptionKey" call.
50859// Exactly one of *Operation or error will be non-nil. Any non-2xx
50860// status code is an error. Response headers are in either
50861// *Operation.ServerResponse.Header or (if a response was returned at
50862// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50863// to check whether the returned error was because
50864// http.StatusNotModified was returned.
50865func (c *InstancesStartWithEncryptionKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50866	gensupport.SetOptions(c.urlParams_, opts...)
50867	res, err := c.doRequest("json")
50868	if res != nil && res.StatusCode == http.StatusNotModified {
50869		if res.Body != nil {
50870			res.Body.Close()
50871		}
50872		return nil, &googleapi.Error{
50873			Code:   res.StatusCode,
50874			Header: res.Header,
50875		}
50876	}
50877	if err != nil {
50878		return nil, err
50879	}
50880	defer googleapi.CloseBody(res)
50881	if err := googleapi.CheckResponse(res); err != nil {
50882		return nil, err
50883	}
50884	ret := &Operation{
50885		ServerResponse: googleapi.ServerResponse{
50886			Header:         res.Header,
50887			HTTPStatusCode: res.StatusCode,
50888		},
50889	}
50890	target := &ret
50891	if err := gensupport.DecodeResponse(target, res); err != nil {
50892		return nil, err
50893	}
50894	return ret, nil
50895	// {
50896	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
50897	//   "httpMethod": "POST",
50898	//   "id": "compute.instances.startWithEncryptionKey",
50899	//   "parameterOrder": [
50900	//     "project",
50901	//     "zone",
50902	//     "instance"
50903	//   ],
50904	//   "parameters": {
50905	//     "instance": {
50906	//       "description": "Name of the instance resource to start.",
50907	//       "location": "path",
50908	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50909	//       "required": true,
50910	//       "type": "string"
50911	//     },
50912	//     "project": {
50913	//       "description": "Project ID for this request.",
50914	//       "location": "path",
50915	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50916	//       "required": true,
50917	//       "type": "string"
50918	//     },
50919	//     "requestId": {
50920	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50921	//       "location": "query",
50922	//       "type": "string"
50923	//     },
50924	//     "zone": {
50925	//       "description": "The name of the zone for this request.",
50926	//       "location": "path",
50927	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50928	//       "required": true,
50929	//       "type": "string"
50930	//     }
50931	//   },
50932	//   "path": "{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey",
50933	//   "request": {
50934	//     "$ref": "InstancesStartWithEncryptionKeyRequest"
50935	//   },
50936	//   "response": {
50937	//     "$ref": "Operation"
50938	//   },
50939	//   "scopes": [
50940	//     "https://www.googleapis.com/auth/cloud-platform",
50941	//     "https://www.googleapis.com/auth/compute"
50942	//   ]
50943	// }
50944
50945}
50946
50947// method id "compute.instances.stop":
50948
50949type InstancesStopCall struct {
50950	s          *Service
50951	project    string
50952	zone       string
50953	instance   string
50954	urlParams_ gensupport.URLParams
50955	ctx_       context.Context
50956	header_    http.Header
50957}
50958
50959// Stop: Stops a running instance, shutting it down cleanly, and allows
50960// you to restart the instance at a later time. Stopped instances do not
50961// incur VM usage charges while they are stopped. However, resources
50962// that the VM is using, such as persistent disks and static IP
50963// addresses, will continue to be charged until they are deleted. For
50964// more information, see Stopping an instance.
50965// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/stop
50966func (r *InstancesService) Stop(project string, zone string, instance string) *InstancesStopCall {
50967	c := &InstancesStopCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50968	c.project = project
50969	c.zone = zone
50970	c.instance = instance
50971	return c
50972}
50973
50974// RequestId sets the optional parameter "requestId": An optional
50975// request ID to identify requests. Specify a unique request ID so that
50976// if you must retry your request, the server will know to ignore the
50977// request if it has already been completed.
50978//
50979// For example, consider a situation where you make an initial request
50980// and the request times out. If you make the request again with the
50981// same request ID, the server can check if original operation with the
50982// same request ID was received, and if so, will ignore the second
50983// request. This prevents clients from accidentally creating duplicate
50984// commitments.
50985//
50986// The request ID must be a valid UUID with the exception that zero UUID
50987// is not supported (00000000-0000-0000-0000-000000000000).
50988func (c *InstancesStopCall) RequestId(requestId string) *InstancesStopCall {
50989	c.urlParams_.Set("requestId", requestId)
50990	return c
50991}
50992
50993// Fields allows partial responses to be retrieved. See
50994// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50995// for more information.
50996func (c *InstancesStopCall) Fields(s ...googleapi.Field) *InstancesStopCall {
50997	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50998	return c
50999}
51000
51001// Context sets the context to be used in this call's Do method. Any
51002// pending HTTP request will be aborted if the provided context is
51003// canceled.
51004func (c *InstancesStopCall) Context(ctx context.Context) *InstancesStopCall {
51005	c.ctx_ = ctx
51006	return c
51007}
51008
51009// Header returns an http.Header that can be modified by the caller to
51010// add HTTP headers to the request.
51011func (c *InstancesStopCall) Header() http.Header {
51012	if c.header_ == nil {
51013		c.header_ = make(http.Header)
51014	}
51015	return c.header_
51016}
51017
51018func (c *InstancesStopCall) doRequest(alt string) (*http.Response, error) {
51019	reqHeaders := make(http.Header)
51020	for k, v := range c.header_ {
51021		reqHeaders[k] = v
51022	}
51023	reqHeaders.Set("User-Agent", c.s.userAgent())
51024	var body io.Reader = nil
51025	c.urlParams_.Set("alt", alt)
51026	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/stop")
51027	urls += "?" + c.urlParams_.Encode()
51028	req, _ := http.NewRequest("POST", urls, body)
51029	req.Header = reqHeaders
51030	googleapi.Expand(req.URL, map[string]string{
51031		"project":  c.project,
51032		"zone":     c.zone,
51033		"instance": c.instance,
51034	})
51035	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51036}
51037
51038// Do executes the "compute.instances.stop" call.
51039// Exactly one of *Operation or error will be non-nil. Any non-2xx
51040// status code is an error. Response headers are in either
51041// *Operation.ServerResponse.Header or (if a response was returned at
51042// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51043// to check whether the returned error was because
51044// http.StatusNotModified was returned.
51045func (c *InstancesStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51046	gensupport.SetOptions(c.urlParams_, opts...)
51047	res, err := c.doRequest("json")
51048	if res != nil && res.StatusCode == http.StatusNotModified {
51049		if res.Body != nil {
51050			res.Body.Close()
51051		}
51052		return nil, &googleapi.Error{
51053			Code:   res.StatusCode,
51054			Header: res.Header,
51055		}
51056	}
51057	if err != nil {
51058		return nil, err
51059	}
51060	defer googleapi.CloseBody(res)
51061	if err := googleapi.CheckResponse(res); err != nil {
51062		return nil, err
51063	}
51064	ret := &Operation{
51065		ServerResponse: googleapi.ServerResponse{
51066			Header:         res.Header,
51067			HTTPStatusCode: res.StatusCode,
51068		},
51069	}
51070	target := &ret
51071	if err := gensupport.DecodeResponse(target, res); err != nil {
51072		return nil, err
51073	}
51074	return ret, nil
51075	// {
51076	//   "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.",
51077	//   "httpMethod": "POST",
51078	//   "id": "compute.instances.stop",
51079	//   "parameterOrder": [
51080	//     "project",
51081	//     "zone",
51082	//     "instance"
51083	//   ],
51084	//   "parameters": {
51085	//     "instance": {
51086	//       "description": "Name of the instance resource to stop.",
51087	//       "location": "path",
51088	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51089	//       "required": true,
51090	//       "type": "string"
51091	//     },
51092	//     "project": {
51093	//       "description": "Project ID for this request.",
51094	//       "location": "path",
51095	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51096	//       "required": true,
51097	//       "type": "string"
51098	//     },
51099	//     "requestId": {
51100	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51101	//       "location": "query",
51102	//       "type": "string"
51103	//     },
51104	//     "zone": {
51105	//       "description": "The name of the zone for this request.",
51106	//       "location": "path",
51107	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51108	//       "required": true,
51109	//       "type": "string"
51110	//     }
51111	//   },
51112	//   "path": "{project}/zones/{zone}/instances/{instance}/stop",
51113	//   "response": {
51114	//     "$ref": "Operation"
51115	//   },
51116	//   "scopes": [
51117	//     "https://www.googleapis.com/auth/cloud-platform",
51118	//     "https://www.googleapis.com/auth/compute"
51119	//   ]
51120	// }
51121
51122}
51123
51124// method id "compute.instances.updateAccessConfig":
51125
51126type InstancesUpdateAccessConfigCall struct {
51127	s            *Service
51128	project      string
51129	zone         string
51130	instance     string
51131	accessconfig *AccessConfig
51132	urlParams_   gensupport.URLParams
51133	ctx_         context.Context
51134	header_      http.Header
51135}
51136
51137// UpdateAccessConfig: Updates the specified access config from an
51138// instance's network interface with the data included in the request.
51139// This method supports PATCH semantics and uses the JSON merge patch
51140// format and processing rules.
51141func (r *InstancesService) UpdateAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesUpdateAccessConfigCall {
51142	c := &InstancesUpdateAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51143	c.project = project
51144	c.zone = zone
51145	c.instance = instance
51146	c.urlParams_.Set("networkInterface", networkInterface)
51147	c.accessconfig = accessconfig
51148	return c
51149}
51150
51151// RequestId sets the optional parameter "requestId": An optional
51152// request ID to identify requests. Specify a unique request ID so that
51153// if you must retry your request, the server will know to ignore the
51154// request if it has already been completed.
51155//
51156// For example, consider a situation where you make an initial request
51157// and the request times out. If you make the request again with the
51158// same request ID, the server can check if original operation with the
51159// same request ID was received, and if so, will ignore the second
51160// request. This prevents clients from accidentally creating duplicate
51161// commitments.
51162//
51163// The request ID must be a valid UUID with the exception that zero UUID
51164// is not supported (00000000-0000-0000-0000-000000000000).
51165func (c *InstancesUpdateAccessConfigCall) RequestId(requestId string) *InstancesUpdateAccessConfigCall {
51166	c.urlParams_.Set("requestId", requestId)
51167	return c
51168}
51169
51170// Fields allows partial responses to be retrieved. See
51171// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51172// for more information.
51173func (c *InstancesUpdateAccessConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateAccessConfigCall {
51174	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51175	return c
51176}
51177
51178// Context sets the context to be used in this call's Do method. Any
51179// pending HTTP request will be aborted if the provided context is
51180// canceled.
51181func (c *InstancesUpdateAccessConfigCall) Context(ctx context.Context) *InstancesUpdateAccessConfigCall {
51182	c.ctx_ = ctx
51183	return c
51184}
51185
51186// Header returns an http.Header that can be modified by the caller to
51187// add HTTP headers to the request.
51188func (c *InstancesUpdateAccessConfigCall) Header() http.Header {
51189	if c.header_ == nil {
51190		c.header_ = make(http.Header)
51191	}
51192	return c.header_
51193}
51194
51195func (c *InstancesUpdateAccessConfigCall) doRequest(alt string) (*http.Response, error) {
51196	reqHeaders := make(http.Header)
51197	for k, v := range c.header_ {
51198		reqHeaders[k] = v
51199	}
51200	reqHeaders.Set("User-Agent", c.s.userAgent())
51201	var body io.Reader = nil
51202	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
51203	if err != nil {
51204		return nil, err
51205	}
51206	reqHeaders.Set("Content-Type", "application/json")
51207	c.urlParams_.Set("alt", alt)
51208	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateAccessConfig")
51209	urls += "?" + c.urlParams_.Encode()
51210	req, _ := http.NewRequest("POST", urls, body)
51211	req.Header = reqHeaders
51212	googleapi.Expand(req.URL, map[string]string{
51213		"project":  c.project,
51214		"zone":     c.zone,
51215		"instance": c.instance,
51216	})
51217	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51218}
51219
51220// Do executes the "compute.instances.updateAccessConfig" call.
51221// Exactly one of *Operation or error will be non-nil. Any non-2xx
51222// status code is an error. Response headers are in either
51223// *Operation.ServerResponse.Header or (if a response was returned at
51224// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51225// to check whether the returned error was because
51226// http.StatusNotModified was returned.
51227func (c *InstancesUpdateAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51228	gensupport.SetOptions(c.urlParams_, opts...)
51229	res, err := c.doRequest("json")
51230	if res != nil && res.StatusCode == http.StatusNotModified {
51231		if res.Body != nil {
51232			res.Body.Close()
51233		}
51234		return nil, &googleapi.Error{
51235			Code:   res.StatusCode,
51236			Header: res.Header,
51237		}
51238	}
51239	if err != nil {
51240		return nil, err
51241	}
51242	defer googleapi.CloseBody(res)
51243	if err := googleapi.CheckResponse(res); err != nil {
51244		return nil, err
51245	}
51246	ret := &Operation{
51247		ServerResponse: googleapi.ServerResponse{
51248			Header:         res.Header,
51249			HTTPStatusCode: res.StatusCode,
51250		},
51251	}
51252	target := &ret
51253	if err := gensupport.DecodeResponse(target, res); err != nil {
51254		return nil, err
51255	}
51256	return ret, nil
51257	// {
51258	//   "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.",
51259	//   "httpMethod": "POST",
51260	//   "id": "compute.instances.updateAccessConfig",
51261	//   "parameterOrder": [
51262	//     "project",
51263	//     "zone",
51264	//     "instance",
51265	//     "networkInterface"
51266	//   ],
51267	//   "parameters": {
51268	//     "instance": {
51269	//       "description": "The instance name for this request.",
51270	//       "location": "path",
51271	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51272	//       "required": true,
51273	//       "type": "string"
51274	//     },
51275	//     "networkInterface": {
51276	//       "description": "The name of the network interface where the access config is attached.",
51277	//       "location": "query",
51278	//       "required": true,
51279	//       "type": "string"
51280	//     },
51281	//     "project": {
51282	//       "description": "Project ID for this request.",
51283	//       "location": "path",
51284	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51285	//       "required": true,
51286	//       "type": "string"
51287	//     },
51288	//     "requestId": {
51289	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51290	//       "location": "query",
51291	//       "type": "string"
51292	//     },
51293	//     "zone": {
51294	//       "description": "The name of the zone for this request.",
51295	//       "location": "path",
51296	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51297	//       "required": true,
51298	//       "type": "string"
51299	//     }
51300	//   },
51301	//   "path": "{project}/zones/{zone}/instances/{instance}/updateAccessConfig",
51302	//   "request": {
51303	//     "$ref": "AccessConfig"
51304	//   },
51305	//   "response": {
51306	//     "$ref": "Operation"
51307	//   },
51308	//   "scopes": [
51309	//     "https://www.googleapis.com/auth/cloud-platform",
51310	//     "https://www.googleapis.com/auth/compute"
51311	//   ]
51312	// }
51313
51314}
51315
51316// method id "compute.instances.updateNetworkInterface":
51317
51318type InstancesUpdateNetworkInterfaceCall struct {
51319	s                *Service
51320	project          string
51321	zone             string
51322	instance         string
51323	networkinterface *NetworkInterface
51324	urlParams_       gensupport.URLParams
51325	ctx_             context.Context
51326	header_          http.Header
51327}
51328
51329// UpdateNetworkInterface: Updates an instance's network interface. This
51330// method follows PATCH semantics.
51331func (r *InstancesService) UpdateNetworkInterface(project string, zone string, instance string, networkInterface string, networkinterface *NetworkInterface) *InstancesUpdateNetworkInterfaceCall {
51332	c := &InstancesUpdateNetworkInterfaceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51333	c.project = project
51334	c.zone = zone
51335	c.instance = instance
51336	c.urlParams_.Set("networkInterface", networkInterface)
51337	c.networkinterface = networkinterface
51338	return c
51339}
51340
51341// RequestId sets the optional parameter "requestId": An optional
51342// request ID to identify requests. Specify a unique request ID so that
51343// if you must retry your request, the server will know to ignore the
51344// request if it has already been completed.
51345//
51346// For example, consider a situation where you make an initial request
51347// and the request times out. If you make the request again with the
51348// same request ID, the server can check if original operation with the
51349// same request ID was received, and if so, will ignore the second
51350// request. This prevents clients from accidentally creating duplicate
51351// commitments.
51352//
51353// The request ID must be a valid UUID with the exception that zero UUID
51354// is not supported (00000000-0000-0000-0000-000000000000).
51355func (c *InstancesUpdateNetworkInterfaceCall) RequestId(requestId string) *InstancesUpdateNetworkInterfaceCall {
51356	c.urlParams_.Set("requestId", requestId)
51357	return c
51358}
51359
51360// Fields allows partial responses to be retrieved. See
51361// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51362// for more information.
51363func (c *InstancesUpdateNetworkInterfaceCall) Fields(s ...googleapi.Field) *InstancesUpdateNetworkInterfaceCall {
51364	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51365	return c
51366}
51367
51368// Context sets the context to be used in this call's Do method. Any
51369// pending HTTP request will be aborted if the provided context is
51370// canceled.
51371func (c *InstancesUpdateNetworkInterfaceCall) Context(ctx context.Context) *InstancesUpdateNetworkInterfaceCall {
51372	c.ctx_ = ctx
51373	return c
51374}
51375
51376// Header returns an http.Header that can be modified by the caller to
51377// add HTTP headers to the request.
51378func (c *InstancesUpdateNetworkInterfaceCall) Header() http.Header {
51379	if c.header_ == nil {
51380		c.header_ = make(http.Header)
51381	}
51382	return c.header_
51383}
51384
51385func (c *InstancesUpdateNetworkInterfaceCall) doRequest(alt string) (*http.Response, error) {
51386	reqHeaders := make(http.Header)
51387	for k, v := range c.header_ {
51388		reqHeaders[k] = v
51389	}
51390	reqHeaders.Set("User-Agent", c.s.userAgent())
51391	var body io.Reader = nil
51392	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkinterface)
51393	if err != nil {
51394		return nil, err
51395	}
51396	reqHeaders.Set("Content-Type", "application/json")
51397	c.urlParams_.Set("alt", alt)
51398	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateNetworkInterface")
51399	urls += "?" + c.urlParams_.Encode()
51400	req, _ := http.NewRequest("PATCH", urls, body)
51401	req.Header = reqHeaders
51402	googleapi.Expand(req.URL, map[string]string{
51403		"project":  c.project,
51404		"zone":     c.zone,
51405		"instance": c.instance,
51406	})
51407	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51408}
51409
51410// Do executes the "compute.instances.updateNetworkInterface" call.
51411// Exactly one of *Operation or error will be non-nil. Any non-2xx
51412// status code is an error. Response headers are in either
51413// *Operation.ServerResponse.Header or (if a response was returned at
51414// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51415// to check whether the returned error was because
51416// http.StatusNotModified was returned.
51417func (c *InstancesUpdateNetworkInterfaceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51418	gensupport.SetOptions(c.urlParams_, opts...)
51419	res, err := c.doRequest("json")
51420	if res != nil && res.StatusCode == http.StatusNotModified {
51421		if res.Body != nil {
51422			res.Body.Close()
51423		}
51424		return nil, &googleapi.Error{
51425			Code:   res.StatusCode,
51426			Header: res.Header,
51427		}
51428	}
51429	if err != nil {
51430		return nil, err
51431	}
51432	defer googleapi.CloseBody(res)
51433	if err := googleapi.CheckResponse(res); err != nil {
51434		return nil, err
51435	}
51436	ret := &Operation{
51437		ServerResponse: googleapi.ServerResponse{
51438			Header:         res.Header,
51439			HTTPStatusCode: res.StatusCode,
51440		},
51441	}
51442	target := &ret
51443	if err := gensupport.DecodeResponse(target, res); err != nil {
51444		return nil, err
51445	}
51446	return ret, nil
51447	// {
51448	//   "description": "Updates an instance's network interface. This method follows PATCH semantics.",
51449	//   "httpMethod": "PATCH",
51450	//   "id": "compute.instances.updateNetworkInterface",
51451	//   "parameterOrder": [
51452	//     "project",
51453	//     "zone",
51454	//     "instance",
51455	//     "networkInterface"
51456	//   ],
51457	//   "parameters": {
51458	//     "instance": {
51459	//       "description": "The instance name for this request.",
51460	//       "location": "path",
51461	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51462	//       "required": true,
51463	//       "type": "string"
51464	//     },
51465	//     "networkInterface": {
51466	//       "description": "The name of the network interface to update.",
51467	//       "location": "query",
51468	//       "required": true,
51469	//       "type": "string"
51470	//     },
51471	//     "project": {
51472	//       "description": "Project ID for this request.",
51473	//       "location": "path",
51474	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51475	//       "required": true,
51476	//       "type": "string"
51477	//     },
51478	//     "requestId": {
51479	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51480	//       "location": "query",
51481	//       "type": "string"
51482	//     },
51483	//     "zone": {
51484	//       "description": "The name of the zone for this request.",
51485	//       "location": "path",
51486	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51487	//       "required": true,
51488	//       "type": "string"
51489	//     }
51490	//   },
51491	//   "path": "{project}/zones/{zone}/instances/{instance}/updateNetworkInterface",
51492	//   "request": {
51493	//     "$ref": "NetworkInterface"
51494	//   },
51495	//   "response": {
51496	//     "$ref": "Operation"
51497	//   },
51498	//   "scopes": [
51499	//     "https://www.googleapis.com/auth/cloud-platform",
51500	//     "https://www.googleapis.com/auth/compute"
51501	//   ]
51502	// }
51503
51504}
51505
51506// method id "compute.interconnectAttachments.aggregatedList":
51507
51508type InterconnectAttachmentsAggregatedListCall struct {
51509	s            *Service
51510	project      string
51511	urlParams_   gensupport.URLParams
51512	ifNoneMatch_ string
51513	ctx_         context.Context
51514	header_      http.Header
51515}
51516
51517// AggregatedList: Retrieves an aggregated list of interconnect
51518// attachments.
51519func (r *InterconnectAttachmentsService) AggregatedList(project string) *InterconnectAttachmentsAggregatedListCall {
51520	c := &InterconnectAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51521	c.project = project
51522	return c
51523}
51524
51525// Filter sets the optional parameter "filter": A filter expression that
51526// filters resources listed in the response. The expression must specify
51527// the field name, a comparison operator, and the value that you want to
51528// use for filtering. The value must be a string, a number, or a
51529// boolean. The comparison operator must be either =, !=, >, or <.
51530//
51531// For example, if you are filtering Compute Engine instances, you can
51532// exclude instances named example-instance by specifying name !=
51533// example-instance.
51534//
51535// You can also filter nested fields. For example, you could specify
51536// scheduling.automaticRestart = false to include instances only if they
51537// are not scheduled for automatic restarts. You can use filtering on
51538// nested fields to filter based on resource labels.
51539//
51540// To filter on multiple expressions, provide each separate expression
51541// within parentheses. For example, (scheduling.automaticRestart = true)
51542// (cpuPlatform = "Intel Skylake"). By default, each expression is an
51543// AND expression. However, you can include AND and OR expressions
51544// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
51545// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
51546// true).
51547func (c *InterconnectAttachmentsAggregatedListCall) Filter(filter string) *InterconnectAttachmentsAggregatedListCall {
51548	c.urlParams_.Set("filter", filter)
51549	return c
51550}
51551
51552// MaxResults sets the optional parameter "maxResults": The maximum
51553// number of results per page that should be returned. If the number of
51554// available results is larger than maxResults, Compute Engine returns a
51555// nextPageToken that can be used to get the next page of results in
51556// subsequent list requests. Acceptable values are 0 to 500, inclusive.
51557// (Default: 500)
51558func (c *InterconnectAttachmentsAggregatedListCall) MaxResults(maxResults int64) *InterconnectAttachmentsAggregatedListCall {
51559	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
51560	return c
51561}
51562
51563// OrderBy sets the optional parameter "orderBy": Sorts list results by
51564// a certain order. By default, results are returned in alphanumerical
51565// order based on the resource name.
51566//
51567// You can also sort results in descending order based on the creation
51568// timestamp using orderBy="creationTimestamp desc". This sorts results
51569// based on the creationTimestamp field in reverse chronological order
51570// (newest result first). Use this to sort resources like operations so
51571// that the newest operation is returned first.
51572//
51573// Currently, only sorting by name or creationTimestamp desc is
51574// supported.
51575func (c *InterconnectAttachmentsAggregatedListCall) OrderBy(orderBy string) *InterconnectAttachmentsAggregatedListCall {
51576	c.urlParams_.Set("orderBy", orderBy)
51577	return c
51578}
51579
51580// PageToken sets the optional parameter "pageToken": Specifies a page
51581// token to use. Set pageToken to the nextPageToken returned by a
51582// previous list request to get the next page of results.
51583func (c *InterconnectAttachmentsAggregatedListCall) PageToken(pageToken string) *InterconnectAttachmentsAggregatedListCall {
51584	c.urlParams_.Set("pageToken", pageToken)
51585	return c
51586}
51587
51588// Fields allows partial responses to be retrieved. See
51589// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51590// for more information.
51591func (c *InterconnectAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsAggregatedListCall {
51592	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51593	return c
51594}
51595
51596// IfNoneMatch sets the optional parameter which makes the operation
51597// fail if the object's ETag matches the given value. This is useful for
51598// getting updates only after the object has changed since the last
51599// request. Use googleapi.IsNotModified to check whether the response
51600// error from Do is the result of In-None-Match.
51601func (c *InterconnectAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsAggregatedListCall {
51602	c.ifNoneMatch_ = entityTag
51603	return c
51604}
51605
51606// Context sets the context to be used in this call's Do method. Any
51607// pending HTTP request will be aborted if the provided context is
51608// canceled.
51609func (c *InterconnectAttachmentsAggregatedListCall) Context(ctx context.Context) *InterconnectAttachmentsAggregatedListCall {
51610	c.ctx_ = ctx
51611	return c
51612}
51613
51614// Header returns an http.Header that can be modified by the caller to
51615// add HTTP headers to the request.
51616func (c *InterconnectAttachmentsAggregatedListCall) Header() http.Header {
51617	if c.header_ == nil {
51618		c.header_ = make(http.Header)
51619	}
51620	return c.header_
51621}
51622
51623func (c *InterconnectAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
51624	reqHeaders := make(http.Header)
51625	for k, v := range c.header_ {
51626		reqHeaders[k] = v
51627	}
51628	reqHeaders.Set("User-Agent", c.s.userAgent())
51629	if c.ifNoneMatch_ != "" {
51630		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51631	}
51632	var body io.Reader = nil
51633	c.urlParams_.Set("alt", alt)
51634	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/interconnectAttachments")
51635	urls += "?" + c.urlParams_.Encode()
51636	req, _ := http.NewRequest("GET", urls, body)
51637	req.Header = reqHeaders
51638	googleapi.Expand(req.URL, map[string]string{
51639		"project": c.project,
51640	})
51641	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51642}
51643
51644// Do executes the "compute.interconnectAttachments.aggregatedList" call.
51645// Exactly one of *InterconnectAttachmentAggregatedList or error will be
51646// non-nil. Any non-2xx status code is an error. Response headers are in
51647// either *InterconnectAttachmentAggregatedList.ServerResponse.Header or
51648// (if a response was returned at all) in
51649// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
51650// whether the returned error was because http.StatusNotModified was
51651// returned.
51652func (c *InterconnectAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentAggregatedList, error) {
51653	gensupport.SetOptions(c.urlParams_, opts...)
51654	res, err := c.doRequest("json")
51655	if res != nil && res.StatusCode == http.StatusNotModified {
51656		if res.Body != nil {
51657			res.Body.Close()
51658		}
51659		return nil, &googleapi.Error{
51660			Code:   res.StatusCode,
51661			Header: res.Header,
51662		}
51663	}
51664	if err != nil {
51665		return nil, err
51666	}
51667	defer googleapi.CloseBody(res)
51668	if err := googleapi.CheckResponse(res); err != nil {
51669		return nil, err
51670	}
51671	ret := &InterconnectAttachmentAggregatedList{
51672		ServerResponse: googleapi.ServerResponse{
51673			Header:         res.Header,
51674			HTTPStatusCode: res.StatusCode,
51675		},
51676	}
51677	target := &ret
51678	if err := gensupport.DecodeResponse(target, res); err != nil {
51679		return nil, err
51680	}
51681	return ret, nil
51682	// {
51683	//   "description": "Retrieves an aggregated list of interconnect attachments.",
51684	//   "httpMethod": "GET",
51685	//   "id": "compute.interconnectAttachments.aggregatedList",
51686	//   "parameterOrder": [
51687	//     "project"
51688	//   ],
51689	//   "parameters": {
51690	//     "filter": {
51691	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
51692	//       "location": "query",
51693	//       "type": "string"
51694	//     },
51695	//     "maxResults": {
51696	//       "default": "500",
51697	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
51698	//       "format": "uint32",
51699	//       "location": "query",
51700	//       "minimum": "0",
51701	//       "type": "integer"
51702	//     },
51703	//     "orderBy": {
51704	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
51705	//       "location": "query",
51706	//       "type": "string"
51707	//     },
51708	//     "pageToken": {
51709	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
51710	//       "location": "query",
51711	//       "type": "string"
51712	//     },
51713	//     "project": {
51714	//       "description": "Project ID for this request.",
51715	//       "location": "path",
51716	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51717	//       "required": true,
51718	//       "type": "string"
51719	//     }
51720	//   },
51721	//   "path": "{project}/aggregated/interconnectAttachments",
51722	//   "response": {
51723	//     "$ref": "InterconnectAttachmentAggregatedList"
51724	//   },
51725	//   "scopes": [
51726	//     "https://www.googleapis.com/auth/cloud-platform",
51727	//     "https://www.googleapis.com/auth/compute",
51728	//     "https://www.googleapis.com/auth/compute.readonly"
51729	//   ]
51730	// }
51731
51732}
51733
51734// Pages invokes f for each page of results.
51735// A non-nil error returned from f will halt the iteration.
51736// The provided context supersedes any context provided to the Context method.
51737func (c *InterconnectAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentAggregatedList) error) error {
51738	c.ctx_ = ctx
51739	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
51740	for {
51741		x, err := c.Do()
51742		if err != nil {
51743			return err
51744		}
51745		if err := f(x); err != nil {
51746			return err
51747		}
51748		if x.NextPageToken == "" {
51749			return nil
51750		}
51751		c.PageToken(x.NextPageToken)
51752	}
51753}
51754
51755// method id "compute.interconnectAttachments.delete":
51756
51757type InterconnectAttachmentsDeleteCall struct {
51758	s                      *Service
51759	project                string
51760	region                 string
51761	interconnectAttachment string
51762	urlParams_             gensupport.URLParams
51763	ctx_                   context.Context
51764	header_                http.Header
51765}
51766
51767// Delete: Deletes the specified interconnect attachment.
51768func (r *InterconnectAttachmentsService) Delete(project string, region string, interconnectAttachment string) *InterconnectAttachmentsDeleteCall {
51769	c := &InterconnectAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51770	c.project = project
51771	c.region = region
51772	c.interconnectAttachment = interconnectAttachment
51773	return c
51774}
51775
51776// RequestId sets the optional parameter "requestId": An optional
51777// request ID to identify requests. Specify a unique request ID so that
51778// if you must retry your request, the server will know to ignore the
51779// request if it has already been completed.
51780//
51781// For example, consider a situation where you make an initial request
51782// and the request times out. If you make the request again with the
51783// same request ID, the server can check if original operation with the
51784// same request ID was received, and if so, will ignore the second
51785// request. This prevents clients from accidentally creating duplicate
51786// commitments.
51787//
51788// The request ID must be a valid UUID with the exception that zero UUID
51789// is not supported (00000000-0000-0000-0000-000000000000).
51790func (c *InterconnectAttachmentsDeleteCall) RequestId(requestId string) *InterconnectAttachmentsDeleteCall {
51791	c.urlParams_.Set("requestId", requestId)
51792	return c
51793}
51794
51795// Fields allows partial responses to be retrieved. See
51796// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51797// for more information.
51798func (c *InterconnectAttachmentsDeleteCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsDeleteCall {
51799	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51800	return c
51801}
51802
51803// Context sets the context to be used in this call's Do method. Any
51804// pending HTTP request will be aborted if the provided context is
51805// canceled.
51806func (c *InterconnectAttachmentsDeleteCall) Context(ctx context.Context) *InterconnectAttachmentsDeleteCall {
51807	c.ctx_ = ctx
51808	return c
51809}
51810
51811// Header returns an http.Header that can be modified by the caller to
51812// add HTTP headers to the request.
51813func (c *InterconnectAttachmentsDeleteCall) Header() http.Header {
51814	if c.header_ == nil {
51815		c.header_ = make(http.Header)
51816	}
51817	return c.header_
51818}
51819
51820func (c *InterconnectAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) {
51821	reqHeaders := make(http.Header)
51822	for k, v := range c.header_ {
51823		reqHeaders[k] = v
51824	}
51825	reqHeaders.Set("User-Agent", c.s.userAgent())
51826	var body io.Reader = nil
51827	c.urlParams_.Set("alt", alt)
51828	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
51829	urls += "?" + c.urlParams_.Encode()
51830	req, _ := http.NewRequest("DELETE", urls, body)
51831	req.Header = reqHeaders
51832	googleapi.Expand(req.URL, map[string]string{
51833		"project":                c.project,
51834		"region":                 c.region,
51835		"interconnectAttachment": c.interconnectAttachment,
51836	})
51837	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51838}
51839
51840// Do executes the "compute.interconnectAttachments.delete" call.
51841// Exactly one of *Operation or error will be non-nil. Any non-2xx
51842// status code is an error. Response headers are in either
51843// *Operation.ServerResponse.Header or (if a response was returned at
51844// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51845// to check whether the returned error was because
51846// http.StatusNotModified was returned.
51847func (c *InterconnectAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51848	gensupport.SetOptions(c.urlParams_, opts...)
51849	res, err := c.doRequest("json")
51850	if res != nil && res.StatusCode == http.StatusNotModified {
51851		if res.Body != nil {
51852			res.Body.Close()
51853		}
51854		return nil, &googleapi.Error{
51855			Code:   res.StatusCode,
51856			Header: res.Header,
51857		}
51858	}
51859	if err != nil {
51860		return nil, err
51861	}
51862	defer googleapi.CloseBody(res)
51863	if err := googleapi.CheckResponse(res); err != nil {
51864		return nil, err
51865	}
51866	ret := &Operation{
51867		ServerResponse: googleapi.ServerResponse{
51868			Header:         res.Header,
51869			HTTPStatusCode: res.StatusCode,
51870		},
51871	}
51872	target := &ret
51873	if err := gensupport.DecodeResponse(target, res); err != nil {
51874		return nil, err
51875	}
51876	return ret, nil
51877	// {
51878	//   "description": "Deletes the specified interconnect attachment.",
51879	//   "httpMethod": "DELETE",
51880	//   "id": "compute.interconnectAttachments.delete",
51881	//   "parameterOrder": [
51882	//     "project",
51883	//     "region",
51884	//     "interconnectAttachment"
51885	//   ],
51886	//   "parameters": {
51887	//     "interconnectAttachment": {
51888	//       "description": "Name of the interconnect attachment to delete.",
51889	//       "location": "path",
51890	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51891	//       "required": true,
51892	//       "type": "string"
51893	//     },
51894	//     "project": {
51895	//       "description": "Project ID for this request.",
51896	//       "location": "path",
51897	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51898	//       "required": true,
51899	//       "type": "string"
51900	//     },
51901	//     "region": {
51902	//       "description": "Name of the region for this request.",
51903	//       "location": "path",
51904	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51905	//       "required": true,
51906	//       "type": "string"
51907	//     },
51908	//     "requestId": {
51909	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51910	//       "location": "query",
51911	//       "type": "string"
51912	//     }
51913	//   },
51914	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
51915	//   "response": {
51916	//     "$ref": "Operation"
51917	//   },
51918	//   "scopes": [
51919	//     "https://www.googleapis.com/auth/cloud-platform",
51920	//     "https://www.googleapis.com/auth/compute"
51921	//   ]
51922	// }
51923
51924}
51925
51926// method id "compute.interconnectAttachments.get":
51927
51928type InterconnectAttachmentsGetCall struct {
51929	s                      *Service
51930	project                string
51931	region                 string
51932	interconnectAttachment string
51933	urlParams_             gensupport.URLParams
51934	ifNoneMatch_           string
51935	ctx_                   context.Context
51936	header_                http.Header
51937}
51938
51939// Get: Returns the specified interconnect attachment.
51940func (r *InterconnectAttachmentsService) Get(project string, region string, interconnectAttachment string) *InterconnectAttachmentsGetCall {
51941	c := &InterconnectAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51942	c.project = project
51943	c.region = region
51944	c.interconnectAttachment = interconnectAttachment
51945	return c
51946}
51947
51948// Fields allows partial responses to be retrieved. See
51949// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51950// for more information.
51951func (c *InterconnectAttachmentsGetCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsGetCall {
51952	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51953	return c
51954}
51955
51956// IfNoneMatch sets the optional parameter which makes the operation
51957// fail if the object's ETag matches the given value. This is useful for
51958// getting updates only after the object has changed since the last
51959// request. Use googleapi.IsNotModified to check whether the response
51960// error from Do is the result of In-None-Match.
51961func (c *InterconnectAttachmentsGetCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsGetCall {
51962	c.ifNoneMatch_ = entityTag
51963	return c
51964}
51965
51966// Context sets the context to be used in this call's Do method. Any
51967// pending HTTP request will be aborted if the provided context is
51968// canceled.
51969func (c *InterconnectAttachmentsGetCall) Context(ctx context.Context) *InterconnectAttachmentsGetCall {
51970	c.ctx_ = ctx
51971	return c
51972}
51973
51974// Header returns an http.Header that can be modified by the caller to
51975// add HTTP headers to the request.
51976func (c *InterconnectAttachmentsGetCall) Header() http.Header {
51977	if c.header_ == nil {
51978		c.header_ = make(http.Header)
51979	}
51980	return c.header_
51981}
51982
51983func (c *InterconnectAttachmentsGetCall) doRequest(alt string) (*http.Response, error) {
51984	reqHeaders := make(http.Header)
51985	for k, v := range c.header_ {
51986		reqHeaders[k] = v
51987	}
51988	reqHeaders.Set("User-Agent", c.s.userAgent())
51989	if c.ifNoneMatch_ != "" {
51990		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51991	}
51992	var body io.Reader = nil
51993	c.urlParams_.Set("alt", alt)
51994	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
51995	urls += "?" + c.urlParams_.Encode()
51996	req, _ := http.NewRequest("GET", urls, body)
51997	req.Header = reqHeaders
51998	googleapi.Expand(req.URL, map[string]string{
51999		"project":                c.project,
52000		"region":                 c.region,
52001		"interconnectAttachment": c.interconnectAttachment,
52002	})
52003	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52004}
52005
52006// Do executes the "compute.interconnectAttachments.get" call.
52007// Exactly one of *InterconnectAttachment or error will be non-nil. Any
52008// non-2xx status code is an error. Response headers are in either
52009// *InterconnectAttachment.ServerResponse.Header or (if a response was
52010// returned at all) in error.(*googleapi.Error).Header. Use
52011// googleapi.IsNotModified to check whether the returned error was
52012// because http.StatusNotModified was returned.
52013func (c *InterconnectAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachment, error) {
52014	gensupport.SetOptions(c.urlParams_, opts...)
52015	res, err := c.doRequest("json")
52016	if res != nil && res.StatusCode == http.StatusNotModified {
52017		if res.Body != nil {
52018			res.Body.Close()
52019		}
52020		return nil, &googleapi.Error{
52021			Code:   res.StatusCode,
52022			Header: res.Header,
52023		}
52024	}
52025	if err != nil {
52026		return nil, err
52027	}
52028	defer googleapi.CloseBody(res)
52029	if err := googleapi.CheckResponse(res); err != nil {
52030		return nil, err
52031	}
52032	ret := &InterconnectAttachment{
52033		ServerResponse: googleapi.ServerResponse{
52034			Header:         res.Header,
52035			HTTPStatusCode: res.StatusCode,
52036		},
52037	}
52038	target := &ret
52039	if err := gensupport.DecodeResponse(target, res); err != nil {
52040		return nil, err
52041	}
52042	return ret, nil
52043	// {
52044	//   "description": "Returns the specified interconnect attachment.",
52045	//   "httpMethod": "GET",
52046	//   "id": "compute.interconnectAttachments.get",
52047	//   "parameterOrder": [
52048	//     "project",
52049	//     "region",
52050	//     "interconnectAttachment"
52051	//   ],
52052	//   "parameters": {
52053	//     "interconnectAttachment": {
52054	//       "description": "Name of the interconnect attachment to return.",
52055	//       "location": "path",
52056	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52057	//       "required": true,
52058	//       "type": "string"
52059	//     },
52060	//     "project": {
52061	//       "description": "Project ID for this request.",
52062	//       "location": "path",
52063	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52064	//       "required": true,
52065	//       "type": "string"
52066	//     },
52067	//     "region": {
52068	//       "description": "Name of the region for this request.",
52069	//       "location": "path",
52070	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52071	//       "required": true,
52072	//       "type": "string"
52073	//     }
52074	//   },
52075	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
52076	//   "response": {
52077	//     "$ref": "InterconnectAttachment"
52078	//   },
52079	//   "scopes": [
52080	//     "https://www.googleapis.com/auth/cloud-platform",
52081	//     "https://www.googleapis.com/auth/compute",
52082	//     "https://www.googleapis.com/auth/compute.readonly"
52083	//   ]
52084	// }
52085
52086}
52087
52088// method id "compute.interconnectAttachments.insert":
52089
52090type InterconnectAttachmentsInsertCall struct {
52091	s                      *Service
52092	project                string
52093	region                 string
52094	interconnectattachment *InterconnectAttachment
52095	urlParams_             gensupport.URLParams
52096	ctx_                   context.Context
52097	header_                http.Header
52098}
52099
52100// Insert: Creates an InterconnectAttachment in the specified project
52101// using the data included in the request.
52102func (r *InterconnectAttachmentsService) Insert(project string, region string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsInsertCall {
52103	c := &InterconnectAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52104	c.project = project
52105	c.region = region
52106	c.interconnectattachment = interconnectattachment
52107	return c
52108}
52109
52110// RequestId sets the optional parameter "requestId": An optional
52111// request ID to identify requests. Specify a unique request ID so that
52112// if you must retry your request, the server will know to ignore the
52113// request if it has already been completed.
52114//
52115// For example, consider a situation where you make an initial request
52116// and the request times out. If you make the request again with the
52117// same request ID, the server can check if original operation with the
52118// same request ID was received, and if so, will ignore the second
52119// request. This prevents clients from accidentally creating duplicate
52120// commitments.
52121//
52122// The request ID must be a valid UUID with the exception that zero UUID
52123// is not supported (00000000-0000-0000-0000-000000000000).
52124func (c *InterconnectAttachmentsInsertCall) RequestId(requestId string) *InterconnectAttachmentsInsertCall {
52125	c.urlParams_.Set("requestId", requestId)
52126	return c
52127}
52128
52129// Fields allows partial responses to be retrieved. See
52130// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52131// for more information.
52132func (c *InterconnectAttachmentsInsertCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsInsertCall {
52133	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52134	return c
52135}
52136
52137// Context sets the context to be used in this call's Do method. Any
52138// pending HTTP request will be aborted if the provided context is
52139// canceled.
52140func (c *InterconnectAttachmentsInsertCall) Context(ctx context.Context) *InterconnectAttachmentsInsertCall {
52141	c.ctx_ = ctx
52142	return c
52143}
52144
52145// Header returns an http.Header that can be modified by the caller to
52146// add HTTP headers to the request.
52147func (c *InterconnectAttachmentsInsertCall) Header() http.Header {
52148	if c.header_ == nil {
52149		c.header_ = make(http.Header)
52150	}
52151	return c.header_
52152}
52153
52154func (c *InterconnectAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) {
52155	reqHeaders := make(http.Header)
52156	for k, v := range c.header_ {
52157		reqHeaders[k] = v
52158	}
52159	reqHeaders.Set("User-Agent", c.s.userAgent())
52160	var body io.Reader = nil
52161	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
52162	if err != nil {
52163		return nil, err
52164	}
52165	reqHeaders.Set("Content-Type", "application/json")
52166	c.urlParams_.Set("alt", alt)
52167	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments")
52168	urls += "?" + c.urlParams_.Encode()
52169	req, _ := http.NewRequest("POST", urls, body)
52170	req.Header = reqHeaders
52171	googleapi.Expand(req.URL, map[string]string{
52172		"project": c.project,
52173		"region":  c.region,
52174	})
52175	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52176}
52177
52178// Do executes the "compute.interconnectAttachments.insert" call.
52179// Exactly one of *Operation or error will be non-nil. Any non-2xx
52180// status code is an error. Response headers are in either
52181// *Operation.ServerResponse.Header or (if a response was returned at
52182// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52183// to check whether the returned error was because
52184// http.StatusNotModified was returned.
52185func (c *InterconnectAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52186	gensupport.SetOptions(c.urlParams_, opts...)
52187	res, err := c.doRequest("json")
52188	if res != nil && res.StatusCode == http.StatusNotModified {
52189		if res.Body != nil {
52190			res.Body.Close()
52191		}
52192		return nil, &googleapi.Error{
52193			Code:   res.StatusCode,
52194			Header: res.Header,
52195		}
52196	}
52197	if err != nil {
52198		return nil, err
52199	}
52200	defer googleapi.CloseBody(res)
52201	if err := googleapi.CheckResponse(res); err != nil {
52202		return nil, err
52203	}
52204	ret := &Operation{
52205		ServerResponse: googleapi.ServerResponse{
52206			Header:         res.Header,
52207			HTTPStatusCode: res.StatusCode,
52208		},
52209	}
52210	target := &ret
52211	if err := gensupport.DecodeResponse(target, res); err != nil {
52212		return nil, err
52213	}
52214	return ret, nil
52215	// {
52216	//   "description": "Creates an InterconnectAttachment in the specified project using the data included in the request.",
52217	//   "httpMethod": "POST",
52218	//   "id": "compute.interconnectAttachments.insert",
52219	//   "parameterOrder": [
52220	//     "project",
52221	//     "region"
52222	//   ],
52223	//   "parameters": {
52224	//     "project": {
52225	//       "description": "Project ID for this request.",
52226	//       "location": "path",
52227	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52228	//       "required": true,
52229	//       "type": "string"
52230	//     },
52231	//     "region": {
52232	//       "description": "Name of the region for this request.",
52233	//       "location": "path",
52234	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52235	//       "required": true,
52236	//       "type": "string"
52237	//     },
52238	//     "requestId": {
52239	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52240	//       "location": "query",
52241	//       "type": "string"
52242	//     }
52243	//   },
52244	//   "path": "{project}/regions/{region}/interconnectAttachments",
52245	//   "request": {
52246	//     "$ref": "InterconnectAttachment"
52247	//   },
52248	//   "response": {
52249	//     "$ref": "Operation"
52250	//   },
52251	//   "scopes": [
52252	//     "https://www.googleapis.com/auth/cloud-platform",
52253	//     "https://www.googleapis.com/auth/compute"
52254	//   ]
52255	// }
52256
52257}
52258
52259// method id "compute.interconnectAttachments.list":
52260
52261type InterconnectAttachmentsListCall struct {
52262	s            *Service
52263	project      string
52264	region       string
52265	urlParams_   gensupport.URLParams
52266	ifNoneMatch_ string
52267	ctx_         context.Context
52268	header_      http.Header
52269}
52270
52271// List: Retrieves the list of interconnect attachments contained within
52272// the specified region.
52273func (r *InterconnectAttachmentsService) List(project string, region string) *InterconnectAttachmentsListCall {
52274	c := &InterconnectAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52275	c.project = project
52276	c.region = region
52277	return c
52278}
52279
52280// Filter sets the optional parameter "filter": A filter expression that
52281// filters resources listed in the response. The expression must specify
52282// the field name, a comparison operator, and the value that you want to
52283// use for filtering. The value must be a string, a number, or a
52284// boolean. The comparison operator must be either =, !=, >, or <.
52285//
52286// For example, if you are filtering Compute Engine instances, you can
52287// exclude instances named example-instance by specifying name !=
52288// example-instance.
52289//
52290// You can also filter nested fields. For example, you could specify
52291// scheduling.automaticRestart = false to include instances only if they
52292// are not scheduled for automatic restarts. You can use filtering on
52293// nested fields to filter based on resource labels.
52294//
52295// To filter on multiple expressions, provide each separate expression
52296// within parentheses. For example, (scheduling.automaticRestart = true)
52297// (cpuPlatform = "Intel Skylake"). By default, each expression is an
52298// AND expression. However, you can include AND and OR expressions
52299// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
52300// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
52301// true).
52302func (c *InterconnectAttachmentsListCall) Filter(filter string) *InterconnectAttachmentsListCall {
52303	c.urlParams_.Set("filter", filter)
52304	return c
52305}
52306
52307// MaxResults sets the optional parameter "maxResults": The maximum
52308// number of results per page that should be returned. If the number of
52309// available results is larger than maxResults, Compute Engine returns a
52310// nextPageToken that can be used to get the next page of results in
52311// subsequent list requests. Acceptable values are 0 to 500, inclusive.
52312// (Default: 500)
52313func (c *InterconnectAttachmentsListCall) MaxResults(maxResults int64) *InterconnectAttachmentsListCall {
52314	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
52315	return c
52316}
52317
52318// OrderBy sets the optional parameter "orderBy": Sorts list results by
52319// a certain order. By default, results are returned in alphanumerical
52320// order based on the resource name.
52321//
52322// You can also sort results in descending order based on the creation
52323// timestamp using orderBy="creationTimestamp desc". This sorts results
52324// based on the creationTimestamp field in reverse chronological order
52325// (newest result first). Use this to sort resources like operations so
52326// that the newest operation is returned first.
52327//
52328// Currently, only sorting by name or creationTimestamp desc is
52329// supported.
52330func (c *InterconnectAttachmentsListCall) OrderBy(orderBy string) *InterconnectAttachmentsListCall {
52331	c.urlParams_.Set("orderBy", orderBy)
52332	return c
52333}
52334
52335// PageToken sets the optional parameter "pageToken": Specifies a page
52336// token to use. Set pageToken to the nextPageToken returned by a
52337// previous list request to get the next page of results.
52338func (c *InterconnectAttachmentsListCall) PageToken(pageToken string) *InterconnectAttachmentsListCall {
52339	c.urlParams_.Set("pageToken", pageToken)
52340	return c
52341}
52342
52343// Fields allows partial responses to be retrieved. See
52344// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52345// for more information.
52346func (c *InterconnectAttachmentsListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsListCall {
52347	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52348	return c
52349}
52350
52351// IfNoneMatch sets the optional parameter which makes the operation
52352// fail if the object's ETag matches the given value. This is useful for
52353// getting updates only after the object has changed since the last
52354// request. Use googleapi.IsNotModified to check whether the response
52355// error from Do is the result of In-None-Match.
52356func (c *InterconnectAttachmentsListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsListCall {
52357	c.ifNoneMatch_ = entityTag
52358	return c
52359}
52360
52361// Context sets the context to be used in this call's Do method. Any
52362// pending HTTP request will be aborted if the provided context is
52363// canceled.
52364func (c *InterconnectAttachmentsListCall) Context(ctx context.Context) *InterconnectAttachmentsListCall {
52365	c.ctx_ = ctx
52366	return c
52367}
52368
52369// Header returns an http.Header that can be modified by the caller to
52370// add HTTP headers to the request.
52371func (c *InterconnectAttachmentsListCall) Header() http.Header {
52372	if c.header_ == nil {
52373		c.header_ = make(http.Header)
52374	}
52375	return c.header_
52376}
52377
52378func (c *InterconnectAttachmentsListCall) doRequest(alt string) (*http.Response, error) {
52379	reqHeaders := make(http.Header)
52380	for k, v := range c.header_ {
52381		reqHeaders[k] = v
52382	}
52383	reqHeaders.Set("User-Agent", c.s.userAgent())
52384	if c.ifNoneMatch_ != "" {
52385		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52386	}
52387	var body io.Reader = nil
52388	c.urlParams_.Set("alt", alt)
52389	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments")
52390	urls += "?" + c.urlParams_.Encode()
52391	req, _ := http.NewRequest("GET", urls, body)
52392	req.Header = reqHeaders
52393	googleapi.Expand(req.URL, map[string]string{
52394		"project": c.project,
52395		"region":  c.region,
52396	})
52397	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52398}
52399
52400// Do executes the "compute.interconnectAttachments.list" call.
52401// Exactly one of *InterconnectAttachmentList or error will be non-nil.
52402// Any non-2xx status code is an error. Response headers are in either
52403// *InterconnectAttachmentList.ServerResponse.Header or (if a response
52404// was returned at all) in error.(*googleapi.Error).Header. Use
52405// googleapi.IsNotModified to check whether the returned error was
52406// because http.StatusNotModified was returned.
52407func (c *InterconnectAttachmentsListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentList, error) {
52408	gensupport.SetOptions(c.urlParams_, opts...)
52409	res, err := c.doRequest("json")
52410	if res != nil && res.StatusCode == http.StatusNotModified {
52411		if res.Body != nil {
52412			res.Body.Close()
52413		}
52414		return nil, &googleapi.Error{
52415			Code:   res.StatusCode,
52416			Header: res.Header,
52417		}
52418	}
52419	if err != nil {
52420		return nil, err
52421	}
52422	defer googleapi.CloseBody(res)
52423	if err := googleapi.CheckResponse(res); err != nil {
52424		return nil, err
52425	}
52426	ret := &InterconnectAttachmentList{
52427		ServerResponse: googleapi.ServerResponse{
52428			Header:         res.Header,
52429			HTTPStatusCode: res.StatusCode,
52430		},
52431	}
52432	target := &ret
52433	if err := gensupport.DecodeResponse(target, res); err != nil {
52434		return nil, err
52435	}
52436	return ret, nil
52437	// {
52438	//   "description": "Retrieves the list of interconnect attachments contained within the specified region.",
52439	//   "httpMethod": "GET",
52440	//   "id": "compute.interconnectAttachments.list",
52441	//   "parameterOrder": [
52442	//     "project",
52443	//     "region"
52444	//   ],
52445	//   "parameters": {
52446	//     "filter": {
52447	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
52448	//       "location": "query",
52449	//       "type": "string"
52450	//     },
52451	//     "maxResults": {
52452	//       "default": "500",
52453	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
52454	//       "format": "uint32",
52455	//       "location": "query",
52456	//       "minimum": "0",
52457	//       "type": "integer"
52458	//     },
52459	//     "orderBy": {
52460	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
52461	//       "location": "query",
52462	//       "type": "string"
52463	//     },
52464	//     "pageToken": {
52465	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
52466	//       "location": "query",
52467	//       "type": "string"
52468	//     },
52469	//     "project": {
52470	//       "description": "Project ID for this request.",
52471	//       "location": "path",
52472	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52473	//       "required": true,
52474	//       "type": "string"
52475	//     },
52476	//     "region": {
52477	//       "description": "Name of the region for this request.",
52478	//       "location": "path",
52479	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52480	//       "required": true,
52481	//       "type": "string"
52482	//     }
52483	//   },
52484	//   "path": "{project}/regions/{region}/interconnectAttachments",
52485	//   "response": {
52486	//     "$ref": "InterconnectAttachmentList"
52487	//   },
52488	//   "scopes": [
52489	//     "https://www.googleapis.com/auth/cloud-platform",
52490	//     "https://www.googleapis.com/auth/compute",
52491	//     "https://www.googleapis.com/auth/compute.readonly"
52492	//   ]
52493	// }
52494
52495}
52496
52497// Pages invokes f for each page of results.
52498// A non-nil error returned from f will halt the iteration.
52499// The provided context supersedes any context provided to the Context method.
52500func (c *InterconnectAttachmentsListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentList) error) error {
52501	c.ctx_ = ctx
52502	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
52503	for {
52504		x, err := c.Do()
52505		if err != nil {
52506			return err
52507		}
52508		if err := f(x); err != nil {
52509			return err
52510		}
52511		if x.NextPageToken == "" {
52512			return nil
52513		}
52514		c.PageToken(x.NextPageToken)
52515	}
52516}
52517
52518// method id "compute.interconnectLocations.get":
52519
52520type InterconnectLocationsGetCall struct {
52521	s                    *Service
52522	project              string
52523	interconnectLocation string
52524	urlParams_           gensupport.URLParams
52525	ifNoneMatch_         string
52526	ctx_                 context.Context
52527	header_              http.Header
52528}
52529
52530// Get: Returns the details for the specified interconnect location.
52531// Gets a list of available interconnect locations by making a list()
52532// request.
52533func (r *InterconnectLocationsService) Get(project string, interconnectLocation string) *InterconnectLocationsGetCall {
52534	c := &InterconnectLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52535	c.project = project
52536	c.interconnectLocation = interconnectLocation
52537	return c
52538}
52539
52540// Fields allows partial responses to be retrieved. See
52541// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52542// for more information.
52543func (c *InterconnectLocationsGetCall) Fields(s ...googleapi.Field) *InterconnectLocationsGetCall {
52544	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52545	return c
52546}
52547
52548// IfNoneMatch sets the optional parameter which makes the operation
52549// fail if the object's ETag matches the given value. This is useful for
52550// getting updates only after the object has changed since the last
52551// request. Use googleapi.IsNotModified to check whether the response
52552// error from Do is the result of In-None-Match.
52553func (c *InterconnectLocationsGetCall) IfNoneMatch(entityTag string) *InterconnectLocationsGetCall {
52554	c.ifNoneMatch_ = entityTag
52555	return c
52556}
52557
52558// Context sets the context to be used in this call's Do method. Any
52559// pending HTTP request will be aborted if the provided context is
52560// canceled.
52561func (c *InterconnectLocationsGetCall) Context(ctx context.Context) *InterconnectLocationsGetCall {
52562	c.ctx_ = ctx
52563	return c
52564}
52565
52566// Header returns an http.Header that can be modified by the caller to
52567// add HTTP headers to the request.
52568func (c *InterconnectLocationsGetCall) Header() http.Header {
52569	if c.header_ == nil {
52570		c.header_ = make(http.Header)
52571	}
52572	return c.header_
52573}
52574
52575func (c *InterconnectLocationsGetCall) doRequest(alt string) (*http.Response, error) {
52576	reqHeaders := make(http.Header)
52577	for k, v := range c.header_ {
52578		reqHeaders[k] = v
52579	}
52580	reqHeaders.Set("User-Agent", c.s.userAgent())
52581	if c.ifNoneMatch_ != "" {
52582		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52583	}
52584	var body io.Reader = nil
52585	c.urlParams_.Set("alt", alt)
52586	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations/{interconnectLocation}")
52587	urls += "?" + c.urlParams_.Encode()
52588	req, _ := http.NewRequest("GET", urls, body)
52589	req.Header = reqHeaders
52590	googleapi.Expand(req.URL, map[string]string{
52591		"project":              c.project,
52592		"interconnectLocation": c.interconnectLocation,
52593	})
52594	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52595}
52596
52597// Do executes the "compute.interconnectLocations.get" call.
52598// Exactly one of *InterconnectLocation or error will be non-nil. Any
52599// non-2xx status code is an error. Response headers are in either
52600// *InterconnectLocation.ServerResponse.Header or (if a response was
52601// returned at all) in error.(*googleapi.Error).Header. Use
52602// googleapi.IsNotModified to check whether the returned error was
52603// because http.StatusNotModified was returned.
52604func (c *InterconnectLocationsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectLocation, error) {
52605	gensupport.SetOptions(c.urlParams_, opts...)
52606	res, err := c.doRequest("json")
52607	if res != nil && res.StatusCode == http.StatusNotModified {
52608		if res.Body != nil {
52609			res.Body.Close()
52610		}
52611		return nil, &googleapi.Error{
52612			Code:   res.StatusCode,
52613			Header: res.Header,
52614		}
52615	}
52616	if err != nil {
52617		return nil, err
52618	}
52619	defer googleapi.CloseBody(res)
52620	if err := googleapi.CheckResponse(res); err != nil {
52621		return nil, err
52622	}
52623	ret := &InterconnectLocation{
52624		ServerResponse: googleapi.ServerResponse{
52625			Header:         res.Header,
52626			HTTPStatusCode: res.StatusCode,
52627		},
52628	}
52629	target := &ret
52630	if err := gensupport.DecodeResponse(target, res); err != nil {
52631		return nil, err
52632	}
52633	return ret, nil
52634	// {
52635	//   "description": "Returns the details for the specified interconnect location. Gets a list of available interconnect locations by making a list() request.",
52636	//   "httpMethod": "GET",
52637	//   "id": "compute.interconnectLocations.get",
52638	//   "parameterOrder": [
52639	//     "project",
52640	//     "interconnectLocation"
52641	//   ],
52642	//   "parameters": {
52643	//     "interconnectLocation": {
52644	//       "description": "Name of the interconnect location to return.",
52645	//       "location": "path",
52646	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52647	//       "required": true,
52648	//       "type": "string"
52649	//     },
52650	//     "project": {
52651	//       "description": "Project ID for this request.",
52652	//       "location": "path",
52653	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52654	//       "required": true,
52655	//       "type": "string"
52656	//     }
52657	//   },
52658	//   "path": "{project}/global/interconnectLocations/{interconnectLocation}",
52659	//   "response": {
52660	//     "$ref": "InterconnectLocation"
52661	//   },
52662	//   "scopes": [
52663	//     "https://www.googleapis.com/auth/cloud-platform",
52664	//     "https://www.googleapis.com/auth/compute",
52665	//     "https://www.googleapis.com/auth/compute.readonly"
52666	//   ]
52667	// }
52668
52669}
52670
52671// method id "compute.interconnectLocations.list":
52672
52673type InterconnectLocationsListCall struct {
52674	s            *Service
52675	project      string
52676	urlParams_   gensupport.URLParams
52677	ifNoneMatch_ string
52678	ctx_         context.Context
52679	header_      http.Header
52680}
52681
52682// List: Retrieves the list of interconnect locations available to the
52683// specified project.
52684func (r *InterconnectLocationsService) List(project string) *InterconnectLocationsListCall {
52685	c := &InterconnectLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52686	c.project = project
52687	return c
52688}
52689
52690// Filter sets the optional parameter "filter": A filter expression that
52691// filters resources listed in the response. The expression must specify
52692// the field name, a comparison operator, and the value that you want to
52693// use for filtering. The value must be a string, a number, or a
52694// boolean. The comparison operator must be either =, !=, >, or <.
52695//
52696// For example, if you are filtering Compute Engine instances, you can
52697// exclude instances named example-instance by specifying name !=
52698// example-instance.
52699//
52700// You can also filter nested fields. For example, you could specify
52701// scheduling.automaticRestart = false to include instances only if they
52702// are not scheduled for automatic restarts. You can use filtering on
52703// nested fields to filter based on resource labels.
52704//
52705// To filter on multiple expressions, provide each separate expression
52706// within parentheses. For example, (scheduling.automaticRestart = true)
52707// (cpuPlatform = "Intel Skylake"). By default, each expression is an
52708// AND expression. However, you can include AND and OR expressions
52709// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
52710// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
52711// true).
52712func (c *InterconnectLocationsListCall) Filter(filter string) *InterconnectLocationsListCall {
52713	c.urlParams_.Set("filter", filter)
52714	return c
52715}
52716
52717// MaxResults sets the optional parameter "maxResults": The maximum
52718// number of results per page that should be returned. If the number of
52719// available results is larger than maxResults, Compute Engine returns a
52720// nextPageToken that can be used to get the next page of results in
52721// subsequent list requests. Acceptable values are 0 to 500, inclusive.
52722// (Default: 500)
52723func (c *InterconnectLocationsListCall) MaxResults(maxResults int64) *InterconnectLocationsListCall {
52724	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
52725	return c
52726}
52727
52728// OrderBy sets the optional parameter "orderBy": Sorts list results by
52729// a certain order. By default, results are returned in alphanumerical
52730// order based on the resource name.
52731//
52732// You can also sort results in descending order based on the creation
52733// timestamp using orderBy="creationTimestamp desc". This sorts results
52734// based on the creationTimestamp field in reverse chronological order
52735// (newest result first). Use this to sort resources like operations so
52736// that the newest operation is returned first.
52737//
52738// Currently, only sorting by name or creationTimestamp desc is
52739// supported.
52740func (c *InterconnectLocationsListCall) OrderBy(orderBy string) *InterconnectLocationsListCall {
52741	c.urlParams_.Set("orderBy", orderBy)
52742	return c
52743}
52744
52745// PageToken sets the optional parameter "pageToken": Specifies a page
52746// token to use. Set pageToken to the nextPageToken returned by a
52747// previous list request to get the next page of results.
52748func (c *InterconnectLocationsListCall) PageToken(pageToken string) *InterconnectLocationsListCall {
52749	c.urlParams_.Set("pageToken", pageToken)
52750	return c
52751}
52752
52753// Fields allows partial responses to be retrieved. See
52754// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52755// for more information.
52756func (c *InterconnectLocationsListCall) Fields(s ...googleapi.Field) *InterconnectLocationsListCall {
52757	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52758	return c
52759}
52760
52761// IfNoneMatch sets the optional parameter which makes the operation
52762// fail if the object's ETag matches the given value. This is useful for
52763// getting updates only after the object has changed since the last
52764// request. Use googleapi.IsNotModified to check whether the response
52765// error from Do is the result of In-None-Match.
52766func (c *InterconnectLocationsListCall) IfNoneMatch(entityTag string) *InterconnectLocationsListCall {
52767	c.ifNoneMatch_ = entityTag
52768	return c
52769}
52770
52771// Context sets the context to be used in this call's Do method. Any
52772// pending HTTP request will be aborted if the provided context is
52773// canceled.
52774func (c *InterconnectLocationsListCall) Context(ctx context.Context) *InterconnectLocationsListCall {
52775	c.ctx_ = ctx
52776	return c
52777}
52778
52779// Header returns an http.Header that can be modified by the caller to
52780// add HTTP headers to the request.
52781func (c *InterconnectLocationsListCall) Header() http.Header {
52782	if c.header_ == nil {
52783		c.header_ = make(http.Header)
52784	}
52785	return c.header_
52786}
52787
52788func (c *InterconnectLocationsListCall) doRequest(alt string) (*http.Response, error) {
52789	reqHeaders := make(http.Header)
52790	for k, v := range c.header_ {
52791		reqHeaders[k] = v
52792	}
52793	reqHeaders.Set("User-Agent", c.s.userAgent())
52794	if c.ifNoneMatch_ != "" {
52795		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52796	}
52797	var body io.Reader = nil
52798	c.urlParams_.Set("alt", alt)
52799	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations")
52800	urls += "?" + c.urlParams_.Encode()
52801	req, _ := http.NewRequest("GET", urls, body)
52802	req.Header = reqHeaders
52803	googleapi.Expand(req.URL, map[string]string{
52804		"project": c.project,
52805	})
52806	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52807}
52808
52809// Do executes the "compute.interconnectLocations.list" call.
52810// Exactly one of *InterconnectLocationList or error will be non-nil.
52811// Any non-2xx status code is an error. Response headers are in either
52812// *InterconnectLocationList.ServerResponse.Header or (if a response was
52813// returned at all) in error.(*googleapi.Error).Header. Use
52814// googleapi.IsNotModified to check whether the returned error was
52815// because http.StatusNotModified was returned.
52816func (c *InterconnectLocationsListCall) Do(opts ...googleapi.CallOption) (*InterconnectLocationList, error) {
52817	gensupport.SetOptions(c.urlParams_, opts...)
52818	res, err := c.doRequest("json")
52819	if res != nil && res.StatusCode == http.StatusNotModified {
52820		if res.Body != nil {
52821			res.Body.Close()
52822		}
52823		return nil, &googleapi.Error{
52824			Code:   res.StatusCode,
52825			Header: res.Header,
52826		}
52827	}
52828	if err != nil {
52829		return nil, err
52830	}
52831	defer googleapi.CloseBody(res)
52832	if err := googleapi.CheckResponse(res); err != nil {
52833		return nil, err
52834	}
52835	ret := &InterconnectLocationList{
52836		ServerResponse: googleapi.ServerResponse{
52837			Header:         res.Header,
52838			HTTPStatusCode: res.StatusCode,
52839		},
52840	}
52841	target := &ret
52842	if err := gensupport.DecodeResponse(target, res); err != nil {
52843		return nil, err
52844	}
52845	return ret, nil
52846	// {
52847	//   "description": "Retrieves the list of interconnect locations available to the specified project.",
52848	//   "httpMethod": "GET",
52849	//   "id": "compute.interconnectLocations.list",
52850	//   "parameterOrder": [
52851	//     "project"
52852	//   ],
52853	//   "parameters": {
52854	//     "filter": {
52855	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
52856	//       "location": "query",
52857	//       "type": "string"
52858	//     },
52859	//     "maxResults": {
52860	//       "default": "500",
52861	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
52862	//       "format": "uint32",
52863	//       "location": "query",
52864	//       "minimum": "0",
52865	//       "type": "integer"
52866	//     },
52867	//     "orderBy": {
52868	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
52869	//       "location": "query",
52870	//       "type": "string"
52871	//     },
52872	//     "pageToken": {
52873	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
52874	//       "location": "query",
52875	//       "type": "string"
52876	//     },
52877	//     "project": {
52878	//       "description": "Project ID for this request.",
52879	//       "location": "path",
52880	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52881	//       "required": true,
52882	//       "type": "string"
52883	//     }
52884	//   },
52885	//   "path": "{project}/global/interconnectLocations",
52886	//   "response": {
52887	//     "$ref": "InterconnectLocationList"
52888	//   },
52889	//   "scopes": [
52890	//     "https://www.googleapis.com/auth/cloud-platform",
52891	//     "https://www.googleapis.com/auth/compute",
52892	//     "https://www.googleapis.com/auth/compute.readonly"
52893	//   ]
52894	// }
52895
52896}
52897
52898// Pages invokes f for each page of results.
52899// A non-nil error returned from f will halt the iteration.
52900// The provided context supersedes any context provided to the Context method.
52901func (c *InterconnectLocationsListCall) Pages(ctx context.Context, f func(*InterconnectLocationList) error) error {
52902	c.ctx_ = ctx
52903	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
52904	for {
52905		x, err := c.Do()
52906		if err != nil {
52907			return err
52908		}
52909		if err := f(x); err != nil {
52910			return err
52911		}
52912		if x.NextPageToken == "" {
52913			return nil
52914		}
52915		c.PageToken(x.NextPageToken)
52916	}
52917}
52918
52919// method id "compute.interconnects.delete":
52920
52921type InterconnectsDeleteCall struct {
52922	s            *Service
52923	project      string
52924	interconnect string
52925	urlParams_   gensupport.URLParams
52926	ctx_         context.Context
52927	header_      http.Header
52928}
52929
52930// Delete: Deletes the specified interconnect.
52931func (r *InterconnectsService) Delete(project string, interconnect string) *InterconnectsDeleteCall {
52932	c := &InterconnectsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52933	c.project = project
52934	c.interconnect = interconnect
52935	return c
52936}
52937
52938// RequestId sets the optional parameter "requestId": An optional
52939// request ID to identify requests. Specify a unique request ID so that
52940// if you must retry your request, the server will know to ignore the
52941// request if it has already been completed.
52942//
52943// For example, consider a situation where you make an initial request
52944// and the request times out. If you make the request again with the
52945// same request ID, the server can check if original operation with the
52946// same request ID was received, and if so, will ignore the second
52947// request. This prevents clients from accidentally creating duplicate
52948// commitments.
52949//
52950// The request ID must be a valid UUID with the exception that zero UUID
52951// is not supported (00000000-0000-0000-0000-000000000000).
52952func (c *InterconnectsDeleteCall) RequestId(requestId string) *InterconnectsDeleteCall {
52953	c.urlParams_.Set("requestId", requestId)
52954	return c
52955}
52956
52957// Fields allows partial responses to be retrieved. See
52958// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52959// for more information.
52960func (c *InterconnectsDeleteCall) Fields(s ...googleapi.Field) *InterconnectsDeleteCall {
52961	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52962	return c
52963}
52964
52965// Context sets the context to be used in this call's Do method. Any
52966// pending HTTP request will be aborted if the provided context is
52967// canceled.
52968func (c *InterconnectsDeleteCall) Context(ctx context.Context) *InterconnectsDeleteCall {
52969	c.ctx_ = ctx
52970	return c
52971}
52972
52973// Header returns an http.Header that can be modified by the caller to
52974// add HTTP headers to the request.
52975func (c *InterconnectsDeleteCall) Header() http.Header {
52976	if c.header_ == nil {
52977		c.header_ = make(http.Header)
52978	}
52979	return c.header_
52980}
52981
52982func (c *InterconnectsDeleteCall) doRequest(alt string) (*http.Response, error) {
52983	reqHeaders := make(http.Header)
52984	for k, v := range c.header_ {
52985		reqHeaders[k] = v
52986	}
52987	reqHeaders.Set("User-Agent", c.s.userAgent())
52988	var body io.Reader = nil
52989	c.urlParams_.Set("alt", alt)
52990	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
52991	urls += "?" + c.urlParams_.Encode()
52992	req, _ := http.NewRequest("DELETE", urls, body)
52993	req.Header = reqHeaders
52994	googleapi.Expand(req.URL, map[string]string{
52995		"project":      c.project,
52996		"interconnect": c.interconnect,
52997	})
52998	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52999}
53000
53001// Do executes the "compute.interconnects.delete" call.
53002// Exactly one of *Operation or error will be non-nil. Any non-2xx
53003// status code is an error. Response headers are in either
53004// *Operation.ServerResponse.Header or (if a response was returned at
53005// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53006// to check whether the returned error was because
53007// http.StatusNotModified was returned.
53008func (c *InterconnectsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53009	gensupport.SetOptions(c.urlParams_, opts...)
53010	res, err := c.doRequest("json")
53011	if res != nil && res.StatusCode == http.StatusNotModified {
53012		if res.Body != nil {
53013			res.Body.Close()
53014		}
53015		return nil, &googleapi.Error{
53016			Code:   res.StatusCode,
53017			Header: res.Header,
53018		}
53019	}
53020	if err != nil {
53021		return nil, err
53022	}
53023	defer googleapi.CloseBody(res)
53024	if err := googleapi.CheckResponse(res); err != nil {
53025		return nil, err
53026	}
53027	ret := &Operation{
53028		ServerResponse: googleapi.ServerResponse{
53029			Header:         res.Header,
53030			HTTPStatusCode: res.StatusCode,
53031		},
53032	}
53033	target := &ret
53034	if err := gensupport.DecodeResponse(target, res); err != nil {
53035		return nil, err
53036	}
53037	return ret, nil
53038	// {
53039	//   "description": "Deletes the specified interconnect.",
53040	//   "httpMethod": "DELETE",
53041	//   "id": "compute.interconnects.delete",
53042	//   "parameterOrder": [
53043	//     "project",
53044	//     "interconnect"
53045	//   ],
53046	//   "parameters": {
53047	//     "interconnect": {
53048	//       "description": "Name of the interconnect to delete.",
53049	//       "location": "path",
53050	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53051	//       "required": true,
53052	//       "type": "string"
53053	//     },
53054	//     "project": {
53055	//       "description": "Project ID for this request.",
53056	//       "location": "path",
53057	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53058	//       "required": true,
53059	//       "type": "string"
53060	//     },
53061	//     "requestId": {
53062	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53063	//       "location": "query",
53064	//       "type": "string"
53065	//     }
53066	//   },
53067	//   "path": "{project}/global/interconnects/{interconnect}",
53068	//   "response": {
53069	//     "$ref": "Operation"
53070	//   },
53071	//   "scopes": [
53072	//     "https://www.googleapis.com/auth/cloud-platform",
53073	//     "https://www.googleapis.com/auth/compute"
53074	//   ]
53075	// }
53076
53077}
53078
53079// method id "compute.interconnects.get":
53080
53081type InterconnectsGetCall struct {
53082	s            *Service
53083	project      string
53084	interconnect string
53085	urlParams_   gensupport.URLParams
53086	ifNoneMatch_ string
53087	ctx_         context.Context
53088	header_      http.Header
53089}
53090
53091// Get: Returns the specified interconnect. Gets a list of available
53092// interconnects by making a list() request.
53093func (r *InterconnectsService) Get(project string, interconnect string) *InterconnectsGetCall {
53094	c := &InterconnectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53095	c.project = project
53096	c.interconnect = interconnect
53097	return c
53098}
53099
53100// Fields allows partial responses to be retrieved. See
53101// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53102// for more information.
53103func (c *InterconnectsGetCall) Fields(s ...googleapi.Field) *InterconnectsGetCall {
53104	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53105	return c
53106}
53107
53108// IfNoneMatch sets the optional parameter which makes the operation
53109// fail if the object's ETag matches the given value. This is useful for
53110// getting updates only after the object has changed since the last
53111// request. Use googleapi.IsNotModified to check whether the response
53112// error from Do is the result of In-None-Match.
53113func (c *InterconnectsGetCall) IfNoneMatch(entityTag string) *InterconnectsGetCall {
53114	c.ifNoneMatch_ = entityTag
53115	return c
53116}
53117
53118// Context sets the context to be used in this call's Do method. Any
53119// pending HTTP request will be aborted if the provided context is
53120// canceled.
53121func (c *InterconnectsGetCall) Context(ctx context.Context) *InterconnectsGetCall {
53122	c.ctx_ = ctx
53123	return c
53124}
53125
53126// Header returns an http.Header that can be modified by the caller to
53127// add HTTP headers to the request.
53128func (c *InterconnectsGetCall) Header() http.Header {
53129	if c.header_ == nil {
53130		c.header_ = make(http.Header)
53131	}
53132	return c.header_
53133}
53134
53135func (c *InterconnectsGetCall) doRequest(alt string) (*http.Response, error) {
53136	reqHeaders := make(http.Header)
53137	for k, v := range c.header_ {
53138		reqHeaders[k] = v
53139	}
53140	reqHeaders.Set("User-Agent", c.s.userAgent())
53141	if c.ifNoneMatch_ != "" {
53142		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53143	}
53144	var body io.Reader = nil
53145	c.urlParams_.Set("alt", alt)
53146	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
53147	urls += "?" + c.urlParams_.Encode()
53148	req, _ := http.NewRequest("GET", urls, body)
53149	req.Header = reqHeaders
53150	googleapi.Expand(req.URL, map[string]string{
53151		"project":      c.project,
53152		"interconnect": c.interconnect,
53153	})
53154	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53155}
53156
53157// Do executes the "compute.interconnects.get" call.
53158// Exactly one of *Interconnect or error will be non-nil. Any non-2xx
53159// status code is an error. Response headers are in either
53160// *Interconnect.ServerResponse.Header or (if a response was returned at
53161// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53162// to check whether the returned error was because
53163// http.StatusNotModified was returned.
53164func (c *InterconnectsGetCall) Do(opts ...googleapi.CallOption) (*Interconnect, error) {
53165	gensupport.SetOptions(c.urlParams_, opts...)
53166	res, err := c.doRequest("json")
53167	if res != nil && res.StatusCode == http.StatusNotModified {
53168		if res.Body != nil {
53169			res.Body.Close()
53170		}
53171		return nil, &googleapi.Error{
53172			Code:   res.StatusCode,
53173			Header: res.Header,
53174		}
53175	}
53176	if err != nil {
53177		return nil, err
53178	}
53179	defer googleapi.CloseBody(res)
53180	if err := googleapi.CheckResponse(res); err != nil {
53181		return nil, err
53182	}
53183	ret := &Interconnect{
53184		ServerResponse: googleapi.ServerResponse{
53185			Header:         res.Header,
53186			HTTPStatusCode: res.StatusCode,
53187		},
53188	}
53189	target := &ret
53190	if err := gensupport.DecodeResponse(target, res); err != nil {
53191		return nil, err
53192	}
53193	return ret, nil
53194	// {
53195	//   "description": "Returns the specified interconnect. Gets a list of available interconnects by making a list() request.",
53196	//   "httpMethod": "GET",
53197	//   "id": "compute.interconnects.get",
53198	//   "parameterOrder": [
53199	//     "project",
53200	//     "interconnect"
53201	//   ],
53202	//   "parameters": {
53203	//     "interconnect": {
53204	//       "description": "Name of the interconnect to return.",
53205	//       "location": "path",
53206	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53207	//       "required": true,
53208	//       "type": "string"
53209	//     },
53210	//     "project": {
53211	//       "description": "Project ID for this request.",
53212	//       "location": "path",
53213	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53214	//       "required": true,
53215	//       "type": "string"
53216	//     }
53217	//   },
53218	//   "path": "{project}/global/interconnects/{interconnect}",
53219	//   "response": {
53220	//     "$ref": "Interconnect"
53221	//   },
53222	//   "scopes": [
53223	//     "https://www.googleapis.com/auth/cloud-platform",
53224	//     "https://www.googleapis.com/auth/compute",
53225	//     "https://www.googleapis.com/auth/compute.readonly"
53226	//   ]
53227	// }
53228
53229}
53230
53231// method id "compute.interconnects.insert":
53232
53233type InterconnectsInsertCall struct {
53234	s            *Service
53235	project      string
53236	interconnect *Interconnect
53237	urlParams_   gensupport.URLParams
53238	ctx_         context.Context
53239	header_      http.Header
53240}
53241
53242// Insert: Creates a Interconnect in the specified project using the
53243// data included in the request.
53244func (r *InterconnectsService) Insert(project string, interconnect *Interconnect) *InterconnectsInsertCall {
53245	c := &InterconnectsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53246	c.project = project
53247	c.interconnect = interconnect
53248	return c
53249}
53250
53251// RequestId sets the optional parameter "requestId": An optional
53252// request ID to identify requests. Specify a unique request ID so that
53253// if you must retry your request, the server will know to ignore the
53254// request if it has already been completed.
53255//
53256// For example, consider a situation where you make an initial request
53257// and the request times out. If you make the request again with the
53258// same request ID, the server can check if original operation with the
53259// same request ID was received, and if so, will ignore the second
53260// request. This prevents clients from accidentally creating duplicate
53261// commitments.
53262//
53263// The request ID must be a valid UUID with the exception that zero UUID
53264// is not supported (00000000-0000-0000-0000-000000000000).
53265func (c *InterconnectsInsertCall) RequestId(requestId string) *InterconnectsInsertCall {
53266	c.urlParams_.Set("requestId", requestId)
53267	return c
53268}
53269
53270// Fields allows partial responses to be retrieved. See
53271// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53272// for more information.
53273func (c *InterconnectsInsertCall) Fields(s ...googleapi.Field) *InterconnectsInsertCall {
53274	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53275	return c
53276}
53277
53278// Context sets the context to be used in this call's Do method. Any
53279// pending HTTP request will be aborted if the provided context is
53280// canceled.
53281func (c *InterconnectsInsertCall) Context(ctx context.Context) *InterconnectsInsertCall {
53282	c.ctx_ = ctx
53283	return c
53284}
53285
53286// Header returns an http.Header that can be modified by the caller to
53287// add HTTP headers to the request.
53288func (c *InterconnectsInsertCall) Header() http.Header {
53289	if c.header_ == nil {
53290		c.header_ = make(http.Header)
53291	}
53292	return c.header_
53293}
53294
53295func (c *InterconnectsInsertCall) doRequest(alt string) (*http.Response, error) {
53296	reqHeaders := make(http.Header)
53297	for k, v := range c.header_ {
53298		reqHeaders[k] = v
53299	}
53300	reqHeaders.Set("User-Agent", c.s.userAgent())
53301	var body io.Reader = nil
53302	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect)
53303	if err != nil {
53304		return nil, err
53305	}
53306	reqHeaders.Set("Content-Type", "application/json")
53307	c.urlParams_.Set("alt", alt)
53308	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects")
53309	urls += "?" + c.urlParams_.Encode()
53310	req, _ := http.NewRequest("POST", urls, body)
53311	req.Header = reqHeaders
53312	googleapi.Expand(req.URL, map[string]string{
53313		"project": c.project,
53314	})
53315	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53316}
53317
53318// Do executes the "compute.interconnects.insert" call.
53319// Exactly one of *Operation or error will be non-nil. Any non-2xx
53320// status code is an error. Response headers are in either
53321// *Operation.ServerResponse.Header or (if a response was returned at
53322// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53323// to check whether the returned error was because
53324// http.StatusNotModified was returned.
53325func (c *InterconnectsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53326	gensupport.SetOptions(c.urlParams_, opts...)
53327	res, err := c.doRequest("json")
53328	if res != nil && res.StatusCode == http.StatusNotModified {
53329		if res.Body != nil {
53330			res.Body.Close()
53331		}
53332		return nil, &googleapi.Error{
53333			Code:   res.StatusCode,
53334			Header: res.Header,
53335		}
53336	}
53337	if err != nil {
53338		return nil, err
53339	}
53340	defer googleapi.CloseBody(res)
53341	if err := googleapi.CheckResponse(res); err != nil {
53342		return nil, err
53343	}
53344	ret := &Operation{
53345		ServerResponse: googleapi.ServerResponse{
53346			Header:         res.Header,
53347			HTTPStatusCode: res.StatusCode,
53348		},
53349	}
53350	target := &ret
53351	if err := gensupport.DecodeResponse(target, res); err != nil {
53352		return nil, err
53353	}
53354	return ret, nil
53355	// {
53356	//   "description": "Creates a Interconnect in the specified project using the data included in the request.",
53357	//   "httpMethod": "POST",
53358	//   "id": "compute.interconnects.insert",
53359	//   "parameterOrder": [
53360	//     "project"
53361	//   ],
53362	//   "parameters": {
53363	//     "project": {
53364	//       "description": "Project ID for this request.",
53365	//       "location": "path",
53366	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53367	//       "required": true,
53368	//       "type": "string"
53369	//     },
53370	//     "requestId": {
53371	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53372	//       "location": "query",
53373	//       "type": "string"
53374	//     }
53375	//   },
53376	//   "path": "{project}/global/interconnects",
53377	//   "request": {
53378	//     "$ref": "Interconnect"
53379	//   },
53380	//   "response": {
53381	//     "$ref": "Operation"
53382	//   },
53383	//   "scopes": [
53384	//     "https://www.googleapis.com/auth/cloud-platform",
53385	//     "https://www.googleapis.com/auth/compute"
53386	//   ]
53387	// }
53388
53389}
53390
53391// method id "compute.interconnects.list":
53392
53393type InterconnectsListCall struct {
53394	s            *Service
53395	project      string
53396	urlParams_   gensupport.URLParams
53397	ifNoneMatch_ string
53398	ctx_         context.Context
53399	header_      http.Header
53400}
53401
53402// List: Retrieves the list of interconnect available to the specified
53403// project.
53404func (r *InterconnectsService) List(project string) *InterconnectsListCall {
53405	c := &InterconnectsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53406	c.project = project
53407	return c
53408}
53409
53410// Filter sets the optional parameter "filter": A filter expression that
53411// filters resources listed in the response. The expression must specify
53412// the field name, a comparison operator, and the value that you want to
53413// use for filtering. The value must be a string, a number, or a
53414// boolean. The comparison operator must be either =, !=, >, or <.
53415//
53416// For example, if you are filtering Compute Engine instances, you can
53417// exclude instances named example-instance by specifying name !=
53418// example-instance.
53419//
53420// You can also filter nested fields. For example, you could specify
53421// scheduling.automaticRestart = false to include instances only if they
53422// are not scheduled for automatic restarts. You can use filtering on
53423// nested fields to filter based on resource labels.
53424//
53425// To filter on multiple expressions, provide each separate expression
53426// within parentheses. For example, (scheduling.automaticRestart = true)
53427// (cpuPlatform = "Intel Skylake"). By default, each expression is an
53428// AND expression. However, you can include AND and OR expressions
53429// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
53430// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
53431// true).
53432func (c *InterconnectsListCall) Filter(filter string) *InterconnectsListCall {
53433	c.urlParams_.Set("filter", filter)
53434	return c
53435}
53436
53437// MaxResults sets the optional parameter "maxResults": The maximum
53438// number of results per page that should be returned. If the number of
53439// available results is larger than maxResults, Compute Engine returns a
53440// nextPageToken that can be used to get the next page of results in
53441// subsequent list requests. Acceptable values are 0 to 500, inclusive.
53442// (Default: 500)
53443func (c *InterconnectsListCall) MaxResults(maxResults int64) *InterconnectsListCall {
53444	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
53445	return c
53446}
53447
53448// OrderBy sets the optional parameter "orderBy": Sorts list results by
53449// a certain order. By default, results are returned in alphanumerical
53450// order based on the resource name.
53451//
53452// You can also sort results in descending order based on the creation
53453// timestamp using orderBy="creationTimestamp desc". This sorts results
53454// based on the creationTimestamp field in reverse chronological order
53455// (newest result first). Use this to sort resources like operations so
53456// that the newest operation is returned first.
53457//
53458// Currently, only sorting by name or creationTimestamp desc is
53459// supported.
53460func (c *InterconnectsListCall) OrderBy(orderBy string) *InterconnectsListCall {
53461	c.urlParams_.Set("orderBy", orderBy)
53462	return c
53463}
53464
53465// PageToken sets the optional parameter "pageToken": Specifies a page
53466// token to use. Set pageToken to the nextPageToken returned by a
53467// previous list request to get the next page of results.
53468func (c *InterconnectsListCall) PageToken(pageToken string) *InterconnectsListCall {
53469	c.urlParams_.Set("pageToken", pageToken)
53470	return c
53471}
53472
53473// Fields allows partial responses to be retrieved. See
53474// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53475// for more information.
53476func (c *InterconnectsListCall) Fields(s ...googleapi.Field) *InterconnectsListCall {
53477	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53478	return c
53479}
53480
53481// IfNoneMatch sets the optional parameter which makes the operation
53482// fail if the object's ETag matches the given value. This is useful for
53483// getting updates only after the object has changed since the last
53484// request. Use googleapi.IsNotModified to check whether the response
53485// error from Do is the result of In-None-Match.
53486func (c *InterconnectsListCall) IfNoneMatch(entityTag string) *InterconnectsListCall {
53487	c.ifNoneMatch_ = entityTag
53488	return c
53489}
53490
53491// Context sets the context to be used in this call's Do method. Any
53492// pending HTTP request will be aborted if the provided context is
53493// canceled.
53494func (c *InterconnectsListCall) Context(ctx context.Context) *InterconnectsListCall {
53495	c.ctx_ = ctx
53496	return c
53497}
53498
53499// Header returns an http.Header that can be modified by the caller to
53500// add HTTP headers to the request.
53501func (c *InterconnectsListCall) Header() http.Header {
53502	if c.header_ == nil {
53503		c.header_ = make(http.Header)
53504	}
53505	return c.header_
53506}
53507
53508func (c *InterconnectsListCall) doRequest(alt string) (*http.Response, error) {
53509	reqHeaders := make(http.Header)
53510	for k, v := range c.header_ {
53511		reqHeaders[k] = v
53512	}
53513	reqHeaders.Set("User-Agent", c.s.userAgent())
53514	if c.ifNoneMatch_ != "" {
53515		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53516	}
53517	var body io.Reader = nil
53518	c.urlParams_.Set("alt", alt)
53519	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects")
53520	urls += "?" + c.urlParams_.Encode()
53521	req, _ := http.NewRequest("GET", urls, body)
53522	req.Header = reqHeaders
53523	googleapi.Expand(req.URL, map[string]string{
53524		"project": c.project,
53525	})
53526	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53527}
53528
53529// Do executes the "compute.interconnects.list" call.
53530// Exactly one of *InterconnectList or error will be non-nil. Any
53531// non-2xx status code is an error. Response headers are in either
53532// *InterconnectList.ServerResponse.Header or (if a response was
53533// returned at all) in error.(*googleapi.Error).Header. Use
53534// googleapi.IsNotModified to check whether the returned error was
53535// because http.StatusNotModified was returned.
53536func (c *InterconnectsListCall) Do(opts ...googleapi.CallOption) (*InterconnectList, error) {
53537	gensupport.SetOptions(c.urlParams_, opts...)
53538	res, err := c.doRequest("json")
53539	if res != nil && res.StatusCode == http.StatusNotModified {
53540		if res.Body != nil {
53541			res.Body.Close()
53542		}
53543		return nil, &googleapi.Error{
53544			Code:   res.StatusCode,
53545			Header: res.Header,
53546		}
53547	}
53548	if err != nil {
53549		return nil, err
53550	}
53551	defer googleapi.CloseBody(res)
53552	if err := googleapi.CheckResponse(res); err != nil {
53553		return nil, err
53554	}
53555	ret := &InterconnectList{
53556		ServerResponse: googleapi.ServerResponse{
53557			Header:         res.Header,
53558			HTTPStatusCode: res.StatusCode,
53559		},
53560	}
53561	target := &ret
53562	if err := gensupport.DecodeResponse(target, res); err != nil {
53563		return nil, err
53564	}
53565	return ret, nil
53566	// {
53567	//   "description": "Retrieves the list of interconnect available to the specified project.",
53568	//   "httpMethod": "GET",
53569	//   "id": "compute.interconnects.list",
53570	//   "parameterOrder": [
53571	//     "project"
53572	//   ],
53573	//   "parameters": {
53574	//     "filter": {
53575	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
53576	//       "location": "query",
53577	//       "type": "string"
53578	//     },
53579	//     "maxResults": {
53580	//       "default": "500",
53581	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
53582	//       "format": "uint32",
53583	//       "location": "query",
53584	//       "minimum": "0",
53585	//       "type": "integer"
53586	//     },
53587	//     "orderBy": {
53588	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
53589	//       "location": "query",
53590	//       "type": "string"
53591	//     },
53592	//     "pageToken": {
53593	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
53594	//       "location": "query",
53595	//       "type": "string"
53596	//     },
53597	//     "project": {
53598	//       "description": "Project ID for this request.",
53599	//       "location": "path",
53600	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53601	//       "required": true,
53602	//       "type": "string"
53603	//     }
53604	//   },
53605	//   "path": "{project}/global/interconnects",
53606	//   "response": {
53607	//     "$ref": "InterconnectList"
53608	//   },
53609	//   "scopes": [
53610	//     "https://www.googleapis.com/auth/cloud-platform",
53611	//     "https://www.googleapis.com/auth/compute",
53612	//     "https://www.googleapis.com/auth/compute.readonly"
53613	//   ]
53614	// }
53615
53616}
53617
53618// Pages invokes f for each page of results.
53619// A non-nil error returned from f will halt the iteration.
53620// The provided context supersedes any context provided to the Context method.
53621func (c *InterconnectsListCall) Pages(ctx context.Context, f func(*InterconnectList) error) error {
53622	c.ctx_ = ctx
53623	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
53624	for {
53625		x, err := c.Do()
53626		if err != nil {
53627			return err
53628		}
53629		if err := f(x); err != nil {
53630			return err
53631		}
53632		if x.NextPageToken == "" {
53633			return nil
53634		}
53635		c.PageToken(x.NextPageToken)
53636	}
53637}
53638
53639// method id "compute.interconnects.patch":
53640
53641type InterconnectsPatchCall struct {
53642	s             *Service
53643	project       string
53644	interconnect  string
53645	interconnect2 *Interconnect
53646	urlParams_    gensupport.URLParams
53647	ctx_          context.Context
53648	header_       http.Header
53649}
53650
53651// Patch: Updates the specified interconnect with the data included in
53652// the request. This method supports PATCH semantics and uses the JSON
53653// merge patch format and processing rules.
53654func (r *InterconnectsService) Patch(project string, interconnect string, interconnect2 *Interconnect) *InterconnectsPatchCall {
53655	c := &InterconnectsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53656	c.project = project
53657	c.interconnect = interconnect
53658	c.interconnect2 = interconnect2
53659	return c
53660}
53661
53662// RequestId sets the optional parameter "requestId": An optional
53663// request ID to identify requests. Specify a unique request ID so that
53664// if you must retry your request, the server will know to ignore the
53665// request if it has already been completed.
53666//
53667// For example, consider a situation where you make an initial request
53668// and the request times out. If you make the request again with the
53669// same request ID, the server can check if original operation with the
53670// same request ID was received, and if so, will ignore the second
53671// request. This prevents clients from accidentally creating duplicate
53672// commitments.
53673//
53674// The request ID must be a valid UUID with the exception that zero UUID
53675// is not supported (00000000-0000-0000-0000-000000000000).
53676func (c *InterconnectsPatchCall) RequestId(requestId string) *InterconnectsPatchCall {
53677	c.urlParams_.Set("requestId", requestId)
53678	return c
53679}
53680
53681// Fields allows partial responses to be retrieved. See
53682// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53683// for more information.
53684func (c *InterconnectsPatchCall) Fields(s ...googleapi.Field) *InterconnectsPatchCall {
53685	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53686	return c
53687}
53688
53689// Context sets the context to be used in this call's Do method. Any
53690// pending HTTP request will be aborted if the provided context is
53691// canceled.
53692func (c *InterconnectsPatchCall) Context(ctx context.Context) *InterconnectsPatchCall {
53693	c.ctx_ = ctx
53694	return c
53695}
53696
53697// Header returns an http.Header that can be modified by the caller to
53698// add HTTP headers to the request.
53699func (c *InterconnectsPatchCall) Header() http.Header {
53700	if c.header_ == nil {
53701		c.header_ = make(http.Header)
53702	}
53703	return c.header_
53704}
53705
53706func (c *InterconnectsPatchCall) doRequest(alt string) (*http.Response, error) {
53707	reqHeaders := make(http.Header)
53708	for k, v := range c.header_ {
53709		reqHeaders[k] = v
53710	}
53711	reqHeaders.Set("User-Agent", c.s.userAgent())
53712	var body io.Reader = nil
53713	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect2)
53714	if err != nil {
53715		return nil, err
53716	}
53717	reqHeaders.Set("Content-Type", "application/json")
53718	c.urlParams_.Set("alt", alt)
53719	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
53720	urls += "?" + c.urlParams_.Encode()
53721	req, _ := http.NewRequest("PATCH", urls, body)
53722	req.Header = reqHeaders
53723	googleapi.Expand(req.URL, map[string]string{
53724		"project":      c.project,
53725		"interconnect": c.interconnect,
53726	})
53727	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53728}
53729
53730// Do executes the "compute.interconnects.patch" call.
53731// Exactly one of *Operation or error will be non-nil. Any non-2xx
53732// status code is an error. Response headers are in either
53733// *Operation.ServerResponse.Header or (if a response was returned at
53734// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53735// to check whether the returned error was because
53736// http.StatusNotModified was returned.
53737func (c *InterconnectsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53738	gensupport.SetOptions(c.urlParams_, opts...)
53739	res, err := c.doRequest("json")
53740	if res != nil && res.StatusCode == http.StatusNotModified {
53741		if res.Body != nil {
53742			res.Body.Close()
53743		}
53744		return nil, &googleapi.Error{
53745			Code:   res.StatusCode,
53746			Header: res.Header,
53747		}
53748	}
53749	if err != nil {
53750		return nil, err
53751	}
53752	defer googleapi.CloseBody(res)
53753	if err := googleapi.CheckResponse(res); err != nil {
53754		return nil, err
53755	}
53756	ret := &Operation{
53757		ServerResponse: googleapi.ServerResponse{
53758			Header:         res.Header,
53759			HTTPStatusCode: res.StatusCode,
53760		},
53761	}
53762	target := &ret
53763	if err := gensupport.DecodeResponse(target, res); err != nil {
53764		return nil, err
53765	}
53766	return ret, nil
53767	// {
53768	//   "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.",
53769	//   "httpMethod": "PATCH",
53770	//   "id": "compute.interconnects.patch",
53771	//   "parameterOrder": [
53772	//     "project",
53773	//     "interconnect"
53774	//   ],
53775	//   "parameters": {
53776	//     "interconnect": {
53777	//       "description": "Name of the interconnect to update.",
53778	//       "location": "path",
53779	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53780	//       "required": true,
53781	//       "type": "string"
53782	//     },
53783	//     "project": {
53784	//       "description": "Project ID for this request.",
53785	//       "location": "path",
53786	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53787	//       "required": true,
53788	//       "type": "string"
53789	//     },
53790	//     "requestId": {
53791	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53792	//       "location": "query",
53793	//       "type": "string"
53794	//     }
53795	//   },
53796	//   "path": "{project}/global/interconnects/{interconnect}",
53797	//   "request": {
53798	//     "$ref": "Interconnect"
53799	//   },
53800	//   "response": {
53801	//     "$ref": "Operation"
53802	//   },
53803	//   "scopes": [
53804	//     "https://www.googleapis.com/auth/cloud-platform",
53805	//     "https://www.googleapis.com/auth/compute"
53806	//   ]
53807	// }
53808
53809}
53810
53811// method id "compute.licenseCodes.get":
53812
53813type LicenseCodesGetCall struct {
53814	s            *Service
53815	project      string
53816	licenseCode  string
53817	urlParams_   gensupport.URLParams
53818	ifNoneMatch_ string
53819	ctx_         context.Context
53820	header_      http.Header
53821}
53822
53823// Get: Return a specified license code. License codes are mirrored
53824// across all projects that have permissions to read the License Code.
53825func (r *LicenseCodesService) Get(project string, licenseCode string) *LicenseCodesGetCall {
53826	c := &LicenseCodesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53827	c.project = project
53828	c.licenseCode = licenseCode
53829	return c
53830}
53831
53832// Fields allows partial responses to be retrieved. See
53833// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53834// for more information.
53835func (c *LicenseCodesGetCall) Fields(s ...googleapi.Field) *LicenseCodesGetCall {
53836	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53837	return c
53838}
53839
53840// IfNoneMatch sets the optional parameter which makes the operation
53841// fail if the object's ETag matches the given value. This is useful for
53842// getting updates only after the object has changed since the last
53843// request. Use googleapi.IsNotModified to check whether the response
53844// error from Do is the result of In-None-Match.
53845func (c *LicenseCodesGetCall) IfNoneMatch(entityTag string) *LicenseCodesGetCall {
53846	c.ifNoneMatch_ = entityTag
53847	return c
53848}
53849
53850// Context sets the context to be used in this call's Do method. Any
53851// pending HTTP request will be aborted if the provided context is
53852// canceled.
53853func (c *LicenseCodesGetCall) Context(ctx context.Context) *LicenseCodesGetCall {
53854	c.ctx_ = ctx
53855	return c
53856}
53857
53858// Header returns an http.Header that can be modified by the caller to
53859// add HTTP headers to the request.
53860func (c *LicenseCodesGetCall) Header() http.Header {
53861	if c.header_ == nil {
53862		c.header_ = make(http.Header)
53863	}
53864	return c.header_
53865}
53866
53867func (c *LicenseCodesGetCall) doRequest(alt string) (*http.Response, error) {
53868	reqHeaders := make(http.Header)
53869	for k, v := range c.header_ {
53870		reqHeaders[k] = v
53871	}
53872	reqHeaders.Set("User-Agent", c.s.userAgent())
53873	if c.ifNoneMatch_ != "" {
53874		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53875	}
53876	var body io.Reader = nil
53877	c.urlParams_.Set("alt", alt)
53878	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenseCodes/{licenseCode}")
53879	urls += "?" + c.urlParams_.Encode()
53880	req, _ := http.NewRequest("GET", urls, body)
53881	req.Header = reqHeaders
53882	googleapi.Expand(req.URL, map[string]string{
53883		"project":     c.project,
53884		"licenseCode": c.licenseCode,
53885	})
53886	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53887}
53888
53889// Do executes the "compute.licenseCodes.get" call.
53890// Exactly one of *LicenseCode or error will be non-nil. Any non-2xx
53891// status code is an error. Response headers are in either
53892// *LicenseCode.ServerResponse.Header or (if a response was returned at
53893// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53894// to check whether the returned error was because
53895// http.StatusNotModified was returned.
53896func (c *LicenseCodesGetCall) Do(opts ...googleapi.CallOption) (*LicenseCode, error) {
53897	gensupport.SetOptions(c.urlParams_, opts...)
53898	res, err := c.doRequest("json")
53899	if res != nil && res.StatusCode == http.StatusNotModified {
53900		if res.Body != nil {
53901			res.Body.Close()
53902		}
53903		return nil, &googleapi.Error{
53904			Code:   res.StatusCode,
53905			Header: res.Header,
53906		}
53907	}
53908	if err != nil {
53909		return nil, err
53910	}
53911	defer googleapi.CloseBody(res)
53912	if err := googleapi.CheckResponse(res); err != nil {
53913		return nil, err
53914	}
53915	ret := &LicenseCode{
53916		ServerResponse: googleapi.ServerResponse{
53917			Header:         res.Header,
53918			HTTPStatusCode: res.StatusCode,
53919		},
53920	}
53921	target := &ret
53922	if err := gensupport.DecodeResponse(target, res); err != nil {
53923		return nil, err
53924	}
53925	return ret, nil
53926	// {
53927	//   "description": "Return a specified license code. License codes are mirrored across all projects that have permissions to read the License Code.",
53928	//   "httpMethod": "GET",
53929	//   "id": "compute.licenseCodes.get",
53930	//   "parameterOrder": [
53931	//     "project",
53932	//     "licenseCode"
53933	//   ],
53934	//   "parameters": {
53935	//     "licenseCode": {
53936	//       "description": "Number corresponding to the License code resource to return.",
53937	//       "location": "path",
53938	//       "pattern": "[0-9]{0,61}?",
53939	//       "required": true,
53940	//       "type": "string"
53941	//     },
53942	//     "project": {
53943	//       "description": "Project ID for this request.",
53944	//       "location": "path",
53945	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53946	//       "required": true,
53947	//       "type": "string"
53948	//     }
53949	//   },
53950	//   "path": "{project}/global/licenseCodes/{licenseCode}",
53951	//   "response": {
53952	//     "$ref": "LicenseCode"
53953	//   },
53954	//   "scopes": [
53955	//     "https://www.googleapis.com/auth/cloud-platform",
53956	//     "https://www.googleapis.com/auth/compute",
53957	//     "https://www.googleapis.com/auth/compute.readonly"
53958	//   ]
53959	// }
53960
53961}
53962
53963// method id "compute.licenseCodes.testIamPermissions":
53964
53965type LicenseCodesTestIamPermissionsCall struct {
53966	s                      *Service
53967	project                string
53968	resource               string
53969	testpermissionsrequest *TestPermissionsRequest
53970	urlParams_             gensupport.URLParams
53971	ctx_                   context.Context
53972	header_                http.Header
53973}
53974
53975// TestIamPermissions: Returns permissions that a caller has on the
53976// specified resource.
53977func (r *LicenseCodesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicenseCodesTestIamPermissionsCall {
53978	c := &LicenseCodesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53979	c.project = project
53980	c.resource = resource
53981	c.testpermissionsrequest = testpermissionsrequest
53982	return c
53983}
53984
53985// Fields allows partial responses to be retrieved. See
53986// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53987// for more information.
53988func (c *LicenseCodesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicenseCodesTestIamPermissionsCall {
53989	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53990	return c
53991}
53992
53993// Context sets the context to be used in this call's Do method. Any
53994// pending HTTP request will be aborted if the provided context is
53995// canceled.
53996func (c *LicenseCodesTestIamPermissionsCall) Context(ctx context.Context) *LicenseCodesTestIamPermissionsCall {
53997	c.ctx_ = ctx
53998	return c
53999}
54000
54001// Header returns an http.Header that can be modified by the caller to
54002// add HTTP headers to the request.
54003func (c *LicenseCodesTestIamPermissionsCall) Header() http.Header {
54004	if c.header_ == nil {
54005		c.header_ = make(http.Header)
54006	}
54007	return c.header_
54008}
54009
54010func (c *LicenseCodesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
54011	reqHeaders := make(http.Header)
54012	for k, v := range c.header_ {
54013		reqHeaders[k] = v
54014	}
54015	reqHeaders.Set("User-Agent", c.s.userAgent())
54016	var body io.Reader = nil
54017	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
54018	if err != nil {
54019		return nil, err
54020	}
54021	reqHeaders.Set("Content-Type", "application/json")
54022	c.urlParams_.Set("alt", alt)
54023	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenseCodes/{resource}/testIamPermissions")
54024	urls += "?" + c.urlParams_.Encode()
54025	req, _ := http.NewRequest("POST", urls, body)
54026	req.Header = reqHeaders
54027	googleapi.Expand(req.URL, map[string]string{
54028		"project":  c.project,
54029		"resource": c.resource,
54030	})
54031	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54032}
54033
54034// Do executes the "compute.licenseCodes.testIamPermissions" call.
54035// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
54036// non-2xx status code is an error. Response headers are in either
54037// *TestPermissionsResponse.ServerResponse.Header or (if a response was
54038// returned at all) in error.(*googleapi.Error).Header. Use
54039// googleapi.IsNotModified to check whether the returned error was
54040// because http.StatusNotModified was returned.
54041func (c *LicenseCodesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
54042	gensupport.SetOptions(c.urlParams_, opts...)
54043	res, err := c.doRequest("json")
54044	if res != nil && res.StatusCode == http.StatusNotModified {
54045		if res.Body != nil {
54046			res.Body.Close()
54047		}
54048		return nil, &googleapi.Error{
54049			Code:   res.StatusCode,
54050			Header: res.Header,
54051		}
54052	}
54053	if err != nil {
54054		return nil, err
54055	}
54056	defer googleapi.CloseBody(res)
54057	if err := googleapi.CheckResponse(res); err != nil {
54058		return nil, err
54059	}
54060	ret := &TestPermissionsResponse{
54061		ServerResponse: googleapi.ServerResponse{
54062			Header:         res.Header,
54063			HTTPStatusCode: res.StatusCode,
54064		},
54065	}
54066	target := &ret
54067	if err := gensupport.DecodeResponse(target, res); err != nil {
54068		return nil, err
54069	}
54070	return ret, nil
54071	// {
54072	//   "description": "Returns permissions that a caller has on the specified resource.",
54073	//   "httpMethod": "POST",
54074	//   "id": "compute.licenseCodes.testIamPermissions",
54075	//   "parameterOrder": [
54076	//     "project",
54077	//     "resource"
54078	//   ],
54079	//   "parameters": {
54080	//     "project": {
54081	//       "description": "Project ID for this request.",
54082	//       "location": "path",
54083	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54084	//       "required": true,
54085	//       "type": "string"
54086	//     },
54087	//     "resource": {
54088	//       "description": "Name of the resource for this request.",
54089	//       "location": "path",
54090	//       "pattern": "(?:[-a-z0-9_]{0,62}[a-z0-9])?",
54091	//       "required": true,
54092	//       "type": "string"
54093	//     }
54094	//   },
54095	//   "path": "{project}/global/licenseCodes/{resource}/testIamPermissions",
54096	//   "request": {
54097	//     "$ref": "TestPermissionsRequest"
54098	//   },
54099	//   "response": {
54100	//     "$ref": "TestPermissionsResponse"
54101	//   },
54102	//   "scopes": [
54103	//     "https://www.googleapis.com/auth/cloud-platform",
54104	//     "https://www.googleapis.com/auth/compute",
54105	//     "https://www.googleapis.com/auth/compute.readonly"
54106	//   ]
54107	// }
54108
54109}
54110
54111// method id "compute.licenses.delete":
54112
54113type LicensesDeleteCall struct {
54114	s          *Service
54115	project    string
54116	license    string
54117	urlParams_ gensupport.URLParams
54118	ctx_       context.Context
54119	header_    http.Header
54120}
54121
54122// Delete: Deletes the specified license.
54123func (r *LicensesService) Delete(project string, license string) *LicensesDeleteCall {
54124	c := &LicensesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54125	c.project = project
54126	c.license = license
54127	return c
54128}
54129
54130// RequestId sets the optional parameter "requestId": An optional
54131// request ID to identify requests. Specify a unique request ID so that
54132// if you must retry your request, the server will know to ignore the
54133// request if it has already been completed.
54134//
54135// For example, consider a situation where you make an initial request
54136// and the request times out. If you make the request again with the
54137// same request ID, the server can check if original operation with the
54138// same request ID was received, and if so, will ignore the second
54139// request. This prevents clients from accidentally creating duplicate
54140// commitments.
54141//
54142// The request ID must be a valid UUID with the exception that zero UUID
54143// is not supported (00000000-0000-0000-0000-000000000000).
54144func (c *LicensesDeleteCall) RequestId(requestId string) *LicensesDeleteCall {
54145	c.urlParams_.Set("requestId", requestId)
54146	return c
54147}
54148
54149// Fields allows partial responses to be retrieved. See
54150// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54151// for more information.
54152func (c *LicensesDeleteCall) Fields(s ...googleapi.Field) *LicensesDeleteCall {
54153	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54154	return c
54155}
54156
54157// Context sets the context to be used in this call's Do method. Any
54158// pending HTTP request will be aborted if the provided context is
54159// canceled.
54160func (c *LicensesDeleteCall) Context(ctx context.Context) *LicensesDeleteCall {
54161	c.ctx_ = ctx
54162	return c
54163}
54164
54165// Header returns an http.Header that can be modified by the caller to
54166// add HTTP headers to the request.
54167func (c *LicensesDeleteCall) Header() http.Header {
54168	if c.header_ == nil {
54169		c.header_ = make(http.Header)
54170	}
54171	return c.header_
54172}
54173
54174func (c *LicensesDeleteCall) doRequest(alt string) (*http.Response, error) {
54175	reqHeaders := make(http.Header)
54176	for k, v := range c.header_ {
54177		reqHeaders[k] = v
54178	}
54179	reqHeaders.Set("User-Agent", c.s.userAgent())
54180	var body io.Reader = nil
54181	c.urlParams_.Set("alt", alt)
54182	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{license}")
54183	urls += "?" + c.urlParams_.Encode()
54184	req, _ := http.NewRequest("DELETE", urls, body)
54185	req.Header = reqHeaders
54186	googleapi.Expand(req.URL, map[string]string{
54187		"project": c.project,
54188		"license": c.license,
54189	})
54190	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54191}
54192
54193// Do executes the "compute.licenses.delete" call.
54194// Exactly one of *Operation or error will be non-nil. Any non-2xx
54195// status code is an error. Response headers are in either
54196// *Operation.ServerResponse.Header or (if a response was returned at
54197// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54198// to check whether the returned error was because
54199// http.StatusNotModified was returned.
54200func (c *LicensesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54201	gensupport.SetOptions(c.urlParams_, opts...)
54202	res, err := c.doRequest("json")
54203	if res != nil && res.StatusCode == http.StatusNotModified {
54204		if res.Body != nil {
54205			res.Body.Close()
54206		}
54207		return nil, &googleapi.Error{
54208			Code:   res.StatusCode,
54209			Header: res.Header,
54210		}
54211	}
54212	if err != nil {
54213		return nil, err
54214	}
54215	defer googleapi.CloseBody(res)
54216	if err := googleapi.CheckResponse(res); err != nil {
54217		return nil, err
54218	}
54219	ret := &Operation{
54220		ServerResponse: googleapi.ServerResponse{
54221			Header:         res.Header,
54222			HTTPStatusCode: res.StatusCode,
54223		},
54224	}
54225	target := &ret
54226	if err := gensupport.DecodeResponse(target, res); err != nil {
54227		return nil, err
54228	}
54229	return ret, nil
54230	// {
54231	//   "description": "Deletes the specified license.",
54232	//   "httpMethod": "DELETE",
54233	//   "id": "compute.licenses.delete",
54234	//   "parameterOrder": [
54235	//     "project",
54236	//     "license"
54237	//   ],
54238	//   "parameters": {
54239	//     "license": {
54240	//       "description": "Name of the license resource to delete.",
54241	//       "location": "path",
54242	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54243	//       "required": true,
54244	//       "type": "string"
54245	//     },
54246	//     "project": {
54247	//       "description": "Project ID for this request.",
54248	//       "location": "path",
54249	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54250	//       "required": true,
54251	//       "type": "string"
54252	//     },
54253	//     "requestId": {
54254	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54255	//       "location": "query",
54256	//       "type": "string"
54257	//     }
54258	//   },
54259	//   "path": "{project}/global/licenses/{license}",
54260	//   "response": {
54261	//     "$ref": "Operation"
54262	//   },
54263	//   "scopes": [
54264	//     "https://www.googleapis.com/auth/cloud-platform",
54265	//     "https://www.googleapis.com/auth/compute"
54266	//   ]
54267	// }
54268
54269}
54270
54271// method id "compute.licenses.get":
54272
54273type LicensesGetCall struct {
54274	s            *Service
54275	project      string
54276	license      string
54277	urlParams_   gensupport.URLParams
54278	ifNoneMatch_ string
54279	ctx_         context.Context
54280	header_      http.Header
54281}
54282
54283// Get: Returns the specified License resource.
54284// For details, see https://cloud.google.com/compute/docs/reference/latest/licenses/get
54285func (r *LicensesService) Get(project string, license string) *LicensesGetCall {
54286	c := &LicensesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54287	c.project = project
54288	c.license = license
54289	return c
54290}
54291
54292// Fields allows partial responses to be retrieved. See
54293// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54294// for more information.
54295func (c *LicensesGetCall) Fields(s ...googleapi.Field) *LicensesGetCall {
54296	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54297	return c
54298}
54299
54300// IfNoneMatch sets the optional parameter which makes the operation
54301// fail if the object's ETag matches the given value. This is useful for
54302// getting updates only after the object has changed since the last
54303// request. Use googleapi.IsNotModified to check whether the response
54304// error from Do is the result of In-None-Match.
54305func (c *LicensesGetCall) IfNoneMatch(entityTag string) *LicensesGetCall {
54306	c.ifNoneMatch_ = entityTag
54307	return c
54308}
54309
54310// Context sets the context to be used in this call's Do method. Any
54311// pending HTTP request will be aborted if the provided context is
54312// canceled.
54313func (c *LicensesGetCall) Context(ctx context.Context) *LicensesGetCall {
54314	c.ctx_ = ctx
54315	return c
54316}
54317
54318// Header returns an http.Header that can be modified by the caller to
54319// add HTTP headers to the request.
54320func (c *LicensesGetCall) Header() http.Header {
54321	if c.header_ == nil {
54322		c.header_ = make(http.Header)
54323	}
54324	return c.header_
54325}
54326
54327func (c *LicensesGetCall) doRequest(alt string) (*http.Response, error) {
54328	reqHeaders := make(http.Header)
54329	for k, v := range c.header_ {
54330		reqHeaders[k] = v
54331	}
54332	reqHeaders.Set("User-Agent", c.s.userAgent())
54333	if c.ifNoneMatch_ != "" {
54334		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54335	}
54336	var body io.Reader = nil
54337	c.urlParams_.Set("alt", alt)
54338	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{license}")
54339	urls += "?" + c.urlParams_.Encode()
54340	req, _ := http.NewRequest("GET", urls, body)
54341	req.Header = reqHeaders
54342	googleapi.Expand(req.URL, map[string]string{
54343		"project": c.project,
54344		"license": c.license,
54345	})
54346	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54347}
54348
54349// Do executes the "compute.licenses.get" call.
54350// Exactly one of *License or error will be non-nil. Any non-2xx status
54351// code is an error. Response headers are in either
54352// *License.ServerResponse.Header or (if a response was returned at all)
54353// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
54354// check whether the returned error was because http.StatusNotModified
54355// was returned.
54356func (c *LicensesGetCall) Do(opts ...googleapi.CallOption) (*License, error) {
54357	gensupport.SetOptions(c.urlParams_, opts...)
54358	res, err := c.doRequest("json")
54359	if res != nil && res.StatusCode == http.StatusNotModified {
54360		if res.Body != nil {
54361			res.Body.Close()
54362		}
54363		return nil, &googleapi.Error{
54364			Code:   res.StatusCode,
54365			Header: res.Header,
54366		}
54367	}
54368	if err != nil {
54369		return nil, err
54370	}
54371	defer googleapi.CloseBody(res)
54372	if err := googleapi.CheckResponse(res); err != nil {
54373		return nil, err
54374	}
54375	ret := &License{
54376		ServerResponse: googleapi.ServerResponse{
54377			Header:         res.Header,
54378			HTTPStatusCode: res.StatusCode,
54379		},
54380	}
54381	target := &ret
54382	if err := gensupport.DecodeResponse(target, res); err != nil {
54383		return nil, err
54384	}
54385	return ret, nil
54386	// {
54387	//   "description": "Returns the specified License resource.",
54388	//   "httpMethod": "GET",
54389	//   "id": "compute.licenses.get",
54390	//   "parameterOrder": [
54391	//     "project",
54392	//     "license"
54393	//   ],
54394	//   "parameters": {
54395	//     "license": {
54396	//       "description": "Name of the License resource to return.",
54397	//       "location": "path",
54398	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54399	//       "required": true,
54400	//       "type": "string"
54401	//     },
54402	//     "project": {
54403	//       "description": "Project ID for this request.",
54404	//       "location": "path",
54405	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54406	//       "required": true,
54407	//       "type": "string"
54408	//     }
54409	//   },
54410	//   "path": "{project}/global/licenses/{license}",
54411	//   "response": {
54412	//     "$ref": "License"
54413	//   },
54414	//   "scopes": [
54415	//     "https://www.googleapis.com/auth/cloud-platform",
54416	//     "https://www.googleapis.com/auth/compute",
54417	//     "https://www.googleapis.com/auth/compute.readonly"
54418	//   ]
54419	// }
54420
54421}
54422
54423// method id "compute.licenses.insert":
54424
54425type LicensesInsertCall struct {
54426	s          *Service
54427	project    string
54428	license    *License
54429	urlParams_ gensupport.URLParams
54430	ctx_       context.Context
54431	header_    http.Header
54432}
54433
54434// Insert: Create a License resource in the specified project.
54435func (r *LicensesService) Insert(project string, license *License) *LicensesInsertCall {
54436	c := &LicensesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54437	c.project = project
54438	c.license = license
54439	return c
54440}
54441
54442// RequestId sets the optional parameter "requestId": An optional
54443// request ID to identify requests. Specify a unique request ID so that
54444// if you must retry your request, the server will know to ignore the
54445// request if it has already been completed.
54446//
54447// For example, consider a situation where you make an initial request
54448// and the request times out. If you make the request again with the
54449// same request ID, the server can check if original operation with the
54450// same request ID was received, and if so, will ignore the second
54451// request. This prevents clients from accidentally creating duplicate
54452// commitments.
54453//
54454// The request ID must be a valid UUID with the exception that zero UUID
54455// is not supported (00000000-0000-0000-0000-000000000000).
54456func (c *LicensesInsertCall) RequestId(requestId string) *LicensesInsertCall {
54457	c.urlParams_.Set("requestId", requestId)
54458	return c
54459}
54460
54461// Fields allows partial responses to be retrieved. See
54462// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54463// for more information.
54464func (c *LicensesInsertCall) Fields(s ...googleapi.Field) *LicensesInsertCall {
54465	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54466	return c
54467}
54468
54469// Context sets the context to be used in this call's Do method. Any
54470// pending HTTP request will be aborted if the provided context is
54471// canceled.
54472func (c *LicensesInsertCall) Context(ctx context.Context) *LicensesInsertCall {
54473	c.ctx_ = ctx
54474	return c
54475}
54476
54477// Header returns an http.Header that can be modified by the caller to
54478// add HTTP headers to the request.
54479func (c *LicensesInsertCall) Header() http.Header {
54480	if c.header_ == nil {
54481		c.header_ = make(http.Header)
54482	}
54483	return c.header_
54484}
54485
54486func (c *LicensesInsertCall) doRequest(alt string) (*http.Response, error) {
54487	reqHeaders := make(http.Header)
54488	for k, v := range c.header_ {
54489		reqHeaders[k] = v
54490	}
54491	reqHeaders.Set("User-Agent", c.s.userAgent())
54492	var body io.Reader = nil
54493	body, err := googleapi.WithoutDataWrapper.JSONReader(c.license)
54494	if err != nil {
54495		return nil, err
54496	}
54497	reqHeaders.Set("Content-Type", "application/json")
54498	c.urlParams_.Set("alt", alt)
54499	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses")
54500	urls += "?" + c.urlParams_.Encode()
54501	req, _ := http.NewRequest("POST", urls, body)
54502	req.Header = reqHeaders
54503	googleapi.Expand(req.URL, map[string]string{
54504		"project": c.project,
54505	})
54506	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54507}
54508
54509// Do executes the "compute.licenses.insert" call.
54510// Exactly one of *Operation or error will be non-nil. Any non-2xx
54511// status code is an error. Response headers are in either
54512// *Operation.ServerResponse.Header or (if a response was returned at
54513// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54514// to check whether the returned error was because
54515// http.StatusNotModified was returned.
54516func (c *LicensesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54517	gensupport.SetOptions(c.urlParams_, opts...)
54518	res, err := c.doRequest("json")
54519	if res != nil && res.StatusCode == http.StatusNotModified {
54520		if res.Body != nil {
54521			res.Body.Close()
54522		}
54523		return nil, &googleapi.Error{
54524			Code:   res.StatusCode,
54525			Header: res.Header,
54526		}
54527	}
54528	if err != nil {
54529		return nil, err
54530	}
54531	defer googleapi.CloseBody(res)
54532	if err := googleapi.CheckResponse(res); err != nil {
54533		return nil, err
54534	}
54535	ret := &Operation{
54536		ServerResponse: googleapi.ServerResponse{
54537			Header:         res.Header,
54538			HTTPStatusCode: res.StatusCode,
54539		},
54540	}
54541	target := &ret
54542	if err := gensupport.DecodeResponse(target, res); err != nil {
54543		return nil, err
54544	}
54545	return ret, nil
54546	// {
54547	//   "description": "Create a License resource in the specified project.",
54548	//   "httpMethod": "POST",
54549	//   "id": "compute.licenses.insert",
54550	//   "parameterOrder": [
54551	//     "project"
54552	//   ],
54553	//   "parameters": {
54554	//     "project": {
54555	//       "description": "Project ID for this request.",
54556	//       "location": "path",
54557	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54558	//       "required": true,
54559	//       "type": "string"
54560	//     },
54561	//     "requestId": {
54562	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54563	//       "location": "query",
54564	//       "type": "string"
54565	//     }
54566	//   },
54567	//   "path": "{project}/global/licenses",
54568	//   "request": {
54569	//     "$ref": "License"
54570	//   },
54571	//   "response": {
54572	//     "$ref": "Operation"
54573	//   },
54574	//   "scopes": [
54575	//     "https://www.googleapis.com/auth/cloud-platform",
54576	//     "https://www.googleapis.com/auth/compute",
54577	//     "https://www.googleapis.com/auth/devstorage.full_control",
54578	//     "https://www.googleapis.com/auth/devstorage.read_only",
54579	//     "https://www.googleapis.com/auth/devstorage.read_write"
54580	//   ]
54581	// }
54582
54583}
54584
54585// method id "compute.licenses.list":
54586
54587type LicensesListCall struct {
54588	s            *Service
54589	project      string
54590	urlParams_   gensupport.URLParams
54591	ifNoneMatch_ string
54592	ctx_         context.Context
54593	header_      http.Header
54594}
54595
54596// List: Retrieves the list of licenses available in the specified
54597// project. This method does not get any licenses that belong to other
54598// projects, including licenses attached to publicly-available images,
54599// like Debian 8. If you want to get a list of publicly-available
54600// licenses, use this method to make a request to the respective image
54601// project, such as debian-cloud or windows-cloud.
54602func (r *LicensesService) List(project string) *LicensesListCall {
54603	c := &LicensesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54604	c.project = project
54605	return c
54606}
54607
54608// Filter sets the optional parameter "filter": A filter expression that
54609// filters resources listed in the response. The expression must specify
54610// the field name, a comparison operator, and the value that you want to
54611// use for filtering. The value must be a string, a number, or a
54612// boolean. The comparison operator must be either =, !=, >, or <.
54613//
54614// For example, if you are filtering Compute Engine instances, you can
54615// exclude instances named example-instance by specifying name !=
54616// example-instance.
54617//
54618// You can also filter nested fields. For example, you could specify
54619// scheduling.automaticRestart = false to include instances only if they
54620// are not scheduled for automatic restarts. You can use filtering on
54621// nested fields to filter based on resource labels.
54622//
54623// To filter on multiple expressions, provide each separate expression
54624// within parentheses. For example, (scheduling.automaticRestart = true)
54625// (cpuPlatform = "Intel Skylake"). By default, each expression is an
54626// AND expression. However, you can include AND and OR expressions
54627// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
54628// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
54629// true).
54630func (c *LicensesListCall) Filter(filter string) *LicensesListCall {
54631	c.urlParams_.Set("filter", filter)
54632	return c
54633}
54634
54635// MaxResults sets the optional parameter "maxResults": The maximum
54636// number of results per page that should be returned. If the number of
54637// available results is larger than maxResults, Compute Engine returns a
54638// nextPageToken that can be used to get the next page of results in
54639// subsequent list requests. Acceptable values are 0 to 500, inclusive.
54640// (Default: 500)
54641func (c *LicensesListCall) MaxResults(maxResults int64) *LicensesListCall {
54642	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
54643	return c
54644}
54645
54646// OrderBy sets the optional parameter "orderBy": Sorts list results by
54647// a certain order. By default, results are returned in alphanumerical
54648// order based on the resource name.
54649//
54650// You can also sort results in descending order based on the creation
54651// timestamp using orderBy="creationTimestamp desc". This sorts results
54652// based on the creationTimestamp field in reverse chronological order
54653// (newest result first). Use this to sort resources like operations so
54654// that the newest operation is returned first.
54655//
54656// Currently, only sorting by name or creationTimestamp desc is
54657// supported.
54658func (c *LicensesListCall) OrderBy(orderBy string) *LicensesListCall {
54659	c.urlParams_.Set("orderBy", orderBy)
54660	return c
54661}
54662
54663// PageToken sets the optional parameter "pageToken": Specifies a page
54664// token to use. Set pageToken to the nextPageToken returned by a
54665// previous list request to get the next page of results.
54666func (c *LicensesListCall) PageToken(pageToken string) *LicensesListCall {
54667	c.urlParams_.Set("pageToken", pageToken)
54668	return c
54669}
54670
54671// Fields allows partial responses to be retrieved. See
54672// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54673// for more information.
54674func (c *LicensesListCall) Fields(s ...googleapi.Field) *LicensesListCall {
54675	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54676	return c
54677}
54678
54679// IfNoneMatch sets the optional parameter which makes the operation
54680// fail if the object's ETag matches the given value. This is useful for
54681// getting updates only after the object has changed since the last
54682// request. Use googleapi.IsNotModified to check whether the response
54683// error from Do is the result of In-None-Match.
54684func (c *LicensesListCall) IfNoneMatch(entityTag string) *LicensesListCall {
54685	c.ifNoneMatch_ = entityTag
54686	return c
54687}
54688
54689// Context sets the context to be used in this call's Do method. Any
54690// pending HTTP request will be aborted if the provided context is
54691// canceled.
54692func (c *LicensesListCall) Context(ctx context.Context) *LicensesListCall {
54693	c.ctx_ = ctx
54694	return c
54695}
54696
54697// Header returns an http.Header that can be modified by the caller to
54698// add HTTP headers to the request.
54699func (c *LicensesListCall) Header() http.Header {
54700	if c.header_ == nil {
54701		c.header_ = make(http.Header)
54702	}
54703	return c.header_
54704}
54705
54706func (c *LicensesListCall) doRequest(alt string) (*http.Response, error) {
54707	reqHeaders := make(http.Header)
54708	for k, v := range c.header_ {
54709		reqHeaders[k] = v
54710	}
54711	reqHeaders.Set("User-Agent", c.s.userAgent())
54712	if c.ifNoneMatch_ != "" {
54713		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54714	}
54715	var body io.Reader = nil
54716	c.urlParams_.Set("alt", alt)
54717	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses")
54718	urls += "?" + c.urlParams_.Encode()
54719	req, _ := http.NewRequest("GET", urls, body)
54720	req.Header = reqHeaders
54721	googleapi.Expand(req.URL, map[string]string{
54722		"project": c.project,
54723	})
54724	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54725}
54726
54727// Do executes the "compute.licenses.list" call.
54728// Exactly one of *LicensesListResponse or error will be non-nil. Any
54729// non-2xx status code is an error. Response headers are in either
54730// *LicensesListResponse.ServerResponse.Header or (if a response was
54731// returned at all) in error.(*googleapi.Error).Header. Use
54732// googleapi.IsNotModified to check whether the returned error was
54733// because http.StatusNotModified was returned.
54734func (c *LicensesListCall) Do(opts ...googleapi.CallOption) (*LicensesListResponse, error) {
54735	gensupport.SetOptions(c.urlParams_, opts...)
54736	res, err := c.doRequest("json")
54737	if res != nil && res.StatusCode == http.StatusNotModified {
54738		if res.Body != nil {
54739			res.Body.Close()
54740		}
54741		return nil, &googleapi.Error{
54742			Code:   res.StatusCode,
54743			Header: res.Header,
54744		}
54745	}
54746	if err != nil {
54747		return nil, err
54748	}
54749	defer googleapi.CloseBody(res)
54750	if err := googleapi.CheckResponse(res); err != nil {
54751		return nil, err
54752	}
54753	ret := &LicensesListResponse{
54754		ServerResponse: googleapi.ServerResponse{
54755			Header:         res.Header,
54756			HTTPStatusCode: res.StatusCode,
54757		},
54758	}
54759	target := &ret
54760	if err := gensupport.DecodeResponse(target, res); err != nil {
54761		return nil, err
54762	}
54763	return ret, nil
54764	// {
54765	//   "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 8. 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.",
54766	//   "httpMethod": "GET",
54767	//   "id": "compute.licenses.list",
54768	//   "parameterOrder": [
54769	//     "project"
54770	//   ],
54771	//   "parameters": {
54772	//     "filter": {
54773	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
54774	//       "location": "query",
54775	//       "type": "string"
54776	//     },
54777	//     "maxResults": {
54778	//       "default": "500",
54779	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
54780	//       "format": "uint32",
54781	//       "location": "query",
54782	//       "minimum": "0",
54783	//       "type": "integer"
54784	//     },
54785	//     "orderBy": {
54786	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
54787	//       "location": "query",
54788	//       "type": "string"
54789	//     },
54790	//     "pageToken": {
54791	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
54792	//       "location": "query",
54793	//       "type": "string"
54794	//     },
54795	//     "project": {
54796	//       "description": "Project ID for this request.",
54797	//       "location": "path",
54798	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54799	//       "required": true,
54800	//       "type": "string"
54801	//     }
54802	//   },
54803	//   "path": "{project}/global/licenses",
54804	//   "response": {
54805	//     "$ref": "LicensesListResponse"
54806	//   },
54807	//   "scopes": [
54808	//     "https://www.googleapis.com/auth/cloud-platform",
54809	//     "https://www.googleapis.com/auth/compute",
54810	//     "https://www.googleapis.com/auth/compute.readonly"
54811	//   ]
54812	// }
54813
54814}
54815
54816// Pages invokes f for each page of results.
54817// A non-nil error returned from f will halt the iteration.
54818// The provided context supersedes any context provided to the Context method.
54819func (c *LicensesListCall) Pages(ctx context.Context, f func(*LicensesListResponse) error) error {
54820	c.ctx_ = ctx
54821	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
54822	for {
54823		x, err := c.Do()
54824		if err != nil {
54825			return err
54826		}
54827		if err := f(x); err != nil {
54828			return err
54829		}
54830		if x.NextPageToken == "" {
54831			return nil
54832		}
54833		c.PageToken(x.NextPageToken)
54834	}
54835}
54836
54837// method id "compute.licenses.testIamPermissions":
54838
54839type LicensesTestIamPermissionsCall struct {
54840	s                      *Service
54841	project                string
54842	resource               string
54843	testpermissionsrequest *TestPermissionsRequest
54844	urlParams_             gensupport.URLParams
54845	ctx_                   context.Context
54846	header_                http.Header
54847}
54848
54849// TestIamPermissions: Returns permissions that a caller has on the
54850// specified resource.
54851func (r *LicensesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicensesTestIamPermissionsCall {
54852	c := &LicensesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54853	c.project = project
54854	c.resource = resource
54855	c.testpermissionsrequest = testpermissionsrequest
54856	return c
54857}
54858
54859// Fields allows partial responses to be retrieved. See
54860// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54861// for more information.
54862func (c *LicensesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicensesTestIamPermissionsCall {
54863	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54864	return c
54865}
54866
54867// Context sets the context to be used in this call's Do method. Any
54868// pending HTTP request will be aborted if the provided context is
54869// canceled.
54870func (c *LicensesTestIamPermissionsCall) Context(ctx context.Context) *LicensesTestIamPermissionsCall {
54871	c.ctx_ = ctx
54872	return c
54873}
54874
54875// Header returns an http.Header that can be modified by the caller to
54876// add HTTP headers to the request.
54877func (c *LicensesTestIamPermissionsCall) Header() http.Header {
54878	if c.header_ == nil {
54879		c.header_ = make(http.Header)
54880	}
54881	return c.header_
54882}
54883
54884func (c *LicensesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
54885	reqHeaders := make(http.Header)
54886	for k, v := range c.header_ {
54887		reqHeaders[k] = v
54888	}
54889	reqHeaders.Set("User-Agent", c.s.userAgent())
54890	var body io.Reader = nil
54891	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
54892	if err != nil {
54893		return nil, err
54894	}
54895	reqHeaders.Set("Content-Type", "application/json")
54896	c.urlParams_.Set("alt", alt)
54897	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{resource}/testIamPermissions")
54898	urls += "?" + c.urlParams_.Encode()
54899	req, _ := http.NewRequest("POST", urls, body)
54900	req.Header = reqHeaders
54901	googleapi.Expand(req.URL, map[string]string{
54902		"project":  c.project,
54903		"resource": c.resource,
54904	})
54905	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54906}
54907
54908// Do executes the "compute.licenses.testIamPermissions" call.
54909// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
54910// non-2xx status code is an error. Response headers are in either
54911// *TestPermissionsResponse.ServerResponse.Header or (if a response was
54912// returned at all) in error.(*googleapi.Error).Header. Use
54913// googleapi.IsNotModified to check whether the returned error was
54914// because http.StatusNotModified was returned.
54915func (c *LicensesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
54916	gensupport.SetOptions(c.urlParams_, opts...)
54917	res, err := c.doRequest("json")
54918	if res != nil && res.StatusCode == http.StatusNotModified {
54919		if res.Body != nil {
54920			res.Body.Close()
54921		}
54922		return nil, &googleapi.Error{
54923			Code:   res.StatusCode,
54924			Header: res.Header,
54925		}
54926	}
54927	if err != nil {
54928		return nil, err
54929	}
54930	defer googleapi.CloseBody(res)
54931	if err := googleapi.CheckResponse(res); err != nil {
54932		return nil, err
54933	}
54934	ret := &TestPermissionsResponse{
54935		ServerResponse: googleapi.ServerResponse{
54936			Header:         res.Header,
54937			HTTPStatusCode: res.StatusCode,
54938		},
54939	}
54940	target := &ret
54941	if err := gensupport.DecodeResponse(target, res); err != nil {
54942		return nil, err
54943	}
54944	return ret, nil
54945	// {
54946	//   "description": "Returns permissions that a caller has on the specified resource.",
54947	//   "httpMethod": "POST",
54948	//   "id": "compute.licenses.testIamPermissions",
54949	//   "parameterOrder": [
54950	//     "project",
54951	//     "resource"
54952	//   ],
54953	//   "parameters": {
54954	//     "project": {
54955	//       "description": "Project ID for this request.",
54956	//       "location": "path",
54957	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54958	//       "required": true,
54959	//       "type": "string"
54960	//     },
54961	//     "resource": {
54962	//       "description": "Name of the resource for this request.",
54963	//       "location": "path",
54964	//       "pattern": "(?:[-a-z0-9_]{0,62}[a-z0-9])?",
54965	//       "required": true,
54966	//       "type": "string"
54967	//     }
54968	//   },
54969	//   "path": "{project}/global/licenses/{resource}/testIamPermissions",
54970	//   "request": {
54971	//     "$ref": "TestPermissionsRequest"
54972	//   },
54973	//   "response": {
54974	//     "$ref": "TestPermissionsResponse"
54975	//   },
54976	//   "scopes": [
54977	//     "https://www.googleapis.com/auth/cloud-platform",
54978	//     "https://www.googleapis.com/auth/compute",
54979	//     "https://www.googleapis.com/auth/compute.readonly"
54980	//   ]
54981	// }
54982
54983}
54984
54985// method id "compute.machineTypes.aggregatedList":
54986
54987type MachineTypesAggregatedListCall struct {
54988	s            *Service
54989	project      string
54990	urlParams_   gensupport.URLParams
54991	ifNoneMatch_ string
54992	ctx_         context.Context
54993	header_      http.Header
54994}
54995
54996// AggregatedList: Retrieves an aggregated list of machine types.
54997// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/aggregatedList
54998func (r *MachineTypesService) AggregatedList(project string) *MachineTypesAggregatedListCall {
54999	c := &MachineTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55000	c.project = project
55001	return c
55002}
55003
55004// Filter sets the optional parameter "filter": A filter expression that
55005// filters resources listed in the response. The expression must specify
55006// the field name, a comparison operator, and the value that you want to
55007// use for filtering. The value must be a string, a number, or a
55008// boolean. The comparison operator must be either =, !=, >, or <.
55009//
55010// For example, if you are filtering Compute Engine instances, you can
55011// exclude instances named example-instance by specifying name !=
55012// example-instance.
55013//
55014// You can also filter nested fields. For example, you could specify
55015// scheduling.automaticRestart = false to include instances only if they
55016// are not scheduled for automatic restarts. You can use filtering on
55017// nested fields to filter based on resource labels.
55018//
55019// To filter on multiple expressions, provide each separate expression
55020// within parentheses. For example, (scheduling.automaticRestart = true)
55021// (cpuPlatform = "Intel Skylake"). By default, each expression is an
55022// AND expression. However, you can include AND and OR expressions
55023// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
55024// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
55025// true).
55026func (c *MachineTypesAggregatedListCall) Filter(filter string) *MachineTypesAggregatedListCall {
55027	c.urlParams_.Set("filter", filter)
55028	return c
55029}
55030
55031// MaxResults sets the optional parameter "maxResults": The maximum
55032// number of results per page that should be returned. If the number of
55033// available results is larger than maxResults, Compute Engine returns a
55034// nextPageToken that can be used to get the next page of results in
55035// subsequent list requests. Acceptable values are 0 to 500, inclusive.
55036// (Default: 500)
55037func (c *MachineTypesAggregatedListCall) MaxResults(maxResults int64) *MachineTypesAggregatedListCall {
55038	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
55039	return c
55040}
55041
55042// OrderBy sets the optional parameter "orderBy": Sorts list results by
55043// a certain order. By default, results are returned in alphanumerical
55044// order based on the resource name.
55045//
55046// You can also sort results in descending order based on the creation
55047// timestamp using orderBy="creationTimestamp desc". This sorts results
55048// based on the creationTimestamp field in reverse chronological order
55049// (newest result first). Use this to sort resources like operations so
55050// that the newest operation is returned first.
55051//
55052// Currently, only sorting by name or creationTimestamp desc is
55053// supported.
55054func (c *MachineTypesAggregatedListCall) OrderBy(orderBy string) *MachineTypesAggregatedListCall {
55055	c.urlParams_.Set("orderBy", orderBy)
55056	return c
55057}
55058
55059// PageToken sets the optional parameter "pageToken": Specifies a page
55060// token to use. Set pageToken to the nextPageToken returned by a
55061// previous list request to get the next page of results.
55062func (c *MachineTypesAggregatedListCall) PageToken(pageToken string) *MachineTypesAggregatedListCall {
55063	c.urlParams_.Set("pageToken", pageToken)
55064	return c
55065}
55066
55067// Fields allows partial responses to be retrieved. See
55068// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55069// for more information.
55070func (c *MachineTypesAggregatedListCall) Fields(s ...googleapi.Field) *MachineTypesAggregatedListCall {
55071	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55072	return c
55073}
55074
55075// IfNoneMatch sets the optional parameter which makes the operation
55076// fail if the object's ETag matches the given value. This is useful for
55077// getting updates only after the object has changed since the last
55078// request. Use googleapi.IsNotModified to check whether the response
55079// error from Do is the result of In-None-Match.
55080func (c *MachineTypesAggregatedListCall) IfNoneMatch(entityTag string) *MachineTypesAggregatedListCall {
55081	c.ifNoneMatch_ = entityTag
55082	return c
55083}
55084
55085// Context sets the context to be used in this call's Do method. Any
55086// pending HTTP request will be aborted if the provided context is
55087// canceled.
55088func (c *MachineTypesAggregatedListCall) Context(ctx context.Context) *MachineTypesAggregatedListCall {
55089	c.ctx_ = ctx
55090	return c
55091}
55092
55093// Header returns an http.Header that can be modified by the caller to
55094// add HTTP headers to the request.
55095func (c *MachineTypesAggregatedListCall) Header() http.Header {
55096	if c.header_ == nil {
55097		c.header_ = make(http.Header)
55098	}
55099	return c.header_
55100}
55101
55102func (c *MachineTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
55103	reqHeaders := make(http.Header)
55104	for k, v := range c.header_ {
55105		reqHeaders[k] = v
55106	}
55107	reqHeaders.Set("User-Agent", c.s.userAgent())
55108	if c.ifNoneMatch_ != "" {
55109		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55110	}
55111	var body io.Reader = nil
55112	c.urlParams_.Set("alt", alt)
55113	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/machineTypes")
55114	urls += "?" + c.urlParams_.Encode()
55115	req, _ := http.NewRequest("GET", urls, body)
55116	req.Header = reqHeaders
55117	googleapi.Expand(req.URL, map[string]string{
55118		"project": c.project,
55119	})
55120	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55121}
55122
55123// Do executes the "compute.machineTypes.aggregatedList" call.
55124// Exactly one of *MachineTypeAggregatedList or error will be non-nil.
55125// Any non-2xx status code is an error. Response headers are in either
55126// *MachineTypeAggregatedList.ServerResponse.Header or (if a response
55127// was returned at all) in error.(*googleapi.Error).Header. Use
55128// googleapi.IsNotModified to check whether the returned error was
55129// because http.StatusNotModified was returned.
55130func (c *MachineTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*MachineTypeAggregatedList, error) {
55131	gensupport.SetOptions(c.urlParams_, opts...)
55132	res, err := c.doRequest("json")
55133	if res != nil && res.StatusCode == http.StatusNotModified {
55134		if res.Body != nil {
55135			res.Body.Close()
55136		}
55137		return nil, &googleapi.Error{
55138			Code:   res.StatusCode,
55139			Header: res.Header,
55140		}
55141	}
55142	if err != nil {
55143		return nil, err
55144	}
55145	defer googleapi.CloseBody(res)
55146	if err := googleapi.CheckResponse(res); err != nil {
55147		return nil, err
55148	}
55149	ret := &MachineTypeAggregatedList{
55150		ServerResponse: googleapi.ServerResponse{
55151			Header:         res.Header,
55152			HTTPStatusCode: res.StatusCode,
55153		},
55154	}
55155	target := &ret
55156	if err := gensupport.DecodeResponse(target, res); err != nil {
55157		return nil, err
55158	}
55159	return ret, nil
55160	// {
55161	//   "description": "Retrieves an aggregated list of machine types.",
55162	//   "httpMethod": "GET",
55163	//   "id": "compute.machineTypes.aggregatedList",
55164	//   "parameterOrder": [
55165	//     "project"
55166	//   ],
55167	//   "parameters": {
55168	//     "filter": {
55169	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
55170	//       "location": "query",
55171	//       "type": "string"
55172	//     },
55173	//     "maxResults": {
55174	//       "default": "500",
55175	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
55176	//       "format": "uint32",
55177	//       "location": "query",
55178	//       "minimum": "0",
55179	//       "type": "integer"
55180	//     },
55181	//     "orderBy": {
55182	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
55183	//       "location": "query",
55184	//       "type": "string"
55185	//     },
55186	//     "pageToken": {
55187	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
55188	//       "location": "query",
55189	//       "type": "string"
55190	//     },
55191	//     "project": {
55192	//       "description": "Project ID for this request.",
55193	//       "location": "path",
55194	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55195	//       "required": true,
55196	//       "type": "string"
55197	//     }
55198	//   },
55199	//   "path": "{project}/aggregated/machineTypes",
55200	//   "response": {
55201	//     "$ref": "MachineTypeAggregatedList"
55202	//   },
55203	//   "scopes": [
55204	//     "https://www.googleapis.com/auth/cloud-platform",
55205	//     "https://www.googleapis.com/auth/compute",
55206	//     "https://www.googleapis.com/auth/compute.readonly"
55207	//   ]
55208	// }
55209
55210}
55211
55212// Pages invokes f for each page of results.
55213// A non-nil error returned from f will halt the iteration.
55214// The provided context supersedes any context provided to the Context method.
55215func (c *MachineTypesAggregatedListCall) Pages(ctx context.Context, f func(*MachineTypeAggregatedList) error) error {
55216	c.ctx_ = ctx
55217	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
55218	for {
55219		x, err := c.Do()
55220		if err != nil {
55221			return err
55222		}
55223		if err := f(x); err != nil {
55224			return err
55225		}
55226		if x.NextPageToken == "" {
55227			return nil
55228		}
55229		c.PageToken(x.NextPageToken)
55230	}
55231}
55232
55233// method id "compute.machineTypes.get":
55234
55235type MachineTypesGetCall struct {
55236	s            *Service
55237	project      string
55238	zone         string
55239	machineType  string
55240	urlParams_   gensupport.URLParams
55241	ifNoneMatch_ string
55242	ctx_         context.Context
55243	header_      http.Header
55244}
55245
55246// Get: Returns the specified machine type. Gets a list of available
55247// machine types by making a list() request.
55248// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/get
55249func (r *MachineTypesService) Get(project string, zone string, machineType string) *MachineTypesGetCall {
55250	c := &MachineTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55251	c.project = project
55252	c.zone = zone
55253	c.machineType = machineType
55254	return c
55255}
55256
55257// Fields allows partial responses to be retrieved. See
55258// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55259// for more information.
55260func (c *MachineTypesGetCall) Fields(s ...googleapi.Field) *MachineTypesGetCall {
55261	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55262	return c
55263}
55264
55265// IfNoneMatch sets the optional parameter which makes the operation
55266// fail if the object's ETag matches the given value. This is useful for
55267// getting updates only after the object has changed since the last
55268// request. Use googleapi.IsNotModified to check whether the response
55269// error from Do is the result of In-None-Match.
55270func (c *MachineTypesGetCall) IfNoneMatch(entityTag string) *MachineTypesGetCall {
55271	c.ifNoneMatch_ = entityTag
55272	return c
55273}
55274
55275// Context sets the context to be used in this call's Do method. Any
55276// pending HTTP request will be aborted if the provided context is
55277// canceled.
55278func (c *MachineTypesGetCall) Context(ctx context.Context) *MachineTypesGetCall {
55279	c.ctx_ = ctx
55280	return c
55281}
55282
55283// Header returns an http.Header that can be modified by the caller to
55284// add HTTP headers to the request.
55285func (c *MachineTypesGetCall) Header() http.Header {
55286	if c.header_ == nil {
55287		c.header_ = make(http.Header)
55288	}
55289	return c.header_
55290}
55291
55292func (c *MachineTypesGetCall) doRequest(alt string) (*http.Response, error) {
55293	reqHeaders := make(http.Header)
55294	for k, v := range c.header_ {
55295		reqHeaders[k] = v
55296	}
55297	reqHeaders.Set("User-Agent", c.s.userAgent())
55298	if c.ifNoneMatch_ != "" {
55299		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55300	}
55301	var body io.Reader = nil
55302	c.urlParams_.Set("alt", alt)
55303	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/machineTypes/{machineType}")
55304	urls += "?" + c.urlParams_.Encode()
55305	req, _ := http.NewRequest("GET", urls, body)
55306	req.Header = reqHeaders
55307	googleapi.Expand(req.URL, map[string]string{
55308		"project":     c.project,
55309		"zone":        c.zone,
55310		"machineType": c.machineType,
55311	})
55312	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55313}
55314
55315// Do executes the "compute.machineTypes.get" call.
55316// Exactly one of *MachineType or error will be non-nil. Any non-2xx
55317// status code is an error. Response headers are in either
55318// *MachineType.ServerResponse.Header or (if a response was returned at
55319// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55320// to check whether the returned error was because
55321// http.StatusNotModified was returned.
55322func (c *MachineTypesGetCall) Do(opts ...googleapi.CallOption) (*MachineType, error) {
55323	gensupport.SetOptions(c.urlParams_, opts...)
55324	res, err := c.doRequest("json")
55325	if res != nil && res.StatusCode == http.StatusNotModified {
55326		if res.Body != nil {
55327			res.Body.Close()
55328		}
55329		return nil, &googleapi.Error{
55330			Code:   res.StatusCode,
55331			Header: res.Header,
55332		}
55333	}
55334	if err != nil {
55335		return nil, err
55336	}
55337	defer googleapi.CloseBody(res)
55338	if err := googleapi.CheckResponse(res); err != nil {
55339		return nil, err
55340	}
55341	ret := &MachineType{
55342		ServerResponse: googleapi.ServerResponse{
55343			Header:         res.Header,
55344			HTTPStatusCode: res.StatusCode,
55345		},
55346	}
55347	target := &ret
55348	if err := gensupport.DecodeResponse(target, res); err != nil {
55349		return nil, err
55350	}
55351	return ret, nil
55352	// {
55353	//   "description": "Returns the specified machine type. Gets a list of available machine types by making a list() request.",
55354	//   "httpMethod": "GET",
55355	//   "id": "compute.machineTypes.get",
55356	//   "parameterOrder": [
55357	//     "project",
55358	//     "zone",
55359	//     "machineType"
55360	//   ],
55361	//   "parameters": {
55362	//     "machineType": {
55363	//       "description": "Name of the machine type to return.",
55364	//       "location": "path",
55365	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
55366	//       "required": true,
55367	//       "type": "string"
55368	//     },
55369	//     "project": {
55370	//       "description": "Project ID for this request.",
55371	//       "location": "path",
55372	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55373	//       "required": true,
55374	//       "type": "string"
55375	//     },
55376	//     "zone": {
55377	//       "description": "The name of the zone for this request.",
55378	//       "location": "path",
55379	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
55380	//       "required": true,
55381	//       "type": "string"
55382	//     }
55383	//   },
55384	//   "path": "{project}/zones/{zone}/machineTypes/{machineType}",
55385	//   "response": {
55386	//     "$ref": "MachineType"
55387	//   },
55388	//   "scopes": [
55389	//     "https://www.googleapis.com/auth/cloud-platform",
55390	//     "https://www.googleapis.com/auth/compute",
55391	//     "https://www.googleapis.com/auth/compute.readonly"
55392	//   ]
55393	// }
55394
55395}
55396
55397// method id "compute.machineTypes.list":
55398
55399type MachineTypesListCall struct {
55400	s            *Service
55401	project      string
55402	zone         string
55403	urlParams_   gensupport.URLParams
55404	ifNoneMatch_ string
55405	ctx_         context.Context
55406	header_      http.Header
55407}
55408
55409// List: Retrieves a list of machine types available to the specified
55410// project.
55411// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/list
55412func (r *MachineTypesService) List(project string, zone string) *MachineTypesListCall {
55413	c := &MachineTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55414	c.project = project
55415	c.zone = zone
55416	return c
55417}
55418
55419// Filter sets the optional parameter "filter": A filter expression that
55420// filters resources listed in the response. The expression must specify
55421// the field name, a comparison operator, and the value that you want to
55422// use for filtering. The value must be a string, a number, or a
55423// boolean. The comparison operator must be either =, !=, >, or <.
55424//
55425// For example, if you are filtering Compute Engine instances, you can
55426// exclude instances named example-instance by specifying name !=
55427// example-instance.
55428//
55429// You can also filter nested fields. For example, you could specify
55430// scheduling.automaticRestart = false to include instances only if they
55431// are not scheduled for automatic restarts. You can use filtering on
55432// nested fields to filter based on resource labels.
55433//
55434// To filter on multiple expressions, provide each separate expression
55435// within parentheses. For example, (scheduling.automaticRestart = true)
55436// (cpuPlatform = "Intel Skylake"). By default, each expression is an
55437// AND expression. However, you can include AND and OR expressions
55438// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
55439// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
55440// true).
55441func (c *MachineTypesListCall) Filter(filter string) *MachineTypesListCall {
55442	c.urlParams_.Set("filter", filter)
55443	return c
55444}
55445
55446// MaxResults sets the optional parameter "maxResults": The maximum
55447// number of results per page that should be returned. If the number of
55448// available results is larger than maxResults, Compute Engine returns a
55449// nextPageToken that can be used to get the next page of results in
55450// subsequent list requests. Acceptable values are 0 to 500, inclusive.
55451// (Default: 500)
55452func (c *MachineTypesListCall) MaxResults(maxResults int64) *MachineTypesListCall {
55453	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
55454	return c
55455}
55456
55457// OrderBy sets the optional parameter "orderBy": Sorts list results by
55458// a certain order. By default, results are returned in alphanumerical
55459// order based on the resource name.
55460//
55461// You can also sort results in descending order based on the creation
55462// timestamp using orderBy="creationTimestamp desc". This sorts results
55463// based on the creationTimestamp field in reverse chronological order
55464// (newest result first). Use this to sort resources like operations so
55465// that the newest operation is returned first.
55466//
55467// Currently, only sorting by name or creationTimestamp desc is
55468// supported.
55469func (c *MachineTypesListCall) OrderBy(orderBy string) *MachineTypesListCall {
55470	c.urlParams_.Set("orderBy", orderBy)
55471	return c
55472}
55473
55474// PageToken sets the optional parameter "pageToken": Specifies a page
55475// token to use. Set pageToken to the nextPageToken returned by a
55476// previous list request to get the next page of results.
55477func (c *MachineTypesListCall) PageToken(pageToken string) *MachineTypesListCall {
55478	c.urlParams_.Set("pageToken", pageToken)
55479	return c
55480}
55481
55482// Fields allows partial responses to be retrieved. See
55483// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55484// for more information.
55485func (c *MachineTypesListCall) Fields(s ...googleapi.Field) *MachineTypesListCall {
55486	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55487	return c
55488}
55489
55490// IfNoneMatch sets the optional parameter which makes the operation
55491// fail if the object's ETag matches the given value. This is useful for
55492// getting updates only after the object has changed since the last
55493// request. Use googleapi.IsNotModified to check whether the response
55494// error from Do is the result of In-None-Match.
55495func (c *MachineTypesListCall) IfNoneMatch(entityTag string) *MachineTypesListCall {
55496	c.ifNoneMatch_ = entityTag
55497	return c
55498}
55499
55500// Context sets the context to be used in this call's Do method. Any
55501// pending HTTP request will be aborted if the provided context is
55502// canceled.
55503func (c *MachineTypesListCall) Context(ctx context.Context) *MachineTypesListCall {
55504	c.ctx_ = ctx
55505	return c
55506}
55507
55508// Header returns an http.Header that can be modified by the caller to
55509// add HTTP headers to the request.
55510func (c *MachineTypesListCall) Header() http.Header {
55511	if c.header_ == nil {
55512		c.header_ = make(http.Header)
55513	}
55514	return c.header_
55515}
55516
55517func (c *MachineTypesListCall) doRequest(alt string) (*http.Response, error) {
55518	reqHeaders := make(http.Header)
55519	for k, v := range c.header_ {
55520		reqHeaders[k] = v
55521	}
55522	reqHeaders.Set("User-Agent", c.s.userAgent())
55523	if c.ifNoneMatch_ != "" {
55524		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55525	}
55526	var body io.Reader = nil
55527	c.urlParams_.Set("alt", alt)
55528	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/machineTypes")
55529	urls += "?" + c.urlParams_.Encode()
55530	req, _ := http.NewRequest("GET", urls, body)
55531	req.Header = reqHeaders
55532	googleapi.Expand(req.URL, map[string]string{
55533		"project": c.project,
55534		"zone":    c.zone,
55535	})
55536	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55537}
55538
55539// Do executes the "compute.machineTypes.list" call.
55540// Exactly one of *MachineTypeList or error will be non-nil. Any non-2xx
55541// status code is an error. Response headers are in either
55542// *MachineTypeList.ServerResponse.Header or (if a response was returned
55543// at all) in error.(*googleapi.Error).Header. Use
55544// googleapi.IsNotModified to check whether the returned error was
55545// because http.StatusNotModified was returned.
55546func (c *MachineTypesListCall) Do(opts ...googleapi.CallOption) (*MachineTypeList, error) {
55547	gensupport.SetOptions(c.urlParams_, opts...)
55548	res, err := c.doRequest("json")
55549	if res != nil && res.StatusCode == http.StatusNotModified {
55550		if res.Body != nil {
55551			res.Body.Close()
55552		}
55553		return nil, &googleapi.Error{
55554			Code:   res.StatusCode,
55555			Header: res.Header,
55556		}
55557	}
55558	if err != nil {
55559		return nil, err
55560	}
55561	defer googleapi.CloseBody(res)
55562	if err := googleapi.CheckResponse(res); err != nil {
55563		return nil, err
55564	}
55565	ret := &MachineTypeList{
55566		ServerResponse: googleapi.ServerResponse{
55567			Header:         res.Header,
55568			HTTPStatusCode: res.StatusCode,
55569		},
55570	}
55571	target := &ret
55572	if err := gensupport.DecodeResponse(target, res); err != nil {
55573		return nil, err
55574	}
55575	return ret, nil
55576	// {
55577	//   "description": "Retrieves a list of machine types available to the specified project.",
55578	//   "httpMethod": "GET",
55579	//   "id": "compute.machineTypes.list",
55580	//   "parameterOrder": [
55581	//     "project",
55582	//     "zone"
55583	//   ],
55584	//   "parameters": {
55585	//     "filter": {
55586	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
55587	//       "location": "query",
55588	//       "type": "string"
55589	//     },
55590	//     "maxResults": {
55591	//       "default": "500",
55592	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
55593	//       "format": "uint32",
55594	//       "location": "query",
55595	//       "minimum": "0",
55596	//       "type": "integer"
55597	//     },
55598	//     "orderBy": {
55599	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
55600	//       "location": "query",
55601	//       "type": "string"
55602	//     },
55603	//     "pageToken": {
55604	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
55605	//       "location": "query",
55606	//       "type": "string"
55607	//     },
55608	//     "project": {
55609	//       "description": "Project ID for this request.",
55610	//       "location": "path",
55611	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55612	//       "required": true,
55613	//       "type": "string"
55614	//     },
55615	//     "zone": {
55616	//       "description": "The name of the zone for this request.",
55617	//       "location": "path",
55618	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
55619	//       "required": true,
55620	//       "type": "string"
55621	//     }
55622	//   },
55623	//   "path": "{project}/zones/{zone}/machineTypes",
55624	//   "response": {
55625	//     "$ref": "MachineTypeList"
55626	//   },
55627	//   "scopes": [
55628	//     "https://www.googleapis.com/auth/cloud-platform",
55629	//     "https://www.googleapis.com/auth/compute",
55630	//     "https://www.googleapis.com/auth/compute.readonly"
55631	//   ]
55632	// }
55633
55634}
55635
55636// Pages invokes f for each page of results.
55637// A non-nil error returned from f will halt the iteration.
55638// The provided context supersedes any context provided to the Context method.
55639func (c *MachineTypesListCall) Pages(ctx context.Context, f func(*MachineTypeList) error) error {
55640	c.ctx_ = ctx
55641	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
55642	for {
55643		x, err := c.Do()
55644		if err != nil {
55645			return err
55646		}
55647		if err := f(x); err != nil {
55648			return err
55649		}
55650		if x.NextPageToken == "" {
55651			return nil
55652		}
55653		c.PageToken(x.NextPageToken)
55654	}
55655}
55656
55657// method id "compute.networks.addPeering":
55658
55659type NetworksAddPeeringCall struct {
55660	s                         *Service
55661	project                   string
55662	network                   string
55663	networksaddpeeringrequest *NetworksAddPeeringRequest
55664	urlParams_                gensupport.URLParams
55665	ctx_                      context.Context
55666	header_                   http.Header
55667}
55668
55669// AddPeering: Adds a peering to the specified network.
55670func (r *NetworksService) AddPeering(project string, network string, networksaddpeeringrequest *NetworksAddPeeringRequest) *NetworksAddPeeringCall {
55671	c := &NetworksAddPeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55672	c.project = project
55673	c.network = network
55674	c.networksaddpeeringrequest = networksaddpeeringrequest
55675	return c
55676}
55677
55678// RequestId sets the optional parameter "requestId": An optional
55679// request ID to identify requests. Specify a unique request ID so that
55680// if you must retry your request, the server will know to ignore the
55681// request if it has already been completed.
55682//
55683// For example, consider a situation where you make an initial request
55684// and the request times out. If you make the request again with the
55685// same request ID, the server can check if original operation with the
55686// same request ID was received, and if so, will ignore the second
55687// request. This prevents clients from accidentally creating duplicate
55688// commitments.
55689//
55690// The request ID must be a valid UUID with the exception that zero UUID
55691// is not supported (00000000-0000-0000-0000-000000000000).
55692func (c *NetworksAddPeeringCall) RequestId(requestId string) *NetworksAddPeeringCall {
55693	c.urlParams_.Set("requestId", requestId)
55694	return c
55695}
55696
55697// Fields allows partial responses to be retrieved. See
55698// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55699// for more information.
55700func (c *NetworksAddPeeringCall) Fields(s ...googleapi.Field) *NetworksAddPeeringCall {
55701	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55702	return c
55703}
55704
55705// Context sets the context to be used in this call's Do method. Any
55706// pending HTTP request will be aborted if the provided context is
55707// canceled.
55708func (c *NetworksAddPeeringCall) Context(ctx context.Context) *NetworksAddPeeringCall {
55709	c.ctx_ = ctx
55710	return c
55711}
55712
55713// Header returns an http.Header that can be modified by the caller to
55714// add HTTP headers to the request.
55715func (c *NetworksAddPeeringCall) Header() http.Header {
55716	if c.header_ == nil {
55717		c.header_ = make(http.Header)
55718	}
55719	return c.header_
55720}
55721
55722func (c *NetworksAddPeeringCall) doRequest(alt string) (*http.Response, error) {
55723	reqHeaders := make(http.Header)
55724	for k, v := range c.header_ {
55725		reqHeaders[k] = v
55726	}
55727	reqHeaders.Set("User-Agent", c.s.userAgent())
55728	var body io.Reader = nil
55729	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksaddpeeringrequest)
55730	if err != nil {
55731		return nil, err
55732	}
55733	reqHeaders.Set("Content-Type", "application/json")
55734	c.urlParams_.Set("alt", alt)
55735	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/addPeering")
55736	urls += "?" + c.urlParams_.Encode()
55737	req, _ := http.NewRequest("POST", urls, body)
55738	req.Header = reqHeaders
55739	googleapi.Expand(req.URL, map[string]string{
55740		"project": c.project,
55741		"network": c.network,
55742	})
55743	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55744}
55745
55746// Do executes the "compute.networks.addPeering" call.
55747// Exactly one of *Operation or error will be non-nil. Any non-2xx
55748// status code is an error. Response headers are in either
55749// *Operation.ServerResponse.Header or (if a response was returned at
55750// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55751// to check whether the returned error was because
55752// http.StatusNotModified was returned.
55753func (c *NetworksAddPeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55754	gensupport.SetOptions(c.urlParams_, opts...)
55755	res, err := c.doRequest("json")
55756	if res != nil && res.StatusCode == http.StatusNotModified {
55757		if res.Body != nil {
55758			res.Body.Close()
55759		}
55760		return nil, &googleapi.Error{
55761			Code:   res.StatusCode,
55762			Header: res.Header,
55763		}
55764	}
55765	if err != nil {
55766		return nil, err
55767	}
55768	defer googleapi.CloseBody(res)
55769	if err := googleapi.CheckResponse(res); err != nil {
55770		return nil, err
55771	}
55772	ret := &Operation{
55773		ServerResponse: googleapi.ServerResponse{
55774			Header:         res.Header,
55775			HTTPStatusCode: res.StatusCode,
55776		},
55777	}
55778	target := &ret
55779	if err := gensupport.DecodeResponse(target, res); err != nil {
55780		return nil, err
55781	}
55782	return ret, nil
55783	// {
55784	//   "description": "Adds a peering to the specified network.",
55785	//   "httpMethod": "POST",
55786	//   "id": "compute.networks.addPeering",
55787	//   "parameterOrder": [
55788	//     "project",
55789	//     "network"
55790	//   ],
55791	//   "parameters": {
55792	//     "network": {
55793	//       "description": "Name of the network resource to add peering to.",
55794	//       "location": "path",
55795	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
55796	//       "required": true,
55797	//       "type": "string"
55798	//     },
55799	//     "project": {
55800	//       "description": "Project ID for this request.",
55801	//       "location": "path",
55802	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55803	//       "required": true,
55804	//       "type": "string"
55805	//     },
55806	//     "requestId": {
55807	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55808	//       "location": "query",
55809	//       "type": "string"
55810	//     }
55811	//   },
55812	//   "path": "{project}/global/networks/{network}/addPeering",
55813	//   "request": {
55814	//     "$ref": "NetworksAddPeeringRequest"
55815	//   },
55816	//   "response": {
55817	//     "$ref": "Operation"
55818	//   },
55819	//   "scopes": [
55820	//     "https://www.googleapis.com/auth/cloud-platform",
55821	//     "https://www.googleapis.com/auth/compute"
55822	//   ]
55823	// }
55824
55825}
55826
55827// method id "compute.networks.delete":
55828
55829type NetworksDeleteCall struct {
55830	s          *Service
55831	project    string
55832	network    string
55833	urlParams_ gensupport.URLParams
55834	ctx_       context.Context
55835	header_    http.Header
55836}
55837
55838// Delete: Deletes the specified network.
55839// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/delete
55840func (r *NetworksService) Delete(project string, network string) *NetworksDeleteCall {
55841	c := &NetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55842	c.project = project
55843	c.network = network
55844	return c
55845}
55846
55847// RequestId sets the optional parameter "requestId": An optional
55848// request ID to identify requests. Specify a unique request ID so that
55849// if you must retry your request, the server will know to ignore the
55850// request if it has already been completed.
55851//
55852// For example, consider a situation where you make an initial request
55853// and the request times out. If you make the request again with the
55854// same request ID, the server can check if original operation with the
55855// same request ID was received, and if so, will ignore the second
55856// request. This prevents clients from accidentally creating duplicate
55857// commitments.
55858//
55859// The request ID must be a valid UUID with the exception that zero UUID
55860// is not supported (00000000-0000-0000-0000-000000000000).
55861func (c *NetworksDeleteCall) RequestId(requestId string) *NetworksDeleteCall {
55862	c.urlParams_.Set("requestId", requestId)
55863	return c
55864}
55865
55866// Fields allows partial responses to be retrieved. See
55867// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55868// for more information.
55869func (c *NetworksDeleteCall) Fields(s ...googleapi.Field) *NetworksDeleteCall {
55870	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55871	return c
55872}
55873
55874// Context sets the context to be used in this call's Do method. Any
55875// pending HTTP request will be aborted if the provided context is
55876// canceled.
55877func (c *NetworksDeleteCall) Context(ctx context.Context) *NetworksDeleteCall {
55878	c.ctx_ = ctx
55879	return c
55880}
55881
55882// Header returns an http.Header that can be modified by the caller to
55883// add HTTP headers to the request.
55884func (c *NetworksDeleteCall) Header() http.Header {
55885	if c.header_ == nil {
55886		c.header_ = make(http.Header)
55887	}
55888	return c.header_
55889}
55890
55891func (c *NetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
55892	reqHeaders := make(http.Header)
55893	for k, v := range c.header_ {
55894		reqHeaders[k] = v
55895	}
55896	reqHeaders.Set("User-Agent", c.s.userAgent())
55897	var body io.Reader = nil
55898	c.urlParams_.Set("alt", alt)
55899	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
55900	urls += "?" + c.urlParams_.Encode()
55901	req, _ := http.NewRequest("DELETE", urls, body)
55902	req.Header = reqHeaders
55903	googleapi.Expand(req.URL, map[string]string{
55904		"project": c.project,
55905		"network": c.network,
55906	})
55907	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55908}
55909
55910// Do executes the "compute.networks.delete" call.
55911// Exactly one of *Operation or error will be non-nil. Any non-2xx
55912// status code is an error. Response headers are in either
55913// *Operation.ServerResponse.Header or (if a response was returned at
55914// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55915// to check whether the returned error was because
55916// http.StatusNotModified was returned.
55917func (c *NetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55918	gensupport.SetOptions(c.urlParams_, opts...)
55919	res, err := c.doRequest("json")
55920	if res != nil && res.StatusCode == http.StatusNotModified {
55921		if res.Body != nil {
55922			res.Body.Close()
55923		}
55924		return nil, &googleapi.Error{
55925			Code:   res.StatusCode,
55926			Header: res.Header,
55927		}
55928	}
55929	if err != nil {
55930		return nil, err
55931	}
55932	defer googleapi.CloseBody(res)
55933	if err := googleapi.CheckResponse(res); err != nil {
55934		return nil, err
55935	}
55936	ret := &Operation{
55937		ServerResponse: googleapi.ServerResponse{
55938			Header:         res.Header,
55939			HTTPStatusCode: res.StatusCode,
55940		},
55941	}
55942	target := &ret
55943	if err := gensupport.DecodeResponse(target, res); err != nil {
55944		return nil, err
55945	}
55946	return ret, nil
55947	// {
55948	//   "description": "Deletes the specified network.",
55949	//   "httpMethod": "DELETE",
55950	//   "id": "compute.networks.delete",
55951	//   "parameterOrder": [
55952	//     "project",
55953	//     "network"
55954	//   ],
55955	//   "parameters": {
55956	//     "network": {
55957	//       "description": "Name of the network to delete.",
55958	//       "location": "path",
55959	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
55960	//       "required": true,
55961	//       "type": "string"
55962	//     },
55963	//     "project": {
55964	//       "description": "Project ID for this request.",
55965	//       "location": "path",
55966	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55967	//       "required": true,
55968	//       "type": "string"
55969	//     },
55970	//     "requestId": {
55971	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55972	//       "location": "query",
55973	//       "type": "string"
55974	//     }
55975	//   },
55976	//   "path": "{project}/global/networks/{network}",
55977	//   "response": {
55978	//     "$ref": "Operation"
55979	//   },
55980	//   "scopes": [
55981	//     "https://www.googleapis.com/auth/cloud-platform",
55982	//     "https://www.googleapis.com/auth/compute"
55983	//   ]
55984	// }
55985
55986}
55987
55988// method id "compute.networks.get":
55989
55990type NetworksGetCall struct {
55991	s            *Service
55992	project      string
55993	network      string
55994	urlParams_   gensupport.URLParams
55995	ifNoneMatch_ string
55996	ctx_         context.Context
55997	header_      http.Header
55998}
55999
56000// Get: Returns the specified network. Gets a list of available networks
56001// by making a list() request.
56002// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/get
56003func (r *NetworksService) Get(project string, network string) *NetworksGetCall {
56004	c := &NetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56005	c.project = project
56006	c.network = network
56007	return c
56008}
56009
56010// Fields allows partial responses to be retrieved. See
56011// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56012// for more information.
56013func (c *NetworksGetCall) Fields(s ...googleapi.Field) *NetworksGetCall {
56014	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56015	return c
56016}
56017
56018// IfNoneMatch sets the optional parameter which makes the operation
56019// fail if the object's ETag matches the given value. This is useful for
56020// getting updates only after the object has changed since the last
56021// request. Use googleapi.IsNotModified to check whether the response
56022// error from Do is the result of In-None-Match.
56023func (c *NetworksGetCall) IfNoneMatch(entityTag string) *NetworksGetCall {
56024	c.ifNoneMatch_ = entityTag
56025	return c
56026}
56027
56028// Context sets the context to be used in this call's Do method. Any
56029// pending HTTP request will be aborted if the provided context is
56030// canceled.
56031func (c *NetworksGetCall) Context(ctx context.Context) *NetworksGetCall {
56032	c.ctx_ = ctx
56033	return c
56034}
56035
56036// Header returns an http.Header that can be modified by the caller to
56037// add HTTP headers to the request.
56038func (c *NetworksGetCall) Header() http.Header {
56039	if c.header_ == nil {
56040		c.header_ = make(http.Header)
56041	}
56042	return c.header_
56043}
56044
56045func (c *NetworksGetCall) doRequest(alt string) (*http.Response, error) {
56046	reqHeaders := make(http.Header)
56047	for k, v := range c.header_ {
56048		reqHeaders[k] = v
56049	}
56050	reqHeaders.Set("User-Agent", c.s.userAgent())
56051	if c.ifNoneMatch_ != "" {
56052		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
56053	}
56054	var body io.Reader = nil
56055	c.urlParams_.Set("alt", alt)
56056	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
56057	urls += "?" + c.urlParams_.Encode()
56058	req, _ := http.NewRequest("GET", urls, body)
56059	req.Header = reqHeaders
56060	googleapi.Expand(req.URL, map[string]string{
56061		"project": c.project,
56062		"network": c.network,
56063	})
56064	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56065}
56066
56067// Do executes the "compute.networks.get" call.
56068// Exactly one of *Network or error will be non-nil. Any non-2xx status
56069// code is an error. Response headers are in either
56070// *Network.ServerResponse.Header or (if a response was returned at all)
56071// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
56072// check whether the returned error was because http.StatusNotModified
56073// was returned.
56074func (c *NetworksGetCall) Do(opts ...googleapi.CallOption) (*Network, error) {
56075	gensupport.SetOptions(c.urlParams_, opts...)
56076	res, err := c.doRequest("json")
56077	if res != nil && res.StatusCode == http.StatusNotModified {
56078		if res.Body != nil {
56079			res.Body.Close()
56080		}
56081		return nil, &googleapi.Error{
56082			Code:   res.StatusCode,
56083			Header: res.Header,
56084		}
56085	}
56086	if err != nil {
56087		return nil, err
56088	}
56089	defer googleapi.CloseBody(res)
56090	if err := googleapi.CheckResponse(res); err != nil {
56091		return nil, err
56092	}
56093	ret := &Network{
56094		ServerResponse: googleapi.ServerResponse{
56095			Header:         res.Header,
56096			HTTPStatusCode: res.StatusCode,
56097		},
56098	}
56099	target := &ret
56100	if err := gensupport.DecodeResponse(target, res); err != nil {
56101		return nil, err
56102	}
56103	return ret, nil
56104	// {
56105	//   "description": "Returns the specified network. Gets a list of available networks by making a list() request.",
56106	//   "httpMethod": "GET",
56107	//   "id": "compute.networks.get",
56108	//   "parameterOrder": [
56109	//     "project",
56110	//     "network"
56111	//   ],
56112	//   "parameters": {
56113	//     "network": {
56114	//       "description": "Name of the network to return.",
56115	//       "location": "path",
56116	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
56117	//       "required": true,
56118	//       "type": "string"
56119	//     },
56120	//     "project": {
56121	//       "description": "Project ID for this request.",
56122	//       "location": "path",
56123	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56124	//       "required": true,
56125	//       "type": "string"
56126	//     }
56127	//   },
56128	//   "path": "{project}/global/networks/{network}",
56129	//   "response": {
56130	//     "$ref": "Network"
56131	//   },
56132	//   "scopes": [
56133	//     "https://www.googleapis.com/auth/cloud-platform",
56134	//     "https://www.googleapis.com/auth/compute",
56135	//     "https://www.googleapis.com/auth/compute.readonly"
56136	//   ]
56137	// }
56138
56139}
56140
56141// method id "compute.networks.insert":
56142
56143type NetworksInsertCall struct {
56144	s          *Service
56145	project    string
56146	network    *Network
56147	urlParams_ gensupport.URLParams
56148	ctx_       context.Context
56149	header_    http.Header
56150}
56151
56152// Insert: Creates a network in the specified project using the data
56153// included in the request.
56154// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/insert
56155func (r *NetworksService) Insert(project string, network *Network) *NetworksInsertCall {
56156	c := &NetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56157	c.project = project
56158	c.network = network
56159	return c
56160}
56161
56162// RequestId sets the optional parameter "requestId": An optional
56163// request ID to identify requests. Specify a unique request ID so that
56164// if you must retry your request, the server will know to ignore the
56165// request if it has already been completed.
56166//
56167// For example, consider a situation where you make an initial request
56168// and the request times out. If you make the request again with the
56169// same request ID, the server can check if original operation with the
56170// same request ID was received, and if so, will ignore the second
56171// request. This prevents clients from accidentally creating duplicate
56172// commitments.
56173//
56174// The request ID must be a valid UUID with the exception that zero UUID
56175// is not supported (00000000-0000-0000-0000-000000000000).
56176func (c *NetworksInsertCall) RequestId(requestId string) *NetworksInsertCall {
56177	c.urlParams_.Set("requestId", requestId)
56178	return c
56179}
56180
56181// Fields allows partial responses to be retrieved. See
56182// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56183// for more information.
56184func (c *NetworksInsertCall) Fields(s ...googleapi.Field) *NetworksInsertCall {
56185	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56186	return c
56187}
56188
56189// Context sets the context to be used in this call's Do method. Any
56190// pending HTTP request will be aborted if the provided context is
56191// canceled.
56192func (c *NetworksInsertCall) Context(ctx context.Context) *NetworksInsertCall {
56193	c.ctx_ = ctx
56194	return c
56195}
56196
56197// Header returns an http.Header that can be modified by the caller to
56198// add HTTP headers to the request.
56199func (c *NetworksInsertCall) Header() http.Header {
56200	if c.header_ == nil {
56201		c.header_ = make(http.Header)
56202	}
56203	return c.header_
56204}
56205
56206func (c *NetworksInsertCall) doRequest(alt string) (*http.Response, error) {
56207	reqHeaders := make(http.Header)
56208	for k, v := range c.header_ {
56209		reqHeaders[k] = v
56210	}
56211	reqHeaders.Set("User-Agent", c.s.userAgent())
56212	var body io.Reader = nil
56213	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network)
56214	if err != nil {
56215		return nil, err
56216	}
56217	reqHeaders.Set("Content-Type", "application/json")
56218	c.urlParams_.Set("alt", alt)
56219	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks")
56220	urls += "?" + c.urlParams_.Encode()
56221	req, _ := http.NewRequest("POST", urls, body)
56222	req.Header = reqHeaders
56223	googleapi.Expand(req.URL, map[string]string{
56224		"project": c.project,
56225	})
56226	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56227}
56228
56229// Do executes the "compute.networks.insert" call.
56230// Exactly one of *Operation or error will be non-nil. Any non-2xx
56231// status code is an error. Response headers are in either
56232// *Operation.ServerResponse.Header or (if a response was returned at
56233// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56234// to check whether the returned error was because
56235// http.StatusNotModified was returned.
56236func (c *NetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56237	gensupport.SetOptions(c.urlParams_, opts...)
56238	res, err := c.doRequest("json")
56239	if res != nil && res.StatusCode == http.StatusNotModified {
56240		if res.Body != nil {
56241			res.Body.Close()
56242		}
56243		return nil, &googleapi.Error{
56244			Code:   res.StatusCode,
56245			Header: res.Header,
56246		}
56247	}
56248	if err != nil {
56249		return nil, err
56250	}
56251	defer googleapi.CloseBody(res)
56252	if err := googleapi.CheckResponse(res); err != nil {
56253		return nil, err
56254	}
56255	ret := &Operation{
56256		ServerResponse: googleapi.ServerResponse{
56257			Header:         res.Header,
56258			HTTPStatusCode: res.StatusCode,
56259		},
56260	}
56261	target := &ret
56262	if err := gensupport.DecodeResponse(target, res); err != nil {
56263		return nil, err
56264	}
56265	return ret, nil
56266	// {
56267	//   "description": "Creates a network in the specified project using the data included in the request.",
56268	//   "httpMethod": "POST",
56269	//   "id": "compute.networks.insert",
56270	//   "parameterOrder": [
56271	//     "project"
56272	//   ],
56273	//   "parameters": {
56274	//     "project": {
56275	//       "description": "Project ID for this request.",
56276	//       "location": "path",
56277	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56278	//       "required": true,
56279	//       "type": "string"
56280	//     },
56281	//     "requestId": {
56282	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56283	//       "location": "query",
56284	//       "type": "string"
56285	//     }
56286	//   },
56287	//   "path": "{project}/global/networks",
56288	//   "request": {
56289	//     "$ref": "Network"
56290	//   },
56291	//   "response": {
56292	//     "$ref": "Operation"
56293	//   },
56294	//   "scopes": [
56295	//     "https://www.googleapis.com/auth/cloud-platform",
56296	//     "https://www.googleapis.com/auth/compute"
56297	//   ]
56298	// }
56299
56300}
56301
56302// method id "compute.networks.list":
56303
56304type NetworksListCall struct {
56305	s            *Service
56306	project      string
56307	urlParams_   gensupport.URLParams
56308	ifNoneMatch_ string
56309	ctx_         context.Context
56310	header_      http.Header
56311}
56312
56313// List: Retrieves the list of networks available to the specified
56314// project.
56315// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/list
56316func (r *NetworksService) List(project string) *NetworksListCall {
56317	c := &NetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56318	c.project = project
56319	return c
56320}
56321
56322// Filter sets the optional parameter "filter": A filter expression that
56323// filters resources listed in the response. The expression must specify
56324// the field name, a comparison operator, and the value that you want to
56325// use for filtering. The value must be a string, a number, or a
56326// boolean. The comparison operator must be either =, !=, >, or <.
56327//
56328// For example, if you are filtering Compute Engine instances, you can
56329// exclude instances named example-instance by specifying name !=
56330// example-instance.
56331//
56332// You can also filter nested fields. For example, you could specify
56333// scheduling.automaticRestart = false to include instances only if they
56334// are not scheduled for automatic restarts. You can use filtering on
56335// nested fields to filter based on resource labels.
56336//
56337// To filter on multiple expressions, provide each separate expression
56338// within parentheses. For example, (scheduling.automaticRestart = true)
56339// (cpuPlatform = "Intel Skylake"). By default, each expression is an
56340// AND expression. However, you can include AND and OR expressions
56341// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
56342// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
56343// true).
56344func (c *NetworksListCall) Filter(filter string) *NetworksListCall {
56345	c.urlParams_.Set("filter", filter)
56346	return c
56347}
56348
56349// MaxResults sets the optional parameter "maxResults": The maximum
56350// number of results per page that should be returned. If the number of
56351// available results is larger than maxResults, Compute Engine returns a
56352// nextPageToken that can be used to get the next page of results in
56353// subsequent list requests. Acceptable values are 0 to 500, inclusive.
56354// (Default: 500)
56355func (c *NetworksListCall) MaxResults(maxResults int64) *NetworksListCall {
56356	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
56357	return c
56358}
56359
56360// OrderBy sets the optional parameter "orderBy": Sorts list results by
56361// a certain order. By default, results are returned in alphanumerical
56362// order based on the resource name.
56363//
56364// You can also sort results in descending order based on the creation
56365// timestamp using orderBy="creationTimestamp desc". This sorts results
56366// based on the creationTimestamp field in reverse chronological order
56367// (newest result first). Use this to sort resources like operations so
56368// that the newest operation is returned first.
56369//
56370// Currently, only sorting by name or creationTimestamp desc is
56371// supported.
56372func (c *NetworksListCall) OrderBy(orderBy string) *NetworksListCall {
56373	c.urlParams_.Set("orderBy", orderBy)
56374	return c
56375}
56376
56377// PageToken sets the optional parameter "pageToken": Specifies a page
56378// token to use. Set pageToken to the nextPageToken returned by a
56379// previous list request to get the next page of results.
56380func (c *NetworksListCall) PageToken(pageToken string) *NetworksListCall {
56381	c.urlParams_.Set("pageToken", pageToken)
56382	return c
56383}
56384
56385// Fields allows partial responses to be retrieved. See
56386// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56387// for more information.
56388func (c *NetworksListCall) Fields(s ...googleapi.Field) *NetworksListCall {
56389	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56390	return c
56391}
56392
56393// IfNoneMatch sets the optional parameter which makes the operation
56394// fail if the object's ETag matches the given value. This is useful for
56395// getting updates only after the object has changed since the last
56396// request. Use googleapi.IsNotModified to check whether the response
56397// error from Do is the result of In-None-Match.
56398func (c *NetworksListCall) IfNoneMatch(entityTag string) *NetworksListCall {
56399	c.ifNoneMatch_ = entityTag
56400	return c
56401}
56402
56403// Context sets the context to be used in this call's Do method. Any
56404// pending HTTP request will be aborted if the provided context is
56405// canceled.
56406func (c *NetworksListCall) Context(ctx context.Context) *NetworksListCall {
56407	c.ctx_ = ctx
56408	return c
56409}
56410
56411// Header returns an http.Header that can be modified by the caller to
56412// add HTTP headers to the request.
56413func (c *NetworksListCall) Header() http.Header {
56414	if c.header_ == nil {
56415		c.header_ = make(http.Header)
56416	}
56417	return c.header_
56418}
56419
56420func (c *NetworksListCall) doRequest(alt string) (*http.Response, error) {
56421	reqHeaders := make(http.Header)
56422	for k, v := range c.header_ {
56423		reqHeaders[k] = v
56424	}
56425	reqHeaders.Set("User-Agent", c.s.userAgent())
56426	if c.ifNoneMatch_ != "" {
56427		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
56428	}
56429	var body io.Reader = nil
56430	c.urlParams_.Set("alt", alt)
56431	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks")
56432	urls += "?" + c.urlParams_.Encode()
56433	req, _ := http.NewRequest("GET", urls, body)
56434	req.Header = reqHeaders
56435	googleapi.Expand(req.URL, map[string]string{
56436		"project": c.project,
56437	})
56438	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56439}
56440
56441// Do executes the "compute.networks.list" call.
56442// Exactly one of *NetworkList or error will be non-nil. Any non-2xx
56443// status code is an error. Response headers are in either
56444// *NetworkList.ServerResponse.Header or (if a response was returned at
56445// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56446// to check whether the returned error was because
56447// http.StatusNotModified was returned.
56448func (c *NetworksListCall) Do(opts ...googleapi.CallOption) (*NetworkList, error) {
56449	gensupport.SetOptions(c.urlParams_, opts...)
56450	res, err := c.doRequest("json")
56451	if res != nil && res.StatusCode == http.StatusNotModified {
56452		if res.Body != nil {
56453			res.Body.Close()
56454		}
56455		return nil, &googleapi.Error{
56456			Code:   res.StatusCode,
56457			Header: res.Header,
56458		}
56459	}
56460	if err != nil {
56461		return nil, err
56462	}
56463	defer googleapi.CloseBody(res)
56464	if err := googleapi.CheckResponse(res); err != nil {
56465		return nil, err
56466	}
56467	ret := &NetworkList{
56468		ServerResponse: googleapi.ServerResponse{
56469			Header:         res.Header,
56470			HTTPStatusCode: res.StatusCode,
56471		},
56472	}
56473	target := &ret
56474	if err := gensupport.DecodeResponse(target, res); err != nil {
56475		return nil, err
56476	}
56477	return ret, nil
56478	// {
56479	//   "description": "Retrieves the list of networks available to the specified project.",
56480	//   "httpMethod": "GET",
56481	//   "id": "compute.networks.list",
56482	//   "parameterOrder": [
56483	//     "project"
56484	//   ],
56485	//   "parameters": {
56486	//     "filter": {
56487	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
56488	//       "location": "query",
56489	//       "type": "string"
56490	//     },
56491	//     "maxResults": {
56492	//       "default": "500",
56493	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
56494	//       "format": "uint32",
56495	//       "location": "query",
56496	//       "minimum": "0",
56497	//       "type": "integer"
56498	//     },
56499	//     "orderBy": {
56500	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
56501	//       "location": "query",
56502	//       "type": "string"
56503	//     },
56504	//     "pageToken": {
56505	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
56506	//       "location": "query",
56507	//       "type": "string"
56508	//     },
56509	//     "project": {
56510	//       "description": "Project ID for this request.",
56511	//       "location": "path",
56512	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56513	//       "required": true,
56514	//       "type": "string"
56515	//     }
56516	//   },
56517	//   "path": "{project}/global/networks",
56518	//   "response": {
56519	//     "$ref": "NetworkList"
56520	//   },
56521	//   "scopes": [
56522	//     "https://www.googleapis.com/auth/cloud-platform",
56523	//     "https://www.googleapis.com/auth/compute",
56524	//     "https://www.googleapis.com/auth/compute.readonly"
56525	//   ]
56526	// }
56527
56528}
56529
56530// Pages invokes f for each page of results.
56531// A non-nil error returned from f will halt the iteration.
56532// The provided context supersedes any context provided to the Context method.
56533func (c *NetworksListCall) Pages(ctx context.Context, f func(*NetworkList) error) error {
56534	c.ctx_ = ctx
56535	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
56536	for {
56537		x, err := c.Do()
56538		if err != nil {
56539			return err
56540		}
56541		if err := f(x); err != nil {
56542			return err
56543		}
56544		if x.NextPageToken == "" {
56545			return nil
56546		}
56547		c.PageToken(x.NextPageToken)
56548	}
56549}
56550
56551// method id "compute.networks.patch":
56552
56553type NetworksPatchCall struct {
56554	s          *Service
56555	project    string
56556	network    string
56557	network2   *Network
56558	urlParams_ gensupport.URLParams
56559	ctx_       context.Context
56560	header_    http.Header
56561}
56562
56563// Patch: Patches the specified network with the data included in the
56564// request. Only the following fields can be modified:
56565// routingConfig.routingMode.
56566func (r *NetworksService) Patch(project string, network string, network2 *Network) *NetworksPatchCall {
56567	c := &NetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56568	c.project = project
56569	c.network = network
56570	c.network2 = network2
56571	return c
56572}
56573
56574// RequestId sets the optional parameter "requestId": An optional
56575// request ID to identify requests. Specify a unique request ID so that
56576// if you must retry your request, the server will know to ignore the
56577// request if it has already been completed.
56578//
56579// For example, consider a situation where you make an initial request
56580// and the request times out. If you make the request again with the
56581// same request ID, the server can check if original operation with the
56582// same request ID was received, and if so, will ignore the second
56583// request. This prevents clients from accidentally creating duplicate
56584// commitments.
56585//
56586// The request ID must be a valid UUID with the exception that zero UUID
56587// is not supported (00000000-0000-0000-0000-000000000000).
56588func (c *NetworksPatchCall) RequestId(requestId string) *NetworksPatchCall {
56589	c.urlParams_.Set("requestId", requestId)
56590	return c
56591}
56592
56593// Fields allows partial responses to be retrieved. See
56594// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56595// for more information.
56596func (c *NetworksPatchCall) Fields(s ...googleapi.Field) *NetworksPatchCall {
56597	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56598	return c
56599}
56600
56601// Context sets the context to be used in this call's Do method. Any
56602// pending HTTP request will be aborted if the provided context is
56603// canceled.
56604func (c *NetworksPatchCall) Context(ctx context.Context) *NetworksPatchCall {
56605	c.ctx_ = ctx
56606	return c
56607}
56608
56609// Header returns an http.Header that can be modified by the caller to
56610// add HTTP headers to the request.
56611func (c *NetworksPatchCall) Header() http.Header {
56612	if c.header_ == nil {
56613		c.header_ = make(http.Header)
56614	}
56615	return c.header_
56616}
56617
56618func (c *NetworksPatchCall) doRequest(alt string) (*http.Response, error) {
56619	reqHeaders := make(http.Header)
56620	for k, v := range c.header_ {
56621		reqHeaders[k] = v
56622	}
56623	reqHeaders.Set("User-Agent", c.s.userAgent())
56624	var body io.Reader = nil
56625	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network2)
56626	if err != nil {
56627		return nil, err
56628	}
56629	reqHeaders.Set("Content-Type", "application/json")
56630	c.urlParams_.Set("alt", alt)
56631	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
56632	urls += "?" + c.urlParams_.Encode()
56633	req, _ := http.NewRequest("PATCH", urls, body)
56634	req.Header = reqHeaders
56635	googleapi.Expand(req.URL, map[string]string{
56636		"project": c.project,
56637		"network": c.network,
56638	})
56639	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56640}
56641
56642// Do executes the "compute.networks.patch" call.
56643// Exactly one of *Operation or error will be non-nil. Any non-2xx
56644// status code is an error. Response headers are in either
56645// *Operation.ServerResponse.Header or (if a response was returned at
56646// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56647// to check whether the returned error was because
56648// http.StatusNotModified was returned.
56649func (c *NetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56650	gensupport.SetOptions(c.urlParams_, opts...)
56651	res, err := c.doRequest("json")
56652	if res != nil && res.StatusCode == http.StatusNotModified {
56653		if res.Body != nil {
56654			res.Body.Close()
56655		}
56656		return nil, &googleapi.Error{
56657			Code:   res.StatusCode,
56658			Header: res.Header,
56659		}
56660	}
56661	if err != nil {
56662		return nil, err
56663	}
56664	defer googleapi.CloseBody(res)
56665	if err := googleapi.CheckResponse(res); err != nil {
56666		return nil, err
56667	}
56668	ret := &Operation{
56669		ServerResponse: googleapi.ServerResponse{
56670			Header:         res.Header,
56671			HTTPStatusCode: res.StatusCode,
56672		},
56673	}
56674	target := &ret
56675	if err := gensupport.DecodeResponse(target, res); err != nil {
56676		return nil, err
56677	}
56678	return ret, nil
56679	// {
56680	//   "description": "Patches the specified network with the data included in the request. Only the following fields can be modified: routingConfig.routingMode.",
56681	//   "httpMethod": "PATCH",
56682	//   "id": "compute.networks.patch",
56683	//   "parameterOrder": [
56684	//     "project",
56685	//     "network"
56686	//   ],
56687	//   "parameters": {
56688	//     "network": {
56689	//       "description": "Name of the network to update.",
56690	//       "location": "path",
56691	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
56692	//       "required": true,
56693	//       "type": "string"
56694	//     },
56695	//     "project": {
56696	//       "description": "Project ID for this request.",
56697	//       "location": "path",
56698	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56699	//       "required": true,
56700	//       "type": "string"
56701	//     },
56702	//     "requestId": {
56703	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56704	//       "location": "query",
56705	//       "type": "string"
56706	//     }
56707	//   },
56708	//   "path": "{project}/global/networks/{network}",
56709	//   "request": {
56710	//     "$ref": "Network"
56711	//   },
56712	//   "response": {
56713	//     "$ref": "Operation"
56714	//   },
56715	//   "scopes": [
56716	//     "https://www.googleapis.com/auth/cloud-platform",
56717	//     "https://www.googleapis.com/auth/compute"
56718	//   ]
56719	// }
56720
56721}
56722
56723// method id "compute.networks.removePeering":
56724
56725type NetworksRemovePeeringCall struct {
56726	s                            *Service
56727	project                      string
56728	network                      string
56729	networksremovepeeringrequest *NetworksRemovePeeringRequest
56730	urlParams_                   gensupport.URLParams
56731	ctx_                         context.Context
56732	header_                      http.Header
56733}
56734
56735// RemovePeering: Removes a peering from the specified network.
56736func (r *NetworksService) RemovePeering(project string, network string, networksremovepeeringrequest *NetworksRemovePeeringRequest) *NetworksRemovePeeringCall {
56737	c := &NetworksRemovePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56738	c.project = project
56739	c.network = network
56740	c.networksremovepeeringrequest = networksremovepeeringrequest
56741	return c
56742}
56743
56744// RequestId sets the optional parameter "requestId": An optional
56745// request ID to identify requests. Specify a unique request ID so that
56746// if you must retry your request, the server will know to ignore the
56747// request if it has already been completed.
56748//
56749// For example, consider a situation where you make an initial request
56750// and the request times out. If you make the request again with the
56751// same request ID, the server can check if original operation with the
56752// same request ID was received, and if so, will ignore the second
56753// request. This prevents clients from accidentally creating duplicate
56754// commitments.
56755//
56756// The request ID must be a valid UUID with the exception that zero UUID
56757// is not supported (00000000-0000-0000-0000-000000000000).
56758func (c *NetworksRemovePeeringCall) RequestId(requestId string) *NetworksRemovePeeringCall {
56759	c.urlParams_.Set("requestId", requestId)
56760	return c
56761}
56762
56763// Fields allows partial responses to be retrieved. See
56764// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56765// for more information.
56766func (c *NetworksRemovePeeringCall) Fields(s ...googleapi.Field) *NetworksRemovePeeringCall {
56767	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56768	return c
56769}
56770
56771// Context sets the context to be used in this call's Do method. Any
56772// pending HTTP request will be aborted if the provided context is
56773// canceled.
56774func (c *NetworksRemovePeeringCall) Context(ctx context.Context) *NetworksRemovePeeringCall {
56775	c.ctx_ = ctx
56776	return c
56777}
56778
56779// Header returns an http.Header that can be modified by the caller to
56780// add HTTP headers to the request.
56781func (c *NetworksRemovePeeringCall) Header() http.Header {
56782	if c.header_ == nil {
56783		c.header_ = make(http.Header)
56784	}
56785	return c.header_
56786}
56787
56788func (c *NetworksRemovePeeringCall) doRequest(alt string) (*http.Response, error) {
56789	reqHeaders := make(http.Header)
56790	for k, v := range c.header_ {
56791		reqHeaders[k] = v
56792	}
56793	reqHeaders.Set("User-Agent", c.s.userAgent())
56794	var body io.Reader = nil
56795	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksremovepeeringrequest)
56796	if err != nil {
56797		return nil, err
56798	}
56799	reqHeaders.Set("Content-Type", "application/json")
56800	c.urlParams_.Set("alt", alt)
56801	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/removePeering")
56802	urls += "?" + c.urlParams_.Encode()
56803	req, _ := http.NewRequest("POST", urls, body)
56804	req.Header = reqHeaders
56805	googleapi.Expand(req.URL, map[string]string{
56806		"project": c.project,
56807		"network": c.network,
56808	})
56809	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56810}
56811
56812// Do executes the "compute.networks.removePeering" call.
56813// Exactly one of *Operation or error will be non-nil. Any non-2xx
56814// status code is an error. Response headers are in either
56815// *Operation.ServerResponse.Header or (if a response was returned at
56816// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56817// to check whether the returned error was because
56818// http.StatusNotModified was returned.
56819func (c *NetworksRemovePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56820	gensupport.SetOptions(c.urlParams_, opts...)
56821	res, err := c.doRequest("json")
56822	if res != nil && res.StatusCode == http.StatusNotModified {
56823		if res.Body != nil {
56824			res.Body.Close()
56825		}
56826		return nil, &googleapi.Error{
56827			Code:   res.StatusCode,
56828			Header: res.Header,
56829		}
56830	}
56831	if err != nil {
56832		return nil, err
56833	}
56834	defer googleapi.CloseBody(res)
56835	if err := googleapi.CheckResponse(res); err != nil {
56836		return nil, err
56837	}
56838	ret := &Operation{
56839		ServerResponse: googleapi.ServerResponse{
56840			Header:         res.Header,
56841			HTTPStatusCode: res.StatusCode,
56842		},
56843	}
56844	target := &ret
56845	if err := gensupport.DecodeResponse(target, res); err != nil {
56846		return nil, err
56847	}
56848	return ret, nil
56849	// {
56850	//   "description": "Removes a peering from the specified network.",
56851	//   "httpMethod": "POST",
56852	//   "id": "compute.networks.removePeering",
56853	//   "parameterOrder": [
56854	//     "project",
56855	//     "network"
56856	//   ],
56857	//   "parameters": {
56858	//     "network": {
56859	//       "description": "Name of the network resource to remove peering from.",
56860	//       "location": "path",
56861	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
56862	//       "required": true,
56863	//       "type": "string"
56864	//     },
56865	//     "project": {
56866	//       "description": "Project ID for this request.",
56867	//       "location": "path",
56868	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56869	//       "required": true,
56870	//       "type": "string"
56871	//     },
56872	//     "requestId": {
56873	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56874	//       "location": "query",
56875	//       "type": "string"
56876	//     }
56877	//   },
56878	//   "path": "{project}/global/networks/{network}/removePeering",
56879	//   "request": {
56880	//     "$ref": "NetworksRemovePeeringRequest"
56881	//   },
56882	//   "response": {
56883	//     "$ref": "Operation"
56884	//   },
56885	//   "scopes": [
56886	//     "https://www.googleapis.com/auth/cloud-platform",
56887	//     "https://www.googleapis.com/auth/compute"
56888	//   ]
56889	// }
56890
56891}
56892
56893// method id "compute.networks.switchToCustomMode":
56894
56895type NetworksSwitchToCustomModeCall struct {
56896	s          *Service
56897	project    string
56898	network    string
56899	urlParams_ gensupport.URLParams
56900	ctx_       context.Context
56901	header_    http.Header
56902}
56903
56904// SwitchToCustomMode: Switches the network mode from auto subnet mode
56905// to custom subnet mode.
56906func (r *NetworksService) SwitchToCustomMode(project string, network string) *NetworksSwitchToCustomModeCall {
56907	c := &NetworksSwitchToCustomModeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56908	c.project = project
56909	c.network = network
56910	return c
56911}
56912
56913// RequestId sets the optional parameter "requestId": An optional
56914// request ID to identify requests. Specify a unique request ID so that
56915// if you must retry your request, the server will know to ignore the
56916// request if it has already been completed.
56917//
56918// For example, consider a situation where you make an initial request
56919// and the request times out. If you make the request again with the
56920// same request ID, the server can check if original operation with the
56921// same request ID was received, and if so, will ignore the second
56922// request. This prevents clients from accidentally creating duplicate
56923// commitments.
56924//
56925// The request ID must be a valid UUID with the exception that zero UUID
56926// is not supported (00000000-0000-0000-0000-000000000000).
56927func (c *NetworksSwitchToCustomModeCall) RequestId(requestId string) *NetworksSwitchToCustomModeCall {
56928	c.urlParams_.Set("requestId", requestId)
56929	return c
56930}
56931
56932// Fields allows partial responses to be retrieved. See
56933// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56934// for more information.
56935func (c *NetworksSwitchToCustomModeCall) Fields(s ...googleapi.Field) *NetworksSwitchToCustomModeCall {
56936	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56937	return c
56938}
56939
56940// Context sets the context to be used in this call's Do method. Any
56941// pending HTTP request will be aborted if the provided context is
56942// canceled.
56943func (c *NetworksSwitchToCustomModeCall) Context(ctx context.Context) *NetworksSwitchToCustomModeCall {
56944	c.ctx_ = ctx
56945	return c
56946}
56947
56948// Header returns an http.Header that can be modified by the caller to
56949// add HTTP headers to the request.
56950func (c *NetworksSwitchToCustomModeCall) Header() http.Header {
56951	if c.header_ == nil {
56952		c.header_ = make(http.Header)
56953	}
56954	return c.header_
56955}
56956
56957func (c *NetworksSwitchToCustomModeCall) doRequest(alt string) (*http.Response, error) {
56958	reqHeaders := make(http.Header)
56959	for k, v := range c.header_ {
56960		reqHeaders[k] = v
56961	}
56962	reqHeaders.Set("User-Agent", c.s.userAgent())
56963	var body io.Reader = nil
56964	c.urlParams_.Set("alt", alt)
56965	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/switchToCustomMode")
56966	urls += "?" + c.urlParams_.Encode()
56967	req, _ := http.NewRequest("POST", urls, body)
56968	req.Header = reqHeaders
56969	googleapi.Expand(req.URL, map[string]string{
56970		"project": c.project,
56971		"network": c.network,
56972	})
56973	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56974}
56975
56976// Do executes the "compute.networks.switchToCustomMode" call.
56977// Exactly one of *Operation or error will be non-nil. Any non-2xx
56978// status code is an error. Response headers are in either
56979// *Operation.ServerResponse.Header or (if a response was returned at
56980// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56981// to check whether the returned error was because
56982// http.StatusNotModified was returned.
56983func (c *NetworksSwitchToCustomModeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56984	gensupport.SetOptions(c.urlParams_, opts...)
56985	res, err := c.doRequest("json")
56986	if res != nil && res.StatusCode == http.StatusNotModified {
56987		if res.Body != nil {
56988			res.Body.Close()
56989		}
56990		return nil, &googleapi.Error{
56991			Code:   res.StatusCode,
56992			Header: res.Header,
56993		}
56994	}
56995	if err != nil {
56996		return nil, err
56997	}
56998	defer googleapi.CloseBody(res)
56999	if err := googleapi.CheckResponse(res); err != nil {
57000		return nil, err
57001	}
57002	ret := &Operation{
57003		ServerResponse: googleapi.ServerResponse{
57004			Header:         res.Header,
57005			HTTPStatusCode: res.StatusCode,
57006		},
57007	}
57008	target := &ret
57009	if err := gensupport.DecodeResponse(target, res); err != nil {
57010		return nil, err
57011	}
57012	return ret, nil
57013	// {
57014	//   "description": "Switches the network mode from auto subnet mode to custom subnet mode.",
57015	//   "httpMethod": "POST",
57016	//   "id": "compute.networks.switchToCustomMode",
57017	//   "parameterOrder": [
57018	//     "project",
57019	//     "network"
57020	//   ],
57021	//   "parameters": {
57022	//     "network": {
57023	//       "description": "Name of the network to be updated.",
57024	//       "location": "path",
57025	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57026	//       "required": true,
57027	//       "type": "string"
57028	//     },
57029	//     "project": {
57030	//       "description": "Project ID for this request.",
57031	//       "location": "path",
57032	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57033	//       "required": true,
57034	//       "type": "string"
57035	//     },
57036	//     "requestId": {
57037	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57038	//       "location": "query",
57039	//       "type": "string"
57040	//     }
57041	//   },
57042	//   "path": "{project}/global/networks/{network}/switchToCustomMode",
57043	//   "response": {
57044	//     "$ref": "Operation"
57045	//   },
57046	//   "scopes": [
57047	//     "https://www.googleapis.com/auth/cloud-platform",
57048	//     "https://www.googleapis.com/auth/compute"
57049	//   ]
57050	// }
57051
57052}
57053
57054// method id "compute.projects.disableXpnHost":
57055
57056type ProjectsDisableXpnHostCall struct {
57057	s          *Service
57058	project    string
57059	urlParams_ gensupport.URLParams
57060	ctx_       context.Context
57061	header_    http.Header
57062}
57063
57064// DisableXpnHost: Disable this project as a shared VPC host project.
57065func (r *ProjectsService) DisableXpnHost(project string) *ProjectsDisableXpnHostCall {
57066	c := &ProjectsDisableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57067	c.project = project
57068	return c
57069}
57070
57071// RequestId sets the optional parameter "requestId": An optional
57072// request ID to identify requests. Specify a unique request ID so that
57073// if you must retry your request, the server will know to ignore the
57074// request if it has already been completed.
57075//
57076// For example, consider a situation where you make an initial request
57077// and the request times out. If you make the request again with the
57078// same request ID, the server can check if original operation with the
57079// same request ID was received, and if so, will ignore the second
57080// request. This prevents clients from accidentally creating duplicate
57081// commitments.
57082//
57083// The request ID must be a valid UUID with the exception that zero UUID
57084// is not supported (00000000-0000-0000-0000-000000000000).
57085func (c *ProjectsDisableXpnHostCall) RequestId(requestId string) *ProjectsDisableXpnHostCall {
57086	c.urlParams_.Set("requestId", requestId)
57087	return c
57088}
57089
57090// Fields allows partial responses to be retrieved. See
57091// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57092// for more information.
57093func (c *ProjectsDisableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnHostCall {
57094	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57095	return c
57096}
57097
57098// Context sets the context to be used in this call's Do method. Any
57099// pending HTTP request will be aborted if the provided context is
57100// canceled.
57101func (c *ProjectsDisableXpnHostCall) Context(ctx context.Context) *ProjectsDisableXpnHostCall {
57102	c.ctx_ = ctx
57103	return c
57104}
57105
57106// Header returns an http.Header that can be modified by the caller to
57107// add HTTP headers to the request.
57108func (c *ProjectsDisableXpnHostCall) Header() http.Header {
57109	if c.header_ == nil {
57110		c.header_ = make(http.Header)
57111	}
57112	return c.header_
57113}
57114
57115func (c *ProjectsDisableXpnHostCall) doRequest(alt string) (*http.Response, error) {
57116	reqHeaders := make(http.Header)
57117	for k, v := range c.header_ {
57118		reqHeaders[k] = v
57119	}
57120	reqHeaders.Set("User-Agent", c.s.userAgent())
57121	var body io.Reader = nil
57122	c.urlParams_.Set("alt", alt)
57123	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/disableXpnHost")
57124	urls += "?" + c.urlParams_.Encode()
57125	req, _ := http.NewRequest("POST", urls, body)
57126	req.Header = reqHeaders
57127	googleapi.Expand(req.URL, map[string]string{
57128		"project": c.project,
57129	})
57130	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57131}
57132
57133// Do executes the "compute.projects.disableXpnHost" call.
57134// Exactly one of *Operation or error will be non-nil. Any non-2xx
57135// status code is an error. Response headers are in either
57136// *Operation.ServerResponse.Header or (if a response was returned at
57137// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57138// to check whether the returned error was because
57139// http.StatusNotModified was returned.
57140func (c *ProjectsDisableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57141	gensupport.SetOptions(c.urlParams_, opts...)
57142	res, err := c.doRequest("json")
57143	if res != nil && res.StatusCode == http.StatusNotModified {
57144		if res.Body != nil {
57145			res.Body.Close()
57146		}
57147		return nil, &googleapi.Error{
57148			Code:   res.StatusCode,
57149			Header: res.Header,
57150		}
57151	}
57152	if err != nil {
57153		return nil, err
57154	}
57155	defer googleapi.CloseBody(res)
57156	if err := googleapi.CheckResponse(res); err != nil {
57157		return nil, err
57158	}
57159	ret := &Operation{
57160		ServerResponse: googleapi.ServerResponse{
57161			Header:         res.Header,
57162			HTTPStatusCode: res.StatusCode,
57163		},
57164	}
57165	target := &ret
57166	if err := gensupport.DecodeResponse(target, res); err != nil {
57167		return nil, err
57168	}
57169	return ret, nil
57170	// {
57171	//   "description": "Disable this project as a shared VPC host project.",
57172	//   "httpMethod": "POST",
57173	//   "id": "compute.projects.disableXpnHost",
57174	//   "parameterOrder": [
57175	//     "project"
57176	//   ],
57177	//   "parameters": {
57178	//     "project": {
57179	//       "description": "Project ID for this request.",
57180	//       "location": "path",
57181	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57182	//       "required": true,
57183	//       "type": "string"
57184	//     },
57185	//     "requestId": {
57186	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57187	//       "location": "query",
57188	//       "type": "string"
57189	//     }
57190	//   },
57191	//   "path": "{project}/disableXpnHost",
57192	//   "response": {
57193	//     "$ref": "Operation"
57194	//   },
57195	//   "scopes": [
57196	//     "https://www.googleapis.com/auth/cloud-platform",
57197	//     "https://www.googleapis.com/auth/compute"
57198	//   ]
57199	// }
57200
57201}
57202
57203// method id "compute.projects.disableXpnResource":
57204
57205type ProjectsDisableXpnResourceCall struct {
57206	s                                 *Service
57207	project                           string
57208	projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest
57209	urlParams_                        gensupport.URLParams
57210	ctx_                              context.Context
57211	header_                           http.Header
57212}
57213
57214// DisableXpnResource: Disable a serivce resource (a.k.a service
57215// project) associated with this host project.
57216func (r *ProjectsService) DisableXpnResource(project string, projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest) *ProjectsDisableXpnResourceCall {
57217	c := &ProjectsDisableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57218	c.project = project
57219	c.projectsdisablexpnresourcerequest = projectsdisablexpnresourcerequest
57220	return c
57221}
57222
57223// RequestId sets the optional parameter "requestId": An optional
57224// request ID to identify requests. Specify a unique request ID so that
57225// if you must retry your request, the server will know to ignore the
57226// request if it has already been completed.
57227//
57228// For example, consider a situation where you make an initial request
57229// and the request times out. If you make the request again with the
57230// same request ID, the server can check if original operation with the
57231// same request ID was received, and if so, will ignore the second
57232// request. This prevents clients from accidentally creating duplicate
57233// commitments.
57234//
57235// The request ID must be a valid UUID with the exception that zero UUID
57236// is not supported (00000000-0000-0000-0000-000000000000).
57237func (c *ProjectsDisableXpnResourceCall) RequestId(requestId string) *ProjectsDisableXpnResourceCall {
57238	c.urlParams_.Set("requestId", requestId)
57239	return c
57240}
57241
57242// Fields allows partial responses to be retrieved. See
57243// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57244// for more information.
57245func (c *ProjectsDisableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnResourceCall {
57246	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57247	return c
57248}
57249
57250// Context sets the context to be used in this call's Do method. Any
57251// pending HTTP request will be aborted if the provided context is
57252// canceled.
57253func (c *ProjectsDisableXpnResourceCall) Context(ctx context.Context) *ProjectsDisableXpnResourceCall {
57254	c.ctx_ = ctx
57255	return c
57256}
57257
57258// Header returns an http.Header that can be modified by the caller to
57259// add HTTP headers to the request.
57260func (c *ProjectsDisableXpnResourceCall) Header() http.Header {
57261	if c.header_ == nil {
57262		c.header_ = make(http.Header)
57263	}
57264	return c.header_
57265}
57266
57267func (c *ProjectsDisableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
57268	reqHeaders := make(http.Header)
57269	for k, v := range c.header_ {
57270		reqHeaders[k] = v
57271	}
57272	reqHeaders.Set("User-Agent", c.s.userAgent())
57273	var body io.Reader = nil
57274	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsdisablexpnresourcerequest)
57275	if err != nil {
57276		return nil, err
57277	}
57278	reqHeaders.Set("Content-Type", "application/json")
57279	c.urlParams_.Set("alt", alt)
57280	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/disableXpnResource")
57281	urls += "?" + c.urlParams_.Encode()
57282	req, _ := http.NewRequest("POST", urls, body)
57283	req.Header = reqHeaders
57284	googleapi.Expand(req.URL, map[string]string{
57285		"project": c.project,
57286	})
57287	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57288}
57289
57290// Do executes the "compute.projects.disableXpnResource" call.
57291// Exactly one of *Operation or error will be non-nil. Any non-2xx
57292// status code is an error. Response headers are in either
57293// *Operation.ServerResponse.Header or (if a response was returned at
57294// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57295// to check whether the returned error was because
57296// http.StatusNotModified was returned.
57297func (c *ProjectsDisableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57298	gensupport.SetOptions(c.urlParams_, opts...)
57299	res, err := c.doRequest("json")
57300	if res != nil && res.StatusCode == http.StatusNotModified {
57301		if res.Body != nil {
57302			res.Body.Close()
57303		}
57304		return nil, &googleapi.Error{
57305			Code:   res.StatusCode,
57306			Header: res.Header,
57307		}
57308	}
57309	if err != nil {
57310		return nil, err
57311	}
57312	defer googleapi.CloseBody(res)
57313	if err := googleapi.CheckResponse(res); err != nil {
57314		return nil, err
57315	}
57316	ret := &Operation{
57317		ServerResponse: googleapi.ServerResponse{
57318			Header:         res.Header,
57319			HTTPStatusCode: res.StatusCode,
57320		},
57321	}
57322	target := &ret
57323	if err := gensupport.DecodeResponse(target, res); err != nil {
57324		return nil, err
57325	}
57326	return ret, nil
57327	// {
57328	//   "description": "Disable a serivce resource (a.k.a service project) associated with this host project.",
57329	//   "httpMethod": "POST",
57330	//   "id": "compute.projects.disableXpnResource",
57331	//   "parameterOrder": [
57332	//     "project"
57333	//   ],
57334	//   "parameters": {
57335	//     "project": {
57336	//       "description": "Project ID for this request.",
57337	//       "location": "path",
57338	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57339	//       "required": true,
57340	//       "type": "string"
57341	//     },
57342	//     "requestId": {
57343	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57344	//       "location": "query",
57345	//       "type": "string"
57346	//     }
57347	//   },
57348	//   "path": "{project}/disableXpnResource",
57349	//   "request": {
57350	//     "$ref": "ProjectsDisableXpnResourceRequest"
57351	//   },
57352	//   "response": {
57353	//     "$ref": "Operation"
57354	//   },
57355	//   "scopes": [
57356	//     "https://www.googleapis.com/auth/cloud-platform",
57357	//     "https://www.googleapis.com/auth/compute"
57358	//   ]
57359	// }
57360
57361}
57362
57363// method id "compute.projects.enableXpnHost":
57364
57365type ProjectsEnableXpnHostCall struct {
57366	s          *Service
57367	project    string
57368	urlParams_ gensupport.URLParams
57369	ctx_       context.Context
57370	header_    http.Header
57371}
57372
57373// EnableXpnHost: Enable this project as a shared VPC host project.
57374func (r *ProjectsService) EnableXpnHost(project string) *ProjectsEnableXpnHostCall {
57375	c := &ProjectsEnableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57376	c.project = project
57377	return c
57378}
57379
57380// RequestId sets the optional parameter "requestId": An optional
57381// request ID to identify requests. Specify a unique request ID so that
57382// if you must retry your request, the server will know to ignore the
57383// request if it has already been completed.
57384//
57385// For example, consider a situation where you make an initial request
57386// and the request times out. If you make the request again with the
57387// same request ID, the server can check if original operation with the
57388// same request ID was received, and if so, will ignore the second
57389// request. This prevents clients from accidentally creating duplicate
57390// commitments.
57391//
57392// The request ID must be a valid UUID with the exception that zero UUID
57393// is not supported (00000000-0000-0000-0000-000000000000).
57394func (c *ProjectsEnableXpnHostCall) RequestId(requestId string) *ProjectsEnableXpnHostCall {
57395	c.urlParams_.Set("requestId", requestId)
57396	return c
57397}
57398
57399// Fields allows partial responses to be retrieved. See
57400// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57401// for more information.
57402func (c *ProjectsEnableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnHostCall {
57403	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57404	return c
57405}
57406
57407// Context sets the context to be used in this call's Do method. Any
57408// pending HTTP request will be aborted if the provided context is
57409// canceled.
57410func (c *ProjectsEnableXpnHostCall) Context(ctx context.Context) *ProjectsEnableXpnHostCall {
57411	c.ctx_ = ctx
57412	return c
57413}
57414
57415// Header returns an http.Header that can be modified by the caller to
57416// add HTTP headers to the request.
57417func (c *ProjectsEnableXpnHostCall) Header() http.Header {
57418	if c.header_ == nil {
57419		c.header_ = make(http.Header)
57420	}
57421	return c.header_
57422}
57423
57424func (c *ProjectsEnableXpnHostCall) doRequest(alt string) (*http.Response, error) {
57425	reqHeaders := make(http.Header)
57426	for k, v := range c.header_ {
57427		reqHeaders[k] = v
57428	}
57429	reqHeaders.Set("User-Agent", c.s.userAgent())
57430	var body io.Reader = nil
57431	c.urlParams_.Set("alt", alt)
57432	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/enableXpnHost")
57433	urls += "?" + c.urlParams_.Encode()
57434	req, _ := http.NewRequest("POST", urls, body)
57435	req.Header = reqHeaders
57436	googleapi.Expand(req.URL, map[string]string{
57437		"project": c.project,
57438	})
57439	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57440}
57441
57442// Do executes the "compute.projects.enableXpnHost" call.
57443// Exactly one of *Operation or error will be non-nil. Any non-2xx
57444// status code is an error. Response headers are in either
57445// *Operation.ServerResponse.Header or (if a response was returned at
57446// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57447// to check whether the returned error was because
57448// http.StatusNotModified was returned.
57449func (c *ProjectsEnableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57450	gensupport.SetOptions(c.urlParams_, opts...)
57451	res, err := c.doRequest("json")
57452	if res != nil && res.StatusCode == http.StatusNotModified {
57453		if res.Body != nil {
57454			res.Body.Close()
57455		}
57456		return nil, &googleapi.Error{
57457			Code:   res.StatusCode,
57458			Header: res.Header,
57459		}
57460	}
57461	if err != nil {
57462		return nil, err
57463	}
57464	defer googleapi.CloseBody(res)
57465	if err := googleapi.CheckResponse(res); err != nil {
57466		return nil, err
57467	}
57468	ret := &Operation{
57469		ServerResponse: googleapi.ServerResponse{
57470			Header:         res.Header,
57471			HTTPStatusCode: res.StatusCode,
57472		},
57473	}
57474	target := &ret
57475	if err := gensupport.DecodeResponse(target, res); err != nil {
57476		return nil, err
57477	}
57478	return ret, nil
57479	// {
57480	//   "description": "Enable this project as a shared VPC host project.",
57481	//   "httpMethod": "POST",
57482	//   "id": "compute.projects.enableXpnHost",
57483	//   "parameterOrder": [
57484	//     "project"
57485	//   ],
57486	//   "parameters": {
57487	//     "project": {
57488	//       "description": "Project ID for this request.",
57489	//       "location": "path",
57490	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57491	//       "required": true,
57492	//       "type": "string"
57493	//     },
57494	//     "requestId": {
57495	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57496	//       "location": "query",
57497	//       "type": "string"
57498	//     }
57499	//   },
57500	//   "path": "{project}/enableXpnHost",
57501	//   "response": {
57502	//     "$ref": "Operation"
57503	//   },
57504	//   "scopes": [
57505	//     "https://www.googleapis.com/auth/cloud-platform",
57506	//     "https://www.googleapis.com/auth/compute"
57507	//   ]
57508	// }
57509
57510}
57511
57512// method id "compute.projects.enableXpnResource":
57513
57514type ProjectsEnableXpnResourceCall struct {
57515	s                                *Service
57516	project                          string
57517	projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest
57518	urlParams_                       gensupport.URLParams
57519	ctx_                             context.Context
57520	header_                          http.Header
57521}
57522
57523// EnableXpnResource: Enable service resource (a.k.a service project)
57524// for a host project, so that subnets in the host project can be used
57525// by instances in the service project.
57526func (r *ProjectsService) EnableXpnResource(project string, projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest) *ProjectsEnableXpnResourceCall {
57527	c := &ProjectsEnableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57528	c.project = project
57529	c.projectsenablexpnresourcerequest = projectsenablexpnresourcerequest
57530	return c
57531}
57532
57533// RequestId sets the optional parameter "requestId": An optional
57534// request ID to identify requests. Specify a unique request ID so that
57535// if you must retry your request, the server will know to ignore the
57536// request if it has already been completed.
57537//
57538// For example, consider a situation where you make an initial request
57539// and the request times out. If you make the request again with the
57540// same request ID, the server can check if original operation with the
57541// same request ID was received, and if so, will ignore the second
57542// request. This prevents clients from accidentally creating duplicate
57543// commitments.
57544//
57545// The request ID must be a valid UUID with the exception that zero UUID
57546// is not supported (00000000-0000-0000-0000-000000000000).
57547func (c *ProjectsEnableXpnResourceCall) RequestId(requestId string) *ProjectsEnableXpnResourceCall {
57548	c.urlParams_.Set("requestId", requestId)
57549	return c
57550}
57551
57552// Fields allows partial responses to be retrieved. See
57553// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57554// for more information.
57555func (c *ProjectsEnableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnResourceCall {
57556	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57557	return c
57558}
57559
57560// Context sets the context to be used in this call's Do method. Any
57561// pending HTTP request will be aborted if the provided context is
57562// canceled.
57563func (c *ProjectsEnableXpnResourceCall) Context(ctx context.Context) *ProjectsEnableXpnResourceCall {
57564	c.ctx_ = ctx
57565	return c
57566}
57567
57568// Header returns an http.Header that can be modified by the caller to
57569// add HTTP headers to the request.
57570func (c *ProjectsEnableXpnResourceCall) Header() http.Header {
57571	if c.header_ == nil {
57572		c.header_ = make(http.Header)
57573	}
57574	return c.header_
57575}
57576
57577func (c *ProjectsEnableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
57578	reqHeaders := make(http.Header)
57579	for k, v := range c.header_ {
57580		reqHeaders[k] = v
57581	}
57582	reqHeaders.Set("User-Agent", c.s.userAgent())
57583	var body io.Reader = nil
57584	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsenablexpnresourcerequest)
57585	if err != nil {
57586		return nil, err
57587	}
57588	reqHeaders.Set("Content-Type", "application/json")
57589	c.urlParams_.Set("alt", alt)
57590	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/enableXpnResource")
57591	urls += "?" + c.urlParams_.Encode()
57592	req, _ := http.NewRequest("POST", urls, body)
57593	req.Header = reqHeaders
57594	googleapi.Expand(req.URL, map[string]string{
57595		"project": c.project,
57596	})
57597	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57598}
57599
57600// Do executes the "compute.projects.enableXpnResource" call.
57601// Exactly one of *Operation or error will be non-nil. Any non-2xx
57602// status code is an error. Response headers are in either
57603// *Operation.ServerResponse.Header or (if a response was returned at
57604// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57605// to check whether the returned error was because
57606// http.StatusNotModified was returned.
57607func (c *ProjectsEnableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57608	gensupport.SetOptions(c.urlParams_, opts...)
57609	res, err := c.doRequest("json")
57610	if res != nil && res.StatusCode == http.StatusNotModified {
57611		if res.Body != nil {
57612			res.Body.Close()
57613		}
57614		return nil, &googleapi.Error{
57615			Code:   res.StatusCode,
57616			Header: res.Header,
57617		}
57618	}
57619	if err != nil {
57620		return nil, err
57621	}
57622	defer googleapi.CloseBody(res)
57623	if err := googleapi.CheckResponse(res); err != nil {
57624		return nil, err
57625	}
57626	ret := &Operation{
57627		ServerResponse: googleapi.ServerResponse{
57628			Header:         res.Header,
57629			HTTPStatusCode: res.StatusCode,
57630		},
57631	}
57632	target := &ret
57633	if err := gensupport.DecodeResponse(target, res); err != nil {
57634		return nil, err
57635	}
57636	return ret, nil
57637	// {
57638	//   "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.",
57639	//   "httpMethod": "POST",
57640	//   "id": "compute.projects.enableXpnResource",
57641	//   "parameterOrder": [
57642	//     "project"
57643	//   ],
57644	//   "parameters": {
57645	//     "project": {
57646	//       "description": "Project ID for this request.",
57647	//       "location": "path",
57648	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57649	//       "required": true,
57650	//       "type": "string"
57651	//     },
57652	//     "requestId": {
57653	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57654	//       "location": "query",
57655	//       "type": "string"
57656	//     }
57657	//   },
57658	//   "path": "{project}/enableXpnResource",
57659	//   "request": {
57660	//     "$ref": "ProjectsEnableXpnResourceRequest"
57661	//   },
57662	//   "response": {
57663	//     "$ref": "Operation"
57664	//   },
57665	//   "scopes": [
57666	//     "https://www.googleapis.com/auth/cloud-platform",
57667	//     "https://www.googleapis.com/auth/compute"
57668	//   ]
57669	// }
57670
57671}
57672
57673// method id "compute.projects.get":
57674
57675type ProjectsGetCall struct {
57676	s            *Service
57677	project      string
57678	urlParams_   gensupport.URLParams
57679	ifNoneMatch_ string
57680	ctx_         context.Context
57681	header_      http.Header
57682}
57683
57684// Get: Returns the specified Project resource.
57685// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/get
57686func (r *ProjectsService) Get(project string) *ProjectsGetCall {
57687	c := &ProjectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57688	c.project = project
57689	return c
57690}
57691
57692// Fields allows partial responses to be retrieved. See
57693// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57694// for more information.
57695func (c *ProjectsGetCall) Fields(s ...googleapi.Field) *ProjectsGetCall {
57696	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57697	return c
57698}
57699
57700// IfNoneMatch sets the optional parameter which makes the operation
57701// fail if the object's ETag matches the given value. This is useful for
57702// getting updates only after the object has changed since the last
57703// request. Use googleapi.IsNotModified to check whether the response
57704// error from Do is the result of In-None-Match.
57705func (c *ProjectsGetCall) IfNoneMatch(entityTag string) *ProjectsGetCall {
57706	c.ifNoneMatch_ = entityTag
57707	return c
57708}
57709
57710// Context sets the context to be used in this call's Do method. Any
57711// pending HTTP request will be aborted if the provided context is
57712// canceled.
57713func (c *ProjectsGetCall) Context(ctx context.Context) *ProjectsGetCall {
57714	c.ctx_ = ctx
57715	return c
57716}
57717
57718// Header returns an http.Header that can be modified by the caller to
57719// add HTTP headers to the request.
57720func (c *ProjectsGetCall) Header() http.Header {
57721	if c.header_ == nil {
57722		c.header_ = make(http.Header)
57723	}
57724	return c.header_
57725}
57726
57727func (c *ProjectsGetCall) doRequest(alt string) (*http.Response, error) {
57728	reqHeaders := make(http.Header)
57729	for k, v := range c.header_ {
57730		reqHeaders[k] = v
57731	}
57732	reqHeaders.Set("User-Agent", c.s.userAgent())
57733	if c.ifNoneMatch_ != "" {
57734		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57735	}
57736	var body io.Reader = nil
57737	c.urlParams_.Set("alt", alt)
57738	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}")
57739	urls += "?" + c.urlParams_.Encode()
57740	req, _ := http.NewRequest("GET", urls, body)
57741	req.Header = reqHeaders
57742	googleapi.Expand(req.URL, map[string]string{
57743		"project": c.project,
57744	})
57745	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57746}
57747
57748// Do executes the "compute.projects.get" call.
57749// Exactly one of *Project or error will be non-nil. Any non-2xx status
57750// code is an error. Response headers are in either
57751// *Project.ServerResponse.Header or (if a response was returned at all)
57752// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
57753// check whether the returned error was because http.StatusNotModified
57754// was returned.
57755func (c *ProjectsGetCall) Do(opts ...googleapi.CallOption) (*Project, error) {
57756	gensupport.SetOptions(c.urlParams_, opts...)
57757	res, err := c.doRequest("json")
57758	if res != nil && res.StatusCode == http.StatusNotModified {
57759		if res.Body != nil {
57760			res.Body.Close()
57761		}
57762		return nil, &googleapi.Error{
57763			Code:   res.StatusCode,
57764			Header: res.Header,
57765		}
57766	}
57767	if err != nil {
57768		return nil, err
57769	}
57770	defer googleapi.CloseBody(res)
57771	if err := googleapi.CheckResponse(res); err != nil {
57772		return nil, err
57773	}
57774	ret := &Project{
57775		ServerResponse: googleapi.ServerResponse{
57776			Header:         res.Header,
57777			HTTPStatusCode: res.StatusCode,
57778		},
57779	}
57780	target := &ret
57781	if err := gensupport.DecodeResponse(target, res); err != nil {
57782		return nil, err
57783	}
57784	return ret, nil
57785	// {
57786	//   "description": "Returns the specified Project resource.",
57787	//   "httpMethod": "GET",
57788	//   "id": "compute.projects.get",
57789	//   "parameterOrder": [
57790	//     "project"
57791	//   ],
57792	//   "parameters": {
57793	//     "project": {
57794	//       "description": "Project ID for this request.",
57795	//       "location": "path",
57796	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57797	//       "required": true,
57798	//       "type": "string"
57799	//     }
57800	//   },
57801	//   "path": "{project}",
57802	//   "response": {
57803	//     "$ref": "Project"
57804	//   },
57805	//   "scopes": [
57806	//     "https://www.googleapis.com/auth/cloud-platform",
57807	//     "https://www.googleapis.com/auth/compute",
57808	//     "https://www.googleapis.com/auth/compute.readonly"
57809	//   ]
57810	// }
57811
57812}
57813
57814// method id "compute.projects.getXpnHost":
57815
57816type ProjectsGetXpnHostCall struct {
57817	s            *Service
57818	project      string
57819	urlParams_   gensupport.URLParams
57820	ifNoneMatch_ string
57821	ctx_         context.Context
57822	header_      http.Header
57823}
57824
57825// GetXpnHost: Gets the shared VPC host project that this project links
57826// to. May be empty if no link exists.
57827func (r *ProjectsService) GetXpnHost(project string) *ProjectsGetXpnHostCall {
57828	c := &ProjectsGetXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57829	c.project = project
57830	return c
57831}
57832
57833// Fields allows partial responses to be retrieved. See
57834// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57835// for more information.
57836func (c *ProjectsGetXpnHostCall) Fields(s ...googleapi.Field) *ProjectsGetXpnHostCall {
57837	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57838	return c
57839}
57840
57841// IfNoneMatch sets the optional parameter which makes the operation
57842// fail if the object's ETag matches the given value. This is useful for
57843// getting updates only after the object has changed since the last
57844// request. Use googleapi.IsNotModified to check whether the response
57845// error from Do is the result of In-None-Match.
57846func (c *ProjectsGetXpnHostCall) IfNoneMatch(entityTag string) *ProjectsGetXpnHostCall {
57847	c.ifNoneMatch_ = entityTag
57848	return c
57849}
57850
57851// Context sets the context to be used in this call's Do method. Any
57852// pending HTTP request will be aborted if the provided context is
57853// canceled.
57854func (c *ProjectsGetXpnHostCall) Context(ctx context.Context) *ProjectsGetXpnHostCall {
57855	c.ctx_ = ctx
57856	return c
57857}
57858
57859// Header returns an http.Header that can be modified by the caller to
57860// add HTTP headers to the request.
57861func (c *ProjectsGetXpnHostCall) Header() http.Header {
57862	if c.header_ == nil {
57863		c.header_ = make(http.Header)
57864	}
57865	return c.header_
57866}
57867
57868func (c *ProjectsGetXpnHostCall) doRequest(alt string) (*http.Response, error) {
57869	reqHeaders := make(http.Header)
57870	for k, v := range c.header_ {
57871		reqHeaders[k] = v
57872	}
57873	reqHeaders.Set("User-Agent", c.s.userAgent())
57874	if c.ifNoneMatch_ != "" {
57875		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57876	}
57877	var body io.Reader = nil
57878	c.urlParams_.Set("alt", alt)
57879	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/getXpnHost")
57880	urls += "?" + c.urlParams_.Encode()
57881	req, _ := http.NewRequest("GET", urls, body)
57882	req.Header = reqHeaders
57883	googleapi.Expand(req.URL, map[string]string{
57884		"project": c.project,
57885	})
57886	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57887}
57888
57889// Do executes the "compute.projects.getXpnHost" call.
57890// Exactly one of *Project or error will be non-nil. Any non-2xx status
57891// code is an error. Response headers are in either
57892// *Project.ServerResponse.Header or (if a response was returned at all)
57893// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
57894// check whether the returned error was because http.StatusNotModified
57895// was returned.
57896func (c *ProjectsGetXpnHostCall) Do(opts ...googleapi.CallOption) (*Project, error) {
57897	gensupport.SetOptions(c.urlParams_, opts...)
57898	res, err := c.doRequest("json")
57899	if res != nil && res.StatusCode == http.StatusNotModified {
57900		if res.Body != nil {
57901			res.Body.Close()
57902		}
57903		return nil, &googleapi.Error{
57904			Code:   res.StatusCode,
57905			Header: res.Header,
57906		}
57907	}
57908	if err != nil {
57909		return nil, err
57910	}
57911	defer googleapi.CloseBody(res)
57912	if err := googleapi.CheckResponse(res); err != nil {
57913		return nil, err
57914	}
57915	ret := &Project{
57916		ServerResponse: googleapi.ServerResponse{
57917			Header:         res.Header,
57918			HTTPStatusCode: res.StatusCode,
57919		},
57920	}
57921	target := &ret
57922	if err := gensupport.DecodeResponse(target, res); err != nil {
57923		return nil, err
57924	}
57925	return ret, nil
57926	// {
57927	//   "description": "Gets the shared VPC host project that this project links to. May be empty if no link exists.",
57928	//   "httpMethod": "GET",
57929	//   "id": "compute.projects.getXpnHost",
57930	//   "parameterOrder": [
57931	//     "project"
57932	//   ],
57933	//   "parameters": {
57934	//     "project": {
57935	//       "description": "Project ID for this request.",
57936	//       "location": "path",
57937	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57938	//       "required": true,
57939	//       "type": "string"
57940	//     }
57941	//   },
57942	//   "path": "{project}/getXpnHost",
57943	//   "response": {
57944	//     "$ref": "Project"
57945	//   },
57946	//   "scopes": [
57947	//     "https://www.googleapis.com/auth/cloud-platform",
57948	//     "https://www.googleapis.com/auth/compute"
57949	//   ]
57950	// }
57951
57952}
57953
57954// method id "compute.projects.getXpnResources":
57955
57956type ProjectsGetXpnResourcesCall struct {
57957	s            *Service
57958	project      string
57959	urlParams_   gensupport.URLParams
57960	ifNoneMatch_ string
57961	ctx_         context.Context
57962	header_      http.Header
57963}
57964
57965// GetXpnResources: Gets service resources (a.k.a service project)
57966// associated with this host project.
57967func (r *ProjectsService) GetXpnResources(project string) *ProjectsGetXpnResourcesCall {
57968	c := &ProjectsGetXpnResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57969	c.project = project
57970	return c
57971}
57972
57973// Filter sets the optional parameter "filter":
57974func (c *ProjectsGetXpnResourcesCall) Filter(filter string) *ProjectsGetXpnResourcesCall {
57975	c.urlParams_.Set("filter", filter)
57976	return c
57977}
57978
57979// MaxResults sets the optional parameter "maxResults":
57980func (c *ProjectsGetXpnResourcesCall) MaxResults(maxResults int64) *ProjectsGetXpnResourcesCall {
57981	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
57982	return c
57983}
57984
57985// OrderBy sets the optional parameter "order_by":
57986func (c *ProjectsGetXpnResourcesCall) OrderBy(orderBy string) *ProjectsGetXpnResourcesCall {
57987	c.urlParams_.Set("order_by", orderBy)
57988	return c
57989}
57990
57991// PageToken sets the optional parameter "pageToken":
57992func (c *ProjectsGetXpnResourcesCall) PageToken(pageToken string) *ProjectsGetXpnResourcesCall {
57993	c.urlParams_.Set("pageToken", pageToken)
57994	return c
57995}
57996
57997// Fields allows partial responses to be retrieved. See
57998// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57999// for more information.
58000func (c *ProjectsGetXpnResourcesCall) Fields(s ...googleapi.Field) *ProjectsGetXpnResourcesCall {
58001	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58002	return c
58003}
58004
58005// IfNoneMatch sets the optional parameter which makes the operation
58006// fail if the object's ETag matches the given value. This is useful for
58007// getting updates only after the object has changed since the last
58008// request. Use googleapi.IsNotModified to check whether the response
58009// error from Do is the result of In-None-Match.
58010func (c *ProjectsGetXpnResourcesCall) IfNoneMatch(entityTag string) *ProjectsGetXpnResourcesCall {
58011	c.ifNoneMatch_ = entityTag
58012	return c
58013}
58014
58015// Context sets the context to be used in this call's Do method. Any
58016// pending HTTP request will be aborted if the provided context is
58017// canceled.
58018func (c *ProjectsGetXpnResourcesCall) Context(ctx context.Context) *ProjectsGetXpnResourcesCall {
58019	c.ctx_ = ctx
58020	return c
58021}
58022
58023// Header returns an http.Header that can be modified by the caller to
58024// add HTTP headers to the request.
58025func (c *ProjectsGetXpnResourcesCall) Header() http.Header {
58026	if c.header_ == nil {
58027		c.header_ = make(http.Header)
58028	}
58029	return c.header_
58030}
58031
58032func (c *ProjectsGetXpnResourcesCall) doRequest(alt string) (*http.Response, error) {
58033	reqHeaders := make(http.Header)
58034	for k, v := range c.header_ {
58035		reqHeaders[k] = v
58036	}
58037	reqHeaders.Set("User-Agent", c.s.userAgent())
58038	if c.ifNoneMatch_ != "" {
58039		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58040	}
58041	var body io.Reader = nil
58042	c.urlParams_.Set("alt", alt)
58043	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/getXpnResources")
58044	urls += "?" + c.urlParams_.Encode()
58045	req, _ := http.NewRequest("GET", urls, body)
58046	req.Header = reqHeaders
58047	googleapi.Expand(req.URL, map[string]string{
58048		"project": c.project,
58049	})
58050	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58051}
58052
58053// Do executes the "compute.projects.getXpnResources" call.
58054// Exactly one of *ProjectsGetXpnResources or error will be non-nil. Any
58055// non-2xx status code is an error. Response headers are in either
58056// *ProjectsGetXpnResources.ServerResponse.Header or (if a response was
58057// returned at all) in error.(*googleapi.Error).Header. Use
58058// googleapi.IsNotModified to check whether the returned error was
58059// because http.StatusNotModified was returned.
58060func (c *ProjectsGetXpnResourcesCall) Do(opts ...googleapi.CallOption) (*ProjectsGetXpnResources, error) {
58061	gensupport.SetOptions(c.urlParams_, opts...)
58062	res, err := c.doRequest("json")
58063	if res != nil && res.StatusCode == http.StatusNotModified {
58064		if res.Body != nil {
58065			res.Body.Close()
58066		}
58067		return nil, &googleapi.Error{
58068			Code:   res.StatusCode,
58069			Header: res.Header,
58070		}
58071	}
58072	if err != nil {
58073		return nil, err
58074	}
58075	defer googleapi.CloseBody(res)
58076	if err := googleapi.CheckResponse(res); err != nil {
58077		return nil, err
58078	}
58079	ret := &ProjectsGetXpnResources{
58080		ServerResponse: googleapi.ServerResponse{
58081			Header:         res.Header,
58082			HTTPStatusCode: res.StatusCode,
58083		},
58084	}
58085	target := &ret
58086	if err := gensupport.DecodeResponse(target, res); err != nil {
58087		return nil, err
58088	}
58089	return ret, nil
58090	// {
58091	//   "description": "Gets service resources (a.k.a service project) associated with this host project.",
58092	//   "httpMethod": "GET",
58093	//   "id": "compute.projects.getXpnResources",
58094	//   "parameterOrder": [
58095	//     "project"
58096	//   ],
58097	//   "parameters": {
58098	//     "filter": {
58099	//       "location": "query",
58100	//       "type": "string"
58101	//     },
58102	//     "maxResults": {
58103	//       "default": "500",
58104	//       "format": "uint32",
58105	//       "location": "query",
58106	//       "minimum": "0",
58107	//       "type": "integer"
58108	//     },
58109	//     "order_by": {
58110	//       "location": "query",
58111	//       "type": "string"
58112	//     },
58113	//     "pageToken": {
58114	//       "location": "query",
58115	//       "type": "string"
58116	//     },
58117	//     "project": {
58118	//       "description": "Project ID for this request.",
58119	//       "location": "path",
58120	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58121	//       "required": true,
58122	//       "type": "string"
58123	//     }
58124	//   },
58125	//   "path": "{project}/getXpnResources",
58126	//   "response": {
58127	//     "$ref": "ProjectsGetXpnResources"
58128	//   },
58129	//   "scopes": [
58130	//     "https://www.googleapis.com/auth/cloud-platform",
58131	//     "https://www.googleapis.com/auth/compute"
58132	//   ]
58133	// }
58134
58135}
58136
58137// Pages invokes f for each page of results.
58138// A non-nil error returned from f will halt the iteration.
58139// The provided context supersedes any context provided to the Context method.
58140func (c *ProjectsGetXpnResourcesCall) Pages(ctx context.Context, f func(*ProjectsGetXpnResources) error) error {
58141	c.ctx_ = ctx
58142	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
58143	for {
58144		x, err := c.Do()
58145		if err != nil {
58146			return err
58147		}
58148		if err := f(x); err != nil {
58149			return err
58150		}
58151		if x.NextPageToken == "" {
58152			return nil
58153		}
58154		c.PageToken(x.NextPageToken)
58155	}
58156}
58157
58158// method id "compute.projects.listXpnHosts":
58159
58160type ProjectsListXpnHostsCall struct {
58161	s                           *Service
58162	project                     string
58163	projectslistxpnhostsrequest *ProjectsListXpnHostsRequest
58164	urlParams_                  gensupport.URLParams
58165	ctx_                        context.Context
58166	header_                     http.Header
58167}
58168
58169// ListXpnHosts: Lists all shared VPC host projects visible to the user
58170// in an organization.
58171func (r *ProjectsService) ListXpnHosts(project string, projectslistxpnhostsrequest *ProjectsListXpnHostsRequest) *ProjectsListXpnHostsCall {
58172	c := &ProjectsListXpnHostsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58173	c.project = project
58174	c.projectslistxpnhostsrequest = projectslistxpnhostsrequest
58175	return c
58176}
58177
58178// Filter sets the optional parameter "filter":
58179func (c *ProjectsListXpnHostsCall) Filter(filter string) *ProjectsListXpnHostsCall {
58180	c.urlParams_.Set("filter", filter)
58181	return c
58182}
58183
58184// MaxResults sets the optional parameter "maxResults":
58185func (c *ProjectsListXpnHostsCall) MaxResults(maxResults int64) *ProjectsListXpnHostsCall {
58186	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
58187	return c
58188}
58189
58190// OrderBy sets the optional parameter "order_by":
58191func (c *ProjectsListXpnHostsCall) OrderBy(orderBy string) *ProjectsListXpnHostsCall {
58192	c.urlParams_.Set("order_by", orderBy)
58193	return c
58194}
58195
58196// PageToken sets the optional parameter "pageToken":
58197func (c *ProjectsListXpnHostsCall) PageToken(pageToken string) *ProjectsListXpnHostsCall {
58198	c.urlParams_.Set("pageToken", pageToken)
58199	return c
58200}
58201
58202// Fields allows partial responses to be retrieved. See
58203// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58204// for more information.
58205func (c *ProjectsListXpnHostsCall) Fields(s ...googleapi.Field) *ProjectsListXpnHostsCall {
58206	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58207	return c
58208}
58209
58210// Context sets the context to be used in this call's Do method. Any
58211// pending HTTP request will be aborted if the provided context is
58212// canceled.
58213func (c *ProjectsListXpnHostsCall) Context(ctx context.Context) *ProjectsListXpnHostsCall {
58214	c.ctx_ = ctx
58215	return c
58216}
58217
58218// Header returns an http.Header that can be modified by the caller to
58219// add HTTP headers to the request.
58220func (c *ProjectsListXpnHostsCall) Header() http.Header {
58221	if c.header_ == nil {
58222		c.header_ = make(http.Header)
58223	}
58224	return c.header_
58225}
58226
58227func (c *ProjectsListXpnHostsCall) doRequest(alt string) (*http.Response, error) {
58228	reqHeaders := make(http.Header)
58229	for k, v := range c.header_ {
58230		reqHeaders[k] = v
58231	}
58232	reqHeaders.Set("User-Agent", c.s.userAgent())
58233	var body io.Reader = nil
58234	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectslistxpnhostsrequest)
58235	if err != nil {
58236		return nil, err
58237	}
58238	reqHeaders.Set("Content-Type", "application/json")
58239	c.urlParams_.Set("alt", alt)
58240	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/listXpnHosts")
58241	urls += "?" + c.urlParams_.Encode()
58242	req, _ := http.NewRequest("POST", urls, body)
58243	req.Header = reqHeaders
58244	googleapi.Expand(req.URL, map[string]string{
58245		"project": c.project,
58246	})
58247	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58248}
58249
58250// Do executes the "compute.projects.listXpnHosts" call.
58251// Exactly one of *XpnHostList or error will be non-nil. Any non-2xx
58252// status code is an error. Response headers are in either
58253// *XpnHostList.ServerResponse.Header or (if a response was returned at
58254// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58255// to check whether the returned error was because
58256// http.StatusNotModified was returned.
58257func (c *ProjectsListXpnHostsCall) Do(opts ...googleapi.CallOption) (*XpnHostList, error) {
58258	gensupport.SetOptions(c.urlParams_, opts...)
58259	res, err := c.doRequest("json")
58260	if res != nil && res.StatusCode == http.StatusNotModified {
58261		if res.Body != nil {
58262			res.Body.Close()
58263		}
58264		return nil, &googleapi.Error{
58265			Code:   res.StatusCode,
58266			Header: res.Header,
58267		}
58268	}
58269	if err != nil {
58270		return nil, err
58271	}
58272	defer googleapi.CloseBody(res)
58273	if err := googleapi.CheckResponse(res); err != nil {
58274		return nil, err
58275	}
58276	ret := &XpnHostList{
58277		ServerResponse: googleapi.ServerResponse{
58278			Header:         res.Header,
58279			HTTPStatusCode: res.StatusCode,
58280		},
58281	}
58282	target := &ret
58283	if err := gensupport.DecodeResponse(target, res); err != nil {
58284		return nil, err
58285	}
58286	return ret, nil
58287	// {
58288	//   "description": "Lists all shared VPC host projects visible to the user in an organization.",
58289	//   "httpMethod": "POST",
58290	//   "id": "compute.projects.listXpnHosts",
58291	//   "parameterOrder": [
58292	//     "project"
58293	//   ],
58294	//   "parameters": {
58295	//     "filter": {
58296	//       "location": "query",
58297	//       "type": "string"
58298	//     },
58299	//     "maxResults": {
58300	//       "default": "500",
58301	//       "format": "uint32",
58302	//       "location": "query",
58303	//       "minimum": "0",
58304	//       "type": "integer"
58305	//     },
58306	//     "order_by": {
58307	//       "location": "query",
58308	//       "type": "string"
58309	//     },
58310	//     "pageToken": {
58311	//       "location": "query",
58312	//       "type": "string"
58313	//     },
58314	//     "project": {
58315	//       "description": "Project ID for this request.",
58316	//       "location": "path",
58317	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58318	//       "required": true,
58319	//       "type": "string"
58320	//     }
58321	//   },
58322	//   "path": "{project}/listXpnHosts",
58323	//   "request": {
58324	//     "$ref": "ProjectsListXpnHostsRequest"
58325	//   },
58326	//   "response": {
58327	//     "$ref": "XpnHostList"
58328	//   },
58329	//   "scopes": [
58330	//     "https://www.googleapis.com/auth/cloud-platform",
58331	//     "https://www.googleapis.com/auth/compute"
58332	//   ]
58333	// }
58334
58335}
58336
58337// Pages invokes f for each page of results.
58338// A non-nil error returned from f will halt the iteration.
58339// The provided context supersedes any context provided to the Context method.
58340func (c *ProjectsListXpnHostsCall) Pages(ctx context.Context, f func(*XpnHostList) error) error {
58341	c.ctx_ = ctx
58342	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
58343	for {
58344		x, err := c.Do()
58345		if err != nil {
58346			return err
58347		}
58348		if err := f(x); err != nil {
58349			return err
58350		}
58351		if x.NextPageToken == "" {
58352			return nil
58353		}
58354		c.PageToken(x.NextPageToken)
58355	}
58356}
58357
58358// method id "compute.projects.moveDisk":
58359
58360type ProjectsMoveDiskCall struct {
58361	s               *Service
58362	project         string
58363	diskmoverequest *DiskMoveRequest
58364	urlParams_      gensupport.URLParams
58365	ctx_            context.Context
58366	header_         http.Header
58367}
58368
58369// MoveDisk: Moves a persistent disk from one zone to another.
58370func (r *ProjectsService) MoveDisk(project string, diskmoverequest *DiskMoveRequest) *ProjectsMoveDiskCall {
58371	c := &ProjectsMoveDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58372	c.project = project
58373	c.diskmoverequest = diskmoverequest
58374	return c
58375}
58376
58377// RequestId sets the optional parameter "requestId": An optional
58378// request ID to identify requests. Specify a unique request ID so that
58379// if you must retry your request, the server will know to ignore the
58380// request if it has already been completed.
58381//
58382// For example, consider a situation where you make an initial request
58383// and the request times out. If you make the request again with the
58384// same request ID, the server can check if original operation with the
58385// same request ID was received, and if so, will ignore the second
58386// request. This prevents clients from accidentally creating duplicate
58387// commitments.
58388//
58389// The request ID must be a valid UUID with the exception that zero UUID
58390// is not supported (00000000-0000-0000-0000-000000000000).
58391func (c *ProjectsMoveDiskCall) RequestId(requestId string) *ProjectsMoveDiskCall {
58392	c.urlParams_.Set("requestId", requestId)
58393	return c
58394}
58395
58396// Fields allows partial responses to be retrieved. See
58397// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58398// for more information.
58399func (c *ProjectsMoveDiskCall) Fields(s ...googleapi.Field) *ProjectsMoveDiskCall {
58400	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58401	return c
58402}
58403
58404// Context sets the context to be used in this call's Do method. Any
58405// pending HTTP request will be aborted if the provided context is
58406// canceled.
58407func (c *ProjectsMoveDiskCall) Context(ctx context.Context) *ProjectsMoveDiskCall {
58408	c.ctx_ = ctx
58409	return c
58410}
58411
58412// Header returns an http.Header that can be modified by the caller to
58413// add HTTP headers to the request.
58414func (c *ProjectsMoveDiskCall) Header() http.Header {
58415	if c.header_ == nil {
58416		c.header_ = make(http.Header)
58417	}
58418	return c.header_
58419}
58420
58421func (c *ProjectsMoveDiskCall) doRequest(alt string) (*http.Response, error) {
58422	reqHeaders := make(http.Header)
58423	for k, v := range c.header_ {
58424		reqHeaders[k] = v
58425	}
58426	reqHeaders.Set("User-Agent", c.s.userAgent())
58427	var body io.Reader = nil
58428	body, err := googleapi.WithoutDataWrapper.JSONReader(c.diskmoverequest)
58429	if err != nil {
58430		return nil, err
58431	}
58432	reqHeaders.Set("Content-Type", "application/json")
58433	c.urlParams_.Set("alt", alt)
58434	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/moveDisk")
58435	urls += "?" + c.urlParams_.Encode()
58436	req, _ := http.NewRequest("POST", urls, body)
58437	req.Header = reqHeaders
58438	googleapi.Expand(req.URL, map[string]string{
58439		"project": c.project,
58440	})
58441	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58442}
58443
58444// Do executes the "compute.projects.moveDisk" call.
58445// Exactly one of *Operation or error will be non-nil. Any non-2xx
58446// status code is an error. Response headers are in either
58447// *Operation.ServerResponse.Header or (if a response was returned at
58448// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58449// to check whether the returned error was because
58450// http.StatusNotModified was returned.
58451func (c *ProjectsMoveDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58452	gensupport.SetOptions(c.urlParams_, opts...)
58453	res, err := c.doRequest("json")
58454	if res != nil && res.StatusCode == http.StatusNotModified {
58455		if res.Body != nil {
58456			res.Body.Close()
58457		}
58458		return nil, &googleapi.Error{
58459			Code:   res.StatusCode,
58460			Header: res.Header,
58461		}
58462	}
58463	if err != nil {
58464		return nil, err
58465	}
58466	defer googleapi.CloseBody(res)
58467	if err := googleapi.CheckResponse(res); err != nil {
58468		return nil, err
58469	}
58470	ret := &Operation{
58471		ServerResponse: googleapi.ServerResponse{
58472			Header:         res.Header,
58473			HTTPStatusCode: res.StatusCode,
58474		},
58475	}
58476	target := &ret
58477	if err := gensupport.DecodeResponse(target, res); err != nil {
58478		return nil, err
58479	}
58480	return ret, nil
58481	// {
58482	//   "description": "Moves a persistent disk from one zone to another.",
58483	//   "httpMethod": "POST",
58484	//   "id": "compute.projects.moveDisk",
58485	//   "parameterOrder": [
58486	//     "project"
58487	//   ],
58488	//   "parameters": {
58489	//     "project": {
58490	//       "description": "Project ID for this request.",
58491	//       "location": "path",
58492	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58493	//       "required": true,
58494	//       "type": "string"
58495	//     },
58496	//     "requestId": {
58497	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58498	//       "location": "query",
58499	//       "type": "string"
58500	//     }
58501	//   },
58502	//   "path": "{project}/moveDisk",
58503	//   "request": {
58504	//     "$ref": "DiskMoveRequest"
58505	//   },
58506	//   "response": {
58507	//     "$ref": "Operation"
58508	//   },
58509	//   "scopes": [
58510	//     "https://www.googleapis.com/auth/cloud-platform",
58511	//     "https://www.googleapis.com/auth/compute"
58512	//   ]
58513	// }
58514
58515}
58516
58517// method id "compute.projects.moveInstance":
58518
58519type ProjectsMoveInstanceCall struct {
58520	s                   *Service
58521	project             string
58522	instancemoverequest *InstanceMoveRequest
58523	urlParams_          gensupport.URLParams
58524	ctx_                context.Context
58525	header_             http.Header
58526}
58527
58528// MoveInstance: Moves an instance and its attached persistent disks
58529// from one zone to another.
58530func (r *ProjectsService) MoveInstance(project string, instancemoverequest *InstanceMoveRequest) *ProjectsMoveInstanceCall {
58531	c := &ProjectsMoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58532	c.project = project
58533	c.instancemoverequest = instancemoverequest
58534	return c
58535}
58536
58537// RequestId sets the optional parameter "requestId": An optional
58538// request ID to identify requests. Specify a unique request ID so that
58539// if you must retry your request, the server will know to ignore the
58540// request if it has already been completed.
58541//
58542// For example, consider a situation where you make an initial request
58543// and the request times out. If you make the request again with the
58544// same request ID, the server can check if original operation with the
58545// same request ID was received, and if so, will ignore the second
58546// request. This prevents clients from accidentally creating duplicate
58547// commitments.
58548//
58549// The request ID must be a valid UUID with the exception that zero UUID
58550// is not supported (00000000-0000-0000-0000-000000000000).
58551func (c *ProjectsMoveInstanceCall) RequestId(requestId string) *ProjectsMoveInstanceCall {
58552	c.urlParams_.Set("requestId", requestId)
58553	return c
58554}
58555
58556// Fields allows partial responses to be retrieved. See
58557// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58558// for more information.
58559func (c *ProjectsMoveInstanceCall) Fields(s ...googleapi.Field) *ProjectsMoveInstanceCall {
58560	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58561	return c
58562}
58563
58564// Context sets the context to be used in this call's Do method. Any
58565// pending HTTP request will be aborted if the provided context is
58566// canceled.
58567func (c *ProjectsMoveInstanceCall) Context(ctx context.Context) *ProjectsMoveInstanceCall {
58568	c.ctx_ = ctx
58569	return c
58570}
58571
58572// Header returns an http.Header that can be modified by the caller to
58573// add HTTP headers to the request.
58574func (c *ProjectsMoveInstanceCall) Header() http.Header {
58575	if c.header_ == nil {
58576		c.header_ = make(http.Header)
58577	}
58578	return c.header_
58579}
58580
58581func (c *ProjectsMoveInstanceCall) doRequest(alt string) (*http.Response, error) {
58582	reqHeaders := make(http.Header)
58583	for k, v := range c.header_ {
58584		reqHeaders[k] = v
58585	}
58586	reqHeaders.Set("User-Agent", c.s.userAgent())
58587	var body io.Reader = nil
58588	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancemoverequest)
58589	if err != nil {
58590		return nil, err
58591	}
58592	reqHeaders.Set("Content-Type", "application/json")
58593	c.urlParams_.Set("alt", alt)
58594	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/moveInstance")
58595	urls += "?" + c.urlParams_.Encode()
58596	req, _ := http.NewRequest("POST", urls, body)
58597	req.Header = reqHeaders
58598	googleapi.Expand(req.URL, map[string]string{
58599		"project": c.project,
58600	})
58601	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58602}
58603
58604// Do executes the "compute.projects.moveInstance" call.
58605// Exactly one of *Operation or error will be non-nil. Any non-2xx
58606// status code is an error. Response headers are in either
58607// *Operation.ServerResponse.Header or (if a response was returned at
58608// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58609// to check whether the returned error was because
58610// http.StatusNotModified was returned.
58611func (c *ProjectsMoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58612	gensupport.SetOptions(c.urlParams_, opts...)
58613	res, err := c.doRequest("json")
58614	if res != nil && res.StatusCode == http.StatusNotModified {
58615		if res.Body != nil {
58616			res.Body.Close()
58617		}
58618		return nil, &googleapi.Error{
58619			Code:   res.StatusCode,
58620			Header: res.Header,
58621		}
58622	}
58623	if err != nil {
58624		return nil, err
58625	}
58626	defer googleapi.CloseBody(res)
58627	if err := googleapi.CheckResponse(res); err != nil {
58628		return nil, err
58629	}
58630	ret := &Operation{
58631		ServerResponse: googleapi.ServerResponse{
58632			Header:         res.Header,
58633			HTTPStatusCode: res.StatusCode,
58634		},
58635	}
58636	target := &ret
58637	if err := gensupport.DecodeResponse(target, res); err != nil {
58638		return nil, err
58639	}
58640	return ret, nil
58641	// {
58642	//   "description": "Moves an instance and its attached persistent disks from one zone to another.",
58643	//   "httpMethod": "POST",
58644	//   "id": "compute.projects.moveInstance",
58645	//   "parameterOrder": [
58646	//     "project"
58647	//   ],
58648	//   "parameters": {
58649	//     "project": {
58650	//       "description": "Project ID for this request.",
58651	//       "location": "path",
58652	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58653	//       "required": true,
58654	//       "type": "string"
58655	//     },
58656	//     "requestId": {
58657	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58658	//       "location": "query",
58659	//       "type": "string"
58660	//     }
58661	//   },
58662	//   "path": "{project}/moveInstance",
58663	//   "request": {
58664	//     "$ref": "InstanceMoveRequest"
58665	//   },
58666	//   "response": {
58667	//     "$ref": "Operation"
58668	//   },
58669	//   "scopes": [
58670	//     "https://www.googleapis.com/auth/cloud-platform",
58671	//     "https://www.googleapis.com/auth/compute"
58672	//   ]
58673	// }
58674
58675}
58676
58677// method id "compute.projects.setCommonInstanceMetadata":
58678
58679type ProjectsSetCommonInstanceMetadataCall struct {
58680	s          *Service
58681	project    string
58682	metadata   *Metadata
58683	urlParams_ gensupport.URLParams
58684	ctx_       context.Context
58685	header_    http.Header
58686}
58687
58688// SetCommonInstanceMetadata: Sets metadata common to all instances
58689// within the specified project using the data included in the request.
58690// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setCommonInstanceMetadata
58691func (r *ProjectsService) SetCommonInstanceMetadata(project string, metadata *Metadata) *ProjectsSetCommonInstanceMetadataCall {
58692	c := &ProjectsSetCommonInstanceMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58693	c.project = project
58694	c.metadata = metadata
58695	return c
58696}
58697
58698// RequestId sets the optional parameter "requestId": An optional
58699// request ID to identify requests. Specify a unique request ID so that
58700// if you must retry your request, the server will know to ignore the
58701// request if it has already been completed.
58702//
58703// For example, consider a situation where you make an initial request
58704// and the request times out. If you make the request again with the
58705// same request ID, the server can check if original operation with the
58706// same request ID was received, and if so, will ignore the second
58707// request. This prevents clients from accidentally creating duplicate
58708// commitments.
58709//
58710// The request ID must be a valid UUID with the exception that zero UUID
58711// is not supported (00000000-0000-0000-0000-000000000000).
58712func (c *ProjectsSetCommonInstanceMetadataCall) RequestId(requestId string) *ProjectsSetCommonInstanceMetadataCall {
58713	c.urlParams_.Set("requestId", requestId)
58714	return c
58715}
58716
58717// Fields allows partial responses to be retrieved. See
58718// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58719// for more information.
58720func (c *ProjectsSetCommonInstanceMetadataCall) Fields(s ...googleapi.Field) *ProjectsSetCommonInstanceMetadataCall {
58721	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58722	return c
58723}
58724
58725// Context sets the context to be used in this call's Do method. Any
58726// pending HTTP request will be aborted if the provided context is
58727// canceled.
58728func (c *ProjectsSetCommonInstanceMetadataCall) Context(ctx context.Context) *ProjectsSetCommonInstanceMetadataCall {
58729	c.ctx_ = ctx
58730	return c
58731}
58732
58733// Header returns an http.Header that can be modified by the caller to
58734// add HTTP headers to the request.
58735func (c *ProjectsSetCommonInstanceMetadataCall) Header() http.Header {
58736	if c.header_ == nil {
58737		c.header_ = make(http.Header)
58738	}
58739	return c.header_
58740}
58741
58742func (c *ProjectsSetCommonInstanceMetadataCall) doRequest(alt string) (*http.Response, error) {
58743	reqHeaders := make(http.Header)
58744	for k, v := range c.header_ {
58745		reqHeaders[k] = v
58746	}
58747	reqHeaders.Set("User-Agent", c.s.userAgent())
58748	var body io.Reader = nil
58749	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
58750	if err != nil {
58751		return nil, err
58752	}
58753	reqHeaders.Set("Content-Type", "application/json")
58754	c.urlParams_.Set("alt", alt)
58755	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setCommonInstanceMetadata")
58756	urls += "?" + c.urlParams_.Encode()
58757	req, _ := http.NewRequest("POST", urls, body)
58758	req.Header = reqHeaders
58759	googleapi.Expand(req.URL, map[string]string{
58760		"project": c.project,
58761	})
58762	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58763}
58764
58765// Do executes the "compute.projects.setCommonInstanceMetadata" call.
58766// Exactly one of *Operation or error will be non-nil. Any non-2xx
58767// status code is an error. Response headers are in either
58768// *Operation.ServerResponse.Header or (if a response was returned at
58769// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58770// to check whether the returned error was because
58771// http.StatusNotModified was returned.
58772func (c *ProjectsSetCommonInstanceMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58773	gensupport.SetOptions(c.urlParams_, opts...)
58774	res, err := c.doRequest("json")
58775	if res != nil && res.StatusCode == http.StatusNotModified {
58776		if res.Body != nil {
58777			res.Body.Close()
58778		}
58779		return nil, &googleapi.Error{
58780			Code:   res.StatusCode,
58781			Header: res.Header,
58782		}
58783	}
58784	if err != nil {
58785		return nil, err
58786	}
58787	defer googleapi.CloseBody(res)
58788	if err := googleapi.CheckResponse(res); err != nil {
58789		return nil, err
58790	}
58791	ret := &Operation{
58792		ServerResponse: googleapi.ServerResponse{
58793			Header:         res.Header,
58794			HTTPStatusCode: res.StatusCode,
58795		},
58796	}
58797	target := &ret
58798	if err := gensupport.DecodeResponse(target, res); err != nil {
58799		return nil, err
58800	}
58801	return ret, nil
58802	// {
58803	//   "description": "Sets metadata common to all instances within the specified project using the data included in the request.",
58804	//   "httpMethod": "POST",
58805	//   "id": "compute.projects.setCommonInstanceMetadata",
58806	//   "parameterOrder": [
58807	//     "project"
58808	//   ],
58809	//   "parameters": {
58810	//     "project": {
58811	//       "description": "Project ID for this request.",
58812	//       "location": "path",
58813	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58814	//       "required": true,
58815	//       "type": "string"
58816	//     },
58817	//     "requestId": {
58818	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58819	//       "location": "query",
58820	//       "type": "string"
58821	//     }
58822	//   },
58823	//   "path": "{project}/setCommonInstanceMetadata",
58824	//   "request": {
58825	//     "$ref": "Metadata"
58826	//   },
58827	//   "response": {
58828	//     "$ref": "Operation"
58829	//   },
58830	//   "scopes": [
58831	//     "https://www.googleapis.com/auth/cloud-platform",
58832	//     "https://www.googleapis.com/auth/compute"
58833	//   ]
58834	// }
58835
58836}
58837
58838// method id "compute.projects.setUsageExportBucket":
58839
58840type ProjectsSetUsageExportBucketCall struct {
58841	s                   *Service
58842	project             string
58843	usageexportlocation *UsageExportLocation
58844	urlParams_          gensupport.URLParams
58845	ctx_                context.Context
58846	header_             http.Header
58847}
58848
58849// SetUsageExportBucket: Enables the usage export feature and sets the
58850// usage export bucket where reports are stored. If you provide an empty
58851// request body using this method, the usage export feature will be
58852// disabled.
58853// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setUsageExportBucket
58854func (r *ProjectsService) SetUsageExportBucket(project string, usageexportlocation *UsageExportLocation) *ProjectsSetUsageExportBucketCall {
58855	c := &ProjectsSetUsageExportBucketCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58856	c.project = project
58857	c.usageexportlocation = usageexportlocation
58858	return c
58859}
58860
58861// RequestId sets the optional parameter "requestId": An optional
58862// request ID to identify requests. Specify a unique request ID so that
58863// if you must retry your request, the server will know to ignore the
58864// request if it has already been completed.
58865//
58866// For example, consider a situation where you make an initial request
58867// and the request times out. If you make the request again with the
58868// same request ID, the server can check if original operation with the
58869// same request ID was received, and if so, will ignore the second
58870// request. This prevents clients from accidentally creating duplicate
58871// commitments.
58872//
58873// The request ID must be a valid UUID with the exception that zero UUID
58874// is not supported (00000000-0000-0000-0000-000000000000).
58875func (c *ProjectsSetUsageExportBucketCall) RequestId(requestId string) *ProjectsSetUsageExportBucketCall {
58876	c.urlParams_.Set("requestId", requestId)
58877	return c
58878}
58879
58880// Fields allows partial responses to be retrieved. See
58881// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58882// for more information.
58883func (c *ProjectsSetUsageExportBucketCall) Fields(s ...googleapi.Field) *ProjectsSetUsageExportBucketCall {
58884	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58885	return c
58886}
58887
58888// Context sets the context to be used in this call's Do method. Any
58889// pending HTTP request will be aborted if the provided context is
58890// canceled.
58891func (c *ProjectsSetUsageExportBucketCall) Context(ctx context.Context) *ProjectsSetUsageExportBucketCall {
58892	c.ctx_ = ctx
58893	return c
58894}
58895
58896// Header returns an http.Header that can be modified by the caller to
58897// add HTTP headers to the request.
58898func (c *ProjectsSetUsageExportBucketCall) Header() http.Header {
58899	if c.header_ == nil {
58900		c.header_ = make(http.Header)
58901	}
58902	return c.header_
58903}
58904
58905func (c *ProjectsSetUsageExportBucketCall) doRequest(alt string) (*http.Response, error) {
58906	reqHeaders := make(http.Header)
58907	for k, v := range c.header_ {
58908		reqHeaders[k] = v
58909	}
58910	reqHeaders.Set("User-Agent", c.s.userAgent())
58911	var body io.Reader = nil
58912	body, err := googleapi.WithoutDataWrapper.JSONReader(c.usageexportlocation)
58913	if err != nil {
58914		return nil, err
58915	}
58916	reqHeaders.Set("Content-Type", "application/json")
58917	c.urlParams_.Set("alt", alt)
58918	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setUsageExportBucket")
58919	urls += "?" + c.urlParams_.Encode()
58920	req, _ := http.NewRequest("POST", urls, body)
58921	req.Header = reqHeaders
58922	googleapi.Expand(req.URL, map[string]string{
58923		"project": c.project,
58924	})
58925	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58926}
58927
58928// Do executes the "compute.projects.setUsageExportBucket" call.
58929// Exactly one of *Operation or error will be non-nil. Any non-2xx
58930// status code is an error. Response headers are in either
58931// *Operation.ServerResponse.Header or (if a response was returned at
58932// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58933// to check whether the returned error was because
58934// http.StatusNotModified was returned.
58935func (c *ProjectsSetUsageExportBucketCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58936	gensupport.SetOptions(c.urlParams_, opts...)
58937	res, err := c.doRequest("json")
58938	if res != nil && res.StatusCode == http.StatusNotModified {
58939		if res.Body != nil {
58940			res.Body.Close()
58941		}
58942		return nil, &googleapi.Error{
58943			Code:   res.StatusCode,
58944			Header: res.Header,
58945		}
58946	}
58947	if err != nil {
58948		return nil, err
58949	}
58950	defer googleapi.CloseBody(res)
58951	if err := googleapi.CheckResponse(res); err != nil {
58952		return nil, err
58953	}
58954	ret := &Operation{
58955		ServerResponse: googleapi.ServerResponse{
58956			Header:         res.Header,
58957			HTTPStatusCode: res.StatusCode,
58958		},
58959	}
58960	target := &ret
58961	if err := gensupport.DecodeResponse(target, res); err != nil {
58962		return nil, err
58963	}
58964	return ret, nil
58965	// {
58966	//   "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.",
58967	//   "httpMethod": "POST",
58968	//   "id": "compute.projects.setUsageExportBucket",
58969	//   "parameterOrder": [
58970	//     "project"
58971	//   ],
58972	//   "parameters": {
58973	//     "project": {
58974	//       "description": "Project ID for this request.",
58975	//       "location": "path",
58976	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58977	//       "required": true,
58978	//       "type": "string"
58979	//     },
58980	//     "requestId": {
58981	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58982	//       "location": "query",
58983	//       "type": "string"
58984	//     }
58985	//   },
58986	//   "path": "{project}/setUsageExportBucket",
58987	//   "request": {
58988	//     "$ref": "UsageExportLocation"
58989	//   },
58990	//   "response": {
58991	//     "$ref": "Operation"
58992	//   },
58993	//   "scopes": [
58994	//     "https://www.googleapis.com/auth/cloud-platform",
58995	//     "https://www.googleapis.com/auth/compute",
58996	//     "https://www.googleapis.com/auth/devstorage.full_control",
58997	//     "https://www.googleapis.com/auth/devstorage.read_only",
58998	//     "https://www.googleapis.com/auth/devstorage.read_write"
58999	//   ]
59000	// }
59001
59002}
59003
59004// method id "compute.regionAutoscalers.delete":
59005
59006type RegionAutoscalersDeleteCall struct {
59007	s          *Service
59008	project    string
59009	region     string
59010	autoscaler string
59011	urlParams_ gensupport.URLParams
59012	ctx_       context.Context
59013	header_    http.Header
59014}
59015
59016// Delete: Deletes the specified autoscaler.
59017func (r *RegionAutoscalersService) Delete(project string, region string, autoscaler string) *RegionAutoscalersDeleteCall {
59018	c := &RegionAutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59019	c.project = project
59020	c.region = region
59021	c.autoscaler = autoscaler
59022	return c
59023}
59024
59025// RequestId sets the optional parameter "requestId": An optional
59026// request ID to identify requests. Specify a unique request ID so that
59027// if you must retry your request, the server will know to ignore the
59028// request if it has already been completed.
59029//
59030// For example, consider a situation where you make an initial request
59031// and the request times out. If you make the request again with the
59032// same request ID, the server can check if original operation with the
59033// same request ID was received, and if so, will ignore the second
59034// request. This prevents clients from accidentally creating duplicate
59035// commitments.
59036//
59037// The request ID must be a valid UUID with the exception that zero UUID
59038// is not supported (00000000-0000-0000-0000-000000000000).
59039func (c *RegionAutoscalersDeleteCall) RequestId(requestId string) *RegionAutoscalersDeleteCall {
59040	c.urlParams_.Set("requestId", requestId)
59041	return c
59042}
59043
59044// Fields allows partial responses to be retrieved. See
59045// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59046// for more information.
59047func (c *RegionAutoscalersDeleteCall) Fields(s ...googleapi.Field) *RegionAutoscalersDeleteCall {
59048	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59049	return c
59050}
59051
59052// Context sets the context to be used in this call's Do method. Any
59053// pending HTTP request will be aborted if the provided context is
59054// canceled.
59055func (c *RegionAutoscalersDeleteCall) Context(ctx context.Context) *RegionAutoscalersDeleteCall {
59056	c.ctx_ = ctx
59057	return c
59058}
59059
59060// Header returns an http.Header that can be modified by the caller to
59061// add HTTP headers to the request.
59062func (c *RegionAutoscalersDeleteCall) Header() http.Header {
59063	if c.header_ == nil {
59064		c.header_ = make(http.Header)
59065	}
59066	return c.header_
59067}
59068
59069func (c *RegionAutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
59070	reqHeaders := make(http.Header)
59071	for k, v := range c.header_ {
59072		reqHeaders[k] = v
59073	}
59074	reqHeaders.Set("User-Agent", c.s.userAgent())
59075	var body io.Reader = nil
59076	c.urlParams_.Set("alt", alt)
59077	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{autoscaler}")
59078	urls += "?" + c.urlParams_.Encode()
59079	req, _ := http.NewRequest("DELETE", urls, body)
59080	req.Header = reqHeaders
59081	googleapi.Expand(req.URL, map[string]string{
59082		"project":    c.project,
59083		"region":     c.region,
59084		"autoscaler": c.autoscaler,
59085	})
59086	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59087}
59088
59089// Do executes the "compute.regionAutoscalers.delete" call.
59090// Exactly one of *Operation or error will be non-nil. Any non-2xx
59091// status code is an error. Response headers are in either
59092// *Operation.ServerResponse.Header or (if a response was returned at
59093// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59094// to check whether the returned error was because
59095// http.StatusNotModified was returned.
59096func (c *RegionAutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59097	gensupport.SetOptions(c.urlParams_, opts...)
59098	res, err := c.doRequest("json")
59099	if res != nil && res.StatusCode == http.StatusNotModified {
59100		if res.Body != nil {
59101			res.Body.Close()
59102		}
59103		return nil, &googleapi.Error{
59104			Code:   res.StatusCode,
59105			Header: res.Header,
59106		}
59107	}
59108	if err != nil {
59109		return nil, err
59110	}
59111	defer googleapi.CloseBody(res)
59112	if err := googleapi.CheckResponse(res); err != nil {
59113		return nil, err
59114	}
59115	ret := &Operation{
59116		ServerResponse: googleapi.ServerResponse{
59117			Header:         res.Header,
59118			HTTPStatusCode: res.StatusCode,
59119		},
59120	}
59121	target := &ret
59122	if err := gensupport.DecodeResponse(target, res); err != nil {
59123		return nil, err
59124	}
59125	return ret, nil
59126	// {
59127	//   "description": "Deletes the specified autoscaler.",
59128	//   "httpMethod": "DELETE",
59129	//   "id": "compute.regionAutoscalers.delete",
59130	//   "parameterOrder": [
59131	//     "project",
59132	//     "region",
59133	//     "autoscaler"
59134	//   ],
59135	//   "parameters": {
59136	//     "autoscaler": {
59137	//       "description": "Name of the autoscaler to delete.",
59138	//       "location": "path",
59139	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59140	//       "required": true,
59141	//       "type": "string"
59142	//     },
59143	//     "project": {
59144	//       "description": "Project ID for this request.",
59145	//       "location": "path",
59146	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59147	//       "required": true,
59148	//       "type": "string"
59149	//     },
59150	//     "region": {
59151	//       "description": "Name of the region scoping this request.",
59152	//       "location": "path",
59153	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59154	//       "required": true,
59155	//       "type": "string"
59156	//     },
59157	//     "requestId": {
59158	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59159	//       "location": "query",
59160	//       "type": "string"
59161	//     }
59162	//   },
59163	//   "path": "{project}/regions/{region}/autoscalers/{autoscaler}",
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.regionAutoscalers.get":
59176
59177type RegionAutoscalersGetCall struct {
59178	s            *Service
59179	project      string
59180	region       string
59181	autoscaler   string
59182	urlParams_   gensupport.URLParams
59183	ifNoneMatch_ string
59184	ctx_         context.Context
59185	header_      http.Header
59186}
59187
59188// Get: Returns the specified autoscaler.
59189func (r *RegionAutoscalersService) Get(project string, region string, autoscaler string) *RegionAutoscalersGetCall {
59190	c := &RegionAutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59191	c.project = project
59192	c.region = region
59193	c.autoscaler = autoscaler
59194	return c
59195}
59196
59197// Fields allows partial responses to be retrieved. See
59198// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59199// for more information.
59200func (c *RegionAutoscalersGetCall) Fields(s ...googleapi.Field) *RegionAutoscalersGetCall {
59201	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59202	return c
59203}
59204
59205// IfNoneMatch sets the optional parameter which makes the operation
59206// fail if the object's ETag matches the given value. This is useful for
59207// getting updates only after the object has changed since the last
59208// request. Use googleapi.IsNotModified to check whether the response
59209// error from Do is the result of In-None-Match.
59210func (c *RegionAutoscalersGetCall) IfNoneMatch(entityTag string) *RegionAutoscalersGetCall {
59211	c.ifNoneMatch_ = entityTag
59212	return c
59213}
59214
59215// Context sets the context to be used in this call's Do method. Any
59216// pending HTTP request will be aborted if the provided context is
59217// canceled.
59218func (c *RegionAutoscalersGetCall) Context(ctx context.Context) *RegionAutoscalersGetCall {
59219	c.ctx_ = ctx
59220	return c
59221}
59222
59223// Header returns an http.Header that can be modified by the caller to
59224// add HTTP headers to the request.
59225func (c *RegionAutoscalersGetCall) Header() http.Header {
59226	if c.header_ == nil {
59227		c.header_ = make(http.Header)
59228	}
59229	return c.header_
59230}
59231
59232func (c *RegionAutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
59233	reqHeaders := make(http.Header)
59234	for k, v := range c.header_ {
59235		reqHeaders[k] = v
59236	}
59237	reqHeaders.Set("User-Agent", c.s.userAgent())
59238	if c.ifNoneMatch_ != "" {
59239		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59240	}
59241	var body io.Reader = nil
59242	c.urlParams_.Set("alt", alt)
59243	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{autoscaler}")
59244	urls += "?" + c.urlParams_.Encode()
59245	req, _ := http.NewRequest("GET", urls, body)
59246	req.Header = reqHeaders
59247	googleapi.Expand(req.URL, map[string]string{
59248		"project":    c.project,
59249		"region":     c.region,
59250		"autoscaler": c.autoscaler,
59251	})
59252	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59253}
59254
59255// Do executes the "compute.regionAutoscalers.get" call.
59256// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
59257// status code is an error. Response headers are in either
59258// *Autoscaler.ServerResponse.Header or (if a response was returned at
59259// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59260// to check whether the returned error was because
59261// http.StatusNotModified was returned.
59262func (c *RegionAutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
59263	gensupport.SetOptions(c.urlParams_, opts...)
59264	res, err := c.doRequest("json")
59265	if res != nil && res.StatusCode == http.StatusNotModified {
59266		if res.Body != nil {
59267			res.Body.Close()
59268		}
59269		return nil, &googleapi.Error{
59270			Code:   res.StatusCode,
59271			Header: res.Header,
59272		}
59273	}
59274	if err != nil {
59275		return nil, err
59276	}
59277	defer googleapi.CloseBody(res)
59278	if err := googleapi.CheckResponse(res); err != nil {
59279		return nil, err
59280	}
59281	ret := &Autoscaler{
59282		ServerResponse: googleapi.ServerResponse{
59283			Header:         res.Header,
59284			HTTPStatusCode: res.StatusCode,
59285		},
59286	}
59287	target := &ret
59288	if err := gensupport.DecodeResponse(target, res); err != nil {
59289		return nil, err
59290	}
59291	return ret, nil
59292	// {
59293	//   "description": "Returns the specified autoscaler.",
59294	//   "httpMethod": "GET",
59295	//   "id": "compute.regionAutoscalers.get",
59296	//   "parameterOrder": [
59297	//     "project",
59298	//     "region",
59299	//     "autoscaler"
59300	//   ],
59301	//   "parameters": {
59302	//     "autoscaler": {
59303	//       "description": "Name of the autoscaler to return.",
59304	//       "location": "path",
59305	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59306	//       "required": true,
59307	//       "type": "string"
59308	//     },
59309	//     "project": {
59310	//       "description": "Project ID for this request.",
59311	//       "location": "path",
59312	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59313	//       "required": true,
59314	//       "type": "string"
59315	//     },
59316	//     "region": {
59317	//       "description": "Name of the region scoping this request.",
59318	//       "location": "path",
59319	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59320	//       "required": true,
59321	//       "type": "string"
59322	//     }
59323	//   },
59324	//   "path": "{project}/regions/{region}/autoscalers/{autoscaler}",
59325	//   "response": {
59326	//     "$ref": "Autoscaler"
59327	//   },
59328	//   "scopes": [
59329	//     "https://www.googleapis.com/auth/cloud-platform",
59330	//     "https://www.googleapis.com/auth/compute",
59331	//     "https://www.googleapis.com/auth/compute.readonly"
59332	//   ]
59333	// }
59334
59335}
59336
59337// method id "compute.regionAutoscalers.insert":
59338
59339type RegionAutoscalersInsertCall struct {
59340	s          *Service
59341	project    string
59342	region     string
59343	autoscaler *Autoscaler
59344	urlParams_ gensupport.URLParams
59345	ctx_       context.Context
59346	header_    http.Header
59347}
59348
59349// Insert: Creates an autoscaler in the specified project using the data
59350// included in the request.
59351func (r *RegionAutoscalersService) Insert(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersInsertCall {
59352	c := &RegionAutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59353	c.project = project
59354	c.region = region
59355	c.autoscaler = autoscaler
59356	return c
59357}
59358
59359// RequestId sets the optional parameter "requestId": An optional
59360// request ID to identify requests. Specify a unique request ID so that
59361// if you must retry your request, the server will know to ignore the
59362// request if it has already been completed.
59363//
59364// For example, consider a situation where you make an initial request
59365// and the request times out. If you make the request again with the
59366// same request ID, the server can check if original operation with the
59367// same request ID was received, and if so, will ignore the second
59368// request. This prevents clients from accidentally creating duplicate
59369// commitments.
59370//
59371// The request ID must be a valid UUID with the exception that zero UUID
59372// is not supported (00000000-0000-0000-0000-000000000000).
59373func (c *RegionAutoscalersInsertCall) RequestId(requestId string) *RegionAutoscalersInsertCall {
59374	c.urlParams_.Set("requestId", requestId)
59375	return c
59376}
59377
59378// Fields allows partial responses to be retrieved. See
59379// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59380// for more information.
59381func (c *RegionAutoscalersInsertCall) Fields(s ...googleapi.Field) *RegionAutoscalersInsertCall {
59382	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59383	return c
59384}
59385
59386// Context sets the context to be used in this call's Do method. Any
59387// pending HTTP request will be aborted if the provided context is
59388// canceled.
59389func (c *RegionAutoscalersInsertCall) Context(ctx context.Context) *RegionAutoscalersInsertCall {
59390	c.ctx_ = ctx
59391	return c
59392}
59393
59394// Header returns an http.Header that can be modified by the caller to
59395// add HTTP headers to the request.
59396func (c *RegionAutoscalersInsertCall) Header() http.Header {
59397	if c.header_ == nil {
59398		c.header_ = make(http.Header)
59399	}
59400	return c.header_
59401}
59402
59403func (c *RegionAutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
59404	reqHeaders := make(http.Header)
59405	for k, v := range c.header_ {
59406		reqHeaders[k] = v
59407	}
59408	reqHeaders.Set("User-Agent", c.s.userAgent())
59409	var body io.Reader = nil
59410	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
59411	if err != nil {
59412		return nil, err
59413	}
59414	reqHeaders.Set("Content-Type", "application/json")
59415	c.urlParams_.Set("alt", alt)
59416	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
59417	urls += "?" + c.urlParams_.Encode()
59418	req, _ := http.NewRequest("POST", urls, body)
59419	req.Header = reqHeaders
59420	googleapi.Expand(req.URL, map[string]string{
59421		"project": c.project,
59422		"region":  c.region,
59423	})
59424	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59425}
59426
59427// Do executes the "compute.regionAutoscalers.insert" call.
59428// Exactly one of *Operation or error will be non-nil. Any non-2xx
59429// status code is an error. Response headers are in either
59430// *Operation.ServerResponse.Header or (if a response was returned at
59431// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59432// to check whether the returned error was because
59433// http.StatusNotModified was returned.
59434func (c *RegionAutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59435	gensupport.SetOptions(c.urlParams_, opts...)
59436	res, err := c.doRequest("json")
59437	if res != nil && res.StatusCode == http.StatusNotModified {
59438		if res.Body != nil {
59439			res.Body.Close()
59440		}
59441		return nil, &googleapi.Error{
59442			Code:   res.StatusCode,
59443			Header: res.Header,
59444		}
59445	}
59446	if err != nil {
59447		return nil, err
59448	}
59449	defer googleapi.CloseBody(res)
59450	if err := googleapi.CheckResponse(res); err != nil {
59451		return nil, err
59452	}
59453	ret := &Operation{
59454		ServerResponse: googleapi.ServerResponse{
59455			Header:         res.Header,
59456			HTTPStatusCode: res.StatusCode,
59457		},
59458	}
59459	target := &ret
59460	if err := gensupport.DecodeResponse(target, res); err != nil {
59461		return nil, err
59462	}
59463	return ret, nil
59464	// {
59465	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
59466	//   "httpMethod": "POST",
59467	//   "id": "compute.regionAutoscalers.insert",
59468	//   "parameterOrder": [
59469	//     "project",
59470	//     "region"
59471	//   ],
59472	//   "parameters": {
59473	//     "project": {
59474	//       "description": "Project ID for this request.",
59475	//       "location": "path",
59476	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59477	//       "required": true,
59478	//       "type": "string"
59479	//     },
59480	//     "region": {
59481	//       "description": "Name of the region scoping this request.",
59482	//       "location": "path",
59483	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59484	//       "required": true,
59485	//       "type": "string"
59486	//     },
59487	//     "requestId": {
59488	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59489	//       "location": "query",
59490	//       "type": "string"
59491	//     }
59492	//   },
59493	//   "path": "{project}/regions/{region}/autoscalers",
59494	//   "request": {
59495	//     "$ref": "Autoscaler"
59496	//   },
59497	//   "response": {
59498	//     "$ref": "Operation"
59499	//   },
59500	//   "scopes": [
59501	//     "https://www.googleapis.com/auth/cloud-platform",
59502	//     "https://www.googleapis.com/auth/compute"
59503	//   ]
59504	// }
59505
59506}
59507
59508// method id "compute.regionAutoscalers.list":
59509
59510type RegionAutoscalersListCall struct {
59511	s            *Service
59512	project      string
59513	region       string
59514	urlParams_   gensupport.URLParams
59515	ifNoneMatch_ string
59516	ctx_         context.Context
59517	header_      http.Header
59518}
59519
59520// List: Retrieves a list of autoscalers contained within the specified
59521// region.
59522func (r *RegionAutoscalersService) List(project string, region string) *RegionAutoscalersListCall {
59523	c := &RegionAutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59524	c.project = project
59525	c.region = region
59526	return c
59527}
59528
59529// Filter sets the optional parameter "filter": A filter expression that
59530// filters resources listed in the response. The expression must specify
59531// the field name, a comparison operator, and the value that you want to
59532// use for filtering. The value must be a string, a number, or a
59533// boolean. The comparison operator must be either =, !=, >, or <.
59534//
59535// For example, if you are filtering Compute Engine instances, you can
59536// exclude instances named example-instance by specifying name !=
59537// example-instance.
59538//
59539// You can also filter nested fields. For example, you could specify
59540// scheduling.automaticRestart = false to include instances only if they
59541// are not scheduled for automatic restarts. You can use filtering on
59542// nested fields to filter based on resource labels.
59543//
59544// To filter on multiple expressions, provide each separate expression
59545// within parentheses. For example, (scheduling.automaticRestart = true)
59546// (cpuPlatform = "Intel Skylake"). By default, each expression is an
59547// AND expression. However, you can include AND and OR expressions
59548// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
59549// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
59550// true).
59551func (c *RegionAutoscalersListCall) Filter(filter string) *RegionAutoscalersListCall {
59552	c.urlParams_.Set("filter", filter)
59553	return c
59554}
59555
59556// MaxResults sets the optional parameter "maxResults": The maximum
59557// number of results per page that should be returned. If the number of
59558// available results is larger than maxResults, Compute Engine returns a
59559// nextPageToken that can be used to get the next page of results in
59560// subsequent list requests. Acceptable values are 0 to 500, inclusive.
59561// (Default: 500)
59562func (c *RegionAutoscalersListCall) MaxResults(maxResults int64) *RegionAutoscalersListCall {
59563	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
59564	return c
59565}
59566
59567// OrderBy sets the optional parameter "orderBy": Sorts list results by
59568// a certain order. By default, results are returned in alphanumerical
59569// order based on the resource name.
59570//
59571// You can also sort results in descending order based on the creation
59572// timestamp using orderBy="creationTimestamp desc". This sorts results
59573// based on the creationTimestamp field in reverse chronological order
59574// (newest result first). Use this to sort resources like operations so
59575// that the newest operation is returned first.
59576//
59577// Currently, only sorting by name or creationTimestamp desc is
59578// supported.
59579func (c *RegionAutoscalersListCall) OrderBy(orderBy string) *RegionAutoscalersListCall {
59580	c.urlParams_.Set("orderBy", orderBy)
59581	return c
59582}
59583
59584// PageToken sets the optional parameter "pageToken": Specifies a page
59585// token to use. Set pageToken to the nextPageToken returned by a
59586// previous list request to get the next page of results.
59587func (c *RegionAutoscalersListCall) PageToken(pageToken string) *RegionAutoscalersListCall {
59588	c.urlParams_.Set("pageToken", pageToken)
59589	return c
59590}
59591
59592// Fields allows partial responses to be retrieved. See
59593// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59594// for more information.
59595func (c *RegionAutoscalersListCall) Fields(s ...googleapi.Field) *RegionAutoscalersListCall {
59596	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59597	return c
59598}
59599
59600// IfNoneMatch sets the optional parameter which makes the operation
59601// fail if the object's ETag matches the given value. This is useful for
59602// getting updates only after the object has changed since the last
59603// request. Use googleapi.IsNotModified to check whether the response
59604// error from Do is the result of In-None-Match.
59605func (c *RegionAutoscalersListCall) IfNoneMatch(entityTag string) *RegionAutoscalersListCall {
59606	c.ifNoneMatch_ = entityTag
59607	return c
59608}
59609
59610// Context sets the context to be used in this call's Do method. Any
59611// pending HTTP request will be aborted if the provided context is
59612// canceled.
59613func (c *RegionAutoscalersListCall) Context(ctx context.Context) *RegionAutoscalersListCall {
59614	c.ctx_ = ctx
59615	return c
59616}
59617
59618// Header returns an http.Header that can be modified by the caller to
59619// add HTTP headers to the request.
59620func (c *RegionAutoscalersListCall) Header() http.Header {
59621	if c.header_ == nil {
59622		c.header_ = make(http.Header)
59623	}
59624	return c.header_
59625}
59626
59627func (c *RegionAutoscalersListCall) doRequest(alt string) (*http.Response, error) {
59628	reqHeaders := make(http.Header)
59629	for k, v := range c.header_ {
59630		reqHeaders[k] = v
59631	}
59632	reqHeaders.Set("User-Agent", c.s.userAgent())
59633	if c.ifNoneMatch_ != "" {
59634		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59635	}
59636	var body io.Reader = nil
59637	c.urlParams_.Set("alt", alt)
59638	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
59639	urls += "?" + c.urlParams_.Encode()
59640	req, _ := http.NewRequest("GET", urls, body)
59641	req.Header = reqHeaders
59642	googleapi.Expand(req.URL, map[string]string{
59643		"project": c.project,
59644		"region":  c.region,
59645	})
59646	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59647}
59648
59649// Do executes the "compute.regionAutoscalers.list" call.
59650// Exactly one of *RegionAutoscalerList or error will be non-nil. Any
59651// non-2xx status code is an error. Response headers are in either
59652// *RegionAutoscalerList.ServerResponse.Header or (if a response was
59653// returned at all) in error.(*googleapi.Error).Header. Use
59654// googleapi.IsNotModified to check whether the returned error was
59655// because http.StatusNotModified was returned.
59656func (c *RegionAutoscalersListCall) Do(opts ...googleapi.CallOption) (*RegionAutoscalerList, error) {
59657	gensupport.SetOptions(c.urlParams_, opts...)
59658	res, err := c.doRequest("json")
59659	if res != nil && res.StatusCode == http.StatusNotModified {
59660		if res.Body != nil {
59661			res.Body.Close()
59662		}
59663		return nil, &googleapi.Error{
59664			Code:   res.StatusCode,
59665			Header: res.Header,
59666		}
59667	}
59668	if err != nil {
59669		return nil, err
59670	}
59671	defer googleapi.CloseBody(res)
59672	if err := googleapi.CheckResponse(res); err != nil {
59673		return nil, err
59674	}
59675	ret := &RegionAutoscalerList{
59676		ServerResponse: googleapi.ServerResponse{
59677			Header:         res.Header,
59678			HTTPStatusCode: res.StatusCode,
59679		},
59680	}
59681	target := &ret
59682	if err := gensupport.DecodeResponse(target, res); err != nil {
59683		return nil, err
59684	}
59685	return ret, nil
59686	// {
59687	//   "description": "Retrieves a list of autoscalers contained within the specified region.",
59688	//   "httpMethod": "GET",
59689	//   "id": "compute.regionAutoscalers.list",
59690	//   "parameterOrder": [
59691	//     "project",
59692	//     "region"
59693	//   ],
59694	//   "parameters": {
59695	//     "filter": {
59696	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
59697	//       "location": "query",
59698	//       "type": "string"
59699	//     },
59700	//     "maxResults": {
59701	//       "default": "500",
59702	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
59703	//       "format": "uint32",
59704	//       "location": "query",
59705	//       "minimum": "0",
59706	//       "type": "integer"
59707	//     },
59708	//     "orderBy": {
59709	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
59710	//       "location": "query",
59711	//       "type": "string"
59712	//     },
59713	//     "pageToken": {
59714	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
59715	//       "location": "query",
59716	//       "type": "string"
59717	//     },
59718	//     "project": {
59719	//       "description": "Project ID for this request.",
59720	//       "location": "path",
59721	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59722	//       "required": true,
59723	//       "type": "string"
59724	//     },
59725	//     "region": {
59726	//       "description": "Name of the region scoping this request.",
59727	//       "location": "path",
59728	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59729	//       "required": true,
59730	//       "type": "string"
59731	//     }
59732	//   },
59733	//   "path": "{project}/regions/{region}/autoscalers",
59734	//   "response": {
59735	//     "$ref": "RegionAutoscalerList"
59736	//   },
59737	//   "scopes": [
59738	//     "https://www.googleapis.com/auth/cloud-platform",
59739	//     "https://www.googleapis.com/auth/compute",
59740	//     "https://www.googleapis.com/auth/compute.readonly"
59741	//   ]
59742	// }
59743
59744}
59745
59746// Pages invokes f for each page of results.
59747// A non-nil error returned from f will halt the iteration.
59748// The provided context supersedes any context provided to the Context method.
59749func (c *RegionAutoscalersListCall) Pages(ctx context.Context, f func(*RegionAutoscalerList) error) error {
59750	c.ctx_ = ctx
59751	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
59752	for {
59753		x, err := c.Do()
59754		if err != nil {
59755			return err
59756		}
59757		if err := f(x); err != nil {
59758			return err
59759		}
59760		if x.NextPageToken == "" {
59761			return nil
59762		}
59763		c.PageToken(x.NextPageToken)
59764	}
59765}
59766
59767// method id "compute.regionAutoscalers.patch":
59768
59769type RegionAutoscalersPatchCall struct {
59770	s          *Service
59771	project    string
59772	region     string
59773	autoscaler *Autoscaler
59774	urlParams_ gensupport.URLParams
59775	ctx_       context.Context
59776	header_    http.Header
59777}
59778
59779// Patch: Updates an autoscaler in the specified project using the data
59780// included in the request. This method supports PATCH semantics and
59781// uses the JSON merge patch format and processing rules.
59782func (r *RegionAutoscalersService) Patch(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersPatchCall {
59783	c := &RegionAutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59784	c.project = project
59785	c.region = region
59786	c.autoscaler = autoscaler
59787	return c
59788}
59789
59790// Autoscaler sets the optional parameter "autoscaler": Name of the
59791// autoscaler to patch.
59792func (c *RegionAutoscalersPatchCall) Autoscaler(autoscaler string) *RegionAutoscalersPatchCall {
59793	c.urlParams_.Set("autoscaler", autoscaler)
59794	return c
59795}
59796
59797// RequestId sets the optional parameter "requestId": An optional
59798// request ID to identify requests. Specify a unique request ID so that
59799// if you must retry your request, the server will know to ignore the
59800// request if it has already been completed.
59801//
59802// For example, consider a situation where you make an initial request
59803// and the request times out. If you make the request again with the
59804// same request ID, the server can check if original operation with the
59805// same request ID was received, and if so, will ignore the second
59806// request. This prevents clients from accidentally creating duplicate
59807// commitments.
59808//
59809// The request ID must be a valid UUID with the exception that zero UUID
59810// is not supported (00000000-0000-0000-0000-000000000000).
59811func (c *RegionAutoscalersPatchCall) RequestId(requestId string) *RegionAutoscalersPatchCall {
59812	c.urlParams_.Set("requestId", requestId)
59813	return c
59814}
59815
59816// Fields allows partial responses to be retrieved. See
59817// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59818// for more information.
59819func (c *RegionAutoscalersPatchCall) Fields(s ...googleapi.Field) *RegionAutoscalersPatchCall {
59820	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59821	return c
59822}
59823
59824// Context sets the context to be used in this call's Do method. Any
59825// pending HTTP request will be aborted if the provided context is
59826// canceled.
59827func (c *RegionAutoscalersPatchCall) Context(ctx context.Context) *RegionAutoscalersPatchCall {
59828	c.ctx_ = ctx
59829	return c
59830}
59831
59832// Header returns an http.Header that can be modified by the caller to
59833// add HTTP headers to the request.
59834func (c *RegionAutoscalersPatchCall) Header() http.Header {
59835	if c.header_ == nil {
59836		c.header_ = make(http.Header)
59837	}
59838	return c.header_
59839}
59840
59841func (c *RegionAutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
59842	reqHeaders := make(http.Header)
59843	for k, v := range c.header_ {
59844		reqHeaders[k] = v
59845	}
59846	reqHeaders.Set("User-Agent", c.s.userAgent())
59847	var body io.Reader = nil
59848	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
59849	if err != nil {
59850		return nil, err
59851	}
59852	reqHeaders.Set("Content-Type", "application/json")
59853	c.urlParams_.Set("alt", alt)
59854	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
59855	urls += "?" + c.urlParams_.Encode()
59856	req, _ := http.NewRequest("PATCH", urls, body)
59857	req.Header = reqHeaders
59858	googleapi.Expand(req.URL, map[string]string{
59859		"project": c.project,
59860		"region":  c.region,
59861	})
59862	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59863}
59864
59865// Do executes the "compute.regionAutoscalers.patch" call.
59866// Exactly one of *Operation or error will be non-nil. Any non-2xx
59867// status code is an error. Response headers are in either
59868// *Operation.ServerResponse.Header or (if a response was returned at
59869// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59870// to check whether the returned error was because
59871// http.StatusNotModified was returned.
59872func (c *RegionAutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59873	gensupport.SetOptions(c.urlParams_, opts...)
59874	res, err := c.doRequest("json")
59875	if res != nil && res.StatusCode == http.StatusNotModified {
59876		if res.Body != nil {
59877			res.Body.Close()
59878		}
59879		return nil, &googleapi.Error{
59880			Code:   res.StatusCode,
59881			Header: res.Header,
59882		}
59883	}
59884	if err != nil {
59885		return nil, err
59886	}
59887	defer googleapi.CloseBody(res)
59888	if err := googleapi.CheckResponse(res); err != nil {
59889		return nil, err
59890	}
59891	ret := &Operation{
59892		ServerResponse: googleapi.ServerResponse{
59893			Header:         res.Header,
59894			HTTPStatusCode: res.StatusCode,
59895		},
59896	}
59897	target := &ret
59898	if err := gensupport.DecodeResponse(target, res); err != nil {
59899		return nil, err
59900	}
59901	return ret, nil
59902	// {
59903	//   "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.",
59904	//   "httpMethod": "PATCH",
59905	//   "id": "compute.regionAutoscalers.patch",
59906	//   "parameterOrder": [
59907	//     "project",
59908	//     "region"
59909	//   ],
59910	//   "parameters": {
59911	//     "autoscaler": {
59912	//       "description": "Name of the autoscaler to patch.",
59913	//       "location": "query",
59914	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59915	//       "type": "string"
59916	//     },
59917	//     "project": {
59918	//       "description": "Project ID for this request.",
59919	//       "location": "path",
59920	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59921	//       "required": true,
59922	//       "type": "string"
59923	//     },
59924	//     "region": {
59925	//       "description": "Name of the region scoping this request.",
59926	//       "location": "path",
59927	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59928	//       "required": true,
59929	//       "type": "string"
59930	//     },
59931	//     "requestId": {
59932	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59933	//       "location": "query",
59934	//       "type": "string"
59935	//     }
59936	//   },
59937	//   "path": "{project}/regions/{region}/autoscalers",
59938	//   "request": {
59939	//     "$ref": "Autoscaler"
59940	//   },
59941	//   "response": {
59942	//     "$ref": "Operation"
59943	//   },
59944	//   "scopes": [
59945	//     "https://www.googleapis.com/auth/cloud-platform",
59946	//     "https://www.googleapis.com/auth/compute"
59947	//   ]
59948	// }
59949
59950}
59951
59952// method id "compute.regionAutoscalers.update":
59953
59954type RegionAutoscalersUpdateCall struct {
59955	s          *Service
59956	project    string
59957	region     string
59958	autoscaler *Autoscaler
59959	urlParams_ gensupport.URLParams
59960	ctx_       context.Context
59961	header_    http.Header
59962}
59963
59964// Update: Updates an autoscaler in the specified project using the data
59965// included in the request.
59966func (r *RegionAutoscalersService) Update(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersUpdateCall {
59967	c := &RegionAutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59968	c.project = project
59969	c.region = region
59970	c.autoscaler = autoscaler
59971	return c
59972}
59973
59974// Autoscaler sets the optional parameter "autoscaler": Name of the
59975// autoscaler to update.
59976func (c *RegionAutoscalersUpdateCall) Autoscaler(autoscaler string) *RegionAutoscalersUpdateCall {
59977	c.urlParams_.Set("autoscaler", autoscaler)
59978	return c
59979}
59980
59981// RequestId sets the optional parameter "requestId": An optional
59982// request ID to identify requests. Specify a unique request ID so that
59983// if you must retry your request, the server will know to ignore the
59984// request if it has already been completed.
59985//
59986// For example, consider a situation where you make an initial request
59987// and the request times out. If you make the request again with the
59988// same request ID, the server can check if original operation with the
59989// same request ID was received, and if so, will ignore the second
59990// request. This prevents clients from accidentally creating duplicate
59991// commitments.
59992//
59993// The request ID must be a valid UUID with the exception that zero UUID
59994// is not supported (00000000-0000-0000-0000-000000000000).
59995func (c *RegionAutoscalersUpdateCall) RequestId(requestId string) *RegionAutoscalersUpdateCall {
59996	c.urlParams_.Set("requestId", requestId)
59997	return c
59998}
59999
60000// Fields allows partial responses to be retrieved. See
60001// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60002// for more information.
60003func (c *RegionAutoscalersUpdateCall) Fields(s ...googleapi.Field) *RegionAutoscalersUpdateCall {
60004	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60005	return c
60006}
60007
60008// Context sets the context to be used in this call's Do method. Any
60009// pending HTTP request will be aborted if the provided context is
60010// canceled.
60011func (c *RegionAutoscalersUpdateCall) Context(ctx context.Context) *RegionAutoscalersUpdateCall {
60012	c.ctx_ = ctx
60013	return c
60014}
60015
60016// Header returns an http.Header that can be modified by the caller to
60017// add HTTP headers to the request.
60018func (c *RegionAutoscalersUpdateCall) Header() http.Header {
60019	if c.header_ == nil {
60020		c.header_ = make(http.Header)
60021	}
60022	return c.header_
60023}
60024
60025func (c *RegionAutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
60026	reqHeaders := make(http.Header)
60027	for k, v := range c.header_ {
60028		reqHeaders[k] = v
60029	}
60030	reqHeaders.Set("User-Agent", c.s.userAgent())
60031	var body io.Reader = nil
60032	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
60033	if err != nil {
60034		return nil, err
60035	}
60036	reqHeaders.Set("Content-Type", "application/json")
60037	c.urlParams_.Set("alt", alt)
60038	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
60039	urls += "?" + c.urlParams_.Encode()
60040	req, _ := http.NewRequest("PUT", urls, body)
60041	req.Header = reqHeaders
60042	googleapi.Expand(req.URL, map[string]string{
60043		"project": c.project,
60044		"region":  c.region,
60045	})
60046	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60047}
60048
60049// Do executes the "compute.regionAutoscalers.update" call.
60050// Exactly one of *Operation or error will be non-nil. Any non-2xx
60051// status code is an error. Response headers are in either
60052// *Operation.ServerResponse.Header or (if a response was returned at
60053// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60054// to check whether the returned error was because
60055// http.StatusNotModified was returned.
60056func (c *RegionAutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60057	gensupport.SetOptions(c.urlParams_, opts...)
60058	res, err := c.doRequest("json")
60059	if res != nil && res.StatusCode == http.StatusNotModified {
60060		if res.Body != nil {
60061			res.Body.Close()
60062		}
60063		return nil, &googleapi.Error{
60064			Code:   res.StatusCode,
60065			Header: res.Header,
60066		}
60067	}
60068	if err != nil {
60069		return nil, err
60070	}
60071	defer googleapi.CloseBody(res)
60072	if err := googleapi.CheckResponse(res); err != nil {
60073		return nil, err
60074	}
60075	ret := &Operation{
60076		ServerResponse: googleapi.ServerResponse{
60077			Header:         res.Header,
60078			HTTPStatusCode: res.StatusCode,
60079		},
60080	}
60081	target := &ret
60082	if err := gensupport.DecodeResponse(target, res); err != nil {
60083		return nil, err
60084	}
60085	return ret, nil
60086	// {
60087	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
60088	//   "httpMethod": "PUT",
60089	//   "id": "compute.regionAutoscalers.update",
60090	//   "parameterOrder": [
60091	//     "project",
60092	//     "region"
60093	//   ],
60094	//   "parameters": {
60095	//     "autoscaler": {
60096	//       "description": "Name of the autoscaler to update.",
60097	//       "location": "query",
60098	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60099	//       "type": "string"
60100	//     },
60101	//     "project": {
60102	//       "description": "Project ID for this request.",
60103	//       "location": "path",
60104	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60105	//       "required": true,
60106	//       "type": "string"
60107	//     },
60108	//     "region": {
60109	//       "description": "Name of the region scoping this request.",
60110	//       "location": "path",
60111	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60112	//       "required": true,
60113	//       "type": "string"
60114	//     },
60115	//     "requestId": {
60116	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60117	//       "location": "query",
60118	//       "type": "string"
60119	//     }
60120	//   },
60121	//   "path": "{project}/regions/{region}/autoscalers",
60122	//   "request": {
60123	//     "$ref": "Autoscaler"
60124	//   },
60125	//   "response": {
60126	//     "$ref": "Operation"
60127	//   },
60128	//   "scopes": [
60129	//     "https://www.googleapis.com/auth/cloud-platform",
60130	//     "https://www.googleapis.com/auth/compute"
60131	//   ]
60132	// }
60133
60134}
60135
60136// method id "compute.regionBackendServices.delete":
60137
60138type RegionBackendServicesDeleteCall struct {
60139	s              *Service
60140	project        string
60141	region         string
60142	backendService string
60143	urlParams_     gensupport.URLParams
60144	ctx_           context.Context
60145	header_        http.Header
60146}
60147
60148// Delete: Deletes the specified regional BackendService resource.
60149func (r *RegionBackendServicesService) Delete(project string, region string, backendService string) *RegionBackendServicesDeleteCall {
60150	c := &RegionBackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60151	c.project = project
60152	c.region = region
60153	c.backendService = backendService
60154	return c
60155}
60156
60157// RequestId sets the optional parameter "requestId": An optional
60158// request ID to identify requests. Specify a unique request ID so that
60159// if you must retry your request, the server will know to ignore the
60160// request if it has already been completed.
60161//
60162// For example, consider a situation where you make an initial request
60163// and the request times out. If you make the request again with the
60164// same request ID, the server can check if original operation with the
60165// same request ID was received, and if so, will ignore the second
60166// request. This prevents clients from accidentally creating duplicate
60167// commitments.
60168//
60169// The request ID must be a valid UUID with the exception that zero UUID
60170// is not supported (00000000-0000-0000-0000-000000000000).
60171func (c *RegionBackendServicesDeleteCall) RequestId(requestId string) *RegionBackendServicesDeleteCall {
60172	c.urlParams_.Set("requestId", requestId)
60173	return c
60174}
60175
60176// Fields allows partial responses to be retrieved. See
60177// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60178// for more information.
60179func (c *RegionBackendServicesDeleteCall) Fields(s ...googleapi.Field) *RegionBackendServicesDeleteCall {
60180	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60181	return c
60182}
60183
60184// Context sets the context to be used in this call's Do method. Any
60185// pending HTTP request will be aborted if the provided context is
60186// canceled.
60187func (c *RegionBackendServicesDeleteCall) Context(ctx context.Context) *RegionBackendServicesDeleteCall {
60188	c.ctx_ = ctx
60189	return c
60190}
60191
60192// Header returns an http.Header that can be modified by the caller to
60193// add HTTP headers to the request.
60194func (c *RegionBackendServicesDeleteCall) Header() http.Header {
60195	if c.header_ == nil {
60196		c.header_ = make(http.Header)
60197	}
60198	return c.header_
60199}
60200
60201func (c *RegionBackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
60202	reqHeaders := make(http.Header)
60203	for k, v := range c.header_ {
60204		reqHeaders[k] = v
60205	}
60206	reqHeaders.Set("User-Agent", c.s.userAgent())
60207	var body io.Reader = nil
60208	c.urlParams_.Set("alt", alt)
60209	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
60210	urls += "?" + c.urlParams_.Encode()
60211	req, _ := http.NewRequest("DELETE", urls, body)
60212	req.Header = reqHeaders
60213	googleapi.Expand(req.URL, map[string]string{
60214		"project":        c.project,
60215		"region":         c.region,
60216		"backendService": c.backendService,
60217	})
60218	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60219}
60220
60221// Do executes the "compute.regionBackendServices.delete" call.
60222// Exactly one of *Operation or error will be non-nil. Any non-2xx
60223// status code is an error. Response headers are in either
60224// *Operation.ServerResponse.Header or (if a response was returned at
60225// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60226// to check whether the returned error was because
60227// http.StatusNotModified was returned.
60228func (c *RegionBackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60229	gensupport.SetOptions(c.urlParams_, opts...)
60230	res, err := c.doRequest("json")
60231	if res != nil && res.StatusCode == http.StatusNotModified {
60232		if res.Body != nil {
60233			res.Body.Close()
60234		}
60235		return nil, &googleapi.Error{
60236			Code:   res.StatusCode,
60237			Header: res.Header,
60238		}
60239	}
60240	if err != nil {
60241		return nil, err
60242	}
60243	defer googleapi.CloseBody(res)
60244	if err := googleapi.CheckResponse(res); err != nil {
60245		return nil, err
60246	}
60247	ret := &Operation{
60248		ServerResponse: googleapi.ServerResponse{
60249			Header:         res.Header,
60250			HTTPStatusCode: res.StatusCode,
60251		},
60252	}
60253	target := &ret
60254	if err := gensupport.DecodeResponse(target, res); err != nil {
60255		return nil, err
60256	}
60257	return ret, nil
60258	// {
60259	//   "description": "Deletes the specified regional BackendService resource.",
60260	//   "httpMethod": "DELETE",
60261	//   "id": "compute.regionBackendServices.delete",
60262	//   "parameterOrder": [
60263	//     "project",
60264	//     "region",
60265	//     "backendService"
60266	//   ],
60267	//   "parameters": {
60268	//     "backendService": {
60269	//       "description": "Name of the BackendService resource to delete.",
60270	//       "location": "path",
60271	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60272	//       "required": true,
60273	//       "type": "string"
60274	//     },
60275	//     "project": {
60276	//       "description": "Project ID for this request.",
60277	//       "location": "path",
60278	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60279	//       "required": true,
60280	//       "type": "string"
60281	//     },
60282	//     "region": {
60283	//       "description": "Name of the region scoping this request.",
60284	//       "location": "path",
60285	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60286	//       "required": true,
60287	//       "type": "string"
60288	//     },
60289	//     "requestId": {
60290	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60291	//       "location": "query",
60292	//       "type": "string"
60293	//     }
60294	//   },
60295	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
60296	//   "response": {
60297	//     "$ref": "Operation"
60298	//   },
60299	//   "scopes": [
60300	//     "https://www.googleapis.com/auth/cloud-platform",
60301	//     "https://www.googleapis.com/auth/compute"
60302	//   ]
60303	// }
60304
60305}
60306
60307// method id "compute.regionBackendServices.get":
60308
60309type RegionBackendServicesGetCall struct {
60310	s              *Service
60311	project        string
60312	region         string
60313	backendService string
60314	urlParams_     gensupport.URLParams
60315	ifNoneMatch_   string
60316	ctx_           context.Context
60317	header_        http.Header
60318}
60319
60320// Get: Returns the specified regional BackendService resource.
60321func (r *RegionBackendServicesService) Get(project string, region string, backendService string) *RegionBackendServicesGetCall {
60322	c := &RegionBackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60323	c.project = project
60324	c.region = region
60325	c.backendService = backendService
60326	return c
60327}
60328
60329// Fields allows partial responses to be retrieved. See
60330// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60331// for more information.
60332func (c *RegionBackendServicesGetCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetCall {
60333	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60334	return c
60335}
60336
60337// IfNoneMatch sets the optional parameter which makes the operation
60338// fail if the object's ETag matches the given value. This is useful for
60339// getting updates only after the object has changed since the last
60340// request. Use googleapi.IsNotModified to check whether the response
60341// error from Do is the result of In-None-Match.
60342func (c *RegionBackendServicesGetCall) IfNoneMatch(entityTag string) *RegionBackendServicesGetCall {
60343	c.ifNoneMatch_ = entityTag
60344	return c
60345}
60346
60347// Context sets the context to be used in this call's Do method. Any
60348// pending HTTP request will be aborted if the provided context is
60349// canceled.
60350func (c *RegionBackendServicesGetCall) Context(ctx context.Context) *RegionBackendServicesGetCall {
60351	c.ctx_ = ctx
60352	return c
60353}
60354
60355// Header returns an http.Header that can be modified by the caller to
60356// add HTTP headers to the request.
60357func (c *RegionBackendServicesGetCall) Header() http.Header {
60358	if c.header_ == nil {
60359		c.header_ = make(http.Header)
60360	}
60361	return c.header_
60362}
60363
60364func (c *RegionBackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
60365	reqHeaders := make(http.Header)
60366	for k, v := range c.header_ {
60367		reqHeaders[k] = v
60368	}
60369	reqHeaders.Set("User-Agent", c.s.userAgent())
60370	if c.ifNoneMatch_ != "" {
60371		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60372	}
60373	var body io.Reader = nil
60374	c.urlParams_.Set("alt", alt)
60375	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
60376	urls += "?" + c.urlParams_.Encode()
60377	req, _ := http.NewRequest("GET", urls, body)
60378	req.Header = reqHeaders
60379	googleapi.Expand(req.URL, map[string]string{
60380		"project":        c.project,
60381		"region":         c.region,
60382		"backendService": c.backendService,
60383	})
60384	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60385}
60386
60387// Do executes the "compute.regionBackendServices.get" call.
60388// Exactly one of *BackendService or error will be non-nil. Any non-2xx
60389// status code is an error. Response headers are in either
60390// *BackendService.ServerResponse.Header or (if a response was returned
60391// at all) in error.(*googleapi.Error).Header. Use
60392// googleapi.IsNotModified to check whether the returned error was
60393// because http.StatusNotModified was returned.
60394func (c *RegionBackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
60395	gensupport.SetOptions(c.urlParams_, opts...)
60396	res, err := c.doRequest("json")
60397	if res != nil && res.StatusCode == http.StatusNotModified {
60398		if res.Body != nil {
60399			res.Body.Close()
60400		}
60401		return nil, &googleapi.Error{
60402			Code:   res.StatusCode,
60403			Header: res.Header,
60404		}
60405	}
60406	if err != nil {
60407		return nil, err
60408	}
60409	defer googleapi.CloseBody(res)
60410	if err := googleapi.CheckResponse(res); err != nil {
60411		return nil, err
60412	}
60413	ret := &BackendService{
60414		ServerResponse: googleapi.ServerResponse{
60415			Header:         res.Header,
60416			HTTPStatusCode: res.StatusCode,
60417		},
60418	}
60419	target := &ret
60420	if err := gensupport.DecodeResponse(target, res); err != nil {
60421		return nil, err
60422	}
60423	return ret, nil
60424	// {
60425	//   "description": "Returns the specified regional BackendService resource.",
60426	//   "httpMethod": "GET",
60427	//   "id": "compute.regionBackendServices.get",
60428	//   "parameterOrder": [
60429	//     "project",
60430	//     "region",
60431	//     "backendService"
60432	//   ],
60433	//   "parameters": {
60434	//     "backendService": {
60435	//       "description": "Name of the BackendService resource to return.",
60436	//       "location": "path",
60437	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60438	//       "required": true,
60439	//       "type": "string"
60440	//     },
60441	//     "project": {
60442	//       "description": "Project ID for this request.",
60443	//       "location": "path",
60444	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60445	//       "required": true,
60446	//       "type": "string"
60447	//     },
60448	//     "region": {
60449	//       "description": "Name of the region scoping this request.",
60450	//       "location": "path",
60451	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60452	//       "required": true,
60453	//       "type": "string"
60454	//     }
60455	//   },
60456	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
60457	//   "response": {
60458	//     "$ref": "BackendService"
60459	//   },
60460	//   "scopes": [
60461	//     "https://www.googleapis.com/auth/cloud-platform",
60462	//     "https://www.googleapis.com/auth/compute",
60463	//     "https://www.googleapis.com/auth/compute.readonly"
60464	//   ]
60465	// }
60466
60467}
60468
60469// method id "compute.regionBackendServices.getHealth":
60470
60471type RegionBackendServicesGetHealthCall struct {
60472	s                      *Service
60473	project                string
60474	region                 string
60475	backendService         string
60476	resourcegroupreference *ResourceGroupReference
60477	urlParams_             gensupport.URLParams
60478	ctx_                   context.Context
60479	header_                http.Header
60480}
60481
60482// GetHealth: Gets the most recent health check results for this
60483// regional BackendService.
60484func (r *RegionBackendServicesService) GetHealth(project string, region string, backendService string, resourcegroupreference *ResourceGroupReference) *RegionBackendServicesGetHealthCall {
60485	c := &RegionBackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60486	c.project = project
60487	c.region = region
60488	c.backendService = backendService
60489	c.resourcegroupreference = resourcegroupreference
60490	return c
60491}
60492
60493// Fields allows partial responses to be retrieved. See
60494// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60495// for more information.
60496func (c *RegionBackendServicesGetHealthCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetHealthCall {
60497	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60498	return c
60499}
60500
60501// Context sets the context to be used in this call's Do method. Any
60502// pending HTTP request will be aborted if the provided context is
60503// canceled.
60504func (c *RegionBackendServicesGetHealthCall) Context(ctx context.Context) *RegionBackendServicesGetHealthCall {
60505	c.ctx_ = ctx
60506	return c
60507}
60508
60509// Header returns an http.Header that can be modified by the caller to
60510// add HTTP headers to the request.
60511func (c *RegionBackendServicesGetHealthCall) Header() http.Header {
60512	if c.header_ == nil {
60513		c.header_ = make(http.Header)
60514	}
60515	return c.header_
60516}
60517
60518func (c *RegionBackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
60519	reqHeaders := make(http.Header)
60520	for k, v := range c.header_ {
60521		reqHeaders[k] = v
60522	}
60523	reqHeaders.Set("User-Agent", c.s.userAgent())
60524	var body io.Reader = nil
60525	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
60526	if err != nil {
60527		return nil, err
60528	}
60529	reqHeaders.Set("Content-Type", "application/json")
60530	c.urlParams_.Set("alt", alt)
60531	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}/getHealth")
60532	urls += "?" + c.urlParams_.Encode()
60533	req, _ := http.NewRequest("POST", urls, body)
60534	req.Header = reqHeaders
60535	googleapi.Expand(req.URL, map[string]string{
60536		"project":        c.project,
60537		"region":         c.region,
60538		"backendService": c.backendService,
60539	})
60540	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60541}
60542
60543// Do executes the "compute.regionBackendServices.getHealth" call.
60544// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
60545// Any non-2xx status code is an error. Response headers are in either
60546// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
60547// was returned at all) in error.(*googleapi.Error).Header. Use
60548// googleapi.IsNotModified to check whether the returned error was
60549// because http.StatusNotModified was returned.
60550func (c *RegionBackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
60551	gensupport.SetOptions(c.urlParams_, opts...)
60552	res, err := c.doRequest("json")
60553	if res != nil && res.StatusCode == http.StatusNotModified {
60554		if res.Body != nil {
60555			res.Body.Close()
60556		}
60557		return nil, &googleapi.Error{
60558			Code:   res.StatusCode,
60559			Header: res.Header,
60560		}
60561	}
60562	if err != nil {
60563		return nil, err
60564	}
60565	defer googleapi.CloseBody(res)
60566	if err := googleapi.CheckResponse(res); err != nil {
60567		return nil, err
60568	}
60569	ret := &BackendServiceGroupHealth{
60570		ServerResponse: googleapi.ServerResponse{
60571			Header:         res.Header,
60572			HTTPStatusCode: res.StatusCode,
60573		},
60574	}
60575	target := &ret
60576	if err := gensupport.DecodeResponse(target, res); err != nil {
60577		return nil, err
60578	}
60579	return ret, nil
60580	// {
60581	//   "description": "Gets the most recent health check results for this regional BackendService.",
60582	//   "httpMethod": "POST",
60583	//   "id": "compute.regionBackendServices.getHealth",
60584	//   "parameterOrder": [
60585	//     "project",
60586	//     "region",
60587	//     "backendService"
60588	//   ],
60589	//   "parameters": {
60590	//     "backendService": {
60591	//       "description": "Name of the BackendService resource for which to get health.",
60592	//       "location": "path",
60593	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60594	//       "required": true,
60595	//       "type": "string"
60596	//     },
60597	//     "project": {
60598	//       "location": "path",
60599	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60600	//       "required": true,
60601	//       "type": "string"
60602	//     },
60603	//     "region": {
60604	//       "description": "Name of the region scoping this request.",
60605	//       "location": "path",
60606	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60607	//       "required": true,
60608	//       "type": "string"
60609	//     }
60610	//   },
60611	//   "path": "{project}/regions/{region}/backendServices/{backendService}/getHealth",
60612	//   "request": {
60613	//     "$ref": "ResourceGroupReference"
60614	//   },
60615	//   "response": {
60616	//     "$ref": "BackendServiceGroupHealth"
60617	//   },
60618	//   "scopes": [
60619	//     "https://www.googleapis.com/auth/cloud-platform",
60620	//     "https://www.googleapis.com/auth/compute",
60621	//     "https://www.googleapis.com/auth/compute.readonly"
60622	//   ]
60623	// }
60624
60625}
60626
60627// method id "compute.regionBackendServices.insert":
60628
60629type RegionBackendServicesInsertCall struct {
60630	s              *Service
60631	project        string
60632	region         string
60633	backendservice *BackendService
60634	urlParams_     gensupport.URLParams
60635	ctx_           context.Context
60636	header_        http.Header
60637}
60638
60639// Insert: Creates a regional BackendService resource in the specified
60640// project using the data included in the request. There are several
60641// restrictions and guidelines to keep in mind when creating a regional
60642// backend service. Read  Restrictions and Guidelines for more
60643// information.
60644func (r *RegionBackendServicesService) Insert(project string, region string, backendservice *BackendService) *RegionBackendServicesInsertCall {
60645	c := &RegionBackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60646	c.project = project
60647	c.region = region
60648	c.backendservice = backendservice
60649	return c
60650}
60651
60652// RequestId sets the optional parameter "requestId": An optional
60653// request ID to identify requests. Specify a unique request ID so that
60654// if you must retry your request, the server will know to ignore the
60655// request if it has already been completed.
60656//
60657// For example, consider a situation where you make an initial request
60658// and the request times out. If you make the request again with the
60659// same request ID, the server can check if original operation with the
60660// same request ID was received, and if so, will ignore the second
60661// request. This prevents clients from accidentally creating duplicate
60662// commitments.
60663//
60664// The request ID must be a valid UUID with the exception that zero UUID
60665// is not supported (00000000-0000-0000-0000-000000000000).
60666func (c *RegionBackendServicesInsertCall) RequestId(requestId string) *RegionBackendServicesInsertCall {
60667	c.urlParams_.Set("requestId", requestId)
60668	return c
60669}
60670
60671// Fields allows partial responses to be retrieved. See
60672// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60673// for more information.
60674func (c *RegionBackendServicesInsertCall) Fields(s ...googleapi.Field) *RegionBackendServicesInsertCall {
60675	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60676	return c
60677}
60678
60679// Context sets the context to be used in this call's Do method. Any
60680// pending HTTP request will be aborted if the provided context is
60681// canceled.
60682func (c *RegionBackendServicesInsertCall) Context(ctx context.Context) *RegionBackendServicesInsertCall {
60683	c.ctx_ = ctx
60684	return c
60685}
60686
60687// Header returns an http.Header that can be modified by the caller to
60688// add HTTP headers to the request.
60689func (c *RegionBackendServicesInsertCall) Header() http.Header {
60690	if c.header_ == nil {
60691		c.header_ = make(http.Header)
60692	}
60693	return c.header_
60694}
60695
60696func (c *RegionBackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
60697	reqHeaders := make(http.Header)
60698	for k, v := range c.header_ {
60699		reqHeaders[k] = v
60700	}
60701	reqHeaders.Set("User-Agent", c.s.userAgent())
60702	var body io.Reader = nil
60703	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
60704	if err != nil {
60705		return nil, err
60706	}
60707	reqHeaders.Set("Content-Type", "application/json")
60708	c.urlParams_.Set("alt", alt)
60709	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices")
60710	urls += "?" + c.urlParams_.Encode()
60711	req, _ := http.NewRequest("POST", urls, body)
60712	req.Header = reqHeaders
60713	googleapi.Expand(req.URL, map[string]string{
60714		"project": c.project,
60715		"region":  c.region,
60716	})
60717	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60718}
60719
60720// Do executes the "compute.regionBackendServices.insert" call.
60721// Exactly one of *Operation or error will be non-nil. Any non-2xx
60722// status code is an error. Response headers are in either
60723// *Operation.ServerResponse.Header or (if a response was returned at
60724// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60725// to check whether the returned error was because
60726// http.StatusNotModified was returned.
60727func (c *RegionBackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60728	gensupport.SetOptions(c.urlParams_, opts...)
60729	res, err := c.doRequest("json")
60730	if res != nil && res.StatusCode == http.StatusNotModified {
60731		if res.Body != nil {
60732			res.Body.Close()
60733		}
60734		return nil, &googleapi.Error{
60735			Code:   res.StatusCode,
60736			Header: res.Header,
60737		}
60738	}
60739	if err != nil {
60740		return nil, err
60741	}
60742	defer googleapi.CloseBody(res)
60743	if err := googleapi.CheckResponse(res); err != nil {
60744		return nil, err
60745	}
60746	ret := &Operation{
60747		ServerResponse: googleapi.ServerResponse{
60748			Header:         res.Header,
60749			HTTPStatusCode: res.StatusCode,
60750		},
60751	}
60752	target := &ret
60753	if err := gensupport.DecodeResponse(target, res); err != nil {
60754		return nil, err
60755	}
60756	return ret, nil
60757	// {
60758	//   "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.",
60759	//   "httpMethod": "POST",
60760	//   "id": "compute.regionBackendServices.insert",
60761	//   "parameterOrder": [
60762	//     "project",
60763	//     "region"
60764	//   ],
60765	//   "parameters": {
60766	//     "project": {
60767	//       "description": "Project ID for this request.",
60768	//       "location": "path",
60769	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60770	//       "required": true,
60771	//       "type": "string"
60772	//     },
60773	//     "region": {
60774	//       "description": "Name of the region scoping this request.",
60775	//       "location": "path",
60776	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60777	//       "required": true,
60778	//       "type": "string"
60779	//     },
60780	//     "requestId": {
60781	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60782	//       "location": "query",
60783	//       "type": "string"
60784	//     }
60785	//   },
60786	//   "path": "{project}/regions/{region}/backendServices",
60787	//   "request": {
60788	//     "$ref": "BackendService"
60789	//   },
60790	//   "response": {
60791	//     "$ref": "Operation"
60792	//   },
60793	//   "scopes": [
60794	//     "https://www.googleapis.com/auth/cloud-platform",
60795	//     "https://www.googleapis.com/auth/compute"
60796	//   ]
60797	// }
60798
60799}
60800
60801// method id "compute.regionBackendServices.list":
60802
60803type RegionBackendServicesListCall struct {
60804	s            *Service
60805	project      string
60806	region       string
60807	urlParams_   gensupport.URLParams
60808	ifNoneMatch_ string
60809	ctx_         context.Context
60810	header_      http.Header
60811}
60812
60813// List: Retrieves the list of regional BackendService resources
60814// available to the specified project in the given region.
60815func (r *RegionBackendServicesService) List(project string, region string) *RegionBackendServicesListCall {
60816	c := &RegionBackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60817	c.project = project
60818	c.region = region
60819	return c
60820}
60821
60822// Filter sets the optional parameter "filter": A filter expression that
60823// filters resources listed in the response. The expression must specify
60824// the field name, a comparison operator, and the value that you want to
60825// use for filtering. The value must be a string, a number, or a
60826// boolean. The comparison operator must be either =, !=, >, or <.
60827//
60828// For example, if you are filtering Compute Engine instances, you can
60829// exclude instances named example-instance by specifying name !=
60830// example-instance.
60831//
60832// You can also filter nested fields. For example, you could specify
60833// scheduling.automaticRestart = false to include instances only if they
60834// are not scheduled for automatic restarts. You can use filtering on
60835// nested fields to filter based on resource labels.
60836//
60837// To filter on multiple expressions, provide each separate expression
60838// within parentheses. For example, (scheduling.automaticRestart = true)
60839// (cpuPlatform = "Intel Skylake"). By default, each expression is an
60840// AND expression. However, you can include AND and OR expressions
60841// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
60842// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
60843// true).
60844func (c *RegionBackendServicesListCall) Filter(filter string) *RegionBackendServicesListCall {
60845	c.urlParams_.Set("filter", filter)
60846	return c
60847}
60848
60849// MaxResults sets the optional parameter "maxResults": The maximum
60850// number of results per page that should be returned. If the number of
60851// available results is larger than maxResults, Compute Engine returns a
60852// nextPageToken that can be used to get the next page of results in
60853// subsequent list requests. Acceptable values are 0 to 500, inclusive.
60854// (Default: 500)
60855func (c *RegionBackendServicesListCall) MaxResults(maxResults int64) *RegionBackendServicesListCall {
60856	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
60857	return c
60858}
60859
60860// OrderBy sets the optional parameter "orderBy": Sorts list results by
60861// a certain order. By default, results are returned in alphanumerical
60862// order based on the resource name.
60863//
60864// You can also sort results in descending order based on the creation
60865// timestamp using orderBy="creationTimestamp desc". This sorts results
60866// based on the creationTimestamp field in reverse chronological order
60867// (newest result first). Use this to sort resources like operations so
60868// that the newest operation is returned first.
60869//
60870// Currently, only sorting by name or creationTimestamp desc is
60871// supported.
60872func (c *RegionBackendServicesListCall) OrderBy(orderBy string) *RegionBackendServicesListCall {
60873	c.urlParams_.Set("orderBy", orderBy)
60874	return c
60875}
60876
60877// PageToken sets the optional parameter "pageToken": Specifies a page
60878// token to use. Set pageToken to the nextPageToken returned by a
60879// previous list request to get the next page of results.
60880func (c *RegionBackendServicesListCall) PageToken(pageToken string) *RegionBackendServicesListCall {
60881	c.urlParams_.Set("pageToken", pageToken)
60882	return c
60883}
60884
60885// Fields allows partial responses to be retrieved. See
60886// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60887// for more information.
60888func (c *RegionBackendServicesListCall) Fields(s ...googleapi.Field) *RegionBackendServicesListCall {
60889	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60890	return c
60891}
60892
60893// IfNoneMatch sets the optional parameter which makes the operation
60894// fail if the object's ETag matches the given value. This is useful for
60895// getting updates only after the object has changed since the last
60896// request. Use googleapi.IsNotModified to check whether the response
60897// error from Do is the result of In-None-Match.
60898func (c *RegionBackendServicesListCall) IfNoneMatch(entityTag string) *RegionBackendServicesListCall {
60899	c.ifNoneMatch_ = entityTag
60900	return c
60901}
60902
60903// Context sets the context to be used in this call's Do method. Any
60904// pending HTTP request will be aborted if the provided context is
60905// canceled.
60906func (c *RegionBackendServicesListCall) Context(ctx context.Context) *RegionBackendServicesListCall {
60907	c.ctx_ = ctx
60908	return c
60909}
60910
60911// Header returns an http.Header that can be modified by the caller to
60912// add HTTP headers to the request.
60913func (c *RegionBackendServicesListCall) Header() http.Header {
60914	if c.header_ == nil {
60915		c.header_ = make(http.Header)
60916	}
60917	return c.header_
60918}
60919
60920func (c *RegionBackendServicesListCall) doRequest(alt string) (*http.Response, error) {
60921	reqHeaders := make(http.Header)
60922	for k, v := range c.header_ {
60923		reqHeaders[k] = v
60924	}
60925	reqHeaders.Set("User-Agent", c.s.userAgent())
60926	if c.ifNoneMatch_ != "" {
60927		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60928	}
60929	var body io.Reader = nil
60930	c.urlParams_.Set("alt", alt)
60931	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices")
60932	urls += "?" + c.urlParams_.Encode()
60933	req, _ := http.NewRequest("GET", urls, body)
60934	req.Header = reqHeaders
60935	googleapi.Expand(req.URL, map[string]string{
60936		"project": c.project,
60937		"region":  c.region,
60938	})
60939	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60940}
60941
60942// Do executes the "compute.regionBackendServices.list" call.
60943// Exactly one of *BackendServiceList or error will be non-nil. Any
60944// non-2xx status code is an error. Response headers are in either
60945// *BackendServiceList.ServerResponse.Header or (if a response was
60946// returned at all) in error.(*googleapi.Error).Header. Use
60947// googleapi.IsNotModified to check whether the returned error was
60948// because http.StatusNotModified was returned.
60949func (c *RegionBackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
60950	gensupport.SetOptions(c.urlParams_, opts...)
60951	res, err := c.doRequest("json")
60952	if res != nil && res.StatusCode == http.StatusNotModified {
60953		if res.Body != nil {
60954			res.Body.Close()
60955		}
60956		return nil, &googleapi.Error{
60957			Code:   res.StatusCode,
60958			Header: res.Header,
60959		}
60960	}
60961	if err != nil {
60962		return nil, err
60963	}
60964	defer googleapi.CloseBody(res)
60965	if err := googleapi.CheckResponse(res); err != nil {
60966		return nil, err
60967	}
60968	ret := &BackendServiceList{
60969		ServerResponse: googleapi.ServerResponse{
60970			Header:         res.Header,
60971			HTTPStatusCode: res.StatusCode,
60972		},
60973	}
60974	target := &ret
60975	if err := gensupport.DecodeResponse(target, res); err != nil {
60976		return nil, err
60977	}
60978	return ret, nil
60979	// {
60980	//   "description": "Retrieves the list of regional BackendService resources available to the specified project in the given region.",
60981	//   "httpMethod": "GET",
60982	//   "id": "compute.regionBackendServices.list",
60983	//   "parameterOrder": [
60984	//     "project",
60985	//     "region"
60986	//   ],
60987	//   "parameters": {
60988	//     "filter": {
60989	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
60990	//       "location": "query",
60991	//       "type": "string"
60992	//     },
60993	//     "maxResults": {
60994	//       "default": "500",
60995	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
60996	//       "format": "uint32",
60997	//       "location": "query",
60998	//       "minimum": "0",
60999	//       "type": "integer"
61000	//     },
61001	//     "orderBy": {
61002	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
61003	//       "location": "query",
61004	//       "type": "string"
61005	//     },
61006	//     "pageToken": {
61007	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
61008	//       "location": "query",
61009	//       "type": "string"
61010	//     },
61011	//     "project": {
61012	//       "description": "Project ID for this request.",
61013	//       "location": "path",
61014	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61015	//       "required": true,
61016	//       "type": "string"
61017	//     },
61018	//     "region": {
61019	//       "description": "Name of the region scoping this request.",
61020	//       "location": "path",
61021	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61022	//       "required": true,
61023	//       "type": "string"
61024	//     }
61025	//   },
61026	//   "path": "{project}/regions/{region}/backendServices",
61027	//   "response": {
61028	//     "$ref": "BackendServiceList"
61029	//   },
61030	//   "scopes": [
61031	//     "https://www.googleapis.com/auth/cloud-platform",
61032	//     "https://www.googleapis.com/auth/compute",
61033	//     "https://www.googleapis.com/auth/compute.readonly"
61034	//   ]
61035	// }
61036
61037}
61038
61039// Pages invokes f for each page of results.
61040// A non-nil error returned from f will halt the iteration.
61041// The provided context supersedes any context provided to the Context method.
61042func (c *RegionBackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
61043	c.ctx_ = ctx
61044	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
61045	for {
61046		x, err := c.Do()
61047		if err != nil {
61048			return err
61049		}
61050		if err := f(x); err != nil {
61051			return err
61052		}
61053		if x.NextPageToken == "" {
61054			return nil
61055		}
61056		c.PageToken(x.NextPageToken)
61057	}
61058}
61059
61060// method id "compute.regionBackendServices.patch":
61061
61062type RegionBackendServicesPatchCall struct {
61063	s              *Service
61064	project        string
61065	region         string
61066	backendService string
61067	backendservice *BackendService
61068	urlParams_     gensupport.URLParams
61069	ctx_           context.Context
61070	header_        http.Header
61071}
61072
61073// Patch: Updates the specified regional BackendService resource with
61074// the data included in the request. There are several restrictions and
61075// guidelines to keep in mind when updating a backend service. Read
61076// Restrictions and Guidelines for more information. This method
61077// supports PATCH semantics and uses the JSON merge patch format and
61078// processing rules.
61079func (r *RegionBackendServicesService) Patch(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesPatchCall {
61080	c := &RegionBackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61081	c.project = project
61082	c.region = region
61083	c.backendService = backendService
61084	c.backendservice = backendservice
61085	return c
61086}
61087
61088// RequestId sets the optional parameter "requestId": An optional
61089// request ID to identify requests. Specify a unique request ID so that
61090// if you must retry your request, the server will know to ignore the
61091// request if it has already been completed.
61092//
61093// For example, consider a situation where you make an initial request
61094// and the request times out. If you make the request again with the
61095// same request ID, the server can check if original operation with the
61096// same request ID was received, and if so, will ignore the second
61097// request. This prevents clients from accidentally creating duplicate
61098// commitments.
61099//
61100// The request ID must be a valid UUID with the exception that zero UUID
61101// is not supported (00000000-0000-0000-0000-000000000000).
61102func (c *RegionBackendServicesPatchCall) RequestId(requestId string) *RegionBackendServicesPatchCall {
61103	c.urlParams_.Set("requestId", requestId)
61104	return c
61105}
61106
61107// Fields allows partial responses to be retrieved. See
61108// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61109// for more information.
61110func (c *RegionBackendServicesPatchCall) Fields(s ...googleapi.Field) *RegionBackendServicesPatchCall {
61111	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61112	return c
61113}
61114
61115// Context sets the context to be used in this call's Do method. Any
61116// pending HTTP request will be aborted if the provided context is
61117// canceled.
61118func (c *RegionBackendServicesPatchCall) Context(ctx context.Context) *RegionBackendServicesPatchCall {
61119	c.ctx_ = ctx
61120	return c
61121}
61122
61123// Header returns an http.Header that can be modified by the caller to
61124// add HTTP headers to the request.
61125func (c *RegionBackendServicesPatchCall) Header() http.Header {
61126	if c.header_ == nil {
61127		c.header_ = make(http.Header)
61128	}
61129	return c.header_
61130}
61131
61132func (c *RegionBackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
61133	reqHeaders := make(http.Header)
61134	for k, v := range c.header_ {
61135		reqHeaders[k] = v
61136	}
61137	reqHeaders.Set("User-Agent", c.s.userAgent())
61138	var body io.Reader = nil
61139	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
61140	if err != nil {
61141		return nil, err
61142	}
61143	reqHeaders.Set("Content-Type", "application/json")
61144	c.urlParams_.Set("alt", alt)
61145	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
61146	urls += "?" + c.urlParams_.Encode()
61147	req, _ := http.NewRequest("PATCH", urls, body)
61148	req.Header = reqHeaders
61149	googleapi.Expand(req.URL, map[string]string{
61150		"project":        c.project,
61151		"region":         c.region,
61152		"backendService": c.backendService,
61153	})
61154	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61155}
61156
61157// Do executes the "compute.regionBackendServices.patch" call.
61158// Exactly one of *Operation or error will be non-nil. Any non-2xx
61159// status code is an error. Response headers are in either
61160// *Operation.ServerResponse.Header or (if a response was returned at
61161// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61162// to check whether the returned error was because
61163// http.StatusNotModified was returned.
61164func (c *RegionBackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61165	gensupport.SetOptions(c.urlParams_, opts...)
61166	res, err := c.doRequest("json")
61167	if res != nil && res.StatusCode == http.StatusNotModified {
61168		if res.Body != nil {
61169			res.Body.Close()
61170		}
61171		return nil, &googleapi.Error{
61172			Code:   res.StatusCode,
61173			Header: res.Header,
61174		}
61175	}
61176	if err != nil {
61177		return nil, err
61178	}
61179	defer googleapi.CloseBody(res)
61180	if err := googleapi.CheckResponse(res); err != nil {
61181		return nil, err
61182	}
61183	ret := &Operation{
61184		ServerResponse: googleapi.ServerResponse{
61185			Header:         res.Header,
61186			HTTPStatusCode: res.StatusCode,
61187		},
61188	}
61189	target := &ret
61190	if err := gensupport.DecodeResponse(target, res); err != nil {
61191		return nil, err
61192	}
61193	return ret, nil
61194	// {
61195	//   "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.",
61196	//   "httpMethod": "PATCH",
61197	//   "id": "compute.regionBackendServices.patch",
61198	//   "parameterOrder": [
61199	//     "project",
61200	//     "region",
61201	//     "backendService"
61202	//   ],
61203	//   "parameters": {
61204	//     "backendService": {
61205	//       "description": "Name of the BackendService resource to patch.",
61206	//       "location": "path",
61207	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61208	//       "required": true,
61209	//       "type": "string"
61210	//     },
61211	//     "project": {
61212	//       "description": "Project ID for this request.",
61213	//       "location": "path",
61214	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61215	//       "required": true,
61216	//       "type": "string"
61217	//     },
61218	//     "region": {
61219	//       "description": "Name of the region scoping this request.",
61220	//       "location": "path",
61221	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61222	//       "required": true,
61223	//       "type": "string"
61224	//     },
61225	//     "requestId": {
61226	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61227	//       "location": "query",
61228	//       "type": "string"
61229	//     }
61230	//   },
61231	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
61232	//   "request": {
61233	//     "$ref": "BackendService"
61234	//   },
61235	//   "response": {
61236	//     "$ref": "Operation"
61237	//   },
61238	//   "scopes": [
61239	//     "https://www.googleapis.com/auth/cloud-platform",
61240	//     "https://www.googleapis.com/auth/compute"
61241	//   ]
61242	// }
61243
61244}
61245
61246// method id "compute.regionBackendServices.update":
61247
61248type RegionBackendServicesUpdateCall struct {
61249	s              *Service
61250	project        string
61251	region         string
61252	backendService string
61253	backendservice *BackendService
61254	urlParams_     gensupport.URLParams
61255	ctx_           context.Context
61256	header_        http.Header
61257}
61258
61259// Update: Updates the specified regional BackendService resource with
61260// the data included in the request. There are several restrictions and
61261// guidelines to keep in mind when updating a backend service. Read
61262// Restrictions and Guidelines for more information.
61263func (r *RegionBackendServicesService) Update(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesUpdateCall {
61264	c := &RegionBackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61265	c.project = project
61266	c.region = region
61267	c.backendService = backendService
61268	c.backendservice = backendservice
61269	return c
61270}
61271
61272// RequestId sets the optional parameter "requestId": An optional
61273// request ID to identify requests. Specify a unique request ID so that
61274// if you must retry your request, the server will know to ignore the
61275// request if it has already been completed.
61276//
61277// For example, consider a situation where you make an initial request
61278// and the request times out. If you make the request again with the
61279// same request ID, the server can check if original operation with the
61280// same request ID was received, and if so, will ignore the second
61281// request. This prevents clients from accidentally creating duplicate
61282// commitments.
61283//
61284// The request ID must be a valid UUID with the exception that zero UUID
61285// is not supported (00000000-0000-0000-0000-000000000000).
61286func (c *RegionBackendServicesUpdateCall) RequestId(requestId string) *RegionBackendServicesUpdateCall {
61287	c.urlParams_.Set("requestId", requestId)
61288	return c
61289}
61290
61291// Fields allows partial responses to be retrieved. See
61292// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61293// for more information.
61294func (c *RegionBackendServicesUpdateCall) Fields(s ...googleapi.Field) *RegionBackendServicesUpdateCall {
61295	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61296	return c
61297}
61298
61299// Context sets the context to be used in this call's Do method. Any
61300// pending HTTP request will be aborted if the provided context is
61301// canceled.
61302func (c *RegionBackendServicesUpdateCall) Context(ctx context.Context) *RegionBackendServicesUpdateCall {
61303	c.ctx_ = ctx
61304	return c
61305}
61306
61307// Header returns an http.Header that can be modified by the caller to
61308// add HTTP headers to the request.
61309func (c *RegionBackendServicesUpdateCall) Header() http.Header {
61310	if c.header_ == nil {
61311		c.header_ = make(http.Header)
61312	}
61313	return c.header_
61314}
61315
61316func (c *RegionBackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
61317	reqHeaders := make(http.Header)
61318	for k, v := range c.header_ {
61319		reqHeaders[k] = v
61320	}
61321	reqHeaders.Set("User-Agent", c.s.userAgent())
61322	var body io.Reader = nil
61323	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
61324	if err != nil {
61325		return nil, err
61326	}
61327	reqHeaders.Set("Content-Type", "application/json")
61328	c.urlParams_.Set("alt", alt)
61329	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
61330	urls += "?" + c.urlParams_.Encode()
61331	req, _ := http.NewRequest("PUT", urls, body)
61332	req.Header = reqHeaders
61333	googleapi.Expand(req.URL, map[string]string{
61334		"project":        c.project,
61335		"region":         c.region,
61336		"backendService": c.backendService,
61337	})
61338	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61339}
61340
61341// Do executes the "compute.regionBackendServices.update" call.
61342// Exactly one of *Operation or error will be non-nil. Any non-2xx
61343// status code is an error. Response headers are in either
61344// *Operation.ServerResponse.Header or (if a response was returned at
61345// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61346// to check whether the returned error was because
61347// http.StatusNotModified was returned.
61348func (c *RegionBackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61349	gensupport.SetOptions(c.urlParams_, opts...)
61350	res, err := c.doRequest("json")
61351	if res != nil && res.StatusCode == http.StatusNotModified {
61352		if res.Body != nil {
61353			res.Body.Close()
61354		}
61355		return nil, &googleapi.Error{
61356			Code:   res.StatusCode,
61357			Header: res.Header,
61358		}
61359	}
61360	if err != nil {
61361		return nil, err
61362	}
61363	defer googleapi.CloseBody(res)
61364	if err := googleapi.CheckResponse(res); err != nil {
61365		return nil, err
61366	}
61367	ret := &Operation{
61368		ServerResponse: googleapi.ServerResponse{
61369			Header:         res.Header,
61370			HTTPStatusCode: res.StatusCode,
61371		},
61372	}
61373	target := &ret
61374	if err := gensupport.DecodeResponse(target, res); err != nil {
61375		return nil, err
61376	}
61377	return ret, nil
61378	// {
61379	//   "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.",
61380	//   "httpMethod": "PUT",
61381	//   "id": "compute.regionBackendServices.update",
61382	//   "parameterOrder": [
61383	//     "project",
61384	//     "region",
61385	//     "backendService"
61386	//   ],
61387	//   "parameters": {
61388	//     "backendService": {
61389	//       "description": "Name of the BackendService resource to update.",
61390	//       "location": "path",
61391	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61392	//       "required": true,
61393	//       "type": "string"
61394	//     },
61395	//     "project": {
61396	//       "description": "Project ID for this request.",
61397	//       "location": "path",
61398	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61399	//       "required": true,
61400	//       "type": "string"
61401	//     },
61402	//     "region": {
61403	//       "description": "Name of the region scoping this request.",
61404	//       "location": "path",
61405	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61406	//       "required": true,
61407	//       "type": "string"
61408	//     },
61409	//     "requestId": {
61410	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61411	//       "location": "query",
61412	//       "type": "string"
61413	//     }
61414	//   },
61415	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
61416	//   "request": {
61417	//     "$ref": "BackendService"
61418	//   },
61419	//   "response": {
61420	//     "$ref": "Operation"
61421	//   },
61422	//   "scopes": [
61423	//     "https://www.googleapis.com/auth/cloud-platform",
61424	//     "https://www.googleapis.com/auth/compute"
61425	//   ]
61426	// }
61427
61428}
61429
61430// method id "compute.regionCommitments.aggregatedList":
61431
61432type RegionCommitmentsAggregatedListCall struct {
61433	s            *Service
61434	project      string
61435	urlParams_   gensupport.URLParams
61436	ifNoneMatch_ string
61437	ctx_         context.Context
61438	header_      http.Header
61439}
61440
61441// AggregatedList: Retrieves an aggregated list of commitments.
61442func (r *RegionCommitmentsService) AggregatedList(project string) *RegionCommitmentsAggregatedListCall {
61443	c := &RegionCommitmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61444	c.project = project
61445	return c
61446}
61447
61448// Filter sets the optional parameter "filter": A filter expression that
61449// filters resources listed in the response. The expression must specify
61450// the field name, a comparison operator, and the value that you want to
61451// use for filtering. The value must be a string, a number, or a
61452// boolean. The comparison operator must be either =, !=, >, or <.
61453//
61454// For example, if you are filtering Compute Engine instances, you can
61455// exclude instances named example-instance by specifying name !=
61456// example-instance.
61457//
61458// You can also filter nested fields. For example, you could specify
61459// scheduling.automaticRestart = false to include instances only if they
61460// are not scheduled for automatic restarts. You can use filtering on
61461// nested fields to filter based on resource labels.
61462//
61463// To filter on multiple expressions, provide each separate expression
61464// within parentheses. For example, (scheduling.automaticRestart = true)
61465// (cpuPlatform = "Intel Skylake"). By default, each expression is an
61466// AND expression. However, you can include AND and OR expressions
61467// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
61468// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
61469// true).
61470func (c *RegionCommitmentsAggregatedListCall) Filter(filter string) *RegionCommitmentsAggregatedListCall {
61471	c.urlParams_.Set("filter", filter)
61472	return c
61473}
61474
61475// MaxResults sets the optional parameter "maxResults": The maximum
61476// number of results per page that should be returned. If the number of
61477// available results is larger than maxResults, Compute Engine returns a
61478// nextPageToken that can be used to get the next page of results in
61479// subsequent list requests. Acceptable values are 0 to 500, inclusive.
61480// (Default: 500)
61481func (c *RegionCommitmentsAggregatedListCall) MaxResults(maxResults int64) *RegionCommitmentsAggregatedListCall {
61482	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
61483	return c
61484}
61485
61486// OrderBy sets the optional parameter "orderBy": Sorts list results by
61487// a certain order. By default, results are returned in alphanumerical
61488// order based on the resource name.
61489//
61490// You can also sort results in descending order based on the creation
61491// timestamp using orderBy="creationTimestamp desc". This sorts results
61492// based on the creationTimestamp field in reverse chronological order
61493// (newest result first). Use this to sort resources like operations so
61494// that the newest operation is returned first.
61495//
61496// Currently, only sorting by name or creationTimestamp desc is
61497// supported.
61498func (c *RegionCommitmentsAggregatedListCall) OrderBy(orderBy string) *RegionCommitmentsAggregatedListCall {
61499	c.urlParams_.Set("orderBy", orderBy)
61500	return c
61501}
61502
61503// PageToken sets the optional parameter "pageToken": Specifies a page
61504// token to use. Set pageToken to the nextPageToken returned by a
61505// previous list request to get the next page of results.
61506func (c *RegionCommitmentsAggregatedListCall) PageToken(pageToken string) *RegionCommitmentsAggregatedListCall {
61507	c.urlParams_.Set("pageToken", pageToken)
61508	return c
61509}
61510
61511// Fields allows partial responses to be retrieved. See
61512// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61513// for more information.
61514func (c *RegionCommitmentsAggregatedListCall) Fields(s ...googleapi.Field) *RegionCommitmentsAggregatedListCall {
61515	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61516	return c
61517}
61518
61519// IfNoneMatch sets the optional parameter which makes the operation
61520// fail if the object's ETag matches the given value. This is useful for
61521// getting updates only after the object has changed since the last
61522// request. Use googleapi.IsNotModified to check whether the response
61523// error from Do is the result of In-None-Match.
61524func (c *RegionCommitmentsAggregatedListCall) IfNoneMatch(entityTag string) *RegionCommitmentsAggregatedListCall {
61525	c.ifNoneMatch_ = entityTag
61526	return c
61527}
61528
61529// Context sets the context to be used in this call's Do method. Any
61530// pending HTTP request will be aborted if the provided context is
61531// canceled.
61532func (c *RegionCommitmentsAggregatedListCall) Context(ctx context.Context) *RegionCommitmentsAggregatedListCall {
61533	c.ctx_ = ctx
61534	return c
61535}
61536
61537// Header returns an http.Header that can be modified by the caller to
61538// add HTTP headers to the request.
61539func (c *RegionCommitmentsAggregatedListCall) Header() http.Header {
61540	if c.header_ == nil {
61541		c.header_ = make(http.Header)
61542	}
61543	return c.header_
61544}
61545
61546func (c *RegionCommitmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
61547	reqHeaders := make(http.Header)
61548	for k, v := range c.header_ {
61549		reqHeaders[k] = v
61550	}
61551	reqHeaders.Set("User-Agent", c.s.userAgent())
61552	if c.ifNoneMatch_ != "" {
61553		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
61554	}
61555	var body io.Reader = nil
61556	c.urlParams_.Set("alt", alt)
61557	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/commitments")
61558	urls += "?" + c.urlParams_.Encode()
61559	req, _ := http.NewRequest("GET", urls, body)
61560	req.Header = reqHeaders
61561	googleapi.Expand(req.URL, map[string]string{
61562		"project": c.project,
61563	})
61564	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61565}
61566
61567// Do executes the "compute.regionCommitments.aggregatedList" call.
61568// Exactly one of *CommitmentAggregatedList or error will be non-nil.
61569// Any non-2xx status code is an error. Response headers are in either
61570// *CommitmentAggregatedList.ServerResponse.Header or (if a response was
61571// returned at all) in error.(*googleapi.Error).Header. Use
61572// googleapi.IsNotModified to check whether the returned error was
61573// because http.StatusNotModified was returned.
61574func (c *RegionCommitmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*CommitmentAggregatedList, error) {
61575	gensupport.SetOptions(c.urlParams_, opts...)
61576	res, err := c.doRequest("json")
61577	if res != nil && res.StatusCode == http.StatusNotModified {
61578		if res.Body != nil {
61579			res.Body.Close()
61580		}
61581		return nil, &googleapi.Error{
61582			Code:   res.StatusCode,
61583			Header: res.Header,
61584		}
61585	}
61586	if err != nil {
61587		return nil, err
61588	}
61589	defer googleapi.CloseBody(res)
61590	if err := googleapi.CheckResponse(res); err != nil {
61591		return nil, err
61592	}
61593	ret := &CommitmentAggregatedList{
61594		ServerResponse: googleapi.ServerResponse{
61595			Header:         res.Header,
61596			HTTPStatusCode: res.StatusCode,
61597		},
61598	}
61599	target := &ret
61600	if err := gensupport.DecodeResponse(target, res); err != nil {
61601		return nil, err
61602	}
61603	return ret, nil
61604	// {
61605	//   "description": "Retrieves an aggregated list of commitments.",
61606	//   "httpMethod": "GET",
61607	//   "id": "compute.regionCommitments.aggregatedList",
61608	//   "parameterOrder": [
61609	//     "project"
61610	//   ],
61611	//   "parameters": {
61612	//     "filter": {
61613	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
61614	//       "location": "query",
61615	//       "type": "string"
61616	//     },
61617	//     "maxResults": {
61618	//       "default": "500",
61619	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
61620	//       "format": "uint32",
61621	//       "location": "query",
61622	//       "minimum": "0",
61623	//       "type": "integer"
61624	//     },
61625	//     "orderBy": {
61626	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
61627	//       "location": "query",
61628	//       "type": "string"
61629	//     },
61630	//     "pageToken": {
61631	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
61632	//       "location": "query",
61633	//       "type": "string"
61634	//     },
61635	//     "project": {
61636	//       "description": "Project ID for this request.",
61637	//       "location": "path",
61638	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61639	//       "required": true,
61640	//       "type": "string"
61641	//     }
61642	//   },
61643	//   "path": "{project}/aggregated/commitments",
61644	//   "response": {
61645	//     "$ref": "CommitmentAggregatedList"
61646	//   },
61647	//   "scopes": [
61648	//     "https://www.googleapis.com/auth/cloud-platform",
61649	//     "https://www.googleapis.com/auth/compute",
61650	//     "https://www.googleapis.com/auth/compute.readonly"
61651	//   ]
61652	// }
61653
61654}
61655
61656// Pages invokes f for each page of results.
61657// A non-nil error returned from f will halt the iteration.
61658// The provided context supersedes any context provided to the Context method.
61659func (c *RegionCommitmentsAggregatedListCall) Pages(ctx context.Context, f func(*CommitmentAggregatedList) error) error {
61660	c.ctx_ = ctx
61661	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
61662	for {
61663		x, err := c.Do()
61664		if err != nil {
61665			return err
61666		}
61667		if err := f(x); err != nil {
61668			return err
61669		}
61670		if x.NextPageToken == "" {
61671			return nil
61672		}
61673		c.PageToken(x.NextPageToken)
61674	}
61675}
61676
61677// method id "compute.regionCommitments.get":
61678
61679type RegionCommitmentsGetCall struct {
61680	s            *Service
61681	project      string
61682	region       string
61683	commitment   string
61684	urlParams_   gensupport.URLParams
61685	ifNoneMatch_ string
61686	ctx_         context.Context
61687	header_      http.Header
61688}
61689
61690// Get: Returns the specified commitment resource. Gets a list of
61691// available commitments by making a list() request.
61692func (r *RegionCommitmentsService) Get(project string, region string, commitment string) *RegionCommitmentsGetCall {
61693	c := &RegionCommitmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61694	c.project = project
61695	c.region = region
61696	c.commitment = commitment
61697	return c
61698}
61699
61700// Fields allows partial responses to be retrieved. See
61701// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61702// for more information.
61703func (c *RegionCommitmentsGetCall) Fields(s ...googleapi.Field) *RegionCommitmentsGetCall {
61704	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61705	return c
61706}
61707
61708// IfNoneMatch sets the optional parameter which makes the operation
61709// fail if the object's ETag matches the given value. This is useful for
61710// getting updates only after the object has changed since the last
61711// request. Use googleapi.IsNotModified to check whether the response
61712// error from Do is the result of In-None-Match.
61713func (c *RegionCommitmentsGetCall) IfNoneMatch(entityTag string) *RegionCommitmentsGetCall {
61714	c.ifNoneMatch_ = entityTag
61715	return c
61716}
61717
61718// Context sets the context to be used in this call's Do method. Any
61719// pending HTTP request will be aborted if the provided context is
61720// canceled.
61721func (c *RegionCommitmentsGetCall) Context(ctx context.Context) *RegionCommitmentsGetCall {
61722	c.ctx_ = ctx
61723	return c
61724}
61725
61726// Header returns an http.Header that can be modified by the caller to
61727// add HTTP headers to the request.
61728func (c *RegionCommitmentsGetCall) Header() http.Header {
61729	if c.header_ == nil {
61730		c.header_ = make(http.Header)
61731	}
61732	return c.header_
61733}
61734
61735func (c *RegionCommitmentsGetCall) doRequest(alt string) (*http.Response, error) {
61736	reqHeaders := make(http.Header)
61737	for k, v := range c.header_ {
61738		reqHeaders[k] = v
61739	}
61740	reqHeaders.Set("User-Agent", c.s.userAgent())
61741	if c.ifNoneMatch_ != "" {
61742		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
61743	}
61744	var body io.Reader = nil
61745	c.urlParams_.Set("alt", alt)
61746	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments/{commitment}")
61747	urls += "?" + c.urlParams_.Encode()
61748	req, _ := http.NewRequest("GET", urls, body)
61749	req.Header = reqHeaders
61750	googleapi.Expand(req.URL, map[string]string{
61751		"project":    c.project,
61752		"region":     c.region,
61753		"commitment": c.commitment,
61754	})
61755	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61756}
61757
61758// Do executes the "compute.regionCommitments.get" call.
61759// Exactly one of *Commitment or error will be non-nil. Any non-2xx
61760// status code is an error. Response headers are in either
61761// *Commitment.ServerResponse.Header or (if a response was returned at
61762// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61763// to check whether the returned error was because
61764// http.StatusNotModified was returned.
61765func (c *RegionCommitmentsGetCall) Do(opts ...googleapi.CallOption) (*Commitment, error) {
61766	gensupport.SetOptions(c.urlParams_, opts...)
61767	res, err := c.doRequest("json")
61768	if res != nil && res.StatusCode == http.StatusNotModified {
61769		if res.Body != nil {
61770			res.Body.Close()
61771		}
61772		return nil, &googleapi.Error{
61773			Code:   res.StatusCode,
61774			Header: res.Header,
61775		}
61776	}
61777	if err != nil {
61778		return nil, err
61779	}
61780	defer googleapi.CloseBody(res)
61781	if err := googleapi.CheckResponse(res); err != nil {
61782		return nil, err
61783	}
61784	ret := &Commitment{
61785		ServerResponse: googleapi.ServerResponse{
61786			Header:         res.Header,
61787			HTTPStatusCode: res.StatusCode,
61788		},
61789	}
61790	target := &ret
61791	if err := gensupport.DecodeResponse(target, res); err != nil {
61792		return nil, err
61793	}
61794	return ret, nil
61795	// {
61796	//   "description": "Returns the specified commitment resource. Gets a list of available commitments by making a list() request.",
61797	//   "httpMethod": "GET",
61798	//   "id": "compute.regionCommitments.get",
61799	//   "parameterOrder": [
61800	//     "project",
61801	//     "region",
61802	//     "commitment"
61803	//   ],
61804	//   "parameters": {
61805	//     "commitment": {
61806	//       "description": "Name of the commitment to return.",
61807	//       "location": "path",
61808	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61809	//       "required": true,
61810	//       "type": "string"
61811	//     },
61812	//     "project": {
61813	//       "description": "Project ID for this request.",
61814	//       "location": "path",
61815	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61816	//       "required": true,
61817	//       "type": "string"
61818	//     },
61819	//     "region": {
61820	//       "description": "Name of the region for this request.",
61821	//       "location": "path",
61822	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61823	//       "required": true,
61824	//       "type": "string"
61825	//     }
61826	//   },
61827	//   "path": "{project}/regions/{region}/commitments/{commitment}",
61828	//   "response": {
61829	//     "$ref": "Commitment"
61830	//   },
61831	//   "scopes": [
61832	//     "https://www.googleapis.com/auth/cloud-platform",
61833	//     "https://www.googleapis.com/auth/compute",
61834	//     "https://www.googleapis.com/auth/compute.readonly"
61835	//   ]
61836	// }
61837
61838}
61839
61840// method id "compute.regionCommitments.insert":
61841
61842type RegionCommitmentsInsertCall struct {
61843	s          *Service
61844	project    string
61845	region     string
61846	commitment *Commitment
61847	urlParams_ gensupport.URLParams
61848	ctx_       context.Context
61849	header_    http.Header
61850}
61851
61852// Insert: Creates a commitment in the specified project using the data
61853// included in the request.
61854func (r *RegionCommitmentsService) Insert(project string, region string, commitment *Commitment) *RegionCommitmentsInsertCall {
61855	c := &RegionCommitmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61856	c.project = project
61857	c.region = region
61858	c.commitment = commitment
61859	return c
61860}
61861
61862// RequestId sets the optional parameter "requestId": An optional
61863// request ID to identify requests. Specify a unique request ID so that
61864// if you must retry your request, the server will know to ignore the
61865// request if it has already been completed.
61866//
61867// For example, consider a situation where you make an initial request
61868// and the request times out. If you make the request again with the
61869// same request ID, the server can check if original operation with the
61870// same request ID was received, and if so, will ignore the second
61871// request. This prevents clients from accidentally creating duplicate
61872// commitments.
61873//
61874// The request ID must be a valid UUID with the exception that zero UUID
61875// is not supported (00000000-0000-0000-0000-000000000000).
61876func (c *RegionCommitmentsInsertCall) RequestId(requestId string) *RegionCommitmentsInsertCall {
61877	c.urlParams_.Set("requestId", requestId)
61878	return c
61879}
61880
61881// Fields allows partial responses to be retrieved. See
61882// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61883// for more information.
61884func (c *RegionCommitmentsInsertCall) Fields(s ...googleapi.Field) *RegionCommitmentsInsertCall {
61885	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61886	return c
61887}
61888
61889// Context sets the context to be used in this call's Do method. Any
61890// pending HTTP request will be aborted if the provided context is
61891// canceled.
61892func (c *RegionCommitmentsInsertCall) Context(ctx context.Context) *RegionCommitmentsInsertCall {
61893	c.ctx_ = ctx
61894	return c
61895}
61896
61897// Header returns an http.Header that can be modified by the caller to
61898// add HTTP headers to the request.
61899func (c *RegionCommitmentsInsertCall) Header() http.Header {
61900	if c.header_ == nil {
61901		c.header_ = make(http.Header)
61902	}
61903	return c.header_
61904}
61905
61906func (c *RegionCommitmentsInsertCall) doRequest(alt string) (*http.Response, error) {
61907	reqHeaders := make(http.Header)
61908	for k, v := range c.header_ {
61909		reqHeaders[k] = v
61910	}
61911	reqHeaders.Set("User-Agent", c.s.userAgent())
61912	var body io.Reader = nil
61913	body, err := googleapi.WithoutDataWrapper.JSONReader(c.commitment)
61914	if err != nil {
61915		return nil, err
61916	}
61917	reqHeaders.Set("Content-Type", "application/json")
61918	c.urlParams_.Set("alt", alt)
61919	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments")
61920	urls += "?" + c.urlParams_.Encode()
61921	req, _ := http.NewRequest("POST", urls, body)
61922	req.Header = reqHeaders
61923	googleapi.Expand(req.URL, map[string]string{
61924		"project": c.project,
61925		"region":  c.region,
61926	})
61927	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61928}
61929
61930// Do executes the "compute.regionCommitments.insert" call.
61931// Exactly one of *Operation or error will be non-nil. Any non-2xx
61932// status code is an error. Response headers are in either
61933// *Operation.ServerResponse.Header or (if a response was returned at
61934// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61935// to check whether the returned error was because
61936// http.StatusNotModified was returned.
61937func (c *RegionCommitmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61938	gensupport.SetOptions(c.urlParams_, opts...)
61939	res, err := c.doRequest("json")
61940	if res != nil && res.StatusCode == http.StatusNotModified {
61941		if res.Body != nil {
61942			res.Body.Close()
61943		}
61944		return nil, &googleapi.Error{
61945			Code:   res.StatusCode,
61946			Header: res.Header,
61947		}
61948	}
61949	if err != nil {
61950		return nil, err
61951	}
61952	defer googleapi.CloseBody(res)
61953	if err := googleapi.CheckResponse(res); err != nil {
61954		return nil, err
61955	}
61956	ret := &Operation{
61957		ServerResponse: googleapi.ServerResponse{
61958			Header:         res.Header,
61959			HTTPStatusCode: res.StatusCode,
61960		},
61961	}
61962	target := &ret
61963	if err := gensupport.DecodeResponse(target, res); err != nil {
61964		return nil, err
61965	}
61966	return ret, nil
61967	// {
61968	//   "description": "Creates a commitment in the specified project using the data included in the request.",
61969	//   "httpMethod": "POST",
61970	//   "id": "compute.regionCommitments.insert",
61971	//   "parameterOrder": [
61972	//     "project",
61973	//     "region"
61974	//   ],
61975	//   "parameters": {
61976	//     "project": {
61977	//       "description": "Project ID for this request.",
61978	//       "location": "path",
61979	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61980	//       "required": true,
61981	//       "type": "string"
61982	//     },
61983	//     "region": {
61984	//       "description": "Name of the region for this request.",
61985	//       "location": "path",
61986	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
61987	//       "required": true,
61988	//       "type": "string"
61989	//     },
61990	//     "requestId": {
61991	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61992	//       "location": "query",
61993	//       "type": "string"
61994	//     }
61995	//   },
61996	//   "path": "{project}/regions/{region}/commitments",
61997	//   "request": {
61998	//     "$ref": "Commitment"
61999	//   },
62000	//   "response": {
62001	//     "$ref": "Operation"
62002	//   },
62003	//   "scopes": [
62004	//     "https://www.googleapis.com/auth/cloud-platform",
62005	//     "https://www.googleapis.com/auth/compute"
62006	//   ]
62007	// }
62008
62009}
62010
62011// method id "compute.regionCommitments.list":
62012
62013type RegionCommitmentsListCall struct {
62014	s            *Service
62015	project      string
62016	region       string
62017	urlParams_   gensupport.URLParams
62018	ifNoneMatch_ string
62019	ctx_         context.Context
62020	header_      http.Header
62021}
62022
62023// List: Retrieves a list of commitments contained within the specified
62024// region.
62025func (r *RegionCommitmentsService) List(project string, region string) *RegionCommitmentsListCall {
62026	c := &RegionCommitmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62027	c.project = project
62028	c.region = region
62029	return c
62030}
62031
62032// Filter sets the optional parameter "filter": A filter expression that
62033// filters resources listed in the response. The expression must specify
62034// the field name, a comparison operator, and the value that you want to
62035// use for filtering. The value must be a string, a number, or a
62036// boolean. The comparison operator must be either =, !=, >, or <.
62037//
62038// For example, if you are filtering Compute Engine instances, you can
62039// exclude instances named example-instance by specifying name !=
62040// example-instance.
62041//
62042// You can also filter nested fields. For example, you could specify
62043// scheduling.automaticRestart = false to include instances only if they
62044// are not scheduled for automatic restarts. You can use filtering on
62045// nested fields to filter based on resource labels.
62046//
62047// To filter on multiple expressions, provide each separate expression
62048// within parentheses. For example, (scheduling.automaticRestart = true)
62049// (cpuPlatform = "Intel Skylake"). By default, each expression is an
62050// AND expression. However, you can include AND and OR expressions
62051// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
62052// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
62053// true).
62054func (c *RegionCommitmentsListCall) Filter(filter string) *RegionCommitmentsListCall {
62055	c.urlParams_.Set("filter", filter)
62056	return c
62057}
62058
62059// MaxResults sets the optional parameter "maxResults": The maximum
62060// number of results per page that should be returned. If the number of
62061// available results is larger than maxResults, Compute Engine returns a
62062// nextPageToken that can be used to get the next page of results in
62063// subsequent list requests. Acceptable values are 0 to 500, inclusive.
62064// (Default: 500)
62065func (c *RegionCommitmentsListCall) MaxResults(maxResults int64) *RegionCommitmentsListCall {
62066	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
62067	return c
62068}
62069
62070// OrderBy sets the optional parameter "orderBy": Sorts list results by
62071// a certain order. By default, results are returned in alphanumerical
62072// order based on the resource name.
62073//
62074// You can also sort results in descending order based on the creation
62075// timestamp using orderBy="creationTimestamp desc". This sorts results
62076// based on the creationTimestamp field in reverse chronological order
62077// (newest result first). Use this to sort resources like operations so
62078// that the newest operation is returned first.
62079//
62080// Currently, only sorting by name or creationTimestamp desc is
62081// supported.
62082func (c *RegionCommitmentsListCall) OrderBy(orderBy string) *RegionCommitmentsListCall {
62083	c.urlParams_.Set("orderBy", orderBy)
62084	return c
62085}
62086
62087// PageToken sets the optional parameter "pageToken": Specifies a page
62088// token to use. Set pageToken to the nextPageToken returned by a
62089// previous list request to get the next page of results.
62090func (c *RegionCommitmentsListCall) PageToken(pageToken string) *RegionCommitmentsListCall {
62091	c.urlParams_.Set("pageToken", pageToken)
62092	return c
62093}
62094
62095// Fields allows partial responses to be retrieved. See
62096// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62097// for more information.
62098func (c *RegionCommitmentsListCall) Fields(s ...googleapi.Field) *RegionCommitmentsListCall {
62099	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62100	return c
62101}
62102
62103// IfNoneMatch sets the optional parameter which makes the operation
62104// fail if the object's ETag matches the given value. This is useful for
62105// getting updates only after the object has changed since the last
62106// request. Use googleapi.IsNotModified to check whether the response
62107// error from Do is the result of In-None-Match.
62108func (c *RegionCommitmentsListCall) IfNoneMatch(entityTag string) *RegionCommitmentsListCall {
62109	c.ifNoneMatch_ = entityTag
62110	return c
62111}
62112
62113// Context sets the context to be used in this call's Do method. Any
62114// pending HTTP request will be aborted if the provided context is
62115// canceled.
62116func (c *RegionCommitmentsListCall) Context(ctx context.Context) *RegionCommitmentsListCall {
62117	c.ctx_ = ctx
62118	return c
62119}
62120
62121// Header returns an http.Header that can be modified by the caller to
62122// add HTTP headers to the request.
62123func (c *RegionCommitmentsListCall) Header() http.Header {
62124	if c.header_ == nil {
62125		c.header_ = make(http.Header)
62126	}
62127	return c.header_
62128}
62129
62130func (c *RegionCommitmentsListCall) doRequest(alt string) (*http.Response, error) {
62131	reqHeaders := make(http.Header)
62132	for k, v := range c.header_ {
62133		reqHeaders[k] = v
62134	}
62135	reqHeaders.Set("User-Agent", c.s.userAgent())
62136	if c.ifNoneMatch_ != "" {
62137		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62138	}
62139	var body io.Reader = nil
62140	c.urlParams_.Set("alt", alt)
62141	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments")
62142	urls += "?" + c.urlParams_.Encode()
62143	req, _ := http.NewRequest("GET", urls, body)
62144	req.Header = reqHeaders
62145	googleapi.Expand(req.URL, map[string]string{
62146		"project": c.project,
62147		"region":  c.region,
62148	})
62149	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62150}
62151
62152// Do executes the "compute.regionCommitments.list" call.
62153// Exactly one of *CommitmentList or error will be non-nil. Any non-2xx
62154// status code is an error. Response headers are in either
62155// *CommitmentList.ServerResponse.Header or (if a response was returned
62156// at all) in error.(*googleapi.Error).Header. Use
62157// googleapi.IsNotModified to check whether the returned error was
62158// because http.StatusNotModified was returned.
62159func (c *RegionCommitmentsListCall) Do(opts ...googleapi.CallOption) (*CommitmentList, error) {
62160	gensupport.SetOptions(c.urlParams_, opts...)
62161	res, err := c.doRequest("json")
62162	if res != nil && res.StatusCode == http.StatusNotModified {
62163		if res.Body != nil {
62164			res.Body.Close()
62165		}
62166		return nil, &googleapi.Error{
62167			Code:   res.StatusCode,
62168			Header: res.Header,
62169		}
62170	}
62171	if err != nil {
62172		return nil, err
62173	}
62174	defer googleapi.CloseBody(res)
62175	if err := googleapi.CheckResponse(res); err != nil {
62176		return nil, err
62177	}
62178	ret := &CommitmentList{
62179		ServerResponse: googleapi.ServerResponse{
62180			Header:         res.Header,
62181			HTTPStatusCode: res.StatusCode,
62182		},
62183	}
62184	target := &ret
62185	if err := gensupport.DecodeResponse(target, res); err != nil {
62186		return nil, err
62187	}
62188	return ret, nil
62189	// {
62190	//   "description": "Retrieves a list of commitments contained within the specified region.",
62191	//   "httpMethod": "GET",
62192	//   "id": "compute.regionCommitments.list",
62193	//   "parameterOrder": [
62194	//     "project",
62195	//     "region"
62196	//   ],
62197	//   "parameters": {
62198	//     "filter": {
62199	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
62200	//       "location": "query",
62201	//       "type": "string"
62202	//     },
62203	//     "maxResults": {
62204	//       "default": "500",
62205	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
62206	//       "format": "uint32",
62207	//       "location": "query",
62208	//       "minimum": "0",
62209	//       "type": "integer"
62210	//     },
62211	//     "orderBy": {
62212	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
62213	//       "location": "query",
62214	//       "type": "string"
62215	//     },
62216	//     "pageToken": {
62217	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
62218	//       "location": "query",
62219	//       "type": "string"
62220	//     },
62221	//     "project": {
62222	//       "description": "Project ID for this request.",
62223	//       "location": "path",
62224	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62225	//       "required": true,
62226	//       "type": "string"
62227	//     },
62228	//     "region": {
62229	//       "description": "Name of the region for this request.",
62230	//       "location": "path",
62231	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62232	//       "required": true,
62233	//       "type": "string"
62234	//     }
62235	//   },
62236	//   "path": "{project}/regions/{region}/commitments",
62237	//   "response": {
62238	//     "$ref": "CommitmentList"
62239	//   },
62240	//   "scopes": [
62241	//     "https://www.googleapis.com/auth/cloud-platform",
62242	//     "https://www.googleapis.com/auth/compute",
62243	//     "https://www.googleapis.com/auth/compute.readonly"
62244	//   ]
62245	// }
62246
62247}
62248
62249// Pages invokes f for each page of results.
62250// A non-nil error returned from f will halt the iteration.
62251// The provided context supersedes any context provided to the Context method.
62252func (c *RegionCommitmentsListCall) Pages(ctx context.Context, f func(*CommitmentList) error) error {
62253	c.ctx_ = ctx
62254	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
62255	for {
62256		x, err := c.Do()
62257		if err != nil {
62258			return err
62259		}
62260		if err := f(x); err != nil {
62261			return err
62262		}
62263		if x.NextPageToken == "" {
62264			return nil
62265		}
62266		c.PageToken(x.NextPageToken)
62267	}
62268}
62269
62270// method id "compute.regionInstanceGroupManagers.abandonInstances":
62271
62272type RegionInstanceGroupManagersAbandonInstancesCall struct {
62273	s                                                  *Service
62274	project                                            string
62275	region                                             string
62276	instanceGroupManager                               string
62277	regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest
62278	urlParams_                                         gensupport.URLParams
62279	ctx_                                               context.Context
62280	header_                                            http.Header
62281}
62282
62283// AbandonInstances: Schedules a group action to remove the specified
62284// instances from the managed instance group. Abandoning an instance
62285// does not delete the instance, but it does remove the instance from
62286// any target pools that are applied by the managed instance group. This
62287// method reduces the targetSize of the managed instance group by the
62288// number of instances that you abandon. This operation is marked as
62289// DONE when the action is scheduled even if the instances have not yet
62290// been removed from the group. You must separately verify the status of
62291// the abandoning action with the listmanagedinstances method.
62292//
62293// If the group is part of a backend service that has enabled connection
62294// draining, it can take up to 60 seconds after the connection draining
62295// duration has elapsed before the VM instance is removed or
62296// deleted.
62297//
62298// You can specify a maximum of 1000 instances with this method per
62299// request.
62300func (r *RegionInstanceGroupManagersService) AbandonInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest) *RegionInstanceGroupManagersAbandonInstancesCall {
62301	c := &RegionInstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62302	c.project = project
62303	c.region = region
62304	c.instanceGroupManager = instanceGroupManager
62305	c.regioninstancegroupmanagersabandoninstancesrequest = regioninstancegroupmanagersabandoninstancesrequest
62306	return c
62307}
62308
62309// RequestId sets the optional parameter "requestId": An optional
62310// request ID to identify requests. Specify a unique request ID so that
62311// if you must retry your request, the server will know to ignore the
62312// request if it has already been completed.
62313//
62314// For example, consider a situation where you make an initial request
62315// and the request times out. If you make the request again with the
62316// same request ID, the server can check if original operation with the
62317// same request ID was received, and if so, will ignore the second
62318// request. This prevents clients from accidentally creating duplicate
62319// commitments.
62320//
62321// The request ID must be a valid UUID with the exception that zero UUID
62322// is not supported (00000000-0000-0000-0000-000000000000).
62323func (c *RegionInstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersAbandonInstancesCall {
62324	c.urlParams_.Set("requestId", requestId)
62325	return c
62326}
62327
62328// Fields allows partial responses to be retrieved. See
62329// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62330// for more information.
62331func (c *RegionInstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersAbandonInstancesCall {
62332	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62333	return c
62334}
62335
62336// Context sets the context to be used in this call's Do method. Any
62337// pending HTTP request will be aborted if the provided context is
62338// canceled.
62339func (c *RegionInstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersAbandonInstancesCall {
62340	c.ctx_ = ctx
62341	return c
62342}
62343
62344// Header returns an http.Header that can be modified by the caller to
62345// add HTTP headers to the request.
62346func (c *RegionInstanceGroupManagersAbandonInstancesCall) Header() http.Header {
62347	if c.header_ == nil {
62348		c.header_ = make(http.Header)
62349	}
62350	return c.header_
62351}
62352
62353func (c *RegionInstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
62354	reqHeaders := make(http.Header)
62355	for k, v := range c.header_ {
62356		reqHeaders[k] = v
62357	}
62358	reqHeaders.Set("User-Agent", c.s.userAgent())
62359	var body io.Reader = nil
62360	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersabandoninstancesrequest)
62361	if err != nil {
62362		return nil, err
62363	}
62364	reqHeaders.Set("Content-Type", "application/json")
62365	c.urlParams_.Set("alt", alt)
62366	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
62367	urls += "?" + c.urlParams_.Encode()
62368	req, _ := http.NewRequest("POST", urls, body)
62369	req.Header = reqHeaders
62370	googleapi.Expand(req.URL, map[string]string{
62371		"project":              c.project,
62372		"region":               c.region,
62373		"instanceGroupManager": c.instanceGroupManager,
62374	})
62375	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62376}
62377
62378// Do executes the "compute.regionInstanceGroupManagers.abandonInstances" call.
62379// Exactly one of *Operation or error will be non-nil. Any non-2xx
62380// status code is an error. Response headers are in either
62381// *Operation.ServerResponse.Header or (if a response was returned at
62382// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62383// to check whether the returned error was because
62384// http.StatusNotModified was returned.
62385func (c *RegionInstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62386	gensupport.SetOptions(c.urlParams_, opts...)
62387	res, err := c.doRequest("json")
62388	if res != nil && res.StatusCode == http.StatusNotModified {
62389		if res.Body != nil {
62390			res.Body.Close()
62391		}
62392		return nil, &googleapi.Error{
62393			Code:   res.StatusCode,
62394			Header: res.Header,
62395		}
62396	}
62397	if err != nil {
62398		return nil, err
62399	}
62400	defer googleapi.CloseBody(res)
62401	if err := googleapi.CheckResponse(res); err != nil {
62402		return nil, err
62403	}
62404	ret := &Operation{
62405		ServerResponse: googleapi.ServerResponse{
62406			Header:         res.Header,
62407			HTTPStatusCode: res.StatusCode,
62408		},
62409	}
62410	target := &ret
62411	if err := gensupport.DecodeResponse(target, res); err != nil {
62412		return nil, err
62413	}
62414	return ret, nil
62415	// {
62416	//   "description": "Schedules a group action to remove the specified instances 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.",
62417	//   "httpMethod": "POST",
62418	//   "id": "compute.regionInstanceGroupManagers.abandonInstances",
62419	//   "parameterOrder": [
62420	//     "project",
62421	//     "region",
62422	//     "instanceGroupManager"
62423	//   ],
62424	//   "parameters": {
62425	//     "instanceGroupManager": {
62426	//       "description": "Name of the managed instance group.",
62427	//       "location": "path",
62428	//       "required": true,
62429	//       "type": "string"
62430	//     },
62431	//     "project": {
62432	//       "description": "Project ID for this request.",
62433	//       "location": "path",
62434	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62435	//       "required": true,
62436	//       "type": "string"
62437	//     },
62438	//     "region": {
62439	//       "description": "Name of the region scoping this request.",
62440	//       "location": "path",
62441	//       "required": true,
62442	//       "type": "string"
62443	//     },
62444	//     "requestId": {
62445	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62446	//       "location": "query",
62447	//       "type": "string"
62448	//     }
62449	//   },
62450	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
62451	//   "request": {
62452	//     "$ref": "RegionInstanceGroupManagersAbandonInstancesRequest"
62453	//   },
62454	//   "response": {
62455	//     "$ref": "Operation"
62456	//   },
62457	//   "scopes": [
62458	//     "https://www.googleapis.com/auth/cloud-platform",
62459	//     "https://www.googleapis.com/auth/compute"
62460	//   ]
62461	// }
62462
62463}
62464
62465// method id "compute.regionInstanceGroupManagers.delete":
62466
62467type RegionInstanceGroupManagersDeleteCall struct {
62468	s                    *Service
62469	project              string
62470	region               string
62471	instanceGroupManager string
62472	urlParams_           gensupport.URLParams
62473	ctx_                 context.Context
62474	header_              http.Header
62475}
62476
62477// Delete: Deletes the specified managed instance group and all of the
62478// instances in that group.
62479func (r *RegionInstanceGroupManagersService) Delete(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersDeleteCall {
62480	c := &RegionInstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62481	c.project = project
62482	c.region = region
62483	c.instanceGroupManager = instanceGroupManager
62484	return c
62485}
62486
62487// RequestId sets the optional parameter "requestId": An optional
62488// request ID to identify requests. Specify a unique request ID so that
62489// if you must retry your request, the server will know to ignore the
62490// request if it has already been completed.
62491//
62492// For example, consider a situation where you make an initial request
62493// and the request times out. If you make the request again with the
62494// same request ID, the server can check if original operation with the
62495// same request ID was received, and if so, will ignore the second
62496// request. This prevents clients from accidentally creating duplicate
62497// commitments.
62498//
62499// The request ID must be a valid UUID with the exception that zero UUID
62500// is not supported (00000000-0000-0000-0000-000000000000).
62501func (c *RegionInstanceGroupManagersDeleteCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteCall {
62502	c.urlParams_.Set("requestId", requestId)
62503	return c
62504}
62505
62506// Fields allows partial responses to be retrieved. See
62507// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62508// for more information.
62509func (c *RegionInstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteCall {
62510	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62511	return c
62512}
62513
62514// Context sets the context to be used in this call's Do method. Any
62515// pending HTTP request will be aborted if the provided context is
62516// canceled.
62517func (c *RegionInstanceGroupManagersDeleteCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteCall {
62518	c.ctx_ = ctx
62519	return c
62520}
62521
62522// Header returns an http.Header that can be modified by the caller to
62523// add HTTP headers to the request.
62524func (c *RegionInstanceGroupManagersDeleteCall) Header() http.Header {
62525	if c.header_ == nil {
62526		c.header_ = make(http.Header)
62527	}
62528	return c.header_
62529}
62530
62531func (c *RegionInstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
62532	reqHeaders := make(http.Header)
62533	for k, v := range c.header_ {
62534		reqHeaders[k] = v
62535	}
62536	reqHeaders.Set("User-Agent", c.s.userAgent())
62537	var body io.Reader = nil
62538	c.urlParams_.Set("alt", alt)
62539	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
62540	urls += "?" + c.urlParams_.Encode()
62541	req, _ := http.NewRequest("DELETE", urls, body)
62542	req.Header = reqHeaders
62543	googleapi.Expand(req.URL, map[string]string{
62544		"project":              c.project,
62545		"region":               c.region,
62546		"instanceGroupManager": c.instanceGroupManager,
62547	})
62548	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62549}
62550
62551// Do executes the "compute.regionInstanceGroupManagers.delete" call.
62552// Exactly one of *Operation or error will be non-nil. Any non-2xx
62553// status code is an error. Response headers are in either
62554// *Operation.ServerResponse.Header or (if a response was returned at
62555// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62556// to check whether the returned error was because
62557// http.StatusNotModified was returned.
62558func (c *RegionInstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62559	gensupport.SetOptions(c.urlParams_, opts...)
62560	res, err := c.doRequest("json")
62561	if res != nil && res.StatusCode == http.StatusNotModified {
62562		if res.Body != nil {
62563			res.Body.Close()
62564		}
62565		return nil, &googleapi.Error{
62566			Code:   res.StatusCode,
62567			Header: res.Header,
62568		}
62569	}
62570	if err != nil {
62571		return nil, err
62572	}
62573	defer googleapi.CloseBody(res)
62574	if err := googleapi.CheckResponse(res); err != nil {
62575		return nil, err
62576	}
62577	ret := &Operation{
62578		ServerResponse: googleapi.ServerResponse{
62579			Header:         res.Header,
62580			HTTPStatusCode: res.StatusCode,
62581		},
62582	}
62583	target := &ret
62584	if err := gensupport.DecodeResponse(target, res); err != nil {
62585		return nil, err
62586	}
62587	return ret, nil
62588	// {
62589	//   "description": "Deletes the specified managed instance group and all of the instances in that group.",
62590	//   "httpMethod": "DELETE",
62591	//   "id": "compute.regionInstanceGroupManagers.delete",
62592	//   "parameterOrder": [
62593	//     "project",
62594	//     "region",
62595	//     "instanceGroupManager"
62596	//   ],
62597	//   "parameters": {
62598	//     "instanceGroupManager": {
62599	//       "description": "Name of the managed instance group to delete.",
62600	//       "location": "path",
62601	//       "required": true,
62602	//       "type": "string"
62603	//     },
62604	//     "project": {
62605	//       "description": "Project ID for this request.",
62606	//       "location": "path",
62607	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62608	//       "required": true,
62609	//       "type": "string"
62610	//     },
62611	//     "region": {
62612	//       "description": "Name of the region scoping this request.",
62613	//       "location": "path",
62614	//       "required": true,
62615	//       "type": "string"
62616	//     },
62617	//     "requestId": {
62618	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62619	//       "location": "query",
62620	//       "type": "string"
62621	//     }
62622	//   },
62623	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
62624	//   "response": {
62625	//     "$ref": "Operation"
62626	//   },
62627	//   "scopes": [
62628	//     "https://www.googleapis.com/auth/cloud-platform",
62629	//     "https://www.googleapis.com/auth/compute"
62630	//   ]
62631	// }
62632
62633}
62634
62635// method id "compute.regionInstanceGroupManagers.deleteInstances":
62636
62637type RegionInstanceGroupManagersDeleteInstancesCall struct {
62638	s                                                 *Service
62639	project                                           string
62640	region                                            string
62641	instanceGroupManager                              string
62642	regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest
62643	urlParams_                                        gensupport.URLParams
62644	ctx_                                              context.Context
62645	header_                                           http.Header
62646}
62647
62648// DeleteInstances: Schedules a group action to delete the specified
62649// instances in the managed instance group. The instances are also
62650// removed from any target pools of which they were a member. This
62651// method reduces the targetSize of the managed instance group by the
62652// number of instances that you delete. This operation is marked as DONE
62653// when the action is scheduled even if the instances are still being
62654// deleted. You must separately verify the status of the deleting action
62655// with the listmanagedinstances method.
62656//
62657// If the group is part of a backend service that has enabled connection
62658// draining, it can take up to 60 seconds after the connection draining
62659// duration has elapsed before the VM instance is removed or
62660// deleted.
62661//
62662// You can specify a maximum of 1000 instances with this method per
62663// request.
62664func (r *RegionInstanceGroupManagersService) DeleteInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest) *RegionInstanceGroupManagersDeleteInstancesCall {
62665	c := &RegionInstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62666	c.project = project
62667	c.region = region
62668	c.instanceGroupManager = instanceGroupManager
62669	c.regioninstancegroupmanagersdeleteinstancesrequest = regioninstancegroupmanagersdeleteinstancesrequest
62670	return c
62671}
62672
62673// RequestId sets the optional parameter "requestId": An optional
62674// request ID to identify requests. Specify a unique request ID so that
62675// if you must retry your request, the server will know to ignore the
62676// request if it has already been completed.
62677//
62678// For example, consider a situation where you make an initial request
62679// and the request times out. If you make the request again with the
62680// same request ID, the server can check if original operation with the
62681// same request ID was received, and if so, will ignore the second
62682// request. This prevents clients from accidentally creating duplicate
62683// commitments.
62684//
62685// The request ID must be a valid UUID with the exception that zero UUID
62686// is not supported (00000000-0000-0000-0000-000000000000).
62687func (c *RegionInstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteInstancesCall {
62688	c.urlParams_.Set("requestId", requestId)
62689	return c
62690}
62691
62692// Fields allows partial responses to be retrieved. See
62693// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62694// for more information.
62695func (c *RegionInstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteInstancesCall {
62696	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62697	return c
62698}
62699
62700// Context sets the context to be used in this call's Do method. Any
62701// pending HTTP request will be aborted if the provided context is
62702// canceled.
62703func (c *RegionInstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteInstancesCall {
62704	c.ctx_ = ctx
62705	return c
62706}
62707
62708// Header returns an http.Header that can be modified by the caller to
62709// add HTTP headers to the request.
62710func (c *RegionInstanceGroupManagersDeleteInstancesCall) Header() http.Header {
62711	if c.header_ == nil {
62712		c.header_ = make(http.Header)
62713	}
62714	return c.header_
62715}
62716
62717func (c *RegionInstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
62718	reqHeaders := make(http.Header)
62719	for k, v := range c.header_ {
62720		reqHeaders[k] = v
62721	}
62722	reqHeaders.Set("User-Agent", c.s.userAgent())
62723	var body io.Reader = nil
62724	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersdeleteinstancesrequest)
62725	if err != nil {
62726		return nil, err
62727	}
62728	reqHeaders.Set("Content-Type", "application/json")
62729	c.urlParams_.Set("alt", alt)
62730	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
62731	urls += "?" + c.urlParams_.Encode()
62732	req, _ := http.NewRequest("POST", urls, body)
62733	req.Header = reqHeaders
62734	googleapi.Expand(req.URL, map[string]string{
62735		"project":              c.project,
62736		"region":               c.region,
62737		"instanceGroupManager": c.instanceGroupManager,
62738	})
62739	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62740}
62741
62742// Do executes the "compute.regionInstanceGroupManagers.deleteInstances" call.
62743// Exactly one of *Operation or error will be non-nil. Any non-2xx
62744// status code is an error. Response headers are in either
62745// *Operation.ServerResponse.Header or (if a response was returned at
62746// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62747// to check whether the returned error was because
62748// http.StatusNotModified was returned.
62749func (c *RegionInstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62750	gensupport.SetOptions(c.urlParams_, opts...)
62751	res, err := c.doRequest("json")
62752	if res != nil && res.StatusCode == http.StatusNotModified {
62753		if res.Body != nil {
62754			res.Body.Close()
62755		}
62756		return nil, &googleapi.Error{
62757			Code:   res.StatusCode,
62758			Header: res.Header,
62759		}
62760	}
62761	if err != nil {
62762		return nil, err
62763	}
62764	defer googleapi.CloseBody(res)
62765	if err := googleapi.CheckResponse(res); err != nil {
62766		return nil, err
62767	}
62768	ret := &Operation{
62769		ServerResponse: googleapi.ServerResponse{
62770			Header:         res.Header,
62771			HTTPStatusCode: res.StatusCode,
62772		},
62773	}
62774	target := &ret
62775	if err := gensupport.DecodeResponse(target, res); err != nil {
62776		return nil, err
62777	}
62778	return ret, nil
62779	// {
62780	//   "description": "Schedules a group action to delete the specified instances in the managed instance group. 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.",
62781	//   "httpMethod": "POST",
62782	//   "id": "compute.regionInstanceGroupManagers.deleteInstances",
62783	//   "parameterOrder": [
62784	//     "project",
62785	//     "region",
62786	//     "instanceGroupManager"
62787	//   ],
62788	//   "parameters": {
62789	//     "instanceGroupManager": {
62790	//       "description": "Name of the managed instance group.",
62791	//       "location": "path",
62792	//       "required": true,
62793	//       "type": "string"
62794	//     },
62795	//     "project": {
62796	//       "description": "Project ID for this request.",
62797	//       "location": "path",
62798	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62799	//       "required": true,
62800	//       "type": "string"
62801	//     },
62802	//     "region": {
62803	//       "description": "Name of the region scoping this request.",
62804	//       "location": "path",
62805	//       "required": true,
62806	//       "type": "string"
62807	//     },
62808	//     "requestId": {
62809	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62810	//       "location": "query",
62811	//       "type": "string"
62812	//     }
62813	//   },
62814	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
62815	//   "request": {
62816	//     "$ref": "RegionInstanceGroupManagersDeleteInstancesRequest"
62817	//   },
62818	//   "response": {
62819	//     "$ref": "Operation"
62820	//   },
62821	//   "scopes": [
62822	//     "https://www.googleapis.com/auth/cloud-platform",
62823	//     "https://www.googleapis.com/auth/compute"
62824	//   ]
62825	// }
62826
62827}
62828
62829// method id "compute.regionInstanceGroupManagers.get":
62830
62831type RegionInstanceGroupManagersGetCall struct {
62832	s                    *Service
62833	project              string
62834	region               string
62835	instanceGroupManager string
62836	urlParams_           gensupport.URLParams
62837	ifNoneMatch_         string
62838	ctx_                 context.Context
62839	header_              http.Header
62840}
62841
62842// Get: Returns all of the details about the specified managed instance
62843// group.
62844func (r *RegionInstanceGroupManagersService) Get(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersGetCall {
62845	c := &RegionInstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62846	c.project = project
62847	c.region = region
62848	c.instanceGroupManager = instanceGroupManager
62849	return c
62850}
62851
62852// Fields allows partial responses to be retrieved. See
62853// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62854// for more information.
62855func (c *RegionInstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersGetCall {
62856	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62857	return c
62858}
62859
62860// IfNoneMatch sets the optional parameter which makes the operation
62861// fail if the object's ETag matches the given value. This is useful for
62862// getting updates only after the object has changed since the last
62863// request. Use googleapi.IsNotModified to check whether the response
62864// error from Do is the result of In-None-Match.
62865func (c *RegionInstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersGetCall {
62866	c.ifNoneMatch_ = entityTag
62867	return c
62868}
62869
62870// Context sets the context to be used in this call's Do method. Any
62871// pending HTTP request will be aborted if the provided context is
62872// canceled.
62873func (c *RegionInstanceGroupManagersGetCall) Context(ctx context.Context) *RegionInstanceGroupManagersGetCall {
62874	c.ctx_ = ctx
62875	return c
62876}
62877
62878// Header returns an http.Header that can be modified by the caller to
62879// add HTTP headers to the request.
62880func (c *RegionInstanceGroupManagersGetCall) Header() http.Header {
62881	if c.header_ == nil {
62882		c.header_ = make(http.Header)
62883	}
62884	return c.header_
62885}
62886
62887func (c *RegionInstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
62888	reqHeaders := make(http.Header)
62889	for k, v := range c.header_ {
62890		reqHeaders[k] = v
62891	}
62892	reqHeaders.Set("User-Agent", c.s.userAgent())
62893	if c.ifNoneMatch_ != "" {
62894		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62895	}
62896	var body io.Reader = nil
62897	c.urlParams_.Set("alt", alt)
62898	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
62899	urls += "?" + c.urlParams_.Encode()
62900	req, _ := http.NewRequest("GET", urls, body)
62901	req.Header = reqHeaders
62902	googleapi.Expand(req.URL, map[string]string{
62903		"project":              c.project,
62904		"region":               c.region,
62905		"instanceGroupManager": c.instanceGroupManager,
62906	})
62907	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62908}
62909
62910// Do executes the "compute.regionInstanceGroupManagers.get" call.
62911// Exactly one of *InstanceGroupManager or error will be non-nil. Any
62912// non-2xx status code is an error. Response headers are in either
62913// *InstanceGroupManager.ServerResponse.Header or (if a response was
62914// returned at all) in error.(*googleapi.Error).Header. Use
62915// googleapi.IsNotModified to check whether the returned error was
62916// because http.StatusNotModified was returned.
62917func (c *RegionInstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
62918	gensupport.SetOptions(c.urlParams_, opts...)
62919	res, err := c.doRequest("json")
62920	if res != nil && res.StatusCode == http.StatusNotModified {
62921		if res.Body != nil {
62922			res.Body.Close()
62923		}
62924		return nil, &googleapi.Error{
62925			Code:   res.StatusCode,
62926			Header: res.Header,
62927		}
62928	}
62929	if err != nil {
62930		return nil, err
62931	}
62932	defer googleapi.CloseBody(res)
62933	if err := googleapi.CheckResponse(res); err != nil {
62934		return nil, err
62935	}
62936	ret := &InstanceGroupManager{
62937		ServerResponse: googleapi.ServerResponse{
62938			Header:         res.Header,
62939			HTTPStatusCode: res.StatusCode,
62940		},
62941	}
62942	target := &ret
62943	if err := gensupport.DecodeResponse(target, res); err != nil {
62944		return nil, err
62945	}
62946	return ret, nil
62947	// {
62948	//   "description": "Returns all of the details about the specified managed instance group.",
62949	//   "httpMethod": "GET",
62950	//   "id": "compute.regionInstanceGroupManagers.get",
62951	//   "parameterOrder": [
62952	//     "project",
62953	//     "region",
62954	//     "instanceGroupManager"
62955	//   ],
62956	//   "parameters": {
62957	//     "instanceGroupManager": {
62958	//       "description": "Name of the managed instance group to return.",
62959	//       "location": "path",
62960	//       "required": true,
62961	//       "type": "string"
62962	//     },
62963	//     "project": {
62964	//       "description": "Project ID for this request.",
62965	//       "location": "path",
62966	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62967	//       "required": true,
62968	//       "type": "string"
62969	//     },
62970	//     "region": {
62971	//       "description": "Name of the region scoping this request.",
62972	//       "location": "path",
62973	//       "required": true,
62974	//       "type": "string"
62975	//     }
62976	//   },
62977	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
62978	//   "response": {
62979	//     "$ref": "InstanceGroupManager"
62980	//   },
62981	//   "scopes": [
62982	//     "https://www.googleapis.com/auth/cloud-platform",
62983	//     "https://www.googleapis.com/auth/compute",
62984	//     "https://www.googleapis.com/auth/compute.readonly"
62985	//   ]
62986	// }
62987
62988}
62989
62990// method id "compute.regionInstanceGroupManagers.insert":
62991
62992type RegionInstanceGroupManagersInsertCall struct {
62993	s                    *Service
62994	project              string
62995	region               string
62996	instancegroupmanager *InstanceGroupManager
62997	urlParams_           gensupport.URLParams
62998	ctx_                 context.Context
62999	header_              http.Header
63000}
63001
63002// Insert: Creates a managed instance group using the information that
63003// you specify in the request. After the group is created, it schedules
63004// an action to create instances in the group using the specified
63005// instance template. This operation is marked as DONE when the group is
63006// created even if the instances in the group have not yet been created.
63007// You must separately verify the status of the individual instances
63008// with the listmanagedinstances method.
63009//
63010// A regional managed instance group can contain up to 2000 instances.
63011func (r *RegionInstanceGroupManagersService) Insert(project string, region string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersInsertCall {
63012	c := &RegionInstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63013	c.project = project
63014	c.region = region
63015	c.instancegroupmanager = instancegroupmanager
63016	return c
63017}
63018
63019// RequestId sets the optional parameter "requestId": An optional
63020// request ID to identify requests. Specify a unique request ID so that
63021// if you must retry your request, the server will know to ignore the
63022// request if it has already been completed.
63023//
63024// For example, consider a situation where you make an initial request
63025// and the request times out. If you make the request again with the
63026// same request ID, the server can check if original operation with the
63027// same request ID was received, and if so, will ignore the second
63028// request. This prevents clients from accidentally creating duplicate
63029// commitments.
63030//
63031// The request ID must be a valid UUID with the exception that zero UUID
63032// is not supported (00000000-0000-0000-0000-000000000000).
63033func (c *RegionInstanceGroupManagersInsertCall) RequestId(requestId string) *RegionInstanceGroupManagersInsertCall {
63034	c.urlParams_.Set("requestId", requestId)
63035	return c
63036}
63037
63038// Fields allows partial responses to be retrieved. See
63039// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63040// for more information.
63041func (c *RegionInstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersInsertCall {
63042	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63043	return c
63044}
63045
63046// Context sets the context to be used in this call's Do method. Any
63047// pending HTTP request will be aborted if the provided context is
63048// canceled.
63049func (c *RegionInstanceGroupManagersInsertCall) Context(ctx context.Context) *RegionInstanceGroupManagersInsertCall {
63050	c.ctx_ = ctx
63051	return c
63052}
63053
63054// Header returns an http.Header that can be modified by the caller to
63055// add HTTP headers to the request.
63056func (c *RegionInstanceGroupManagersInsertCall) Header() http.Header {
63057	if c.header_ == nil {
63058		c.header_ = make(http.Header)
63059	}
63060	return c.header_
63061}
63062
63063func (c *RegionInstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
63064	reqHeaders := make(http.Header)
63065	for k, v := range c.header_ {
63066		reqHeaders[k] = v
63067	}
63068	reqHeaders.Set("User-Agent", c.s.userAgent())
63069	var body io.Reader = nil
63070	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
63071	if err != nil {
63072		return nil, err
63073	}
63074	reqHeaders.Set("Content-Type", "application/json")
63075	c.urlParams_.Set("alt", alt)
63076	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers")
63077	urls += "?" + c.urlParams_.Encode()
63078	req, _ := http.NewRequest("POST", urls, body)
63079	req.Header = reqHeaders
63080	googleapi.Expand(req.URL, map[string]string{
63081		"project": c.project,
63082		"region":  c.region,
63083	})
63084	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63085}
63086
63087// Do executes the "compute.regionInstanceGroupManagers.insert" call.
63088// Exactly one of *Operation or error will be non-nil. Any non-2xx
63089// status code is an error. Response headers are in either
63090// *Operation.ServerResponse.Header or (if a response was returned at
63091// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63092// to check whether the returned error was because
63093// http.StatusNotModified was returned.
63094func (c *RegionInstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63095	gensupport.SetOptions(c.urlParams_, opts...)
63096	res, err := c.doRequest("json")
63097	if res != nil && res.StatusCode == http.StatusNotModified {
63098		if res.Body != nil {
63099			res.Body.Close()
63100		}
63101		return nil, &googleapi.Error{
63102			Code:   res.StatusCode,
63103			Header: res.Header,
63104		}
63105	}
63106	if err != nil {
63107		return nil, err
63108	}
63109	defer googleapi.CloseBody(res)
63110	if err := googleapi.CheckResponse(res); err != nil {
63111		return nil, err
63112	}
63113	ret := &Operation{
63114		ServerResponse: googleapi.ServerResponse{
63115			Header:         res.Header,
63116			HTTPStatusCode: res.StatusCode,
63117		},
63118	}
63119	target := &ret
63120	if err := gensupport.DecodeResponse(target, res); err != nil {
63121		return nil, err
63122	}
63123	return ret, nil
63124	// {
63125	//   "description": "Creates a managed instance group using the information that you specify in the request. After the group is created, it schedules an action to create instances in the group 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.",
63126	//   "httpMethod": "POST",
63127	//   "id": "compute.regionInstanceGroupManagers.insert",
63128	//   "parameterOrder": [
63129	//     "project",
63130	//     "region"
63131	//   ],
63132	//   "parameters": {
63133	//     "project": {
63134	//       "description": "Project ID for this request.",
63135	//       "location": "path",
63136	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63137	//       "required": true,
63138	//       "type": "string"
63139	//     },
63140	//     "region": {
63141	//       "description": "Name of the region scoping this request.",
63142	//       "location": "path",
63143	//       "required": true,
63144	//       "type": "string"
63145	//     },
63146	//     "requestId": {
63147	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63148	//       "location": "query",
63149	//       "type": "string"
63150	//     }
63151	//   },
63152	//   "path": "{project}/regions/{region}/instanceGroupManagers",
63153	//   "request": {
63154	//     "$ref": "InstanceGroupManager"
63155	//   },
63156	//   "response": {
63157	//     "$ref": "Operation"
63158	//   },
63159	//   "scopes": [
63160	//     "https://www.googleapis.com/auth/cloud-platform",
63161	//     "https://www.googleapis.com/auth/compute"
63162	//   ]
63163	// }
63164
63165}
63166
63167// method id "compute.regionInstanceGroupManagers.list":
63168
63169type RegionInstanceGroupManagersListCall struct {
63170	s            *Service
63171	project      string
63172	region       string
63173	urlParams_   gensupport.URLParams
63174	ifNoneMatch_ string
63175	ctx_         context.Context
63176	header_      http.Header
63177}
63178
63179// List: Retrieves the list of managed instance groups that are
63180// contained within the specified region.
63181func (r *RegionInstanceGroupManagersService) List(project string, region string) *RegionInstanceGroupManagersListCall {
63182	c := &RegionInstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63183	c.project = project
63184	c.region = region
63185	return c
63186}
63187
63188// Filter sets the optional parameter "filter": A filter expression that
63189// filters resources listed in the response. The expression must specify
63190// the field name, a comparison operator, and the value that you want to
63191// use for filtering. The value must be a string, a number, or a
63192// boolean. The comparison operator must be either =, !=, >, or <.
63193//
63194// For example, if you are filtering Compute Engine instances, you can
63195// exclude instances named example-instance by specifying name !=
63196// example-instance.
63197//
63198// You can also filter nested fields. For example, you could specify
63199// scheduling.automaticRestart = false to include instances only if they
63200// are not scheduled for automatic restarts. You can use filtering on
63201// nested fields to filter based on resource labels.
63202//
63203// To filter on multiple expressions, provide each separate expression
63204// within parentheses. For example, (scheduling.automaticRestart = true)
63205// (cpuPlatform = "Intel Skylake"). By default, each expression is an
63206// AND expression. However, you can include AND and OR expressions
63207// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
63208// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
63209// true).
63210func (c *RegionInstanceGroupManagersListCall) Filter(filter string) *RegionInstanceGroupManagersListCall {
63211	c.urlParams_.Set("filter", filter)
63212	return c
63213}
63214
63215// MaxResults sets the optional parameter "maxResults": The maximum
63216// number of results per page that should be returned. If the number of
63217// available results is larger than maxResults, Compute Engine returns a
63218// nextPageToken that can be used to get the next page of results in
63219// subsequent list requests. Acceptable values are 0 to 500, inclusive.
63220// (Default: 500)
63221func (c *RegionInstanceGroupManagersListCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListCall {
63222	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
63223	return c
63224}
63225
63226// OrderBy sets the optional parameter "orderBy": Sorts list results by
63227// a certain order. By default, results are returned in alphanumerical
63228// order based on the resource name.
63229//
63230// You can also sort results in descending order based on the creation
63231// timestamp using orderBy="creationTimestamp desc". This sorts results
63232// based on the creationTimestamp field in reverse chronological order
63233// (newest result first). Use this to sort resources like operations so
63234// that the newest operation is returned first.
63235//
63236// Currently, only sorting by name or creationTimestamp desc is
63237// supported.
63238func (c *RegionInstanceGroupManagersListCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListCall {
63239	c.urlParams_.Set("orderBy", orderBy)
63240	return c
63241}
63242
63243// PageToken sets the optional parameter "pageToken": Specifies a page
63244// token to use. Set pageToken to the nextPageToken returned by a
63245// previous list request to get the next page of results.
63246func (c *RegionInstanceGroupManagersListCall) PageToken(pageToken string) *RegionInstanceGroupManagersListCall {
63247	c.urlParams_.Set("pageToken", pageToken)
63248	return c
63249}
63250
63251// Fields allows partial responses to be retrieved. See
63252// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63253// for more information.
63254func (c *RegionInstanceGroupManagersListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListCall {
63255	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63256	return c
63257}
63258
63259// IfNoneMatch sets the optional parameter which makes the operation
63260// fail if the object's ETag matches the given value. This is useful for
63261// getting updates only after the object has changed since the last
63262// request. Use googleapi.IsNotModified to check whether the response
63263// error from Do is the result of In-None-Match.
63264func (c *RegionInstanceGroupManagersListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListCall {
63265	c.ifNoneMatch_ = entityTag
63266	return c
63267}
63268
63269// Context sets the context to be used in this call's Do method. Any
63270// pending HTTP request will be aborted if the provided context is
63271// canceled.
63272func (c *RegionInstanceGroupManagersListCall) Context(ctx context.Context) *RegionInstanceGroupManagersListCall {
63273	c.ctx_ = ctx
63274	return c
63275}
63276
63277// Header returns an http.Header that can be modified by the caller to
63278// add HTTP headers to the request.
63279func (c *RegionInstanceGroupManagersListCall) Header() http.Header {
63280	if c.header_ == nil {
63281		c.header_ = make(http.Header)
63282	}
63283	return c.header_
63284}
63285
63286func (c *RegionInstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
63287	reqHeaders := make(http.Header)
63288	for k, v := range c.header_ {
63289		reqHeaders[k] = v
63290	}
63291	reqHeaders.Set("User-Agent", c.s.userAgent())
63292	if c.ifNoneMatch_ != "" {
63293		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63294	}
63295	var body io.Reader = nil
63296	c.urlParams_.Set("alt", alt)
63297	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers")
63298	urls += "?" + c.urlParams_.Encode()
63299	req, _ := http.NewRequest("GET", urls, body)
63300	req.Header = reqHeaders
63301	googleapi.Expand(req.URL, map[string]string{
63302		"project": c.project,
63303		"region":  c.region,
63304	})
63305	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63306}
63307
63308// Do executes the "compute.regionInstanceGroupManagers.list" call.
63309// Exactly one of *RegionInstanceGroupManagerList or error will be
63310// non-nil. Any non-2xx status code is an error. Response headers are in
63311// either *RegionInstanceGroupManagerList.ServerResponse.Header or (if a
63312// response was returned at all) in error.(*googleapi.Error).Header. Use
63313// googleapi.IsNotModified to check whether the returned error was
63314// because http.StatusNotModified was returned.
63315func (c *RegionInstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagerList, error) {
63316	gensupport.SetOptions(c.urlParams_, opts...)
63317	res, err := c.doRequest("json")
63318	if res != nil && res.StatusCode == http.StatusNotModified {
63319		if res.Body != nil {
63320			res.Body.Close()
63321		}
63322		return nil, &googleapi.Error{
63323			Code:   res.StatusCode,
63324			Header: res.Header,
63325		}
63326	}
63327	if err != nil {
63328		return nil, err
63329	}
63330	defer googleapi.CloseBody(res)
63331	if err := googleapi.CheckResponse(res); err != nil {
63332		return nil, err
63333	}
63334	ret := &RegionInstanceGroupManagerList{
63335		ServerResponse: googleapi.ServerResponse{
63336			Header:         res.Header,
63337			HTTPStatusCode: res.StatusCode,
63338		},
63339	}
63340	target := &ret
63341	if err := gensupport.DecodeResponse(target, res); err != nil {
63342		return nil, err
63343	}
63344	return ret, nil
63345	// {
63346	//   "description": "Retrieves the list of managed instance groups that are contained within the specified region.",
63347	//   "httpMethod": "GET",
63348	//   "id": "compute.regionInstanceGroupManagers.list",
63349	//   "parameterOrder": [
63350	//     "project",
63351	//     "region"
63352	//   ],
63353	//   "parameters": {
63354	//     "filter": {
63355	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
63356	//       "location": "query",
63357	//       "type": "string"
63358	//     },
63359	//     "maxResults": {
63360	//       "default": "500",
63361	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
63362	//       "format": "uint32",
63363	//       "location": "query",
63364	//       "minimum": "0",
63365	//       "type": "integer"
63366	//     },
63367	//     "orderBy": {
63368	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
63369	//       "location": "query",
63370	//       "type": "string"
63371	//     },
63372	//     "pageToken": {
63373	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
63374	//       "location": "query",
63375	//       "type": "string"
63376	//     },
63377	//     "project": {
63378	//       "description": "Project ID for this request.",
63379	//       "location": "path",
63380	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63381	//       "required": true,
63382	//       "type": "string"
63383	//     },
63384	//     "region": {
63385	//       "description": "Name of the region scoping this request.",
63386	//       "location": "path",
63387	//       "required": true,
63388	//       "type": "string"
63389	//     }
63390	//   },
63391	//   "path": "{project}/regions/{region}/instanceGroupManagers",
63392	//   "response": {
63393	//     "$ref": "RegionInstanceGroupManagerList"
63394	//   },
63395	//   "scopes": [
63396	//     "https://www.googleapis.com/auth/cloud-platform",
63397	//     "https://www.googleapis.com/auth/compute",
63398	//     "https://www.googleapis.com/auth/compute.readonly"
63399	//   ]
63400	// }
63401
63402}
63403
63404// Pages invokes f for each page of results.
63405// A non-nil error returned from f will halt the iteration.
63406// The provided context supersedes any context provided to the Context method.
63407func (c *RegionInstanceGroupManagersListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagerList) error) error {
63408	c.ctx_ = ctx
63409	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
63410	for {
63411		x, err := c.Do()
63412		if err != nil {
63413			return err
63414		}
63415		if err := f(x); err != nil {
63416			return err
63417		}
63418		if x.NextPageToken == "" {
63419			return nil
63420		}
63421		c.PageToken(x.NextPageToken)
63422	}
63423}
63424
63425// method id "compute.regionInstanceGroupManagers.listManagedInstances":
63426
63427type RegionInstanceGroupManagersListManagedInstancesCall struct {
63428	s                    *Service
63429	project              string
63430	region               string
63431	instanceGroupManager string
63432	urlParams_           gensupport.URLParams
63433	ctx_                 context.Context
63434	header_              http.Header
63435}
63436
63437// ListManagedInstances: Lists the instances in the managed instance
63438// group and instances that are scheduled to be created. The list
63439// includes any current actions that the group has scheduled for its
63440// instances.
63441func (r *RegionInstanceGroupManagersService) ListManagedInstances(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListManagedInstancesCall {
63442	c := &RegionInstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63443	c.project = project
63444	c.region = region
63445	c.instanceGroupManager = instanceGroupManager
63446	return c
63447}
63448
63449// Filter sets the optional parameter "filter":
63450func (c *RegionInstanceGroupManagersListManagedInstancesCall) Filter(filter string) *RegionInstanceGroupManagersListManagedInstancesCall {
63451	c.urlParams_.Set("filter", filter)
63452	return c
63453}
63454
63455// MaxResults sets the optional parameter "maxResults":
63456func (c *RegionInstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListManagedInstancesCall {
63457	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
63458	return c
63459}
63460
63461// OrderBy sets the optional parameter "order_by":
63462func (c *RegionInstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListManagedInstancesCall {
63463	c.urlParams_.Set("order_by", orderBy)
63464	return c
63465}
63466
63467// PageToken sets the optional parameter "pageToken":
63468func (c *RegionInstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *RegionInstanceGroupManagersListManagedInstancesCall {
63469	c.urlParams_.Set("pageToken", pageToken)
63470	return c
63471}
63472
63473// Fields allows partial responses to be retrieved. See
63474// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63475// for more information.
63476func (c *RegionInstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListManagedInstancesCall {
63477	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63478	return c
63479}
63480
63481// Context sets the context to be used in this call's Do method. Any
63482// pending HTTP request will be aborted if the provided context is
63483// canceled.
63484func (c *RegionInstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersListManagedInstancesCall {
63485	c.ctx_ = ctx
63486	return c
63487}
63488
63489// Header returns an http.Header that can be modified by the caller to
63490// add HTTP headers to the request.
63491func (c *RegionInstanceGroupManagersListManagedInstancesCall) Header() http.Header {
63492	if c.header_ == nil {
63493		c.header_ = make(http.Header)
63494	}
63495	return c.header_
63496}
63497
63498func (c *RegionInstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
63499	reqHeaders := make(http.Header)
63500	for k, v := range c.header_ {
63501		reqHeaders[k] = v
63502	}
63503	reqHeaders.Set("User-Agent", c.s.userAgent())
63504	var body io.Reader = nil
63505	c.urlParams_.Set("alt", alt)
63506	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
63507	urls += "?" + c.urlParams_.Encode()
63508	req, _ := http.NewRequest("POST", urls, body)
63509	req.Header = reqHeaders
63510	googleapi.Expand(req.URL, map[string]string{
63511		"project":              c.project,
63512		"region":               c.region,
63513		"instanceGroupManager": c.instanceGroupManager,
63514	})
63515	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63516}
63517
63518// Do executes the "compute.regionInstanceGroupManagers.listManagedInstances" call.
63519// Exactly one of *RegionInstanceGroupManagersListInstancesResponse or
63520// error will be non-nil. Any non-2xx status code is an error. Response
63521// headers are in either
63522// *RegionInstanceGroupManagersListInstancesResponse.ServerResponse.Heade
63523// r or (if a response was returned at all) in
63524// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
63525// whether the returned error was because http.StatusNotModified was
63526// returned.
63527func (c *RegionInstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstancesResponse, error) {
63528	gensupport.SetOptions(c.urlParams_, opts...)
63529	res, err := c.doRequest("json")
63530	if res != nil && res.StatusCode == http.StatusNotModified {
63531		if res.Body != nil {
63532			res.Body.Close()
63533		}
63534		return nil, &googleapi.Error{
63535			Code:   res.StatusCode,
63536			Header: res.Header,
63537		}
63538	}
63539	if err != nil {
63540		return nil, err
63541	}
63542	defer googleapi.CloseBody(res)
63543	if err := googleapi.CheckResponse(res); err != nil {
63544		return nil, err
63545	}
63546	ret := &RegionInstanceGroupManagersListInstancesResponse{
63547		ServerResponse: googleapi.ServerResponse{
63548			Header:         res.Header,
63549			HTTPStatusCode: res.StatusCode,
63550		},
63551	}
63552	target := &ret
63553	if err := gensupport.DecodeResponse(target, res); err != nil {
63554		return nil, err
63555	}
63556	return ret, nil
63557	// {
63558	//   "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.",
63559	//   "httpMethod": "POST",
63560	//   "id": "compute.regionInstanceGroupManagers.listManagedInstances",
63561	//   "parameterOrder": [
63562	//     "project",
63563	//     "region",
63564	//     "instanceGroupManager"
63565	//   ],
63566	//   "parameters": {
63567	//     "filter": {
63568	//       "location": "query",
63569	//       "type": "string"
63570	//     },
63571	//     "instanceGroupManager": {
63572	//       "description": "The name of the managed instance group.",
63573	//       "location": "path",
63574	//       "required": true,
63575	//       "type": "string"
63576	//     },
63577	//     "maxResults": {
63578	//       "default": "500",
63579	//       "format": "uint32",
63580	//       "location": "query",
63581	//       "minimum": "0",
63582	//       "type": "integer"
63583	//     },
63584	//     "order_by": {
63585	//       "location": "query",
63586	//       "type": "string"
63587	//     },
63588	//     "pageToken": {
63589	//       "location": "query",
63590	//       "type": "string"
63591	//     },
63592	//     "project": {
63593	//       "description": "Project ID for this request.",
63594	//       "location": "path",
63595	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63596	//       "required": true,
63597	//       "type": "string"
63598	//     },
63599	//     "region": {
63600	//       "description": "Name of the region scoping this request.",
63601	//       "location": "path",
63602	//       "required": true,
63603	//       "type": "string"
63604	//     }
63605	//   },
63606	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
63607	//   "response": {
63608	//     "$ref": "RegionInstanceGroupManagersListInstancesResponse"
63609	//   },
63610	//   "scopes": [
63611	//     "https://www.googleapis.com/auth/cloud-platform",
63612	//     "https://www.googleapis.com/auth/compute",
63613	//     "https://www.googleapis.com/auth/compute.readonly"
63614	//   ]
63615	// }
63616
63617}
63618
63619// method id "compute.regionInstanceGroupManagers.recreateInstances":
63620
63621type RegionInstanceGroupManagersRecreateInstancesCall struct {
63622	s                                          *Service
63623	project                                    string
63624	region                                     string
63625	instanceGroupManager                       string
63626	regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest
63627	urlParams_                                 gensupport.URLParams
63628	ctx_                                       context.Context
63629	header_                                    http.Header
63630}
63631
63632// RecreateInstances: Schedules a group action to recreate the specified
63633// instances in the managed instance group. The instances are deleted
63634// and recreated using the current instance template for the managed
63635// instance group. This operation is marked as DONE when the action is
63636// scheduled even if the instances have not yet been recreated. You must
63637// separately verify the status of the recreating action with the
63638// listmanagedinstances method.
63639//
63640// If the group is part of a backend service that has enabled connection
63641// draining, it can take up to 60 seconds after the connection draining
63642// duration has elapsed before the VM instance is removed or
63643// deleted.
63644//
63645// You can specify a maximum of 1000 instances with this method per
63646// request.
63647func (r *RegionInstanceGroupManagersService) RecreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest) *RegionInstanceGroupManagersRecreateInstancesCall {
63648	c := &RegionInstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63649	c.project = project
63650	c.region = region
63651	c.instanceGroupManager = instanceGroupManager
63652	c.regioninstancegroupmanagersrecreaterequest = regioninstancegroupmanagersrecreaterequest
63653	return c
63654}
63655
63656// RequestId sets the optional parameter "requestId": An optional
63657// request ID to identify requests. Specify a unique request ID so that
63658// if you must retry your request, the server will know to ignore the
63659// request if it has already been completed.
63660//
63661// For example, consider a situation where you make an initial request
63662// and the request times out. If you make the request again with the
63663// same request ID, the server can check if original operation with the
63664// same request ID was received, and if so, will ignore the second
63665// request. This prevents clients from accidentally creating duplicate
63666// commitments.
63667//
63668// The request ID must be a valid UUID with the exception that zero UUID
63669// is not supported (00000000-0000-0000-0000-000000000000).
63670func (c *RegionInstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersRecreateInstancesCall {
63671	c.urlParams_.Set("requestId", requestId)
63672	return c
63673}
63674
63675// Fields allows partial responses to be retrieved. See
63676// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63677// for more information.
63678func (c *RegionInstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersRecreateInstancesCall {
63679	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63680	return c
63681}
63682
63683// Context sets the context to be used in this call's Do method. Any
63684// pending HTTP request will be aborted if the provided context is
63685// canceled.
63686func (c *RegionInstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersRecreateInstancesCall {
63687	c.ctx_ = ctx
63688	return c
63689}
63690
63691// Header returns an http.Header that can be modified by the caller to
63692// add HTTP headers to the request.
63693func (c *RegionInstanceGroupManagersRecreateInstancesCall) Header() http.Header {
63694	if c.header_ == nil {
63695		c.header_ = make(http.Header)
63696	}
63697	return c.header_
63698}
63699
63700func (c *RegionInstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
63701	reqHeaders := make(http.Header)
63702	for k, v := range c.header_ {
63703		reqHeaders[k] = v
63704	}
63705	reqHeaders.Set("User-Agent", c.s.userAgent())
63706	var body io.Reader = nil
63707	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersrecreaterequest)
63708	if err != nil {
63709		return nil, err
63710	}
63711	reqHeaders.Set("Content-Type", "application/json")
63712	c.urlParams_.Set("alt", alt)
63713	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
63714	urls += "?" + c.urlParams_.Encode()
63715	req, _ := http.NewRequest("POST", urls, body)
63716	req.Header = reqHeaders
63717	googleapi.Expand(req.URL, map[string]string{
63718		"project":              c.project,
63719		"region":               c.region,
63720		"instanceGroupManager": c.instanceGroupManager,
63721	})
63722	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63723}
63724
63725// Do executes the "compute.regionInstanceGroupManagers.recreateInstances" call.
63726// Exactly one of *Operation or error will be non-nil. Any non-2xx
63727// status code is an error. Response headers are in either
63728// *Operation.ServerResponse.Header or (if a response was returned at
63729// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63730// to check whether the returned error was because
63731// http.StatusNotModified was returned.
63732func (c *RegionInstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63733	gensupport.SetOptions(c.urlParams_, opts...)
63734	res, err := c.doRequest("json")
63735	if res != nil && res.StatusCode == http.StatusNotModified {
63736		if res.Body != nil {
63737			res.Body.Close()
63738		}
63739		return nil, &googleapi.Error{
63740			Code:   res.StatusCode,
63741			Header: res.Header,
63742		}
63743	}
63744	if err != nil {
63745		return nil, err
63746	}
63747	defer googleapi.CloseBody(res)
63748	if err := googleapi.CheckResponse(res); err != nil {
63749		return nil, err
63750	}
63751	ret := &Operation{
63752		ServerResponse: googleapi.ServerResponse{
63753			Header:         res.Header,
63754			HTTPStatusCode: res.StatusCode,
63755		},
63756	}
63757	target := &ret
63758	if err := gensupport.DecodeResponse(target, res); err != nil {
63759		return nil, err
63760	}
63761	return ret, nil
63762	// {
63763	//   "description": "Schedules a group action to recreate the specified instances in the managed instance group. The instances are deleted and recreated using the current instance template for the managed instance group. This operation is marked as DONE when the action is scheduled 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.",
63764	//   "httpMethod": "POST",
63765	//   "id": "compute.regionInstanceGroupManagers.recreateInstances",
63766	//   "parameterOrder": [
63767	//     "project",
63768	//     "region",
63769	//     "instanceGroupManager"
63770	//   ],
63771	//   "parameters": {
63772	//     "instanceGroupManager": {
63773	//       "description": "Name of the managed instance group.",
63774	//       "location": "path",
63775	//       "required": true,
63776	//       "type": "string"
63777	//     },
63778	//     "project": {
63779	//       "description": "Project ID for this request.",
63780	//       "location": "path",
63781	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63782	//       "required": true,
63783	//       "type": "string"
63784	//     },
63785	//     "region": {
63786	//       "description": "Name of the region scoping this request.",
63787	//       "location": "path",
63788	//       "required": true,
63789	//       "type": "string"
63790	//     },
63791	//     "requestId": {
63792	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63793	//       "location": "query",
63794	//       "type": "string"
63795	//     }
63796	//   },
63797	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
63798	//   "request": {
63799	//     "$ref": "RegionInstanceGroupManagersRecreateRequest"
63800	//   },
63801	//   "response": {
63802	//     "$ref": "Operation"
63803	//   },
63804	//   "scopes": [
63805	//     "https://www.googleapis.com/auth/cloud-platform",
63806	//     "https://www.googleapis.com/auth/compute"
63807	//   ]
63808	// }
63809
63810}
63811
63812// method id "compute.regionInstanceGroupManagers.resize":
63813
63814type RegionInstanceGroupManagersResizeCall struct {
63815	s                    *Service
63816	project              string
63817	region               string
63818	instanceGroupManager string
63819	urlParams_           gensupport.URLParams
63820	ctx_                 context.Context
63821	header_              http.Header
63822}
63823
63824// Resize: Changes the intended size for the managed instance group. If
63825// you increase the size, the group schedules actions to create new
63826// instances using the current instance template. If you decrease the
63827// size, the group schedules delete actions on one or more instances.
63828// The resize operation is marked DONE when the resize actions are
63829// scheduled even if the group has not yet added or deleted any
63830// instances. You must separately verify the status of the creating or
63831// deleting actions with the listmanagedinstances method.
63832//
63833// If the group is part of a backend service that has enabled connection
63834// draining, it can take up to 60 seconds after the connection draining
63835// duration has elapsed before the VM instance is removed or deleted.
63836func (r *RegionInstanceGroupManagersService) Resize(project string, region string, instanceGroupManager string, size int64) *RegionInstanceGroupManagersResizeCall {
63837	c := &RegionInstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63838	c.project = project
63839	c.region = region
63840	c.instanceGroupManager = instanceGroupManager
63841	c.urlParams_.Set("size", fmt.Sprint(size))
63842	return c
63843}
63844
63845// RequestId sets the optional parameter "requestId": An optional
63846// request ID to identify requests. Specify a unique request ID so that
63847// if you must retry your request, the server will know to ignore the
63848// request if it has already been completed.
63849//
63850// For example, consider a situation where you make an initial request
63851// and the request times out. If you make the request again with the
63852// same request ID, the server can check if original operation with the
63853// same request ID was received, and if so, will ignore the second
63854// request. This prevents clients from accidentally creating duplicate
63855// commitments.
63856//
63857// The request ID must be a valid UUID with the exception that zero UUID
63858// is not supported (00000000-0000-0000-0000-000000000000).
63859func (c *RegionInstanceGroupManagersResizeCall) RequestId(requestId string) *RegionInstanceGroupManagersResizeCall {
63860	c.urlParams_.Set("requestId", requestId)
63861	return c
63862}
63863
63864// Fields allows partial responses to be retrieved. See
63865// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63866// for more information.
63867func (c *RegionInstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersResizeCall {
63868	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63869	return c
63870}
63871
63872// Context sets the context to be used in this call's Do method. Any
63873// pending HTTP request will be aborted if the provided context is
63874// canceled.
63875func (c *RegionInstanceGroupManagersResizeCall) Context(ctx context.Context) *RegionInstanceGroupManagersResizeCall {
63876	c.ctx_ = ctx
63877	return c
63878}
63879
63880// Header returns an http.Header that can be modified by the caller to
63881// add HTTP headers to the request.
63882func (c *RegionInstanceGroupManagersResizeCall) Header() http.Header {
63883	if c.header_ == nil {
63884		c.header_ = make(http.Header)
63885	}
63886	return c.header_
63887}
63888
63889func (c *RegionInstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
63890	reqHeaders := make(http.Header)
63891	for k, v := range c.header_ {
63892		reqHeaders[k] = v
63893	}
63894	reqHeaders.Set("User-Agent", c.s.userAgent())
63895	var body io.Reader = nil
63896	c.urlParams_.Set("alt", alt)
63897	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize")
63898	urls += "?" + c.urlParams_.Encode()
63899	req, _ := http.NewRequest("POST", urls, body)
63900	req.Header = reqHeaders
63901	googleapi.Expand(req.URL, map[string]string{
63902		"project":              c.project,
63903		"region":               c.region,
63904		"instanceGroupManager": c.instanceGroupManager,
63905	})
63906	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63907}
63908
63909// Do executes the "compute.regionInstanceGroupManagers.resize" call.
63910// Exactly one of *Operation or error will be non-nil. Any non-2xx
63911// status code is an error. Response headers are in either
63912// *Operation.ServerResponse.Header or (if a response was returned at
63913// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63914// to check whether the returned error was because
63915// http.StatusNotModified was returned.
63916func (c *RegionInstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63917	gensupport.SetOptions(c.urlParams_, opts...)
63918	res, err := c.doRequest("json")
63919	if res != nil && res.StatusCode == http.StatusNotModified {
63920		if res.Body != nil {
63921			res.Body.Close()
63922		}
63923		return nil, &googleapi.Error{
63924			Code:   res.StatusCode,
63925			Header: res.Header,
63926		}
63927	}
63928	if err != nil {
63929		return nil, err
63930	}
63931	defer googleapi.CloseBody(res)
63932	if err := googleapi.CheckResponse(res); err != nil {
63933		return nil, err
63934	}
63935	ret := &Operation{
63936		ServerResponse: googleapi.ServerResponse{
63937			Header:         res.Header,
63938			HTTPStatusCode: res.StatusCode,
63939		},
63940	}
63941	target := &ret
63942	if err := gensupport.DecodeResponse(target, res); err != nil {
63943		return nil, err
63944	}
63945	return ret, nil
63946	// {
63947	//   "description": "Changes the intended size for the managed instance group. If you increase the size, the group schedules actions to create new instances using the current instance template. If you decrease the size, the group schedules delete actions on one or more 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\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.",
63948	//   "httpMethod": "POST",
63949	//   "id": "compute.regionInstanceGroupManagers.resize",
63950	//   "parameterOrder": [
63951	//     "project",
63952	//     "region",
63953	//     "instanceGroupManager",
63954	//     "size"
63955	//   ],
63956	//   "parameters": {
63957	//     "instanceGroupManager": {
63958	//       "description": "Name of the managed instance group.",
63959	//       "location": "path",
63960	//       "required": true,
63961	//       "type": "string"
63962	//     },
63963	//     "project": {
63964	//       "description": "Project ID for this request.",
63965	//       "location": "path",
63966	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63967	//       "required": true,
63968	//       "type": "string"
63969	//     },
63970	//     "region": {
63971	//       "description": "Name of the region scoping this request.",
63972	//       "location": "path",
63973	//       "required": true,
63974	//       "type": "string"
63975	//     },
63976	//     "requestId": {
63977	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63978	//       "location": "query",
63979	//       "type": "string"
63980	//     },
63981	//     "size": {
63982	//       "description": "Number of instances that should exist in this instance group manager.",
63983	//       "format": "int32",
63984	//       "location": "query",
63985	//       "minimum": "0",
63986	//       "required": true,
63987	//       "type": "integer"
63988	//     }
63989	//   },
63990	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize",
63991	//   "response": {
63992	//     "$ref": "Operation"
63993	//   },
63994	//   "scopes": [
63995	//     "https://www.googleapis.com/auth/cloud-platform",
63996	//     "https://www.googleapis.com/auth/compute"
63997	//   ]
63998	// }
63999
64000}
64001
64002// method id "compute.regionInstanceGroupManagers.setInstanceTemplate":
64003
64004type RegionInstanceGroupManagersSetInstanceTemplateCall struct {
64005	s                                             *Service
64006	project                                       string
64007	region                                        string
64008	instanceGroupManager                          string
64009	regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest
64010	urlParams_                                    gensupport.URLParams
64011	ctx_                                          context.Context
64012	header_                                       http.Header
64013}
64014
64015// SetInstanceTemplate: Sets the instance template to use when creating
64016// new instances or recreating instances in this group. Existing
64017// instances are not affected.
64018func (r *RegionInstanceGroupManagersService) SetInstanceTemplate(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest) *RegionInstanceGroupManagersSetInstanceTemplateCall {
64019	c := &RegionInstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64020	c.project = project
64021	c.region = region
64022	c.instanceGroupManager = instanceGroupManager
64023	c.regioninstancegroupmanagerssettemplaterequest = regioninstancegroupmanagerssettemplaterequest
64024	return c
64025}
64026
64027// RequestId sets the optional parameter "requestId": An optional
64028// request ID to identify requests. Specify a unique request ID so that
64029// if you must retry your request, the server will know to ignore the
64030// request if it has already been completed.
64031//
64032// For example, consider a situation where you make an initial request
64033// and the request times out. If you make the request again with the
64034// same request ID, the server can check if original operation with the
64035// same request ID was received, and if so, will ignore the second
64036// request. This prevents clients from accidentally creating duplicate
64037// commitments.
64038//
64039// The request ID must be a valid UUID with the exception that zero UUID
64040// is not supported (00000000-0000-0000-0000-000000000000).
64041func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *RegionInstanceGroupManagersSetInstanceTemplateCall {
64042	c.urlParams_.Set("requestId", requestId)
64043	return c
64044}
64045
64046// Fields allows partial responses to be retrieved. See
64047// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64048// for more information.
64049func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetInstanceTemplateCall {
64050	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64051	return c
64052}
64053
64054// Context sets the context to be used in this call's Do method. Any
64055// pending HTTP request will be aborted if the provided context is
64056// canceled.
64057func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetInstanceTemplateCall {
64058	c.ctx_ = ctx
64059	return c
64060}
64061
64062// Header returns an http.Header that can be modified by the caller to
64063// add HTTP headers to the request.
64064func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
64065	if c.header_ == nil {
64066		c.header_ = make(http.Header)
64067	}
64068	return c.header_
64069}
64070
64071func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
64072	reqHeaders := make(http.Header)
64073	for k, v := range c.header_ {
64074		reqHeaders[k] = v
64075	}
64076	reqHeaders.Set("User-Agent", c.s.userAgent())
64077	var body io.Reader = nil
64078	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettemplaterequest)
64079	if err != nil {
64080		return nil, err
64081	}
64082	reqHeaders.Set("Content-Type", "application/json")
64083	c.urlParams_.Set("alt", alt)
64084	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
64085	urls += "?" + c.urlParams_.Encode()
64086	req, _ := http.NewRequest("POST", urls, body)
64087	req.Header = reqHeaders
64088	googleapi.Expand(req.URL, map[string]string{
64089		"project":              c.project,
64090		"region":               c.region,
64091		"instanceGroupManager": c.instanceGroupManager,
64092	})
64093	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64094}
64095
64096// Do executes the "compute.regionInstanceGroupManagers.setInstanceTemplate" call.
64097// Exactly one of *Operation or error will be non-nil. Any non-2xx
64098// status code is an error. Response headers are in either
64099// *Operation.ServerResponse.Header or (if a response was returned at
64100// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64101// to check whether the returned error was because
64102// http.StatusNotModified was returned.
64103func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64104	gensupport.SetOptions(c.urlParams_, opts...)
64105	res, err := c.doRequest("json")
64106	if res != nil && res.StatusCode == http.StatusNotModified {
64107		if res.Body != nil {
64108			res.Body.Close()
64109		}
64110		return nil, &googleapi.Error{
64111			Code:   res.StatusCode,
64112			Header: res.Header,
64113		}
64114	}
64115	if err != nil {
64116		return nil, err
64117	}
64118	defer googleapi.CloseBody(res)
64119	if err := googleapi.CheckResponse(res); err != nil {
64120		return nil, err
64121	}
64122	ret := &Operation{
64123		ServerResponse: googleapi.ServerResponse{
64124			Header:         res.Header,
64125			HTTPStatusCode: res.StatusCode,
64126		},
64127	}
64128	target := &ret
64129	if err := gensupport.DecodeResponse(target, res); err != nil {
64130		return nil, err
64131	}
64132	return ret, nil
64133	// {
64134	//   "description": "Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected.",
64135	//   "httpMethod": "POST",
64136	//   "id": "compute.regionInstanceGroupManagers.setInstanceTemplate",
64137	//   "parameterOrder": [
64138	//     "project",
64139	//     "region",
64140	//     "instanceGroupManager"
64141	//   ],
64142	//   "parameters": {
64143	//     "instanceGroupManager": {
64144	//       "description": "The name of the managed instance group.",
64145	//       "location": "path",
64146	//       "required": true,
64147	//       "type": "string"
64148	//     },
64149	//     "project": {
64150	//       "description": "Project ID for this request.",
64151	//       "location": "path",
64152	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64153	//       "required": true,
64154	//       "type": "string"
64155	//     },
64156	//     "region": {
64157	//       "description": "Name of the region scoping this request.",
64158	//       "location": "path",
64159	//       "required": true,
64160	//       "type": "string"
64161	//     },
64162	//     "requestId": {
64163	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64164	//       "location": "query",
64165	//       "type": "string"
64166	//     }
64167	//   },
64168	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
64169	//   "request": {
64170	//     "$ref": "RegionInstanceGroupManagersSetTemplateRequest"
64171	//   },
64172	//   "response": {
64173	//     "$ref": "Operation"
64174	//   },
64175	//   "scopes": [
64176	//     "https://www.googleapis.com/auth/cloud-platform",
64177	//     "https://www.googleapis.com/auth/compute"
64178	//   ]
64179	// }
64180
64181}
64182
64183// method id "compute.regionInstanceGroupManagers.setTargetPools":
64184
64185type RegionInstanceGroupManagersSetTargetPoolsCall struct {
64186	s                                                *Service
64187	project                                          string
64188	region                                           string
64189	instanceGroupManager                             string
64190	regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest
64191	urlParams_                                       gensupport.URLParams
64192	ctx_                                             context.Context
64193	header_                                          http.Header
64194}
64195
64196// SetTargetPools: Modifies the target pools to which all new instances
64197// in this group are assigned. Existing instances in the group are not
64198// affected.
64199func (r *RegionInstanceGroupManagersService) SetTargetPools(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest) *RegionInstanceGroupManagersSetTargetPoolsCall {
64200	c := &RegionInstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64201	c.project = project
64202	c.region = region
64203	c.instanceGroupManager = instanceGroupManager
64204	c.regioninstancegroupmanagerssettargetpoolsrequest = regioninstancegroupmanagerssettargetpoolsrequest
64205	return c
64206}
64207
64208// RequestId sets the optional parameter "requestId": An optional
64209// request ID to identify requests. Specify a unique request ID so that
64210// if you must retry your request, the server will know to ignore the
64211// request if it has already been completed.
64212//
64213// For example, consider a situation where you make an initial request
64214// and the request times out. If you make the request again with the
64215// same request ID, the server can check if original operation with the
64216// same request ID was received, and if so, will ignore the second
64217// request. This prevents clients from accidentally creating duplicate
64218// commitments.
64219//
64220// The request ID must be a valid UUID with the exception that zero UUID
64221// is not supported (00000000-0000-0000-0000-000000000000).
64222func (c *RegionInstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *RegionInstanceGroupManagersSetTargetPoolsCall {
64223	c.urlParams_.Set("requestId", requestId)
64224	return c
64225}
64226
64227// Fields allows partial responses to be retrieved. See
64228// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64229// for more information.
64230func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetTargetPoolsCall {
64231	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64232	return c
64233}
64234
64235// Context sets the context to be used in this call's Do method. Any
64236// pending HTTP request will be aborted if the provided context is
64237// canceled.
64238func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetTargetPoolsCall {
64239	c.ctx_ = ctx
64240	return c
64241}
64242
64243// Header returns an http.Header that can be modified by the caller to
64244// add HTTP headers to the request.
64245func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
64246	if c.header_ == nil {
64247		c.header_ = make(http.Header)
64248	}
64249	return c.header_
64250}
64251
64252func (c *RegionInstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
64253	reqHeaders := make(http.Header)
64254	for k, v := range c.header_ {
64255		reqHeaders[k] = v
64256	}
64257	reqHeaders.Set("User-Agent", c.s.userAgent())
64258	var body io.Reader = nil
64259	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettargetpoolsrequest)
64260	if err != nil {
64261		return nil, err
64262	}
64263	reqHeaders.Set("Content-Type", "application/json")
64264	c.urlParams_.Set("alt", alt)
64265	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
64266	urls += "?" + c.urlParams_.Encode()
64267	req, _ := http.NewRequest("POST", urls, body)
64268	req.Header = reqHeaders
64269	googleapi.Expand(req.URL, map[string]string{
64270		"project":              c.project,
64271		"region":               c.region,
64272		"instanceGroupManager": c.instanceGroupManager,
64273	})
64274	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64275}
64276
64277// Do executes the "compute.regionInstanceGroupManagers.setTargetPools" call.
64278// Exactly one of *Operation or error will be non-nil. Any non-2xx
64279// status code is an error. Response headers are in either
64280// *Operation.ServerResponse.Header or (if a response was returned at
64281// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64282// to check whether the returned error was because
64283// http.StatusNotModified was returned.
64284func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64285	gensupport.SetOptions(c.urlParams_, opts...)
64286	res, err := c.doRequest("json")
64287	if res != nil && res.StatusCode == http.StatusNotModified {
64288		if res.Body != nil {
64289			res.Body.Close()
64290		}
64291		return nil, &googleapi.Error{
64292			Code:   res.StatusCode,
64293			Header: res.Header,
64294		}
64295	}
64296	if err != nil {
64297		return nil, err
64298	}
64299	defer googleapi.CloseBody(res)
64300	if err := googleapi.CheckResponse(res); err != nil {
64301		return nil, err
64302	}
64303	ret := &Operation{
64304		ServerResponse: googleapi.ServerResponse{
64305			Header:         res.Header,
64306			HTTPStatusCode: res.StatusCode,
64307		},
64308	}
64309	target := &ret
64310	if err := gensupport.DecodeResponse(target, res); err != nil {
64311		return nil, err
64312	}
64313	return ret, nil
64314	// {
64315	//   "description": "Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.",
64316	//   "httpMethod": "POST",
64317	//   "id": "compute.regionInstanceGroupManagers.setTargetPools",
64318	//   "parameterOrder": [
64319	//     "project",
64320	//     "region",
64321	//     "instanceGroupManager"
64322	//   ],
64323	//   "parameters": {
64324	//     "instanceGroupManager": {
64325	//       "description": "Name of the managed instance group.",
64326	//       "location": "path",
64327	//       "required": true,
64328	//       "type": "string"
64329	//     },
64330	//     "project": {
64331	//       "description": "Project ID for this request.",
64332	//       "location": "path",
64333	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64334	//       "required": true,
64335	//       "type": "string"
64336	//     },
64337	//     "region": {
64338	//       "description": "Name of the region scoping this request.",
64339	//       "location": "path",
64340	//       "required": true,
64341	//       "type": "string"
64342	//     },
64343	//     "requestId": {
64344	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64345	//       "location": "query",
64346	//       "type": "string"
64347	//     }
64348	//   },
64349	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
64350	//   "request": {
64351	//     "$ref": "RegionInstanceGroupManagersSetTargetPoolsRequest"
64352	//   },
64353	//   "response": {
64354	//     "$ref": "Operation"
64355	//   },
64356	//   "scopes": [
64357	//     "https://www.googleapis.com/auth/cloud-platform",
64358	//     "https://www.googleapis.com/auth/compute"
64359	//   ]
64360	// }
64361
64362}
64363
64364// method id "compute.regionInstanceGroups.get":
64365
64366type RegionInstanceGroupsGetCall struct {
64367	s             *Service
64368	project       string
64369	region        string
64370	instanceGroup string
64371	urlParams_    gensupport.URLParams
64372	ifNoneMatch_  string
64373	ctx_          context.Context
64374	header_       http.Header
64375}
64376
64377// Get: Returns the specified instance group resource.
64378func (r *RegionInstanceGroupsService) Get(project string, region string, instanceGroup string) *RegionInstanceGroupsGetCall {
64379	c := &RegionInstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64380	c.project = project
64381	c.region = region
64382	c.instanceGroup = instanceGroup
64383	return c
64384}
64385
64386// Fields allows partial responses to be retrieved. See
64387// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64388// for more information.
64389func (c *RegionInstanceGroupsGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsGetCall {
64390	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64391	return c
64392}
64393
64394// IfNoneMatch sets the optional parameter which makes the operation
64395// fail if the object's ETag matches the given value. This is useful for
64396// getting updates only after the object has changed since the last
64397// request. Use googleapi.IsNotModified to check whether the response
64398// error from Do is the result of In-None-Match.
64399func (c *RegionInstanceGroupsGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsGetCall {
64400	c.ifNoneMatch_ = entityTag
64401	return c
64402}
64403
64404// Context sets the context to be used in this call's Do method. Any
64405// pending HTTP request will be aborted if the provided context is
64406// canceled.
64407func (c *RegionInstanceGroupsGetCall) Context(ctx context.Context) *RegionInstanceGroupsGetCall {
64408	c.ctx_ = ctx
64409	return c
64410}
64411
64412// Header returns an http.Header that can be modified by the caller to
64413// add HTTP headers to the request.
64414func (c *RegionInstanceGroupsGetCall) Header() http.Header {
64415	if c.header_ == nil {
64416		c.header_ = make(http.Header)
64417	}
64418	return c.header_
64419}
64420
64421func (c *RegionInstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
64422	reqHeaders := make(http.Header)
64423	for k, v := range c.header_ {
64424		reqHeaders[k] = v
64425	}
64426	reqHeaders.Set("User-Agent", c.s.userAgent())
64427	if c.ifNoneMatch_ != "" {
64428		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64429	}
64430	var body io.Reader = nil
64431	c.urlParams_.Set("alt", alt)
64432	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}")
64433	urls += "?" + c.urlParams_.Encode()
64434	req, _ := http.NewRequest("GET", urls, body)
64435	req.Header = reqHeaders
64436	googleapi.Expand(req.URL, map[string]string{
64437		"project":       c.project,
64438		"region":        c.region,
64439		"instanceGroup": c.instanceGroup,
64440	})
64441	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64442}
64443
64444// Do executes the "compute.regionInstanceGroups.get" call.
64445// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
64446// status code is an error. Response headers are in either
64447// *InstanceGroup.ServerResponse.Header or (if a response was returned
64448// at all) in error.(*googleapi.Error).Header. Use
64449// googleapi.IsNotModified to check whether the returned error was
64450// because http.StatusNotModified was returned.
64451func (c *RegionInstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
64452	gensupport.SetOptions(c.urlParams_, opts...)
64453	res, err := c.doRequest("json")
64454	if res != nil && res.StatusCode == http.StatusNotModified {
64455		if res.Body != nil {
64456			res.Body.Close()
64457		}
64458		return nil, &googleapi.Error{
64459			Code:   res.StatusCode,
64460			Header: res.Header,
64461		}
64462	}
64463	if err != nil {
64464		return nil, err
64465	}
64466	defer googleapi.CloseBody(res)
64467	if err := googleapi.CheckResponse(res); err != nil {
64468		return nil, err
64469	}
64470	ret := &InstanceGroup{
64471		ServerResponse: googleapi.ServerResponse{
64472			Header:         res.Header,
64473			HTTPStatusCode: res.StatusCode,
64474		},
64475	}
64476	target := &ret
64477	if err := gensupport.DecodeResponse(target, res); err != nil {
64478		return nil, err
64479	}
64480	return ret, nil
64481	// {
64482	//   "description": "Returns the specified instance group resource.",
64483	//   "httpMethod": "GET",
64484	//   "id": "compute.regionInstanceGroups.get",
64485	//   "parameterOrder": [
64486	//     "project",
64487	//     "region",
64488	//     "instanceGroup"
64489	//   ],
64490	//   "parameters": {
64491	//     "instanceGroup": {
64492	//       "description": "Name of the instance group resource to return.",
64493	//       "location": "path",
64494	//       "required": true,
64495	//       "type": "string"
64496	//     },
64497	//     "project": {
64498	//       "description": "Project ID for this request.",
64499	//       "location": "path",
64500	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64501	//       "required": true,
64502	//       "type": "string"
64503	//     },
64504	//     "region": {
64505	//       "description": "Name of the region scoping this request.",
64506	//       "location": "path",
64507	//       "required": true,
64508	//       "type": "string"
64509	//     }
64510	//   },
64511	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}",
64512	//   "response": {
64513	//     "$ref": "InstanceGroup"
64514	//   },
64515	//   "scopes": [
64516	//     "https://www.googleapis.com/auth/cloud-platform",
64517	//     "https://www.googleapis.com/auth/compute",
64518	//     "https://www.googleapis.com/auth/compute.readonly"
64519	//   ]
64520	// }
64521
64522}
64523
64524// method id "compute.regionInstanceGroups.list":
64525
64526type RegionInstanceGroupsListCall struct {
64527	s            *Service
64528	project      string
64529	region       string
64530	urlParams_   gensupport.URLParams
64531	ifNoneMatch_ string
64532	ctx_         context.Context
64533	header_      http.Header
64534}
64535
64536// List: Retrieves the list of instance group resources contained within
64537// the specified region.
64538func (r *RegionInstanceGroupsService) List(project string, region string) *RegionInstanceGroupsListCall {
64539	c := &RegionInstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64540	c.project = project
64541	c.region = region
64542	return c
64543}
64544
64545// Filter sets the optional parameter "filter": A filter expression that
64546// filters resources listed in the response. The expression must specify
64547// the field name, a comparison operator, and the value that you want to
64548// use for filtering. The value must be a string, a number, or a
64549// boolean. The comparison operator must be either =, !=, >, or <.
64550//
64551// For example, if you are filtering Compute Engine instances, you can
64552// exclude instances named example-instance by specifying name !=
64553// example-instance.
64554//
64555// You can also filter nested fields. For example, you could specify
64556// scheduling.automaticRestart = false to include instances only if they
64557// are not scheduled for automatic restarts. You can use filtering on
64558// nested fields to filter based on resource labels.
64559//
64560// To filter on multiple expressions, provide each separate expression
64561// within parentheses. For example, (scheduling.automaticRestart = true)
64562// (cpuPlatform = "Intel Skylake"). By default, each expression is an
64563// AND expression. However, you can include AND and OR expressions
64564// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
64565// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
64566// true).
64567func (c *RegionInstanceGroupsListCall) Filter(filter string) *RegionInstanceGroupsListCall {
64568	c.urlParams_.Set("filter", filter)
64569	return c
64570}
64571
64572// MaxResults sets the optional parameter "maxResults": The maximum
64573// number of results per page that should be returned. If the number of
64574// available results is larger than maxResults, Compute Engine returns a
64575// nextPageToken that can be used to get the next page of results in
64576// subsequent list requests. Acceptable values are 0 to 500, inclusive.
64577// (Default: 500)
64578func (c *RegionInstanceGroupsListCall) MaxResults(maxResults int64) *RegionInstanceGroupsListCall {
64579	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
64580	return c
64581}
64582
64583// OrderBy sets the optional parameter "orderBy": Sorts list results by
64584// a certain order. By default, results are returned in alphanumerical
64585// order based on the resource name.
64586//
64587// You can also sort results in descending order based on the creation
64588// timestamp using orderBy="creationTimestamp desc". This sorts results
64589// based on the creationTimestamp field in reverse chronological order
64590// (newest result first). Use this to sort resources like operations so
64591// that the newest operation is returned first.
64592//
64593// Currently, only sorting by name or creationTimestamp desc is
64594// supported.
64595func (c *RegionInstanceGroupsListCall) OrderBy(orderBy string) *RegionInstanceGroupsListCall {
64596	c.urlParams_.Set("orderBy", orderBy)
64597	return c
64598}
64599
64600// PageToken sets the optional parameter "pageToken": Specifies a page
64601// token to use. Set pageToken to the nextPageToken returned by a
64602// previous list request to get the next page of results.
64603func (c *RegionInstanceGroupsListCall) PageToken(pageToken string) *RegionInstanceGroupsListCall {
64604	c.urlParams_.Set("pageToken", pageToken)
64605	return c
64606}
64607
64608// Fields allows partial responses to be retrieved. See
64609// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64610// for more information.
64611func (c *RegionInstanceGroupsListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListCall {
64612	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64613	return c
64614}
64615
64616// IfNoneMatch sets the optional parameter which makes the operation
64617// fail if the object's ETag matches the given value. This is useful for
64618// getting updates only after the object has changed since the last
64619// request. Use googleapi.IsNotModified to check whether the response
64620// error from Do is the result of In-None-Match.
64621func (c *RegionInstanceGroupsListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsListCall {
64622	c.ifNoneMatch_ = entityTag
64623	return c
64624}
64625
64626// Context sets the context to be used in this call's Do method. Any
64627// pending HTTP request will be aborted if the provided context is
64628// canceled.
64629func (c *RegionInstanceGroupsListCall) Context(ctx context.Context) *RegionInstanceGroupsListCall {
64630	c.ctx_ = ctx
64631	return c
64632}
64633
64634// Header returns an http.Header that can be modified by the caller to
64635// add HTTP headers to the request.
64636func (c *RegionInstanceGroupsListCall) Header() http.Header {
64637	if c.header_ == nil {
64638		c.header_ = make(http.Header)
64639	}
64640	return c.header_
64641}
64642
64643func (c *RegionInstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
64644	reqHeaders := make(http.Header)
64645	for k, v := range c.header_ {
64646		reqHeaders[k] = v
64647	}
64648	reqHeaders.Set("User-Agent", c.s.userAgent())
64649	if c.ifNoneMatch_ != "" {
64650		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64651	}
64652	var body io.Reader = nil
64653	c.urlParams_.Set("alt", alt)
64654	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups")
64655	urls += "?" + c.urlParams_.Encode()
64656	req, _ := http.NewRequest("GET", urls, body)
64657	req.Header = reqHeaders
64658	googleapi.Expand(req.URL, map[string]string{
64659		"project": c.project,
64660		"region":  c.region,
64661	})
64662	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64663}
64664
64665// Do executes the "compute.regionInstanceGroups.list" call.
64666// Exactly one of *RegionInstanceGroupList or error will be non-nil. Any
64667// non-2xx status code is an error. Response headers are in either
64668// *RegionInstanceGroupList.ServerResponse.Header or (if a response was
64669// returned at all) in error.(*googleapi.Error).Header. Use
64670// googleapi.IsNotModified to check whether the returned error was
64671// because http.StatusNotModified was returned.
64672func (c *RegionInstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupList, error) {
64673	gensupport.SetOptions(c.urlParams_, opts...)
64674	res, err := c.doRequest("json")
64675	if res != nil && res.StatusCode == http.StatusNotModified {
64676		if res.Body != nil {
64677			res.Body.Close()
64678		}
64679		return nil, &googleapi.Error{
64680			Code:   res.StatusCode,
64681			Header: res.Header,
64682		}
64683	}
64684	if err != nil {
64685		return nil, err
64686	}
64687	defer googleapi.CloseBody(res)
64688	if err := googleapi.CheckResponse(res); err != nil {
64689		return nil, err
64690	}
64691	ret := &RegionInstanceGroupList{
64692		ServerResponse: googleapi.ServerResponse{
64693			Header:         res.Header,
64694			HTTPStatusCode: res.StatusCode,
64695		},
64696	}
64697	target := &ret
64698	if err := gensupport.DecodeResponse(target, res); err != nil {
64699		return nil, err
64700	}
64701	return ret, nil
64702	// {
64703	//   "description": "Retrieves the list of instance group resources contained within the specified region.",
64704	//   "httpMethod": "GET",
64705	//   "id": "compute.regionInstanceGroups.list",
64706	//   "parameterOrder": [
64707	//     "project",
64708	//     "region"
64709	//   ],
64710	//   "parameters": {
64711	//     "filter": {
64712	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
64713	//       "location": "query",
64714	//       "type": "string"
64715	//     },
64716	//     "maxResults": {
64717	//       "default": "500",
64718	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
64719	//       "format": "uint32",
64720	//       "location": "query",
64721	//       "minimum": "0",
64722	//       "type": "integer"
64723	//     },
64724	//     "orderBy": {
64725	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
64726	//       "location": "query",
64727	//       "type": "string"
64728	//     },
64729	//     "pageToken": {
64730	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
64731	//       "location": "query",
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	//     "region": {
64742	//       "description": "Name of the region scoping this request.",
64743	//       "location": "path",
64744	//       "required": true,
64745	//       "type": "string"
64746	//     }
64747	//   },
64748	//   "path": "{project}/regions/{region}/instanceGroups",
64749	//   "response": {
64750	//     "$ref": "RegionInstanceGroupList"
64751	//   },
64752	//   "scopes": [
64753	//     "https://www.googleapis.com/auth/cloud-platform",
64754	//     "https://www.googleapis.com/auth/compute",
64755	//     "https://www.googleapis.com/auth/compute.readonly"
64756	//   ]
64757	// }
64758
64759}
64760
64761// Pages invokes f for each page of results.
64762// A non-nil error returned from f will halt the iteration.
64763// The provided context supersedes any context provided to the Context method.
64764func (c *RegionInstanceGroupsListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupList) error) error {
64765	c.ctx_ = ctx
64766	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
64767	for {
64768		x, err := c.Do()
64769		if err != nil {
64770			return err
64771		}
64772		if err := f(x); err != nil {
64773			return err
64774		}
64775		if x.NextPageToken == "" {
64776			return nil
64777		}
64778		c.PageToken(x.NextPageToken)
64779	}
64780}
64781
64782// method id "compute.regionInstanceGroups.listInstances":
64783
64784type RegionInstanceGroupsListInstancesCall struct {
64785	s                                        *Service
64786	project                                  string
64787	region                                   string
64788	instanceGroup                            string
64789	regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest
64790	urlParams_                               gensupport.URLParams
64791	ctx_                                     context.Context
64792	header_                                  http.Header
64793}
64794
64795// ListInstances: Lists the instances in the specified instance group
64796// and displays information about the named ports. Depending on the
64797// specified options, this method can list all instances or only the
64798// instances that are running.
64799func (r *RegionInstanceGroupsService) ListInstances(project string, region string, instanceGroup string, regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest) *RegionInstanceGroupsListInstancesCall {
64800	c := &RegionInstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64801	c.project = project
64802	c.region = region
64803	c.instanceGroup = instanceGroup
64804	c.regioninstancegroupslistinstancesrequest = regioninstancegroupslistinstancesrequest
64805	return c
64806}
64807
64808// Filter sets the optional parameter "filter": A filter expression that
64809// filters resources listed in the response. The expression must specify
64810// the field name, a comparison operator, and the value that you want to
64811// use for filtering. The value must be a string, a number, or a
64812// boolean. The comparison operator must be either =, !=, >, or <.
64813//
64814// For example, if you are filtering Compute Engine instances, you can
64815// exclude instances named example-instance by specifying name !=
64816// example-instance.
64817//
64818// You can also filter nested fields. For example, you could specify
64819// scheduling.automaticRestart = false to include instances only if they
64820// are not scheduled for automatic restarts. You can use filtering on
64821// nested fields to filter based on resource labels.
64822//
64823// To filter on multiple expressions, provide each separate expression
64824// within parentheses. For example, (scheduling.automaticRestart = true)
64825// (cpuPlatform = "Intel Skylake"). By default, each expression is an
64826// AND expression. However, you can include AND and OR expressions
64827// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
64828// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
64829// true).
64830func (c *RegionInstanceGroupsListInstancesCall) Filter(filter string) *RegionInstanceGroupsListInstancesCall {
64831	c.urlParams_.Set("filter", filter)
64832	return c
64833}
64834
64835// MaxResults sets the optional parameter "maxResults": The maximum
64836// number of results per page that should be returned. If the number of
64837// available results is larger than maxResults, Compute Engine returns a
64838// nextPageToken that can be used to get the next page of results in
64839// subsequent list requests. Acceptable values are 0 to 500, inclusive.
64840// (Default: 500)
64841func (c *RegionInstanceGroupsListInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupsListInstancesCall {
64842	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
64843	return c
64844}
64845
64846// OrderBy sets the optional parameter "orderBy": Sorts list results by
64847// a certain order. By default, results are returned in alphanumerical
64848// order based on the resource name.
64849//
64850// You can also sort results in descending order based on the creation
64851// timestamp using orderBy="creationTimestamp desc". This sorts results
64852// based on the creationTimestamp field in reverse chronological order
64853// (newest result first). Use this to sort resources like operations so
64854// that the newest operation is returned first.
64855//
64856// Currently, only sorting by name or creationTimestamp desc is
64857// supported.
64858func (c *RegionInstanceGroupsListInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupsListInstancesCall {
64859	c.urlParams_.Set("orderBy", orderBy)
64860	return c
64861}
64862
64863// PageToken sets the optional parameter "pageToken": Specifies a page
64864// token to use. Set pageToken to the nextPageToken returned by a
64865// previous list request to get the next page of results.
64866func (c *RegionInstanceGroupsListInstancesCall) PageToken(pageToken string) *RegionInstanceGroupsListInstancesCall {
64867	c.urlParams_.Set("pageToken", pageToken)
64868	return c
64869}
64870
64871// Fields allows partial responses to be retrieved. See
64872// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64873// for more information.
64874func (c *RegionInstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListInstancesCall {
64875	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64876	return c
64877}
64878
64879// Context sets the context to be used in this call's Do method. Any
64880// pending HTTP request will be aborted if the provided context is
64881// canceled.
64882func (c *RegionInstanceGroupsListInstancesCall) Context(ctx context.Context) *RegionInstanceGroupsListInstancesCall {
64883	c.ctx_ = ctx
64884	return c
64885}
64886
64887// Header returns an http.Header that can be modified by the caller to
64888// add HTTP headers to the request.
64889func (c *RegionInstanceGroupsListInstancesCall) Header() http.Header {
64890	if c.header_ == nil {
64891		c.header_ = make(http.Header)
64892	}
64893	return c.header_
64894}
64895
64896func (c *RegionInstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
64897	reqHeaders := make(http.Header)
64898	for k, v := range c.header_ {
64899		reqHeaders[k] = v
64900	}
64901	reqHeaders.Set("User-Agent", c.s.userAgent())
64902	var body io.Reader = nil
64903	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupslistinstancesrequest)
64904	if err != nil {
64905		return nil, err
64906	}
64907	reqHeaders.Set("Content-Type", "application/json")
64908	c.urlParams_.Set("alt", alt)
64909	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances")
64910	urls += "?" + c.urlParams_.Encode()
64911	req, _ := http.NewRequest("POST", urls, body)
64912	req.Header = reqHeaders
64913	googleapi.Expand(req.URL, map[string]string{
64914		"project":       c.project,
64915		"region":        c.region,
64916		"instanceGroup": c.instanceGroup,
64917	})
64918	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64919}
64920
64921// Do executes the "compute.regionInstanceGroups.listInstances" call.
64922// Exactly one of *RegionInstanceGroupsListInstances or error will be
64923// non-nil. Any non-2xx status code is an error. Response headers are in
64924// either *RegionInstanceGroupsListInstances.ServerResponse.Header or
64925// (if a response was returned at all) in
64926// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
64927// whether the returned error was because http.StatusNotModified was
64928// returned.
64929func (c *RegionInstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupsListInstances, error) {
64930	gensupport.SetOptions(c.urlParams_, opts...)
64931	res, err := c.doRequest("json")
64932	if res != nil && res.StatusCode == http.StatusNotModified {
64933		if res.Body != nil {
64934			res.Body.Close()
64935		}
64936		return nil, &googleapi.Error{
64937			Code:   res.StatusCode,
64938			Header: res.Header,
64939		}
64940	}
64941	if err != nil {
64942		return nil, err
64943	}
64944	defer googleapi.CloseBody(res)
64945	if err := googleapi.CheckResponse(res); err != nil {
64946		return nil, err
64947	}
64948	ret := &RegionInstanceGroupsListInstances{
64949		ServerResponse: googleapi.ServerResponse{
64950			Header:         res.Header,
64951			HTTPStatusCode: res.StatusCode,
64952		},
64953	}
64954	target := &ret
64955	if err := gensupport.DecodeResponse(target, res); err != nil {
64956		return nil, err
64957	}
64958	return ret, nil
64959	// {
64960	//   "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.",
64961	//   "httpMethod": "POST",
64962	//   "id": "compute.regionInstanceGroups.listInstances",
64963	//   "parameterOrder": [
64964	//     "project",
64965	//     "region",
64966	//     "instanceGroup"
64967	//   ],
64968	//   "parameters": {
64969	//     "filter": {
64970	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
64971	//       "location": "query",
64972	//       "type": "string"
64973	//     },
64974	//     "instanceGroup": {
64975	//       "description": "Name of the regional instance group for which we want to list the instances.",
64976	//       "location": "path",
64977	//       "required": true,
64978	//       "type": "string"
64979	//     },
64980	//     "maxResults": {
64981	//       "default": "500",
64982	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
64983	//       "format": "uint32",
64984	//       "location": "query",
64985	//       "minimum": "0",
64986	//       "type": "integer"
64987	//     },
64988	//     "orderBy": {
64989	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
64990	//       "location": "query",
64991	//       "type": "string"
64992	//     },
64993	//     "pageToken": {
64994	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
64995	//       "location": "query",
64996	//       "type": "string"
64997	//     },
64998	//     "project": {
64999	//       "description": "Project ID for this request.",
65000	//       "location": "path",
65001	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65002	//       "required": true,
65003	//       "type": "string"
65004	//     },
65005	//     "region": {
65006	//       "description": "Name of the region scoping this request.",
65007	//       "location": "path",
65008	//       "required": true,
65009	//       "type": "string"
65010	//     }
65011	//   },
65012	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances",
65013	//   "request": {
65014	//     "$ref": "RegionInstanceGroupsListInstancesRequest"
65015	//   },
65016	//   "response": {
65017	//     "$ref": "RegionInstanceGroupsListInstances"
65018	//   },
65019	//   "scopes": [
65020	//     "https://www.googleapis.com/auth/cloud-platform",
65021	//     "https://www.googleapis.com/auth/compute",
65022	//     "https://www.googleapis.com/auth/compute.readonly"
65023	//   ]
65024	// }
65025
65026}
65027
65028// Pages invokes f for each page of results.
65029// A non-nil error returned from f will halt the iteration.
65030// The provided context supersedes any context provided to the Context method.
65031func (c *RegionInstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupsListInstances) error) error {
65032	c.ctx_ = ctx
65033	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
65034	for {
65035		x, err := c.Do()
65036		if err != nil {
65037			return err
65038		}
65039		if err := f(x); err != nil {
65040			return err
65041		}
65042		if x.NextPageToken == "" {
65043			return nil
65044		}
65045		c.PageToken(x.NextPageToken)
65046	}
65047}
65048
65049// method id "compute.regionInstanceGroups.setNamedPorts":
65050
65051type RegionInstanceGroupsSetNamedPortsCall struct {
65052	s                                        *Service
65053	project                                  string
65054	region                                   string
65055	instanceGroup                            string
65056	regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest
65057	urlParams_                               gensupport.URLParams
65058	ctx_                                     context.Context
65059	header_                                  http.Header
65060}
65061
65062// SetNamedPorts: Sets the named ports for the specified regional
65063// instance group.
65064func (r *RegionInstanceGroupsService) SetNamedPorts(project string, region string, instanceGroup string, regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest) *RegionInstanceGroupsSetNamedPortsCall {
65065	c := &RegionInstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65066	c.project = project
65067	c.region = region
65068	c.instanceGroup = instanceGroup
65069	c.regioninstancegroupssetnamedportsrequest = regioninstancegroupssetnamedportsrequest
65070	return c
65071}
65072
65073// RequestId sets the optional parameter "requestId": An optional
65074// request ID to identify requests. Specify a unique request ID so that
65075// if you must retry your request, the server will know to ignore the
65076// request if it has already been completed.
65077//
65078// For example, consider a situation where you make an initial request
65079// and the request times out. If you make the request again with the
65080// same request ID, the server can check if original operation with the
65081// same request ID was received, and if so, will ignore the second
65082// request. This prevents clients from accidentally creating duplicate
65083// commitments.
65084//
65085// The request ID must be a valid UUID with the exception that zero UUID
65086// is not supported (00000000-0000-0000-0000-000000000000).
65087func (c *RegionInstanceGroupsSetNamedPortsCall) RequestId(requestId string) *RegionInstanceGroupsSetNamedPortsCall {
65088	c.urlParams_.Set("requestId", requestId)
65089	return c
65090}
65091
65092// Fields allows partial responses to be retrieved. See
65093// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65094// for more information.
65095func (c *RegionInstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsSetNamedPortsCall {
65096	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65097	return c
65098}
65099
65100// Context sets the context to be used in this call's Do method. Any
65101// pending HTTP request will be aborted if the provided context is
65102// canceled.
65103func (c *RegionInstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *RegionInstanceGroupsSetNamedPortsCall {
65104	c.ctx_ = ctx
65105	return c
65106}
65107
65108// Header returns an http.Header that can be modified by the caller to
65109// add HTTP headers to the request.
65110func (c *RegionInstanceGroupsSetNamedPortsCall) Header() http.Header {
65111	if c.header_ == nil {
65112		c.header_ = make(http.Header)
65113	}
65114	return c.header_
65115}
65116
65117func (c *RegionInstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
65118	reqHeaders := make(http.Header)
65119	for k, v := range c.header_ {
65120		reqHeaders[k] = v
65121	}
65122	reqHeaders.Set("User-Agent", c.s.userAgent())
65123	var body io.Reader = nil
65124	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupssetnamedportsrequest)
65125	if err != nil {
65126		return nil, err
65127	}
65128	reqHeaders.Set("Content-Type", "application/json")
65129	c.urlParams_.Set("alt", alt)
65130	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts")
65131	urls += "?" + c.urlParams_.Encode()
65132	req, _ := http.NewRequest("POST", urls, body)
65133	req.Header = reqHeaders
65134	googleapi.Expand(req.URL, map[string]string{
65135		"project":       c.project,
65136		"region":        c.region,
65137		"instanceGroup": c.instanceGroup,
65138	})
65139	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65140}
65141
65142// Do executes the "compute.regionInstanceGroups.setNamedPorts" call.
65143// Exactly one of *Operation or error will be non-nil. Any non-2xx
65144// status code is an error. Response headers are in either
65145// *Operation.ServerResponse.Header or (if a response was returned at
65146// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65147// to check whether the returned error was because
65148// http.StatusNotModified was returned.
65149func (c *RegionInstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65150	gensupport.SetOptions(c.urlParams_, opts...)
65151	res, err := c.doRequest("json")
65152	if res != nil && res.StatusCode == http.StatusNotModified {
65153		if res.Body != nil {
65154			res.Body.Close()
65155		}
65156		return nil, &googleapi.Error{
65157			Code:   res.StatusCode,
65158			Header: res.Header,
65159		}
65160	}
65161	if err != nil {
65162		return nil, err
65163	}
65164	defer googleapi.CloseBody(res)
65165	if err := googleapi.CheckResponse(res); err != nil {
65166		return nil, err
65167	}
65168	ret := &Operation{
65169		ServerResponse: googleapi.ServerResponse{
65170			Header:         res.Header,
65171			HTTPStatusCode: res.StatusCode,
65172		},
65173	}
65174	target := &ret
65175	if err := gensupport.DecodeResponse(target, res); err != nil {
65176		return nil, err
65177	}
65178	return ret, nil
65179	// {
65180	//   "description": "Sets the named ports for the specified regional instance group.",
65181	//   "httpMethod": "POST",
65182	//   "id": "compute.regionInstanceGroups.setNamedPorts",
65183	//   "parameterOrder": [
65184	//     "project",
65185	//     "region",
65186	//     "instanceGroup"
65187	//   ],
65188	//   "parameters": {
65189	//     "instanceGroup": {
65190	//       "description": "The name of the regional instance group where the named ports are updated.",
65191	//       "location": "path",
65192	//       "required": true,
65193	//       "type": "string"
65194	//     },
65195	//     "project": {
65196	//       "description": "Project ID for this request.",
65197	//       "location": "path",
65198	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65199	//       "required": true,
65200	//       "type": "string"
65201	//     },
65202	//     "region": {
65203	//       "description": "Name of the region scoping this request.",
65204	//       "location": "path",
65205	//       "required": true,
65206	//       "type": "string"
65207	//     },
65208	//     "requestId": {
65209	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65210	//       "location": "query",
65211	//       "type": "string"
65212	//     }
65213	//   },
65214	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts",
65215	//   "request": {
65216	//     "$ref": "RegionInstanceGroupsSetNamedPortsRequest"
65217	//   },
65218	//   "response": {
65219	//     "$ref": "Operation"
65220	//   },
65221	//   "scopes": [
65222	//     "https://www.googleapis.com/auth/cloud-platform",
65223	//     "https://www.googleapis.com/auth/compute"
65224	//   ]
65225	// }
65226
65227}
65228
65229// method id "compute.regionOperations.delete":
65230
65231type RegionOperationsDeleteCall struct {
65232	s          *Service
65233	project    string
65234	region     string
65235	operation  string
65236	urlParams_ gensupport.URLParams
65237	ctx_       context.Context
65238	header_    http.Header
65239}
65240
65241// Delete: Deletes the specified region-specific Operations resource.
65242// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/delete
65243func (r *RegionOperationsService) Delete(project string, region string, operation string) *RegionOperationsDeleteCall {
65244	c := &RegionOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65245	c.project = project
65246	c.region = region
65247	c.operation = operation
65248	return c
65249}
65250
65251// Fields allows partial responses to be retrieved. See
65252// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65253// for more information.
65254func (c *RegionOperationsDeleteCall) Fields(s ...googleapi.Field) *RegionOperationsDeleteCall {
65255	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65256	return c
65257}
65258
65259// Context sets the context to be used in this call's Do method. Any
65260// pending HTTP request will be aborted if the provided context is
65261// canceled.
65262func (c *RegionOperationsDeleteCall) Context(ctx context.Context) *RegionOperationsDeleteCall {
65263	c.ctx_ = ctx
65264	return c
65265}
65266
65267// Header returns an http.Header that can be modified by the caller to
65268// add HTTP headers to the request.
65269func (c *RegionOperationsDeleteCall) Header() http.Header {
65270	if c.header_ == nil {
65271		c.header_ = make(http.Header)
65272	}
65273	return c.header_
65274}
65275
65276func (c *RegionOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
65277	reqHeaders := make(http.Header)
65278	for k, v := range c.header_ {
65279		reqHeaders[k] = v
65280	}
65281	reqHeaders.Set("User-Agent", c.s.userAgent())
65282	var body io.Reader = nil
65283	c.urlParams_.Set("alt", alt)
65284	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}")
65285	urls += "?" + c.urlParams_.Encode()
65286	req, _ := http.NewRequest("DELETE", urls, body)
65287	req.Header = reqHeaders
65288	googleapi.Expand(req.URL, map[string]string{
65289		"project":   c.project,
65290		"region":    c.region,
65291		"operation": c.operation,
65292	})
65293	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65294}
65295
65296// Do executes the "compute.regionOperations.delete" call.
65297func (c *RegionOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
65298	gensupport.SetOptions(c.urlParams_, opts...)
65299	res, err := c.doRequest("json")
65300	if err != nil {
65301		return err
65302	}
65303	defer googleapi.CloseBody(res)
65304	if err := googleapi.CheckResponse(res); err != nil {
65305		return err
65306	}
65307	return nil
65308	// {
65309	//   "description": "Deletes the specified region-specific Operations resource.",
65310	//   "httpMethod": "DELETE",
65311	//   "id": "compute.regionOperations.delete",
65312	//   "parameterOrder": [
65313	//     "project",
65314	//     "region",
65315	//     "operation"
65316	//   ],
65317	//   "parameters": {
65318	//     "operation": {
65319	//       "description": "Name of the Operations resource to delete.",
65320	//       "location": "path",
65321	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
65322	//       "required": true,
65323	//       "type": "string"
65324	//     },
65325	//     "project": {
65326	//       "description": "Project ID for this request.",
65327	//       "location": "path",
65328	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65329	//       "required": true,
65330	//       "type": "string"
65331	//     },
65332	//     "region": {
65333	//       "description": "Name of the region for this request.",
65334	//       "location": "path",
65335	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
65336	//       "required": true,
65337	//       "type": "string"
65338	//     }
65339	//   },
65340	//   "path": "{project}/regions/{region}/operations/{operation}",
65341	//   "scopes": [
65342	//     "https://www.googleapis.com/auth/cloud-platform",
65343	//     "https://www.googleapis.com/auth/compute"
65344	//   ]
65345	// }
65346
65347}
65348
65349// method id "compute.regionOperations.get":
65350
65351type RegionOperationsGetCall struct {
65352	s            *Service
65353	project      string
65354	region       string
65355	operation    string
65356	urlParams_   gensupport.URLParams
65357	ifNoneMatch_ string
65358	ctx_         context.Context
65359	header_      http.Header
65360}
65361
65362// Get: Retrieves the specified region-specific Operations resource.
65363// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/get
65364func (r *RegionOperationsService) Get(project string, region string, operation string) *RegionOperationsGetCall {
65365	c := &RegionOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65366	c.project = project
65367	c.region = region
65368	c.operation = operation
65369	return c
65370}
65371
65372// Fields allows partial responses to be retrieved. See
65373// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65374// for more information.
65375func (c *RegionOperationsGetCall) Fields(s ...googleapi.Field) *RegionOperationsGetCall {
65376	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65377	return c
65378}
65379
65380// IfNoneMatch sets the optional parameter which makes the operation
65381// fail if the object's ETag matches the given value. This is useful for
65382// getting updates only after the object has changed since the last
65383// request. Use googleapi.IsNotModified to check whether the response
65384// error from Do is the result of In-None-Match.
65385func (c *RegionOperationsGetCall) IfNoneMatch(entityTag string) *RegionOperationsGetCall {
65386	c.ifNoneMatch_ = entityTag
65387	return c
65388}
65389
65390// Context sets the context to be used in this call's Do method. Any
65391// pending HTTP request will be aborted if the provided context is
65392// canceled.
65393func (c *RegionOperationsGetCall) Context(ctx context.Context) *RegionOperationsGetCall {
65394	c.ctx_ = ctx
65395	return c
65396}
65397
65398// Header returns an http.Header that can be modified by the caller to
65399// add HTTP headers to the request.
65400func (c *RegionOperationsGetCall) Header() http.Header {
65401	if c.header_ == nil {
65402		c.header_ = make(http.Header)
65403	}
65404	return c.header_
65405}
65406
65407func (c *RegionOperationsGetCall) doRequest(alt string) (*http.Response, error) {
65408	reqHeaders := make(http.Header)
65409	for k, v := range c.header_ {
65410		reqHeaders[k] = v
65411	}
65412	reqHeaders.Set("User-Agent", c.s.userAgent())
65413	if c.ifNoneMatch_ != "" {
65414		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65415	}
65416	var body io.Reader = nil
65417	c.urlParams_.Set("alt", alt)
65418	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}")
65419	urls += "?" + c.urlParams_.Encode()
65420	req, _ := http.NewRequest("GET", urls, body)
65421	req.Header = reqHeaders
65422	googleapi.Expand(req.URL, map[string]string{
65423		"project":   c.project,
65424		"region":    c.region,
65425		"operation": c.operation,
65426	})
65427	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65428}
65429
65430// Do executes the "compute.regionOperations.get" call.
65431// Exactly one of *Operation or error will be non-nil. Any non-2xx
65432// status code is an error. Response headers are in either
65433// *Operation.ServerResponse.Header or (if a response was returned at
65434// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65435// to check whether the returned error was because
65436// http.StatusNotModified was returned.
65437func (c *RegionOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65438	gensupport.SetOptions(c.urlParams_, opts...)
65439	res, err := c.doRequest("json")
65440	if res != nil && res.StatusCode == http.StatusNotModified {
65441		if res.Body != nil {
65442			res.Body.Close()
65443		}
65444		return nil, &googleapi.Error{
65445			Code:   res.StatusCode,
65446			Header: res.Header,
65447		}
65448	}
65449	if err != nil {
65450		return nil, err
65451	}
65452	defer googleapi.CloseBody(res)
65453	if err := googleapi.CheckResponse(res); err != nil {
65454		return nil, err
65455	}
65456	ret := &Operation{
65457		ServerResponse: googleapi.ServerResponse{
65458			Header:         res.Header,
65459			HTTPStatusCode: res.StatusCode,
65460		},
65461	}
65462	target := &ret
65463	if err := gensupport.DecodeResponse(target, res); err != nil {
65464		return nil, err
65465	}
65466	return ret, nil
65467	// {
65468	//   "description": "Retrieves the specified region-specific Operations resource.",
65469	//   "httpMethod": "GET",
65470	//   "id": "compute.regionOperations.get",
65471	//   "parameterOrder": [
65472	//     "project",
65473	//     "region",
65474	//     "operation"
65475	//   ],
65476	//   "parameters": {
65477	//     "operation": {
65478	//       "description": "Name of the Operations resource to return.",
65479	//       "location": "path",
65480	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
65481	//       "required": true,
65482	//       "type": "string"
65483	//     },
65484	//     "project": {
65485	//       "description": "Project ID for this request.",
65486	//       "location": "path",
65487	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65488	//       "required": true,
65489	//       "type": "string"
65490	//     },
65491	//     "region": {
65492	//       "description": "Name of the region for this request.",
65493	//       "location": "path",
65494	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
65495	//       "required": true,
65496	//       "type": "string"
65497	//     }
65498	//   },
65499	//   "path": "{project}/regions/{region}/operations/{operation}",
65500	//   "response": {
65501	//     "$ref": "Operation"
65502	//   },
65503	//   "scopes": [
65504	//     "https://www.googleapis.com/auth/cloud-platform",
65505	//     "https://www.googleapis.com/auth/compute",
65506	//     "https://www.googleapis.com/auth/compute.readonly"
65507	//   ]
65508	// }
65509
65510}
65511
65512// method id "compute.regionOperations.list":
65513
65514type RegionOperationsListCall struct {
65515	s            *Service
65516	project      string
65517	region       string
65518	urlParams_   gensupport.URLParams
65519	ifNoneMatch_ string
65520	ctx_         context.Context
65521	header_      http.Header
65522}
65523
65524// List: Retrieves a list of Operation resources contained within the
65525// specified region.
65526// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/list
65527func (r *RegionOperationsService) List(project string, region string) *RegionOperationsListCall {
65528	c := &RegionOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65529	c.project = project
65530	c.region = region
65531	return c
65532}
65533
65534// Filter sets the optional parameter "filter": A filter expression that
65535// filters resources listed in the response. The expression must specify
65536// the field name, a comparison operator, and the value that you want to
65537// use for filtering. The value must be a string, a number, or a
65538// boolean. The comparison operator must be either =, !=, >, or <.
65539//
65540// For example, if you are filtering Compute Engine instances, you can
65541// exclude instances named example-instance by specifying name !=
65542// example-instance.
65543//
65544// You can also filter nested fields. For example, you could specify
65545// scheduling.automaticRestart = false to include instances only if they
65546// are not scheduled for automatic restarts. You can use filtering on
65547// nested fields to filter based on resource labels.
65548//
65549// To filter on multiple expressions, provide each separate expression
65550// within parentheses. For example, (scheduling.automaticRestart = true)
65551// (cpuPlatform = "Intel Skylake"). By default, each expression is an
65552// AND expression. However, you can include AND and OR expressions
65553// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
65554// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
65555// true).
65556func (c *RegionOperationsListCall) Filter(filter string) *RegionOperationsListCall {
65557	c.urlParams_.Set("filter", filter)
65558	return c
65559}
65560
65561// MaxResults sets the optional parameter "maxResults": The maximum
65562// number of results per page that should be returned. If the number of
65563// available results is larger than maxResults, Compute Engine returns a
65564// nextPageToken that can be used to get the next page of results in
65565// subsequent list requests. Acceptable values are 0 to 500, inclusive.
65566// (Default: 500)
65567func (c *RegionOperationsListCall) MaxResults(maxResults int64) *RegionOperationsListCall {
65568	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
65569	return c
65570}
65571
65572// OrderBy sets the optional parameter "orderBy": Sorts list results by
65573// a certain order. By default, results are returned in alphanumerical
65574// order based on the resource name.
65575//
65576// You can also sort results in descending order based on the creation
65577// timestamp using orderBy="creationTimestamp desc". This sorts results
65578// based on the creationTimestamp field in reverse chronological order
65579// (newest result first). Use this to sort resources like operations so
65580// that the newest operation is returned first.
65581//
65582// Currently, only sorting by name or creationTimestamp desc is
65583// supported.
65584func (c *RegionOperationsListCall) OrderBy(orderBy string) *RegionOperationsListCall {
65585	c.urlParams_.Set("orderBy", orderBy)
65586	return c
65587}
65588
65589// PageToken sets the optional parameter "pageToken": Specifies a page
65590// token to use. Set pageToken to the nextPageToken returned by a
65591// previous list request to get the next page of results.
65592func (c *RegionOperationsListCall) PageToken(pageToken string) *RegionOperationsListCall {
65593	c.urlParams_.Set("pageToken", pageToken)
65594	return c
65595}
65596
65597// Fields allows partial responses to be retrieved. See
65598// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65599// for more information.
65600func (c *RegionOperationsListCall) Fields(s ...googleapi.Field) *RegionOperationsListCall {
65601	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65602	return c
65603}
65604
65605// IfNoneMatch sets the optional parameter which makes the operation
65606// fail if the object's ETag matches the given value. This is useful for
65607// getting updates only after the object has changed since the last
65608// request. Use googleapi.IsNotModified to check whether the response
65609// error from Do is the result of In-None-Match.
65610func (c *RegionOperationsListCall) IfNoneMatch(entityTag string) *RegionOperationsListCall {
65611	c.ifNoneMatch_ = entityTag
65612	return c
65613}
65614
65615// Context sets the context to be used in this call's Do method. Any
65616// pending HTTP request will be aborted if the provided context is
65617// canceled.
65618func (c *RegionOperationsListCall) Context(ctx context.Context) *RegionOperationsListCall {
65619	c.ctx_ = ctx
65620	return c
65621}
65622
65623// Header returns an http.Header that can be modified by the caller to
65624// add HTTP headers to the request.
65625func (c *RegionOperationsListCall) Header() http.Header {
65626	if c.header_ == nil {
65627		c.header_ = make(http.Header)
65628	}
65629	return c.header_
65630}
65631
65632func (c *RegionOperationsListCall) doRequest(alt string) (*http.Response, error) {
65633	reqHeaders := make(http.Header)
65634	for k, v := range c.header_ {
65635		reqHeaders[k] = v
65636	}
65637	reqHeaders.Set("User-Agent", c.s.userAgent())
65638	if c.ifNoneMatch_ != "" {
65639		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65640	}
65641	var body io.Reader = nil
65642	c.urlParams_.Set("alt", alt)
65643	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations")
65644	urls += "?" + c.urlParams_.Encode()
65645	req, _ := http.NewRequest("GET", urls, body)
65646	req.Header = reqHeaders
65647	googleapi.Expand(req.URL, map[string]string{
65648		"project": c.project,
65649		"region":  c.region,
65650	})
65651	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65652}
65653
65654// Do executes the "compute.regionOperations.list" call.
65655// Exactly one of *OperationList or error will be non-nil. Any non-2xx
65656// status code is an error. Response headers are in either
65657// *OperationList.ServerResponse.Header or (if a response was returned
65658// at all) in error.(*googleapi.Error).Header. Use
65659// googleapi.IsNotModified to check whether the returned error was
65660// because http.StatusNotModified was returned.
65661func (c *RegionOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
65662	gensupport.SetOptions(c.urlParams_, opts...)
65663	res, err := c.doRequest("json")
65664	if res != nil && res.StatusCode == http.StatusNotModified {
65665		if res.Body != nil {
65666			res.Body.Close()
65667		}
65668		return nil, &googleapi.Error{
65669			Code:   res.StatusCode,
65670			Header: res.Header,
65671		}
65672	}
65673	if err != nil {
65674		return nil, err
65675	}
65676	defer googleapi.CloseBody(res)
65677	if err := googleapi.CheckResponse(res); err != nil {
65678		return nil, err
65679	}
65680	ret := &OperationList{
65681		ServerResponse: googleapi.ServerResponse{
65682			Header:         res.Header,
65683			HTTPStatusCode: res.StatusCode,
65684		},
65685	}
65686	target := &ret
65687	if err := gensupport.DecodeResponse(target, res); err != nil {
65688		return nil, err
65689	}
65690	return ret, nil
65691	// {
65692	//   "description": "Retrieves a list of Operation resources contained within the specified region.",
65693	//   "httpMethod": "GET",
65694	//   "id": "compute.regionOperations.list",
65695	//   "parameterOrder": [
65696	//     "project",
65697	//     "region"
65698	//   ],
65699	//   "parameters": {
65700	//     "filter": {
65701	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
65702	//       "location": "query",
65703	//       "type": "string"
65704	//     },
65705	//     "maxResults": {
65706	//       "default": "500",
65707	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
65708	//       "format": "uint32",
65709	//       "location": "query",
65710	//       "minimum": "0",
65711	//       "type": "integer"
65712	//     },
65713	//     "orderBy": {
65714	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
65715	//       "location": "query",
65716	//       "type": "string"
65717	//     },
65718	//     "pageToken": {
65719	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
65720	//       "location": "query",
65721	//       "type": "string"
65722	//     },
65723	//     "project": {
65724	//       "description": "Project ID for this request.",
65725	//       "location": "path",
65726	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65727	//       "required": true,
65728	//       "type": "string"
65729	//     },
65730	//     "region": {
65731	//       "description": "Name of the region for this request.",
65732	//       "location": "path",
65733	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
65734	//       "required": true,
65735	//       "type": "string"
65736	//     }
65737	//   },
65738	//   "path": "{project}/regions/{region}/operations",
65739	//   "response": {
65740	//     "$ref": "OperationList"
65741	//   },
65742	//   "scopes": [
65743	//     "https://www.googleapis.com/auth/cloud-platform",
65744	//     "https://www.googleapis.com/auth/compute",
65745	//     "https://www.googleapis.com/auth/compute.readonly"
65746	//   ]
65747	// }
65748
65749}
65750
65751// Pages invokes f for each page of results.
65752// A non-nil error returned from f will halt the iteration.
65753// The provided context supersedes any context provided to the Context method.
65754func (c *RegionOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
65755	c.ctx_ = ctx
65756	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
65757	for {
65758		x, err := c.Do()
65759		if err != nil {
65760			return err
65761		}
65762		if err := f(x); err != nil {
65763			return err
65764		}
65765		if x.NextPageToken == "" {
65766			return nil
65767		}
65768		c.PageToken(x.NextPageToken)
65769	}
65770}
65771
65772// method id "compute.regions.get":
65773
65774type RegionsGetCall struct {
65775	s            *Service
65776	project      string
65777	region       string
65778	urlParams_   gensupport.URLParams
65779	ifNoneMatch_ string
65780	ctx_         context.Context
65781	header_      http.Header
65782}
65783
65784// Get: Returns the specified Region resource. Gets a list of available
65785// regions by making a list() request.
65786// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/get
65787func (r *RegionsService) Get(project string, region string) *RegionsGetCall {
65788	c := &RegionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65789	c.project = project
65790	c.region = region
65791	return c
65792}
65793
65794// Fields allows partial responses to be retrieved. See
65795// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65796// for more information.
65797func (c *RegionsGetCall) Fields(s ...googleapi.Field) *RegionsGetCall {
65798	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65799	return c
65800}
65801
65802// IfNoneMatch sets the optional parameter which makes the operation
65803// fail if the object's ETag matches the given value. This is useful for
65804// getting updates only after the object has changed since the last
65805// request. Use googleapi.IsNotModified to check whether the response
65806// error from Do is the result of In-None-Match.
65807func (c *RegionsGetCall) IfNoneMatch(entityTag string) *RegionsGetCall {
65808	c.ifNoneMatch_ = entityTag
65809	return c
65810}
65811
65812// Context sets the context to be used in this call's Do method. Any
65813// pending HTTP request will be aborted if the provided context is
65814// canceled.
65815func (c *RegionsGetCall) Context(ctx context.Context) *RegionsGetCall {
65816	c.ctx_ = ctx
65817	return c
65818}
65819
65820// Header returns an http.Header that can be modified by the caller to
65821// add HTTP headers to the request.
65822func (c *RegionsGetCall) Header() http.Header {
65823	if c.header_ == nil {
65824		c.header_ = make(http.Header)
65825	}
65826	return c.header_
65827}
65828
65829func (c *RegionsGetCall) doRequest(alt string) (*http.Response, error) {
65830	reqHeaders := make(http.Header)
65831	for k, v := range c.header_ {
65832		reqHeaders[k] = v
65833	}
65834	reqHeaders.Set("User-Agent", c.s.userAgent())
65835	if c.ifNoneMatch_ != "" {
65836		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65837	}
65838	var body io.Reader = nil
65839	c.urlParams_.Set("alt", alt)
65840	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}")
65841	urls += "?" + c.urlParams_.Encode()
65842	req, _ := http.NewRequest("GET", urls, body)
65843	req.Header = reqHeaders
65844	googleapi.Expand(req.URL, map[string]string{
65845		"project": c.project,
65846		"region":  c.region,
65847	})
65848	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65849}
65850
65851// Do executes the "compute.regions.get" call.
65852// Exactly one of *Region or error will be non-nil. Any non-2xx status
65853// code is an error. Response headers are in either
65854// *Region.ServerResponse.Header or (if a response was returned at all)
65855// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
65856// check whether the returned error was because http.StatusNotModified
65857// was returned.
65858func (c *RegionsGetCall) Do(opts ...googleapi.CallOption) (*Region, error) {
65859	gensupport.SetOptions(c.urlParams_, opts...)
65860	res, err := c.doRequest("json")
65861	if res != nil && res.StatusCode == http.StatusNotModified {
65862		if res.Body != nil {
65863			res.Body.Close()
65864		}
65865		return nil, &googleapi.Error{
65866			Code:   res.StatusCode,
65867			Header: res.Header,
65868		}
65869	}
65870	if err != nil {
65871		return nil, err
65872	}
65873	defer googleapi.CloseBody(res)
65874	if err := googleapi.CheckResponse(res); err != nil {
65875		return nil, err
65876	}
65877	ret := &Region{
65878		ServerResponse: googleapi.ServerResponse{
65879			Header:         res.Header,
65880			HTTPStatusCode: res.StatusCode,
65881		},
65882	}
65883	target := &ret
65884	if err := gensupport.DecodeResponse(target, res); err != nil {
65885		return nil, err
65886	}
65887	return ret, nil
65888	// {
65889	//   "description": "Returns the specified Region resource. Gets a list of available regions by making a list() request.",
65890	//   "httpMethod": "GET",
65891	//   "id": "compute.regions.get",
65892	//   "parameterOrder": [
65893	//     "project",
65894	//     "region"
65895	//   ],
65896	//   "parameters": {
65897	//     "project": {
65898	//       "description": "Project ID for this request.",
65899	//       "location": "path",
65900	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65901	//       "required": true,
65902	//       "type": "string"
65903	//     },
65904	//     "region": {
65905	//       "description": "Name of the region resource to return.",
65906	//       "location": "path",
65907	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
65908	//       "required": true,
65909	//       "type": "string"
65910	//     }
65911	//   },
65912	//   "path": "{project}/regions/{region}",
65913	//   "response": {
65914	//     "$ref": "Region"
65915	//   },
65916	//   "scopes": [
65917	//     "https://www.googleapis.com/auth/cloud-platform",
65918	//     "https://www.googleapis.com/auth/compute",
65919	//     "https://www.googleapis.com/auth/compute.readonly"
65920	//   ]
65921	// }
65922
65923}
65924
65925// method id "compute.regions.list":
65926
65927type RegionsListCall struct {
65928	s            *Service
65929	project      string
65930	urlParams_   gensupport.URLParams
65931	ifNoneMatch_ string
65932	ctx_         context.Context
65933	header_      http.Header
65934}
65935
65936// List: Retrieves the list of region resources available to the
65937// specified project.
65938// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/list
65939func (r *RegionsService) List(project string) *RegionsListCall {
65940	c := &RegionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65941	c.project = project
65942	return c
65943}
65944
65945// Filter sets the optional parameter "filter": A filter expression that
65946// filters resources listed in the response. The expression must specify
65947// the field name, a comparison operator, and the value that you want to
65948// use for filtering. The value must be a string, a number, or a
65949// boolean. The comparison operator must be either =, !=, >, or <.
65950//
65951// For example, if you are filtering Compute Engine instances, you can
65952// exclude instances named example-instance by specifying name !=
65953// example-instance.
65954//
65955// You can also filter nested fields. For example, you could specify
65956// scheduling.automaticRestart = false to include instances only if they
65957// are not scheduled for automatic restarts. You can use filtering on
65958// nested fields to filter based on resource labels.
65959//
65960// To filter on multiple expressions, provide each separate expression
65961// within parentheses. For example, (scheduling.automaticRestart = true)
65962// (cpuPlatform = "Intel Skylake"). By default, each expression is an
65963// AND expression. However, you can include AND and OR expressions
65964// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
65965// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
65966// true).
65967func (c *RegionsListCall) Filter(filter string) *RegionsListCall {
65968	c.urlParams_.Set("filter", filter)
65969	return c
65970}
65971
65972// MaxResults sets the optional parameter "maxResults": The maximum
65973// number of results per page that should be returned. If the number of
65974// available results is larger than maxResults, Compute Engine returns a
65975// nextPageToken that can be used to get the next page of results in
65976// subsequent list requests. Acceptable values are 0 to 500, inclusive.
65977// (Default: 500)
65978func (c *RegionsListCall) MaxResults(maxResults int64) *RegionsListCall {
65979	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
65980	return c
65981}
65982
65983// OrderBy sets the optional parameter "orderBy": Sorts list results by
65984// a certain order. By default, results are returned in alphanumerical
65985// order based on the resource name.
65986//
65987// You can also sort results in descending order based on the creation
65988// timestamp using orderBy="creationTimestamp desc". This sorts results
65989// based on the creationTimestamp field in reverse chronological order
65990// (newest result first). Use this to sort resources like operations so
65991// that the newest operation is returned first.
65992//
65993// Currently, only sorting by name or creationTimestamp desc is
65994// supported.
65995func (c *RegionsListCall) OrderBy(orderBy string) *RegionsListCall {
65996	c.urlParams_.Set("orderBy", orderBy)
65997	return c
65998}
65999
66000// PageToken sets the optional parameter "pageToken": Specifies a page
66001// token to use. Set pageToken to the nextPageToken returned by a
66002// previous list request to get the next page of results.
66003func (c *RegionsListCall) PageToken(pageToken string) *RegionsListCall {
66004	c.urlParams_.Set("pageToken", pageToken)
66005	return c
66006}
66007
66008// Fields allows partial responses to be retrieved. See
66009// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66010// for more information.
66011func (c *RegionsListCall) Fields(s ...googleapi.Field) *RegionsListCall {
66012	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66013	return c
66014}
66015
66016// IfNoneMatch sets the optional parameter which makes the operation
66017// fail if the object's ETag matches the given value. This is useful for
66018// getting updates only after the object has changed since the last
66019// request. Use googleapi.IsNotModified to check whether the response
66020// error from Do is the result of In-None-Match.
66021func (c *RegionsListCall) IfNoneMatch(entityTag string) *RegionsListCall {
66022	c.ifNoneMatch_ = entityTag
66023	return c
66024}
66025
66026// Context sets the context to be used in this call's Do method. Any
66027// pending HTTP request will be aborted if the provided context is
66028// canceled.
66029func (c *RegionsListCall) Context(ctx context.Context) *RegionsListCall {
66030	c.ctx_ = ctx
66031	return c
66032}
66033
66034// Header returns an http.Header that can be modified by the caller to
66035// add HTTP headers to the request.
66036func (c *RegionsListCall) Header() http.Header {
66037	if c.header_ == nil {
66038		c.header_ = make(http.Header)
66039	}
66040	return c.header_
66041}
66042
66043func (c *RegionsListCall) doRequest(alt string) (*http.Response, error) {
66044	reqHeaders := make(http.Header)
66045	for k, v := range c.header_ {
66046		reqHeaders[k] = v
66047	}
66048	reqHeaders.Set("User-Agent", c.s.userAgent())
66049	if c.ifNoneMatch_ != "" {
66050		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66051	}
66052	var body io.Reader = nil
66053	c.urlParams_.Set("alt", alt)
66054	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions")
66055	urls += "?" + c.urlParams_.Encode()
66056	req, _ := http.NewRequest("GET", urls, body)
66057	req.Header = reqHeaders
66058	googleapi.Expand(req.URL, map[string]string{
66059		"project": c.project,
66060	})
66061	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66062}
66063
66064// Do executes the "compute.regions.list" call.
66065// Exactly one of *RegionList or error will be non-nil. Any non-2xx
66066// status code is an error. Response headers are in either
66067// *RegionList.ServerResponse.Header or (if a response was returned at
66068// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66069// to check whether the returned error was because
66070// http.StatusNotModified was returned.
66071func (c *RegionsListCall) Do(opts ...googleapi.CallOption) (*RegionList, error) {
66072	gensupport.SetOptions(c.urlParams_, opts...)
66073	res, err := c.doRequest("json")
66074	if res != nil && res.StatusCode == http.StatusNotModified {
66075		if res.Body != nil {
66076			res.Body.Close()
66077		}
66078		return nil, &googleapi.Error{
66079			Code:   res.StatusCode,
66080			Header: res.Header,
66081		}
66082	}
66083	if err != nil {
66084		return nil, err
66085	}
66086	defer googleapi.CloseBody(res)
66087	if err := googleapi.CheckResponse(res); err != nil {
66088		return nil, err
66089	}
66090	ret := &RegionList{
66091		ServerResponse: googleapi.ServerResponse{
66092			Header:         res.Header,
66093			HTTPStatusCode: res.StatusCode,
66094		},
66095	}
66096	target := &ret
66097	if err := gensupport.DecodeResponse(target, res); err != nil {
66098		return nil, err
66099	}
66100	return ret, nil
66101	// {
66102	//   "description": "Retrieves the list of region resources available to the specified project.",
66103	//   "httpMethod": "GET",
66104	//   "id": "compute.regions.list",
66105	//   "parameterOrder": [
66106	//     "project"
66107	//   ],
66108	//   "parameters": {
66109	//     "filter": {
66110	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
66111	//       "location": "query",
66112	//       "type": "string"
66113	//     },
66114	//     "maxResults": {
66115	//       "default": "500",
66116	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
66117	//       "format": "uint32",
66118	//       "location": "query",
66119	//       "minimum": "0",
66120	//       "type": "integer"
66121	//     },
66122	//     "orderBy": {
66123	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
66124	//       "location": "query",
66125	//       "type": "string"
66126	//     },
66127	//     "pageToken": {
66128	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
66129	//       "location": "query",
66130	//       "type": "string"
66131	//     },
66132	//     "project": {
66133	//       "description": "Project ID for this request.",
66134	//       "location": "path",
66135	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66136	//       "required": true,
66137	//       "type": "string"
66138	//     }
66139	//   },
66140	//   "path": "{project}/regions",
66141	//   "response": {
66142	//     "$ref": "RegionList"
66143	//   },
66144	//   "scopes": [
66145	//     "https://www.googleapis.com/auth/cloud-platform",
66146	//     "https://www.googleapis.com/auth/compute",
66147	//     "https://www.googleapis.com/auth/compute.readonly"
66148	//   ]
66149	// }
66150
66151}
66152
66153// Pages invokes f for each page of results.
66154// A non-nil error returned from f will halt the iteration.
66155// The provided context supersedes any context provided to the Context method.
66156func (c *RegionsListCall) Pages(ctx context.Context, f func(*RegionList) error) error {
66157	c.ctx_ = ctx
66158	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
66159	for {
66160		x, err := c.Do()
66161		if err != nil {
66162			return err
66163		}
66164		if err := f(x); err != nil {
66165			return err
66166		}
66167		if x.NextPageToken == "" {
66168			return nil
66169		}
66170		c.PageToken(x.NextPageToken)
66171	}
66172}
66173
66174// method id "compute.routers.aggregatedList":
66175
66176type RoutersAggregatedListCall struct {
66177	s            *Service
66178	project      string
66179	urlParams_   gensupport.URLParams
66180	ifNoneMatch_ string
66181	ctx_         context.Context
66182	header_      http.Header
66183}
66184
66185// AggregatedList: Retrieves an aggregated list of routers.
66186func (r *RoutersService) AggregatedList(project string) *RoutersAggregatedListCall {
66187	c := &RoutersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66188	c.project = project
66189	return c
66190}
66191
66192// Filter sets the optional parameter "filter": A filter expression that
66193// filters resources listed in the response. The expression must specify
66194// the field name, a comparison operator, and the value that you want to
66195// use for filtering. The value must be a string, a number, or a
66196// boolean. The comparison operator must be either =, !=, >, or <.
66197//
66198// For example, if you are filtering Compute Engine instances, you can
66199// exclude instances named example-instance by specifying name !=
66200// example-instance.
66201//
66202// You can also filter nested fields. For example, you could specify
66203// scheduling.automaticRestart = false to include instances only if they
66204// are not scheduled for automatic restarts. You can use filtering on
66205// nested fields to filter based on resource labels.
66206//
66207// To filter on multiple expressions, provide each separate expression
66208// within parentheses. For example, (scheduling.automaticRestart = true)
66209// (cpuPlatform = "Intel Skylake"). By default, each expression is an
66210// AND expression. However, you can include AND and OR expressions
66211// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
66212// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
66213// true).
66214func (c *RoutersAggregatedListCall) Filter(filter string) *RoutersAggregatedListCall {
66215	c.urlParams_.Set("filter", filter)
66216	return c
66217}
66218
66219// MaxResults sets the optional parameter "maxResults": The maximum
66220// number of results per page that should be returned. If the number of
66221// available results is larger than maxResults, Compute Engine returns a
66222// nextPageToken that can be used to get the next page of results in
66223// subsequent list requests. Acceptable values are 0 to 500, inclusive.
66224// (Default: 500)
66225func (c *RoutersAggregatedListCall) MaxResults(maxResults int64) *RoutersAggregatedListCall {
66226	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
66227	return c
66228}
66229
66230// OrderBy sets the optional parameter "orderBy": Sorts list results by
66231// a certain order. By default, results are returned in alphanumerical
66232// order based on the resource name.
66233//
66234// You can also sort results in descending order based on the creation
66235// timestamp using orderBy="creationTimestamp desc". This sorts results
66236// based on the creationTimestamp field in reverse chronological order
66237// (newest result first). Use this to sort resources like operations so
66238// that the newest operation is returned first.
66239//
66240// Currently, only sorting by name or creationTimestamp desc is
66241// supported.
66242func (c *RoutersAggregatedListCall) OrderBy(orderBy string) *RoutersAggregatedListCall {
66243	c.urlParams_.Set("orderBy", orderBy)
66244	return c
66245}
66246
66247// PageToken sets the optional parameter "pageToken": Specifies a page
66248// token to use. Set pageToken to the nextPageToken returned by a
66249// previous list request to get the next page of results.
66250func (c *RoutersAggregatedListCall) PageToken(pageToken string) *RoutersAggregatedListCall {
66251	c.urlParams_.Set("pageToken", pageToken)
66252	return c
66253}
66254
66255// Fields allows partial responses to be retrieved. See
66256// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66257// for more information.
66258func (c *RoutersAggregatedListCall) Fields(s ...googleapi.Field) *RoutersAggregatedListCall {
66259	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66260	return c
66261}
66262
66263// IfNoneMatch sets the optional parameter which makes the operation
66264// fail if the object's ETag matches the given value. This is useful for
66265// getting updates only after the object has changed since the last
66266// request. Use googleapi.IsNotModified to check whether the response
66267// error from Do is the result of In-None-Match.
66268func (c *RoutersAggregatedListCall) IfNoneMatch(entityTag string) *RoutersAggregatedListCall {
66269	c.ifNoneMatch_ = entityTag
66270	return c
66271}
66272
66273// Context sets the context to be used in this call's Do method. Any
66274// pending HTTP request will be aborted if the provided context is
66275// canceled.
66276func (c *RoutersAggregatedListCall) Context(ctx context.Context) *RoutersAggregatedListCall {
66277	c.ctx_ = ctx
66278	return c
66279}
66280
66281// Header returns an http.Header that can be modified by the caller to
66282// add HTTP headers to the request.
66283func (c *RoutersAggregatedListCall) Header() http.Header {
66284	if c.header_ == nil {
66285		c.header_ = make(http.Header)
66286	}
66287	return c.header_
66288}
66289
66290func (c *RoutersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
66291	reqHeaders := make(http.Header)
66292	for k, v := range c.header_ {
66293		reqHeaders[k] = v
66294	}
66295	reqHeaders.Set("User-Agent", c.s.userAgent())
66296	if c.ifNoneMatch_ != "" {
66297		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66298	}
66299	var body io.Reader = nil
66300	c.urlParams_.Set("alt", alt)
66301	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/routers")
66302	urls += "?" + c.urlParams_.Encode()
66303	req, _ := http.NewRequest("GET", urls, body)
66304	req.Header = reqHeaders
66305	googleapi.Expand(req.URL, map[string]string{
66306		"project": c.project,
66307	})
66308	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66309}
66310
66311// Do executes the "compute.routers.aggregatedList" call.
66312// Exactly one of *RouterAggregatedList or error will be non-nil. Any
66313// non-2xx status code is an error. Response headers are in either
66314// *RouterAggregatedList.ServerResponse.Header or (if a response was
66315// returned at all) in error.(*googleapi.Error).Header. Use
66316// googleapi.IsNotModified to check whether the returned error was
66317// because http.StatusNotModified was returned.
66318func (c *RoutersAggregatedListCall) Do(opts ...googleapi.CallOption) (*RouterAggregatedList, error) {
66319	gensupport.SetOptions(c.urlParams_, opts...)
66320	res, err := c.doRequest("json")
66321	if res != nil && res.StatusCode == http.StatusNotModified {
66322		if res.Body != nil {
66323			res.Body.Close()
66324		}
66325		return nil, &googleapi.Error{
66326			Code:   res.StatusCode,
66327			Header: res.Header,
66328		}
66329	}
66330	if err != nil {
66331		return nil, err
66332	}
66333	defer googleapi.CloseBody(res)
66334	if err := googleapi.CheckResponse(res); err != nil {
66335		return nil, err
66336	}
66337	ret := &RouterAggregatedList{
66338		ServerResponse: googleapi.ServerResponse{
66339			Header:         res.Header,
66340			HTTPStatusCode: res.StatusCode,
66341		},
66342	}
66343	target := &ret
66344	if err := gensupport.DecodeResponse(target, res); err != nil {
66345		return nil, err
66346	}
66347	return ret, nil
66348	// {
66349	//   "description": "Retrieves an aggregated list of routers.",
66350	//   "httpMethod": "GET",
66351	//   "id": "compute.routers.aggregatedList",
66352	//   "parameterOrder": [
66353	//     "project"
66354	//   ],
66355	//   "parameters": {
66356	//     "filter": {
66357	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
66358	//       "location": "query",
66359	//       "type": "string"
66360	//     },
66361	//     "maxResults": {
66362	//       "default": "500",
66363	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
66364	//       "format": "uint32",
66365	//       "location": "query",
66366	//       "minimum": "0",
66367	//       "type": "integer"
66368	//     },
66369	//     "orderBy": {
66370	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
66371	//       "location": "query",
66372	//       "type": "string"
66373	//     },
66374	//     "pageToken": {
66375	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
66376	//       "location": "query",
66377	//       "type": "string"
66378	//     },
66379	//     "project": {
66380	//       "description": "Project ID for this request.",
66381	//       "location": "path",
66382	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66383	//       "required": true,
66384	//       "type": "string"
66385	//     }
66386	//   },
66387	//   "path": "{project}/aggregated/routers",
66388	//   "response": {
66389	//     "$ref": "RouterAggregatedList"
66390	//   },
66391	//   "scopes": [
66392	//     "https://www.googleapis.com/auth/cloud-platform",
66393	//     "https://www.googleapis.com/auth/compute",
66394	//     "https://www.googleapis.com/auth/compute.readonly"
66395	//   ]
66396	// }
66397
66398}
66399
66400// Pages invokes f for each page of results.
66401// A non-nil error returned from f will halt the iteration.
66402// The provided context supersedes any context provided to the Context method.
66403func (c *RoutersAggregatedListCall) Pages(ctx context.Context, f func(*RouterAggregatedList) error) error {
66404	c.ctx_ = ctx
66405	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
66406	for {
66407		x, err := c.Do()
66408		if err != nil {
66409			return err
66410		}
66411		if err := f(x); err != nil {
66412			return err
66413		}
66414		if x.NextPageToken == "" {
66415			return nil
66416		}
66417		c.PageToken(x.NextPageToken)
66418	}
66419}
66420
66421// method id "compute.routers.delete":
66422
66423type RoutersDeleteCall struct {
66424	s          *Service
66425	project    string
66426	region     string
66427	router     string
66428	urlParams_ gensupport.URLParams
66429	ctx_       context.Context
66430	header_    http.Header
66431}
66432
66433// Delete: Deletes the specified Router resource.
66434func (r *RoutersService) Delete(project string, region string, router string) *RoutersDeleteCall {
66435	c := &RoutersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66436	c.project = project
66437	c.region = region
66438	c.router = router
66439	return c
66440}
66441
66442// RequestId sets the optional parameter "requestId": An optional
66443// request ID to identify requests. Specify a unique request ID so that
66444// if you must retry your request, the server will know to ignore the
66445// request if it has already been completed.
66446//
66447// For example, consider a situation where you make an initial request
66448// and the request times out. If you make the request again with the
66449// same request ID, the server can check if original operation with the
66450// same request ID was received, and if so, will ignore the second
66451// request. This prevents clients from accidentally creating duplicate
66452// commitments.
66453//
66454// The request ID must be a valid UUID with the exception that zero UUID
66455// is not supported (00000000-0000-0000-0000-000000000000).
66456func (c *RoutersDeleteCall) RequestId(requestId string) *RoutersDeleteCall {
66457	c.urlParams_.Set("requestId", requestId)
66458	return c
66459}
66460
66461// Fields allows partial responses to be retrieved. See
66462// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66463// for more information.
66464func (c *RoutersDeleteCall) Fields(s ...googleapi.Field) *RoutersDeleteCall {
66465	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66466	return c
66467}
66468
66469// Context sets the context to be used in this call's Do method. Any
66470// pending HTTP request will be aborted if the provided context is
66471// canceled.
66472func (c *RoutersDeleteCall) Context(ctx context.Context) *RoutersDeleteCall {
66473	c.ctx_ = ctx
66474	return c
66475}
66476
66477// Header returns an http.Header that can be modified by the caller to
66478// add HTTP headers to the request.
66479func (c *RoutersDeleteCall) Header() http.Header {
66480	if c.header_ == nil {
66481		c.header_ = make(http.Header)
66482	}
66483	return c.header_
66484}
66485
66486func (c *RoutersDeleteCall) doRequest(alt string) (*http.Response, error) {
66487	reqHeaders := make(http.Header)
66488	for k, v := range c.header_ {
66489		reqHeaders[k] = v
66490	}
66491	reqHeaders.Set("User-Agent", c.s.userAgent())
66492	var body io.Reader = nil
66493	c.urlParams_.Set("alt", alt)
66494	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
66495	urls += "?" + c.urlParams_.Encode()
66496	req, _ := http.NewRequest("DELETE", urls, body)
66497	req.Header = reqHeaders
66498	googleapi.Expand(req.URL, map[string]string{
66499		"project": c.project,
66500		"region":  c.region,
66501		"router":  c.router,
66502	})
66503	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66504}
66505
66506// Do executes the "compute.routers.delete" call.
66507// Exactly one of *Operation or error will be non-nil. Any non-2xx
66508// status code is an error. Response headers are in either
66509// *Operation.ServerResponse.Header or (if a response was returned at
66510// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66511// to check whether the returned error was because
66512// http.StatusNotModified was returned.
66513func (c *RoutersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66514	gensupport.SetOptions(c.urlParams_, opts...)
66515	res, err := c.doRequest("json")
66516	if res != nil && res.StatusCode == http.StatusNotModified {
66517		if res.Body != nil {
66518			res.Body.Close()
66519		}
66520		return nil, &googleapi.Error{
66521			Code:   res.StatusCode,
66522			Header: res.Header,
66523		}
66524	}
66525	if err != nil {
66526		return nil, err
66527	}
66528	defer googleapi.CloseBody(res)
66529	if err := googleapi.CheckResponse(res); err != nil {
66530		return nil, err
66531	}
66532	ret := &Operation{
66533		ServerResponse: googleapi.ServerResponse{
66534			Header:         res.Header,
66535			HTTPStatusCode: res.StatusCode,
66536		},
66537	}
66538	target := &ret
66539	if err := gensupport.DecodeResponse(target, res); err != nil {
66540		return nil, err
66541	}
66542	return ret, nil
66543	// {
66544	//   "description": "Deletes the specified Router resource.",
66545	//   "httpMethod": "DELETE",
66546	//   "id": "compute.routers.delete",
66547	//   "parameterOrder": [
66548	//     "project",
66549	//     "region",
66550	//     "router"
66551	//   ],
66552	//   "parameters": {
66553	//     "project": {
66554	//       "description": "Project ID for this request.",
66555	//       "location": "path",
66556	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66557	//       "required": true,
66558	//       "type": "string"
66559	//     },
66560	//     "region": {
66561	//       "description": "Name of the region for this request.",
66562	//       "location": "path",
66563	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
66564	//       "required": true,
66565	//       "type": "string"
66566	//     },
66567	//     "requestId": {
66568	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66569	//       "location": "query",
66570	//       "type": "string"
66571	//     },
66572	//     "router": {
66573	//       "description": "Name of the Router resource to delete.",
66574	//       "location": "path",
66575	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
66576	//       "required": true,
66577	//       "type": "string"
66578	//     }
66579	//   },
66580	//   "path": "{project}/regions/{region}/routers/{router}",
66581	//   "response": {
66582	//     "$ref": "Operation"
66583	//   },
66584	//   "scopes": [
66585	//     "https://www.googleapis.com/auth/cloud-platform",
66586	//     "https://www.googleapis.com/auth/compute"
66587	//   ]
66588	// }
66589
66590}
66591
66592// method id "compute.routers.get":
66593
66594type RoutersGetCall struct {
66595	s            *Service
66596	project      string
66597	region       string
66598	router       string
66599	urlParams_   gensupport.URLParams
66600	ifNoneMatch_ string
66601	ctx_         context.Context
66602	header_      http.Header
66603}
66604
66605// Get: Returns the specified Router resource. Gets a list of available
66606// routers by making a list() request.
66607func (r *RoutersService) Get(project string, region string, router string) *RoutersGetCall {
66608	c := &RoutersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66609	c.project = project
66610	c.region = region
66611	c.router = router
66612	return c
66613}
66614
66615// Fields allows partial responses to be retrieved. See
66616// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66617// for more information.
66618func (c *RoutersGetCall) Fields(s ...googleapi.Field) *RoutersGetCall {
66619	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66620	return c
66621}
66622
66623// IfNoneMatch sets the optional parameter which makes the operation
66624// fail if the object's ETag matches the given value. This is useful for
66625// getting updates only after the object has changed since the last
66626// request. Use googleapi.IsNotModified to check whether the response
66627// error from Do is the result of In-None-Match.
66628func (c *RoutersGetCall) IfNoneMatch(entityTag string) *RoutersGetCall {
66629	c.ifNoneMatch_ = entityTag
66630	return c
66631}
66632
66633// Context sets the context to be used in this call's Do method. Any
66634// pending HTTP request will be aborted if the provided context is
66635// canceled.
66636func (c *RoutersGetCall) Context(ctx context.Context) *RoutersGetCall {
66637	c.ctx_ = ctx
66638	return c
66639}
66640
66641// Header returns an http.Header that can be modified by the caller to
66642// add HTTP headers to the request.
66643func (c *RoutersGetCall) Header() http.Header {
66644	if c.header_ == nil {
66645		c.header_ = make(http.Header)
66646	}
66647	return c.header_
66648}
66649
66650func (c *RoutersGetCall) doRequest(alt string) (*http.Response, error) {
66651	reqHeaders := make(http.Header)
66652	for k, v := range c.header_ {
66653		reqHeaders[k] = v
66654	}
66655	reqHeaders.Set("User-Agent", c.s.userAgent())
66656	if c.ifNoneMatch_ != "" {
66657		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66658	}
66659	var body io.Reader = nil
66660	c.urlParams_.Set("alt", alt)
66661	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
66662	urls += "?" + c.urlParams_.Encode()
66663	req, _ := http.NewRequest("GET", urls, body)
66664	req.Header = reqHeaders
66665	googleapi.Expand(req.URL, map[string]string{
66666		"project": c.project,
66667		"region":  c.region,
66668		"router":  c.router,
66669	})
66670	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66671}
66672
66673// Do executes the "compute.routers.get" call.
66674// Exactly one of *Router or error will be non-nil. Any non-2xx status
66675// code is an error. Response headers are in either
66676// *Router.ServerResponse.Header or (if a response was returned at all)
66677// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
66678// check whether the returned error was because http.StatusNotModified
66679// was returned.
66680func (c *RoutersGetCall) Do(opts ...googleapi.CallOption) (*Router, error) {
66681	gensupport.SetOptions(c.urlParams_, opts...)
66682	res, err := c.doRequest("json")
66683	if res != nil && res.StatusCode == http.StatusNotModified {
66684		if res.Body != nil {
66685			res.Body.Close()
66686		}
66687		return nil, &googleapi.Error{
66688			Code:   res.StatusCode,
66689			Header: res.Header,
66690		}
66691	}
66692	if err != nil {
66693		return nil, err
66694	}
66695	defer googleapi.CloseBody(res)
66696	if err := googleapi.CheckResponse(res); err != nil {
66697		return nil, err
66698	}
66699	ret := &Router{
66700		ServerResponse: googleapi.ServerResponse{
66701			Header:         res.Header,
66702			HTTPStatusCode: res.StatusCode,
66703		},
66704	}
66705	target := &ret
66706	if err := gensupport.DecodeResponse(target, res); err != nil {
66707		return nil, err
66708	}
66709	return ret, nil
66710	// {
66711	//   "description": "Returns the specified Router resource. Gets a list of available routers by making a list() request.",
66712	//   "httpMethod": "GET",
66713	//   "id": "compute.routers.get",
66714	//   "parameterOrder": [
66715	//     "project",
66716	//     "region",
66717	//     "router"
66718	//   ],
66719	//   "parameters": {
66720	//     "project": {
66721	//       "description": "Project ID for this request.",
66722	//       "location": "path",
66723	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66724	//       "required": true,
66725	//       "type": "string"
66726	//     },
66727	//     "region": {
66728	//       "description": "Name of the region for this request.",
66729	//       "location": "path",
66730	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
66731	//       "required": true,
66732	//       "type": "string"
66733	//     },
66734	//     "router": {
66735	//       "description": "Name of the Router resource to return.",
66736	//       "location": "path",
66737	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
66738	//       "required": true,
66739	//       "type": "string"
66740	//     }
66741	//   },
66742	//   "path": "{project}/regions/{region}/routers/{router}",
66743	//   "response": {
66744	//     "$ref": "Router"
66745	//   },
66746	//   "scopes": [
66747	//     "https://www.googleapis.com/auth/cloud-platform",
66748	//     "https://www.googleapis.com/auth/compute",
66749	//     "https://www.googleapis.com/auth/compute.readonly"
66750	//   ]
66751	// }
66752
66753}
66754
66755// method id "compute.routers.getRouterStatus":
66756
66757type RoutersGetRouterStatusCall struct {
66758	s            *Service
66759	project      string
66760	region       string
66761	router       string
66762	urlParams_   gensupport.URLParams
66763	ifNoneMatch_ string
66764	ctx_         context.Context
66765	header_      http.Header
66766}
66767
66768// GetRouterStatus: Retrieves runtime information of the specified
66769// router.
66770func (r *RoutersService) GetRouterStatus(project string, region string, router string) *RoutersGetRouterStatusCall {
66771	c := &RoutersGetRouterStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66772	c.project = project
66773	c.region = region
66774	c.router = router
66775	return c
66776}
66777
66778// Fields allows partial responses to be retrieved. See
66779// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66780// for more information.
66781func (c *RoutersGetRouterStatusCall) Fields(s ...googleapi.Field) *RoutersGetRouterStatusCall {
66782	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66783	return c
66784}
66785
66786// IfNoneMatch sets the optional parameter which makes the operation
66787// fail if the object's ETag matches the given value. This is useful for
66788// getting updates only after the object has changed since the last
66789// request. Use googleapi.IsNotModified to check whether the response
66790// error from Do is the result of In-None-Match.
66791func (c *RoutersGetRouterStatusCall) IfNoneMatch(entityTag string) *RoutersGetRouterStatusCall {
66792	c.ifNoneMatch_ = entityTag
66793	return c
66794}
66795
66796// Context sets the context to be used in this call's Do method. Any
66797// pending HTTP request will be aborted if the provided context is
66798// canceled.
66799func (c *RoutersGetRouterStatusCall) Context(ctx context.Context) *RoutersGetRouterStatusCall {
66800	c.ctx_ = ctx
66801	return c
66802}
66803
66804// Header returns an http.Header that can be modified by the caller to
66805// add HTTP headers to the request.
66806func (c *RoutersGetRouterStatusCall) Header() http.Header {
66807	if c.header_ == nil {
66808		c.header_ = make(http.Header)
66809	}
66810	return c.header_
66811}
66812
66813func (c *RoutersGetRouterStatusCall) doRequest(alt string) (*http.Response, error) {
66814	reqHeaders := make(http.Header)
66815	for k, v := range c.header_ {
66816		reqHeaders[k] = v
66817	}
66818	reqHeaders.Set("User-Agent", c.s.userAgent())
66819	if c.ifNoneMatch_ != "" {
66820		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66821	}
66822	var body io.Reader = nil
66823	c.urlParams_.Set("alt", alt)
66824	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/getRouterStatus")
66825	urls += "?" + c.urlParams_.Encode()
66826	req, _ := http.NewRequest("GET", urls, body)
66827	req.Header = reqHeaders
66828	googleapi.Expand(req.URL, map[string]string{
66829		"project": c.project,
66830		"region":  c.region,
66831		"router":  c.router,
66832	})
66833	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66834}
66835
66836// Do executes the "compute.routers.getRouterStatus" call.
66837// Exactly one of *RouterStatusResponse or error will be non-nil. Any
66838// non-2xx status code is an error. Response headers are in either
66839// *RouterStatusResponse.ServerResponse.Header or (if a response was
66840// returned at all) in error.(*googleapi.Error).Header. Use
66841// googleapi.IsNotModified to check whether the returned error was
66842// because http.StatusNotModified was returned.
66843func (c *RoutersGetRouterStatusCall) Do(opts ...googleapi.CallOption) (*RouterStatusResponse, error) {
66844	gensupport.SetOptions(c.urlParams_, opts...)
66845	res, err := c.doRequest("json")
66846	if res != nil && res.StatusCode == http.StatusNotModified {
66847		if res.Body != nil {
66848			res.Body.Close()
66849		}
66850		return nil, &googleapi.Error{
66851			Code:   res.StatusCode,
66852			Header: res.Header,
66853		}
66854	}
66855	if err != nil {
66856		return nil, err
66857	}
66858	defer googleapi.CloseBody(res)
66859	if err := googleapi.CheckResponse(res); err != nil {
66860		return nil, err
66861	}
66862	ret := &RouterStatusResponse{
66863		ServerResponse: googleapi.ServerResponse{
66864			Header:         res.Header,
66865			HTTPStatusCode: res.StatusCode,
66866		},
66867	}
66868	target := &ret
66869	if err := gensupport.DecodeResponse(target, res); err != nil {
66870		return nil, err
66871	}
66872	return ret, nil
66873	// {
66874	//   "description": "Retrieves runtime information of the specified router.",
66875	//   "httpMethod": "GET",
66876	//   "id": "compute.routers.getRouterStatus",
66877	//   "parameterOrder": [
66878	//     "project",
66879	//     "region",
66880	//     "router"
66881	//   ],
66882	//   "parameters": {
66883	//     "project": {
66884	//       "description": "Project ID for this request.",
66885	//       "location": "path",
66886	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66887	//       "required": true,
66888	//       "type": "string"
66889	//     },
66890	//     "region": {
66891	//       "description": "Name of the region for this request.",
66892	//       "location": "path",
66893	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
66894	//       "required": true,
66895	//       "type": "string"
66896	//     },
66897	//     "router": {
66898	//       "description": "Name of the Router resource to query.",
66899	//       "location": "path",
66900	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
66901	//       "required": true,
66902	//       "type": "string"
66903	//     }
66904	//   },
66905	//   "path": "{project}/regions/{region}/routers/{router}/getRouterStatus",
66906	//   "response": {
66907	//     "$ref": "RouterStatusResponse"
66908	//   },
66909	//   "scopes": [
66910	//     "https://www.googleapis.com/auth/cloud-platform",
66911	//     "https://www.googleapis.com/auth/compute",
66912	//     "https://www.googleapis.com/auth/compute.readonly"
66913	//   ]
66914	// }
66915
66916}
66917
66918// method id "compute.routers.insert":
66919
66920type RoutersInsertCall struct {
66921	s          *Service
66922	project    string
66923	region     string
66924	router     *Router
66925	urlParams_ gensupport.URLParams
66926	ctx_       context.Context
66927	header_    http.Header
66928}
66929
66930// Insert: Creates a Router resource in the specified project and region
66931// using the data included in the request.
66932func (r *RoutersService) Insert(project string, region string, router *Router) *RoutersInsertCall {
66933	c := &RoutersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66934	c.project = project
66935	c.region = region
66936	c.router = router
66937	return c
66938}
66939
66940// RequestId sets the optional parameter "requestId": An optional
66941// request ID to identify requests. Specify a unique request ID so that
66942// if you must retry your request, the server will know to ignore the
66943// request if it has already been completed.
66944//
66945// For example, consider a situation where you make an initial request
66946// and the request times out. If you make the request again with the
66947// same request ID, the server can check if original operation with the
66948// same request ID was received, and if so, will ignore the second
66949// request. This prevents clients from accidentally creating duplicate
66950// commitments.
66951//
66952// The request ID must be a valid UUID with the exception that zero UUID
66953// is not supported (00000000-0000-0000-0000-000000000000).
66954func (c *RoutersInsertCall) RequestId(requestId string) *RoutersInsertCall {
66955	c.urlParams_.Set("requestId", requestId)
66956	return c
66957}
66958
66959// Fields allows partial responses to be retrieved. See
66960// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66961// for more information.
66962func (c *RoutersInsertCall) Fields(s ...googleapi.Field) *RoutersInsertCall {
66963	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66964	return c
66965}
66966
66967// Context sets the context to be used in this call's Do method. Any
66968// pending HTTP request will be aborted if the provided context is
66969// canceled.
66970func (c *RoutersInsertCall) Context(ctx context.Context) *RoutersInsertCall {
66971	c.ctx_ = ctx
66972	return c
66973}
66974
66975// Header returns an http.Header that can be modified by the caller to
66976// add HTTP headers to the request.
66977func (c *RoutersInsertCall) Header() http.Header {
66978	if c.header_ == nil {
66979		c.header_ = make(http.Header)
66980	}
66981	return c.header_
66982}
66983
66984func (c *RoutersInsertCall) doRequest(alt string) (*http.Response, error) {
66985	reqHeaders := make(http.Header)
66986	for k, v := range c.header_ {
66987		reqHeaders[k] = v
66988	}
66989	reqHeaders.Set("User-Agent", c.s.userAgent())
66990	var body io.Reader = nil
66991	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router)
66992	if err != nil {
66993		return nil, err
66994	}
66995	reqHeaders.Set("Content-Type", "application/json")
66996	c.urlParams_.Set("alt", alt)
66997	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers")
66998	urls += "?" + c.urlParams_.Encode()
66999	req, _ := http.NewRequest("POST", urls, body)
67000	req.Header = reqHeaders
67001	googleapi.Expand(req.URL, map[string]string{
67002		"project": c.project,
67003		"region":  c.region,
67004	})
67005	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67006}
67007
67008// Do executes the "compute.routers.insert" call.
67009// Exactly one of *Operation or error will be non-nil. Any non-2xx
67010// status code is an error. Response headers are in either
67011// *Operation.ServerResponse.Header or (if a response was returned at
67012// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67013// to check whether the returned error was because
67014// http.StatusNotModified was returned.
67015func (c *RoutersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67016	gensupport.SetOptions(c.urlParams_, opts...)
67017	res, err := c.doRequest("json")
67018	if res != nil && res.StatusCode == http.StatusNotModified {
67019		if res.Body != nil {
67020			res.Body.Close()
67021		}
67022		return nil, &googleapi.Error{
67023			Code:   res.StatusCode,
67024			Header: res.Header,
67025		}
67026	}
67027	if err != nil {
67028		return nil, err
67029	}
67030	defer googleapi.CloseBody(res)
67031	if err := googleapi.CheckResponse(res); err != nil {
67032		return nil, err
67033	}
67034	ret := &Operation{
67035		ServerResponse: googleapi.ServerResponse{
67036			Header:         res.Header,
67037			HTTPStatusCode: res.StatusCode,
67038		},
67039	}
67040	target := &ret
67041	if err := gensupport.DecodeResponse(target, res); err != nil {
67042		return nil, err
67043	}
67044	return ret, nil
67045	// {
67046	//   "description": "Creates a Router resource in the specified project and region using the data included in the request.",
67047	//   "httpMethod": "POST",
67048	//   "id": "compute.routers.insert",
67049	//   "parameterOrder": [
67050	//     "project",
67051	//     "region"
67052	//   ],
67053	//   "parameters": {
67054	//     "project": {
67055	//       "description": "Project ID for this request.",
67056	//       "location": "path",
67057	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67058	//       "required": true,
67059	//       "type": "string"
67060	//     },
67061	//     "region": {
67062	//       "description": "Name of the region for this request.",
67063	//       "location": "path",
67064	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67065	//       "required": true,
67066	//       "type": "string"
67067	//     },
67068	//     "requestId": {
67069	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67070	//       "location": "query",
67071	//       "type": "string"
67072	//     }
67073	//   },
67074	//   "path": "{project}/regions/{region}/routers",
67075	//   "request": {
67076	//     "$ref": "Router"
67077	//   },
67078	//   "response": {
67079	//     "$ref": "Operation"
67080	//   },
67081	//   "scopes": [
67082	//     "https://www.googleapis.com/auth/cloud-platform",
67083	//     "https://www.googleapis.com/auth/compute"
67084	//   ]
67085	// }
67086
67087}
67088
67089// method id "compute.routers.list":
67090
67091type RoutersListCall struct {
67092	s            *Service
67093	project      string
67094	region       string
67095	urlParams_   gensupport.URLParams
67096	ifNoneMatch_ string
67097	ctx_         context.Context
67098	header_      http.Header
67099}
67100
67101// List: Retrieves a list of Router resources available to the specified
67102// project.
67103func (r *RoutersService) List(project string, region string) *RoutersListCall {
67104	c := &RoutersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67105	c.project = project
67106	c.region = region
67107	return c
67108}
67109
67110// Filter sets the optional parameter "filter": A filter expression that
67111// filters resources listed in the response. The expression must specify
67112// the field name, a comparison operator, and the value that you want to
67113// use for filtering. The value must be a string, a number, or a
67114// boolean. The comparison operator must be either =, !=, >, or <.
67115//
67116// For example, if you are filtering Compute Engine instances, you can
67117// exclude instances named example-instance by specifying name !=
67118// example-instance.
67119//
67120// You can also filter nested fields. For example, you could specify
67121// scheduling.automaticRestart = false to include instances only if they
67122// are not scheduled for automatic restarts. You can use filtering on
67123// nested fields to filter based on resource labels.
67124//
67125// To filter on multiple expressions, provide each separate expression
67126// within parentheses. For example, (scheduling.automaticRestart = true)
67127// (cpuPlatform = "Intel Skylake"). By default, each expression is an
67128// AND expression. However, you can include AND and OR expressions
67129// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
67130// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
67131// true).
67132func (c *RoutersListCall) Filter(filter string) *RoutersListCall {
67133	c.urlParams_.Set("filter", filter)
67134	return c
67135}
67136
67137// MaxResults sets the optional parameter "maxResults": The maximum
67138// number of results per page that should be returned. If the number of
67139// available results is larger than maxResults, Compute Engine returns a
67140// nextPageToken that can be used to get the next page of results in
67141// subsequent list requests. Acceptable values are 0 to 500, inclusive.
67142// (Default: 500)
67143func (c *RoutersListCall) MaxResults(maxResults int64) *RoutersListCall {
67144	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
67145	return c
67146}
67147
67148// OrderBy sets the optional parameter "orderBy": Sorts list results by
67149// a certain order. By default, results are returned in alphanumerical
67150// order based on the resource name.
67151//
67152// You can also sort results in descending order based on the creation
67153// timestamp using orderBy="creationTimestamp desc". This sorts results
67154// based on the creationTimestamp field in reverse chronological order
67155// (newest result first). Use this to sort resources like operations so
67156// that the newest operation is returned first.
67157//
67158// Currently, only sorting by name or creationTimestamp desc is
67159// supported.
67160func (c *RoutersListCall) OrderBy(orderBy string) *RoutersListCall {
67161	c.urlParams_.Set("orderBy", orderBy)
67162	return c
67163}
67164
67165// PageToken sets the optional parameter "pageToken": Specifies a page
67166// token to use. Set pageToken to the nextPageToken returned by a
67167// previous list request to get the next page of results.
67168func (c *RoutersListCall) PageToken(pageToken string) *RoutersListCall {
67169	c.urlParams_.Set("pageToken", pageToken)
67170	return c
67171}
67172
67173// Fields allows partial responses to be retrieved. See
67174// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67175// for more information.
67176func (c *RoutersListCall) Fields(s ...googleapi.Field) *RoutersListCall {
67177	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67178	return c
67179}
67180
67181// IfNoneMatch sets the optional parameter which makes the operation
67182// fail if the object's ETag matches the given value. This is useful for
67183// getting updates only after the object has changed since the last
67184// request. Use googleapi.IsNotModified to check whether the response
67185// error from Do is the result of In-None-Match.
67186func (c *RoutersListCall) IfNoneMatch(entityTag string) *RoutersListCall {
67187	c.ifNoneMatch_ = entityTag
67188	return c
67189}
67190
67191// Context sets the context to be used in this call's Do method. Any
67192// pending HTTP request will be aborted if the provided context is
67193// canceled.
67194func (c *RoutersListCall) Context(ctx context.Context) *RoutersListCall {
67195	c.ctx_ = ctx
67196	return c
67197}
67198
67199// Header returns an http.Header that can be modified by the caller to
67200// add HTTP headers to the request.
67201func (c *RoutersListCall) Header() http.Header {
67202	if c.header_ == nil {
67203		c.header_ = make(http.Header)
67204	}
67205	return c.header_
67206}
67207
67208func (c *RoutersListCall) doRequest(alt string) (*http.Response, error) {
67209	reqHeaders := make(http.Header)
67210	for k, v := range c.header_ {
67211		reqHeaders[k] = v
67212	}
67213	reqHeaders.Set("User-Agent", c.s.userAgent())
67214	if c.ifNoneMatch_ != "" {
67215		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67216	}
67217	var body io.Reader = nil
67218	c.urlParams_.Set("alt", alt)
67219	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers")
67220	urls += "?" + c.urlParams_.Encode()
67221	req, _ := http.NewRequest("GET", urls, body)
67222	req.Header = reqHeaders
67223	googleapi.Expand(req.URL, map[string]string{
67224		"project": c.project,
67225		"region":  c.region,
67226	})
67227	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67228}
67229
67230// Do executes the "compute.routers.list" call.
67231// Exactly one of *RouterList or error will be non-nil. Any non-2xx
67232// status code is an error. Response headers are in either
67233// *RouterList.ServerResponse.Header or (if a response was returned at
67234// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67235// to check whether the returned error was because
67236// http.StatusNotModified was returned.
67237func (c *RoutersListCall) Do(opts ...googleapi.CallOption) (*RouterList, error) {
67238	gensupport.SetOptions(c.urlParams_, opts...)
67239	res, err := c.doRequest("json")
67240	if res != nil && res.StatusCode == http.StatusNotModified {
67241		if res.Body != nil {
67242			res.Body.Close()
67243		}
67244		return nil, &googleapi.Error{
67245			Code:   res.StatusCode,
67246			Header: res.Header,
67247		}
67248	}
67249	if err != nil {
67250		return nil, err
67251	}
67252	defer googleapi.CloseBody(res)
67253	if err := googleapi.CheckResponse(res); err != nil {
67254		return nil, err
67255	}
67256	ret := &RouterList{
67257		ServerResponse: googleapi.ServerResponse{
67258			Header:         res.Header,
67259			HTTPStatusCode: res.StatusCode,
67260		},
67261	}
67262	target := &ret
67263	if err := gensupport.DecodeResponse(target, res); err != nil {
67264		return nil, err
67265	}
67266	return ret, nil
67267	// {
67268	//   "description": "Retrieves a list of Router resources available to the specified project.",
67269	//   "httpMethod": "GET",
67270	//   "id": "compute.routers.list",
67271	//   "parameterOrder": [
67272	//     "project",
67273	//     "region"
67274	//   ],
67275	//   "parameters": {
67276	//     "filter": {
67277	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
67278	//       "location": "query",
67279	//       "type": "string"
67280	//     },
67281	//     "maxResults": {
67282	//       "default": "500",
67283	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
67284	//       "format": "uint32",
67285	//       "location": "query",
67286	//       "minimum": "0",
67287	//       "type": "integer"
67288	//     },
67289	//     "orderBy": {
67290	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
67291	//       "location": "query",
67292	//       "type": "string"
67293	//     },
67294	//     "pageToken": {
67295	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
67296	//       "location": "query",
67297	//       "type": "string"
67298	//     },
67299	//     "project": {
67300	//       "description": "Project ID for this request.",
67301	//       "location": "path",
67302	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67303	//       "required": true,
67304	//       "type": "string"
67305	//     },
67306	//     "region": {
67307	//       "description": "Name of the region for this request.",
67308	//       "location": "path",
67309	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67310	//       "required": true,
67311	//       "type": "string"
67312	//     }
67313	//   },
67314	//   "path": "{project}/regions/{region}/routers",
67315	//   "response": {
67316	//     "$ref": "RouterList"
67317	//   },
67318	//   "scopes": [
67319	//     "https://www.googleapis.com/auth/cloud-platform",
67320	//     "https://www.googleapis.com/auth/compute",
67321	//     "https://www.googleapis.com/auth/compute.readonly"
67322	//   ]
67323	// }
67324
67325}
67326
67327// Pages invokes f for each page of results.
67328// A non-nil error returned from f will halt the iteration.
67329// The provided context supersedes any context provided to the Context method.
67330func (c *RoutersListCall) Pages(ctx context.Context, f func(*RouterList) error) error {
67331	c.ctx_ = ctx
67332	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
67333	for {
67334		x, err := c.Do()
67335		if err != nil {
67336			return err
67337		}
67338		if err := f(x); err != nil {
67339			return err
67340		}
67341		if x.NextPageToken == "" {
67342			return nil
67343		}
67344		c.PageToken(x.NextPageToken)
67345	}
67346}
67347
67348// method id "compute.routers.patch":
67349
67350type RoutersPatchCall struct {
67351	s          *Service
67352	project    string
67353	region     string
67354	router     string
67355	router2    *Router
67356	urlParams_ gensupport.URLParams
67357	ctx_       context.Context
67358	header_    http.Header
67359}
67360
67361// Patch: Patches the specified Router resource with the data included
67362// in the request. This method supports PATCH semantics and uses JSON
67363// merge patch format and processing rules.
67364func (r *RoutersService) Patch(project string, region string, router string, router2 *Router) *RoutersPatchCall {
67365	c := &RoutersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67366	c.project = project
67367	c.region = region
67368	c.router = router
67369	c.router2 = router2
67370	return c
67371}
67372
67373// RequestId sets the optional parameter "requestId": An optional
67374// request ID to identify requests. Specify a unique request ID so that
67375// if you must retry your request, the server will know to ignore the
67376// request if it has already been completed.
67377//
67378// For example, consider a situation where you make an initial request
67379// and the request times out. If you make the request again with the
67380// same request ID, the server can check if original operation with the
67381// same request ID was received, and if so, will ignore the second
67382// request. This prevents clients from accidentally creating duplicate
67383// commitments.
67384//
67385// The request ID must be a valid UUID with the exception that zero UUID
67386// is not supported (00000000-0000-0000-0000-000000000000).
67387func (c *RoutersPatchCall) RequestId(requestId string) *RoutersPatchCall {
67388	c.urlParams_.Set("requestId", requestId)
67389	return c
67390}
67391
67392// Fields allows partial responses to be retrieved. See
67393// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67394// for more information.
67395func (c *RoutersPatchCall) Fields(s ...googleapi.Field) *RoutersPatchCall {
67396	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67397	return c
67398}
67399
67400// Context sets the context to be used in this call's Do method. Any
67401// pending HTTP request will be aborted if the provided context is
67402// canceled.
67403func (c *RoutersPatchCall) Context(ctx context.Context) *RoutersPatchCall {
67404	c.ctx_ = ctx
67405	return c
67406}
67407
67408// Header returns an http.Header that can be modified by the caller to
67409// add HTTP headers to the request.
67410func (c *RoutersPatchCall) Header() http.Header {
67411	if c.header_ == nil {
67412		c.header_ = make(http.Header)
67413	}
67414	return c.header_
67415}
67416
67417func (c *RoutersPatchCall) doRequest(alt string) (*http.Response, error) {
67418	reqHeaders := make(http.Header)
67419	for k, v := range c.header_ {
67420		reqHeaders[k] = v
67421	}
67422	reqHeaders.Set("User-Agent", c.s.userAgent())
67423	var body io.Reader = nil
67424	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
67425	if err != nil {
67426		return nil, err
67427	}
67428	reqHeaders.Set("Content-Type", "application/json")
67429	c.urlParams_.Set("alt", alt)
67430	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
67431	urls += "?" + c.urlParams_.Encode()
67432	req, _ := http.NewRequest("PATCH", urls, body)
67433	req.Header = reqHeaders
67434	googleapi.Expand(req.URL, map[string]string{
67435		"project": c.project,
67436		"region":  c.region,
67437		"router":  c.router,
67438	})
67439	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67440}
67441
67442// Do executes the "compute.routers.patch" call.
67443// Exactly one of *Operation or error will be non-nil. Any non-2xx
67444// status code is an error. Response headers are in either
67445// *Operation.ServerResponse.Header or (if a response was returned at
67446// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67447// to check whether the returned error was because
67448// http.StatusNotModified was returned.
67449func (c *RoutersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67450	gensupport.SetOptions(c.urlParams_, opts...)
67451	res, err := c.doRequest("json")
67452	if res != nil && res.StatusCode == http.StatusNotModified {
67453		if res.Body != nil {
67454			res.Body.Close()
67455		}
67456		return nil, &googleapi.Error{
67457			Code:   res.StatusCode,
67458			Header: res.Header,
67459		}
67460	}
67461	if err != nil {
67462		return nil, err
67463	}
67464	defer googleapi.CloseBody(res)
67465	if err := googleapi.CheckResponse(res); err != nil {
67466		return nil, err
67467	}
67468	ret := &Operation{
67469		ServerResponse: googleapi.ServerResponse{
67470			Header:         res.Header,
67471			HTTPStatusCode: res.StatusCode,
67472		},
67473	}
67474	target := &ret
67475	if err := gensupport.DecodeResponse(target, res); err != nil {
67476		return nil, err
67477	}
67478	return ret, nil
67479	// {
67480	//   "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.",
67481	//   "httpMethod": "PATCH",
67482	//   "id": "compute.routers.patch",
67483	//   "parameterOrder": [
67484	//     "project",
67485	//     "region",
67486	//     "router"
67487	//   ],
67488	//   "parameters": {
67489	//     "project": {
67490	//       "description": "Project ID for this request.",
67491	//       "location": "path",
67492	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67493	//       "required": true,
67494	//       "type": "string"
67495	//     },
67496	//     "region": {
67497	//       "description": "Name of the region for this request.",
67498	//       "location": "path",
67499	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67500	//       "required": true,
67501	//       "type": "string"
67502	//     },
67503	//     "requestId": {
67504	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67505	//       "location": "query",
67506	//       "type": "string"
67507	//     },
67508	//     "router": {
67509	//       "description": "Name of the Router resource to patch.",
67510	//       "location": "path",
67511	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67512	//       "required": true,
67513	//       "type": "string"
67514	//     }
67515	//   },
67516	//   "path": "{project}/regions/{region}/routers/{router}",
67517	//   "request": {
67518	//     "$ref": "Router"
67519	//   },
67520	//   "response": {
67521	//     "$ref": "Operation"
67522	//   },
67523	//   "scopes": [
67524	//     "https://www.googleapis.com/auth/cloud-platform",
67525	//     "https://www.googleapis.com/auth/compute"
67526	//   ]
67527	// }
67528
67529}
67530
67531// method id "compute.routers.preview":
67532
67533type RoutersPreviewCall struct {
67534	s          *Service
67535	project    string
67536	region     string
67537	router     string
67538	router2    *Router
67539	urlParams_ gensupport.URLParams
67540	ctx_       context.Context
67541	header_    http.Header
67542}
67543
67544// Preview: Preview fields auto-generated during router create and
67545// update operations. Calling this method does NOT create or update the
67546// router.
67547func (r *RoutersService) Preview(project string, region string, router string, router2 *Router) *RoutersPreviewCall {
67548	c := &RoutersPreviewCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67549	c.project = project
67550	c.region = region
67551	c.router = router
67552	c.router2 = router2
67553	return c
67554}
67555
67556// Fields allows partial responses to be retrieved. See
67557// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67558// for more information.
67559func (c *RoutersPreviewCall) Fields(s ...googleapi.Field) *RoutersPreviewCall {
67560	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67561	return c
67562}
67563
67564// Context sets the context to be used in this call's Do method. Any
67565// pending HTTP request will be aborted if the provided context is
67566// canceled.
67567func (c *RoutersPreviewCall) Context(ctx context.Context) *RoutersPreviewCall {
67568	c.ctx_ = ctx
67569	return c
67570}
67571
67572// Header returns an http.Header that can be modified by the caller to
67573// add HTTP headers to the request.
67574func (c *RoutersPreviewCall) Header() http.Header {
67575	if c.header_ == nil {
67576		c.header_ = make(http.Header)
67577	}
67578	return c.header_
67579}
67580
67581func (c *RoutersPreviewCall) doRequest(alt string) (*http.Response, error) {
67582	reqHeaders := make(http.Header)
67583	for k, v := range c.header_ {
67584		reqHeaders[k] = v
67585	}
67586	reqHeaders.Set("User-Agent", c.s.userAgent())
67587	var body io.Reader = nil
67588	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
67589	if err != nil {
67590		return nil, err
67591	}
67592	reqHeaders.Set("Content-Type", "application/json")
67593	c.urlParams_.Set("alt", alt)
67594	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/preview")
67595	urls += "?" + c.urlParams_.Encode()
67596	req, _ := http.NewRequest("POST", urls, body)
67597	req.Header = reqHeaders
67598	googleapi.Expand(req.URL, map[string]string{
67599		"project": c.project,
67600		"region":  c.region,
67601		"router":  c.router,
67602	})
67603	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67604}
67605
67606// Do executes the "compute.routers.preview" call.
67607// Exactly one of *RoutersPreviewResponse or error will be non-nil. Any
67608// non-2xx status code is an error. Response headers are in either
67609// *RoutersPreviewResponse.ServerResponse.Header or (if a response was
67610// returned at all) in error.(*googleapi.Error).Header. Use
67611// googleapi.IsNotModified to check whether the returned error was
67612// because http.StatusNotModified was returned.
67613func (c *RoutersPreviewCall) Do(opts ...googleapi.CallOption) (*RoutersPreviewResponse, error) {
67614	gensupport.SetOptions(c.urlParams_, opts...)
67615	res, err := c.doRequest("json")
67616	if res != nil && res.StatusCode == http.StatusNotModified {
67617		if res.Body != nil {
67618			res.Body.Close()
67619		}
67620		return nil, &googleapi.Error{
67621			Code:   res.StatusCode,
67622			Header: res.Header,
67623		}
67624	}
67625	if err != nil {
67626		return nil, err
67627	}
67628	defer googleapi.CloseBody(res)
67629	if err := googleapi.CheckResponse(res); err != nil {
67630		return nil, err
67631	}
67632	ret := &RoutersPreviewResponse{
67633		ServerResponse: googleapi.ServerResponse{
67634			Header:         res.Header,
67635			HTTPStatusCode: res.StatusCode,
67636		},
67637	}
67638	target := &ret
67639	if err := gensupport.DecodeResponse(target, res); err != nil {
67640		return nil, err
67641	}
67642	return ret, nil
67643	// {
67644	//   "description": "Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router.",
67645	//   "httpMethod": "POST",
67646	//   "id": "compute.routers.preview",
67647	//   "parameterOrder": [
67648	//     "project",
67649	//     "region",
67650	//     "router"
67651	//   ],
67652	//   "parameters": {
67653	//     "project": {
67654	//       "description": "Project ID for this request.",
67655	//       "location": "path",
67656	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67657	//       "required": true,
67658	//       "type": "string"
67659	//     },
67660	//     "region": {
67661	//       "description": "Name of the region for this request.",
67662	//       "location": "path",
67663	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67664	//       "required": true,
67665	//       "type": "string"
67666	//     },
67667	//     "router": {
67668	//       "description": "Name of the Router resource to query.",
67669	//       "location": "path",
67670	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67671	//       "required": true,
67672	//       "type": "string"
67673	//     }
67674	//   },
67675	//   "path": "{project}/regions/{region}/routers/{router}/preview",
67676	//   "request": {
67677	//     "$ref": "Router"
67678	//   },
67679	//   "response": {
67680	//     "$ref": "RoutersPreviewResponse"
67681	//   },
67682	//   "scopes": [
67683	//     "https://www.googleapis.com/auth/cloud-platform",
67684	//     "https://www.googleapis.com/auth/compute",
67685	//     "https://www.googleapis.com/auth/compute.readonly"
67686	//   ]
67687	// }
67688
67689}
67690
67691// method id "compute.routers.update":
67692
67693type RoutersUpdateCall struct {
67694	s          *Service
67695	project    string
67696	region     string
67697	router     string
67698	router2    *Router
67699	urlParams_ gensupport.URLParams
67700	ctx_       context.Context
67701	header_    http.Header
67702}
67703
67704// Update: Updates the specified Router resource with the data included
67705// in the request.
67706func (r *RoutersService) Update(project string, region string, router string, router2 *Router) *RoutersUpdateCall {
67707	c := &RoutersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67708	c.project = project
67709	c.region = region
67710	c.router = router
67711	c.router2 = router2
67712	return c
67713}
67714
67715// RequestId sets the optional parameter "requestId": An optional
67716// request ID to identify requests. Specify a unique request ID so that
67717// if you must retry your request, the server will know to ignore the
67718// request if it has already been completed.
67719//
67720// For example, consider a situation where you make an initial request
67721// and the request times out. If you make the request again with the
67722// same request ID, the server can check if original operation with the
67723// same request ID was received, and if so, will ignore the second
67724// request. This prevents clients from accidentally creating duplicate
67725// commitments.
67726//
67727// The request ID must be a valid UUID with the exception that zero UUID
67728// is not supported (00000000-0000-0000-0000-000000000000).
67729func (c *RoutersUpdateCall) RequestId(requestId string) *RoutersUpdateCall {
67730	c.urlParams_.Set("requestId", requestId)
67731	return c
67732}
67733
67734// Fields allows partial responses to be retrieved. See
67735// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67736// for more information.
67737func (c *RoutersUpdateCall) Fields(s ...googleapi.Field) *RoutersUpdateCall {
67738	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67739	return c
67740}
67741
67742// Context sets the context to be used in this call's Do method. Any
67743// pending HTTP request will be aborted if the provided context is
67744// canceled.
67745func (c *RoutersUpdateCall) Context(ctx context.Context) *RoutersUpdateCall {
67746	c.ctx_ = ctx
67747	return c
67748}
67749
67750// Header returns an http.Header that can be modified by the caller to
67751// add HTTP headers to the request.
67752func (c *RoutersUpdateCall) Header() http.Header {
67753	if c.header_ == nil {
67754		c.header_ = make(http.Header)
67755	}
67756	return c.header_
67757}
67758
67759func (c *RoutersUpdateCall) doRequest(alt string) (*http.Response, error) {
67760	reqHeaders := make(http.Header)
67761	for k, v := range c.header_ {
67762		reqHeaders[k] = v
67763	}
67764	reqHeaders.Set("User-Agent", c.s.userAgent())
67765	var body io.Reader = nil
67766	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
67767	if err != nil {
67768		return nil, err
67769	}
67770	reqHeaders.Set("Content-Type", "application/json")
67771	c.urlParams_.Set("alt", alt)
67772	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
67773	urls += "?" + c.urlParams_.Encode()
67774	req, _ := http.NewRequest("PUT", urls, body)
67775	req.Header = reqHeaders
67776	googleapi.Expand(req.URL, map[string]string{
67777		"project": c.project,
67778		"region":  c.region,
67779		"router":  c.router,
67780	})
67781	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67782}
67783
67784// Do executes the "compute.routers.update" call.
67785// Exactly one of *Operation or error will be non-nil. Any non-2xx
67786// status code is an error. Response headers are in either
67787// *Operation.ServerResponse.Header or (if a response was returned at
67788// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67789// to check whether the returned error was because
67790// http.StatusNotModified was returned.
67791func (c *RoutersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67792	gensupport.SetOptions(c.urlParams_, opts...)
67793	res, err := c.doRequest("json")
67794	if res != nil && res.StatusCode == http.StatusNotModified {
67795		if res.Body != nil {
67796			res.Body.Close()
67797		}
67798		return nil, &googleapi.Error{
67799			Code:   res.StatusCode,
67800			Header: res.Header,
67801		}
67802	}
67803	if err != nil {
67804		return nil, err
67805	}
67806	defer googleapi.CloseBody(res)
67807	if err := googleapi.CheckResponse(res); err != nil {
67808		return nil, err
67809	}
67810	ret := &Operation{
67811		ServerResponse: googleapi.ServerResponse{
67812			Header:         res.Header,
67813			HTTPStatusCode: res.StatusCode,
67814		},
67815	}
67816	target := &ret
67817	if err := gensupport.DecodeResponse(target, res); err != nil {
67818		return nil, err
67819	}
67820	return ret, nil
67821	// {
67822	//   "description": "Updates the specified Router resource with the data included in the request.",
67823	//   "httpMethod": "PUT",
67824	//   "id": "compute.routers.update",
67825	//   "parameterOrder": [
67826	//     "project",
67827	//     "region",
67828	//     "router"
67829	//   ],
67830	//   "parameters": {
67831	//     "project": {
67832	//       "description": "Project ID for this request.",
67833	//       "location": "path",
67834	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67835	//       "required": true,
67836	//       "type": "string"
67837	//     },
67838	//     "region": {
67839	//       "description": "Name of the region for this request.",
67840	//       "location": "path",
67841	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67842	//       "required": true,
67843	//       "type": "string"
67844	//     },
67845	//     "requestId": {
67846	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67847	//       "location": "query",
67848	//       "type": "string"
67849	//     },
67850	//     "router": {
67851	//       "description": "Name of the Router resource to update.",
67852	//       "location": "path",
67853	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67854	//       "required": true,
67855	//       "type": "string"
67856	//     }
67857	//   },
67858	//   "path": "{project}/regions/{region}/routers/{router}",
67859	//   "request": {
67860	//     "$ref": "Router"
67861	//   },
67862	//   "response": {
67863	//     "$ref": "Operation"
67864	//   },
67865	//   "scopes": [
67866	//     "https://www.googleapis.com/auth/cloud-platform",
67867	//     "https://www.googleapis.com/auth/compute"
67868	//   ]
67869	// }
67870
67871}
67872
67873// method id "compute.routes.delete":
67874
67875type RoutesDeleteCall struct {
67876	s          *Service
67877	project    string
67878	route      string
67879	urlParams_ gensupport.URLParams
67880	ctx_       context.Context
67881	header_    http.Header
67882}
67883
67884// Delete: Deletes the specified Route resource.
67885// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/delete
67886func (r *RoutesService) Delete(project string, route string) *RoutesDeleteCall {
67887	c := &RoutesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67888	c.project = project
67889	c.route = route
67890	return c
67891}
67892
67893// RequestId sets the optional parameter "requestId": An optional
67894// request ID to identify requests. Specify a unique request ID so that
67895// if you must retry your request, the server will know to ignore the
67896// request if it has already been completed.
67897//
67898// For example, consider a situation where you make an initial request
67899// and the request times out. If you make the request again with the
67900// same request ID, the server can check if original operation with the
67901// same request ID was received, and if so, will ignore the second
67902// request. This prevents clients from accidentally creating duplicate
67903// commitments.
67904//
67905// The request ID must be a valid UUID with the exception that zero UUID
67906// is not supported (00000000-0000-0000-0000-000000000000).
67907func (c *RoutesDeleteCall) RequestId(requestId string) *RoutesDeleteCall {
67908	c.urlParams_.Set("requestId", requestId)
67909	return c
67910}
67911
67912// Fields allows partial responses to be retrieved. See
67913// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67914// for more information.
67915func (c *RoutesDeleteCall) Fields(s ...googleapi.Field) *RoutesDeleteCall {
67916	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67917	return c
67918}
67919
67920// Context sets the context to be used in this call's Do method. Any
67921// pending HTTP request will be aborted if the provided context is
67922// canceled.
67923func (c *RoutesDeleteCall) Context(ctx context.Context) *RoutesDeleteCall {
67924	c.ctx_ = ctx
67925	return c
67926}
67927
67928// Header returns an http.Header that can be modified by the caller to
67929// add HTTP headers to the request.
67930func (c *RoutesDeleteCall) Header() http.Header {
67931	if c.header_ == nil {
67932		c.header_ = make(http.Header)
67933	}
67934	return c.header_
67935}
67936
67937func (c *RoutesDeleteCall) doRequest(alt string) (*http.Response, error) {
67938	reqHeaders := make(http.Header)
67939	for k, v := range c.header_ {
67940		reqHeaders[k] = v
67941	}
67942	reqHeaders.Set("User-Agent", c.s.userAgent())
67943	var body io.Reader = nil
67944	c.urlParams_.Set("alt", alt)
67945	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{route}")
67946	urls += "?" + c.urlParams_.Encode()
67947	req, _ := http.NewRequest("DELETE", urls, body)
67948	req.Header = reqHeaders
67949	googleapi.Expand(req.URL, map[string]string{
67950		"project": c.project,
67951		"route":   c.route,
67952	})
67953	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67954}
67955
67956// Do executes the "compute.routes.delete" call.
67957// Exactly one of *Operation or error will be non-nil. Any non-2xx
67958// status code is an error. Response headers are in either
67959// *Operation.ServerResponse.Header or (if a response was returned at
67960// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67961// to check whether the returned error was because
67962// http.StatusNotModified was returned.
67963func (c *RoutesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67964	gensupport.SetOptions(c.urlParams_, opts...)
67965	res, err := c.doRequest("json")
67966	if res != nil && res.StatusCode == http.StatusNotModified {
67967		if res.Body != nil {
67968			res.Body.Close()
67969		}
67970		return nil, &googleapi.Error{
67971			Code:   res.StatusCode,
67972			Header: res.Header,
67973		}
67974	}
67975	if err != nil {
67976		return nil, err
67977	}
67978	defer googleapi.CloseBody(res)
67979	if err := googleapi.CheckResponse(res); err != nil {
67980		return nil, err
67981	}
67982	ret := &Operation{
67983		ServerResponse: googleapi.ServerResponse{
67984			Header:         res.Header,
67985			HTTPStatusCode: res.StatusCode,
67986		},
67987	}
67988	target := &ret
67989	if err := gensupport.DecodeResponse(target, res); err != nil {
67990		return nil, err
67991	}
67992	return ret, nil
67993	// {
67994	//   "description": "Deletes the specified Route resource.",
67995	//   "httpMethod": "DELETE",
67996	//   "id": "compute.routes.delete",
67997	//   "parameterOrder": [
67998	//     "project",
67999	//     "route"
68000	//   ],
68001	//   "parameters": {
68002	//     "project": {
68003	//       "description": "Project ID for this request.",
68004	//       "location": "path",
68005	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68006	//       "required": true,
68007	//       "type": "string"
68008	//     },
68009	//     "requestId": {
68010	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68011	//       "location": "query",
68012	//       "type": "string"
68013	//     },
68014	//     "route": {
68015	//       "description": "Name of the Route resource to delete.",
68016	//       "location": "path",
68017	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
68018	//       "required": true,
68019	//       "type": "string"
68020	//     }
68021	//   },
68022	//   "path": "{project}/global/routes/{route}",
68023	//   "response": {
68024	//     "$ref": "Operation"
68025	//   },
68026	//   "scopes": [
68027	//     "https://www.googleapis.com/auth/cloud-platform",
68028	//     "https://www.googleapis.com/auth/compute"
68029	//   ]
68030	// }
68031
68032}
68033
68034// method id "compute.routes.get":
68035
68036type RoutesGetCall struct {
68037	s            *Service
68038	project      string
68039	route        string
68040	urlParams_   gensupport.URLParams
68041	ifNoneMatch_ string
68042	ctx_         context.Context
68043	header_      http.Header
68044}
68045
68046// Get: Returns the specified Route resource. Gets a list of available
68047// routes by making a list() request.
68048// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/get
68049func (r *RoutesService) Get(project string, route string) *RoutesGetCall {
68050	c := &RoutesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68051	c.project = project
68052	c.route = route
68053	return c
68054}
68055
68056// Fields allows partial responses to be retrieved. See
68057// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68058// for more information.
68059func (c *RoutesGetCall) Fields(s ...googleapi.Field) *RoutesGetCall {
68060	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68061	return c
68062}
68063
68064// IfNoneMatch sets the optional parameter which makes the operation
68065// fail if the object's ETag matches the given value. This is useful for
68066// getting updates only after the object has changed since the last
68067// request. Use googleapi.IsNotModified to check whether the response
68068// error from Do is the result of In-None-Match.
68069func (c *RoutesGetCall) IfNoneMatch(entityTag string) *RoutesGetCall {
68070	c.ifNoneMatch_ = entityTag
68071	return c
68072}
68073
68074// Context sets the context to be used in this call's Do method. Any
68075// pending HTTP request will be aborted if the provided context is
68076// canceled.
68077func (c *RoutesGetCall) Context(ctx context.Context) *RoutesGetCall {
68078	c.ctx_ = ctx
68079	return c
68080}
68081
68082// Header returns an http.Header that can be modified by the caller to
68083// add HTTP headers to the request.
68084func (c *RoutesGetCall) Header() http.Header {
68085	if c.header_ == nil {
68086		c.header_ = make(http.Header)
68087	}
68088	return c.header_
68089}
68090
68091func (c *RoutesGetCall) doRequest(alt string) (*http.Response, error) {
68092	reqHeaders := make(http.Header)
68093	for k, v := range c.header_ {
68094		reqHeaders[k] = v
68095	}
68096	reqHeaders.Set("User-Agent", c.s.userAgent())
68097	if c.ifNoneMatch_ != "" {
68098		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68099	}
68100	var body io.Reader = nil
68101	c.urlParams_.Set("alt", alt)
68102	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{route}")
68103	urls += "?" + c.urlParams_.Encode()
68104	req, _ := http.NewRequest("GET", urls, body)
68105	req.Header = reqHeaders
68106	googleapi.Expand(req.URL, map[string]string{
68107		"project": c.project,
68108		"route":   c.route,
68109	})
68110	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68111}
68112
68113// Do executes the "compute.routes.get" call.
68114// Exactly one of *Route or error will be non-nil. Any non-2xx status
68115// code is an error. Response headers are in either
68116// *Route.ServerResponse.Header or (if a response was returned at all)
68117// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
68118// check whether the returned error was because http.StatusNotModified
68119// was returned.
68120func (c *RoutesGetCall) Do(opts ...googleapi.CallOption) (*Route, error) {
68121	gensupport.SetOptions(c.urlParams_, opts...)
68122	res, err := c.doRequest("json")
68123	if res != nil && res.StatusCode == http.StatusNotModified {
68124		if res.Body != nil {
68125			res.Body.Close()
68126		}
68127		return nil, &googleapi.Error{
68128			Code:   res.StatusCode,
68129			Header: res.Header,
68130		}
68131	}
68132	if err != nil {
68133		return nil, err
68134	}
68135	defer googleapi.CloseBody(res)
68136	if err := googleapi.CheckResponse(res); err != nil {
68137		return nil, err
68138	}
68139	ret := &Route{
68140		ServerResponse: googleapi.ServerResponse{
68141			Header:         res.Header,
68142			HTTPStatusCode: res.StatusCode,
68143		},
68144	}
68145	target := &ret
68146	if err := gensupport.DecodeResponse(target, res); err != nil {
68147		return nil, err
68148	}
68149	return ret, nil
68150	// {
68151	//   "description": "Returns the specified Route resource. Gets a list of available routes by making a list() request.",
68152	//   "httpMethod": "GET",
68153	//   "id": "compute.routes.get",
68154	//   "parameterOrder": [
68155	//     "project",
68156	//     "route"
68157	//   ],
68158	//   "parameters": {
68159	//     "project": {
68160	//       "description": "Project ID for this request.",
68161	//       "location": "path",
68162	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68163	//       "required": true,
68164	//       "type": "string"
68165	//     },
68166	//     "route": {
68167	//       "description": "Name of the Route resource to return.",
68168	//       "location": "path",
68169	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
68170	//       "required": true,
68171	//       "type": "string"
68172	//     }
68173	//   },
68174	//   "path": "{project}/global/routes/{route}",
68175	//   "response": {
68176	//     "$ref": "Route"
68177	//   },
68178	//   "scopes": [
68179	//     "https://www.googleapis.com/auth/cloud-platform",
68180	//     "https://www.googleapis.com/auth/compute",
68181	//     "https://www.googleapis.com/auth/compute.readonly"
68182	//   ]
68183	// }
68184
68185}
68186
68187// method id "compute.routes.insert":
68188
68189type RoutesInsertCall struct {
68190	s          *Service
68191	project    string
68192	route      *Route
68193	urlParams_ gensupport.URLParams
68194	ctx_       context.Context
68195	header_    http.Header
68196}
68197
68198// Insert: Creates a Route resource in the specified project using the
68199// data included in the request.
68200// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/insert
68201func (r *RoutesService) Insert(project string, route *Route) *RoutesInsertCall {
68202	c := &RoutesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68203	c.project = project
68204	c.route = route
68205	return c
68206}
68207
68208// RequestId sets the optional parameter "requestId": An optional
68209// request ID to identify requests. Specify a unique request ID so that
68210// if you must retry your request, the server will know to ignore the
68211// request if it has already been completed.
68212//
68213// For example, consider a situation where you make an initial request
68214// and the request times out. If you make the request again with the
68215// same request ID, the server can check if original operation with the
68216// same request ID was received, and if so, will ignore the second
68217// request. This prevents clients from accidentally creating duplicate
68218// commitments.
68219//
68220// The request ID must be a valid UUID with the exception that zero UUID
68221// is not supported (00000000-0000-0000-0000-000000000000).
68222func (c *RoutesInsertCall) RequestId(requestId string) *RoutesInsertCall {
68223	c.urlParams_.Set("requestId", requestId)
68224	return c
68225}
68226
68227// Fields allows partial responses to be retrieved. See
68228// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68229// for more information.
68230func (c *RoutesInsertCall) Fields(s ...googleapi.Field) *RoutesInsertCall {
68231	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68232	return c
68233}
68234
68235// Context sets the context to be used in this call's Do method. Any
68236// pending HTTP request will be aborted if the provided context is
68237// canceled.
68238func (c *RoutesInsertCall) Context(ctx context.Context) *RoutesInsertCall {
68239	c.ctx_ = ctx
68240	return c
68241}
68242
68243// Header returns an http.Header that can be modified by the caller to
68244// add HTTP headers to the request.
68245func (c *RoutesInsertCall) Header() http.Header {
68246	if c.header_ == nil {
68247		c.header_ = make(http.Header)
68248	}
68249	return c.header_
68250}
68251
68252func (c *RoutesInsertCall) doRequest(alt string) (*http.Response, error) {
68253	reqHeaders := make(http.Header)
68254	for k, v := range c.header_ {
68255		reqHeaders[k] = v
68256	}
68257	reqHeaders.Set("User-Agent", c.s.userAgent())
68258	var body io.Reader = nil
68259	body, err := googleapi.WithoutDataWrapper.JSONReader(c.route)
68260	if err != nil {
68261		return nil, err
68262	}
68263	reqHeaders.Set("Content-Type", "application/json")
68264	c.urlParams_.Set("alt", alt)
68265	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes")
68266	urls += "?" + c.urlParams_.Encode()
68267	req, _ := http.NewRequest("POST", urls, body)
68268	req.Header = reqHeaders
68269	googleapi.Expand(req.URL, map[string]string{
68270		"project": c.project,
68271	})
68272	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68273}
68274
68275// Do executes the "compute.routes.insert" call.
68276// Exactly one of *Operation or error will be non-nil. Any non-2xx
68277// status code is an error. Response headers are in either
68278// *Operation.ServerResponse.Header or (if a response was returned at
68279// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68280// to check whether the returned error was because
68281// http.StatusNotModified was returned.
68282func (c *RoutesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68283	gensupport.SetOptions(c.urlParams_, opts...)
68284	res, err := c.doRequest("json")
68285	if res != nil && res.StatusCode == http.StatusNotModified {
68286		if res.Body != nil {
68287			res.Body.Close()
68288		}
68289		return nil, &googleapi.Error{
68290			Code:   res.StatusCode,
68291			Header: res.Header,
68292		}
68293	}
68294	if err != nil {
68295		return nil, err
68296	}
68297	defer googleapi.CloseBody(res)
68298	if err := googleapi.CheckResponse(res); err != nil {
68299		return nil, err
68300	}
68301	ret := &Operation{
68302		ServerResponse: googleapi.ServerResponse{
68303			Header:         res.Header,
68304			HTTPStatusCode: res.StatusCode,
68305		},
68306	}
68307	target := &ret
68308	if err := gensupport.DecodeResponse(target, res); err != nil {
68309		return nil, err
68310	}
68311	return ret, nil
68312	// {
68313	//   "description": "Creates a Route resource in the specified project using the data included in the request.",
68314	//   "httpMethod": "POST",
68315	//   "id": "compute.routes.insert",
68316	//   "parameterOrder": [
68317	//     "project"
68318	//   ],
68319	//   "parameters": {
68320	//     "project": {
68321	//       "description": "Project ID for this request.",
68322	//       "location": "path",
68323	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68324	//       "required": true,
68325	//       "type": "string"
68326	//     },
68327	//     "requestId": {
68328	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68329	//       "location": "query",
68330	//       "type": "string"
68331	//     }
68332	//   },
68333	//   "path": "{project}/global/routes",
68334	//   "request": {
68335	//     "$ref": "Route"
68336	//   },
68337	//   "response": {
68338	//     "$ref": "Operation"
68339	//   },
68340	//   "scopes": [
68341	//     "https://www.googleapis.com/auth/cloud-platform",
68342	//     "https://www.googleapis.com/auth/compute"
68343	//   ]
68344	// }
68345
68346}
68347
68348// method id "compute.routes.list":
68349
68350type RoutesListCall struct {
68351	s            *Service
68352	project      string
68353	urlParams_   gensupport.URLParams
68354	ifNoneMatch_ string
68355	ctx_         context.Context
68356	header_      http.Header
68357}
68358
68359// List: Retrieves the list of Route resources available to the
68360// specified project.
68361// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/list
68362func (r *RoutesService) List(project string) *RoutesListCall {
68363	c := &RoutesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68364	c.project = project
68365	return c
68366}
68367
68368// Filter sets the optional parameter "filter": A filter expression that
68369// filters resources listed in the response. The expression must specify
68370// the field name, a comparison operator, and the value that you want to
68371// use for filtering. The value must be a string, a number, or a
68372// boolean. The comparison operator must be either =, !=, >, or <.
68373//
68374// For example, if you are filtering Compute Engine instances, you can
68375// exclude instances named example-instance by specifying name !=
68376// example-instance.
68377//
68378// You can also filter nested fields. For example, you could specify
68379// scheduling.automaticRestart = false to include instances only if they
68380// are not scheduled for automatic restarts. You can use filtering on
68381// nested fields to filter based on resource labels.
68382//
68383// To filter on multiple expressions, provide each separate expression
68384// within parentheses. For example, (scheduling.automaticRestart = true)
68385// (cpuPlatform = "Intel Skylake"). By default, each expression is an
68386// AND expression. However, you can include AND and OR expressions
68387// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
68388// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
68389// true).
68390func (c *RoutesListCall) Filter(filter string) *RoutesListCall {
68391	c.urlParams_.Set("filter", filter)
68392	return c
68393}
68394
68395// MaxResults sets the optional parameter "maxResults": The maximum
68396// number of results per page that should be returned. If the number of
68397// available results is larger than maxResults, Compute Engine returns a
68398// nextPageToken that can be used to get the next page of results in
68399// subsequent list requests. Acceptable values are 0 to 500, inclusive.
68400// (Default: 500)
68401func (c *RoutesListCall) MaxResults(maxResults int64) *RoutesListCall {
68402	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
68403	return c
68404}
68405
68406// OrderBy sets the optional parameter "orderBy": Sorts list results by
68407// a certain order. By default, results are returned in alphanumerical
68408// order based on the resource name.
68409//
68410// You can also sort results in descending order based on the creation
68411// timestamp using orderBy="creationTimestamp desc". This sorts results
68412// based on the creationTimestamp field in reverse chronological order
68413// (newest result first). Use this to sort resources like operations so
68414// that the newest operation is returned first.
68415//
68416// Currently, only sorting by name or creationTimestamp desc is
68417// supported.
68418func (c *RoutesListCall) OrderBy(orderBy string) *RoutesListCall {
68419	c.urlParams_.Set("orderBy", orderBy)
68420	return c
68421}
68422
68423// PageToken sets the optional parameter "pageToken": Specifies a page
68424// token to use. Set pageToken to the nextPageToken returned by a
68425// previous list request to get the next page of results.
68426func (c *RoutesListCall) PageToken(pageToken string) *RoutesListCall {
68427	c.urlParams_.Set("pageToken", pageToken)
68428	return c
68429}
68430
68431// Fields allows partial responses to be retrieved. See
68432// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68433// for more information.
68434func (c *RoutesListCall) Fields(s ...googleapi.Field) *RoutesListCall {
68435	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68436	return c
68437}
68438
68439// IfNoneMatch sets the optional parameter which makes the operation
68440// fail if the object's ETag matches the given value. This is useful for
68441// getting updates only after the object has changed since the last
68442// request. Use googleapi.IsNotModified to check whether the response
68443// error from Do is the result of In-None-Match.
68444func (c *RoutesListCall) IfNoneMatch(entityTag string) *RoutesListCall {
68445	c.ifNoneMatch_ = entityTag
68446	return c
68447}
68448
68449// Context sets the context to be used in this call's Do method. Any
68450// pending HTTP request will be aborted if the provided context is
68451// canceled.
68452func (c *RoutesListCall) Context(ctx context.Context) *RoutesListCall {
68453	c.ctx_ = ctx
68454	return c
68455}
68456
68457// Header returns an http.Header that can be modified by the caller to
68458// add HTTP headers to the request.
68459func (c *RoutesListCall) Header() http.Header {
68460	if c.header_ == nil {
68461		c.header_ = make(http.Header)
68462	}
68463	return c.header_
68464}
68465
68466func (c *RoutesListCall) doRequest(alt string) (*http.Response, error) {
68467	reqHeaders := make(http.Header)
68468	for k, v := range c.header_ {
68469		reqHeaders[k] = v
68470	}
68471	reqHeaders.Set("User-Agent", c.s.userAgent())
68472	if c.ifNoneMatch_ != "" {
68473		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68474	}
68475	var body io.Reader = nil
68476	c.urlParams_.Set("alt", alt)
68477	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes")
68478	urls += "?" + c.urlParams_.Encode()
68479	req, _ := http.NewRequest("GET", urls, body)
68480	req.Header = reqHeaders
68481	googleapi.Expand(req.URL, map[string]string{
68482		"project": c.project,
68483	})
68484	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68485}
68486
68487// Do executes the "compute.routes.list" call.
68488// Exactly one of *RouteList or error will be non-nil. Any non-2xx
68489// status code is an error. Response headers are in either
68490// *RouteList.ServerResponse.Header or (if a response was returned at
68491// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68492// to check whether the returned error was because
68493// http.StatusNotModified was returned.
68494func (c *RoutesListCall) Do(opts ...googleapi.CallOption) (*RouteList, error) {
68495	gensupport.SetOptions(c.urlParams_, opts...)
68496	res, err := c.doRequest("json")
68497	if res != nil && res.StatusCode == http.StatusNotModified {
68498		if res.Body != nil {
68499			res.Body.Close()
68500		}
68501		return nil, &googleapi.Error{
68502			Code:   res.StatusCode,
68503			Header: res.Header,
68504		}
68505	}
68506	if err != nil {
68507		return nil, err
68508	}
68509	defer googleapi.CloseBody(res)
68510	if err := googleapi.CheckResponse(res); err != nil {
68511		return nil, err
68512	}
68513	ret := &RouteList{
68514		ServerResponse: googleapi.ServerResponse{
68515			Header:         res.Header,
68516			HTTPStatusCode: res.StatusCode,
68517		},
68518	}
68519	target := &ret
68520	if err := gensupport.DecodeResponse(target, res); err != nil {
68521		return nil, err
68522	}
68523	return ret, nil
68524	// {
68525	//   "description": "Retrieves the list of Route resources available to the specified project.",
68526	//   "httpMethod": "GET",
68527	//   "id": "compute.routes.list",
68528	//   "parameterOrder": [
68529	//     "project"
68530	//   ],
68531	//   "parameters": {
68532	//     "filter": {
68533	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
68534	//       "location": "query",
68535	//       "type": "string"
68536	//     },
68537	//     "maxResults": {
68538	//       "default": "500",
68539	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
68540	//       "format": "uint32",
68541	//       "location": "query",
68542	//       "minimum": "0",
68543	//       "type": "integer"
68544	//     },
68545	//     "orderBy": {
68546	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
68547	//       "location": "query",
68548	//       "type": "string"
68549	//     },
68550	//     "pageToken": {
68551	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
68552	//       "location": "query",
68553	//       "type": "string"
68554	//     },
68555	//     "project": {
68556	//       "description": "Project ID for this request.",
68557	//       "location": "path",
68558	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68559	//       "required": true,
68560	//       "type": "string"
68561	//     }
68562	//   },
68563	//   "path": "{project}/global/routes",
68564	//   "response": {
68565	//     "$ref": "RouteList"
68566	//   },
68567	//   "scopes": [
68568	//     "https://www.googleapis.com/auth/cloud-platform",
68569	//     "https://www.googleapis.com/auth/compute",
68570	//     "https://www.googleapis.com/auth/compute.readonly"
68571	//   ]
68572	// }
68573
68574}
68575
68576// Pages invokes f for each page of results.
68577// A non-nil error returned from f will halt the iteration.
68578// The provided context supersedes any context provided to the Context method.
68579func (c *RoutesListCall) Pages(ctx context.Context, f func(*RouteList) error) error {
68580	c.ctx_ = ctx
68581	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
68582	for {
68583		x, err := c.Do()
68584		if err != nil {
68585			return err
68586		}
68587		if err := f(x); err != nil {
68588			return err
68589		}
68590		if x.NextPageToken == "" {
68591			return nil
68592		}
68593		c.PageToken(x.NextPageToken)
68594	}
68595}
68596
68597// method id "compute.snapshots.delete":
68598
68599type SnapshotsDeleteCall struct {
68600	s          *Service
68601	project    string
68602	snapshot   string
68603	urlParams_ gensupport.URLParams
68604	ctx_       context.Context
68605	header_    http.Header
68606}
68607
68608// Delete: Deletes the specified Snapshot resource. Keep in mind that
68609// deleting a single snapshot might not necessarily delete all the data
68610// on that snapshot. If any data on the snapshot that is marked for
68611// deletion is needed for subsequent snapshots, the data will be moved
68612// to the next corresponding snapshot.
68613//
68614// For more information, see Deleting snaphots.
68615// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/delete
68616func (r *SnapshotsService) Delete(project string, snapshot string) *SnapshotsDeleteCall {
68617	c := &SnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68618	c.project = project
68619	c.snapshot = snapshot
68620	return c
68621}
68622
68623// RequestId sets the optional parameter "requestId": An optional
68624// request ID to identify requests. Specify a unique request ID so that
68625// if you must retry your request, the server will know to ignore the
68626// request if it has already been completed.
68627//
68628// For example, consider a situation where you make an initial request
68629// and the request times out. If you make the request again with the
68630// same request ID, the server can check if original operation with the
68631// same request ID was received, and if so, will ignore the second
68632// request. This prevents clients from accidentally creating duplicate
68633// commitments.
68634//
68635// The request ID must be a valid UUID with the exception that zero UUID
68636// is not supported (00000000-0000-0000-0000-000000000000).
68637func (c *SnapshotsDeleteCall) RequestId(requestId string) *SnapshotsDeleteCall {
68638	c.urlParams_.Set("requestId", requestId)
68639	return c
68640}
68641
68642// Fields allows partial responses to be retrieved. See
68643// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68644// for more information.
68645func (c *SnapshotsDeleteCall) Fields(s ...googleapi.Field) *SnapshotsDeleteCall {
68646	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68647	return c
68648}
68649
68650// Context sets the context to be used in this call's Do method. Any
68651// pending HTTP request will be aborted if the provided context is
68652// canceled.
68653func (c *SnapshotsDeleteCall) Context(ctx context.Context) *SnapshotsDeleteCall {
68654	c.ctx_ = ctx
68655	return c
68656}
68657
68658// Header returns an http.Header that can be modified by the caller to
68659// add HTTP headers to the request.
68660func (c *SnapshotsDeleteCall) Header() http.Header {
68661	if c.header_ == nil {
68662		c.header_ = make(http.Header)
68663	}
68664	return c.header_
68665}
68666
68667func (c *SnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) {
68668	reqHeaders := make(http.Header)
68669	for k, v := range c.header_ {
68670		reqHeaders[k] = v
68671	}
68672	reqHeaders.Set("User-Agent", c.s.userAgent())
68673	var body io.Reader = nil
68674	c.urlParams_.Set("alt", alt)
68675	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{snapshot}")
68676	urls += "?" + c.urlParams_.Encode()
68677	req, _ := http.NewRequest("DELETE", urls, body)
68678	req.Header = reqHeaders
68679	googleapi.Expand(req.URL, map[string]string{
68680		"project":  c.project,
68681		"snapshot": c.snapshot,
68682	})
68683	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68684}
68685
68686// Do executes the "compute.snapshots.delete" call.
68687// Exactly one of *Operation or error will be non-nil. Any non-2xx
68688// status code is an error. Response headers are in either
68689// *Operation.ServerResponse.Header or (if a response was returned at
68690// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68691// to check whether the returned error was because
68692// http.StatusNotModified was returned.
68693func (c *SnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68694	gensupport.SetOptions(c.urlParams_, opts...)
68695	res, err := c.doRequest("json")
68696	if res != nil && res.StatusCode == http.StatusNotModified {
68697		if res.Body != nil {
68698			res.Body.Close()
68699		}
68700		return nil, &googleapi.Error{
68701			Code:   res.StatusCode,
68702			Header: res.Header,
68703		}
68704	}
68705	if err != nil {
68706		return nil, err
68707	}
68708	defer googleapi.CloseBody(res)
68709	if err := googleapi.CheckResponse(res); err != nil {
68710		return nil, err
68711	}
68712	ret := &Operation{
68713		ServerResponse: googleapi.ServerResponse{
68714			Header:         res.Header,
68715			HTTPStatusCode: res.StatusCode,
68716		},
68717	}
68718	target := &ret
68719	if err := gensupport.DecodeResponse(target, res); err != nil {
68720		return nil, err
68721	}
68722	return ret, nil
68723	// {
68724	//   "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 snaphots.",
68725	//   "httpMethod": "DELETE",
68726	//   "id": "compute.snapshots.delete",
68727	//   "parameterOrder": [
68728	//     "project",
68729	//     "snapshot"
68730	//   ],
68731	//   "parameters": {
68732	//     "project": {
68733	//       "description": "Project ID for this request.",
68734	//       "location": "path",
68735	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68736	//       "required": true,
68737	//       "type": "string"
68738	//     },
68739	//     "requestId": {
68740	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68741	//       "location": "query",
68742	//       "type": "string"
68743	//     },
68744	//     "snapshot": {
68745	//       "description": "Name of the Snapshot resource to delete.",
68746	//       "location": "path",
68747	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
68748	//       "required": true,
68749	//       "type": "string"
68750	//     }
68751	//   },
68752	//   "path": "{project}/global/snapshots/{snapshot}",
68753	//   "response": {
68754	//     "$ref": "Operation"
68755	//   },
68756	//   "scopes": [
68757	//     "https://www.googleapis.com/auth/cloud-platform",
68758	//     "https://www.googleapis.com/auth/compute"
68759	//   ]
68760	// }
68761
68762}
68763
68764// method id "compute.snapshots.get":
68765
68766type SnapshotsGetCall struct {
68767	s            *Service
68768	project      string
68769	snapshot     string
68770	urlParams_   gensupport.URLParams
68771	ifNoneMatch_ string
68772	ctx_         context.Context
68773	header_      http.Header
68774}
68775
68776// Get: Returns the specified Snapshot resource. Gets a list of
68777// available snapshots by making a list() request.
68778// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/get
68779func (r *SnapshotsService) Get(project string, snapshot string) *SnapshotsGetCall {
68780	c := &SnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68781	c.project = project
68782	c.snapshot = snapshot
68783	return c
68784}
68785
68786// Fields allows partial responses to be retrieved. See
68787// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68788// for more information.
68789func (c *SnapshotsGetCall) Fields(s ...googleapi.Field) *SnapshotsGetCall {
68790	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68791	return c
68792}
68793
68794// IfNoneMatch sets the optional parameter which makes the operation
68795// fail if the object's ETag matches the given value. This is useful for
68796// getting updates only after the object has changed since the last
68797// request. Use googleapi.IsNotModified to check whether the response
68798// error from Do is the result of In-None-Match.
68799func (c *SnapshotsGetCall) IfNoneMatch(entityTag string) *SnapshotsGetCall {
68800	c.ifNoneMatch_ = entityTag
68801	return c
68802}
68803
68804// Context sets the context to be used in this call's Do method. Any
68805// pending HTTP request will be aborted if the provided context is
68806// canceled.
68807func (c *SnapshotsGetCall) Context(ctx context.Context) *SnapshotsGetCall {
68808	c.ctx_ = ctx
68809	return c
68810}
68811
68812// Header returns an http.Header that can be modified by the caller to
68813// add HTTP headers to the request.
68814func (c *SnapshotsGetCall) Header() http.Header {
68815	if c.header_ == nil {
68816		c.header_ = make(http.Header)
68817	}
68818	return c.header_
68819}
68820
68821func (c *SnapshotsGetCall) doRequest(alt string) (*http.Response, error) {
68822	reqHeaders := make(http.Header)
68823	for k, v := range c.header_ {
68824		reqHeaders[k] = v
68825	}
68826	reqHeaders.Set("User-Agent", c.s.userAgent())
68827	if c.ifNoneMatch_ != "" {
68828		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68829	}
68830	var body io.Reader = nil
68831	c.urlParams_.Set("alt", alt)
68832	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{snapshot}")
68833	urls += "?" + c.urlParams_.Encode()
68834	req, _ := http.NewRequest("GET", urls, body)
68835	req.Header = reqHeaders
68836	googleapi.Expand(req.URL, map[string]string{
68837		"project":  c.project,
68838		"snapshot": c.snapshot,
68839	})
68840	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68841}
68842
68843// Do executes the "compute.snapshots.get" call.
68844// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
68845// code is an error. Response headers are in either
68846// *Snapshot.ServerResponse.Header or (if a response was returned at
68847// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68848// to check whether the returned error was because
68849// http.StatusNotModified was returned.
68850func (c *SnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
68851	gensupport.SetOptions(c.urlParams_, opts...)
68852	res, err := c.doRequest("json")
68853	if res != nil && res.StatusCode == http.StatusNotModified {
68854		if res.Body != nil {
68855			res.Body.Close()
68856		}
68857		return nil, &googleapi.Error{
68858			Code:   res.StatusCode,
68859			Header: res.Header,
68860		}
68861	}
68862	if err != nil {
68863		return nil, err
68864	}
68865	defer googleapi.CloseBody(res)
68866	if err := googleapi.CheckResponse(res); err != nil {
68867		return nil, err
68868	}
68869	ret := &Snapshot{
68870		ServerResponse: googleapi.ServerResponse{
68871			Header:         res.Header,
68872			HTTPStatusCode: res.StatusCode,
68873		},
68874	}
68875	target := &ret
68876	if err := gensupport.DecodeResponse(target, res); err != nil {
68877		return nil, err
68878	}
68879	return ret, nil
68880	// {
68881	//   "description": "Returns the specified Snapshot resource. Gets a list of available snapshots by making a list() request.",
68882	//   "httpMethod": "GET",
68883	//   "id": "compute.snapshots.get",
68884	//   "parameterOrder": [
68885	//     "project",
68886	//     "snapshot"
68887	//   ],
68888	//   "parameters": {
68889	//     "project": {
68890	//       "description": "Project ID for this request.",
68891	//       "location": "path",
68892	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68893	//       "required": true,
68894	//       "type": "string"
68895	//     },
68896	//     "snapshot": {
68897	//       "description": "Name of the Snapshot resource to return.",
68898	//       "location": "path",
68899	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
68900	//       "required": true,
68901	//       "type": "string"
68902	//     }
68903	//   },
68904	//   "path": "{project}/global/snapshots/{snapshot}",
68905	//   "response": {
68906	//     "$ref": "Snapshot"
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// method id "compute.snapshots.list":
68918
68919type SnapshotsListCall struct {
68920	s            *Service
68921	project      string
68922	urlParams_   gensupport.URLParams
68923	ifNoneMatch_ string
68924	ctx_         context.Context
68925	header_      http.Header
68926}
68927
68928// List: Retrieves the list of Snapshot resources contained within the
68929// specified project.
68930// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/list
68931func (r *SnapshotsService) List(project string) *SnapshotsListCall {
68932	c := &SnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68933	c.project = project
68934	return c
68935}
68936
68937// Filter sets the optional parameter "filter": A filter expression that
68938// filters resources listed in the response. The expression must specify
68939// the field name, a comparison operator, and the value that you want to
68940// use for filtering. The value must be a string, a number, or a
68941// boolean. The comparison operator must be either =, !=, >, or <.
68942//
68943// For example, if you are filtering Compute Engine instances, you can
68944// exclude instances named example-instance by specifying name !=
68945// example-instance.
68946//
68947// You can also filter nested fields. For example, you could specify
68948// scheduling.automaticRestart = false to include instances only if they
68949// are not scheduled for automatic restarts. You can use filtering on
68950// nested fields to filter based on resource labels.
68951//
68952// To filter on multiple expressions, provide each separate expression
68953// within parentheses. For example, (scheduling.automaticRestart = true)
68954// (cpuPlatform = "Intel Skylake"). By default, each expression is an
68955// AND expression. However, you can include AND and OR expressions
68956// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
68957// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
68958// true).
68959func (c *SnapshotsListCall) Filter(filter string) *SnapshotsListCall {
68960	c.urlParams_.Set("filter", filter)
68961	return c
68962}
68963
68964// MaxResults sets the optional parameter "maxResults": The maximum
68965// number of results per page that should be returned. If the number of
68966// available results is larger than maxResults, Compute Engine returns a
68967// nextPageToken that can be used to get the next page of results in
68968// subsequent list requests. Acceptable values are 0 to 500, inclusive.
68969// (Default: 500)
68970func (c *SnapshotsListCall) MaxResults(maxResults int64) *SnapshotsListCall {
68971	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
68972	return c
68973}
68974
68975// OrderBy sets the optional parameter "orderBy": Sorts list results by
68976// a certain order. By default, results are returned in alphanumerical
68977// order based on the resource name.
68978//
68979// You can also sort results in descending order based on the creation
68980// timestamp using orderBy="creationTimestamp desc". This sorts results
68981// based on the creationTimestamp field in reverse chronological order
68982// (newest result first). Use this to sort resources like operations so
68983// that the newest operation is returned first.
68984//
68985// Currently, only sorting by name or creationTimestamp desc is
68986// supported.
68987func (c *SnapshotsListCall) OrderBy(orderBy string) *SnapshotsListCall {
68988	c.urlParams_.Set("orderBy", orderBy)
68989	return c
68990}
68991
68992// PageToken sets the optional parameter "pageToken": Specifies a page
68993// token to use. Set pageToken to the nextPageToken returned by a
68994// previous list request to get the next page of results.
68995func (c *SnapshotsListCall) PageToken(pageToken string) *SnapshotsListCall {
68996	c.urlParams_.Set("pageToken", pageToken)
68997	return c
68998}
68999
69000// Fields allows partial responses to be retrieved. See
69001// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69002// for more information.
69003func (c *SnapshotsListCall) Fields(s ...googleapi.Field) *SnapshotsListCall {
69004	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69005	return c
69006}
69007
69008// IfNoneMatch sets the optional parameter which makes the operation
69009// fail if the object's ETag matches the given value. This is useful for
69010// getting updates only after the object has changed since the last
69011// request. Use googleapi.IsNotModified to check whether the response
69012// error from Do is the result of In-None-Match.
69013func (c *SnapshotsListCall) IfNoneMatch(entityTag string) *SnapshotsListCall {
69014	c.ifNoneMatch_ = entityTag
69015	return c
69016}
69017
69018// Context sets the context to be used in this call's Do method. Any
69019// pending HTTP request will be aborted if the provided context is
69020// canceled.
69021func (c *SnapshotsListCall) Context(ctx context.Context) *SnapshotsListCall {
69022	c.ctx_ = ctx
69023	return c
69024}
69025
69026// Header returns an http.Header that can be modified by the caller to
69027// add HTTP headers to the request.
69028func (c *SnapshotsListCall) Header() http.Header {
69029	if c.header_ == nil {
69030		c.header_ = make(http.Header)
69031	}
69032	return c.header_
69033}
69034
69035func (c *SnapshotsListCall) doRequest(alt string) (*http.Response, error) {
69036	reqHeaders := make(http.Header)
69037	for k, v := range c.header_ {
69038		reqHeaders[k] = v
69039	}
69040	reqHeaders.Set("User-Agent", c.s.userAgent())
69041	if c.ifNoneMatch_ != "" {
69042		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69043	}
69044	var body io.Reader = nil
69045	c.urlParams_.Set("alt", alt)
69046	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots")
69047	urls += "?" + c.urlParams_.Encode()
69048	req, _ := http.NewRequest("GET", urls, body)
69049	req.Header = reqHeaders
69050	googleapi.Expand(req.URL, map[string]string{
69051		"project": c.project,
69052	})
69053	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69054}
69055
69056// Do executes the "compute.snapshots.list" call.
69057// Exactly one of *SnapshotList or error will be non-nil. Any non-2xx
69058// status code is an error. Response headers are in either
69059// *SnapshotList.ServerResponse.Header or (if a response was returned at
69060// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69061// to check whether the returned error was because
69062// http.StatusNotModified was returned.
69063func (c *SnapshotsListCall) Do(opts ...googleapi.CallOption) (*SnapshotList, error) {
69064	gensupport.SetOptions(c.urlParams_, opts...)
69065	res, err := c.doRequest("json")
69066	if res != nil && res.StatusCode == http.StatusNotModified {
69067		if res.Body != nil {
69068			res.Body.Close()
69069		}
69070		return nil, &googleapi.Error{
69071			Code:   res.StatusCode,
69072			Header: res.Header,
69073		}
69074	}
69075	if err != nil {
69076		return nil, err
69077	}
69078	defer googleapi.CloseBody(res)
69079	if err := googleapi.CheckResponse(res); err != nil {
69080		return nil, err
69081	}
69082	ret := &SnapshotList{
69083		ServerResponse: googleapi.ServerResponse{
69084			Header:         res.Header,
69085			HTTPStatusCode: res.StatusCode,
69086		},
69087	}
69088	target := &ret
69089	if err := gensupport.DecodeResponse(target, res); err != nil {
69090		return nil, err
69091	}
69092	return ret, nil
69093	// {
69094	//   "description": "Retrieves the list of Snapshot resources contained within the specified project.",
69095	//   "httpMethod": "GET",
69096	//   "id": "compute.snapshots.list",
69097	//   "parameterOrder": [
69098	//     "project"
69099	//   ],
69100	//   "parameters": {
69101	//     "filter": {
69102	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
69103	//       "location": "query",
69104	//       "type": "string"
69105	//     },
69106	//     "maxResults": {
69107	//       "default": "500",
69108	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
69109	//       "format": "uint32",
69110	//       "location": "query",
69111	//       "minimum": "0",
69112	//       "type": "integer"
69113	//     },
69114	//     "orderBy": {
69115	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
69116	//       "location": "query",
69117	//       "type": "string"
69118	//     },
69119	//     "pageToken": {
69120	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
69121	//       "location": "query",
69122	//       "type": "string"
69123	//     },
69124	//     "project": {
69125	//       "description": "Project ID for this request.",
69126	//       "location": "path",
69127	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69128	//       "required": true,
69129	//       "type": "string"
69130	//     }
69131	//   },
69132	//   "path": "{project}/global/snapshots",
69133	//   "response": {
69134	//     "$ref": "SnapshotList"
69135	//   },
69136	//   "scopes": [
69137	//     "https://www.googleapis.com/auth/cloud-platform",
69138	//     "https://www.googleapis.com/auth/compute",
69139	//     "https://www.googleapis.com/auth/compute.readonly"
69140	//   ]
69141	// }
69142
69143}
69144
69145// Pages invokes f for each page of results.
69146// A non-nil error returned from f will halt the iteration.
69147// The provided context supersedes any context provided to the Context method.
69148func (c *SnapshotsListCall) Pages(ctx context.Context, f func(*SnapshotList) error) error {
69149	c.ctx_ = ctx
69150	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
69151	for {
69152		x, err := c.Do()
69153		if err != nil {
69154			return err
69155		}
69156		if err := f(x); err != nil {
69157			return err
69158		}
69159		if x.NextPageToken == "" {
69160			return nil
69161		}
69162		c.PageToken(x.NextPageToken)
69163	}
69164}
69165
69166// method id "compute.snapshots.setLabels":
69167
69168type SnapshotsSetLabelsCall struct {
69169	s                      *Service
69170	project                string
69171	resource               string
69172	globalsetlabelsrequest *GlobalSetLabelsRequest
69173	urlParams_             gensupport.URLParams
69174	ctx_                   context.Context
69175	header_                http.Header
69176}
69177
69178// SetLabels: Sets the labels on a snapshot. To learn more about labels,
69179// read the Labeling Resources documentation.
69180func (r *SnapshotsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SnapshotsSetLabelsCall {
69181	c := &SnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69182	c.project = project
69183	c.resource = resource
69184	c.globalsetlabelsrequest = globalsetlabelsrequest
69185	return c
69186}
69187
69188// Fields allows partial responses to be retrieved. See
69189// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69190// for more information.
69191func (c *SnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *SnapshotsSetLabelsCall {
69192	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69193	return c
69194}
69195
69196// Context sets the context to be used in this call's Do method. Any
69197// pending HTTP request will be aborted if the provided context is
69198// canceled.
69199func (c *SnapshotsSetLabelsCall) Context(ctx context.Context) *SnapshotsSetLabelsCall {
69200	c.ctx_ = ctx
69201	return c
69202}
69203
69204// Header returns an http.Header that can be modified by the caller to
69205// add HTTP headers to the request.
69206func (c *SnapshotsSetLabelsCall) Header() http.Header {
69207	if c.header_ == nil {
69208		c.header_ = make(http.Header)
69209	}
69210	return c.header_
69211}
69212
69213func (c *SnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
69214	reqHeaders := make(http.Header)
69215	for k, v := range c.header_ {
69216		reqHeaders[k] = v
69217	}
69218	reqHeaders.Set("User-Agent", c.s.userAgent())
69219	var body io.Reader = nil
69220	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
69221	if err != nil {
69222		return nil, err
69223	}
69224	reqHeaders.Set("Content-Type", "application/json")
69225	c.urlParams_.Set("alt", alt)
69226	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/setLabels")
69227	urls += "?" + c.urlParams_.Encode()
69228	req, _ := http.NewRequest("POST", urls, body)
69229	req.Header = reqHeaders
69230	googleapi.Expand(req.URL, map[string]string{
69231		"project":  c.project,
69232		"resource": c.resource,
69233	})
69234	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69235}
69236
69237// Do executes the "compute.snapshots.setLabels" call.
69238// Exactly one of *Operation or error will be non-nil. Any non-2xx
69239// status code is an error. Response headers are in either
69240// *Operation.ServerResponse.Header or (if a response was returned at
69241// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69242// to check whether the returned error was because
69243// http.StatusNotModified was returned.
69244func (c *SnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69245	gensupport.SetOptions(c.urlParams_, opts...)
69246	res, err := c.doRequest("json")
69247	if res != nil && res.StatusCode == http.StatusNotModified {
69248		if res.Body != nil {
69249			res.Body.Close()
69250		}
69251		return nil, &googleapi.Error{
69252			Code:   res.StatusCode,
69253			Header: res.Header,
69254		}
69255	}
69256	if err != nil {
69257		return nil, err
69258	}
69259	defer googleapi.CloseBody(res)
69260	if err := googleapi.CheckResponse(res); err != nil {
69261		return nil, err
69262	}
69263	ret := &Operation{
69264		ServerResponse: googleapi.ServerResponse{
69265			Header:         res.Header,
69266			HTTPStatusCode: res.StatusCode,
69267		},
69268	}
69269	target := &ret
69270	if err := gensupport.DecodeResponse(target, res); err != nil {
69271		return nil, err
69272	}
69273	return ret, nil
69274	// {
69275	//   "description": "Sets the labels on a snapshot. To learn more about labels, read the Labeling Resources documentation.",
69276	//   "httpMethod": "POST",
69277	//   "id": "compute.snapshots.setLabels",
69278	//   "parameterOrder": [
69279	//     "project",
69280	//     "resource"
69281	//   ],
69282	//   "parameters": {
69283	//     "project": {
69284	//       "description": "Project ID for this request.",
69285	//       "location": "path",
69286	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69287	//       "required": true,
69288	//       "type": "string"
69289	//     },
69290	//     "resource": {
69291	//       "description": "Name of the resource for this request.",
69292	//       "location": "path",
69293	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?",
69294	//       "required": true,
69295	//       "type": "string"
69296	//     }
69297	//   },
69298	//   "path": "{project}/global/snapshots/{resource}/setLabels",
69299	//   "request": {
69300	//     "$ref": "GlobalSetLabelsRequest"
69301	//   },
69302	//   "response": {
69303	//     "$ref": "Operation"
69304	//   },
69305	//   "scopes": [
69306	//     "https://www.googleapis.com/auth/cloud-platform",
69307	//     "https://www.googleapis.com/auth/compute"
69308	//   ]
69309	// }
69310
69311}
69312
69313// method id "compute.sslCertificates.delete":
69314
69315type SslCertificatesDeleteCall struct {
69316	s              *Service
69317	project        string
69318	sslCertificate string
69319	urlParams_     gensupport.URLParams
69320	ctx_           context.Context
69321	header_        http.Header
69322}
69323
69324// Delete: Deletes the specified SslCertificate resource.
69325func (r *SslCertificatesService) Delete(project string, sslCertificate string) *SslCertificatesDeleteCall {
69326	c := &SslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69327	c.project = project
69328	c.sslCertificate = sslCertificate
69329	return c
69330}
69331
69332// RequestId sets the optional parameter "requestId": An optional
69333// request ID to identify requests. Specify a unique request ID so that
69334// if you must retry your request, the server will know to ignore the
69335// request if it has already been completed.
69336//
69337// For example, consider a situation where you make an initial request
69338// and the request times out. If you make the request again with the
69339// same request ID, the server can check if original operation with the
69340// same request ID was received, and if so, will ignore the second
69341// request. This prevents clients from accidentally creating duplicate
69342// commitments.
69343//
69344// The request ID must be a valid UUID with the exception that zero UUID
69345// is not supported (00000000-0000-0000-0000-000000000000).
69346func (c *SslCertificatesDeleteCall) RequestId(requestId string) *SslCertificatesDeleteCall {
69347	c.urlParams_.Set("requestId", requestId)
69348	return c
69349}
69350
69351// Fields allows partial responses to be retrieved. See
69352// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69353// for more information.
69354func (c *SslCertificatesDeleteCall) Fields(s ...googleapi.Field) *SslCertificatesDeleteCall {
69355	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69356	return c
69357}
69358
69359// Context sets the context to be used in this call's Do method. Any
69360// pending HTTP request will be aborted if the provided context is
69361// canceled.
69362func (c *SslCertificatesDeleteCall) Context(ctx context.Context) *SslCertificatesDeleteCall {
69363	c.ctx_ = ctx
69364	return c
69365}
69366
69367// Header returns an http.Header that can be modified by the caller to
69368// add HTTP headers to the request.
69369func (c *SslCertificatesDeleteCall) Header() http.Header {
69370	if c.header_ == nil {
69371		c.header_ = make(http.Header)
69372	}
69373	return c.header_
69374}
69375
69376func (c *SslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
69377	reqHeaders := make(http.Header)
69378	for k, v := range c.header_ {
69379		reqHeaders[k] = v
69380	}
69381	reqHeaders.Set("User-Agent", c.s.userAgent())
69382	var body io.Reader = nil
69383	c.urlParams_.Set("alt", alt)
69384	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{sslCertificate}")
69385	urls += "?" + c.urlParams_.Encode()
69386	req, _ := http.NewRequest("DELETE", urls, body)
69387	req.Header = reqHeaders
69388	googleapi.Expand(req.URL, map[string]string{
69389		"project":        c.project,
69390		"sslCertificate": c.sslCertificate,
69391	})
69392	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69393}
69394
69395// Do executes the "compute.sslCertificates.delete" call.
69396// Exactly one of *Operation or error will be non-nil. Any non-2xx
69397// status code is an error. Response headers are in either
69398// *Operation.ServerResponse.Header or (if a response was returned at
69399// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69400// to check whether the returned error was because
69401// http.StatusNotModified was returned.
69402func (c *SslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69403	gensupport.SetOptions(c.urlParams_, opts...)
69404	res, err := c.doRequest("json")
69405	if res != nil && res.StatusCode == http.StatusNotModified {
69406		if res.Body != nil {
69407			res.Body.Close()
69408		}
69409		return nil, &googleapi.Error{
69410			Code:   res.StatusCode,
69411			Header: res.Header,
69412		}
69413	}
69414	if err != nil {
69415		return nil, err
69416	}
69417	defer googleapi.CloseBody(res)
69418	if err := googleapi.CheckResponse(res); err != nil {
69419		return nil, err
69420	}
69421	ret := &Operation{
69422		ServerResponse: googleapi.ServerResponse{
69423			Header:         res.Header,
69424			HTTPStatusCode: res.StatusCode,
69425		},
69426	}
69427	target := &ret
69428	if err := gensupport.DecodeResponse(target, res); err != nil {
69429		return nil, err
69430	}
69431	return ret, nil
69432	// {
69433	//   "description": "Deletes the specified SslCertificate resource.",
69434	//   "httpMethod": "DELETE",
69435	//   "id": "compute.sslCertificates.delete",
69436	//   "parameterOrder": [
69437	//     "project",
69438	//     "sslCertificate"
69439	//   ],
69440	//   "parameters": {
69441	//     "project": {
69442	//       "description": "Project ID for this request.",
69443	//       "location": "path",
69444	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69445	//       "required": true,
69446	//       "type": "string"
69447	//     },
69448	//     "requestId": {
69449	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69450	//       "location": "query",
69451	//       "type": "string"
69452	//     },
69453	//     "sslCertificate": {
69454	//       "description": "Name of the SslCertificate resource to delete.",
69455	//       "location": "path",
69456	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
69457	//       "required": true,
69458	//       "type": "string"
69459	//     }
69460	//   },
69461	//   "path": "{project}/global/sslCertificates/{sslCertificate}",
69462	//   "response": {
69463	//     "$ref": "Operation"
69464	//   },
69465	//   "scopes": [
69466	//     "https://www.googleapis.com/auth/cloud-platform",
69467	//     "https://www.googleapis.com/auth/compute"
69468	//   ]
69469	// }
69470
69471}
69472
69473// method id "compute.sslCertificates.get":
69474
69475type SslCertificatesGetCall struct {
69476	s              *Service
69477	project        string
69478	sslCertificate string
69479	urlParams_     gensupport.URLParams
69480	ifNoneMatch_   string
69481	ctx_           context.Context
69482	header_        http.Header
69483}
69484
69485// Get: Returns the specified SslCertificate resource. Gets a list of
69486// available SSL certificates by making a list() request.
69487func (r *SslCertificatesService) Get(project string, sslCertificate string) *SslCertificatesGetCall {
69488	c := &SslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69489	c.project = project
69490	c.sslCertificate = sslCertificate
69491	return c
69492}
69493
69494// Fields allows partial responses to be retrieved. See
69495// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69496// for more information.
69497func (c *SslCertificatesGetCall) Fields(s ...googleapi.Field) *SslCertificatesGetCall {
69498	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69499	return c
69500}
69501
69502// IfNoneMatch sets the optional parameter which makes the operation
69503// fail if the object's ETag matches the given value. This is useful for
69504// getting updates only after the object has changed since the last
69505// request. Use googleapi.IsNotModified to check whether the response
69506// error from Do is the result of In-None-Match.
69507func (c *SslCertificatesGetCall) IfNoneMatch(entityTag string) *SslCertificatesGetCall {
69508	c.ifNoneMatch_ = entityTag
69509	return c
69510}
69511
69512// Context sets the context to be used in this call's Do method. Any
69513// pending HTTP request will be aborted if the provided context is
69514// canceled.
69515func (c *SslCertificatesGetCall) Context(ctx context.Context) *SslCertificatesGetCall {
69516	c.ctx_ = ctx
69517	return c
69518}
69519
69520// Header returns an http.Header that can be modified by the caller to
69521// add HTTP headers to the request.
69522func (c *SslCertificatesGetCall) Header() http.Header {
69523	if c.header_ == nil {
69524		c.header_ = make(http.Header)
69525	}
69526	return c.header_
69527}
69528
69529func (c *SslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
69530	reqHeaders := make(http.Header)
69531	for k, v := range c.header_ {
69532		reqHeaders[k] = v
69533	}
69534	reqHeaders.Set("User-Agent", c.s.userAgent())
69535	if c.ifNoneMatch_ != "" {
69536		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69537	}
69538	var body io.Reader = nil
69539	c.urlParams_.Set("alt", alt)
69540	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{sslCertificate}")
69541	urls += "?" + c.urlParams_.Encode()
69542	req, _ := http.NewRequest("GET", urls, body)
69543	req.Header = reqHeaders
69544	googleapi.Expand(req.URL, map[string]string{
69545		"project":        c.project,
69546		"sslCertificate": c.sslCertificate,
69547	})
69548	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69549}
69550
69551// Do executes the "compute.sslCertificates.get" call.
69552// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
69553// status code is an error. Response headers are in either
69554// *SslCertificate.ServerResponse.Header or (if a response was returned
69555// at all) in error.(*googleapi.Error).Header. Use
69556// googleapi.IsNotModified to check whether the returned error was
69557// because http.StatusNotModified was returned.
69558func (c *SslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
69559	gensupport.SetOptions(c.urlParams_, opts...)
69560	res, err := c.doRequest("json")
69561	if res != nil && res.StatusCode == http.StatusNotModified {
69562		if res.Body != nil {
69563			res.Body.Close()
69564		}
69565		return nil, &googleapi.Error{
69566			Code:   res.StatusCode,
69567			Header: res.Header,
69568		}
69569	}
69570	if err != nil {
69571		return nil, err
69572	}
69573	defer googleapi.CloseBody(res)
69574	if err := googleapi.CheckResponse(res); err != nil {
69575		return nil, err
69576	}
69577	ret := &SslCertificate{
69578		ServerResponse: googleapi.ServerResponse{
69579			Header:         res.Header,
69580			HTTPStatusCode: res.StatusCode,
69581		},
69582	}
69583	target := &ret
69584	if err := gensupport.DecodeResponse(target, res); err != nil {
69585		return nil, err
69586	}
69587	return ret, nil
69588	// {
69589	//   "description": "Returns the specified SslCertificate resource. Gets a list of available SSL certificates by making a list() request.",
69590	//   "httpMethod": "GET",
69591	//   "id": "compute.sslCertificates.get",
69592	//   "parameterOrder": [
69593	//     "project",
69594	//     "sslCertificate"
69595	//   ],
69596	//   "parameters": {
69597	//     "project": {
69598	//       "description": "Project ID for this request.",
69599	//       "location": "path",
69600	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69601	//       "required": true,
69602	//       "type": "string"
69603	//     },
69604	//     "sslCertificate": {
69605	//       "description": "Name of the SslCertificate resource to return.",
69606	//       "location": "path",
69607	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
69608	//       "required": true,
69609	//       "type": "string"
69610	//     }
69611	//   },
69612	//   "path": "{project}/global/sslCertificates/{sslCertificate}",
69613	//   "response": {
69614	//     "$ref": "SslCertificate"
69615	//   },
69616	//   "scopes": [
69617	//     "https://www.googleapis.com/auth/cloud-platform",
69618	//     "https://www.googleapis.com/auth/compute",
69619	//     "https://www.googleapis.com/auth/compute.readonly"
69620	//   ]
69621	// }
69622
69623}
69624
69625// method id "compute.sslCertificates.insert":
69626
69627type SslCertificatesInsertCall struct {
69628	s              *Service
69629	project        string
69630	sslcertificate *SslCertificate
69631	urlParams_     gensupport.URLParams
69632	ctx_           context.Context
69633	header_        http.Header
69634}
69635
69636// Insert: Creates a SslCertificate resource in the specified project
69637// using the data included in the request.
69638func (r *SslCertificatesService) Insert(project string, sslcertificate *SslCertificate) *SslCertificatesInsertCall {
69639	c := &SslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69640	c.project = project
69641	c.sslcertificate = sslcertificate
69642	return c
69643}
69644
69645// RequestId sets the optional parameter "requestId": An optional
69646// request ID to identify requests. Specify a unique request ID so that
69647// if you must retry your request, the server will know to ignore the
69648// request if it has already been completed.
69649//
69650// For example, consider a situation where you make an initial request
69651// and the request times out. If you make the request again with the
69652// same request ID, the server can check if original operation with the
69653// same request ID was received, and if so, will ignore the second
69654// request. This prevents clients from accidentally creating duplicate
69655// commitments.
69656//
69657// The request ID must be a valid UUID with the exception that zero UUID
69658// is not supported (00000000-0000-0000-0000-000000000000).
69659func (c *SslCertificatesInsertCall) RequestId(requestId string) *SslCertificatesInsertCall {
69660	c.urlParams_.Set("requestId", requestId)
69661	return c
69662}
69663
69664// Fields allows partial responses to be retrieved. See
69665// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69666// for more information.
69667func (c *SslCertificatesInsertCall) Fields(s ...googleapi.Field) *SslCertificatesInsertCall {
69668	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69669	return c
69670}
69671
69672// Context sets the context to be used in this call's Do method. Any
69673// pending HTTP request will be aborted if the provided context is
69674// canceled.
69675func (c *SslCertificatesInsertCall) Context(ctx context.Context) *SslCertificatesInsertCall {
69676	c.ctx_ = ctx
69677	return c
69678}
69679
69680// Header returns an http.Header that can be modified by the caller to
69681// add HTTP headers to the request.
69682func (c *SslCertificatesInsertCall) Header() http.Header {
69683	if c.header_ == nil {
69684		c.header_ = make(http.Header)
69685	}
69686	return c.header_
69687}
69688
69689func (c *SslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
69690	reqHeaders := make(http.Header)
69691	for k, v := range c.header_ {
69692		reqHeaders[k] = v
69693	}
69694	reqHeaders.Set("User-Agent", c.s.userAgent())
69695	var body io.Reader = nil
69696	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
69697	if err != nil {
69698		return nil, err
69699	}
69700	reqHeaders.Set("Content-Type", "application/json")
69701	c.urlParams_.Set("alt", alt)
69702	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates")
69703	urls += "?" + c.urlParams_.Encode()
69704	req, _ := http.NewRequest("POST", urls, body)
69705	req.Header = reqHeaders
69706	googleapi.Expand(req.URL, map[string]string{
69707		"project": c.project,
69708	})
69709	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69710}
69711
69712// Do executes the "compute.sslCertificates.insert" call.
69713// Exactly one of *Operation or error will be non-nil. Any non-2xx
69714// status code is an error. Response headers are in either
69715// *Operation.ServerResponse.Header or (if a response was returned at
69716// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69717// to check whether the returned error was because
69718// http.StatusNotModified was returned.
69719func (c *SslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69720	gensupport.SetOptions(c.urlParams_, opts...)
69721	res, err := c.doRequest("json")
69722	if res != nil && res.StatusCode == http.StatusNotModified {
69723		if res.Body != nil {
69724			res.Body.Close()
69725		}
69726		return nil, &googleapi.Error{
69727			Code:   res.StatusCode,
69728			Header: res.Header,
69729		}
69730	}
69731	if err != nil {
69732		return nil, err
69733	}
69734	defer googleapi.CloseBody(res)
69735	if err := googleapi.CheckResponse(res); err != nil {
69736		return nil, err
69737	}
69738	ret := &Operation{
69739		ServerResponse: googleapi.ServerResponse{
69740			Header:         res.Header,
69741			HTTPStatusCode: res.StatusCode,
69742		},
69743	}
69744	target := &ret
69745	if err := gensupport.DecodeResponse(target, res); err != nil {
69746		return nil, err
69747	}
69748	return ret, nil
69749	// {
69750	//   "description": "Creates a SslCertificate resource in the specified project using the data included in the request.",
69751	//   "httpMethod": "POST",
69752	//   "id": "compute.sslCertificates.insert",
69753	//   "parameterOrder": [
69754	//     "project"
69755	//   ],
69756	//   "parameters": {
69757	//     "project": {
69758	//       "description": "Project ID for this request.",
69759	//       "location": "path",
69760	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69761	//       "required": true,
69762	//       "type": "string"
69763	//     },
69764	//     "requestId": {
69765	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69766	//       "location": "query",
69767	//       "type": "string"
69768	//     }
69769	//   },
69770	//   "path": "{project}/global/sslCertificates",
69771	//   "request": {
69772	//     "$ref": "SslCertificate"
69773	//   },
69774	//   "response": {
69775	//     "$ref": "Operation"
69776	//   },
69777	//   "scopes": [
69778	//     "https://www.googleapis.com/auth/cloud-platform",
69779	//     "https://www.googleapis.com/auth/compute"
69780	//   ]
69781	// }
69782
69783}
69784
69785// method id "compute.sslCertificates.list":
69786
69787type SslCertificatesListCall struct {
69788	s            *Service
69789	project      string
69790	urlParams_   gensupport.URLParams
69791	ifNoneMatch_ string
69792	ctx_         context.Context
69793	header_      http.Header
69794}
69795
69796// List: Retrieves the list of SslCertificate resources available to the
69797// specified project.
69798func (r *SslCertificatesService) List(project string) *SslCertificatesListCall {
69799	c := &SslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69800	c.project = project
69801	return c
69802}
69803
69804// Filter sets the optional parameter "filter": A filter expression that
69805// filters resources listed in the response. The expression must specify
69806// the field name, a comparison operator, and the value that you want to
69807// use for filtering. The value must be a string, a number, or a
69808// boolean. The comparison operator must be either =, !=, >, or <.
69809//
69810// For example, if you are filtering Compute Engine instances, you can
69811// exclude instances named example-instance by specifying name !=
69812// example-instance.
69813//
69814// You can also filter nested fields. For example, you could specify
69815// scheduling.automaticRestart = false to include instances only if they
69816// are not scheduled for automatic restarts. You can use filtering on
69817// nested fields to filter based on resource labels.
69818//
69819// To filter on multiple expressions, provide each separate expression
69820// within parentheses. For example, (scheduling.automaticRestart = true)
69821// (cpuPlatform = "Intel Skylake"). By default, each expression is an
69822// AND expression. However, you can include AND and OR expressions
69823// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
69824// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
69825// true).
69826func (c *SslCertificatesListCall) Filter(filter string) *SslCertificatesListCall {
69827	c.urlParams_.Set("filter", filter)
69828	return c
69829}
69830
69831// MaxResults sets the optional parameter "maxResults": The maximum
69832// number of results per page that should be returned. If the number of
69833// available results is larger than maxResults, Compute Engine returns a
69834// nextPageToken that can be used to get the next page of results in
69835// subsequent list requests. Acceptable values are 0 to 500, inclusive.
69836// (Default: 500)
69837func (c *SslCertificatesListCall) MaxResults(maxResults int64) *SslCertificatesListCall {
69838	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
69839	return c
69840}
69841
69842// OrderBy sets the optional parameter "orderBy": Sorts list results by
69843// a certain order. By default, results are returned in alphanumerical
69844// order based on the resource name.
69845//
69846// You can also sort results in descending order based on the creation
69847// timestamp using orderBy="creationTimestamp desc". This sorts results
69848// based on the creationTimestamp field in reverse chronological order
69849// (newest result first). Use this to sort resources like operations so
69850// that the newest operation is returned first.
69851//
69852// Currently, only sorting by name or creationTimestamp desc is
69853// supported.
69854func (c *SslCertificatesListCall) OrderBy(orderBy string) *SslCertificatesListCall {
69855	c.urlParams_.Set("orderBy", orderBy)
69856	return c
69857}
69858
69859// PageToken sets the optional parameter "pageToken": Specifies a page
69860// token to use. Set pageToken to the nextPageToken returned by a
69861// previous list request to get the next page of results.
69862func (c *SslCertificatesListCall) PageToken(pageToken string) *SslCertificatesListCall {
69863	c.urlParams_.Set("pageToken", pageToken)
69864	return c
69865}
69866
69867// Fields allows partial responses to be retrieved. See
69868// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69869// for more information.
69870func (c *SslCertificatesListCall) Fields(s ...googleapi.Field) *SslCertificatesListCall {
69871	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69872	return c
69873}
69874
69875// IfNoneMatch sets the optional parameter which makes the operation
69876// fail if the object's ETag matches the given value. This is useful for
69877// getting updates only after the object has changed since the last
69878// request. Use googleapi.IsNotModified to check whether the response
69879// error from Do is the result of In-None-Match.
69880func (c *SslCertificatesListCall) IfNoneMatch(entityTag string) *SslCertificatesListCall {
69881	c.ifNoneMatch_ = entityTag
69882	return c
69883}
69884
69885// Context sets the context to be used in this call's Do method. Any
69886// pending HTTP request will be aborted if the provided context is
69887// canceled.
69888func (c *SslCertificatesListCall) Context(ctx context.Context) *SslCertificatesListCall {
69889	c.ctx_ = ctx
69890	return c
69891}
69892
69893// Header returns an http.Header that can be modified by the caller to
69894// add HTTP headers to the request.
69895func (c *SslCertificatesListCall) Header() http.Header {
69896	if c.header_ == nil {
69897		c.header_ = make(http.Header)
69898	}
69899	return c.header_
69900}
69901
69902func (c *SslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
69903	reqHeaders := make(http.Header)
69904	for k, v := range c.header_ {
69905		reqHeaders[k] = v
69906	}
69907	reqHeaders.Set("User-Agent", c.s.userAgent())
69908	if c.ifNoneMatch_ != "" {
69909		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69910	}
69911	var body io.Reader = nil
69912	c.urlParams_.Set("alt", alt)
69913	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates")
69914	urls += "?" + c.urlParams_.Encode()
69915	req, _ := http.NewRequest("GET", urls, body)
69916	req.Header = reqHeaders
69917	googleapi.Expand(req.URL, map[string]string{
69918		"project": c.project,
69919	})
69920	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69921}
69922
69923// Do executes the "compute.sslCertificates.list" call.
69924// Exactly one of *SslCertificateList or error will be non-nil. Any
69925// non-2xx status code is an error. Response headers are in either
69926// *SslCertificateList.ServerResponse.Header or (if a response was
69927// returned at all) in error.(*googleapi.Error).Header. Use
69928// googleapi.IsNotModified to check whether the returned error was
69929// because http.StatusNotModified was returned.
69930func (c *SslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
69931	gensupport.SetOptions(c.urlParams_, opts...)
69932	res, err := c.doRequest("json")
69933	if res != nil && res.StatusCode == http.StatusNotModified {
69934		if res.Body != nil {
69935			res.Body.Close()
69936		}
69937		return nil, &googleapi.Error{
69938			Code:   res.StatusCode,
69939			Header: res.Header,
69940		}
69941	}
69942	if err != nil {
69943		return nil, err
69944	}
69945	defer googleapi.CloseBody(res)
69946	if err := googleapi.CheckResponse(res); err != nil {
69947		return nil, err
69948	}
69949	ret := &SslCertificateList{
69950		ServerResponse: googleapi.ServerResponse{
69951			Header:         res.Header,
69952			HTTPStatusCode: res.StatusCode,
69953		},
69954	}
69955	target := &ret
69956	if err := gensupport.DecodeResponse(target, res); err != nil {
69957		return nil, err
69958	}
69959	return ret, nil
69960	// {
69961	//   "description": "Retrieves the list of SslCertificate resources available to the specified project.",
69962	//   "httpMethod": "GET",
69963	//   "id": "compute.sslCertificates.list",
69964	//   "parameterOrder": [
69965	//     "project"
69966	//   ],
69967	//   "parameters": {
69968	//     "filter": {
69969	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
69970	//       "location": "query",
69971	//       "type": "string"
69972	//     },
69973	//     "maxResults": {
69974	//       "default": "500",
69975	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
69976	//       "format": "uint32",
69977	//       "location": "query",
69978	//       "minimum": "0",
69979	//       "type": "integer"
69980	//     },
69981	//     "orderBy": {
69982	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
69983	//       "location": "query",
69984	//       "type": "string"
69985	//     },
69986	//     "pageToken": {
69987	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
69988	//       "location": "query",
69989	//       "type": "string"
69990	//     },
69991	//     "project": {
69992	//       "description": "Project ID for this request.",
69993	//       "location": "path",
69994	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69995	//       "required": true,
69996	//       "type": "string"
69997	//     }
69998	//   },
69999	//   "path": "{project}/global/sslCertificates",
70000	//   "response": {
70001	//     "$ref": "SslCertificateList"
70002	//   },
70003	//   "scopes": [
70004	//     "https://www.googleapis.com/auth/cloud-platform",
70005	//     "https://www.googleapis.com/auth/compute",
70006	//     "https://www.googleapis.com/auth/compute.readonly"
70007	//   ]
70008	// }
70009
70010}
70011
70012// Pages invokes f for each page of results.
70013// A non-nil error returned from f will halt the iteration.
70014// The provided context supersedes any context provided to the Context method.
70015func (c *SslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
70016	c.ctx_ = ctx
70017	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
70018	for {
70019		x, err := c.Do()
70020		if err != nil {
70021			return err
70022		}
70023		if err := f(x); err != nil {
70024			return err
70025		}
70026		if x.NextPageToken == "" {
70027			return nil
70028		}
70029		c.PageToken(x.NextPageToken)
70030	}
70031}
70032
70033// method id "compute.sslPolicies.delete":
70034
70035type SslPoliciesDeleteCall struct {
70036	s          *Service
70037	project    string
70038	sslPolicy  string
70039	urlParams_ gensupport.URLParams
70040	ctx_       context.Context
70041	header_    http.Header
70042}
70043
70044// Delete: Deletes the specified SSL policy. The SSL policy resource can
70045// be deleted only if it is not in use by any TargetHttpsProxy or
70046// TargetSslProxy resources.
70047func (r *SslPoliciesService) Delete(project string, sslPolicy string) *SslPoliciesDeleteCall {
70048	c := &SslPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70049	c.project = project
70050	c.sslPolicy = sslPolicy
70051	return c
70052}
70053
70054// RequestId sets the optional parameter "requestId": An optional
70055// request ID to identify requests. Specify a unique request ID so that
70056// if you must retry your request, the server will know to ignore the
70057// request if it has already been completed.
70058//
70059// For example, consider a situation where you make an initial request
70060// and the request times out. If you make the request again with the
70061// same request ID, the server can check if original operation with the
70062// same request ID was received, and if so, will ignore the second
70063// request. This prevents clients from accidentally creating duplicate
70064// commitments.
70065//
70066// The request ID must be a valid UUID with the exception that zero UUID
70067// is not supported (00000000-0000-0000-0000-000000000000).
70068func (c *SslPoliciesDeleteCall) RequestId(requestId string) *SslPoliciesDeleteCall {
70069	c.urlParams_.Set("requestId", requestId)
70070	return c
70071}
70072
70073// Fields allows partial responses to be retrieved. See
70074// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70075// for more information.
70076func (c *SslPoliciesDeleteCall) Fields(s ...googleapi.Field) *SslPoliciesDeleteCall {
70077	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70078	return c
70079}
70080
70081// Context sets the context to be used in this call's Do method. Any
70082// pending HTTP request will be aborted if the provided context is
70083// canceled.
70084func (c *SslPoliciesDeleteCall) Context(ctx context.Context) *SslPoliciesDeleteCall {
70085	c.ctx_ = ctx
70086	return c
70087}
70088
70089// Header returns an http.Header that can be modified by the caller to
70090// add HTTP headers to the request.
70091func (c *SslPoliciesDeleteCall) Header() http.Header {
70092	if c.header_ == nil {
70093		c.header_ = make(http.Header)
70094	}
70095	return c.header_
70096}
70097
70098func (c *SslPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
70099	reqHeaders := make(http.Header)
70100	for k, v := range c.header_ {
70101		reqHeaders[k] = v
70102	}
70103	reqHeaders.Set("User-Agent", c.s.userAgent())
70104	var body io.Reader = nil
70105	c.urlParams_.Set("alt", alt)
70106	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
70107	urls += "?" + c.urlParams_.Encode()
70108	req, _ := http.NewRequest("DELETE", urls, body)
70109	req.Header = reqHeaders
70110	googleapi.Expand(req.URL, map[string]string{
70111		"project":   c.project,
70112		"sslPolicy": c.sslPolicy,
70113	})
70114	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70115}
70116
70117// Do executes the "compute.sslPolicies.delete" call.
70118// Exactly one of *Operation or error will be non-nil. Any non-2xx
70119// status code is an error. Response headers are in either
70120// *Operation.ServerResponse.Header or (if a response was returned at
70121// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70122// to check whether the returned error was because
70123// http.StatusNotModified was returned.
70124func (c *SslPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70125	gensupport.SetOptions(c.urlParams_, opts...)
70126	res, err := c.doRequest("json")
70127	if res != nil && res.StatusCode == http.StatusNotModified {
70128		if res.Body != nil {
70129			res.Body.Close()
70130		}
70131		return nil, &googleapi.Error{
70132			Code:   res.StatusCode,
70133			Header: res.Header,
70134		}
70135	}
70136	if err != nil {
70137		return nil, err
70138	}
70139	defer googleapi.CloseBody(res)
70140	if err := googleapi.CheckResponse(res); err != nil {
70141		return nil, err
70142	}
70143	ret := &Operation{
70144		ServerResponse: googleapi.ServerResponse{
70145			Header:         res.Header,
70146			HTTPStatusCode: res.StatusCode,
70147		},
70148	}
70149	target := &ret
70150	if err := gensupport.DecodeResponse(target, res); err != nil {
70151		return nil, err
70152	}
70153	return ret, nil
70154	// {
70155	//   "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.",
70156	//   "httpMethod": "DELETE",
70157	//   "id": "compute.sslPolicies.delete",
70158	//   "parameterOrder": [
70159	//     "project",
70160	//     "sslPolicy"
70161	//   ],
70162	//   "parameters": {
70163	//     "project": {
70164	//       "description": "Project ID for this request.",
70165	//       "location": "path",
70166	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70167	//       "required": true,
70168	//       "type": "string"
70169	//     },
70170	//     "requestId": {
70171	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70172	//       "location": "query",
70173	//       "type": "string"
70174	//     },
70175	//     "sslPolicy": {
70176	//       "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.",
70177	//       "location": "path",
70178	//       "required": true,
70179	//       "type": "string"
70180	//     }
70181	//   },
70182	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
70183	//   "response": {
70184	//     "$ref": "Operation"
70185	//   },
70186	//   "scopes": [
70187	//     "https://www.googleapis.com/auth/cloud-platform",
70188	//     "https://www.googleapis.com/auth/compute"
70189	//   ]
70190	// }
70191
70192}
70193
70194// method id "compute.sslPolicies.get":
70195
70196type SslPoliciesGetCall struct {
70197	s            *Service
70198	project      string
70199	sslPolicy    string
70200	urlParams_   gensupport.URLParams
70201	ifNoneMatch_ string
70202	ctx_         context.Context
70203	header_      http.Header
70204}
70205
70206// Get: Lists all of the ordered rules present in a single specified
70207// policy.
70208func (r *SslPoliciesService) Get(project string, sslPolicy string) *SslPoliciesGetCall {
70209	c := &SslPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70210	c.project = project
70211	c.sslPolicy = sslPolicy
70212	return c
70213}
70214
70215// Fields allows partial responses to be retrieved. See
70216// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70217// for more information.
70218func (c *SslPoliciesGetCall) Fields(s ...googleapi.Field) *SslPoliciesGetCall {
70219	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70220	return c
70221}
70222
70223// IfNoneMatch sets the optional parameter which makes the operation
70224// fail if the object's ETag matches the given value. This is useful for
70225// getting updates only after the object has changed since the last
70226// request. Use googleapi.IsNotModified to check whether the response
70227// error from Do is the result of In-None-Match.
70228func (c *SslPoliciesGetCall) IfNoneMatch(entityTag string) *SslPoliciesGetCall {
70229	c.ifNoneMatch_ = entityTag
70230	return c
70231}
70232
70233// Context sets the context to be used in this call's Do method. Any
70234// pending HTTP request will be aborted if the provided context is
70235// canceled.
70236func (c *SslPoliciesGetCall) Context(ctx context.Context) *SslPoliciesGetCall {
70237	c.ctx_ = ctx
70238	return c
70239}
70240
70241// Header returns an http.Header that can be modified by the caller to
70242// add HTTP headers to the request.
70243func (c *SslPoliciesGetCall) Header() http.Header {
70244	if c.header_ == nil {
70245		c.header_ = make(http.Header)
70246	}
70247	return c.header_
70248}
70249
70250func (c *SslPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
70251	reqHeaders := make(http.Header)
70252	for k, v := range c.header_ {
70253		reqHeaders[k] = v
70254	}
70255	reqHeaders.Set("User-Agent", c.s.userAgent())
70256	if c.ifNoneMatch_ != "" {
70257		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70258	}
70259	var body io.Reader = nil
70260	c.urlParams_.Set("alt", alt)
70261	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
70262	urls += "?" + c.urlParams_.Encode()
70263	req, _ := http.NewRequest("GET", urls, body)
70264	req.Header = reqHeaders
70265	googleapi.Expand(req.URL, map[string]string{
70266		"project":   c.project,
70267		"sslPolicy": c.sslPolicy,
70268	})
70269	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70270}
70271
70272// Do executes the "compute.sslPolicies.get" call.
70273// Exactly one of *SslPolicy or error will be non-nil. Any non-2xx
70274// status code is an error. Response headers are in either
70275// *SslPolicy.ServerResponse.Header or (if a response was returned at
70276// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70277// to check whether the returned error was because
70278// http.StatusNotModified was returned.
70279func (c *SslPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SslPolicy, error) {
70280	gensupport.SetOptions(c.urlParams_, opts...)
70281	res, err := c.doRequest("json")
70282	if res != nil && res.StatusCode == http.StatusNotModified {
70283		if res.Body != nil {
70284			res.Body.Close()
70285		}
70286		return nil, &googleapi.Error{
70287			Code:   res.StatusCode,
70288			Header: res.Header,
70289		}
70290	}
70291	if err != nil {
70292		return nil, err
70293	}
70294	defer googleapi.CloseBody(res)
70295	if err := googleapi.CheckResponse(res); err != nil {
70296		return nil, err
70297	}
70298	ret := &SslPolicy{
70299		ServerResponse: googleapi.ServerResponse{
70300			Header:         res.Header,
70301			HTTPStatusCode: res.StatusCode,
70302		},
70303	}
70304	target := &ret
70305	if err := gensupport.DecodeResponse(target, res); err != nil {
70306		return nil, err
70307	}
70308	return ret, nil
70309	// {
70310	//   "description": "Lists all of the ordered rules present in a single specified policy.",
70311	//   "httpMethod": "GET",
70312	//   "id": "compute.sslPolicies.get",
70313	//   "parameterOrder": [
70314	//     "project",
70315	//     "sslPolicy"
70316	//   ],
70317	//   "parameters": {
70318	//     "project": {
70319	//       "description": "Project ID for this request.",
70320	//       "location": "path",
70321	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70322	//       "required": true,
70323	//       "type": "string"
70324	//     },
70325	//     "sslPolicy": {
70326	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
70327	//       "location": "path",
70328	//       "required": true,
70329	//       "type": "string"
70330	//     }
70331	//   },
70332	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
70333	//   "response": {
70334	//     "$ref": "SslPolicy"
70335	//   },
70336	//   "scopes": [
70337	//     "https://www.googleapis.com/auth/cloud-platform",
70338	//     "https://www.googleapis.com/auth/compute",
70339	//     "https://www.googleapis.com/auth/compute.readonly"
70340	//   ]
70341	// }
70342
70343}
70344
70345// method id "compute.sslPolicies.insert":
70346
70347type SslPoliciesInsertCall struct {
70348	s          *Service
70349	project    string
70350	sslpolicy  *SslPolicy
70351	urlParams_ gensupport.URLParams
70352	ctx_       context.Context
70353	header_    http.Header
70354}
70355
70356// Insert: Returns the specified SSL policy resource. Gets a list of
70357// available SSL policies by making a list() request.
70358func (r *SslPoliciesService) Insert(project string, sslpolicy *SslPolicy) *SslPoliciesInsertCall {
70359	c := &SslPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70360	c.project = project
70361	c.sslpolicy = sslpolicy
70362	return c
70363}
70364
70365// RequestId sets the optional parameter "requestId": An optional
70366// request ID to identify requests. Specify a unique request ID so that
70367// if you must retry your request, the server will know to ignore the
70368// request if it has already been completed.
70369//
70370// For example, consider a situation where you make an initial request
70371// and the request times out. If you make the request again with the
70372// same request ID, the server can check if original operation with the
70373// same request ID was received, and if so, will ignore the second
70374// request. This prevents clients from accidentally creating duplicate
70375// commitments.
70376//
70377// The request ID must be a valid UUID with the exception that zero UUID
70378// is not supported (00000000-0000-0000-0000-000000000000).
70379func (c *SslPoliciesInsertCall) RequestId(requestId string) *SslPoliciesInsertCall {
70380	c.urlParams_.Set("requestId", requestId)
70381	return c
70382}
70383
70384// Fields allows partial responses to be retrieved. See
70385// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70386// for more information.
70387func (c *SslPoliciesInsertCall) Fields(s ...googleapi.Field) *SslPoliciesInsertCall {
70388	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70389	return c
70390}
70391
70392// Context sets the context to be used in this call's Do method. Any
70393// pending HTTP request will be aborted if the provided context is
70394// canceled.
70395func (c *SslPoliciesInsertCall) Context(ctx context.Context) *SslPoliciesInsertCall {
70396	c.ctx_ = ctx
70397	return c
70398}
70399
70400// Header returns an http.Header that can be modified by the caller to
70401// add HTTP headers to the request.
70402func (c *SslPoliciesInsertCall) Header() http.Header {
70403	if c.header_ == nil {
70404		c.header_ = make(http.Header)
70405	}
70406	return c.header_
70407}
70408
70409func (c *SslPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
70410	reqHeaders := make(http.Header)
70411	for k, v := range c.header_ {
70412		reqHeaders[k] = v
70413	}
70414	reqHeaders.Set("User-Agent", c.s.userAgent())
70415	var body io.Reader = nil
70416	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
70417	if err != nil {
70418		return nil, err
70419	}
70420	reqHeaders.Set("Content-Type", "application/json")
70421	c.urlParams_.Set("alt", alt)
70422	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies")
70423	urls += "?" + c.urlParams_.Encode()
70424	req, _ := http.NewRequest("POST", urls, body)
70425	req.Header = reqHeaders
70426	googleapi.Expand(req.URL, map[string]string{
70427		"project": c.project,
70428	})
70429	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70430}
70431
70432// Do executes the "compute.sslPolicies.insert" call.
70433// Exactly one of *Operation or error will be non-nil. Any non-2xx
70434// status code is an error. Response headers are in either
70435// *Operation.ServerResponse.Header or (if a response was returned at
70436// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70437// to check whether the returned error was because
70438// http.StatusNotModified was returned.
70439func (c *SslPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70440	gensupport.SetOptions(c.urlParams_, opts...)
70441	res, err := c.doRequest("json")
70442	if res != nil && res.StatusCode == http.StatusNotModified {
70443		if res.Body != nil {
70444			res.Body.Close()
70445		}
70446		return nil, &googleapi.Error{
70447			Code:   res.StatusCode,
70448			Header: res.Header,
70449		}
70450	}
70451	if err != nil {
70452		return nil, err
70453	}
70454	defer googleapi.CloseBody(res)
70455	if err := googleapi.CheckResponse(res); err != nil {
70456		return nil, err
70457	}
70458	ret := &Operation{
70459		ServerResponse: googleapi.ServerResponse{
70460			Header:         res.Header,
70461			HTTPStatusCode: res.StatusCode,
70462		},
70463	}
70464	target := &ret
70465	if err := gensupport.DecodeResponse(target, res); err != nil {
70466		return nil, err
70467	}
70468	return ret, nil
70469	// {
70470	//   "description": "Returns the specified SSL policy resource. Gets a list of available SSL policies by making a list() request.",
70471	//   "httpMethod": "POST",
70472	//   "id": "compute.sslPolicies.insert",
70473	//   "parameterOrder": [
70474	//     "project"
70475	//   ],
70476	//   "parameters": {
70477	//     "project": {
70478	//       "description": "Project ID for this request.",
70479	//       "location": "path",
70480	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70481	//       "required": true,
70482	//       "type": "string"
70483	//     },
70484	//     "requestId": {
70485	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70486	//       "location": "query",
70487	//       "type": "string"
70488	//     }
70489	//   },
70490	//   "path": "{project}/global/sslPolicies",
70491	//   "request": {
70492	//     "$ref": "SslPolicy"
70493	//   },
70494	//   "response": {
70495	//     "$ref": "Operation"
70496	//   },
70497	//   "scopes": [
70498	//     "https://www.googleapis.com/auth/cloud-platform",
70499	//     "https://www.googleapis.com/auth/compute"
70500	//   ]
70501	// }
70502
70503}
70504
70505// method id "compute.sslPolicies.list":
70506
70507type SslPoliciesListCall struct {
70508	s            *Service
70509	project      string
70510	urlParams_   gensupport.URLParams
70511	ifNoneMatch_ string
70512	ctx_         context.Context
70513	header_      http.Header
70514}
70515
70516// List: Lists all the SSL policies that have been configured for the
70517// specified project.
70518func (r *SslPoliciesService) List(project string) *SslPoliciesListCall {
70519	c := &SslPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70520	c.project = project
70521	return c
70522}
70523
70524// Filter sets the optional parameter "filter": A filter expression that
70525// filters resources listed in the response. The expression must specify
70526// the field name, a comparison operator, and the value that you want to
70527// use for filtering. The value must be a string, a number, or a
70528// boolean. The comparison operator must be either =, !=, >, or <.
70529//
70530// For example, if you are filtering Compute Engine instances, you can
70531// exclude instances named example-instance by specifying name !=
70532// example-instance.
70533//
70534// You can also filter nested fields. For example, you could specify
70535// scheduling.automaticRestart = false to include instances only if they
70536// are not scheduled for automatic restarts. You can use filtering on
70537// nested fields to filter based on resource labels.
70538//
70539// To filter on multiple expressions, provide each separate expression
70540// within parentheses. For example, (scheduling.automaticRestart = true)
70541// (cpuPlatform = "Intel Skylake"). By default, each expression is an
70542// AND expression. However, you can include AND and OR expressions
70543// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
70544// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
70545// true).
70546func (c *SslPoliciesListCall) Filter(filter string) *SslPoliciesListCall {
70547	c.urlParams_.Set("filter", filter)
70548	return c
70549}
70550
70551// MaxResults sets the optional parameter "maxResults": The maximum
70552// number of results per page that should be returned. If the number of
70553// available results is larger than maxResults, Compute Engine returns a
70554// nextPageToken that can be used to get the next page of results in
70555// subsequent list requests. Acceptable values are 0 to 500, inclusive.
70556// (Default: 500)
70557func (c *SslPoliciesListCall) MaxResults(maxResults int64) *SslPoliciesListCall {
70558	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
70559	return c
70560}
70561
70562// OrderBy sets the optional parameter "orderBy": Sorts list results by
70563// a certain order. By default, results are returned in alphanumerical
70564// order based on the resource name.
70565//
70566// You can also sort results in descending order based on the creation
70567// timestamp using orderBy="creationTimestamp desc". This sorts results
70568// based on the creationTimestamp field in reverse chronological order
70569// (newest result first). Use this to sort resources like operations so
70570// that the newest operation is returned first.
70571//
70572// Currently, only sorting by name or creationTimestamp desc is
70573// supported.
70574func (c *SslPoliciesListCall) OrderBy(orderBy string) *SslPoliciesListCall {
70575	c.urlParams_.Set("orderBy", orderBy)
70576	return c
70577}
70578
70579// PageToken sets the optional parameter "pageToken": Specifies a page
70580// token to use. Set pageToken to the nextPageToken returned by a
70581// previous list request to get the next page of results.
70582func (c *SslPoliciesListCall) PageToken(pageToken string) *SslPoliciesListCall {
70583	c.urlParams_.Set("pageToken", pageToken)
70584	return c
70585}
70586
70587// Fields allows partial responses to be retrieved. See
70588// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70589// for more information.
70590func (c *SslPoliciesListCall) Fields(s ...googleapi.Field) *SslPoliciesListCall {
70591	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70592	return c
70593}
70594
70595// IfNoneMatch sets the optional parameter which makes the operation
70596// fail if the object's ETag matches the given value. This is useful for
70597// getting updates only after the object has changed since the last
70598// request. Use googleapi.IsNotModified to check whether the response
70599// error from Do is the result of In-None-Match.
70600func (c *SslPoliciesListCall) IfNoneMatch(entityTag string) *SslPoliciesListCall {
70601	c.ifNoneMatch_ = entityTag
70602	return c
70603}
70604
70605// Context sets the context to be used in this call's Do method. Any
70606// pending HTTP request will be aborted if the provided context is
70607// canceled.
70608func (c *SslPoliciesListCall) Context(ctx context.Context) *SslPoliciesListCall {
70609	c.ctx_ = ctx
70610	return c
70611}
70612
70613// Header returns an http.Header that can be modified by the caller to
70614// add HTTP headers to the request.
70615func (c *SslPoliciesListCall) Header() http.Header {
70616	if c.header_ == nil {
70617		c.header_ = make(http.Header)
70618	}
70619	return c.header_
70620}
70621
70622func (c *SslPoliciesListCall) doRequest(alt string) (*http.Response, error) {
70623	reqHeaders := make(http.Header)
70624	for k, v := range c.header_ {
70625		reqHeaders[k] = v
70626	}
70627	reqHeaders.Set("User-Agent", c.s.userAgent())
70628	if c.ifNoneMatch_ != "" {
70629		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70630	}
70631	var body io.Reader = nil
70632	c.urlParams_.Set("alt", alt)
70633	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies")
70634	urls += "?" + c.urlParams_.Encode()
70635	req, _ := http.NewRequest("GET", urls, body)
70636	req.Header = reqHeaders
70637	googleapi.Expand(req.URL, map[string]string{
70638		"project": c.project,
70639	})
70640	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70641}
70642
70643// Do executes the "compute.sslPolicies.list" call.
70644// Exactly one of *SslPoliciesList or error will be non-nil. Any non-2xx
70645// status code is an error. Response headers are in either
70646// *SslPoliciesList.ServerResponse.Header or (if a response was returned
70647// at all) in error.(*googleapi.Error).Header. Use
70648// googleapi.IsNotModified to check whether the returned error was
70649// because http.StatusNotModified was returned.
70650func (c *SslPoliciesListCall) Do(opts ...googleapi.CallOption) (*SslPoliciesList, error) {
70651	gensupport.SetOptions(c.urlParams_, opts...)
70652	res, err := c.doRequest("json")
70653	if res != nil && res.StatusCode == http.StatusNotModified {
70654		if res.Body != nil {
70655			res.Body.Close()
70656		}
70657		return nil, &googleapi.Error{
70658			Code:   res.StatusCode,
70659			Header: res.Header,
70660		}
70661	}
70662	if err != nil {
70663		return nil, err
70664	}
70665	defer googleapi.CloseBody(res)
70666	if err := googleapi.CheckResponse(res); err != nil {
70667		return nil, err
70668	}
70669	ret := &SslPoliciesList{
70670		ServerResponse: googleapi.ServerResponse{
70671			Header:         res.Header,
70672			HTTPStatusCode: res.StatusCode,
70673		},
70674	}
70675	target := &ret
70676	if err := gensupport.DecodeResponse(target, res); err != nil {
70677		return nil, err
70678	}
70679	return ret, nil
70680	// {
70681	//   "description": "Lists all the SSL policies that have been configured for the specified project.",
70682	//   "httpMethod": "GET",
70683	//   "id": "compute.sslPolicies.list",
70684	//   "parameterOrder": [
70685	//     "project"
70686	//   ],
70687	//   "parameters": {
70688	//     "filter": {
70689	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
70690	//       "location": "query",
70691	//       "type": "string"
70692	//     },
70693	//     "maxResults": {
70694	//       "default": "500",
70695	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
70696	//       "format": "uint32",
70697	//       "location": "query",
70698	//       "minimum": "0",
70699	//       "type": "integer"
70700	//     },
70701	//     "orderBy": {
70702	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
70703	//       "location": "query",
70704	//       "type": "string"
70705	//     },
70706	//     "pageToken": {
70707	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
70708	//       "location": "query",
70709	//       "type": "string"
70710	//     },
70711	//     "project": {
70712	//       "description": "Project ID for this request.",
70713	//       "location": "path",
70714	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70715	//       "required": true,
70716	//       "type": "string"
70717	//     }
70718	//   },
70719	//   "path": "{project}/global/sslPolicies",
70720	//   "response": {
70721	//     "$ref": "SslPoliciesList"
70722	//   },
70723	//   "scopes": [
70724	//     "https://www.googleapis.com/auth/cloud-platform",
70725	//     "https://www.googleapis.com/auth/compute",
70726	//     "https://www.googleapis.com/auth/compute.readonly"
70727	//   ]
70728	// }
70729
70730}
70731
70732// Pages invokes f for each page of results.
70733// A non-nil error returned from f will halt the iteration.
70734// The provided context supersedes any context provided to the Context method.
70735func (c *SslPoliciesListCall) Pages(ctx context.Context, f func(*SslPoliciesList) error) error {
70736	c.ctx_ = ctx
70737	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
70738	for {
70739		x, err := c.Do()
70740		if err != nil {
70741			return err
70742		}
70743		if err := f(x); err != nil {
70744			return err
70745		}
70746		if x.NextPageToken == "" {
70747			return nil
70748		}
70749		c.PageToken(x.NextPageToken)
70750	}
70751}
70752
70753// method id "compute.sslPolicies.listAvailableFeatures":
70754
70755type SslPoliciesListAvailableFeaturesCall struct {
70756	s            *Service
70757	project      string
70758	urlParams_   gensupport.URLParams
70759	ifNoneMatch_ string
70760	ctx_         context.Context
70761	header_      http.Header
70762}
70763
70764// ListAvailableFeatures: Lists all features that can be specified in
70765// the SSL policy when using custom profile.
70766func (r *SslPoliciesService) ListAvailableFeatures(project string) *SslPoliciesListAvailableFeaturesCall {
70767	c := &SslPoliciesListAvailableFeaturesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70768	c.project = project
70769	return c
70770}
70771
70772// Filter sets the optional parameter "filter": A filter expression that
70773// filters resources listed in the response. The expression must specify
70774// the field name, a comparison operator, and the value that you want to
70775// use for filtering. The value must be a string, a number, or a
70776// boolean. The comparison operator must be either =, !=, >, or <.
70777//
70778// For example, if you are filtering Compute Engine instances, you can
70779// exclude instances named example-instance by specifying name !=
70780// example-instance.
70781//
70782// You can also filter nested fields. For example, you could specify
70783// scheduling.automaticRestart = false to include instances only if they
70784// are not scheduled for automatic restarts. You can use filtering on
70785// nested fields to filter based on resource labels.
70786//
70787// To filter on multiple expressions, provide each separate expression
70788// within parentheses. For example, (scheduling.automaticRestart = true)
70789// (cpuPlatform = "Intel Skylake"). By default, each expression is an
70790// AND expression. However, you can include AND and OR expressions
70791// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
70792// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
70793// true).
70794func (c *SslPoliciesListAvailableFeaturesCall) Filter(filter string) *SslPoliciesListAvailableFeaturesCall {
70795	c.urlParams_.Set("filter", filter)
70796	return c
70797}
70798
70799// MaxResults sets the optional parameter "maxResults": The maximum
70800// number of results per page that should be returned. If the number of
70801// available results is larger than maxResults, Compute Engine returns a
70802// nextPageToken that can be used to get the next page of results in
70803// subsequent list requests. Acceptable values are 0 to 500, inclusive.
70804// (Default: 500)
70805func (c *SslPoliciesListAvailableFeaturesCall) MaxResults(maxResults int64) *SslPoliciesListAvailableFeaturesCall {
70806	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
70807	return c
70808}
70809
70810// OrderBy sets the optional parameter "orderBy": Sorts list results by
70811// a certain order. By default, results are returned in alphanumerical
70812// order based on the resource name.
70813//
70814// You can also sort results in descending order based on the creation
70815// timestamp using orderBy="creationTimestamp desc". This sorts results
70816// based on the creationTimestamp field in reverse chronological order
70817// (newest result first). Use this to sort resources like operations so
70818// that the newest operation is returned first.
70819//
70820// Currently, only sorting by name or creationTimestamp desc is
70821// supported.
70822func (c *SslPoliciesListAvailableFeaturesCall) OrderBy(orderBy string) *SslPoliciesListAvailableFeaturesCall {
70823	c.urlParams_.Set("orderBy", orderBy)
70824	return c
70825}
70826
70827// PageToken sets the optional parameter "pageToken": Specifies a page
70828// token to use. Set pageToken to the nextPageToken returned by a
70829// previous list request to get the next page of results.
70830func (c *SslPoliciesListAvailableFeaturesCall) PageToken(pageToken string) *SslPoliciesListAvailableFeaturesCall {
70831	c.urlParams_.Set("pageToken", pageToken)
70832	return c
70833}
70834
70835// Fields allows partial responses to be retrieved. See
70836// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70837// for more information.
70838func (c *SslPoliciesListAvailableFeaturesCall) Fields(s ...googleapi.Field) *SslPoliciesListAvailableFeaturesCall {
70839	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70840	return c
70841}
70842
70843// IfNoneMatch sets the optional parameter which makes the operation
70844// fail if the object's ETag matches the given value. This is useful for
70845// getting updates only after the object has changed since the last
70846// request. Use googleapi.IsNotModified to check whether the response
70847// error from Do is the result of In-None-Match.
70848func (c *SslPoliciesListAvailableFeaturesCall) IfNoneMatch(entityTag string) *SslPoliciesListAvailableFeaturesCall {
70849	c.ifNoneMatch_ = entityTag
70850	return c
70851}
70852
70853// Context sets the context to be used in this call's Do method. Any
70854// pending HTTP request will be aborted if the provided context is
70855// canceled.
70856func (c *SslPoliciesListAvailableFeaturesCall) Context(ctx context.Context) *SslPoliciesListAvailableFeaturesCall {
70857	c.ctx_ = ctx
70858	return c
70859}
70860
70861// Header returns an http.Header that can be modified by the caller to
70862// add HTTP headers to the request.
70863func (c *SslPoliciesListAvailableFeaturesCall) Header() http.Header {
70864	if c.header_ == nil {
70865		c.header_ = make(http.Header)
70866	}
70867	return c.header_
70868}
70869
70870func (c *SslPoliciesListAvailableFeaturesCall) doRequest(alt string) (*http.Response, error) {
70871	reqHeaders := make(http.Header)
70872	for k, v := range c.header_ {
70873		reqHeaders[k] = v
70874	}
70875	reqHeaders.Set("User-Agent", c.s.userAgent())
70876	if c.ifNoneMatch_ != "" {
70877		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70878	}
70879	var body io.Reader = nil
70880	c.urlParams_.Set("alt", alt)
70881	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/listAvailableFeatures")
70882	urls += "?" + c.urlParams_.Encode()
70883	req, _ := http.NewRequest("GET", urls, body)
70884	req.Header = reqHeaders
70885	googleapi.Expand(req.URL, map[string]string{
70886		"project": c.project,
70887	})
70888	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70889}
70890
70891// Do executes the "compute.sslPolicies.listAvailableFeatures" call.
70892// Exactly one of *SslPoliciesListAvailableFeaturesResponse or error
70893// will be non-nil. Any non-2xx status code is an error. Response
70894// headers are in either
70895// *SslPoliciesListAvailableFeaturesResponse.ServerResponse.Header or
70896// (if a response was returned at all) in
70897// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
70898// whether the returned error was because http.StatusNotModified was
70899// returned.
70900func (c *SslPoliciesListAvailableFeaturesCall) Do(opts ...googleapi.CallOption) (*SslPoliciesListAvailableFeaturesResponse, error) {
70901	gensupport.SetOptions(c.urlParams_, opts...)
70902	res, err := c.doRequest("json")
70903	if res != nil && res.StatusCode == http.StatusNotModified {
70904		if res.Body != nil {
70905			res.Body.Close()
70906		}
70907		return nil, &googleapi.Error{
70908			Code:   res.StatusCode,
70909			Header: res.Header,
70910		}
70911	}
70912	if err != nil {
70913		return nil, err
70914	}
70915	defer googleapi.CloseBody(res)
70916	if err := googleapi.CheckResponse(res); err != nil {
70917		return nil, err
70918	}
70919	ret := &SslPoliciesListAvailableFeaturesResponse{
70920		ServerResponse: googleapi.ServerResponse{
70921			Header:         res.Header,
70922			HTTPStatusCode: res.StatusCode,
70923		},
70924	}
70925	target := &ret
70926	if err := gensupport.DecodeResponse(target, res); err != nil {
70927		return nil, err
70928	}
70929	return ret, nil
70930	// {
70931	//   "description": "Lists all features that can be specified in the SSL policy when using custom profile.",
70932	//   "httpMethod": "GET",
70933	//   "id": "compute.sslPolicies.listAvailableFeatures",
70934	//   "parameterOrder": [
70935	//     "project"
70936	//   ],
70937	//   "parameters": {
70938	//     "filter": {
70939	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
70940	//       "location": "query",
70941	//       "type": "string"
70942	//     },
70943	//     "maxResults": {
70944	//       "default": "500",
70945	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
70946	//       "format": "uint32",
70947	//       "location": "query",
70948	//       "minimum": "0",
70949	//       "type": "integer"
70950	//     },
70951	//     "orderBy": {
70952	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
70953	//       "location": "query",
70954	//       "type": "string"
70955	//     },
70956	//     "pageToken": {
70957	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
70958	//       "location": "query",
70959	//       "type": "string"
70960	//     },
70961	//     "project": {
70962	//       "description": "Project ID for this request.",
70963	//       "location": "path",
70964	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70965	//       "required": true,
70966	//       "type": "string"
70967	//     }
70968	//   },
70969	//   "path": "{project}/global/sslPolicies/listAvailableFeatures",
70970	//   "response": {
70971	//     "$ref": "SslPoliciesListAvailableFeaturesResponse"
70972	//   },
70973	//   "scopes": [
70974	//     "https://www.googleapis.com/auth/cloud-platform",
70975	//     "https://www.googleapis.com/auth/compute",
70976	//     "https://www.googleapis.com/auth/compute.readonly"
70977	//   ]
70978	// }
70979
70980}
70981
70982// method id "compute.sslPolicies.patch":
70983
70984type SslPoliciesPatchCall struct {
70985	s          *Service
70986	project    string
70987	sslPolicy  string
70988	sslpolicy  *SslPolicy
70989	urlParams_ gensupport.URLParams
70990	ctx_       context.Context
70991	header_    http.Header
70992}
70993
70994// Patch: Patches the specified SSL policy with the data included in the
70995// request.
70996func (r *SslPoliciesService) Patch(project string, sslPolicy string, sslpolicy *SslPolicy) *SslPoliciesPatchCall {
70997	c := &SslPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70998	c.project = project
70999	c.sslPolicy = sslPolicy
71000	c.sslpolicy = sslpolicy
71001	return c
71002}
71003
71004// RequestId sets the optional parameter "requestId": An optional
71005// request ID to identify requests. Specify a unique request ID so that
71006// if you must retry your request, the server will know to ignore the
71007// request if it has already been completed.
71008//
71009// For example, consider a situation where you make an initial request
71010// and the request times out. If you make the request again with the
71011// same request ID, the server can check if original operation with the
71012// same request ID was received, and if so, will ignore the second
71013// request. This prevents clients from accidentally creating duplicate
71014// commitments.
71015//
71016// The request ID must be a valid UUID with the exception that zero UUID
71017// is not supported (00000000-0000-0000-0000-000000000000).
71018func (c *SslPoliciesPatchCall) RequestId(requestId string) *SslPoliciesPatchCall {
71019	c.urlParams_.Set("requestId", requestId)
71020	return c
71021}
71022
71023// Fields allows partial responses to be retrieved. See
71024// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71025// for more information.
71026func (c *SslPoliciesPatchCall) Fields(s ...googleapi.Field) *SslPoliciesPatchCall {
71027	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71028	return c
71029}
71030
71031// Context sets the context to be used in this call's Do method. Any
71032// pending HTTP request will be aborted if the provided context is
71033// canceled.
71034func (c *SslPoliciesPatchCall) Context(ctx context.Context) *SslPoliciesPatchCall {
71035	c.ctx_ = ctx
71036	return c
71037}
71038
71039// Header returns an http.Header that can be modified by the caller to
71040// add HTTP headers to the request.
71041func (c *SslPoliciesPatchCall) Header() http.Header {
71042	if c.header_ == nil {
71043		c.header_ = make(http.Header)
71044	}
71045	return c.header_
71046}
71047
71048func (c *SslPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
71049	reqHeaders := make(http.Header)
71050	for k, v := range c.header_ {
71051		reqHeaders[k] = v
71052	}
71053	reqHeaders.Set("User-Agent", c.s.userAgent())
71054	var body io.Reader = nil
71055	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
71056	if err != nil {
71057		return nil, err
71058	}
71059	reqHeaders.Set("Content-Type", "application/json")
71060	c.urlParams_.Set("alt", alt)
71061	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
71062	urls += "?" + c.urlParams_.Encode()
71063	req, _ := http.NewRequest("PATCH", urls, body)
71064	req.Header = reqHeaders
71065	googleapi.Expand(req.URL, map[string]string{
71066		"project":   c.project,
71067		"sslPolicy": c.sslPolicy,
71068	})
71069	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71070}
71071
71072// Do executes the "compute.sslPolicies.patch" call.
71073// Exactly one of *Operation or error will be non-nil. Any non-2xx
71074// status code is an error. Response headers are in either
71075// *Operation.ServerResponse.Header or (if a response was returned at
71076// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71077// to check whether the returned error was because
71078// http.StatusNotModified was returned.
71079func (c *SslPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71080	gensupport.SetOptions(c.urlParams_, opts...)
71081	res, err := c.doRequest("json")
71082	if res != nil && res.StatusCode == http.StatusNotModified {
71083		if res.Body != nil {
71084			res.Body.Close()
71085		}
71086		return nil, &googleapi.Error{
71087			Code:   res.StatusCode,
71088			Header: res.Header,
71089		}
71090	}
71091	if err != nil {
71092		return nil, err
71093	}
71094	defer googleapi.CloseBody(res)
71095	if err := googleapi.CheckResponse(res); err != nil {
71096		return nil, err
71097	}
71098	ret := &Operation{
71099		ServerResponse: googleapi.ServerResponse{
71100			Header:         res.Header,
71101			HTTPStatusCode: res.StatusCode,
71102		},
71103	}
71104	target := &ret
71105	if err := gensupport.DecodeResponse(target, res); err != nil {
71106		return nil, err
71107	}
71108	return ret, nil
71109	// {
71110	//   "description": "Patches the specified SSL policy with the data included in the request.",
71111	//   "httpMethod": "PATCH",
71112	//   "id": "compute.sslPolicies.patch",
71113	//   "parameterOrder": [
71114	//     "project",
71115	//     "sslPolicy"
71116	//   ],
71117	//   "parameters": {
71118	//     "project": {
71119	//       "description": "Project ID for this request.",
71120	//       "location": "path",
71121	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71122	//       "required": true,
71123	//       "type": "string"
71124	//     },
71125	//     "requestId": {
71126	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71127	//       "location": "query",
71128	//       "type": "string"
71129	//     },
71130	//     "sslPolicy": {
71131	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
71132	//       "location": "path",
71133	//       "required": true,
71134	//       "type": "string"
71135	//     }
71136	//   },
71137	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
71138	//   "request": {
71139	//     "$ref": "SslPolicy"
71140	//   },
71141	//   "response": {
71142	//     "$ref": "Operation"
71143	//   },
71144	//   "scopes": [
71145	//     "https://www.googleapis.com/auth/cloud-platform",
71146	//     "https://www.googleapis.com/auth/compute"
71147	//   ]
71148	// }
71149
71150}
71151
71152// method id "compute.subnetworks.aggregatedList":
71153
71154type SubnetworksAggregatedListCall struct {
71155	s            *Service
71156	project      string
71157	urlParams_   gensupport.URLParams
71158	ifNoneMatch_ string
71159	ctx_         context.Context
71160	header_      http.Header
71161}
71162
71163// AggregatedList: Retrieves an aggregated list of subnetworks.
71164func (r *SubnetworksService) AggregatedList(project string) *SubnetworksAggregatedListCall {
71165	c := &SubnetworksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71166	c.project = project
71167	return c
71168}
71169
71170// Filter sets the optional parameter "filter": A filter expression that
71171// filters resources listed in the response. The expression must specify
71172// the field name, a comparison operator, and the value that you want to
71173// use for filtering. The value must be a string, a number, or a
71174// boolean. The comparison operator must be either =, !=, >, or <.
71175//
71176// For example, if you are filtering Compute Engine instances, you can
71177// exclude instances named example-instance by specifying name !=
71178// example-instance.
71179//
71180// You can also filter nested fields. For example, you could specify
71181// scheduling.automaticRestart = false to include instances only if they
71182// are not scheduled for automatic restarts. You can use filtering on
71183// nested fields to filter based on resource labels.
71184//
71185// To filter on multiple expressions, provide each separate expression
71186// within parentheses. For example, (scheduling.automaticRestart = true)
71187// (cpuPlatform = "Intel Skylake"). By default, each expression is an
71188// AND expression. However, you can include AND and OR expressions
71189// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
71190// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
71191// true).
71192func (c *SubnetworksAggregatedListCall) Filter(filter string) *SubnetworksAggregatedListCall {
71193	c.urlParams_.Set("filter", filter)
71194	return c
71195}
71196
71197// MaxResults sets the optional parameter "maxResults": The maximum
71198// number of results per page that should be returned. If the number of
71199// available results is larger than maxResults, Compute Engine returns a
71200// nextPageToken that can be used to get the next page of results in
71201// subsequent list requests. Acceptable values are 0 to 500, inclusive.
71202// (Default: 500)
71203func (c *SubnetworksAggregatedListCall) MaxResults(maxResults int64) *SubnetworksAggregatedListCall {
71204	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
71205	return c
71206}
71207
71208// OrderBy sets the optional parameter "orderBy": Sorts list results by
71209// a certain order. By default, results are returned in alphanumerical
71210// order based on the resource name.
71211//
71212// You can also sort results in descending order based on the creation
71213// timestamp using orderBy="creationTimestamp desc". This sorts results
71214// based on the creationTimestamp field in reverse chronological order
71215// (newest result first). Use this to sort resources like operations so
71216// that the newest operation is returned first.
71217//
71218// Currently, only sorting by name or creationTimestamp desc is
71219// supported.
71220func (c *SubnetworksAggregatedListCall) OrderBy(orderBy string) *SubnetworksAggregatedListCall {
71221	c.urlParams_.Set("orderBy", orderBy)
71222	return c
71223}
71224
71225// PageToken sets the optional parameter "pageToken": Specifies a page
71226// token to use. Set pageToken to the nextPageToken returned by a
71227// previous list request to get the next page of results.
71228func (c *SubnetworksAggregatedListCall) PageToken(pageToken string) *SubnetworksAggregatedListCall {
71229	c.urlParams_.Set("pageToken", pageToken)
71230	return c
71231}
71232
71233// Fields allows partial responses to be retrieved. See
71234// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71235// for more information.
71236func (c *SubnetworksAggregatedListCall) Fields(s ...googleapi.Field) *SubnetworksAggregatedListCall {
71237	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71238	return c
71239}
71240
71241// IfNoneMatch sets the optional parameter which makes the operation
71242// fail if the object's ETag matches the given value. This is useful for
71243// getting updates only after the object has changed since the last
71244// request. Use googleapi.IsNotModified to check whether the response
71245// error from Do is the result of In-None-Match.
71246func (c *SubnetworksAggregatedListCall) IfNoneMatch(entityTag string) *SubnetworksAggregatedListCall {
71247	c.ifNoneMatch_ = entityTag
71248	return c
71249}
71250
71251// Context sets the context to be used in this call's Do method. Any
71252// pending HTTP request will be aborted if the provided context is
71253// canceled.
71254func (c *SubnetworksAggregatedListCall) Context(ctx context.Context) *SubnetworksAggregatedListCall {
71255	c.ctx_ = ctx
71256	return c
71257}
71258
71259// Header returns an http.Header that can be modified by the caller to
71260// add HTTP headers to the request.
71261func (c *SubnetworksAggregatedListCall) Header() http.Header {
71262	if c.header_ == nil {
71263		c.header_ = make(http.Header)
71264	}
71265	return c.header_
71266}
71267
71268func (c *SubnetworksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
71269	reqHeaders := make(http.Header)
71270	for k, v := range c.header_ {
71271		reqHeaders[k] = v
71272	}
71273	reqHeaders.Set("User-Agent", c.s.userAgent())
71274	if c.ifNoneMatch_ != "" {
71275		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71276	}
71277	var body io.Reader = nil
71278	c.urlParams_.Set("alt", alt)
71279	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/subnetworks")
71280	urls += "?" + c.urlParams_.Encode()
71281	req, _ := http.NewRequest("GET", urls, body)
71282	req.Header = reqHeaders
71283	googleapi.Expand(req.URL, map[string]string{
71284		"project": c.project,
71285	})
71286	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71287}
71288
71289// Do executes the "compute.subnetworks.aggregatedList" call.
71290// Exactly one of *SubnetworkAggregatedList or error will be non-nil.
71291// Any non-2xx status code is an error. Response headers are in either
71292// *SubnetworkAggregatedList.ServerResponse.Header or (if a response was
71293// returned at all) in error.(*googleapi.Error).Header. Use
71294// googleapi.IsNotModified to check whether the returned error was
71295// because http.StatusNotModified was returned.
71296func (c *SubnetworksAggregatedListCall) Do(opts ...googleapi.CallOption) (*SubnetworkAggregatedList, error) {
71297	gensupport.SetOptions(c.urlParams_, opts...)
71298	res, err := c.doRequest("json")
71299	if res != nil && res.StatusCode == http.StatusNotModified {
71300		if res.Body != nil {
71301			res.Body.Close()
71302		}
71303		return nil, &googleapi.Error{
71304			Code:   res.StatusCode,
71305			Header: res.Header,
71306		}
71307	}
71308	if err != nil {
71309		return nil, err
71310	}
71311	defer googleapi.CloseBody(res)
71312	if err := googleapi.CheckResponse(res); err != nil {
71313		return nil, err
71314	}
71315	ret := &SubnetworkAggregatedList{
71316		ServerResponse: googleapi.ServerResponse{
71317			Header:         res.Header,
71318			HTTPStatusCode: res.StatusCode,
71319		},
71320	}
71321	target := &ret
71322	if err := gensupport.DecodeResponse(target, res); err != nil {
71323		return nil, err
71324	}
71325	return ret, nil
71326	// {
71327	//   "description": "Retrieves an aggregated list of subnetworks.",
71328	//   "httpMethod": "GET",
71329	//   "id": "compute.subnetworks.aggregatedList",
71330	//   "parameterOrder": [
71331	//     "project"
71332	//   ],
71333	//   "parameters": {
71334	//     "filter": {
71335	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
71336	//       "location": "query",
71337	//       "type": "string"
71338	//     },
71339	//     "maxResults": {
71340	//       "default": "500",
71341	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
71342	//       "format": "uint32",
71343	//       "location": "query",
71344	//       "minimum": "0",
71345	//       "type": "integer"
71346	//     },
71347	//     "orderBy": {
71348	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
71349	//       "location": "query",
71350	//       "type": "string"
71351	//     },
71352	//     "pageToken": {
71353	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
71354	//       "location": "query",
71355	//       "type": "string"
71356	//     },
71357	//     "project": {
71358	//       "description": "Project ID for this request.",
71359	//       "location": "path",
71360	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71361	//       "required": true,
71362	//       "type": "string"
71363	//     }
71364	//   },
71365	//   "path": "{project}/aggregated/subnetworks",
71366	//   "response": {
71367	//     "$ref": "SubnetworkAggregatedList"
71368	//   },
71369	//   "scopes": [
71370	//     "https://www.googleapis.com/auth/cloud-platform",
71371	//     "https://www.googleapis.com/auth/compute",
71372	//     "https://www.googleapis.com/auth/compute.readonly"
71373	//   ]
71374	// }
71375
71376}
71377
71378// Pages invokes f for each page of results.
71379// A non-nil error returned from f will halt the iteration.
71380// The provided context supersedes any context provided to the Context method.
71381func (c *SubnetworksAggregatedListCall) Pages(ctx context.Context, f func(*SubnetworkAggregatedList) error) error {
71382	c.ctx_ = ctx
71383	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
71384	for {
71385		x, err := c.Do()
71386		if err != nil {
71387			return err
71388		}
71389		if err := f(x); err != nil {
71390			return err
71391		}
71392		if x.NextPageToken == "" {
71393			return nil
71394		}
71395		c.PageToken(x.NextPageToken)
71396	}
71397}
71398
71399// method id "compute.subnetworks.delete":
71400
71401type SubnetworksDeleteCall struct {
71402	s          *Service
71403	project    string
71404	region     string
71405	subnetwork string
71406	urlParams_ gensupport.URLParams
71407	ctx_       context.Context
71408	header_    http.Header
71409}
71410
71411// Delete: Deletes the specified subnetwork.
71412func (r *SubnetworksService) Delete(project string, region string, subnetwork string) *SubnetworksDeleteCall {
71413	c := &SubnetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71414	c.project = project
71415	c.region = region
71416	c.subnetwork = subnetwork
71417	return c
71418}
71419
71420// RequestId sets the optional parameter "requestId": An optional
71421// request ID to identify requests. Specify a unique request ID so that
71422// if you must retry your request, the server will know to ignore the
71423// request if it has already been completed.
71424//
71425// For example, consider a situation where you make an initial request
71426// and the request times out. If you make the request again with the
71427// same request ID, the server can check if original operation with the
71428// same request ID was received, and if so, will ignore the second
71429// request. This prevents clients from accidentally creating duplicate
71430// commitments.
71431//
71432// The request ID must be a valid UUID with the exception that zero UUID
71433// is not supported (00000000-0000-0000-0000-000000000000).
71434func (c *SubnetworksDeleteCall) RequestId(requestId string) *SubnetworksDeleteCall {
71435	c.urlParams_.Set("requestId", requestId)
71436	return c
71437}
71438
71439// Fields allows partial responses to be retrieved. See
71440// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71441// for more information.
71442func (c *SubnetworksDeleteCall) Fields(s ...googleapi.Field) *SubnetworksDeleteCall {
71443	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71444	return c
71445}
71446
71447// Context sets the context to be used in this call's Do method. Any
71448// pending HTTP request will be aborted if the provided context is
71449// canceled.
71450func (c *SubnetworksDeleteCall) Context(ctx context.Context) *SubnetworksDeleteCall {
71451	c.ctx_ = ctx
71452	return c
71453}
71454
71455// Header returns an http.Header that can be modified by the caller to
71456// add HTTP headers to the request.
71457func (c *SubnetworksDeleteCall) Header() http.Header {
71458	if c.header_ == nil {
71459		c.header_ = make(http.Header)
71460	}
71461	return c.header_
71462}
71463
71464func (c *SubnetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
71465	reqHeaders := make(http.Header)
71466	for k, v := range c.header_ {
71467		reqHeaders[k] = v
71468	}
71469	reqHeaders.Set("User-Agent", c.s.userAgent())
71470	var body io.Reader = nil
71471	c.urlParams_.Set("alt", alt)
71472	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
71473	urls += "?" + c.urlParams_.Encode()
71474	req, _ := http.NewRequest("DELETE", urls, body)
71475	req.Header = reqHeaders
71476	googleapi.Expand(req.URL, map[string]string{
71477		"project":    c.project,
71478		"region":     c.region,
71479		"subnetwork": c.subnetwork,
71480	})
71481	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71482}
71483
71484// Do executes the "compute.subnetworks.delete" call.
71485// Exactly one of *Operation or error will be non-nil. Any non-2xx
71486// status code is an error. Response headers are in either
71487// *Operation.ServerResponse.Header or (if a response was returned at
71488// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71489// to check whether the returned error was because
71490// http.StatusNotModified was returned.
71491func (c *SubnetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71492	gensupport.SetOptions(c.urlParams_, opts...)
71493	res, err := c.doRequest("json")
71494	if res != nil && res.StatusCode == http.StatusNotModified {
71495		if res.Body != nil {
71496			res.Body.Close()
71497		}
71498		return nil, &googleapi.Error{
71499			Code:   res.StatusCode,
71500			Header: res.Header,
71501		}
71502	}
71503	if err != nil {
71504		return nil, err
71505	}
71506	defer googleapi.CloseBody(res)
71507	if err := googleapi.CheckResponse(res); err != nil {
71508		return nil, err
71509	}
71510	ret := &Operation{
71511		ServerResponse: googleapi.ServerResponse{
71512			Header:         res.Header,
71513			HTTPStatusCode: res.StatusCode,
71514		},
71515	}
71516	target := &ret
71517	if err := gensupport.DecodeResponse(target, res); err != nil {
71518		return nil, err
71519	}
71520	return ret, nil
71521	// {
71522	//   "description": "Deletes the specified subnetwork.",
71523	//   "httpMethod": "DELETE",
71524	//   "id": "compute.subnetworks.delete",
71525	//   "parameterOrder": [
71526	//     "project",
71527	//     "region",
71528	//     "subnetwork"
71529	//   ],
71530	//   "parameters": {
71531	//     "project": {
71532	//       "description": "Project ID for this request.",
71533	//       "location": "path",
71534	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71535	//       "required": true,
71536	//       "type": "string"
71537	//     },
71538	//     "region": {
71539	//       "description": "Name of the region scoping this request.",
71540	//       "location": "path",
71541	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
71542	//       "required": true,
71543	//       "type": "string"
71544	//     },
71545	//     "requestId": {
71546	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71547	//       "location": "query",
71548	//       "type": "string"
71549	//     },
71550	//     "subnetwork": {
71551	//       "description": "Name of the Subnetwork resource to delete.",
71552	//       "location": "path",
71553	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
71554	//       "required": true,
71555	//       "type": "string"
71556	//     }
71557	//   },
71558	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
71559	//   "response": {
71560	//     "$ref": "Operation"
71561	//   },
71562	//   "scopes": [
71563	//     "https://www.googleapis.com/auth/cloud-platform",
71564	//     "https://www.googleapis.com/auth/compute"
71565	//   ]
71566	// }
71567
71568}
71569
71570// method id "compute.subnetworks.expandIpCidrRange":
71571
71572type SubnetworksExpandIpCidrRangeCall struct {
71573	s                                   *Service
71574	project                             string
71575	region                              string
71576	subnetwork                          string
71577	subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest
71578	urlParams_                          gensupport.URLParams
71579	ctx_                                context.Context
71580	header_                             http.Header
71581}
71582
71583// ExpandIpCidrRange: Expands the IP CIDR range of the subnetwork to a
71584// specified value.
71585func (r *SubnetworksService) ExpandIpCidrRange(project string, region string, subnetwork string, subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest) *SubnetworksExpandIpCidrRangeCall {
71586	c := &SubnetworksExpandIpCidrRangeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71587	c.project = project
71588	c.region = region
71589	c.subnetwork = subnetwork
71590	c.subnetworksexpandipcidrrangerequest = subnetworksexpandipcidrrangerequest
71591	return c
71592}
71593
71594// RequestId sets the optional parameter "requestId": An optional
71595// request ID to identify requests. Specify a unique request ID so that
71596// if you must retry your request, the server will know to ignore the
71597// request if it has already been completed.
71598//
71599// For example, consider a situation where you make an initial request
71600// and the request times out. If you make the request again with the
71601// same request ID, the server can check if original operation with the
71602// same request ID was received, and if so, will ignore the second
71603// request. This prevents clients from accidentally creating duplicate
71604// commitments.
71605//
71606// The request ID must be a valid UUID with the exception that zero UUID
71607// is not supported (00000000-0000-0000-0000-000000000000).
71608func (c *SubnetworksExpandIpCidrRangeCall) RequestId(requestId string) *SubnetworksExpandIpCidrRangeCall {
71609	c.urlParams_.Set("requestId", requestId)
71610	return c
71611}
71612
71613// Fields allows partial responses to be retrieved. See
71614// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71615// for more information.
71616func (c *SubnetworksExpandIpCidrRangeCall) Fields(s ...googleapi.Field) *SubnetworksExpandIpCidrRangeCall {
71617	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71618	return c
71619}
71620
71621// Context sets the context to be used in this call's Do method. Any
71622// pending HTTP request will be aborted if the provided context is
71623// canceled.
71624func (c *SubnetworksExpandIpCidrRangeCall) Context(ctx context.Context) *SubnetworksExpandIpCidrRangeCall {
71625	c.ctx_ = ctx
71626	return c
71627}
71628
71629// Header returns an http.Header that can be modified by the caller to
71630// add HTTP headers to the request.
71631func (c *SubnetworksExpandIpCidrRangeCall) Header() http.Header {
71632	if c.header_ == nil {
71633		c.header_ = make(http.Header)
71634	}
71635	return c.header_
71636}
71637
71638func (c *SubnetworksExpandIpCidrRangeCall) doRequest(alt string) (*http.Response, error) {
71639	reqHeaders := make(http.Header)
71640	for k, v := range c.header_ {
71641		reqHeaders[k] = v
71642	}
71643	reqHeaders.Set("User-Agent", c.s.userAgent())
71644	var body io.Reader = nil
71645	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworksexpandipcidrrangerequest)
71646	if err != nil {
71647		return nil, err
71648	}
71649	reqHeaders.Set("Content-Type", "application/json")
71650	c.urlParams_.Set("alt", alt)
71651	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange")
71652	urls += "?" + c.urlParams_.Encode()
71653	req, _ := http.NewRequest("POST", urls, body)
71654	req.Header = reqHeaders
71655	googleapi.Expand(req.URL, map[string]string{
71656		"project":    c.project,
71657		"region":     c.region,
71658		"subnetwork": c.subnetwork,
71659	})
71660	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71661}
71662
71663// Do executes the "compute.subnetworks.expandIpCidrRange" call.
71664// Exactly one of *Operation or error will be non-nil. Any non-2xx
71665// status code is an error. Response headers are in either
71666// *Operation.ServerResponse.Header or (if a response was returned at
71667// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71668// to check whether the returned error was because
71669// http.StatusNotModified was returned.
71670func (c *SubnetworksExpandIpCidrRangeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71671	gensupport.SetOptions(c.urlParams_, opts...)
71672	res, err := c.doRequest("json")
71673	if res != nil && res.StatusCode == http.StatusNotModified {
71674		if res.Body != nil {
71675			res.Body.Close()
71676		}
71677		return nil, &googleapi.Error{
71678			Code:   res.StatusCode,
71679			Header: res.Header,
71680		}
71681	}
71682	if err != nil {
71683		return nil, err
71684	}
71685	defer googleapi.CloseBody(res)
71686	if err := googleapi.CheckResponse(res); err != nil {
71687		return nil, err
71688	}
71689	ret := &Operation{
71690		ServerResponse: googleapi.ServerResponse{
71691			Header:         res.Header,
71692			HTTPStatusCode: res.StatusCode,
71693		},
71694	}
71695	target := &ret
71696	if err := gensupport.DecodeResponse(target, res); err != nil {
71697		return nil, err
71698	}
71699	return ret, nil
71700	// {
71701	//   "description": "Expands the IP CIDR range of the subnetwork to a specified value.",
71702	//   "httpMethod": "POST",
71703	//   "id": "compute.subnetworks.expandIpCidrRange",
71704	//   "parameterOrder": [
71705	//     "project",
71706	//     "region",
71707	//     "subnetwork"
71708	//   ],
71709	//   "parameters": {
71710	//     "project": {
71711	//       "description": "Project ID for this request.",
71712	//       "location": "path",
71713	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71714	//       "required": true,
71715	//       "type": "string"
71716	//     },
71717	//     "region": {
71718	//       "description": "Name of the region scoping this request.",
71719	//       "location": "path",
71720	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
71721	//       "required": true,
71722	//       "type": "string"
71723	//     },
71724	//     "requestId": {
71725	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71726	//       "location": "query",
71727	//       "type": "string"
71728	//     },
71729	//     "subnetwork": {
71730	//       "description": "Name of the Subnetwork resource to update.",
71731	//       "location": "path",
71732	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
71733	//       "required": true,
71734	//       "type": "string"
71735	//     }
71736	//   },
71737	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange",
71738	//   "request": {
71739	//     "$ref": "SubnetworksExpandIpCidrRangeRequest"
71740	//   },
71741	//   "response": {
71742	//     "$ref": "Operation"
71743	//   },
71744	//   "scopes": [
71745	//     "https://www.googleapis.com/auth/cloud-platform",
71746	//     "https://www.googleapis.com/auth/compute"
71747	//   ]
71748	// }
71749
71750}
71751
71752// method id "compute.subnetworks.get":
71753
71754type SubnetworksGetCall struct {
71755	s            *Service
71756	project      string
71757	region       string
71758	subnetwork   string
71759	urlParams_   gensupport.URLParams
71760	ifNoneMatch_ string
71761	ctx_         context.Context
71762	header_      http.Header
71763}
71764
71765// Get: Returns the specified subnetwork. Gets a list of available
71766// subnetworks list() request.
71767func (r *SubnetworksService) Get(project string, region string, subnetwork string) *SubnetworksGetCall {
71768	c := &SubnetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71769	c.project = project
71770	c.region = region
71771	c.subnetwork = subnetwork
71772	return c
71773}
71774
71775// Fields allows partial responses to be retrieved. See
71776// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71777// for more information.
71778func (c *SubnetworksGetCall) Fields(s ...googleapi.Field) *SubnetworksGetCall {
71779	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71780	return c
71781}
71782
71783// IfNoneMatch sets the optional parameter which makes the operation
71784// fail if the object's ETag matches the given value. This is useful for
71785// getting updates only after the object has changed since the last
71786// request. Use googleapi.IsNotModified to check whether the response
71787// error from Do is the result of In-None-Match.
71788func (c *SubnetworksGetCall) IfNoneMatch(entityTag string) *SubnetworksGetCall {
71789	c.ifNoneMatch_ = entityTag
71790	return c
71791}
71792
71793// Context sets the context to be used in this call's Do method. Any
71794// pending HTTP request will be aborted if the provided context is
71795// canceled.
71796func (c *SubnetworksGetCall) Context(ctx context.Context) *SubnetworksGetCall {
71797	c.ctx_ = ctx
71798	return c
71799}
71800
71801// Header returns an http.Header that can be modified by the caller to
71802// add HTTP headers to the request.
71803func (c *SubnetworksGetCall) Header() http.Header {
71804	if c.header_ == nil {
71805		c.header_ = make(http.Header)
71806	}
71807	return c.header_
71808}
71809
71810func (c *SubnetworksGetCall) doRequest(alt string) (*http.Response, error) {
71811	reqHeaders := make(http.Header)
71812	for k, v := range c.header_ {
71813		reqHeaders[k] = v
71814	}
71815	reqHeaders.Set("User-Agent", c.s.userAgent())
71816	if c.ifNoneMatch_ != "" {
71817		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71818	}
71819	var body io.Reader = nil
71820	c.urlParams_.Set("alt", alt)
71821	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
71822	urls += "?" + c.urlParams_.Encode()
71823	req, _ := http.NewRequest("GET", urls, body)
71824	req.Header = reqHeaders
71825	googleapi.Expand(req.URL, map[string]string{
71826		"project":    c.project,
71827		"region":     c.region,
71828		"subnetwork": c.subnetwork,
71829	})
71830	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71831}
71832
71833// Do executes the "compute.subnetworks.get" call.
71834// Exactly one of *Subnetwork or error will be non-nil. Any non-2xx
71835// status code is an error. Response headers are in either
71836// *Subnetwork.ServerResponse.Header or (if a response was returned at
71837// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71838// to check whether the returned error was because
71839// http.StatusNotModified was returned.
71840func (c *SubnetworksGetCall) Do(opts ...googleapi.CallOption) (*Subnetwork, error) {
71841	gensupport.SetOptions(c.urlParams_, opts...)
71842	res, err := c.doRequest("json")
71843	if res != nil && res.StatusCode == http.StatusNotModified {
71844		if res.Body != nil {
71845			res.Body.Close()
71846		}
71847		return nil, &googleapi.Error{
71848			Code:   res.StatusCode,
71849			Header: res.Header,
71850		}
71851	}
71852	if err != nil {
71853		return nil, err
71854	}
71855	defer googleapi.CloseBody(res)
71856	if err := googleapi.CheckResponse(res); err != nil {
71857		return nil, err
71858	}
71859	ret := &Subnetwork{
71860		ServerResponse: googleapi.ServerResponse{
71861			Header:         res.Header,
71862			HTTPStatusCode: res.StatusCode,
71863		},
71864	}
71865	target := &ret
71866	if err := gensupport.DecodeResponse(target, res); err != nil {
71867		return nil, err
71868	}
71869	return ret, nil
71870	// {
71871	//   "description": "Returns the specified subnetwork. Gets a list of available subnetworks list() request.",
71872	//   "httpMethod": "GET",
71873	//   "id": "compute.subnetworks.get",
71874	//   "parameterOrder": [
71875	//     "project",
71876	//     "region",
71877	//     "subnetwork"
71878	//   ],
71879	//   "parameters": {
71880	//     "project": {
71881	//       "description": "Project ID for this request.",
71882	//       "location": "path",
71883	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71884	//       "required": true,
71885	//       "type": "string"
71886	//     },
71887	//     "region": {
71888	//       "description": "Name of the region scoping this request.",
71889	//       "location": "path",
71890	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
71891	//       "required": true,
71892	//       "type": "string"
71893	//     },
71894	//     "subnetwork": {
71895	//       "description": "Name of the Subnetwork resource to return.",
71896	//       "location": "path",
71897	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
71898	//       "required": true,
71899	//       "type": "string"
71900	//     }
71901	//   },
71902	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
71903	//   "response": {
71904	//     "$ref": "Subnetwork"
71905	//   },
71906	//   "scopes": [
71907	//     "https://www.googleapis.com/auth/cloud-platform",
71908	//     "https://www.googleapis.com/auth/compute",
71909	//     "https://www.googleapis.com/auth/compute.readonly"
71910	//   ]
71911	// }
71912
71913}
71914
71915// method id "compute.subnetworks.insert":
71916
71917type SubnetworksInsertCall struct {
71918	s          *Service
71919	project    string
71920	region     string
71921	subnetwork *Subnetwork
71922	urlParams_ gensupport.URLParams
71923	ctx_       context.Context
71924	header_    http.Header
71925}
71926
71927// Insert: Creates a subnetwork in the specified project using the data
71928// included in the request.
71929func (r *SubnetworksService) Insert(project string, region string, subnetwork *Subnetwork) *SubnetworksInsertCall {
71930	c := &SubnetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71931	c.project = project
71932	c.region = region
71933	c.subnetwork = subnetwork
71934	return c
71935}
71936
71937// RequestId sets the optional parameter "requestId": An optional
71938// request ID to identify requests. Specify a unique request ID so that
71939// if you must retry your request, the server will know to ignore the
71940// request if it has already been completed.
71941//
71942// For example, consider a situation where you make an initial request
71943// and the request times out. If you make the request again with the
71944// same request ID, the server can check if original operation with the
71945// same request ID was received, and if so, will ignore the second
71946// request. This prevents clients from accidentally creating duplicate
71947// commitments.
71948//
71949// The request ID must be a valid UUID with the exception that zero UUID
71950// is not supported (00000000-0000-0000-0000-000000000000).
71951func (c *SubnetworksInsertCall) RequestId(requestId string) *SubnetworksInsertCall {
71952	c.urlParams_.Set("requestId", requestId)
71953	return c
71954}
71955
71956// Fields allows partial responses to be retrieved. See
71957// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71958// for more information.
71959func (c *SubnetworksInsertCall) Fields(s ...googleapi.Field) *SubnetworksInsertCall {
71960	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71961	return c
71962}
71963
71964// Context sets the context to be used in this call's Do method. Any
71965// pending HTTP request will be aborted if the provided context is
71966// canceled.
71967func (c *SubnetworksInsertCall) Context(ctx context.Context) *SubnetworksInsertCall {
71968	c.ctx_ = ctx
71969	return c
71970}
71971
71972// Header returns an http.Header that can be modified by the caller to
71973// add HTTP headers to the request.
71974func (c *SubnetworksInsertCall) Header() http.Header {
71975	if c.header_ == nil {
71976		c.header_ = make(http.Header)
71977	}
71978	return c.header_
71979}
71980
71981func (c *SubnetworksInsertCall) doRequest(alt string) (*http.Response, error) {
71982	reqHeaders := make(http.Header)
71983	for k, v := range c.header_ {
71984		reqHeaders[k] = v
71985	}
71986	reqHeaders.Set("User-Agent", c.s.userAgent())
71987	var body io.Reader = nil
71988	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork)
71989	if err != nil {
71990		return nil, err
71991	}
71992	reqHeaders.Set("Content-Type", "application/json")
71993	c.urlParams_.Set("alt", alt)
71994	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks")
71995	urls += "?" + c.urlParams_.Encode()
71996	req, _ := http.NewRequest("POST", urls, body)
71997	req.Header = reqHeaders
71998	googleapi.Expand(req.URL, map[string]string{
71999		"project": c.project,
72000		"region":  c.region,
72001	})
72002	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72003}
72004
72005// Do executes the "compute.subnetworks.insert" call.
72006// Exactly one of *Operation or error will be non-nil. Any non-2xx
72007// status code is an error. Response headers are in either
72008// *Operation.ServerResponse.Header or (if a response was returned at
72009// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72010// to check whether the returned error was because
72011// http.StatusNotModified was returned.
72012func (c *SubnetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72013	gensupport.SetOptions(c.urlParams_, opts...)
72014	res, err := c.doRequest("json")
72015	if res != nil && res.StatusCode == http.StatusNotModified {
72016		if res.Body != nil {
72017			res.Body.Close()
72018		}
72019		return nil, &googleapi.Error{
72020			Code:   res.StatusCode,
72021			Header: res.Header,
72022		}
72023	}
72024	if err != nil {
72025		return nil, err
72026	}
72027	defer googleapi.CloseBody(res)
72028	if err := googleapi.CheckResponse(res); err != nil {
72029		return nil, err
72030	}
72031	ret := &Operation{
72032		ServerResponse: googleapi.ServerResponse{
72033			Header:         res.Header,
72034			HTTPStatusCode: res.StatusCode,
72035		},
72036	}
72037	target := &ret
72038	if err := gensupport.DecodeResponse(target, res); err != nil {
72039		return nil, err
72040	}
72041	return ret, nil
72042	// {
72043	//   "description": "Creates a subnetwork in the specified project using the data included in the request.",
72044	//   "httpMethod": "POST",
72045	//   "id": "compute.subnetworks.insert",
72046	//   "parameterOrder": [
72047	//     "project",
72048	//     "region"
72049	//   ],
72050	//   "parameters": {
72051	//     "project": {
72052	//       "description": "Project ID for this request.",
72053	//       "location": "path",
72054	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72055	//       "required": true,
72056	//       "type": "string"
72057	//     },
72058	//     "region": {
72059	//       "description": "Name of the region scoping this request.",
72060	//       "location": "path",
72061	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72062	//       "required": true,
72063	//       "type": "string"
72064	//     },
72065	//     "requestId": {
72066	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72067	//       "location": "query",
72068	//       "type": "string"
72069	//     }
72070	//   },
72071	//   "path": "{project}/regions/{region}/subnetworks",
72072	//   "request": {
72073	//     "$ref": "Subnetwork"
72074	//   },
72075	//   "response": {
72076	//     "$ref": "Operation"
72077	//   },
72078	//   "scopes": [
72079	//     "https://www.googleapis.com/auth/cloud-platform",
72080	//     "https://www.googleapis.com/auth/compute"
72081	//   ]
72082	// }
72083
72084}
72085
72086// method id "compute.subnetworks.list":
72087
72088type SubnetworksListCall struct {
72089	s            *Service
72090	project      string
72091	region       string
72092	urlParams_   gensupport.URLParams
72093	ifNoneMatch_ string
72094	ctx_         context.Context
72095	header_      http.Header
72096}
72097
72098// List: Retrieves a list of subnetworks available to the specified
72099// project.
72100func (r *SubnetworksService) List(project string, region string) *SubnetworksListCall {
72101	c := &SubnetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72102	c.project = project
72103	c.region = region
72104	return c
72105}
72106
72107// Filter sets the optional parameter "filter": A filter expression that
72108// filters resources listed in the response. The expression must specify
72109// the field name, a comparison operator, and the value that you want to
72110// use for filtering. The value must be a string, a number, or a
72111// boolean. The comparison operator must be either =, !=, >, or <.
72112//
72113// For example, if you are filtering Compute Engine instances, you can
72114// exclude instances named example-instance by specifying name !=
72115// example-instance.
72116//
72117// You can also filter nested fields. For example, you could specify
72118// scheduling.automaticRestart = false to include instances only if they
72119// are not scheduled for automatic restarts. You can use filtering on
72120// nested fields to filter based on resource labels.
72121//
72122// To filter on multiple expressions, provide each separate expression
72123// within parentheses. For example, (scheduling.automaticRestart = true)
72124// (cpuPlatform = "Intel Skylake"). By default, each expression is an
72125// AND expression. However, you can include AND and OR expressions
72126// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
72127// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
72128// true).
72129func (c *SubnetworksListCall) Filter(filter string) *SubnetworksListCall {
72130	c.urlParams_.Set("filter", filter)
72131	return c
72132}
72133
72134// MaxResults sets the optional parameter "maxResults": The maximum
72135// number of results per page that should be returned. If the number of
72136// available results is larger than maxResults, Compute Engine returns a
72137// nextPageToken that can be used to get the next page of results in
72138// subsequent list requests. Acceptable values are 0 to 500, inclusive.
72139// (Default: 500)
72140func (c *SubnetworksListCall) MaxResults(maxResults int64) *SubnetworksListCall {
72141	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
72142	return c
72143}
72144
72145// OrderBy sets the optional parameter "orderBy": Sorts list results by
72146// a certain order. By default, results are returned in alphanumerical
72147// order based on the resource name.
72148//
72149// You can also sort results in descending order based on the creation
72150// timestamp using orderBy="creationTimestamp desc". This sorts results
72151// based on the creationTimestamp field in reverse chronological order
72152// (newest result first). Use this to sort resources like operations so
72153// that the newest operation is returned first.
72154//
72155// Currently, only sorting by name or creationTimestamp desc is
72156// supported.
72157func (c *SubnetworksListCall) OrderBy(orderBy string) *SubnetworksListCall {
72158	c.urlParams_.Set("orderBy", orderBy)
72159	return c
72160}
72161
72162// PageToken sets the optional parameter "pageToken": Specifies a page
72163// token to use. Set pageToken to the nextPageToken returned by a
72164// previous list request to get the next page of results.
72165func (c *SubnetworksListCall) PageToken(pageToken string) *SubnetworksListCall {
72166	c.urlParams_.Set("pageToken", pageToken)
72167	return c
72168}
72169
72170// Fields allows partial responses to be retrieved. See
72171// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72172// for more information.
72173func (c *SubnetworksListCall) Fields(s ...googleapi.Field) *SubnetworksListCall {
72174	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72175	return c
72176}
72177
72178// IfNoneMatch sets the optional parameter which makes the operation
72179// fail if the object's ETag matches the given value. This is useful for
72180// getting updates only after the object has changed since the last
72181// request. Use googleapi.IsNotModified to check whether the response
72182// error from Do is the result of In-None-Match.
72183func (c *SubnetworksListCall) IfNoneMatch(entityTag string) *SubnetworksListCall {
72184	c.ifNoneMatch_ = entityTag
72185	return c
72186}
72187
72188// Context sets the context to be used in this call's Do method. Any
72189// pending HTTP request will be aborted if the provided context is
72190// canceled.
72191func (c *SubnetworksListCall) Context(ctx context.Context) *SubnetworksListCall {
72192	c.ctx_ = ctx
72193	return c
72194}
72195
72196// Header returns an http.Header that can be modified by the caller to
72197// add HTTP headers to the request.
72198func (c *SubnetworksListCall) Header() http.Header {
72199	if c.header_ == nil {
72200		c.header_ = make(http.Header)
72201	}
72202	return c.header_
72203}
72204
72205func (c *SubnetworksListCall) doRequest(alt string) (*http.Response, error) {
72206	reqHeaders := make(http.Header)
72207	for k, v := range c.header_ {
72208		reqHeaders[k] = v
72209	}
72210	reqHeaders.Set("User-Agent", c.s.userAgent())
72211	if c.ifNoneMatch_ != "" {
72212		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72213	}
72214	var body io.Reader = nil
72215	c.urlParams_.Set("alt", alt)
72216	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks")
72217	urls += "?" + c.urlParams_.Encode()
72218	req, _ := http.NewRequest("GET", urls, body)
72219	req.Header = reqHeaders
72220	googleapi.Expand(req.URL, map[string]string{
72221		"project": c.project,
72222		"region":  c.region,
72223	})
72224	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72225}
72226
72227// Do executes the "compute.subnetworks.list" call.
72228// Exactly one of *SubnetworkList or error will be non-nil. Any non-2xx
72229// status code is an error. Response headers are in either
72230// *SubnetworkList.ServerResponse.Header or (if a response was returned
72231// at all) in error.(*googleapi.Error).Header. Use
72232// googleapi.IsNotModified to check whether the returned error was
72233// because http.StatusNotModified was returned.
72234func (c *SubnetworksListCall) Do(opts ...googleapi.CallOption) (*SubnetworkList, error) {
72235	gensupport.SetOptions(c.urlParams_, opts...)
72236	res, err := c.doRequest("json")
72237	if res != nil && res.StatusCode == http.StatusNotModified {
72238		if res.Body != nil {
72239			res.Body.Close()
72240		}
72241		return nil, &googleapi.Error{
72242			Code:   res.StatusCode,
72243			Header: res.Header,
72244		}
72245	}
72246	if err != nil {
72247		return nil, err
72248	}
72249	defer googleapi.CloseBody(res)
72250	if err := googleapi.CheckResponse(res); err != nil {
72251		return nil, err
72252	}
72253	ret := &SubnetworkList{
72254		ServerResponse: googleapi.ServerResponse{
72255			Header:         res.Header,
72256			HTTPStatusCode: res.StatusCode,
72257		},
72258	}
72259	target := &ret
72260	if err := gensupport.DecodeResponse(target, res); err != nil {
72261		return nil, err
72262	}
72263	return ret, nil
72264	// {
72265	//   "description": "Retrieves a list of subnetworks available to the specified project.",
72266	//   "httpMethod": "GET",
72267	//   "id": "compute.subnetworks.list",
72268	//   "parameterOrder": [
72269	//     "project",
72270	//     "region"
72271	//   ],
72272	//   "parameters": {
72273	//     "filter": {
72274	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
72275	//       "location": "query",
72276	//       "type": "string"
72277	//     },
72278	//     "maxResults": {
72279	//       "default": "500",
72280	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
72281	//       "format": "uint32",
72282	//       "location": "query",
72283	//       "minimum": "0",
72284	//       "type": "integer"
72285	//     },
72286	//     "orderBy": {
72287	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
72288	//       "location": "query",
72289	//       "type": "string"
72290	//     },
72291	//     "pageToken": {
72292	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
72293	//       "location": "query",
72294	//       "type": "string"
72295	//     },
72296	//     "project": {
72297	//       "description": "Project ID for this request.",
72298	//       "location": "path",
72299	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72300	//       "required": true,
72301	//       "type": "string"
72302	//     },
72303	//     "region": {
72304	//       "description": "Name of the region scoping this request.",
72305	//       "location": "path",
72306	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72307	//       "required": true,
72308	//       "type": "string"
72309	//     }
72310	//   },
72311	//   "path": "{project}/regions/{region}/subnetworks",
72312	//   "response": {
72313	//     "$ref": "SubnetworkList"
72314	//   },
72315	//   "scopes": [
72316	//     "https://www.googleapis.com/auth/cloud-platform",
72317	//     "https://www.googleapis.com/auth/compute",
72318	//     "https://www.googleapis.com/auth/compute.readonly"
72319	//   ]
72320	// }
72321
72322}
72323
72324// Pages invokes f for each page of results.
72325// A non-nil error returned from f will halt the iteration.
72326// The provided context supersedes any context provided to the Context method.
72327func (c *SubnetworksListCall) Pages(ctx context.Context, f func(*SubnetworkList) error) error {
72328	c.ctx_ = ctx
72329	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
72330	for {
72331		x, err := c.Do()
72332		if err != nil {
72333			return err
72334		}
72335		if err := f(x); err != nil {
72336			return err
72337		}
72338		if x.NextPageToken == "" {
72339			return nil
72340		}
72341		c.PageToken(x.NextPageToken)
72342	}
72343}
72344
72345// method id "compute.subnetworks.patch":
72346
72347type SubnetworksPatchCall struct {
72348	s           *Service
72349	project     string
72350	region      string
72351	subnetwork  string
72352	subnetwork2 *Subnetwork
72353	urlParams_  gensupport.URLParams
72354	ctx_        context.Context
72355	header_     http.Header
72356}
72357
72358// Patch: Patches the specified subnetwork with the data included in the
72359// request. Only the following fields within the subnetwork resource can
72360// be specified in the request: secondary_ip_range,
72361// allow_subnet_cidr_routes_overlap and role. It is also mandatory to
72362// specify the current fingeprint of the subnetwork resource being
72363// patched.
72364func (r *SubnetworksService) Patch(project string, region string, subnetwork string, subnetwork2 *Subnetwork) *SubnetworksPatchCall {
72365	c := &SubnetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72366	c.project = project
72367	c.region = region
72368	c.subnetwork = subnetwork
72369	c.subnetwork2 = subnetwork2
72370	return c
72371}
72372
72373// RequestId sets the optional parameter "requestId": An optional
72374// request ID to identify requests. Specify a unique request ID so that
72375// if you must retry your request, the server will know to ignore the
72376// request if it has already been completed.
72377//
72378// For example, consider a situation where you make an initial request
72379// and the request times out. If you make the request again with the
72380// same request ID, the server can check if original operation with the
72381// same request ID was received, and if so, will ignore the second
72382// request. This prevents clients from accidentally creating duplicate
72383// commitments.
72384//
72385// The request ID must be a valid UUID with the exception that zero UUID
72386// is not supported (00000000-0000-0000-0000-000000000000).
72387func (c *SubnetworksPatchCall) RequestId(requestId string) *SubnetworksPatchCall {
72388	c.urlParams_.Set("requestId", requestId)
72389	return c
72390}
72391
72392// Fields allows partial responses to be retrieved. See
72393// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72394// for more information.
72395func (c *SubnetworksPatchCall) Fields(s ...googleapi.Field) *SubnetworksPatchCall {
72396	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72397	return c
72398}
72399
72400// Context sets the context to be used in this call's Do method. Any
72401// pending HTTP request will be aborted if the provided context is
72402// canceled.
72403func (c *SubnetworksPatchCall) Context(ctx context.Context) *SubnetworksPatchCall {
72404	c.ctx_ = ctx
72405	return c
72406}
72407
72408// Header returns an http.Header that can be modified by the caller to
72409// add HTTP headers to the request.
72410func (c *SubnetworksPatchCall) Header() http.Header {
72411	if c.header_ == nil {
72412		c.header_ = make(http.Header)
72413	}
72414	return c.header_
72415}
72416
72417func (c *SubnetworksPatchCall) doRequest(alt string) (*http.Response, error) {
72418	reqHeaders := make(http.Header)
72419	for k, v := range c.header_ {
72420		reqHeaders[k] = v
72421	}
72422	reqHeaders.Set("User-Agent", c.s.userAgent())
72423	var body io.Reader = nil
72424	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork2)
72425	if err != nil {
72426		return nil, err
72427	}
72428	reqHeaders.Set("Content-Type", "application/json")
72429	c.urlParams_.Set("alt", alt)
72430	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
72431	urls += "?" + c.urlParams_.Encode()
72432	req, _ := http.NewRequest("PATCH", urls, body)
72433	req.Header = reqHeaders
72434	googleapi.Expand(req.URL, map[string]string{
72435		"project":    c.project,
72436		"region":     c.region,
72437		"subnetwork": c.subnetwork,
72438	})
72439	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72440}
72441
72442// Do executes the "compute.subnetworks.patch" call.
72443// Exactly one of *Operation or error will be non-nil. Any non-2xx
72444// status code is an error. Response headers are in either
72445// *Operation.ServerResponse.Header or (if a response was returned at
72446// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72447// to check whether the returned error was because
72448// http.StatusNotModified was returned.
72449func (c *SubnetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72450	gensupport.SetOptions(c.urlParams_, opts...)
72451	res, err := c.doRequest("json")
72452	if res != nil && res.StatusCode == http.StatusNotModified {
72453		if res.Body != nil {
72454			res.Body.Close()
72455		}
72456		return nil, &googleapi.Error{
72457			Code:   res.StatusCode,
72458			Header: res.Header,
72459		}
72460	}
72461	if err != nil {
72462		return nil, err
72463	}
72464	defer googleapi.CloseBody(res)
72465	if err := googleapi.CheckResponse(res); err != nil {
72466		return nil, err
72467	}
72468	ret := &Operation{
72469		ServerResponse: googleapi.ServerResponse{
72470			Header:         res.Header,
72471			HTTPStatusCode: res.StatusCode,
72472		},
72473	}
72474	target := &ret
72475	if err := gensupport.DecodeResponse(target, res); err != nil {
72476		return nil, err
72477	}
72478	return ret, nil
72479	// {
72480	//   "description": "Patches the specified subnetwork with the data included in the request. Only the following fields within the subnetwork resource can be specified in the request: secondary_ip_range, allow_subnet_cidr_routes_overlap and role. It is also mandatory to specify the current fingeprint of the subnetwork resource being patched.",
72481	//   "httpMethod": "PATCH",
72482	//   "id": "compute.subnetworks.patch",
72483	//   "parameterOrder": [
72484	//     "project",
72485	//     "region",
72486	//     "subnetwork"
72487	//   ],
72488	//   "parameters": {
72489	//     "project": {
72490	//       "description": "Project ID for this request.",
72491	//       "location": "path",
72492	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72493	//       "required": true,
72494	//       "type": "string"
72495	//     },
72496	//     "region": {
72497	//       "description": "Name of the region scoping this request.",
72498	//       "location": "path",
72499	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72500	//       "required": true,
72501	//       "type": "string"
72502	//     },
72503	//     "requestId": {
72504	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72505	//       "location": "query",
72506	//       "type": "string"
72507	//     },
72508	//     "subnetwork": {
72509	//       "description": "Name of the Subnetwork resource to patch.",
72510	//       "location": "path",
72511	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72512	//       "required": true,
72513	//       "type": "string"
72514	//     }
72515	//   },
72516	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
72517	//   "request": {
72518	//     "$ref": "Subnetwork"
72519	//   },
72520	//   "response": {
72521	//     "$ref": "Operation"
72522	//   },
72523	//   "scopes": [
72524	//     "https://www.googleapis.com/auth/cloud-platform",
72525	//     "https://www.googleapis.com/auth/compute"
72526	//   ]
72527	// }
72528
72529}
72530
72531// method id "compute.subnetworks.setPrivateIpGoogleAccess":
72532
72533type SubnetworksSetPrivateIpGoogleAccessCall struct {
72534	s                                          *Service
72535	project                                    string
72536	region                                     string
72537	subnetwork                                 string
72538	subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest
72539	urlParams_                                 gensupport.URLParams
72540	ctx_                                       context.Context
72541	header_                                    http.Header
72542}
72543
72544// SetPrivateIpGoogleAccess: Set whether VMs in this subnet can access
72545// Google services without assigning external IP addresses through
72546// Private Google Access.
72547func (r *SubnetworksService) SetPrivateIpGoogleAccess(project string, region string, subnetwork string, subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest) *SubnetworksSetPrivateIpGoogleAccessCall {
72548	c := &SubnetworksSetPrivateIpGoogleAccessCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72549	c.project = project
72550	c.region = region
72551	c.subnetwork = subnetwork
72552	c.subnetworkssetprivateipgoogleaccessrequest = subnetworkssetprivateipgoogleaccessrequest
72553	return c
72554}
72555
72556// RequestId sets the optional parameter "requestId": An optional
72557// request ID to identify requests. Specify a unique request ID so that
72558// if you must retry your request, the server will know to ignore the
72559// request if it has already been completed.
72560//
72561// For example, consider a situation where you make an initial request
72562// and the request times out. If you make the request again with the
72563// same request ID, the server can check if original operation with the
72564// same request ID was received, and if so, will ignore the second
72565// request. This prevents clients from accidentally creating duplicate
72566// commitments.
72567//
72568// The request ID must be a valid UUID with the exception that zero UUID
72569// is not supported (00000000-0000-0000-0000-000000000000).
72570func (c *SubnetworksSetPrivateIpGoogleAccessCall) RequestId(requestId string) *SubnetworksSetPrivateIpGoogleAccessCall {
72571	c.urlParams_.Set("requestId", requestId)
72572	return c
72573}
72574
72575// Fields allows partial responses to be retrieved. See
72576// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72577// for more information.
72578func (c *SubnetworksSetPrivateIpGoogleAccessCall) Fields(s ...googleapi.Field) *SubnetworksSetPrivateIpGoogleAccessCall {
72579	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72580	return c
72581}
72582
72583// Context sets the context to be used in this call's Do method. Any
72584// pending HTTP request will be aborted if the provided context is
72585// canceled.
72586func (c *SubnetworksSetPrivateIpGoogleAccessCall) Context(ctx context.Context) *SubnetworksSetPrivateIpGoogleAccessCall {
72587	c.ctx_ = ctx
72588	return c
72589}
72590
72591// Header returns an http.Header that can be modified by the caller to
72592// add HTTP headers to the request.
72593func (c *SubnetworksSetPrivateIpGoogleAccessCall) Header() http.Header {
72594	if c.header_ == nil {
72595		c.header_ = make(http.Header)
72596	}
72597	return c.header_
72598}
72599
72600func (c *SubnetworksSetPrivateIpGoogleAccessCall) doRequest(alt string) (*http.Response, error) {
72601	reqHeaders := make(http.Header)
72602	for k, v := range c.header_ {
72603		reqHeaders[k] = v
72604	}
72605	reqHeaders.Set("User-Agent", c.s.userAgent())
72606	var body io.Reader = nil
72607	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworkssetprivateipgoogleaccessrequest)
72608	if err != nil {
72609		return nil, err
72610	}
72611	reqHeaders.Set("Content-Type", "application/json")
72612	c.urlParams_.Set("alt", alt)
72613	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess")
72614	urls += "?" + c.urlParams_.Encode()
72615	req, _ := http.NewRequest("POST", urls, body)
72616	req.Header = reqHeaders
72617	googleapi.Expand(req.URL, map[string]string{
72618		"project":    c.project,
72619		"region":     c.region,
72620		"subnetwork": c.subnetwork,
72621	})
72622	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72623}
72624
72625// Do executes the "compute.subnetworks.setPrivateIpGoogleAccess" call.
72626// Exactly one of *Operation or error will be non-nil. Any non-2xx
72627// status code is an error. Response headers are in either
72628// *Operation.ServerResponse.Header or (if a response was returned at
72629// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72630// to check whether the returned error was because
72631// http.StatusNotModified was returned.
72632func (c *SubnetworksSetPrivateIpGoogleAccessCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72633	gensupport.SetOptions(c.urlParams_, opts...)
72634	res, err := c.doRequest("json")
72635	if res != nil && res.StatusCode == http.StatusNotModified {
72636		if res.Body != nil {
72637			res.Body.Close()
72638		}
72639		return nil, &googleapi.Error{
72640			Code:   res.StatusCode,
72641			Header: res.Header,
72642		}
72643	}
72644	if err != nil {
72645		return nil, err
72646	}
72647	defer googleapi.CloseBody(res)
72648	if err := googleapi.CheckResponse(res); err != nil {
72649		return nil, err
72650	}
72651	ret := &Operation{
72652		ServerResponse: googleapi.ServerResponse{
72653			Header:         res.Header,
72654			HTTPStatusCode: res.StatusCode,
72655		},
72656	}
72657	target := &ret
72658	if err := gensupport.DecodeResponse(target, res); err != nil {
72659		return nil, err
72660	}
72661	return ret, nil
72662	// {
72663	//   "description": "Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.",
72664	//   "httpMethod": "POST",
72665	//   "id": "compute.subnetworks.setPrivateIpGoogleAccess",
72666	//   "parameterOrder": [
72667	//     "project",
72668	//     "region",
72669	//     "subnetwork"
72670	//   ],
72671	//   "parameters": {
72672	//     "project": {
72673	//       "description": "Project ID for this request.",
72674	//       "location": "path",
72675	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72676	//       "required": true,
72677	//       "type": "string"
72678	//     },
72679	//     "region": {
72680	//       "description": "Name of the region scoping this request.",
72681	//       "location": "path",
72682	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72683	//       "required": true,
72684	//       "type": "string"
72685	//     },
72686	//     "requestId": {
72687	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72688	//       "location": "query",
72689	//       "type": "string"
72690	//     },
72691	//     "subnetwork": {
72692	//       "description": "Name of the Subnetwork resource.",
72693	//       "location": "path",
72694	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72695	//       "required": true,
72696	//       "type": "string"
72697	//     }
72698	//   },
72699	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess",
72700	//   "request": {
72701	//     "$ref": "SubnetworksSetPrivateIpGoogleAccessRequest"
72702	//   },
72703	//   "response": {
72704	//     "$ref": "Operation"
72705	//   },
72706	//   "scopes": [
72707	//     "https://www.googleapis.com/auth/cloud-platform",
72708	//     "https://www.googleapis.com/auth/compute"
72709	//   ]
72710	// }
72711
72712}
72713
72714// method id "compute.targetHttpProxies.delete":
72715
72716type TargetHttpProxiesDeleteCall struct {
72717	s               *Service
72718	project         string
72719	targetHttpProxy string
72720	urlParams_      gensupport.URLParams
72721	ctx_            context.Context
72722	header_         http.Header
72723}
72724
72725// Delete: Deletes the specified TargetHttpProxy resource.
72726// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/delete
72727func (r *TargetHttpProxiesService) Delete(project string, targetHttpProxy string) *TargetHttpProxiesDeleteCall {
72728	c := &TargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72729	c.project = project
72730	c.targetHttpProxy = targetHttpProxy
72731	return c
72732}
72733
72734// RequestId sets the optional parameter "requestId": An optional
72735// request ID to identify requests. Specify a unique request ID so that
72736// if you must retry your request, the server will know to ignore the
72737// request if it has already been completed.
72738//
72739// For example, consider a situation where you make an initial request
72740// and the request times out. If you make the request again with the
72741// same request ID, the server can check if original operation with the
72742// same request ID was received, and if so, will ignore the second
72743// request. This prevents clients from accidentally creating duplicate
72744// commitments.
72745//
72746// The request ID must be a valid UUID with the exception that zero UUID
72747// is not supported (00000000-0000-0000-0000-000000000000).
72748func (c *TargetHttpProxiesDeleteCall) RequestId(requestId string) *TargetHttpProxiesDeleteCall {
72749	c.urlParams_.Set("requestId", requestId)
72750	return c
72751}
72752
72753// Fields allows partial responses to be retrieved. See
72754// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72755// for more information.
72756func (c *TargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpProxiesDeleteCall {
72757	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72758	return c
72759}
72760
72761// Context sets the context to be used in this call's Do method. Any
72762// pending HTTP request will be aborted if the provided context is
72763// canceled.
72764func (c *TargetHttpProxiesDeleteCall) Context(ctx context.Context) *TargetHttpProxiesDeleteCall {
72765	c.ctx_ = ctx
72766	return c
72767}
72768
72769// Header returns an http.Header that can be modified by the caller to
72770// add HTTP headers to the request.
72771func (c *TargetHttpProxiesDeleteCall) Header() http.Header {
72772	if c.header_ == nil {
72773		c.header_ = make(http.Header)
72774	}
72775	return c.header_
72776}
72777
72778func (c *TargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
72779	reqHeaders := make(http.Header)
72780	for k, v := range c.header_ {
72781		reqHeaders[k] = v
72782	}
72783	reqHeaders.Set("User-Agent", c.s.userAgent())
72784	var body io.Reader = nil
72785	c.urlParams_.Set("alt", alt)
72786	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{targetHttpProxy}")
72787	urls += "?" + c.urlParams_.Encode()
72788	req, _ := http.NewRequest("DELETE", urls, body)
72789	req.Header = reqHeaders
72790	googleapi.Expand(req.URL, map[string]string{
72791		"project":         c.project,
72792		"targetHttpProxy": c.targetHttpProxy,
72793	})
72794	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72795}
72796
72797// Do executes the "compute.targetHttpProxies.delete" call.
72798// Exactly one of *Operation or error will be non-nil. Any non-2xx
72799// status code is an error. Response headers are in either
72800// *Operation.ServerResponse.Header or (if a response was returned at
72801// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72802// to check whether the returned error was because
72803// http.StatusNotModified was returned.
72804func (c *TargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72805	gensupport.SetOptions(c.urlParams_, opts...)
72806	res, err := c.doRequest("json")
72807	if res != nil && res.StatusCode == http.StatusNotModified {
72808		if res.Body != nil {
72809			res.Body.Close()
72810		}
72811		return nil, &googleapi.Error{
72812			Code:   res.StatusCode,
72813			Header: res.Header,
72814		}
72815	}
72816	if err != nil {
72817		return nil, err
72818	}
72819	defer googleapi.CloseBody(res)
72820	if err := googleapi.CheckResponse(res); err != nil {
72821		return nil, err
72822	}
72823	ret := &Operation{
72824		ServerResponse: googleapi.ServerResponse{
72825			Header:         res.Header,
72826			HTTPStatusCode: res.StatusCode,
72827		},
72828	}
72829	target := &ret
72830	if err := gensupport.DecodeResponse(target, res); err != nil {
72831		return nil, err
72832	}
72833	return ret, nil
72834	// {
72835	//   "description": "Deletes the specified TargetHttpProxy resource.",
72836	//   "httpMethod": "DELETE",
72837	//   "id": "compute.targetHttpProxies.delete",
72838	//   "parameterOrder": [
72839	//     "project",
72840	//     "targetHttpProxy"
72841	//   ],
72842	//   "parameters": {
72843	//     "project": {
72844	//       "description": "Project ID for this request.",
72845	//       "location": "path",
72846	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72847	//       "required": true,
72848	//       "type": "string"
72849	//     },
72850	//     "requestId": {
72851	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72852	//       "location": "query",
72853	//       "type": "string"
72854	//     },
72855	//     "targetHttpProxy": {
72856	//       "description": "Name of the TargetHttpProxy resource to delete.",
72857	//       "location": "path",
72858	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72859	//       "required": true,
72860	//       "type": "string"
72861	//     }
72862	//   },
72863	//   "path": "{project}/global/targetHttpProxies/{targetHttpProxy}",
72864	//   "response": {
72865	//     "$ref": "Operation"
72866	//   },
72867	//   "scopes": [
72868	//     "https://www.googleapis.com/auth/cloud-platform",
72869	//     "https://www.googleapis.com/auth/compute"
72870	//   ]
72871	// }
72872
72873}
72874
72875// method id "compute.targetHttpProxies.get":
72876
72877type TargetHttpProxiesGetCall struct {
72878	s               *Service
72879	project         string
72880	targetHttpProxy string
72881	urlParams_      gensupport.URLParams
72882	ifNoneMatch_    string
72883	ctx_            context.Context
72884	header_         http.Header
72885}
72886
72887// Get: Returns the specified TargetHttpProxy resource. Gets a list of
72888// available target HTTP proxies by making a list() request.
72889// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/get
72890func (r *TargetHttpProxiesService) Get(project string, targetHttpProxy string) *TargetHttpProxiesGetCall {
72891	c := &TargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72892	c.project = project
72893	c.targetHttpProxy = targetHttpProxy
72894	return c
72895}
72896
72897// Fields allows partial responses to be retrieved. See
72898// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72899// for more information.
72900func (c *TargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpProxiesGetCall {
72901	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72902	return c
72903}
72904
72905// IfNoneMatch sets the optional parameter which makes the operation
72906// fail if the object's ETag matches the given value. This is useful for
72907// getting updates only after the object has changed since the last
72908// request. Use googleapi.IsNotModified to check whether the response
72909// error from Do is the result of In-None-Match.
72910func (c *TargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpProxiesGetCall {
72911	c.ifNoneMatch_ = entityTag
72912	return c
72913}
72914
72915// Context sets the context to be used in this call's Do method. Any
72916// pending HTTP request will be aborted if the provided context is
72917// canceled.
72918func (c *TargetHttpProxiesGetCall) Context(ctx context.Context) *TargetHttpProxiesGetCall {
72919	c.ctx_ = ctx
72920	return c
72921}
72922
72923// Header returns an http.Header that can be modified by the caller to
72924// add HTTP headers to the request.
72925func (c *TargetHttpProxiesGetCall) Header() http.Header {
72926	if c.header_ == nil {
72927		c.header_ = make(http.Header)
72928	}
72929	return c.header_
72930}
72931
72932func (c *TargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
72933	reqHeaders := make(http.Header)
72934	for k, v := range c.header_ {
72935		reqHeaders[k] = v
72936	}
72937	reqHeaders.Set("User-Agent", c.s.userAgent())
72938	if c.ifNoneMatch_ != "" {
72939		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72940	}
72941	var body io.Reader = nil
72942	c.urlParams_.Set("alt", alt)
72943	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{targetHttpProxy}")
72944	urls += "?" + c.urlParams_.Encode()
72945	req, _ := http.NewRequest("GET", urls, body)
72946	req.Header = reqHeaders
72947	googleapi.Expand(req.URL, map[string]string{
72948		"project":         c.project,
72949		"targetHttpProxy": c.targetHttpProxy,
72950	})
72951	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72952}
72953
72954// Do executes the "compute.targetHttpProxies.get" call.
72955// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
72956// status code is an error. Response headers are in either
72957// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
72958// at all) in error.(*googleapi.Error).Header. Use
72959// googleapi.IsNotModified to check whether the returned error was
72960// because http.StatusNotModified was returned.
72961func (c *TargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
72962	gensupport.SetOptions(c.urlParams_, opts...)
72963	res, err := c.doRequest("json")
72964	if res != nil && res.StatusCode == http.StatusNotModified {
72965		if res.Body != nil {
72966			res.Body.Close()
72967		}
72968		return nil, &googleapi.Error{
72969			Code:   res.StatusCode,
72970			Header: res.Header,
72971		}
72972	}
72973	if err != nil {
72974		return nil, err
72975	}
72976	defer googleapi.CloseBody(res)
72977	if err := googleapi.CheckResponse(res); err != nil {
72978		return nil, err
72979	}
72980	ret := &TargetHttpProxy{
72981		ServerResponse: googleapi.ServerResponse{
72982			Header:         res.Header,
72983			HTTPStatusCode: res.StatusCode,
72984		},
72985	}
72986	target := &ret
72987	if err := gensupport.DecodeResponse(target, res); err != nil {
72988		return nil, err
72989	}
72990	return ret, nil
72991	// {
72992	//   "description": "Returns the specified TargetHttpProxy resource. Gets a list of available target HTTP proxies by making a list() request.",
72993	//   "httpMethod": "GET",
72994	//   "id": "compute.targetHttpProxies.get",
72995	//   "parameterOrder": [
72996	//     "project",
72997	//     "targetHttpProxy"
72998	//   ],
72999	//   "parameters": {
73000	//     "project": {
73001	//       "description": "Project ID for this request.",
73002	//       "location": "path",
73003	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73004	//       "required": true,
73005	//       "type": "string"
73006	//     },
73007	//     "targetHttpProxy": {
73008	//       "description": "Name of the TargetHttpProxy resource to return.",
73009	//       "location": "path",
73010	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73011	//       "required": true,
73012	//       "type": "string"
73013	//     }
73014	//   },
73015	//   "path": "{project}/global/targetHttpProxies/{targetHttpProxy}",
73016	//   "response": {
73017	//     "$ref": "TargetHttpProxy"
73018	//   },
73019	//   "scopes": [
73020	//     "https://www.googleapis.com/auth/cloud-platform",
73021	//     "https://www.googleapis.com/auth/compute",
73022	//     "https://www.googleapis.com/auth/compute.readonly"
73023	//   ]
73024	// }
73025
73026}
73027
73028// method id "compute.targetHttpProxies.insert":
73029
73030type TargetHttpProxiesInsertCall struct {
73031	s               *Service
73032	project         string
73033	targethttpproxy *TargetHttpProxy
73034	urlParams_      gensupport.URLParams
73035	ctx_            context.Context
73036	header_         http.Header
73037}
73038
73039// Insert: Creates a TargetHttpProxy resource in the specified project
73040// using the data included in the request.
73041// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/insert
73042func (r *TargetHttpProxiesService) Insert(project string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesInsertCall {
73043	c := &TargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73044	c.project = project
73045	c.targethttpproxy = targethttpproxy
73046	return c
73047}
73048
73049// RequestId sets the optional parameter "requestId": An optional
73050// request ID to identify requests. Specify a unique request ID so that
73051// if you must retry your request, the server will know to ignore the
73052// request if it has already been completed.
73053//
73054// For example, consider a situation where you make an initial request
73055// and the request times out. If you make the request again with the
73056// same request ID, the server can check if original operation with the
73057// same request ID was received, and if so, will ignore the second
73058// request. This prevents clients from accidentally creating duplicate
73059// commitments.
73060//
73061// The request ID must be a valid UUID with the exception that zero UUID
73062// is not supported (00000000-0000-0000-0000-000000000000).
73063func (c *TargetHttpProxiesInsertCall) RequestId(requestId string) *TargetHttpProxiesInsertCall {
73064	c.urlParams_.Set("requestId", requestId)
73065	return c
73066}
73067
73068// Fields allows partial responses to be retrieved. See
73069// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73070// for more information.
73071func (c *TargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpProxiesInsertCall {
73072	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73073	return c
73074}
73075
73076// Context sets the context to be used in this call's Do method. Any
73077// pending HTTP request will be aborted if the provided context is
73078// canceled.
73079func (c *TargetHttpProxiesInsertCall) Context(ctx context.Context) *TargetHttpProxiesInsertCall {
73080	c.ctx_ = ctx
73081	return c
73082}
73083
73084// Header returns an http.Header that can be modified by the caller to
73085// add HTTP headers to the request.
73086func (c *TargetHttpProxiesInsertCall) Header() http.Header {
73087	if c.header_ == nil {
73088		c.header_ = make(http.Header)
73089	}
73090	return c.header_
73091}
73092
73093func (c *TargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
73094	reqHeaders := make(http.Header)
73095	for k, v := range c.header_ {
73096		reqHeaders[k] = v
73097	}
73098	reqHeaders.Set("User-Agent", c.s.userAgent())
73099	var body io.Reader = nil
73100	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
73101	if err != nil {
73102		return nil, err
73103	}
73104	reqHeaders.Set("Content-Type", "application/json")
73105	c.urlParams_.Set("alt", alt)
73106	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies")
73107	urls += "?" + c.urlParams_.Encode()
73108	req, _ := http.NewRequest("POST", urls, body)
73109	req.Header = reqHeaders
73110	googleapi.Expand(req.URL, map[string]string{
73111		"project": c.project,
73112	})
73113	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73114}
73115
73116// Do executes the "compute.targetHttpProxies.insert" call.
73117// Exactly one of *Operation or error will be non-nil. Any non-2xx
73118// status code is an error. Response headers are in either
73119// *Operation.ServerResponse.Header or (if a response was returned at
73120// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73121// to check whether the returned error was because
73122// http.StatusNotModified was returned.
73123func (c *TargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73124	gensupport.SetOptions(c.urlParams_, opts...)
73125	res, err := c.doRequest("json")
73126	if res != nil && res.StatusCode == http.StatusNotModified {
73127		if res.Body != nil {
73128			res.Body.Close()
73129		}
73130		return nil, &googleapi.Error{
73131			Code:   res.StatusCode,
73132			Header: res.Header,
73133		}
73134	}
73135	if err != nil {
73136		return nil, err
73137	}
73138	defer googleapi.CloseBody(res)
73139	if err := googleapi.CheckResponse(res); err != nil {
73140		return nil, err
73141	}
73142	ret := &Operation{
73143		ServerResponse: googleapi.ServerResponse{
73144			Header:         res.Header,
73145			HTTPStatusCode: res.StatusCode,
73146		},
73147	}
73148	target := &ret
73149	if err := gensupport.DecodeResponse(target, res); err != nil {
73150		return nil, err
73151	}
73152	return ret, nil
73153	// {
73154	//   "description": "Creates a TargetHttpProxy resource in the specified project using the data included in the request.",
73155	//   "httpMethod": "POST",
73156	//   "id": "compute.targetHttpProxies.insert",
73157	//   "parameterOrder": [
73158	//     "project"
73159	//   ],
73160	//   "parameters": {
73161	//     "project": {
73162	//       "description": "Project ID for this request.",
73163	//       "location": "path",
73164	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73165	//       "required": true,
73166	//       "type": "string"
73167	//     },
73168	//     "requestId": {
73169	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73170	//       "location": "query",
73171	//       "type": "string"
73172	//     }
73173	//   },
73174	//   "path": "{project}/global/targetHttpProxies",
73175	//   "request": {
73176	//     "$ref": "TargetHttpProxy"
73177	//   },
73178	//   "response": {
73179	//     "$ref": "Operation"
73180	//   },
73181	//   "scopes": [
73182	//     "https://www.googleapis.com/auth/cloud-platform",
73183	//     "https://www.googleapis.com/auth/compute"
73184	//   ]
73185	// }
73186
73187}
73188
73189// method id "compute.targetHttpProxies.list":
73190
73191type TargetHttpProxiesListCall struct {
73192	s            *Service
73193	project      string
73194	urlParams_   gensupport.URLParams
73195	ifNoneMatch_ string
73196	ctx_         context.Context
73197	header_      http.Header
73198}
73199
73200// List: Retrieves the list of TargetHttpProxy resources available to
73201// the specified project.
73202// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/list
73203func (r *TargetHttpProxiesService) List(project string) *TargetHttpProxiesListCall {
73204	c := &TargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73205	c.project = project
73206	return c
73207}
73208
73209// Filter sets the optional parameter "filter": A filter expression that
73210// filters resources listed in the response. The expression must specify
73211// the field name, a comparison operator, and the value that you want to
73212// use for filtering. The value must be a string, a number, or a
73213// boolean. The comparison operator must be either =, !=, >, or <.
73214//
73215// For example, if you are filtering Compute Engine instances, you can
73216// exclude instances named example-instance by specifying name !=
73217// example-instance.
73218//
73219// You can also filter nested fields. For example, you could specify
73220// scheduling.automaticRestart = false to include instances only if they
73221// are not scheduled for automatic restarts. You can use filtering on
73222// nested fields to filter based on resource labels.
73223//
73224// To filter on multiple expressions, provide each separate expression
73225// within parentheses. For example, (scheduling.automaticRestart = true)
73226// (cpuPlatform = "Intel Skylake"). By default, each expression is an
73227// AND expression. However, you can include AND and OR expressions
73228// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
73229// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
73230// true).
73231func (c *TargetHttpProxiesListCall) Filter(filter string) *TargetHttpProxiesListCall {
73232	c.urlParams_.Set("filter", filter)
73233	return c
73234}
73235
73236// MaxResults sets the optional parameter "maxResults": The maximum
73237// number of results per page that should be returned. If the number of
73238// available results is larger than maxResults, Compute Engine returns a
73239// nextPageToken that can be used to get the next page of results in
73240// subsequent list requests. Acceptable values are 0 to 500, inclusive.
73241// (Default: 500)
73242func (c *TargetHttpProxiesListCall) MaxResults(maxResults int64) *TargetHttpProxiesListCall {
73243	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
73244	return c
73245}
73246
73247// OrderBy sets the optional parameter "orderBy": Sorts list results by
73248// a certain order. By default, results are returned in alphanumerical
73249// order based on the resource name.
73250//
73251// You can also sort results in descending order based on the creation
73252// timestamp using orderBy="creationTimestamp desc". This sorts results
73253// based on the creationTimestamp field in reverse chronological order
73254// (newest result first). Use this to sort resources like operations so
73255// that the newest operation is returned first.
73256//
73257// Currently, only sorting by name or creationTimestamp desc is
73258// supported.
73259func (c *TargetHttpProxiesListCall) OrderBy(orderBy string) *TargetHttpProxiesListCall {
73260	c.urlParams_.Set("orderBy", orderBy)
73261	return c
73262}
73263
73264// PageToken sets the optional parameter "pageToken": Specifies a page
73265// token to use. Set pageToken to the nextPageToken returned by a
73266// previous list request to get the next page of results.
73267func (c *TargetHttpProxiesListCall) PageToken(pageToken string) *TargetHttpProxiesListCall {
73268	c.urlParams_.Set("pageToken", pageToken)
73269	return c
73270}
73271
73272// Fields allows partial responses to be retrieved. See
73273// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73274// for more information.
73275func (c *TargetHttpProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesListCall {
73276	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73277	return c
73278}
73279
73280// IfNoneMatch sets the optional parameter which makes the operation
73281// fail if the object's ETag matches the given value. This is useful for
73282// getting updates only after the object has changed since the last
73283// request. Use googleapi.IsNotModified to check whether the response
73284// error from Do is the result of In-None-Match.
73285func (c *TargetHttpProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesListCall {
73286	c.ifNoneMatch_ = entityTag
73287	return c
73288}
73289
73290// Context sets the context to be used in this call's Do method. Any
73291// pending HTTP request will be aborted if the provided context is
73292// canceled.
73293func (c *TargetHttpProxiesListCall) Context(ctx context.Context) *TargetHttpProxiesListCall {
73294	c.ctx_ = ctx
73295	return c
73296}
73297
73298// Header returns an http.Header that can be modified by the caller to
73299// add HTTP headers to the request.
73300func (c *TargetHttpProxiesListCall) Header() http.Header {
73301	if c.header_ == nil {
73302		c.header_ = make(http.Header)
73303	}
73304	return c.header_
73305}
73306
73307func (c *TargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
73308	reqHeaders := make(http.Header)
73309	for k, v := range c.header_ {
73310		reqHeaders[k] = v
73311	}
73312	reqHeaders.Set("User-Agent", c.s.userAgent())
73313	if c.ifNoneMatch_ != "" {
73314		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73315	}
73316	var body io.Reader = nil
73317	c.urlParams_.Set("alt", alt)
73318	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies")
73319	urls += "?" + c.urlParams_.Encode()
73320	req, _ := http.NewRequest("GET", urls, body)
73321	req.Header = reqHeaders
73322	googleapi.Expand(req.URL, map[string]string{
73323		"project": c.project,
73324	})
73325	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73326}
73327
73328// Do executes the "compute.targetHttpProxies.list" call.
73329// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
73330// non-2xx status code is an error. Response headers are in either
73331// *TargetHttpProxyList.ServerResponse.Header or (if a response was
73332// returned at all) in error.(*googleapi.Error).Header. Use
73333// googleapi.IsNotModified to check whether the returned error was
73334// because http.StatusNotModified was returned.
73335func (c *TargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
73336	gensupport.SetOptions(c.urlParams_, opts...)
73337	res, err := c.doRequest("json")
73338	if res != nil && res.StatusCode == http.StatusNotModified {
73339		if res.Body != nil {
73340			res.Body.Close()
73341		}
73342		return nil, &googleapi.Error{
73343			Code:   res.StatusCode,
73344			Header: res.Header,
73345		}
73346	}
73347	if err != nil {
73348		return nil, err
73349	}
73350	defer googleapi.CloseBody(res)
73351	if err := googleapi.CheckResponse(res); err != nil {
73352		return nil, err
73353	}
73354	ret := &TargetHttpProxyList{
73355		ServerResponse: googleapi.ServerResponse{
73356			Header:         res.Header,
73357			HTTPStatusCode: res.StatusCode,
73358		},
73359	}
73360	target := &ret
73361	if err := gensupport.DecodeResponse(target, res); err != nil {
73362		return nil, err
73363	}
73364	return ret, nil
73365	// {
73366	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project.",
73367	//   "httpMethod": "GET",
73368	//   "id": "compute.targetHttpProxies.list",
73369	//   "parameterOrder": [
73370	//     "project"
73371	//   ],
73372	//   "parameters": {
73373	//     "filter": {
73374	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
73375	//       "location": "query",
73376	//       "type": "string"
73377	//     },
73378	//     "maxResults": {
73379	//       "default": "500",
73380	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
73381	//       "format": "uint32",
73382	//       "location": "query",
73383	//       "minimum": "0",
73384	//       "type": "integer"
73385	//     },
73386	//     "orderBy": {
73387	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
73388	//       "location": "query",
73389	//       "type": "string"
73390	//     },
73391	//     "pageToken": {
73392	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
73393	//       "location": "query",
73394	//       "type": "string"
73395	//     },
73396	//     "project": {
73397	//       "description": "Project ID for this request.",
73398	//       "location": "path",
73399	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73400	//       "required": true,
73401	//       "type": "string"
73402	//     }
73403	//   },
73404	//   "path": "{project}/global/targetHttpProxies",
73405	//   "response": {
73406	//     "$ref": "TargetHttpProxyList"
73407	//   },
73408	//   "scopes": [
73409	//     "https://www.googleapis.com/auth/cloud-platform",
73410	//     "https://www.googleapis.com/auth/compute",
73411	//     "https://www.googleapis.com/auth/compute.readonly"
73412	//   ]
73413	// }
73414
73415}
73416
73417// Pages invokes f for each page of results.
73418// A non-nil error returned from f will halt the iteration.
73419// The provided context supersedes any context provided to the Context method.
73420func (c *TargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
73421	c.ctx_ = ctx
73422	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
73423	for {
73424		x, err := c.Do()
73425		if err != nil {
73426			return err
73427		}
73428		if err := f(x); err != nil {
73429			return err
73430		}
73431		if x.NextPageToken == "" {
73432			return nil
73433		}
73434		c.PageToken(x.NextPageToken)
73435	}
73436}
73437
73438// method id "compute.targetHttpProxies.setUrlMap":
73439
73440type TargetHttpProxiesSetUrlMapCall struct {
73441	s               *Service
73442	project         string
73443	targetHttpProxy string
73444	urlmapreference *UrlMapReference
73445	urlParams_      gensupport.URLParams
73446	ctx_            context.Context
73447	header_         http.Header
73448}
73449
73450// SetUrlMap: Changes the URL map for TargetHttpProxy.
73451// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/setUrlMap
73452func (r *TargetHttpProxiesService) SetUrlMap(project string, targetHttpProxy string, urlmapreference *UrlMapReference) *TargetHttpProxiesSetUrlMapCall {
73453	c := &TargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73454	c.project = project
73455	c.targetHttpProxy = targetHttpProxy
73456	c.urlmapreference = urlmapreference
73457	return c
73458}
73459
73460// RequestId sets the optional parameter "requestId": An optional
73461// request ID to identify requests. Specify a unique request ID so that
73462// if you must retry your request, the server will know to ignore the
73463// request if it has already been completed.
73464//
73465// For example, consider a situation where you make an initial request
73466// and the request times out. If you make the request again with the
73467// same request ID, the server can check if original operation with the
73468// same request ID was received, and if so, will ignore the second
73469// request. This prevents clients from accidentally creating duplicate
73470// commitments.
73471//
73472// The request ID must be a valid UUID with the exception that zero UUID
73473// is not supported (00000000-0000-0000-0000-000000000000).
73474func (c *TargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpProxiesSetUrlMapCall {
73475	c.urlParams_.Set("requestId", requestId)
73476	return c
73477}
73478
73479// Fields allows partial responses to be retrieved. See
73480// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73481// for more information.
73482func (c *TargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpProxiesSetUrlMapCall {
73483	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73484	return c
73485}
73486
73487// Context sets the context to be used in this call's Do method. Any
73488// pending HTTP request will be aborted if the provided context is
73489// canceled.
73490func (c *TargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpProxiesSetUrlMapCall {
73491	c.ctx_ = ctx
73492	return c
73493}
73494
73495// Header returns an http.Header that can be modified by the caller to
73496// add HTTP headers to the request.
73497func (c *TargetHttpProxiesSetUrlMapCall) Header() http.Header {
73498	if c.header_ == nil {
73499		c.header_ = make(http.Header)
73500	}
73501	return c.header_
73502}
73503
73504func (c *TargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
73505	reqHeaders := make(http.Header)
73506	for k, v := range c.header_ {
73507		reqHeaders[k] = v
73508	}
73509	reqHeaders.Set("User-Agent", c.s.userAgent())
73510	var body io.Reader = nil
73511	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
73512	if err != nil {
73513		return nil, err
73514	}
73515	reqHeaders.Set("Content-Type", "application/json")
73516	c.urlParams_.Set("alt", alt)
73517	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
73518	urls += "?" + c.urlParams_.Encode()
73519	req, _ := http.NewRequest("POST", urls, body)
73520	req.Header = reqHeaders
73521	googleapi.Expand(req.URL, map[string]string{
73522		"project":         c.project,
73523		"targetHttpProxy": c.targetHttpProxy,
73524	})
73525	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73526}
73527
73528// Do executes the "compute.targetHttpProxies.setUrlMap" call.
73529// Exactly one of *Operation or error will be non-nil. Any non-2xx
73530// status code is an error. Response headers are in either
73531// *Operation.ServerResponse.Header or (if a response was returned at
73532// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73533// to check whether the returned error was because
73534// http.StatusNotModified was returned.
73535func (c *TargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73536	gensupport.SetOptions(c.urlParams_, opts...)
73537	res, err := c.doRequest("json")
73538	if res != nil && res.StatusCode == http.StatusNotModified {
73539		if res.Body != nil {
73540			res.Body.Close()
73541		}
73542		return nil, &googleapi.Error{
73543			Code:   res.StatusCode,
73544			Header: res.Header,
73545		}
73546	}
73547	if err != nil {
73548		return nil, err
73549	}
73550	defer googleapi.CloseBody(res)
73551	if err := googleapi.CheckResponse(res); err != nil {
73552		return nil, err
73553	}
73554	ret := &Operation{
73555		ServerResponse: googleapi.ServerResponse{
73556			Header:         res.Header,
73557			HTTPStatusCode: res.StatusCode,
73558		},
73559	}
73560	target := &ret
73561	if err := gensupport.DecodeResponse(target, res); err != nil {
73562		return nil, err
73563	}
73564	return ret, nil
73565	// {
73566	//   "description": "Changes the URL map for TargetHttpProxy.",
73567	//   "httpMethod": "POST",
73568	//   "id": "compute.targetHttpProxies.setUrlMap",
73569	//   "parameterOrder": [
73570	//     "project",
73571	//     "targetHttpProxy"
73572	//   ],
73573	//   "parameters": {
73574	//     "project": {
73575	//       "description": "Project ID for this request.",
73576	//       "location": "path",
73577	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73578	//       "required": true,
73579	//       "type": "string"
73580	//     },
73581	//     "requestId": {
73582	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73583	//       "location": "query",
73584	//       "type": "string"
73585	//     },
73586	//     "targetHttpProxy": {
73587	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
73588	//       "location": "path",
73589	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73590	//       "required": true,
73591	//       "type": "string"
73592	//     }
73593	//   },
73594	//   "path": "{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
73595	//   "request": {
73596	//     "$ref": "UrlMapReference"
73597	//   },
73598	//   "response": {
73599	//     "$ref": "Operation"
73600	//   },
73601	//   "scopes": [
73602	//     "https://www.googleapis.com/auth/cloud-platform",
73603	//     "https://www.googleapis.com/auth/compute"
73604	//   ]
73605	// }
73606
73607}
73608
73609// method id "compute.targetHttpsProxies.delete":
73610
73611type TargetHttpsProxiesDeleteCall struct {
73612	s                *Service
73613	project          string
73614	targetHttpsProxy string
73615	urlParams_       gensupport.URLParams
73616	ctx_             context.Context
73617	header_          http.Header
73618}
73619
73620// Delete: Deletes the specified TargetHttpsProxy resource.
73621func (r *TargetHttpsProxiesService) Delete(project string, targetHttpsProxy string) *TargetHttpsProxiesDeleteCall {
73622	c := &TargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73623	c.project = project
73624	c.targetHttpsProxy = targetHttpsProxy
73625	return c
73626}
73627
73628// RequestId sets the optional parameter "requestId": An optional
73629// request ID to identify requests. Specify a unique request ID so that
73630// if you must retry your request, the server will know to ignore the
73631// request if it has already been completed.
73632//
73633// For example, consider a situation where you make an initial request
73634// and the request times out. If you make the request again with the
73635// same request ID, the server can check if original operation with the
73636// same request ID was received, and if so, will ignore the second
73637// request. This prevents clients from accidentally creating duplicate
73638// commitments.
73639//
73640// The request ID must be a valid UUID with the exception that zero UUID
73641// is not supported (00000000-0000-0000-0000-000000000000).
73642func (c *TargetHttpsProxiesDeleteCall) RequestId(requestId string) *TargetHttpsProxiesDeleteCall {
73643	c.urlParams_.Set("requestId", requestId)
73644	return c
73645}
73646
73647// Fields allows partial responses to be retrieved. See
73648// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73649// for more information.
73650func (c *TargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesDeleteCall {
73651	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73652	return c
73653}
73654
73655// Context sets the context to be used in this call's Do method. Any
73656// pending HTTP request will be aborted if the provided context is
73657// canceled.
73658func (c *TargetHttpsProxiesDeleteCall) Context(ctx context.Context) *TargetHttpsProxiesDeleteCall {
73659	c.ctx_ = ctx
73660	return c
73661}
73662
73663// Header returns an http.Header that can be modified by the caller to
73664// add HTTP headers to the request.
73665func (c *TargetHttpsProxiesDeleteCall) Header() http.Header {
73666	if c.header_ == nil {
73667		c.header_ = make(http.Header)
73668	}
73669	return c.header_
73670}
73671
73672func (c *TargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
73673	reqHeaders := make(http.Header)
73674	for k, v := range c.header_ {
73675		reqHeaders[k] = v
73676	}
73677	reqHeaders.Set("User-Agent", c.s.userAgent())
73678	var body io.Reader = nil
73679	c.urlParams_.Set("alt", alt)
73680	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}")
73681	urls += "?" + c.urlParams_.Encode()
73682	req, _ := http.NewRequest("DELETE", urls, body)
73683	req.Header = reqHeaders
73684	googleapi.Expand(req.URL, map[string]string{
73685		"project":          c.project,
73686		"targetHttpsProxy": c.targetHttpsProxy,
73687	})
73688	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73689}
73690
73691// Do executes the "compute.targetHttpsProxies.delete" call.
73692// Exactly one of *Operation or error will be non-nil. Any non-2xx
73693// status code is an error. Response headers are in either
73694// *Operation.ServerResponse.Header or (if a response was returned at
73695// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73696// to check whether the returned error was because
73697// http.StatusNotModified was returned.
73698func (c *TargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73699	gensupport.SetOptions(c.urlParams_, opts...)
73700	res, err := c.doRequest("json")
73701	if res != nil && res.StatusCode == http.StatusNotModified {
73702		if res.Body != nil {
73703			res.Body.Close()
73704		}
73705		return nil, &googleapi.Error{
73706			Code:   res.StatusCode,
73707			Header: res.Header,
73708		}
73709	}
73710	if err != nil {
73711		return nil, err
73712	}
73713	defer googleapi.CloseBody(res)
73714	if err := googleapi.CheckResponse(res); err != nil {
73715		return nil, err
73716	}
73717	ret := &Operation{
73718		ServerResponse: googleapi.ServerResponse{
73719			Header:         res.Header,
73720			HTTPStatusCode: res.StatusCode,
73721		},
73722	}
73723	target := &ret
73724	if err := gensupport.DecodeResponse(target, res); err != nil {
73725		return nil, err
73726	}
73727	return ret, nil
73728	// {
73729	//   "description": "Deletes the specified TargetHttpsProxy resource.",
73730	//   "httpMethod": "DELETE",
73731	//   "id": "compute.targetHttpsProxies.delete",
73732	//   "parameterOrder": [
73733	//     "project",
73734	//     "targetHttpsProxy"
73735	//   ],
73736	//   "parameters": {
73737	//     "project": {
73738	//       "description": "Project ID for this request.",
73739	//       "location": "path",
73740	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73741	//       "required": true,
73742	//       "type": "string"
73743	//     },
73744	//     "requestId": {
73745	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73746	//       "location": "query",
73747	//       "type": "string"
73748	//     },
73749	//     "targetHttpsProxy": {
73750	//       "description": "Name of the TargetHttpsProxy resource to delete.",
73751	//       "location": "path",
73752	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73753	//       "required": true,
73754	//       "type": "string"
73755	//     }
73756	//   },
73757	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}",
73758	//   "response": {
73759	//     "$ref": "Operation"
73760	//   },
73761	//   "scopes": [
73762	//     "https://www.googleapis.com/auth/cloud-platform",
73763	//     "https://www.googleapis.com/auth/compute"
73764	//   ]
73765	// }
73766
73767}
73768
73769// method id "compute.targetHttpsProxies.get":
73770
73771type TargetHttpsProxiesGetCall struct {
73772	s                *Service
73773	project          string
73774	targetHttpsProxy string
73775	urlParams_       gensupport.URLParams
73776	ifNoneMatch_     string
73777	ctx_             context.Context
73778	header_          http.Header
73779}
73780
73781// Get: Returns the specified TargetHttpsProxy resource. Gets a list of
73782// available target HTTPS proxies by making a list() request.
73783func (r *TargetHttpsProxiesService) Get(project string, targetHttpsProxy string) *TargetHttpsProxiesGetCall {
73784	c := &TargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73785	c.project = project
73786	c.targetHttpsProxy = targetHttpsProxy
73787	return c
73788}
73789
73790// Fields allows partial responses to be retrieved. See
73791// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73792// for more information.
73793func (c *TargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesGetCall {
73794	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73795	return c
73796}
73797
73798// IfNoneMatch sets the optional parameter which makes the operation
73799// fail if the object's ETag matches the given value. This is useful for
73800// getting updates only after the object has changed since the last
73801// request. Use googleapi.IsNotModified to check whether the response
73802// error from Do is the result of In-None-Match.
73803func (c *TargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesGetCall {
73804	c.ifNoneMatch_ = entityTag
73805	return c
73806}
73807
73808// Context sets the context to be used in this call's Do method. Any
73809// pending HTTP request will be aborted if the provided context is
73810// canceled.
73811func (c *TargetHttpsProxiesGetCall) Context(ctx context.Context) *TargetHttpsProxiesGetCall {
73812	c.ctx_ = ctx
73813	return c
73814}
73815
73816// Header returns an http.Header that can be modified by the caller to
73817// add HTTP headers to the request.
73818func (c *TargetHttpsProxiesGetCall) Header() http.Header {
73819	if c.header_ == nil {
73820		c.header_ = make(http.Header)
73821	}
73822	return c.header_
73823}
73824
73825func (c *TargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
73826	reqHeaders := make(http.Header)
73827	for k, v := range c.header_ {
73828		reqHeaders[k] = v
73829	}
73830	reqHeaders.Set("User-Agent", c.s.userAgent())
73831	if c.ifNoneMatch_ != "" {
73832		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73833	}
73834	var body io.Reader = nil
73835	c.urlParams_.Set("alt", alt)
73836	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}")
73837	urls += "?" + c.urlParams_.Encode()
73838	req, _ := http.NewRequest("GET", urls, body)
73839	req.Header = reqHeaders
73840	googleapi.Expand(req.URL, map[string]string{
73841		"project":          c.project,
73842		"targetHttpsProxy": c.targetHttpsProxy,
73843	})
73844	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73845}
73846
73847// Do executes the "compute.targetHttpsProxies.get" call.
73848// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
73849// non-2xx status code is an error. Response headers are in either
73850// *TargetHttpsProxy.ServerResponse.Header or (if a response was
73851// returned at all) in error.(*googleapi.Error).Header. Use
73852// googleapi.IsNotModified to check whether the returned error was
73853// because http.StatusNotModified was returned.
73854func (c *TargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
73855	gensupport.SetOptions(c.urlParams_, opts...)
73856	res, err := c.doRequest("json")
73857	if res != nil && res.StatusCode == http.StatusNotModified {
73858		if res.Body != nil {
73859			res.Body.Close()
73860		}
73861		return nil, &googleapi.Error{
73862			Code:   res.StatusCode,
73863			Header: res.Header,
73864		}
73865	}
73866	if err != nil {
73867		return nil, err
73868	}
73869	defer googleapi.CloseBody(res)
73870	if err := googleapi.CheckResponse(res); err != nil {
73871		return nil, err
73872	}
73873	ret := &TargetHttpsProxy{
73874		ServerResponse: googleapi.ServerResponse{
73875			Header:         res.Header,
73876			HTTPStatusCode: res.StatusCode,
73877		},
73878	}
73879	target := &ret
73880	if err := gensupport.DecodeResponse(target, res); err != nil {
73881		return nil, err
73882	}
73883	return ret, nil
73884	// {
73885	//   "description": "Returns the specified TargetHttpsProxy resource. Gets a list of available target HTTPS proxies by making a list() request.",
73886	//   "httpMethod": "GET",
73887	//   "id": "compute.targetHttpsProxies.get",
73888	//   "parameterOrder": [
73889	//     "project",
73890	//     "targetHttpsProxy"
73891	//   ],
73892	//   "parameters": {
73893	//     "project": {
73894	//       "description": "Project ID for this request.",
73895	//       "location": "path",
73896	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73897	//       "required": true,
73898	//       "type": "string"
73899	//     },
73900	//     "targetHttpsProxy": {
73901	//       "description": "Name of the TargetHttpsProxy resource to return.",
73902	//       "location": "path",
73903	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73904	//       "required": true,
73905	//       "type": "string"
73906	//     }
73907	//   },
73908	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}",
73909	//   "response": {
73910	//     "$ref": "TargetHttpsProxy"
73911	//   },
73912	//   "scopes": [
73913	//     "https://www.googleapis.com/auth/cloud-platform",
73914	//     "https://www.googleapis.com/auth/compute",
73915	//     "https://www.googleapis.com/auth/compute.readonly"
73916	//   ]
73917	// }
73918
73919}
73920
73921// method id "compute.targetHttpsProxies.insert":
73922
73923type TargetHttpsProxiesInsertCall struct {
73924	s                *Service
73925	project          string
73926	targethttpsproxy *TargetHttpsProxy
73927	urlParams_       gensupport.URLParams
73928	ctx_             context.Context
73929	header_          http.Header
73930}
73931
73932// Insert: Creates a TargetHttpsProxy resource in the specified project
73933// using the data included in the request.
73934func (r *TargetHttpsProxiesService) Insert(project string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesInsertCall {
73935	c := &TargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73936	c.project = project
73937	c.targethttpsproxy = targethttpsproxy
73938	return c
73939}
73940
73941// RequestId sets the optional parameter "requestId": An optional
73942// request ID to identify requests. Specify a unique request ID so that
73943// if you must retry your request, the server will know to ignore the
73944// request if it has already been completed.
73945//
73946// For example, consider a situation where you make an initial request
73947// and the request times out. If you make the request again with the
73948// same request ID, the server can check if original operation with the
73949// same request ID was received, and if so, will ignore the second
73950// request. This prevents clients from accidentally creating duplicate
73951// commitments.
73952//
73953// The request ID must be a valid UUID with the exception that zero UUID
73954// is not supported (00000000-0000-0000-0000-000000000000).
73955func (c *TargetHttpsProxiesInsertCall) RequestId(requestId string) *TargetHttpsProxiesInsertCall {
73956	c.urlParams_.Set("requestId", requestId)
73957	return c
73958}
73959
73960// Fields allows partial responses to be retrieved. See
73961// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73962// for more information.
73963func (c *TargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesInsertCall {
73964	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73965	return c
73966}
73967
73968// Context sets the context to be used in this call's Do method. Any
73969// pending HTTP request will be aborted if the provided context is
73970// canceled.
73971func (c *TargetHttpsProxiesInsertCall) Context(ctx context.Context) *TargetHttpsProxiesInsertCall {
73972	c.ctx_ = ctx
73973	return c
73974}
73975
73976// Header returns an http.Header that can be modified by the caller to
73977// add HTTP headers to the request.
73978func (c *TargetHttpsProxiesInsertCall) Header() http.Header {
73979	if c.header_ == nil {
73980		c.header_ = make(http.Header)
73981	}
73982	return c.header_
73983}
73984
73985func (c *TargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
73986	reqHeaders := make(http.Header)
73987	for k, v := range c.header_ {
73988		reqHeaders[k] = v
73989	}
73990	reqHeaders.Set("User-Agent", c.s.userAgent())
73991	var body io.Reader = nil
73992	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
73993	if err != nil {
73994		return nil, err
73995	}
73996	reqHeaders.Set("Content-Type", "application/json")
73997	c.urlParams_.Set("alt", alt)
73998	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies")
73999	urls += "?" + c.urlParams_.Encode()
74000	req, _ := http.NewRequest("POST", urls, body)
74001	req.Header = reqHeaders
74002	googleapi.Expand(req.URL, map[string]string{
74003		"project": c.project,
74004	})
74005	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74006}
74007
74008// Do executes the "compute.targetHttpsProxies.insert" call.
74009// Exactly one of *Operation or error will be non-nil. Any non-2xx
74010// status code is an error. Response headers are in either
74011// *Operation.ServerResponse.Header or (if a response was returned at
74012// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74013// to check whether the returned error was because
74014// http.StatusNotModified was returned.
74015func (c *TargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74016	gensupport.SetOptions(c.urlParams_, opts...)
74017	res, err := c.doRequest("json")
74018	if res != nil && res.StatusCode == http.StatusNotModified {
74019		if res.Body != nil {
74020			res.Body.Close()
74021		}
74022		return nil, &googleapi.Error{
74023			Code:   res.StatusCode,
74024			Header: res.Header,
74025		}
74026	}
74027	if err != nil {
74028		return nil, err
74029	}
74030	defer googleapi.CloseBody(res)
74031	if err := googleapi.CheckResponse(res); err != nil {
74032		return nil, err
74033	}
74034	ret := &Operation{
74035		ServerResponse: googleapi.ServerResponse{
74036			Header:         res.Header,
74037			HTTPStatusCode: res.StatusCode,
74038		},
74039	}
74040	target := &ret
74041	if err := gensupport.DecodeResponse(target, res); err != nil {
74042		return nil, err
74043	}
74044	return ret, nil
74045	// {
74046	//   "description": "Creates a TargetHttpsProxy resource in the specified project using the data included in the request.",
74047	//   "httpMethod": "POST",
74048	//   "id": "compute.targetHttpsProxies.insert",
74049	//   "parameterOrder": [
74050	//     "project"
74051	//   ],
74052	//   "parameters": {
74053	//     "project": {
74054	//       "description": "Project ID for this request.",
74055	//       "location": "path",
74056	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74057	//       "required": true,
74058	//       "type": "string"
74059	//     },
74060	//     "requestId": {
74061	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74062	//       "location": "query",
74063	//       "type": "string"
74064	//     }
74065	//   },
74066	//   "path": "{project}/global/targetHttpsProxies",
74067	//   "request": {
74068	//     "$ref": "TargetHttpsProxy"
74069	//   },
74070	//   "response": {
74071	//     "$ref": "Operation"
74072	//   },
74073	//   "scopes": [
74074	//     "https://www.googleapis.com/auth/cloud-platform",
74075	//     "https://www.googleapis.com/auth/compute"
74076	//   ]
74077	// }
74078
74079}
74080
74081// method id "compute.targetHttpsProxies.list":
74082
74083type TargetHttpsProxiesListCall struct {
74084	s            *Service
74085	project      string
74086	urlParams_   gensupport.URLParams
74087	ifNoneMatch_ string
74088	ctx_         context.Context
74089	header_      http.Header
74090}
74091
74092// List: Retrieves the list of TargetHttpsProxy resources available to
74093// the specified project.
74094func (r *TargetHttpsProxiesService) List(project string) *TargetHttpsProxiesListCall {
74095	c := &TargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74096	c.project = project
74097	return c
74098}
74099
74100// Filter sets the optional parameter "filter": A filter expression that
74101// filters resources listed in the response. The expression must specify
74102// the field name, a comparison operator, and the value that you want to
74103// use for filtering. The value must be a string, a number, or a
74104// boolean. The comparison operator must be either =, !=, >, or <.
74105//
74106// For example, if you are filtering Compute Engine instances, you can
74107// exclude instances named example-instance by specifying name !=
74108// example-instance.
74109//
74110// You can also filter nested fields. For example, you could specify
74111// scheduling.automaticRestart = false to include instances only if they
74112// are not scheduled for automatic restarts. You can use filtering on
74113// nested fields to filter based on resource labels.
74114//
74115// To filter on multiple expressions, provide each separate expression
74116// within parentheses. For example, (scheduling.automaticRestart = true)
74117// (cpuPlatform = "Intel Skylake"). By default, each expression is an
74118// AND expression. However, you can include AND and OR expressions
74119// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
74120// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
74121// true).
74122func (c *TargetHttpsProxiesListCall) Filter(filter string) *TargetHttpsProxiesListCall {
74123	c.urlParams_.Set("filter", filter)
74124	return c
74125}
74126
74127// MaxResults sets the optional parameter "maxResults": The maximum
74128// number of results per page that should be returned. If the number of
74129// available results is larger than maxResults, Compute Engine returns a
74130// nextPageToken that can be used to get the next page of results in
74131// subsequent list requests. Acceptable values are 0 to 500, inclusive.
74132// (Default: 500)
74133func (c *TargetHttpsProxiesListCall) MaxResults(maxResults int64) *TargetHttpsProxiesListCall {
74134	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
74135	return c
74136}
74137
74138// OrderBy sets the optional parameter "orderBy": Sorts list results by
74139// a certain order. By default, results are returned in alphanumerical
74140// order based on the resource name.
74141//
74142// You can also sort results in descending order based on the creation
74143// timestamp using orderBy="creationTimestamp desc". This sorts results
74144// based on the creationTimestamp field in reverse chronological order
74145// (newest result first). Use this to sort resources like operations so
74146// that the newest operation is returned first.
74147//
74148// Currently, only sorting by name or creationTimestamp desc is
74149// supported.
74150func (c *TargetHttpsProxiesListCall) OrderBy(orderBy string) *TargetHttpsProxiesListCall {
74151	c.urlParams_.Set("orderBy", orderBy)
74152	return c
74153}
74154
74155// PageToken sets the optional parameter "pageToken": Specifies a page
74156// token to use. Set pageToken to the nextPageToken returned by a
74157// previous list request to get the next page of results.
74158func (c *TargetHttpsProxiesListCall) PageToken(pageToken string) *TargetHttpsProxiesListCall {
74159	c.urlParams_.Set("pageToken", pageToken)
74160	return c
74161}
74162
74163// Fields allows partial responses to be retrieved. See
74164// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74165// for more information.
74166func (c *TargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesListCall {
74167	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74168	return c
74169}
74170
74171// IfNoneMatch sets the optional parameter which makes the operation
74172// fail if the object's ETag matches the given value. This is useful for
74173// getting updates only after the object has changed since the last
74174// request. Use googleapi.IsNotModified to check whether the response
74175// error from Do is the result of In-None-Match.
74176func (c *TargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesListCall {
74177	c.ifNoneMatch_ = entityTag
74178	return c
74179}
74180
74181// Context sets the context to be used in this call's Do method. Any
74182// pending HTTP request will be aborted if the provided context is
74183// canceled.
74184func (c *TargetHttpsProxiesListCall) Context(ctx context.Context) *TargetHttpsProxiesListCall {
74185	c.ctx_ = ctx
74186	return c
74187}
74188
74189// Header returns an http.Header that can be modified by the caller to
74190// add HTTP headers to the request.
74191func (c *TargetHttpsProxiesListCall) Header() http.Header {
74192	if c.header_ == nil {
74193		c.header_ = make(http.Header)
74194	}
74195	return c.header_
74196}
74197
74198func (c *TargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
74199	reqHeaders := make(http.Header)
74200	for k, v := range c.header_ {
74201		reqHeaders[k] = v
74202	}
74203	reqHeaders.Set("User-Agent", c.s.userAgent())
74204	if c.ifNoneMatch_ != "" {
74205		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74206	}
74207	var body io.Reader = nil
74208	c.urlParams_.Set("alt", alt)
74209	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies")
74210	urls += "?" + c.urlParams_.Encode()
74211	req, _ := http.NewRequest("GET", urls, body)
74212	req.Header = reqHeaders
74213	googleapi.Expand(req.URL, map[string]string{
74214		"project": c.project,
74215	})
74216	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74217}
74218
74219// Do executes the "compute.targetHttpsProxies.list" call.
74220// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
74221// non-2xx status code is an error. Response headers are in either
74222// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
74223// returned at all) in error.(*googleapi.Error).Header. Use
74224// googleapi.IsNotModified to check whether the returned error was
74225// because http.StatusNotModified was returned.
74226func (c *TargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
74227	gensupport.SetOptions(c.urlParams_, opts...)
74228	res, err := c.doRequest("json")
74229	if res != nil && res.StatusCode == http.StatusNotModified {
74230		if res.Body != nil {
74231			res.Body.Close()
74232		}
74233		return nil, &googleapi.Error{
74234			Code:   res.StatusCode,
74235			Header: res.Header,
74236		}
74237	}
74238	if err != nil {
74239		return nil, err
74240	}
74241	defer googleapi.CloseBody(res)
74242	if err := googleapi.CheckResponse(res); err != nil {
74243		return nil, err
74244	}
74245	ret := &TargetHttpsProxyList{
74246		ServerResponse: googleapi.ServerResponse{
74247			Header:         res.Header,
74248			HTTPStatusCode: res.StatusCode,
74249		},
74250	}
74251	target := &ret
74252	if err := gensupport.DecodeResponse(target, res); err != nil {
74253		return nil, err
74254	}
74255	return ret, nil
74256	// {
74257	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project.",
74258	//   "httpMethod": "GET",
74259	//   "id": "compute.targetHttpsProxies.list",
74260	//   "parameterOrder": [
74261	//     "project"
74262	//   ],
74263	//   "parameters": {
74264	//     "filter": {
74265	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
74266	//       "location": "query",
74267	//       "type": "string"
74268	//     },
74269	//     "maxResults": {
74270	//       "default": "500",
74271	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
74272	//       "format": "uint32",
74273	//       "location": "query",
74274	//       "minimum": "0",
74275	//       "type": "integer"
74276	//     },
74277	//     "orderBy": {
74278	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
74279	//       "location": "query",
74280	//       "type": "string"
74281	//     },
74282	//     "pageToken": {
74283	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
74284	//       "location": "query",
74285	//       "type": "string"
74286	//     },
74287	//     "project": {
74288	//       "description": "Project ID for this request.",
74289	//       "location": "path",
74290	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74291	//       "required": true,
74292	//       "type": "string"
74293	//     }
74294	//   },
74295	//   "path": "{project}/global/targetHttpsProxies",
74296	//   "response": {
74297	//     "$ref": "TargetHttpsProxyList"
74298	//   },
74299	//   "scopes": [
74300	//     "https://www.googleapis.com/auth/cloud-platform",
74301	//     "https://www.googleapis.com/auth/compute",
74302	//     "https://www.googleapis.com/auth/compute.readonly"
74303	//   ]
74304	// }
74305
74306}
74307
74308// Pages invokes f for each page of results.
74309// A non-nil error returned from f will halt the iteration.
74310// The provided context supersedes any context provided to the Context method.
74311func (c *TargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
74312	c.ctx_ = ctx
74313	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
74314	for {
74315		x, err := c.Do()
74316		if err != nil {
74317			return err
74318		}
74319		if err := f(x); err != nil {
74320			return err
74321		}
74322		if x.NextPageToken == "" {
74323			return nil
74324		}
74325		c.PageToken(x.NextPageToken)
74326	}
74327}
74328
74329// method id "compute.targetHttpsProxies.setSslCertificates":
74330
74331type TargetHttpsProxiesSetSslCertificatesCall struct {
74332	s                                           *Service
74333	project                                     string
74334	targetHttpsProxy                            string
74335	targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest
74336	urlParams_                                  gensupport.URLParams
74337	ctx_                                        context.Context
74338	header_                                     http.Header
74339}
74340
74341// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
74342func (r *TargetHttpsProxiesService) SetSslCertificates(project string, targetHttpsProxy string, targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest) *TargetHttpsProxiesSetSslCertificatesCall {
74343	c := &TargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74344	c.project = project
74345	c.targetHttpsProxy = targetHttpsProxy
74346	c.targethttpsproxiessetsslcertificatesrequest = targethttpsproxiessetsslcertificatesrequest
74347	return c
74348}
74349
74350// RequestId sets the optional parameter "requestId": An optional
74351// request ID to identify requests. Specify a unique request ID so that
74352// if you must retry your request, the server will know to ignore the
74353// request if it has already been completed.
74354//
74355// For example, consider a situation where you make an initial request
74356// and the request times out. If you make the request again with the
74357// same request ID, the server can check if original operation with the
74358// same request ID was received, and if so, will ignore the second
74359// request. This prevents clients from accidentally creating duplicate
74360// commitments.
74361//
74362// The request ID must be a valid UUID with the exception that zero UUID
74363// is not supported (00000000-0000-0000-0000-000000000000).
74364func (c *TargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetHttpsProxiesSetSslCertificatesCall {
74365	c.urlParams_.Set("requestId", requestId)
74366	return c
74367}
74368
74369// Fields allows partial responses to be retrieved. See
74370// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74371// for more information.
74372func (c *TargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslCertificatesCall {
74373	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74374	return c
74375}
74376
74377// Context sets the context to be used in this call's Do method. Any
74378// pending HTTP request will be aborted if the provided context is
74379// canceled.
74380func (c *TargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslCertificatesCall {
74381	c.ctx_ = ctx
74382	return c
74383}
74384
74385// Header returns an http.Header that can be modified by the caller to
74386// add HTTP headers to the request.
74387func (c *TargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
74388	if c.header_ == nil {
74389		c.header_ = make(http.Header)
74390	}
74391	return c.header_
74392}
74393
74394func (c *TargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
74395	reqHeaders := make(http.Header)
74396	for k, v := range c.header_ {
74397		reqHeaders[k] = v
74398	}
74399	reqHeaders.Set("User-Agent", c.s.userAgent())
74400	var body io.Reader = nil
74401	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetsslcertificatesrequest)
74402	if err != nil {
74403		return nil, err
74404	}
74405	reqHeaders.Set("Content-Type", "application/json")
74406	c.urlParams_.Set("alt", alt)
74407	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
74408	urls += "?" + c.urlParams_.Encode()
74409	req, _ := http.NewRequest("POST", urls, body)
74410	req.Header = reqHeaders
74411	googleapi.Expand(req.URL, map[string]string{
74412		"project":          c.project,
74413		"targetHttpsProxy": c.targetHttpsProxy,
74414	})
74415	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74416}
74417
74418// Do executes the "compute.targetHttpsProxies.setSslCertificates" call.
74419// Exactly one of *Operation or error will be non-nil. Any non-2xx
74420// status code is an error. Response headers are in either
74421// *Operation.ServerResponse.Header or (if a response was returned at
74422// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74423// to check whether the returned error was because
74424// http.StatusNotModified was returned.
74425func (c *TargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74426	gensupport.SetOptions(c.urlParams_, opts...)
74427	res, err := c.doRequest("json")
74428	if res != nil && res.StatusCode == http.StatusNotModified {
74429		if res.Body != nil {
74430			res.Body.Close()
74431		}
74432		return nil, &googleapi.Error{
74433			Code:   res.StatusCode,
74434			Header: res.Header,
74435		}
74436	}
74437	if err != nil {
74438		return nil, err
74439	}
74440	defer googleapi.CloseBody(res)
74441	if err := googleapi.CheckResponse(res); err != nil {
74442		return nil, err
74443	}
74444	ret := &Operation{
74445		ServerResponse: googleapi.ServerResponse{
74446			Header:         res.Header,
74447			HTTPStatusCode: res.StatusCode,
74448		},
74449	}
74450	target := &ret
74451	if err := gensupport.DecodeResponse(target, res); err != nil {
74452		return nil, err
74453	}
74454	return ret, nil
74455	// {
74456	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
74457	//   "httpMethod": "POST",
74458	//   "id": "compute.targetHttpsProxies.setSslCertificates",
74459	//   "parameterOrder": [
74460	//     "project",
74461	//     "targetHttpsProxy"
74462	//   ],
74463	//   "parameters": {
74464	//     "project": {
74465	//       "description": "Project ID for this request.",
74466	//       "location": "path",
74467	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74468	//       "required": true,
74469	//       "type": "string"
74470	//     },
74471	//     "requestId": {
74472	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74473	//       "location": "query",
74474	//       "type": "string"
74475	//     },
74476	//     "targetHttpsProxy": {
74477	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
74478	//       "location": "path",
74479	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
74480	//       "required": true,
74481	//       "type": "string"
74482	//     }
74483	//   },
74484	//   "path": "{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
74485	//   "request": {
74486	//     "$ref": "TargetHttpsProxiesSetSslCertificatesRequest"
74487	//   },
74488	//   "response": {
74489	//     "$ref": "Operation"
74490	//   },
74491	//   "scopes": [
74492	//     "https://www.googleapis.com/auth/cloud-platform",
74493	//     "https://www.googleapis.com/auth/compute"
74494	//   ]
74495	// }
74496
74497}
74498
74499// method id "compute.targetHttpsProxies.setSslPolicy":
74500
74501type TargetHttpsProxiesSetSslPolicyCall struct {
74502	s                  *Service
74503	project            string
74504	targetHttpsProxy   string
74505	sslpolicyreference *SslPolicyReference
74506	urlParams_         gensupport.URLParams
74507	ctx_               context.Context
74508	header_            http.Header
74509}
74510
74511// SetSslPolicy: Sets the SSL policy for TargetHttpsProxy. The SSL
74512// policy specifies the server-side support for SSL features. This
74513// affects connections between clients and the HTTPS proxy load
74514// balancer. They do not affect the connection between the load balancer
74515// and the backends.
74516func (r *TargetHttpsProxiesService) SetSslPolicy(project string, targetHttpsProxy string, sslpolicyreference *SslPolicyReference) *TargetHttpsProxiesSetSslPolicyCall {
74517	c := &TargetHttpsProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74518	c.project = project
74519	c.targetHttpsProxy = targetHttpsProxy
74520	c.sslpolicyreference = sslpolicyreference
74521	return c
74522}
74523
74524// RequestId sets the optional parameter "requestId": An optional
74525// request ID to identify requests. Specify a unique request ID so that
74526// if you must retry your request, the server will know to ignore the
74527// request if it has already been completed.
74528//
74529// For example, consider a situation where you make an initial request
74530// and the request times out. If you make the request again with the
74531// same request ID, the server can check if original operation with the
74532// same request ID was received, and if so, will ignore the second
74533// request. This prevents clients from accidentally creating duplicate
74534// commitments.
74535//
74536// The request ID must be a valid UUID with the exception that zero UUID
74537// is not supported (00000000-0000-0000-0000-000000000000).
74538func (c *TargetHttpsProxiesSetSslPolicyCall) RequestId(requestId string) *TargetHttpsProxiesSetSslPolicyCall {
74539	c.urlParams_.Set("requestId", requestId)
74540	return c
74541}
74542
74543// Fields allows partial responses to be retrieved. See
74544// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74545// for more information.
74546func (c *TargetHttpsProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslPolicyCall {
74547	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74548	return c
74549}
74550
74551// Context sets the context to be used in this call's Do method. Any
74552// pending HTTP request will be aborted if the provided context is
74553// canceled.
74554func (c *TargetHttpsProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslPolicyCall {
74555	c.ctx_ = ctx
74556	return c
74557}
74558
74559// Header returns an http.Header that can be modified by the caller to
74560// add HTTP headers to the request.
74561func (c *TargetHttpsProxiesSetSslPolicyCall) Header() http.Header {
74562	if c.header_ == nil {
74563		c.header_ = make(http.Header)
74564	}
74565	return c.header_
74566}
74567
74568func (c *TargetHttpsProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
74569	reqHeaders := make(http.Header)
74570	for k, v := range c.header_ {
74571		reqHeaders[k] = v
74572	}
74573	reqHeaders.Set("User-Agent", c.s.userAgent())
74574	var body io.Reader = nil
74575	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
74576	if err != nil {
74577		return nil, err
74578	}
74579	reqHeaders.Set("Content-Type", "application/json")
74580	c.urlParams_.Set("alt", alt)
74581	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy")
74582	urls += "?" + c.urlParams_.Encode()
74583	req, _ := http.NewRequest("POST", urls, body)
74584	req.Header = reqHeaders
74585	googleapi.Expand(req.URL, map[string]string{
74586		"project":          c.project,
74587		"targetHttpsProxy": c.targetHttpsProxy,
74588	})
74589	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74590}
74591
74592// Do executes the "compute.targetHttpsProxies.setSslPolicy" call.
74593// Exactly one of *Operation or error will be non-nil. Any non-2xx
74594// status code is an error. Response headers are in either
74595// *Operation.ServerResponse.Header or (if a response was returned at
74596// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74597// to check whether the returned error was because
74598// http.StatusNotModified was returned.
74599func (c *TargetHttpsProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74600	gensupport.SetOptions(c.urlParams_, opts...)
74601	res, err := c.doRequest("json")
74602	if res != nil && res.StatusCode == http.StatusNotModified {
74603		if res.Body != nil {
74604			res.Body.Close()
74605		}
74606		return nil, &googleapi.Error{
74607			Code:   res.StatusCode,
74608			Header: res.Header,
74609		}
74610	}
74611	if err != nil {
74612		return nil, err
74613	}
74614	defer googleapi.CloseBody(res)
74615	if err := googleapi.CheckResponse(res); err != nil {
74616		return nil, err
74617	}
74618	ret := &Operation{
74619		ServerResponse: googleapi.ServerResponse{
74620			Header:         res.Header,
74621			HTTPStatusCode: res.StatusCode,
74622		},
74623	}
74624	target := &ret
74625	if err := gensupport.DecodeResponse(target, res); err != nil {
74626		return nil, err
74627	}
74628	return ret, nil
74629	// {
74630	//   "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.",
74631	//   "httpMethod": "POST",
74632	//   "id": "compute.targetHttpsProxies.setSslPolicy",
74633	//   "parameterOrder": [
74634	//     "project",
74635	//     "targetHttpsProxy"
74636	//   ],
74637	//   "parameters": {
74638	//     "project": {
74639	//       "description": "Project ID for this request.",
74640	//       "location": "path",
74641	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74642	//       "required": true,
74643	//       "type": "string"
74644	//     },
74645	//     "requestId": {
74646	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74647	//       "location": "query",
74648	//       "type": "string"
74649	//     },
74650	//     "targetHttpsProxy": {
74651	//       "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.",
74652	//       "location": "path",
74653	//       "required": true,
74654	//       "type": "string"
74655	//     }
74656	//   },
74657	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy",
74658	//   "request": {
74659	//     "$ref": "SslPolicyReference"
74660	//   },
74661	//   "response": {
74662	//     "$ref": "Operation"
74663	//   },
74664	//   "scopes": [
74665	//     "https://www.googleapis.com/auth/cloud-platform",
74666	//     "https://www.googleapis.com/auth/compute"
74667	//   ]
74668	// }
74669
74670}
74671
74672// method id "compute.targetHttpsProxies.setUrlMap":
74673
74674type TargetHttpsProxiesSetUrlMapCall struct {
74675	s                *Service
74676	project          string
74677	targetHttpsProxy string
74678	urlmapreference  *UrlMapReference
74679	urlParams_       gensupport.URLParams
74680	ctx_             context.Context
74681	header_          http.Header
74682}
74683
74684// SetUrlMap: Changes the URL map for TargetHttpsProxy.
74685func (r *TargetHttpsProxiesService) SetUrlMap(project string, targetHttpsProxy string, urlmapreference *UrlMapReference) *TargetHttpsProxiesSetUrlMapCall {
74686	c := &TargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74687	c.project = project
74688	c.targetHttpsProxy = targetHttpsProxy
74689	c.urlmapreference = urlmapreference
74690	return c
74691}
74692
74693// RequestId sets the optional parameter "requestId": An optional
74694// request ID to identify requests. Specify a unique request ID so that
74695// if you must retry your request, the server will know to ignore the
74696// request if it has already been completed.
74697//
74698// For example, consider a situation where you make an initial request
74699// and the request times out. If you make the request again with the
74700// same request ID, the server can check if original operation with the
74701// same request ID was received, and if so, will ignore the second
74702// request. This prevents clients from accidentally creating duplicate
74703// commitments.
74704//
74705// The request ID must be a valid UUID with the exception that zero UUID
74706// is not supported (00000000-0000-0000-0000-000000000000).
74707func (c *TargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpsProxiesSetUrlMapCall {
74708	c.urlParams_.Set("requestId", requestId)
74709	return c
74710}
74711
74712// Fields allows partial responses to be retrieved. See
74713// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74714// for more information.
74715func (c *TargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetUrlMapCall {
74716	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74717	return c
74718}
74719
74720// Context sets the context to be used in this call's Do method. Any
74721// pending HTTP request will be aborted if the provided context is
74722// canceled.
74723func (c *TargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpsProxiesSetUrlMapCall {
74724	c.ctx_ = ctx
74725	return c
74726}
74727
74728// Header returns an http.Header that can be modified by the caller to
74729// add HTTP headers to the request.
74730func (c *TargetHttpsProxiesSetUrlMapCall) Header() http.Header {
74731	if c.header_ == nil {
74732		c.header_ = make(http.Header)
74733	}
74734	return c.header_
74735}
74736
74737func (c *TargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
74738	reqHeaders := make(http.Header)
74739	for k, v := range c.header_ {
74740		reqHeaders[k] = v
74741	}
74742	reqHeaders.Set("User-Agent", c.s.userAgent())
74743	var body io.Reader = nil
74744	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
74745	if err != nil {
74746		return nil, err
74747	}
74748	reqHeaders.Set("Content-Type", "application/json")
74749	c.urlParams_.Set("alt", alt)
74750	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
74751	urls += "?" + c.urlParams_.Encode()
74752	req, _ := http.NewRequest("POST", urls, body)
74753	req.Header = reqHeaders
74754	googleapi.Expand(req.URL, map[string]string{
74755		"project":          c.project,
74756		"targetHttpsProxy": c.targetHttpsProxy,
74757	})
74758	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74759}
74760
74761// Do executes the "compute.targetHttpsProxies.setUrlMap" call.
74762// Exactly one of *Operation or error will be non-nil. Any non-2xx
74763// status code is an error. Response headers are in either
74764// *Operation.ServerResponse.Header or (if a response was returned at
74765// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74766// to check whether the returned error was because
74767// http.StatusNotModified was returned.
74768func (c *TargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74769	gensupport.SetOptions(c.urlParams_, opts...)
74770	res, err := c.doRequest("json")
74771	if res != nil && res.StatusCode == http.StatusNotModified {
74772		if res.Body != nil {
74773			res.Body.Close()
74774		}
74775		return nil, &googleapi.Error{
74776			Code:   res.StatusCode,
74777			Header: res.Header,
74778		}
74779	}
74780	if err != nil {
74781		return nil, err
74782	}
74783	defer googleapi.CloseBody(res)
74784	if err := googleapi.CheckResponse(res); err != nil {
74785		return nil, err
74786	}
74787	ret := &Operation{
74788		ServerResponse: googleapi.ServerResponse{
74789			Header:         res.Header,
74790			HTTPStatusCode: res.StatusCode,
74791		},
74792	}
74793	target := &ret
74794	if err := gensupport.DecodeResponse(target, res); err != nil {
74795		return nil, err
74796	}
74797	return ret, nil
74798	// {
74799	//   "description": "Changes the URL map for TargetHttpsProxy.",
74800	//   "httpMethod": "POST",
74801	//   "id": "compute.targetHttpsProxies.setUrlMap",
74802	//   "parameterOrder": [
74803	//     "project",
74804	//     "targetHttpsProxy"
74805	//   ],
74806	//   "parameters": {
74807	//     "project": {
74808	//       "description": "Project ID for this request.",
74809	//       "location": "path",
74810	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74811	//       "required": true,
74812	//       "type": "string"
74813	//     },
74814	//     "requestId": {
74815	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74816	//       "location": "query",
74817	//       "type": "string"
74818	//     },
74819	//     "targetHttpsProxy": {
74820	//       "description": "Name of the TargetHttpsProxy resource whose URL map is to be set.",
74821	//       "location": "path",
74822	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
74823	//       "required": true,
74824	//       "type": "string"
74825	//     }
74826	//   },
74827	//   "path": "{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
74828	//   "request": {
74829	//     "$ref": "UrlMapReference"
74830	//   },
74831	//   "response": {
74832	//     "$ref": "Operation"
74833	//   },
74834	//   "scopes": [
74835	//     "https://www.googleapis.com/auth/cloud-platform",
74836	//     "https://www.googleapis.com/auth/compute"
74837	//   ]
74838	// }
74839
74840}
74841
74842// method id "compute.targetInstances.aggregatedList":
74843
74844type TargetInstancesAggregatedListCall struct {
74845	s            *Service
74846	project      string
74847	urlParams_   gensupport.URLParams
74848	ifNoneMatch_ string
74849	ctx_         context.Context
74850	header_      http.Header
74851}
74852
74853// AggregatedList: Retrieves an aggregated list of target instances.
74854// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/aggregatedList
74855func (r *TargetInstancesService) AggregatedList(project string) *TargetInstancesAggregatedListCall {
74856	c := &TargetInstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74857	c.project = project
74858	return c
74859}
74860
74861// Filter sets the optional parameter "filter": A filter expression that
74862// filters resources listed in the response. The expression must specify
74863// the field name, a comparison operator, and the value that you want to
74864// use for filtering. The value must be a string, a number, or a
74865// boolean. The comparison operator must be either =, !=, >, or <.
74866//
74867// For example, if you are filtering Compute Engine instances, you can
74868// exclude instances named example-instance by specifying name !=
74869// example-instance.
74870//
74871// You can also filter nested fields. For example, you could specify
74872// scheduling.automaticRestart = false to include instances only if they
74873// are not scheduled for automatic restarts. You can use filtering on
74874// nested fields to filter based on resource labels.
74875//
74876// To filter on multiple expressions, provide each separate expression
74877// within parentheses. For example, (scheduling.automaticRestart = true)
74878// (cpuPlatform = "Intel Skylake"). By default, each expression is an
74879// AND expression. However, you can include AND and OR expressions
74880// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
74881// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
74882// true).
74883func (c *TargetInstancesAggregatedListCall) Filter(filter string) *TargetInstancesAggregatedListCall {
74884	c.urlParams_.Set("filter", filter)
74885	return c
74886}
74887
74888// MaxResults sets the optional parameter "maxResults": The maximum
74889// number of results per page that should be returned. If the number of
74890// available results is larger than maxResults, Compute Engine returns a
74891// nextPageToken that can be used to get the next page of results in
74892// subsequent list requests. Acceptable values are 0 to 500, inclusive.
74893// (Default: 500)
74894func (c *TargetInstancesAggregatedListCall) MaxResults(maxResults int64) *TargetInstancesAggregatedListCall {
74895	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
74896	return c
74897}
74898
74899// OrderBy sets the optional parameter "orderBy": Sorts list results by
74900// a certain order. By default, results are returned in alphanumerical
74901// order based on the resource name.
74902//
74903// You can also sort results in descending order based on the creation
74904// timestamp using orderBy="creationTimestamp desc". This sorts results
74905// based on the creationTimestamp field in reverse chronological order
74906// (newest result first). Use this to sort resources like operations so
74907// that the newest operation is returned first.
74908//
74909// Currently, only sorting by name or creationTimestamp desc is
74910// supported.
74911func (c *TargetInstancesAggregatedListCall) OrderBy(orderBy string) *TargetInstancesAggregatedListCall {
74912	c.urlParams_.Set("orderBy", orderBy)
74913	return c
74914}
74915
74916// PageToken sets the optional parameter "pageToken": Specifies a page
74917// token to use. Set pageToken to the nextPageToken returned by a
74918// previous list request to get the next page of results.
74919func (c *TargetInstancesAggregatedListCall) PageToken(pageToken string) *TargetInstancesAggregatedListCall {
74920	c.urlParams_.Set("pageToken", pageToken)
74921	return c
74922}
74923
74924// Fields allows partial responses to be retrieved. See
74925// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74926// for more information.
74927func (c *TargetInstancesAggregatedListCall) Fields(s ...googleapi.Field) *TargetInstancesAggregatedListCall {
74928	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74929	return c
74930}
74931
74932// IfNoneMatch sets the optional parameter which makes the operation
74933// fail if the object's ETag matches the given value. This is useful for
74934// getting updates only after the object has changed since the last
74935// request. Use googleapi.IsNotModified to check whether the response
74936// error from Do is the result of In-None-Match.
74937func (c *TargetInstancesAggregatedListCall) IfNoneMatch(entityTag string) *TargetInstancesAggregatedListCall {
74938	c.ifNoneMatch_ = entityTag
74939	return c
74940}
74941
74942// Context sets the context to be used in this call's Do method. Any
74943// pending HTTP request will be aborted if the provided context is
74944// canceled.
74945func (c *TargetInstancesAggregatedListCall) Context(ctx context.Context) *TargetInstancesAggregatedListCall {
74946	c.ctx_ = ctx
74947	return c
74948}
74949
74950// Header returns an http.Header that can be modified by the caller to
74951// add HTTP headers to the request.
74952func (c *TargetInstancesAggregatedListCall) Header() http.Header {
74953	if c.header_ == nil {
74954		c.header_ = make(http.Header)
74955	}
74956	return c.header_
74957}
74958
74959func (c *TargetInstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
74960	reqHeaders := make(http.Header)
74961	for k, v := range c.header_ {
74962		reqHeaders[k] = v
74963	}
74964	reqHeaders.Set("User-Agent", c.s.userAgent())
74965	if c.ifNoneMatch_ != "" {
74966		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74967	}
74968	var body io.Reader = nil
74969	c.urlParams_.Set("alt", alt)
74970	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetInstances")
74971	urls += "?" + c.urlParams_.Encode()
74972	req, _ := http.NewRequest("GET", urls, body)
74973	req.Header = reqHeaders
74974	googleapi.Expand(req.URL, map[string]string{
74975		"project": c.project,
74976	})
74977	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74978}
74979
74980// Do executes the "compute.targetInstances.aggregatedList" call.
74981// Exactly one of *TargetInstanceAggregatedList or error will be
74982// non-nil. Any non-2xx status code is an error. Response headers are in
74983// either *TargetInstanceAggregatedList.ServerResponse.Header or (if a
74984// response was returned at all) in error.(*googleapi.Error).Header. Use
74985// googleapi.IsNotModified to check whether the returned error was
74986// because http.StatusNotModified was returned.
74987func (c *TargetInstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceAggregatedList, error) {
74988	gensupport.SetOptions(c.urlParams_, opts...)
74989	res, err := c.doRequest("json")
74990	if res != nil && res.StatusCode == http.StatusNotModified {
74991		if res.Body != nil {
74992			res.Body.Close()
74993		}
74994		return nil, &googleapi.Error{
74995			Code:   res.StatusCode,
74996			Header: res.Header,
74997		}
74998	}
74999	if err != nil {
75000		return nil, err
75001	}
75002	defer googleapi.CloseBody(res)
75003	if err := googleapi.CheckResponse(res); err != nil {
75004		return nil, err
75005	}
75006	ret := &TargetInstanceAggregatedList{
75007		ServerResponse: googleapi.ServerResponse{
75008			Header:         res.Header,
75009			HTTPStatusCode: res.StatusCode,
75010		},
75011	}
75012	target := &ret
75013	if err := gensupport.DecodeResponse(target, res); err != nil {
75014		return nil, err
75015	}
75016	return ret, nil
75017	// {
75018	//   "description": "Retrieves an aggregated list of target instances.",
75019	//   "httpMethod": "GET",
75020	//   "id": "compute.targetInstances.aggregatedList",
75021	//   "parameterOrder": [
75022	//     "project"
75023	//   ],
75024	//   "parameters": {
75025	//     "filter": {
75026	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
75027	//       "location": "query",
75028	//       "type": "string"
75029	//     },
75030	//     "maxResults": {
75031	//       "default": "500",
75032	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
75033	//       "format": "uint32",
75034	//       "location": "query",
75035	//       "minimum": "0",
75036	//       "type": "integer"
75037	//     },
75038	//     "orderBy": {
75039	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
75040	//       "location": "query",
75041	//       "type": "string"
75042	//     },
75043	//     "pageToken": {
75044	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
75045	//       "location": "query",
75046	//       "type": "string"
75047	//     },
75048	//     "project": {
75049	//       "description": "Project ID for this request.",
75050	//       "location": "path",
75051	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75052	//       "required": true,
75053	//       "type": "string"
75054	//     }
75055	//   },
75056	//   "path": "{project}/aggregated/targetInstances",
75057	//   "response": {
75058	//     "$ref": "TargetInstanceAggregatedList"
75059	//   },
75060	//   "scopes": [
75061	//     "https://www.googleapis.com/auth/cloud-platform",
75062	//     "https://www.googleapis.com/auth/compute",
75063	//     "https://www.googleapis.com/auth/compute.readonly"
75064	//   ]
75065	// }
75066
75067}
75068
75069// Pages invokes f for each page of results.
75070// A non-nil error returned from f will halt the iteration.
75071// The provided context supersedes any context provided to the Context method.
75072func (c *TargetInstancesAggregatedListCall) Pages(ctx context.Context, f func(*TargetInstanceAggregatedList) error) error {
75073	c.ctx_ = ctx
75074	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
75075	for {
75076		x, err := c.Do()
75077		if err != nil {
75078			return err
75079		}
75080		if err := f(x); err != nil {
75081			return err
75082		}
75083		if x.NextPageToken == "" {
75084			return nil
75085		}
75086		c.PageToken(x.NextPageToken)
75087	}
75088}
75089
75090// method id "compute.targetInstances.delete":
75091
75092type TargetInstancesDeleteCall struct {
75093	s              *Service
75094	project        string
75095	zone           string
75096	targetInstance string
75097	urlParams_     gensupport.URLParams
75098	ctx_           context.Context
75099	header_        http.Header
75100}
75101
75102// Delete: Deletes the specified TargetInstance resource.
75103// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/delete
75104func (r *TargetInstancesService) Delete(project string, zone string, targetInstance string) *TargetInstancesDeleteCall {
75105	c := &TargetInstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75106	c.project = project
75107	c.zone = zone
75108	c.targetInstance = targetInstance
75109	return c
75110}
75111
75112// RequestId sets the optional parameter "requestId": An optional
75113// request ID to identify requests. Specify a unique request ID so that
75114// if you must retry your request, the server will know to ignore the
75115// request if it has already been completed.
75116//
75117// For example, consider a situation where you make an initial request
75118// and the request times out. If you make the request again with the
75119// same request ID, the server can check if original operation with the
75120// same request ID was received, and if so, will ignore the second
75121// request. This prevents clients from accidentally creating duplicate
75122// commitments.
75123//
75124// The request ID must be a valid UUID with the exception that zero UUID
75125// is not supported (00000000-0000-0000-0000-000000000000).
75126func (c *TargetInstancesDeleteCall) RequestId(requestId string) *TargetInstancesDeleteCall {
75127	c.urlParams_.Set("requestId", requestId)
75128	return c
75129}
75130
75131// Fields allows partial responses to be retrieved. See
75132// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75133// for more information.
75134func (c *TargetInstancesDeleteCall) Fields(s ...googleapi.Field) *TargetInstancesDeleteCall {
75135	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75136	return c
75137}
75138
75139// Context sets the context to be used in this call's Do method. Any
75140// pending HTTP request will be aborted if the provided context is
75141// canceled.
75142func (c *TargetInstancesDeleteCall) Context(ctx context.Context) *TargetInstancesDeleteCall {
75143	c.ctx_ = ctx
75144	return c
75145}
75146
75147// Header returns an http.Header that can be modified by the caller to
75148// add HTTP headers to the request.
75149func (c *TargetInstancesDeleteCall) Header() http.Header {
75150	if c.header_ == nil {
75151		c.header_ = make(http.Header)
75152	}
75153	return c.header_
75154}
75155
75156func (c *TargetInstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
75157	reqHeaders := make(http.Header)
75158	for k, v := range c.header_ {
75159		reqHeaders[k] = v
75160	}
75161	reqHeaders.Set("User-Agent", c.s.userAgent())
75162	var body io.Reader = nil
75163	c.urlParams_.Set("alt", alt)
75164	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{targetInstance}")
75165	urls += "?" + c.urlParams_.Encode()
75166	req, _ := http.NewRequest("DELETE", urls, body)
75167	req.Header = reqHeaders
75168	googleapi.Expand(req.URL, map[string]string{
75169		"project":        c.project,
75170		"zone":           c.zone,
75171		"targetInstance": c.targetInstance,
75172	})
75173	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75174}
75175
75176// Do executes the "compute.targetInstances.delete" call.
75177// Exactly one of *Operation or error will be non-nil. Any non-2xx
75178// status code is an error. Response headers are in either
75179// *Operation.ServerResponse.Header or (if a response was returned at
75180// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75181// to check whether the returned error was because
75182// http.StatusNotModified was returned.
75183func (c *TargetInstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75184	gensupport.SetOptions(c.urlParams_, opts...)
75185	res, err := c.doRequest("json")
75186	if res != nil && res.StatusCode == http.StatusNotModified {
75187		if res.Body != nil {
75188			res.Body.Close()
75189		}
75190		return nil, &googleapi.Error{
75191			Code:   res.StatusCode,
75192			Header: res.Header,
75193		}
75194	}
75195	if err != nil {
75196		return nil, err
75197	}
75198	defer googleapi.CloseBody(res)
75199	if err := googleapi.CheckResponse(res); err != nil {
75200		return nil, err
75201	}
75202	ret := &Operation{
75203		ServerResponse: googleapi.ServerResponse{
75204			Header:         res.Header,
75205			HTTPStatusCode: res.StatusCode,
75206		},
75207	}
75208	target := &ret
75209	if err := gensupport.DecodeResponse(target, res); err != nil {
75210		return nil, err
75211	}
75212	return ret, nil
75213	// {
75214	//   "description": "Deletes the specified TargetInstance resource.",
75215	//   "httpMethod": "DELETE",
75216	//   "id": "compute.targetInstances.delete",
75217	//   "parameterOrder": [
75218	//     "project",
75219	//     "zone",
75220	//     "targetInstance"
75221	//   ],
75222	//   "parameters": {
75223	//     "project": {
75224	//       "description": "Project ID for this request.",
75225	//       "location": "path",
75226	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75227	//       "required": true,
75228	//       "type": "string"
75229	//     },
75230	//     "requestId": {
75231	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75232	//       "location": "query",
75233	//       "type": "string"
75234	//     },
75235	//     "targetInstance": {
75236	//       "description": "Name of the TargetInstance resource to delete.",
75237	//       "location": "path",
75238	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
75239	//       "required": true,
75240	//       "type": "string"
75241	//     },
75242	//     "zone": {
75243	//       "description": "Name of the zone scoping this request.",
75244	//       "location": "path",
75245	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
75246	//       "required": true,
75247	//       "type": "string"
75248	//     }
75249	//   },
75250	//   "path": "{project}/zones/{zone}/targetInstances/{targetInstance}",
75251	//   "response": {
75252	//     "$ref": "Operation"
75253	//   },
75254	//   "scopes": [
75255	//     "https://www.googleapis.com/auth/cloud-platform",
75256	//     "https://www.googleapis.com/auth/compute"
75257	//   ]
75258	// }
75259
75260}
75261
75262// method id "compute.targetInstances.get":
75263
75264type TargetInstancesGetCall struct {
75265	s              *Service
75266	project        string
75267	zone           string
75268	targetInstance string
75269	urlParams_     gensupport.URLParams
75270	ifNoneMatch_   string
75271	ctx_           context.Context
75272	header_        http.Header
75273}
75274
75275// Get: Returns the specified TargetInstance resource. Gets a list of
75276// available target instances by making a list() request.
75277// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/get
75278func (r *TargetInstancesService) Get(project string, zone string, targetInstance string) *TargetInstancesGetCall {
75279	c := &TargetInstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75280	c.project = project
75281	c.zone = zone
75282	c.targetInstance = targetInstance
75283	return c
75284}
75285
75286// Fields allows partial responses to be retrieved. See
75287// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75288// for more information.
75289func (c *TargetInstancesGetCall) Fields(s ...googleapi.Field) *TargetInstancesGetCall {
75290	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75291	return c
75292}
75293
75294// IfNoneMatch sets the optional parameter which makes the operation
75295// fail if the object's ETag matches the given value. This is useful for
75296// getting updates only after the object has changed since the last
75297// request. Use googleapi.IsNotModified to check whether the response
75298// error from Do is the result of In-None-Match.
75299func (c *TargetInstancesGetCall) IfNoneMatch(entityTag string) *TargetInstancesGetCall {
75300	c.ifNoneMatch_ = entityTag
75301	return c
75302}
75303
75304// Context sets the context to be used in this call's Do method. Any
75305// pending HTTP request will be aborted if the provided context is
75306// canceled.
75307func (c *TargetInstancesGetCall) Context(ctx context.Context) *TargetInstancesGetCall {
75308	c.ctx_ = ctx
75309	return c
75310}
75311
75312// Header returns an http.Header that can be modified by the caller to
75313// add HTTP headers to the request.
75314func (c *TargetInstancesGetCall) Header() http.Header {
75315	if c.header_ == nil {
75316		c.header_ = make(http.Header)
75317	}
75318	return c.header_
75319}
75320
75321func (c *TargetInstancesGetCall) doRequest(alt string) (*http.Response, error) {
75322	reqHeaders := make(http.Header)
75323	for k, v := range c.header_ {
75324		reqHeaders[k] = v
75325	}
75326	reqHeaders.Set("User-Agent", c.s.userAgent())
75327	if c.ifNoneMatch_ != "" {
75328		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
75329	}
75330	var body io.Reader = nil
75331	c.urlParams_.Set("alt", alt)
75332	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{targetInstance}")
75333	urls += "?" + c.urlParams_.Encode()
75334	req, _ := http.NewRequest("GET", urls, body)
75335	req.Header = reqHeaders
75336	googleapi.Expand(req.URL, map[string]string{
75337		"project":        c.project,
75338		"zone":           c.zone,
75339		"targetInstance": c.targetInstance,
75340	})
75341	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75342}
75343
75344// Do executes the "compute.targetInstances.get" call.
75345// Exactly one of *TargetInstance or error will be non-nil. Any non-2xx
75346// status code is an error. Response headers are in either
75347// *TargetInstance.ServerResponse.Header or (if a response was returned
75348// at all) in error.(*googleapi.Error).Header. Use
75349// googleapi.IsNotModified to check whether the returned error was
75350// because http.StatusNotModified was returned.
75351func (c *TargetInstancesGetCall) Do(opts ...googleapi.CallOption) (*TargetInstance, error) {
75352	gensupport.SetOptions(c.urlParams_, opts...)
75353	res, err := c.doRequest("json")
75354	if res != nil && res.StatusCode == http.StatusNotModified {
75355		if res.Body != nil {
75356			res.Body.Close()
75357		}
75358		return nil, &googleapi.Error{
75359			Code:   res.StatusCode,
75360			Header: res.Header,
75361		}
75362	}
75363	if err != nil {
75364		return nil, err
75365	}
75366	defer googleapi.CloseBody(res)
75367	if err := googleapi.CheckResponse(res); err != nil {
75368		return nil, err
75369	}
75370	ret := &TargetInstance{
75371		ServerResponse: googleapi.ServerResponse{
75372			Header:         res.Header,
75373			HTTPStatusCode: res.StatusCode,
75374		},
75375	}
75376	target := &ret
75377	if err := gensupport.DecodeResponse(target, res); err != nil {
75378		return nil, err
75379	}
75380	return ret, nil
75381	// {
75382	//   "description": "Returns the specified TargetInstance resource. Gets a list of available target instances by making a list() request.",
75383	//   "httpMethod": "GET",
75384	//   "id": "compute.targetInstances.get",
75385	//   "parameterOrder": [
75386	//     "project",
75387	//     "zone",
75388	//     "targetInstance"
75389	//   ],
75390	//   "parameters": {
75391	//     "project": {
75392	//       "description": "Project ID for this request.",
75393	//       "location": "path",
75394	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75395	//       "required": true,
75396	//       "type": "string"
75397	//     },
75398	//     "targetInstance": {
75399	//       "description": "Name of the TargetInstance resource to return.",
75400	//       "location": "path",
75401	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
75402	//       "required": true,
75403	//       "type": "string"
75404	//     },
75405	//     "zone": {
75406	//       "description": "Name of the zone scoping this request.",
75407	//       "location": "path",
75408	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
75409	//       "required": true,
75410	//       "type": "string"
75411	//     }
75412	//   },
75413	//   "path": "{project}/zones/{zone}/targetInstances/{targetInstance}",
75414	//   "response": {
75415	//     "$ref": "TargetInstance"
75416	//   },
75417	//   "scopes": [
75418	//     "https://www.googleapis.com/auth/cloud-platform",
75419	//     "https://www.googleapis.com/auth/compute",
75420	//     "https://www.googleapis.com/auth/compute.readonly"
75421	//   ]
75422	// }
75423
75424}
75425
75426// method id "compute.targetInstances.insert":
75427
75428type TargetInstancesInsertCall struct {
75429	s              *Service
75430	project        string
75431	zone           string
75432	targetinstance *TargetInstance
75433	urlParams_     gensupport.URLParams
75434	ctx_           context.Context
75435	header_        http.Header
75436}
75437
75438// Insert: Creates a TargetInstance resource in the specified project
75439// and zone using the data included in the request.
75440// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/insert
75441func (r *TargetInstancesService) Insert(project string, zone string, targetinstance *TargetInstance) *TargetInstancesInsertCall {
75442	c := &TargetInstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75443	c.project = project
75444	c.zone = zone
75445	c.targetinstance = targetinstance
75446	return c
75447}
75448
75449// RequestId sets the optional parameter "requestId": An optional
75450// request ID to identify requests. Specify a unique request ID so that
75451// if you must retry your request, the server will know to ignore the
75452// request if it has already been completed.
75453//
75454// For example, consider a situation where you make an initial request
75455// and the request times out. If you make the request again with the
75456// same request ID, the server can check if original operation with the
75457// same request ID was received, and if so, will ignore the second
75458// request. This prevents clients from accidentally creating duplicate
75459// commitments.
75460//
75461// The request ID must be a valid UUID with the exception that zero UUID
75462// is not supported (00000000-0000-0000-0000-000000000000).
75463func (c *TargetInstancesInsertCall) RequestId(requestId string) *TargetInstancesInsertCall {
75464	c.urlParams_.Set("requestId", requestId)
75465	return c
75466}
75467
75468// Fields allows partial responses to be retrieved. See
75469// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75470// for more information.
75471func (c *TargetInstancesInsertCall) Fields(s ...googleapi.Field) *TargetInstancesInsertCall {
75472	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75473	return c
75474}
75475
75476// Context sets the context to be used in this call's Do method. Any
75477// pending HTTP request will be aborted if the provided context is
75478// canceled.
75479func (c *TargetInstancesInsertCall) Context(ctx context.Context) *TargetInstancesInsertCall {
75480	c.ctx_ = ctx
75481	return c
75482}
75483
75484// Header returns an http.Header that can be modified by the caller to
75485// add HTTP headers to the request.
75486func (c *TargetInstancesInsertCall) Header() http.Header {
75487	if c.header_ == nil {
75488		c.header_ = make(http.Header)
75489	}
75490	return c.header_
75491}
75492
75493func (c *TargetInstancesInsertCall) doRequest(alt string) (*http.Response, error) {
75494	reqHeaders := make(http.Header)
75495	for k, v := range c.header_ {
75496		reqHeaders[k] = v
75497	}
75498	reqHeaders.Set("User-Agent", c.s.userAgent())
75499	var body io.Reader = nil
75500	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetinstance)
75501	if err != nil {
75502		return nil, err
75503	}
75504	reqHeaders.Set("Content-Type", "application/json")
75505	c.urlParams_.Set("alt", alt)
75506	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances")
75507	urls += "?" + c.urlParams_.Encode()
75508	req, _ := http.NewRequest("POST", urls, body)
75509	req.Header = reqHeaders
75510	googleapi.Expand(req.URL, map[string]string{
75511		"project": c.project,
75512		"zone":    c.zone,
75513	})
75514	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75515}
75516
75517// Do executes the "compute.targetInstances.insert" call.
75518// Exactly one of *Operation or error will be non-nil. Any non-2xx
75519// status code is an error. Response headers are in either
75520// *Operation.ServerResponse.Header or (if a response was returned at
75521// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75522// to check whether the returned error was because
75523// http.StatusNotModified was returned.
75524func (c *TargetInstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75525	gensupport.SetOptions(c.urlParams_, opts...)
75526	res, err := c.doRequest("json")
75527	if res != nil && res.StatusCode == http.StatusNotModified {
75528		if res.Body != nil {
75529			res.Body.Close()
75530		}
75531		return nil, &googleapi.Error{
75532			Code:   res.StatusCode,
75533			Header: res.Header,
75534		}
75535	}
75536	if err != nil {
75537		return nil, err
75538	}
75539	defer googleapi.CloseBody(res)
75540	if err := googleapi.CheckResponse(res); err != nil {
75541		return nil, err
75542	}
75543	ret := &Operation{
75544		ServerResponse: googleapi.ServerResponse{
75545			Header:         res.Header,
75546			HTTPStatusCode: res.StatusCode,
75547		},
75548	}
75549	target := &ret
75550	if err := gensupport.DecodeResponse(target, res); err != nil {
75551		return nil, err
75552	}
75553	return ret, nil
75554	// {
75555	//   "description": "Creates a TargetInstance resource in the specified project and zone using the data included in the request.",
75556	//   "httpMethod": "POST",
75557	//   "id": "compute.targetInstances.insert",
75558	//   "parameterOrder": [
75559	//     "project",
75560	//     "zone"
75561	//   ],
75562	//   "parameters": {
75563	//     "project": {
75564	//       "description": "Project ID for this request.",
75565	//       "location": "path",
75566	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75567	//       "required": true,
75568	//       "type": "string"
75569	//     },
75570	//     "requestId": {
75571	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75572	//       "location": "query",
75573	//       "type": "string"
75574	//     },
75575	//     "zone": {
75576	//       "description": "Name of the zone scoping this request.",
75577	//       "location": "path",
75578	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
75579	//       "required": true,
75580	//       "type": "string"
75581	//     }
75582	//   },
75583	//   "path": "{project}/zones/{zone}/targetInstances",
75584	//   "request": {
75585	//     "$ref": "TargetInstance"
75586	//   },
75587	//   "response": {
75588	//     "$ref": "Operation"
75589	//   },
75590	//   "scopes": [
75591	//     "https://www.googleapis.com/auth/cloud-platform",
75592	//     "https://www.googleapis.com/auth/compute"
75593	//   ]
75594	// }
75595
75596}
75597
75598// method id "compute.targetInstances.list":
75599
75600type TargetInstancesListCall struct {
75601	s            *Service
75602	project      string
75603	zone         string
75604	urlParams_   gensupport.URLParams
75605	ifNoneMatch_ string
75606	ctx_         context.Context
75607	header_      http.Header
75608}
75609
75610// List: Retrieves a list of TargetInstance resources available to the
75611// specified project and zone.
75612// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/list
75613func (r *TargetInstancesService) List(project string, zone string) *TargetInstancesListCall {
75614	c := &TargetInstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75615	c.project = project
75616	c.zone = zone
75617	return c
75618}
75619
75620// Filter sets the optional parameter "filter": A filter expression that
75621// filters resources listed in the response. The expression must specify
75622// the field name, a comparison operator, and the value that you want to
75623// use for filtering. The value must be a string, a number, or a
75624// boolean. The comparison operator must be either =, !=, >, or <.
75625//
75626// For example, if you are filtering Compute Engine instances, you can
75627// exclude instances named example-instance by specifying name !=
75628// example-instance.
75629//
75630// You can also filter nested fields. For example, you could specify
75631// scheduling.automaticRestart = false to include instances only if they
75632// are not scheduled for automatic restarts. You can use filtering on
75633// nested fields to filter based on resource labels.
75634//
75635// To filter on multiple expressions, provide each separate expression
75636// within parentheses. For example, (scheduling.automaticRestart = true)
75637// (cpuPlatform = "Intel Skylake"). By default, each expression is an
75638// AND expression. However, you can include AND and OR expressions
75639// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
75640// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
75641// true).
75642func (c *TargetInstancesListCall) Filter(filter string) *TargetInstancesListCall {
75643	c.urlParams_.Set("filter", filter)
75644	return c
75645}
75646
75647// MaxResults sets the optional parameter "maxResults": The maximum
75648// number of results per page that should be returned. If the number of
75649// available results is larger than maxResults, Compute Engine returns a
75650// nextPageToken that can be used to get the next page of results in
75651// subsequent list requests. Acceptable values are 0 to 500, inclusive.
75652// (Default: 500)
75653func (c *TargetInstancesListCall) MaxResults(maxResults int64) *TargetInstancesListCall {
75654	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
75655	return c
75656}
75657
75658// OrderBy sets the optional parameter "orderBy": Sorts list results by
75659// a certain order. By default, results are returned in alphanumerical
75660// order based on the resource name.
75661//
75662// You can also sort results in descending order based on the creation
75663// timestamp using orderBy="creationTimestamp desc". This sorts results
75664// based on the creationTimestamp field in reverse chronological order
75665// (newest result first). Use this to sort resources like operations so
75666// that the newest operation is returned first.
75667//
75668// Currently, only sorting by name or creationTimestamp desc is
75669// supported.
75670func (c *TargetInstancesListCall) OrderBy(orderBy string) *TargetInstancesListCall {
75671	c.urlParams_.Set("orderBy", orderBy)
75672	return c
75673}
75674
75675// PageToken sets the optional parameter "pageToken": Specifies a page
75676// token to use. Set pageToken to the nextPageToken returned by a
75677// previous list request to get the next page of results.
75678func (c *TargetInstancesListCall) PageToken(pageToken string) *TargetInstancesListCall {
75679	c.urlParams_.Set("pageToken", pageToken)
75680	return c
75681}
75682
75683// Fields allows partial responses to be retrieved. See
75684// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75685// for more information.
75686func (c *TargetInstancesListCall) Fields(s ...googleapi.Field) *TargetInstancesListCall {
75687	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75688	return c
75689}
75690
75691// IfNoneMatch sets the optional parameter which makes the operation
75692// fail if the object's ETag matches the given value. This is useful for
75693// getting updates only after the object has changed since the last
75694// request. Use googleapi.IsNotModified to check whether the response
75695// error from Do is the result of In-None-Match.
75696func (c *TargetInstancesListCall) IfNoneMatch(entityTag string) *TargetInstancesListCall {
75697	c.ifNoneMatch_ = entityTag
75698	return c
75699}
75700
75701// Context sets the context to be used in this call's Do method. Any
75702// pending HTTP request will be aborted if the provided context is
75703// canceled.
75704func (c *TargetInstancesListCall) Context(ctx context.Context) *TargetInstancesListCall {
75705	c.ctx_ = ctx
75706	return c
75707}
75708
75709// Header returns an http.Header that can be modified by the caller to
75710// add HTTP headers to the request.
75711func (c *TargetInstancesListCall) Header() http.Header {
75712	if c.header_ == nil {
75713		c.header_ = make(http.Header)
75714	}
75715	return c.header_
75716}
75717
75718func (c *TargetInstancesListCall) doRequest(alt string) (*http.Response, error) {
75719	reqHeaders := make(http.Header)
75720	for k, v := range c.header_ {
75721		reqHeaders[k] = v
75722	}
75723	reqHeaders.Set("User-Agent", c.s.userAgent())
75724	if c.ifNoneMatch_ != "" {
75725		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
75726	}
75727	var body io.Reader = nil
75728	c.urlParams_.Set("alt", alt)
75729	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances")
75730	urls += "?" + c.urlParams_.Encode()
75731	req, _ := http.NewRequest("GET", urls, body)
75732	req.Header = reqHeaders
75733	googleapi.Expand(req.URL, map[string]string{
75734		"project": c.project,
75735		"zone":    c.zone,
75736	})
75737	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75738}
75739
75740// Do executes the "compute.targetInstances.list" call.
75741// Exactly one of *TargetInstanceList or error will be non-nil. Any
75742// non-2xx status code is an error. Response headers are in either
75743// *TargetInstanceList.ServerResponse.Header or (if a response was
75744// returned at all) in error.(*googleapi.Error).Header. Use
75745// googleapi.IsNotModified to check whether the returned error was
75746// because http.StatusNotModified was returned.
75747func (c *TargetInstancesListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceList, error) {
75748	gensupport.SetOptions(c.urlParams_, opts...)
75749	res, err := c.doRequest("json")
75750	if res != nil && res.StatusCode == http.StatusNotModified {
75751		if res.Body != nil {
75752			res.Body.Close()
75753		}
75754		return nil, &googleapi.Error{
75755			Code:   res.StatusCode,
75756			Header: res.Header,
75757		}
75758	}
75759	if err != nil {
75760		return nil, err
75761	}
75762	defer googleapi.CloseBody(res)
75763	if err := googleapi.CheckResponse(res); err != nil {
75764		return nil, err
75765	}
75766	ret := &TargetInstanceList{
75767		ServerResponse: googleapi.ServerResponse{
75768			Header:         res.Header,
75769			HTTPStatusCode: res.StatusCode,
75770		},
75771	}
75772	target := &ret
75773	if err := gensupport.DecodeResponse(target, res); err != nil {
75774		return nil, err
75775	}
75776	return ret, nil
75777	// {
75778	//   "description": "Retrieves a list of TargetInstance resources available to the specified project and zone.",
75779	//   "httpMethod": "GET",
75780	//   "id": "compute.targetInstances.list",
75781	//   "parameterOrder": [
75782	//     "project",
75783	//     "zone"
75784	//   ],
75785	//   "parameters": {
75786	//     "filter": {
75787	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
75788	//       "location": "query",
75789	//       "type": "string"
75790	//     },
75791	//     "maxResults": {
75792	//       "default": "500",
75793	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
75794	//       "format": "uint32",
75795	//       "location": "query",
75796	//       "minimum": "0",
75797	//       "type": "integer"
75798	//     },
75799	//     "orderBy": {
75800	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
75801	//       "location": "query",
75802	//       "type": "string"
75803	//     },
75804	//     "pageToken": {
75805	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
75806	//       "location": "query",
75807	//       "type": "string"
75808	//     },
75809	//     "project": {
75810	//       "description": "Project ID for this request.",
75811	//       "location": "path",
75812	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75813	//       "required": true,
75814	//       "type": "string"
75815	//     },
75816	//     "zone": {
75817	//       "description": "Name of the zone scoping this request.",
75818	//       "location": "path",
75819	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
75820	//       "required": true,
75821	//       "type": "string"
75822	//     }
75823	//   },
75824	//   "path": "{project}/zones/{zone}/targetInstances",
75825	//   "response": {
75826	//     "$ref": "TargetInstanceList"
75827	//   },
75828	//   "scopes": [
75829	//     "https://www.googleapis.com/auth/cloud-platform",
75830	//     "https://www.googleapis.com/auth/compute",
75831	//     "https://www.googleapis.com/auth/compute.readonly"
75832	//   ]
75833	// }
75834
75835}
75836
75837// Pages invokes f for each page of results.
75838// A non-nil error returned from f will halt the iteration.
75839// The provided context supersedes any context provided to the Context method.
75840func (c *TargetInstancesListCall) Pages(ctx context.Context, f func(*TargetInstanceList) error) error {
75841	c.ctx_ = ctx
75842	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
75843	for {
75844		x, err := c.Do()
75845		if err != nil {
75846			return err
75847		}
75848		if err := f(x); err != nil {
75849			return err
75850		}
75851		if x.NextPageToken == "" {
75852			return nil
75853		}
75854		c.PageToken(x.NextPageToken)
75855	}
75856}
75857
75858// method id "compute.targetPools.addHealthCheck":
75859
75860type TargetPoolsAddHealthCheckCall struct {
75861	s                                *Service
75862	project                          string
75863	region                           string
75864	targetPool                       string
75865	targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest
75866	urlParams_                       gensupport.URLParams
75867	ctx_                             context.Context
75868	header_                          http.Header
75869}
75870
75871// AddHealthCheck: Adds health check URLs to a target pool.
75872// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addHealthCheck
75873func (r *TargetPoolsService) AddHealthCheck(project string, region string, targetPool string, targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest) *TargetPoolsAddHealthCheckCall {
75874	c := &TargetPoolsAddHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75875	c.project = project
75876	c.region = region
75877	c.targetPool = targetPool
75878	c.targetpoolsaddhealthcheckrequest = targetpoolsaddhealthcheckrequest
75879	return c
75880}
75881
75882// RequestId sets the optional parameter "requestId": An optional
75883// request ID to identify requests. Specify a unique request ID so that
75884// if you must retry your request, the server will know to ignore the
75885// request if it has already been completed.
75886//
75887// For example, consider a situation where you make an initial request
75888// and the request times out. If you make the request again with the
75889// same request ID, the server can check if original operation with the
75890// same request ID was received, and if so, will ignore the second
75891// request. This prevents clients from accidentally creating duplicate
75892// commitments.
75893//
75894// The request ID must be a valid UUID with the exception that zero UUID
75895// is not supported (00000000-0000-0000-0000-000000000000).
75896func (c *TargetPoolsAddHealthCheckCall) RequestId(requestId string) *TargetPoolsAddHealthCheckCall {
75897	c.urlParams_.Set("requestId", requestId)
75898	return c
75899}
75900
75901// Fields allows partial responses to be retrieved. See
75902// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75903// for more information.
75904func (c *TargetPoolsAddHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsAddHealthCheckCall {
75905	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75906	return c
75907}
75908
75909// Context sets the context to be used in this call's Do method. Any
75910// pending HTTP request will be aborted if the provided context is
75911// canceled.
75912func (c *TargetPoolsAddHealthCheckCall) Context(ctx context.Context) *TargetPoolsAddHealthCheckCall {
75913	c.ctx_ = ctx
75914	return c
75915}
75916
75917// Header returns an http.Header that can be modified by the caller to
75918// add HTTP headers to the request.
75919func (c *TargetPoolsAddHealthCheckCall) Header() http.Header {
75920	if c.header_ == nil {
75921		c.header_ = make(http.Header)
75922	}
75923	return c.header_
75924}
75925
75926func (c *TargetPoolsAddHealthCheckCall) doRequest(alt string) (*http.Response, error) {
75927	reqHeaders := make(http.Header)
75928	for k, v := range c.header_ {
75929		reqHeaders[k] = v
75930	}
75931	reqHeaders.Set("User-Agent", c.s.userAgent())
75932	var body io.Reader = nil
75933	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddhealthcheckrequest)
75934	if err != nil {
75935		return nil, err
75936	}
75937	reqHeaders.Set("Content-Type", "application/json")
75938	c.urlParams_.Set("alt", alt)
75939	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck")
75940	urls += "?" + c.urlParams_.Encode()
75941	req, _ := http.NewRequest("POST", urls, body)
75942	req.Header = reqHeaders
75943	googleapi.Expand(req.URL, map[string]string{
75944		"project":    c.project,
75945		"region":     c.region,
75946		"targetPool": c.targetPool,
75947	})
75948	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75949}
75950
75951// Do executes the "compute.targetPools.addHealthCheck" call.
75952// Exactly one of *Operation or error will be non-nil. Any non-2xx
75953// status code is an error. Response headers are in either
75954// *Operation.ServerResponse.Header or (if a response was returned at
75955// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75956// to check whether the returned error was because
75957// http.StatusNotModified was returned.
75958func (c *TargetPoolsAddHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75959	gensupport.SetOptions(c.urlParams_, opts...)
75960	res, err := c.doRequest("json")
75961	if res != nil && res.StatusCode == http.StatusNotModified {
75962		if res.Body != nil {
75963			res.Body.Close()
75964		}
75965		return nil, &googleapi.Error{
75966			Code:   res.StatusCode,
75967			Header: res.Header,
75968		}
75969	}
75970	if err != nil {
75971		return nil, err
75972	}
75973	defer googleapi.CloseBody(res)
75974	if err := googleapi.CheckResponse(res); err != nil {
75975		return nil, err
75976	}
75977	ret := &Operation{
75978		ServerResponse: googleapi.ServerResponse{
75979			Header:         res.Header,
75980			HTTPStatusCode: res.StatusCode,
75981		},
75982	}
75983	target := &ret
75984	if err := gensupport.DecodeResponse(target, res); err != nil {
75985		return nil, err
75986	}
75987	return ret, nil
75988	// {
75989	//   "description": "Adds health check URLs to a target pool.",
75990	//   "httpMethod": "POST",
75991	//   "id": "compute.targetPools.addHealthCheck",
75992	//   "parameterOrder": [
75993	//     "project",
75994	//     "region",
75995	//     "targetPool"
75996	//   ],
75997	//   "parameters": {
75998	//     "project": {
75999	//       "description": "Project ID for this request.",
76000	//       "location": "path",
76001	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76002	//       "required": true,
76003	//       "type": "string"
76004	//     },
76005	//     "region": {
76006	//       "description": "Name of the region scoping this request.",
76007	//       "location": "path",
76008	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
76009	//       "required": true,
76010	//       "type": "string"
76011	//     },
76012	//     "requestId": {
76013	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76014	//       "location": "query",
76015	//       "type": "string"
76016	//     },
76017	//     "targetPool": {
76018	//       "description": "Name of the target pool to add a health check to.",
76019	//       "location": "path",
76020	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
76021	//       "required": true,
76022	//       "type": "string"
76023	//     }
76024	//   },
76025	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck",
76026	//   "request": {
76027	//     "$ref": "TargetPoolsAddHealthCheckRequest"
76028	//   },
76029	//   "response": {
76030	//     "$ref": "Operation"
76031	//   },
76032	//   "scopes": [
76033	//     "https://www.googleapis.com/auth/cloud-platform",
76034	//     "https://www.googleapis.com/auth/compute"
76035	//   ]
76036	// }
76037
76038}
76039
76040// method id "compute.targetPools.addInstance":
76041
76042type TargetPoolsAddInstanceCall struct {
76043	s                             *Service
76044	project                       string
76045	region                        string
76046	targetPool                    string
76047	targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest
76048	urlParams_                    gensupport.URLParams
76049	ctx_                          context.Context
76050	header_                       http.Header
76051}
76052
76053// AddInstance: Adds an instance to a target pool.
76054// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addInstance
76055func (r *TargetPoolsService) AddInstance(project string, region string, targetPool string, targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest) *TargetPoolsAddInstanceCall {
76056	c := &TargetPoolsAddInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76057	c.project = project
76058	c.region = region
76059	c.targetPool = targetPool
76060	c.targetpoolsaddinstancerequest = targetpoolsaddinstancerequest
76061	return c
76062}
76063
76064// RequestId sets the optional parameter "requestId": An optional
76065// request ID to identify requests. Specify a unique request ID so that
76066// if you must retry your request, the server will know to ignore the
76067// request if it has already been completed.
76068//
76069// For example, consider a situation where you make an initial request
76070// and the request times out. If you make the request again with the
76071// same request ID, the server can check if original operation with the
76072// same request ID was received, and if so, will ignore the second
76073// request. This prevents clients from accidentally creating duplicate
76074// commitments.
76075//
76076// The request ID must be a valid UUID with the exception that zero UUID
76077// is not supported (00000000-0000-0000-0000-000000000000).
76078func (c *TargetPoolsAddInstanceCall) RequestId(requestId string) *TargetPoolsAddInstanceCall {
76079	c.urlParams_.Set("requestId", requestId)
76080	return c
76081}
76082
76083// Fields allows partial responses to be retrieved. See
76084// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76085// for more information.
76086func (c *TargetPoolsAddInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsAddInstanceCall {
76087	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76088	return c
76089}
76090
76091// Context sets the context to be used in this call's Do method. Any
76092// pending HTTP request will be aborted if the provided context is
76093// canceled.
76094func (c *TargetPoolsAddInstanceCall) Context(ctx context.Context) *TargetPoolsAddInstanceCall {
76095	c.ctx_ = ctx
76096	return c
76097}
76098
76099// Header returns an http.Header that can be modified by the caller to
76100// add HTTP headers to the request.
76101func (c *TargetPoolsAddInstanceCall) Header() http.Header {
76102	if c.header_ == nil {
76103		c.header_ = make(http.Header)
76104	}
76105	return c.header_
76106}
76107
76108func (c *TargetPoolsAddInstanceCall) doRequest(alt string) (*http.Response, error) {
76109	reqHeaders := make(http.Header)
76110	for k, v := range c.header_ {
76111		reqHeaders[k] = v
76112	}
76113	reqHeaders.Set("User-Agent", c.s.userAgent())
76114	var body io.Reader = nil
76115	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddinstancerequest)
76116	if err != nil {
76117		return nil, err
76118	}
76119	reqHeaders.Set("Content-Type", "application/json")
76120	c.urlParams_.Set("alt", alt)
76121	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/addInstance")
76122	urls += "?" + c.urlParams_.Encode()
76123	req, _ := http.NewRequest("POST", urls, body)
76124	req.Header = reqHeaders
76125	googleapi.Expand(req.URL, map[string]string{
76126		"project":    c.project,
76127		"region":     c.region,
76128		"targetPool": c.targetPool,
76129	})
76130	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76131}
76132
76133// Do executes the "compute.targetPools.addInstance" call.
76134// Exactly one of *Operation or error will be non-nil. Any non-2xx
76135// status code is an error. Response headers are in either
76136// *Operation.ServerResponse.Header or (if a response was returned at
76137// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76138// to check whether the returned error was because
76139// http.StatusNotModified was returned.
76140func (c *TargetPoolsAddInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76141	gensupport.SetOptions(c.urlParams_, opts...)
76142	res, err := c.doRequest("json")
76143	if res != nil && res.StatusCode == http.StatusNotModified {
76144		if res.Body != nil {
76145			res.Body.Close()
76146		}
76147		return nil, &googleapi.Error{
76148			Code:   res.StatusCode,
76149			Header: res.Header,
76150		}
76151	}
76152	if err != nil {
76153		return nil, err
76154	}
76155	defer googleapi.CloseBody(res)
76156	if err := googleapi.CheckResponse(res); err != nil {
76157		return nil, err
76158	}
76159	ret := &Operation{
76160		ServerResponse: googleapi.ServerResponse{
76161			Header:         res.Header,
76162			HTTPStatusCode: res.StatusCode,
76163		},
76164	}
76165	target := &ret
76166	if err := gensupport.DecodeResponse(target, res); err != nil {
76167		return nil, err
76168	}
76169	return ret, nil
76170	// {
76171	//   "description": "Adds an instance to a target pool.",
76172	//   "httpMethod": "POST",
76173	//   "id": "compute.targetPools.addInstance",
76174	//   "parameterOrder": [
76175	//     "project",
76176	//     "region",
76177	//     "targetPool"
76178	//   ],
76179	//   "parameters": {
76180	//     "project": {
76181	//       "description": "Project ID for this request.",
76182	//       "location": "path",
76183	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76184	//       "required": true,
76185	//       "type": "string"
76186	//     },
76187	//     "region": {
76188	//       "description": "Name of the region scoping this request.",
76189	//       "location": "path",
76190	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
76191	//       "required": true,
76192	//       "type": "string"
76193	//     },
76194	//     "requestId": {
76195	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76196	//       "location": "query",
76197	//       "type": "string"
76198	//     },
76199	//     "targetPool": {
76200	//       "description": "Name of the TargetPool resource to add instances to.",
76201	//       "location": "path",
76202	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
76203	//       "required": true,
76204	//       "type": "string"
76205	//     }
76206	//   },
76207	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/addInstance",
76208	//   "request": {
76209	//     "$ref": "TargetPoolsAddInstanceRequest"
76210	//   },
76211	//   "response": {
76212	//     "$ref": "Operation"
76213	//   },
76214	//   "scopes": [
76215	//     "https://www.googleapis.com/auth/cloud-platform",
76216	//     "https://www.googleapis.com/auth/compute"
76217	//   ]
76218	// }
76219
76220}
76221
76222// method id "compute.targetPools.aggregatedList":
76223
76224type TargetPoolsAggregatedListCall struct {
76225	s            *Service
76226	project      string
76227	urlParams_   gensupport.URLParams
76228	ifNoneMatch_ string
76229	ctx_         context.Context
76230	header_      http.Header
76231}
76232
76233// AggregatedList: Retrieves an aggregated list of target pools.
76234// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/aggregatedList
76235func (r *TargetPoolsService) AggregatedList(project string) *TargetPoolsAggregatedListCall {
76236	c := &TargetPoolsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76237	c.project = project
76238	return c
76239}
76240
76241// Filter sets the optional parameter "filter": A filter expression that
76242// filters resources listed in the response. The expression must specify
76243// the field name, a comparison operator, and the value that you want to
76244// use for filtering. The value must be a string, a number, or a
76245// boolean. The comparison operator must be either =, !=, >, or <.
76246//
76247// For example, if you are filtering Compute Engine instances, you can
76248// exclude instances named example-instance by specifying name !=
76249// example-instance.
76250//
76251// You can also filter nested fields. For example, you could specify
76252// scheduling.automaticRestart = false to include instances only if they
76253// are not scheduled for automatic restarts. You can use filtering on
76254// nested fields to filter based on resource labels.
76255//
76256// To filter on multiple expressions, provide each separate expression
76257// within parentheses. For example, (scheduling.automaticRestart = true)
76258// (cpuPlatform = "Intel Skylake"). By default, each expression is an
76259// AND expression. However, you can include AND and OR expressions
76260// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
76261// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
76262// true).
76263func (c *TargetPoolsAggregatedListCall) Filter(filter string) *TargetPoolsAggregatedListCall {
76264	c.urlParams_.Set("filter", filter)
76265	return c
76266}
76267
76268// MaxResults sets the optional parameter "maxResults": The maximum
76269// number of results per page that should be returned. If the number of
76270// available results is larger than maxResults, Compute Engine returns a
76271// nextPageToken that can be used to get the next page of results in
76272// subsequent list requests. Acceptable values are 0 to 500, inclusive.
76273// (Default: 500)
76274func (c *TargetPoolsAggregatedListCall) MaxResults(maxResults int64) *TargetPoolsAggregatedListCall {
76275	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
76276	return c
76277}
76278
76279// OrderBy sets the optional parameter "orderBy": Sorts list results by
76280// a certain order. By default, results are returned in alphanumerical
76281// order based on the resource name.
76282//
76283// You can also sort results in descending order based on the creation
76284// timestamp using orderBy="creationTimestamp desc". This sorts results
76285// based on the creationTimestamp field in reverse chronological order
76286// (newest result first). Use this to sort resources like operations so
76287// that the newest operation is returned first.
76288//
76289// Currently, only sorting by name or creationTimestamp desc is
76290// supported.
76291func (c *TargetPoolsAggregatedListCall) OrderBy(orderBy string) *TargetPoolsAggregatedListCall {
76292	c.urlParams_.Set("orderBy", orderBy)
76293	return c
76294}
76295
76296// PageToken sets the optional parameter "pageToken": Specifies a page
76297// token to use. Set pageToken to the nextPageToken returned by a
76298// previous list request to get the next page of results.
76299func (c *TargetPoolsAggregatedListCall) PageToken(pageToken string) *TargetPoolsAggregatedListCall {
76300	c.urlParams_.Set("pageToken", pageToken)
76301	return c
76302}
76303
76304// Fields allows partial responses to be retrieved. See
76305// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76306// for more information.
76307func (c *TargetPoolsAggregatedListCall) Fields(s ...googleapi.Field) *TargetPoolsAggregatedListCall {
76308	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76309	return c
76310}
76311
76312// IfNoneMatch sets the optional parameter which makes the operation
76313// fail if the object's ETag matches the given value. This is useful for
76314// getting updates only after the object has changed since the last
76315// request. Use googleapi.IsNotModified to check whether the response
76316// error from Do is the result of In-None-Match.
76317func (c *TargetPoolsAggregatedListCall) IfNoneMatch(entityTag string) *TargetPoolsAggregatedListCall {
76318	c.ifNoneMatch_ = entityTag
76319	return c
76320}
76321
76322// Context sets the context to be used in this call's Do method. Any
76323// pending HTTP request will be aborted if the provided context is
76324// canceled.
76325func (c *TargetPoolsAggregatedListCall) Context(ctx context.Context) *TargetPoolsAggregatedListCall {
76326	c.ctx_ = ctx
76327	return c
76328}
76329
76330// Header returns an http.Header that can be modified by the caller to
76331// add HTTP headers to the request.
76332func (c *TargetPoolsAggregatedListCall) Header() http.Header {
76333	if c.header_ == nil {
76334		c.header_ = make(http.Header)
76335	}
76336	return c.header_
76337}
76338
76339func (c *TargetPoolsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
76340	reqHeaders := make(http.Header)
76341	for k, v := range c.header_ {
76342		reqHeaders[k] = v
76343	}
76344	reqHeaders.Set("User-Agent", c.s.userAgent())
76345	if c.ifNoneMatch_ != "" {
76346		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76347	}
76348	var body io.Reader = nil
76349	c.urlParams_.Set("alt", alt)
76350	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetPools")
76351	urls += "?" + c.urlParams_.Encode()
76352	req, _ := http.NewRequest("GET", urls, body)
76353	req.Header = reqHeaders
76354	googleapi.Expand(req.URL, map[string]string{
76355		"project": c.project,
76356	})
76357	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76358}
76359
76360// Do executes the "compute.targetPools.aggregatedList" call.
76361// Exactly one of *TargetPoolAggregatedList or error will be non-nil.
76362// Any non-2xx status code is an error. Response headers are in either
76363// *TargetPoolAggregatedList.ServerResponse.Header or (if a response was
76364// returned at all) in error.(*googleapi.Error).Header. Use
76365// googleapi.IsNotModified to check whether the returned error was
76366// because http.StatusNotModified was returned.
76367func (c *TargetPoolsAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetPoolAggregatedList, error) {
76368	gensupport.SetOptions(c.urlParams_, opts...)
76369	res, err := c.doRequest("json")
76370	if res != nil && res.StatusCode == http.StatusNotModified {
76371		if res.Body != nil {
76372			res.Body.Close()
76373		}
76374		return nil, &googleapi.Error{
76375			Code:   res.StatusCode,
76376			Header: res.Header,
76377		}
76378	}
76379	if err != nil {
76380		return nil, err
76381	}
76382	defer googleapi.CloseBody(res)
76383	if err := googleapi.CheckResponse(res); err != nil {
76384		return nil, err
76385	}
76386	ret := &TargetPoolAggregatedList{
76387		ServerResponse: googleapi.ServerResponse{
76388			Header:         res.Header,
76389			HTTPStatusCode: res.StatusCode,
76390		},
76391	}
76392	target := &ret
76393	if err := gensupport.DecodeResponse(target, res); err != nil {
76394		return nil, err
76395	}
76396	return ret, nil
76397	// {
76398	//   "description": "Retrieves an aggregated list of target pools.",
76399	//   "httpMethod": "GET",
76400	//   "id": "compute.targetPools.aggregatedList",
76401	//   "parameterOrder": [
76402	//     "project"
76403	//   ],
76404	//   "parameters": {
76405	//     "filter": {
76406	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
76407	//       "location": "query",
76408	//       "type": "string"
76409	//     },
76410	//     "maxResults": {
76411	//       "default": "500",
76412	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
76413	//       "format": "uint32",
76414	//       "location": "query",
76415	//       "minimum": "0",
76416	//       "type": "integer"
76417	//     },
76418	//     "orderBy": {
76419	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
76420	//       "location": "query",
76421	//       "type": "string"
76422	//     },
76423	//     "pageToken": {
76424	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
76425	//       "location": "query",
76426	//       "type": "string"
76427	//     },
76428	//     "project": {
76429	//       "description": "Project ID for this request.",
76430	//       "location": "path",
76431	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76432	//       "required": true,
76433	//       "type": "string"
76434	//     }
76435	//   },
76436	//   "path": "{project}/aggregated/targetPools",
76437	//   "response": {
76438	//     "$ref": "TargetPoolAggregatedList"
76439	//   },
76440	//   "scopes": [
76441	//     "https://www.googleapis.com/auth/cloud-platform",
76442	//     "https://www.googleapis.com/auth/compute",
76443	//     "https://www.googleapis.com/auth/compute.readonly"
76444	//   ]
76445	// }
76446
76447}
76448
76449// Pages invokes f for each page of results.
76450// A non-nil error returned from f will halt the iteration.
76451// The provided context supersedes any context provided to the Context method.
76452func (c *TargetPoolsAggregatedListCall) Pages(ctx context.Context, f func(*TargetPoolAggregatedList) error) error {
76453	c.ctx_ = ctx
76454	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
76455	for {
76456		x, err := c.Do()
76457		if err != nil {
76458			return err
76459		}
76460		if err := f(x); err != nil {
76461			return err
76462		}
76463		if x.NextPageToken == "" {
76464			return nil
76465		}
76466		c.PageToken(x.NextPageToken)
76467	}
76468}
76469
76470// method id "compute.targetPools.delete":
76471
76472type TargetPoolsDeleteCall struct {
76473	s          *Service
76474	project    string
76475	region     string
76476	targetPool string
76477	urlParams_ gensupport.URLParams
76478	ctx_       context.Context
76479	header_    http.Header
76480}
76481
76482// Delete: Deletes the specified target pool.
76483// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/delete
76484func (r *TargetPoolsService) Delete(project string, region string, targetPool string) *TargetPoolsDeleteCall {
76485	c := &TargetPoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76486	c.project = project
76487	c.region = region
76488	c.targetPool = targetPool
76489	return c
76490}
76491
76492// RequestId sets the optional parameter "requestId": An optional
76493// request ID to identify requests. Specify a unique request ID so that
76494// if you must retry your request, the server will know to ignore the
76495// request if it has already been completed.
76496//
76497// For example, consider a situation where you make an initial request
76498// and the request times out. If you make the request again with the
76499// same request ID, the server can check if original operation with the
76500// same request ID was received, and if so, will ignore the second
76501// request. This prevents clients from accidentally creating duplicate
76502// commitments.
76503//
76504// The request ID must be a valid UUID with the exception that zero UUID
76505// is not supported (00000000-0000-0000-0000-000000000000).
76506func (c *TargetPoolsDeleteCall) RequestId(requestId string) *TargetPoolsDeleteCall {
76507	c.urlParams_.Set("requestId", requestId)
76508	return c
76509}
76510
76511// Fields allows partial responses to be retrieved. See
76512// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76513// for more information.
76514func (c *TargetPoolsDeleteCall) Fields(s ...googleapi.Field) *TargetPoolsDeleteCall {
76515	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76516	return c
76517}
76518
76519// Context sets the context to be used in this call's Do method. Any
76520// pending HTTP request will be aborted if the provided context is
76521// canceled.
76522func (c *TargetPoolsDeleteCall) Context(ctx context.Context) *TargetPoolsDeleteCall {
76523	c.ctx_ = ctx
76524	return c
76525}
76526
76527// Header returns an http.Header that can be modified by the caller to
76528// add HTTP headers to the request.
76529func (c *TargetPoolsDeleteCall) Header() http.Header {
76530	if c.header_ == nil {
76531		c.header_ = make(http.Header)
76532	}
76533	return c.header_
76534}
76535
76536func (c *TargetPoolsDeleteCall) doRequest(alt string) (*http.Response, error) {
76537	reqHeaders := make(http.Header)
76538	for k, v := range c.header_ {
76539		reqHeaders[k] = v
76540	}
76541	reqHeaders.Set("User-Agent", c.s.userAgent())
76542	var body io.Reader = nil
76543	c.urlParams_.Set("alt", alt)
76544	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}")
76545	urls += "?" + c.urlParams_.Encode()
76546	req, _ := http.NewRequest("DELETE", urls, body)
76547	req.Header = reqHeaders
76548	googleapi.Expand(req.URL, map[string]string{
76549		"project":    c.project,
76550		"region":     c.region,
76551		"targetPool": c.targetPool,
76552	})
76553	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76554}
76555
76556// Do executes the "compute.targetPools.delete" call.
76557// Exactly one of *Operation or error will be non-nil. Any non-2xx
76558// status code is an error. Response headers are in either
76559// *Operation.ServerResponse.Header or (if a response was returned at
76560// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76561// to check whether the returned error was because
76562// http.StatusNotModified was returned.
76563func (c *TargetPoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76564	gensupport.SetOptions(c.urlParams_, opts...)
76565	res, err := c.doRequest("json")
76566	if res != nil && res.StatusCode == http.StatusNotModified {
76567		if res.Body != nil {
76568			res.Body.Close()
76569		}
76570		return nil, &googleapi.Error{
76571			Code:   res.StatusCode,
76572			Header: res.Header,
76573		}
76574	}
76575	if err != nil {
76576		return nil, err
76577	}
76578	defer googleapi.CloseBody(res)
76579	if err := googleapi.CheckResponse(res); err != nil {
76580		return nil, err
76581	}
76582	ret := &Operation{
76583		ServerResponse: googleapi.ServerResponse{
76584			Header:         res.Header,
76585			HTTPStatusCode: res.StatusCode,
76586		},
76587	}
76588	target := &ret
76589	if err := gensupport.DecodeResponse(target, res); err != nil {
76590		return nil, err
76591	}
76592	return ret, nil
76593	// {
76594	//   "description": "Deletes the specified target pool.",
76595	//   "httpMethod": "DELETE",
76596	//   "id": "compute.targetPools.delete",
76597	//   "parameterOrder": [
76598	//     "project",
76599	//     "region",
76600	//     "targetPool"
76601	//   ],
76602	//   "parameters": {
76603	//     "project": {
76604	//       "description": "Project ID for this request.",
76605	//       "location": "path",
76606	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76607	//       "required": true,
76608	//       "type": "string"
76609	//     },
76610	//     "region": {
76611	//       "description": "Name of the region scoping this request.",
76612	//       "location": "path",
76613	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
76614	//       "required": true,
76615	//       "type": "string"
76616	//     },
76617	//     "requestId": {
76618	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76619	//       "location": "query",
76620	//       "type": "string"
76621	//     },
76622	//     "targetPool": {
76623	//       "description": "Name of the TargetPool resource to delete.",
76624	//       "location": "path",
76625	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
76626	//       "required": true,
76627	//       "type": "string"
76628	//     }
76629	//   },
76630	//   "path": "{project}/regions/{region}/targetPools/{targetPool}",
76631	//   "response": {
76632	//     "$ref": "Operation"
76633	//   },
76634	//   "scopes": [
76635	//     "https://www.googleapis.com/auth/cloud-platform",
76636	//     "https://www.googleapis.com/auth/compute"
76637	//   ]
76638	// }
76639
76640}
76641
76642// method id "compute.targetPools.get":
76643
76644type TargetPoolsGetCall struct {
76645	s            *Service
76646	project      string
76647	region       string
76648	targetPool   string
76649	urlParams_   gensupport.URLParams
76650	ifNoneMatch_ string
76651	ctx_         context.Context
76652	header_      http.Header
76653}
76654
76655// Get: Returns the specified target pool. Gets a list of available
76656// target pools by making a list() request.
76657// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/get
76658func (r *TargetPoolsService) Get(project string, region string, targetPool string) *TargetPoolsGetCall {
76659	c := &TargetPoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76660	c.project = project
76661	c.region = region
76662	c.targetPool = targetPool
76663	return c
76664}
76665
76666// Fields allows partial responses to be retrieved. See
76667// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76668// for more information.
76669func (c *TargetPoolsGetCall) Fields(s ...googleapi.Field) *TargetPoolsGetCall {
76670	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76671	return c
76672}
76673
76674// IfNoneMatch sets the optional parameter which makes the operation
76675// fail if the object's ETag matches the given value. This is useful for
76676// getting updates only after the object has changed since the last
76677// request. Use googleapi.IsNotModified to check whether the response
76678// error from Do is the result of In-None-Match.
76679func (c *TargetPoolsGetCall) IfNoneMatch(entityTag string) *TargetPoolsGetCall {
76680	c.ifNoneMatch_ = entityTag
76681	return c
76682}
76683
76684// Context sets the context to be used in this call's Do method. Any
76685// pending HTTP request will be aborted if the provided context is
76686// canceled.
76687func (c *TargetPoolsGetCall) Context(ctx context.Context) *TargetPoolsGetCall {
76688	c.ctx_ = ctx
76689	return c
76690}
76691
76692// Header returns an http.Header that can be modified by the caller to
76693// add HTTP headers to the request.
76694func (c *TargetPoolsGetCall) Header() http.Header {
76695	if c.header_ == nil {
76696		c.header_ = make(http.Header)
76697	}
76698	return c.header_
76699}
76700
76701func (c *TargetPoolsGetCall) doRequest(alt string) (*http.Response, error) {
76702	reqHeaders := make(http.Header)
76703	for k, v := range c.header_ {
76704		reqHeaders[k] = v
76705	}
76706	reqHeaders.Set("User-Agent", c.s.userAgent())
76707	if c.ifNoneMatch_ != "" {
76708		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76709	}
76710	var body io.Reader = nil
76711	c.urlParams_.Set("alt", alt)
76712	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}")
76713	urls += "?" + c.urlParams_.Encode()
76714	req, _ := http.NewRequest("GET", urls, body)
76715	req.Header = reqHeaders
76716	googleapi.Expand(req.URL, map[string]string{
76717		"project":    c.project,
76718		"region":     c.region,
76719		"targetPool": c.targetPool,
76720	})
76721	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76722}
76723
76724// Do executes the "compute.targetPools.get" call.
76725// Exactly one of *TargetPool or error will be non-nil. Any non-2xx
76726// status code is an error. Response headers are in either
76727// *TargetPool.ServerResponse.Header or (if a response was returned at
76728// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76729// to check whether the returned error was because
76730// http.StatusNotModified was returned.
76731func (c *TargetPoolsGetCall) Do(opts ...googleapi.CallOption) (*TargetPool, error) {
76732	gensupport.SetOptions(c.urlParams_, opts...)
76733	res, err := c.doRequest("json")
76734	if res != nil && res.StatusCode == http.StatusNotModified {
76735		if res.Body != nil {
76736			res.Body.Close()
76737		}
76738		return nil, &googleapi.Error{
76739			Code:   res.StatusCode,
76740			Header: res.Header,
76741		}
76742	}
76743	if err != nil {
76744		return nil, err
76745	}
76746	defer googleapi.CloseBody(res)
76747	if err := googleapi.CheckResponse(res); err != nil {
76748		return nil, err
76749	}
76750	ret := &TargetPool{
76751		ServerResponse: googleapi.ServerResponse{
76752			Header:         res.Header,
76753			HTTPStatusCode: res.StatusCode,
76754		},
76755	}
76756	target := &ret
76757	if err := gensupport.DecodeResponse(target, res); err != nil {
76758		return nil, err
76759	}
76760	return ret, nil
76761	// {
76762	//   "description": "Returns the specified target pool. Gets a list of available target pools by making a list() request.",
76763	//   "httpMethod": "GET",
76764	//   "id": "compute.targetPools.get",
76765	//   "parameterOrder": [
76766	//     "project",
76767	//     "region",
76768	//     "targetPool"
76769	//   ],
76770	//   "parameters": {
76771	//     "project": {
76772	//       "description": "Project ID for this request.",
76773	//       "location": "path",
76774	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76775	//       "required": true,
76776	//       "type": "string"
76777	//     },
76778	//     "region": {
76779	//       "description": "Name of the region scoping this request.",
76780	//       "location": "path",
76781	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
76782	//       "required": true,
76783	//       "type": "string"
76784	//     },
76785	//     "targetPool": {
76786	//       "description": "Name of the TargetPool resource to return.",
76787	//       "location": "path",
76788	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
76789	//       "required": true,
76790	//       "type": "string"
76791	//     }
76792	//   },
76793	//   "path": "{project}/regions/{region}/targetPools/{targetPool}",
76794	//   "response": {
76795	//     "$ref": "TargetPool"
76796	//   },
76797	//   "scopes": [
76798	//     "https://www.googleapis.com/auth/cloud-platform",
76799	//     "https://www.googleapis.com/auth/compute",
76800	//     "https://www.googleapis.com/auth/compute.readonly"
76801	//   ]
76802	// }
76803
76804}
76805
76806// method id "compute.targetPools.getHealth":
76807
76808type TargetPoolsGetHealthCall struct {
76809	s                 *Service
76810	project           string
76811	region            string
76812	targetPool        string
76813	instancereference *InstanceReference
76814	urlParams_        gensupport.URLParams
76815	ctx_              context.Context
76816	header_           http.Header
76817}
76818
76819// GetHealth: Gets the most recent health check results for each IP for
76820// the instance that is referenced by the given target pool.
76821// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/getHealth
76822func (r *TargetPoolsService) GetHealth(project string, region string, targetPool string, instancereference *InstanceReference) *TargetPoolsGetHealthCall {
76823	c := &TargetPoolsGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76824	c.project = project
76825	c.region = region
76826	c.targetPool = targetPool
76827	c.instancereference = instancereference
76828	return c
76829}
76830
76831// Fields allows partial responses to be retrieved. See
76832// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76833// for more information.
76834func (c *TargetPoolsGetHealthCall) Fields(s ...googleapi.Field) *TargetPoolsGetHealthCall {
76835	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76836	return c
76837}
76838
76839// Context sets the context to be used in this call's Do method. Any
76840// pending HTTP request will be aborted if the provided context is
76841// canceled.
76842func (c *TargetPoolsGetHealthCall) Context(ctx context.Context) *TargetPoolsGetHealthCall {
76843	c.ctx_ = ctx
76844	return c
76845}
76846
76847// Header returns an http.Header that can be modified by the caller to
76848// add HTTP headers to the request.
76849func (c *TargetPoolsGetHealthCall) Header() http.Header {
76850	if c.header_ == nil {
76851		c.header_ = make(http.Header)
76852	}
76853	return c.header_
76854}
76855
76856func (c *TargetPoolsGetHealthCall) doRequest(alt string) (*http.Response, error) {
76857	reqHeaders := make(http.Header)
76858	for k, v := range c.header_ {
76859		reqHeaders[k] = v
76860	}
76861	reqHeaders.Set("User-Agent", c.s.userAgent())
76862	var body io.Reader = nil
76863	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancereference)
76864	if err != nil {
76865		return nil, err
76866	}
76867	reqHeaders.Set("Content-Type", "application/json")
76868	c.urlParams_.Set("alt", alt)
76869	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/getHealth")
76870	urls += "?" + c.urlParams_.Encode()
76871	req, _ := http.NewRequest("POST", urls, body)
76872	req.Header = reqHeaders
76873	googleapi.Expand(req.URL, map[string]string{
76874		"project":    c.project,
76875		"region":     c.region,
76876		"targetPool": c.targetPool,
76877	})
76878	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76879}
76880
76881// Do executes the "compute.targetPools.getHealth" call.
76882// Exactly one of *TargetPoolInstanceHealth or error will be non-nil.
76883// Any non-2xx status code is an error. Response headers are in either
76884// *TargetPoolInstanceHealth.ServerResponse.Header or (if a response was
76885// returned at all) in error.(*googleapi.Error).Header. Use
76886// googleapi.IsNotModified to check whether the returned error was
76887// because http.StatusNotModified was returned.
76888func (c *TargetPoolsGetHealthCall) Do(opts ...googleapi.CallOption) (*TargetPoolInstanceHealth, error) {
76889	gensupport.SetOptions(c.urlParams_, opts...)
76890	res, err := c.doRequest("json")
76891	if res != nil && res.StatusCode == http.StatusNotModified {
76892		if res.Body != nil {
76893			res.Body.Close()
76894		}
76895		return nil, &googleapi.Error{
76896			Code:   res.StatusCode,
76897			Header: res.Header,
76898		}
76899	}
76900	if err != nil {
76901		return nil, err
76902	}
76903	defer googleapi.CloseBody(res)
76904	if err := googleapi.CheckResponse(res); err != nil {
76905		return nil, err
76906	}
76907	ret := &TargetPoolInstanceHealth{
76908		ServerResponse: googleapi.ServerResponse{
76909			Header:         res.Header,
76910			HTTPStatusCode: res.StatusCode,
76911		},
76912	}
76913	target := &ret
76914	if err := gensupport.DecodeResponse(target, res); err != nil {
76915		return nil, err
76916	}
76917	return ret, nil
76918	// {
76919	//   "description": "Gets the most recent health check results for each IP for the instance that is referenced by the given target pool.",
76920	//   "httpMethod": "POST",
76921	//   "id": "compute.targetPools.getHealth",
76922	//   "parameterOrder": [
76923	//     "project",
76924	//     "region",
76925	//     "targetPool"
76926	//   ],
76927	//   "parameters": {
76928	//     "project": {
76929	//       "description": "Project ID for this request.",
76930	//       "location": "path",
76931	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76932	//       "required": true,
76933	//       "type": "string"
76934	//     },
76935	//     "region": {
76936	//       "description": "Name of the region scoping this request.",
76937	//       "location": "path",
76938	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
76939	//       "required": true,
76940	//       "type": "string"
76941	//     },
76942	//     "targetPool": {
76943	//       "description": "Name of the TargetPool resource to which the queried instance belongs.",
76944	//       "location": "path",
76945	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
76946	//       "required": true,
76947	//       "type": "string"
76948	//     }
76949	//   },
76950	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/getHealth",
76951	//   "request": {
76952	//     "$ref": "InstanceReference"
76953	//   },
76954	//   "response": {
76955	//     "$ref": "TargetPoolInstanceHealth"
76956	//   },
76957	//   "scopes": [
76958	//     "https://www.googleapis.com/auth/cloud-platform",
76959	//     "https://www.googleapis.com/auth/compute",
76960	//     "https://www.googleapis.com/auth/compute.readonly"
76961	//   ]
76962	// }
76963
76964}
76965
76966// method id "compute.targetPools.insert":
76967
76968type TargetPoolsInsertCall struct {
76969	s          *Service
76970	project    string
76971	region     string
76972	targetpool *TargetPool
76973	urlParams_ gensupport.URLParams
76974	ctx_       context.Context
76975	header_    http.Header
76976}
76977
76978// Insert: Creates a target pool in the specified project and region
76979// using the data included in the request.
76980// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/insert
76981func (r *TargetPoolsService) Insert(project string, region string, targetpool *TargetPool) *TargetPoolsInsertCall {
76982	c := &TargetPoolsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76983	c.project = project
76984	c.region = region
76985	c.targetpool = targetpool
76986	return c
76987}
76988
76989// RequestId sets the optional parameter "requestId": An optional
76990// request ID to identify requests. Specify a unique request ID so that
76991// if you must retry your request, the server will know to ignore the
76992// request if it has already been completed.
76993//
76994// For example, consider a situation where you make an initial request
76995// and the request times out. If you make the request again with the
76996// same request ID, the server can check if original operation with the
76997// same request ID was received, and if so, will ignore the second
76998// request. This prevents clients from accidentally creating duplicate
76999// commitments.
77000//
77001// The request ID must be a valid UUID with the exception that zero UUID
77002// is not supported (00000000-0000-0000-0000-000000000000).
77003func (c *TargetPoolsInsertCall) RequestId(requestId string) *TargetPoolsInsertCall {
77004	c.urlParams_.Set("requestId", requestId)
77005	return c
77006}
77007
77008// Fields allows partial responses to be retrieved. See
77009// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77010// for more information.
77011func (c *TargetPoolsInsertCall) Fields(s ...googleapi.Field) *TargetPoolsInsertCall {
77012	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77013	return c
77014}
77015
77016// Context sets the context to be used in this call's Do method. Any
77017// pending HTTP request will be aborted if the provided context is
77018// canceled.
77019func (c *TargetPoolsInsertCall) Context(ctx context.Context) *TargetPoolsInsertCall {
77020	c.ctx_ = ctx
77021	return c
77022}
77023
77024// Header returns an http.Header that can be modified by the caller to
77025// add HTTP headers to the request.
77026func (c *TargetPoolsInsertCall) Header() http.Header {
77027	if c.header_ == nil {
77028		c.header_ = make(http.Header)
77029	}
77030	return c.header_
77031}
77032
77033func (c *TargetPoolsInsertCall) doRequest(alt string) (*http.Response, error) {
77034	reqHeaders := make(http.Header)
77035	for k, v := range c.header_ {
77036		reqHeaders[k] = v
77037	}
77038	reqHeaders.Set("User-Agent", c.s.userAgent())
77039	var body io.Reader = nil
77040	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpool)
77041	if err != nil {
77042		return nil, err
77043	}
77044	reqHeaders.Set("Content-Type", "application/json")
77045	c.urlParams_.Set("alt", alt)
77046	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools")
77047	urls += "?" + c.urlParams_.Encode()
77048	req, _ := http.NewRequest("POST", urls, body)
77049	req.Header = reqHeaders
77050	googleapi.Expand(req.URL, map[string]string{
77051		"project": c.project,
77052		"region":  c.region,
77053	})
77054	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77055}
77056
77057// Do executes the "compute.targetPools.insert" call.
77058// Exactly one of *Operation or error will be non-nil. Any non-2xx
77059// status code is an error. Response headers are in either
77060// *Operation.ServerResponse.Header or (if a response was returned at
77061// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77062// to check whether the returned error was because
77063// http.StatusNotModified was returned.
77064func (c *TargetPoolsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77065	gensupport.SetOptions(c.urlParams_, opts...)
77066	res, err := c.doRequest("json")
77067	if res != nil && res.StatusCode == http.StatusNotModified {
77068		if res.Body != nil {
77069			res.Body.Close()
77070		}
77071		return nil, &googleapi.Error{
77072			Code:   res.StatusCode,
77073			Header: res.Header,
77074		}
77075	}
77076	if err != nil {
77077		return nil, err
77078	}
77079	defer googleapi.CloseBody(res)
77080	if err := googleapi.CheckResponse(res); err != nil {
77081		return nil, err
77082	}
77083	ret := &Operation{
77084		ServerResponse: googleapi.ServerResponse{
77085			Header:         res.Header,
77086			HTTPStatusCode: res.StatusCode,
77087		},
77088	}
77089	target := &ret
77090	if err := gensupport.DecodeResponse(target, res); err != nil {
77091		return nil, err
77092	}
77093	return ret, nil
77094	// {
77095	//   "description": "Creates a target pool in the specified project and region using the data included in the request.",
77096	//   "httpMethod": "POST",
77097	//   "id": "compute.targetPools.insert",
77098	//   "parameterOrder": [
77099	//     "project",
77100	//     "region"
77101	//   ],
77102	//   "parameters": {
77103	//     "project": {
77104	//       "description": "Project ID for this request.",
77105	//       "location": "path",
77106	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77107	//       "required": true,
77108	//       "type": "string"
77109	//     },
77110	//     "region": {
77111	//       "description": "Name of the region scoping this request.",
77112	//       "location": "path",
77113	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77114	//       "required": true,
77115	//       "type": "string"
77116	//     },
77117	//     "requestId": {
77118	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77119	//       "location": "query",
77120	//       "type": "string"
77121	//     }
77122	//   },
77123	//   "path": "{project}/regions/{region}/targetPools",
77124	//   "request": {
77125	//     "$ref": "TargetPool"
77126	//   },
77127	//   "response": {
77128	//     "$ref": "Operation"
77129	//   },
77130	//   "scopes": [
77131	//     "https://www.googleapis.com/auth/cloud-platform",
77132	//     "https://www.googleapis.com/auth/compute"
77133	//   ]
77134	// }
77135
77136}
77137
77138// method id "compute.targetPools.list":
77139
77140type TargetPoolsListCall struct {
77141	s            *Service
77142	project      string
77143	region       string
77144	urlParams_   gensupport.URLParams
77145	ifNoneMatch_ string
77146	ctx_         context.Context
77147	header_      http.Header
77148}
77149
77150// List: Retrieves a list of target pools available to the specified
77151// project and region.
77152// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/list
77153func (r *TargetPoolsService) List(project string, region string) *TargetPoolsListCall {
77154	c := &TargetPoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77155	c.project = project
77156	c.region = region
77157	return c
77158}
77159
77160// Filter sets the optional parameter "filter": A filter expression that
77161// filters resources listed in the response. The expression must specify
77162// the field name, a comparison operator, and the value that you want to
77163// use for filtering. The value must be a string, a number, or a
77164// boolean. The comparison operator must be either =, !=, >, or <.
77165//
77166// For example, if you are filtering Compute Engine instances, you can
77167// exclude instances named example-instance by specifying name !=
77168// example-instance.
77169//
77170// You can also filter nested fields. For example, you could specify
77171// scheduling.automaticRestart = false to include instances only if they
77172// are not scheduled for automatic restarts. You can use filtering on
77173// nested fields to filter based on resource labels.
77174//
77175// To filter on multiple expressions, provide each separate expression
77176// within parentheses. For example, (scheduling.automaticRestart = true)
77177// (cpuPlatform = "Intel Skylake"). By default, each expression is an
77178// AND expression. However, you can include AND and OR expressions
77179// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
77180// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
77181// true).
77182func (c *TargetPoolsListCall) Filter(filter string) *TargetPoolsListCall {
77183	c.urlParams_.Set("filter", filter)
77184	return c
77185}
77186
77187// MaxResults sets the optional parameter "maxResults": The maximum
77188// number of results per page that should be returned. If the number of
77189// available results is larger than maxResults, Compute Engine returns a
77190// nextPageToken that can be used to get the next page of results in
77191// subsequent list requests. Acceptable values are 0 to 500, inclusive.
77192// (Default: 500)
77193func (c *TargetPoolsListCall) MaxResults(maxResults int64) *TargetPoolsListCall {
77194	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
77195	return c
77196}
77197
77198// OrderBy sets the optional parameter "orderBy": Sorts list results by
77199// a certain order. By default, results are returned in alphanumerical
77200// order based on the resource name.
77201//
77202// You can also sort results in descending order based on the creation
77203// timestamp using orderBy="creationTimestamp desc". This sorts results
77204// based on the creationTimestamp field in reverse chronological order
77205// (newest result first). Use this to sort resources like operations so
77206// that the newest operation is returned first.
77207//
77208// Currently, only sorting by name or creationTimestamp desc is
77209// supported.
77210func (c *TargetPoolsListCall) OrderBy(orderBy string) *TargetPoolsListCall {
77211	c.urlParams_.Set("orderBy", orderBy)
77212	return c
77213}
77214
77215// PageToken sets the optional parameter "pageToken": Specifies a page
77216// token to use. Set pageToken to the nextPageToken returned by a
77217// previous list request to get the next page of results.
77218func (c *TargetPoolsListCall) PageToken(pageToken string) *TargetPoolsListCall {
77219	c.urlParams_.Set("pageToken", pageToken)
77220	return c
77221}
77222
77223// Fields allows partial responses to be retrieved. See
77224// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77225// for more information.
77226func (c *TargetPoolsListCall) Fields(s ...googleapi.Field) *TargetPoolsListCall {
77227	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77228	return c
77229}
77230
77231// IfNoneMatch sets the optional parameter which makes the operation
77232// fail if the object's ETag matches the given value. This is useful for
77233// getting updates only after the object has changed since the last
77234// request. Use googleapi.IsNotModified to check whether the response
77235// error from Do is the result of In-None-Match.
77236func (c *TargetPoolsListCall) IfNoneMatch(entityTag string) *TargetPoolsListCall {
77237	c.ifNoneMatch_ = entityTag
77238	return c
77239}
77240
77241// Context sets the context to be used in this call's Do method. Any
77242// pending HTTP request will be aborted if the provided context is
77243// canceled.
77244func (c *TargetPoolsListCall) Context(ctx context.Context) *TargetPoolsListCall {
77245	c.ctx_ = ctx
77246	return c
77247}
77248
77249// Header returns an http.Header that can be modified by the caller to
77250// add HTTP headers to the request.
77251func (c *TargetPoolsListCall) Header() http.Header {
77252	if c.header_ == nil {
77253		c.header_ = make(http.Header)
77254	}
77255	return c.header_
77256}
77257
77258func (c *TargetPoolsListCall) doRequest(alt string) (*http.Response, error) {
77259	reqHeaders := make(http.Header)
77260	for k, v := range c.header_ {
77261		reqHeaders[k] = v
77262	}
77263	reqHeaders.Set("User-Agent", c.s.userAgent())
77264	if c.ifNoneMatch_ != "" {
77265		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
77266	}
77267	var body io.Reader = nil
77268	c.urlParams_.Set("alt", alt)
77269	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools")
77270	urls += "?" + c.urlParams_.Encode()
77271	req, _ := http.NewRequest("GET", urls, body)
77272	req.Header = reqHeaders
77273	googleapi.Expand(req.URL, map[string]string{
77274		"project": c.project,
77275		"region":  c.region,
77276	})
77277	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77278}
77279
77280// Do executes the "compute.targetPools.list" call.
77281// Exactly one of *TargetPoolList or error will be non-nil. Any non-2xx
77282// status code is an error. Response headers are in either
77283// *TargetPoolList.ServerResponse.Header or (if a response was returned
77284// at all) in error.(*googleapi.Error).Header. Use
77285// googleapi.IsNotModified to check whether the returned error was
77286// because http.StatusNotModified was returned.
77287func (c *TargetPoolsListCall) Do(opts ...googleapi.CallOption) (*TargetPoolList, error) {
77288	gensupport.SetOptions(c.urlParams_, opts...)
77289	res, err := c.doRequest("json")
77290	if res != nil && res.StatusCode == http.StatusNotModified {
77291		if res.Body != nil {
77292			res.Body.Close()
77293		}
77294		return nil, &googleapi.Error{
77295			Code:   res.StatusCode,
77296			Header: res.Header,
77297		}
77298	}
77299	if err != nil {
77300		return nil, err
77301	}
77302	defer googleapi.CloseBody(res)
77303	if err := googleapi.CheckResponse(res); err != nil {
77304		return nil, err
77305	}
77306	ret := &TargetPoolList{
77307		ServerResponse: googleapi.ServerResponse{
77308			Header:         res.Header,
77309			HTTPStatusCode: res.StatusCode,
77310		},
77311	}
77312	target := &ret
77313	if err := gensupport.DecodeResponse(target, res); err != nil {
77314		return nil, err
77315	}
77316	return ret, nil
77317	// {
77318	//   "description": "Retrieves a list of target pools available to the specified project and region.",
77319	//   "httpMethod": "GET",
77320	//   "id": "compute.targetPools.list",
77321	//   "parameterOrder": [
77322	//     "project",
77323	//     "region"
77324	//   ],
77325	//   "parameters": {
77326	//     "filter": {
77327	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
77328	//       "location": "query",
77329	//       "type": "string"
77330	//     },
77331	//     "maxResults": {
77332	//       "default": "500",
77333	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
77334	//       "format": "uint32",
77335	//       "location": "query",
77336	//       "minimum": "0",
77337	//       "type": "integer"
77338	//     },
77339	//     "orderBy": {
77340	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
77341	//       "location": "query",
77342	//       "type": "string"
77343	//     },
77344	//     "pageToken": {
77345	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
77346	//       "location": "query",
77347	//       "type": "string"
77348	//     },
77349	//     "project": {
77350	//       "description": "Project ID for this request.",
77351	//       "location": "path",
77352	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77353	//       "required": true,
77354	//       "type": "string"
77355	//     },
77356	//     "region": {
77357	//       "description": "Name of the region scoping this request.",
77358	//       "location": "path",
77359	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77360	//       "required": true,
77361	//       "type": "string"
77362	//     }
77363	//   },
77364	//   "path": "{project}/regions/{region}/targetPools",
77365	//   "response": {
77366	//     "$ref": "TargetPoolList"
77367	//   },
77368	//   "scopes": [
77369	//     "https://www.googleapis.com/auth/cloud-platform",
77370	//     "https://www.googleapis.com/auth/compute",
77371	//     "https://www.googleapis.com/auth/compute.readonly"
77372	//   ]
77373	// }
77374
77375}
77376
77377// Pages invokes f for each page of results.
77378// A non-nil error returned from f will halt the iteration.
77379// The provided context supersedes any context provided to the Context method.
77380func (c *TargetPoolsListCall) Pages(ctx context.Context, f func(*TargetPoolList) error) error {
77381	c.ctx_ = ctx
77382	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
77383	for {
77384		x, err := c.Do()
77385		if err != nil {
77386			return err
77387		}
77388		if err := f(x); err != nil {
77389			return err
77390		}
77391		if x.NextPageToken == "" {
77392			return nil
77393		}
77394		c.PageToken(x.NextPageToken)
77395	}
77396}
77397
77398// method id "compute.targetPools.removeHealthCheck":
77399
77400type TargetPoolsRemoveHealthCheckCall struct {
77401	s                                   *Service
77402	project                             string
77403	region                              string
77404	targetPool                          string
77405	targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest
77406	urlParams_                          gensupport.URLParams
77407	ctx_                                context.Context
77408	header_                             http.Header
77409}
77410
77411// RemoveHealthCheck: Removes health check URL from a target pool.
77412// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeHealthCheck
77413func (r *TargetPoolsService) RemoveHealthCheck(project string, region string, targetPool string, targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest) *TargetPoolsRemoveHealthCheckCall {
77414	c := &TargetPoolsRemoveHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77415	c.project = project
77416	c.region = region
77417	c.targetPool = targetPool
77418	c.targetpoolsremovehealthcheckrequest = targetpoolsremovehealthcheckrequest
77419	return c
77420}
77421
77422// RequestId sets the optional parameter "requestId": An optional
77423// request ID to identify requests. Specify a unique request ID so that
77424// if you must retry your request, the server will know to ignore the
77425// request if it has already been completed.
77426//
77427// For example, consider a situation where you make an initial request
77428// and the request times out. If you make the request again with the
77429// same request ID, the server can check if original operation with the
77430// same request ID was received, and if so, will ignore the second
77431// request. This prevents clients from accidentally creating duplicate
77432// commitments.
77433//
77434// The request ID must be a valid UUID with the exception that zero UUID
77435// is not supported (00000000-0000-0000-0000-000000000000).
77436func (c *TargetPoolsRemoveHealthCheckCall) RequestId(requestId string) *TargetPoolsRemoveHealthCheckCall {
77437	c.urlParams_.Set("requestId", requestId)
77438	return c
77439}
77440
77441// Fields allows partial responses to be retrieved. See
77442// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77443// for more information.
77444func (c *TargetPoolsRemoveHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveHealthCheckCall {
77445	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77446	return c
77447}
77448
77449// Context sets the context to be used in this call's Do method. Any
77450// pending HTTP request will be aborted if the provided context is
77451// canceled.
77452func (c *TargetPoolsRemoveHealthCheckCall) Context(ctx context.Context) *TargetPoolsRemoveHealthCheckCall {
77453	c.ctx_ = ctx
77454	return c
77455}
77456
77457// Header returns an http.Header that can be modified by the caller to
77458// add HTTP headers to the request.
77459func (c *TargetPoolsRemoveHealthCheckCall) Header() http.Header {
77460	if c.header_ == nil {
77461		c.header_ = make(http.Header)
77462	}
77463	return c.header_
77464}
77465
77466func (c *TargetPoolsRemoveHealthCheckCall) doRequest(alt string) (*http.Response, error) {
77467	reqHeaders := make(http.Header)
77468	for k, v := range c.header_ {
77469		reqHeaders[k] = v
77470	}
77471	reqHeaders.Set("User-Agent", c.s.userAgent())
77472	var body io.Reader = nil
77473	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremovehealthcheckrequest)
77474	if err != nil {
77475		return nil, err
77476	}
77477	reqHeaders.Set("Content-Type", "application/json")
77478	c.urlParams_.Set("alt", alt)
77479	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck")
77480	urls += "?" + c.urlParams_.Encode()
77481	req, _ := http.NewRequest("POST", urls, body)
77482	req.Header = reqHeaders
77483	googleapi.Expand(req.URL, map[string]string{
77484		"project":    c.project,
77485		"region":     c.region,
77486		"targetPool": c.targetPool,
77487	})
77488	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77489}
77490
77491// Do executes the "compute.targetPools.removeHealthCheck" call.
77492// Exactly one of *Operation or error will be non-nil. Any non-2xx
77493// status code is an error. Response headers are in either
77494// *Operation.ServerResponse.Header or (if a response was returned at
77495// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77496// to check whether the returned error was because
77497// http.StatusNotModified was returned.
77498func (c *TargetPoolsRemoveHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77499	gensupport.SetOptions(c.urlParams_, opts...)
77500	res, err := c.doRequest("json")
77501	if res != nil && res.StatusCode == http.StatusNotModified {
77502		if res.Body != nil {
77503			res.Body.Close()
77504		}
77505		return nil, &googleapi.Error{
77506			Code:   res.StatusCode,
77507			Header: res.Header,
77508		}
77509	}
77510	if err != nil {
77511		return nil, err
77512	}
77513	defer googleapi.CloseBody(res)
77514	if err := googleapi.CheckResponse(res); err != nil {
77515		return nil, err
77516	}
77517	ret := &Operation{
77518		ServerResponse: googleapi.ServerResponse{
77519			Header:         res.Header,
77520			HTTPStatusCode: res.StatusCode,
77521		},
77522	}
77523	target := &ret
77524	if err := gensupport.DecodeResponse(target, res); err != nil {
77525		return nil, err
77526	}
77527	return ret, nil
77528	// {
77529	//   "description": "Removes health check URL from a target pool.",
77530	//   "httpMethod": "POST",
77531	//   "id": "compute.targetPools.removeHealthCheck",
77532	//   "parameterOrder": [
77533	//     "project",
77534	//     "region",
77535	//     "targetPool"
77536	//   ],
77537	//   "parameters": {
77538	//     "project": {
77539	//       "description": "Project ID for this request.",
77540	//       "location": "path",
77541	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77542	//       "required": true,
77543	//       "type": "string"
77544	//     },
77545	//     "region": {
77546	//       "description": "Name of the region for this request.",
77547	//       "location": "path",
77548	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77549	//       "required": true,
77550	//       "type": "string"
77551	//     },
77552	//     "requestId": {
77553	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77554	//       "location": "query",
77555	//       "type": "string"
77556	//     },
77557	//     "targetPool": {
77558	//       "description": "Name of the target pool to remove health checks from.",
77559	//       "location": "path",
77560	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77561	//       "required": true,
77562	//       "type": "string"
77563	//     }
77564	//   },
77565	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck",
77566	//   "request": {
77567	//     "$ref": "TargetPoolsRemoveHealthCheckRequest"
77568	//   },
77569	//   "response": {
77570	//     "$ref": "Operation"
77571	//   },
77572	//   "scopes": [
77573	//     "https://www.googleapis.com/auth/cloud-platform",
77574	//     "https://www.googleapis.com/auth/compute"
77575	//   ]
77576	// }
77577
77578}
77579
77580// method id "compute.targetPools.removeInstance":
77581
77582type TargetPoolsRemoveInstanceCall struct {
77583	s                                *Service
77584	project                          string
77585	region                           string
77586	targetPool                       string
77587	targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest
77588	urlParams_                       gensupport.URLParams
77589	ctx_                             context.Context
77590	header_                          http.Header
77591}
77592
77593// RemoveInstance: Removes instance URL from a target pool.
77594// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeInstance
77595func (r *TargetPoolsService) RemoveInstance(project string, region string, targetPool string, targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest) *TargetPoolsRemoveInstanceCall {
77596	c := &TargetPoolsRemoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77597	c.project = project
77598	c.region = region
77599	c.targetPool = targetPool
77600	c.targetpoolsremoveinstancerequest = targetpoolsremoveinstancerequest
77601	return c
77602}
77603
77604// RequestId sets the optional parameter "requestId": An optional
77605// request ID to identify requests. Specify a unique request ID so that
77606// if you must retry your request, the server will know to ignore the
77607// request if it has already been completed.
77608//
77609// For example, consider a situation where you make an initial request
77610// and the request times out. If you make the request again with the
77611// same request ID, the server can check if original operation with the
77612// same request ID was received, and if so, will ignore the second
77613// request. This prevents clients from accidentally creating duplicate
77614// commitments.
77615//
77616// The request ID must be a valid UUID with the exception that zero UUID
77617// is not supported (00000000-0000-0000-0000-000000000000).
77618func (c *TargetPoolsRemoveInstanceCall) RequestId(requestId string) *TargetPoolsRemoveInstanceCall {
77619	c.urlParams_.Set("requestId", requestId)
77620	return c
77621}
77622
77623// Fields allows partial responses to be retrieved. See
77624// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77625// for more information.
77626func (c *TargetPoolsRemoveInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveInstanceCall {
77627	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77628	return c
77629}
77630
77631// Context sets the context to be used in this call's Do method. Any
77632// pending HTTP request will be aborted if the provided context is
77633// canceled.
77634func (c *TargetPoolsRemoveInstanceCall) Context(ctx context.Context) *TargetPoolsRemoveInstanceCall {
77635	c.ctx_ = ctx
77636	return c
77637}
77638
77639// Header returns an http.Header that can be modified by the caller to
77640// add HTTP headers to the request.
77641func (c *TargetPoolsRemoveInstanceCall) Header() http.Header {
77642	if c.header_ == nil {
77643		c.header_ = make(http.Header)
77644	}
77645	return c.header_
77646}
77647
77648func (c *TargetPoolsRemoveInstanceCall) doRequest(alt string) (*http.Response, error) {
77649	reqHeaders := make(http.Header)
77650	for k, v := range c.header_ {
77651		reqHeaders[k] = v
77652	}
77653	reqHeaders.Set("User-Agent", c.s.userAgent())
77654	var body io.Reader = nil
77655	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremoveinstancerequest)
77656	if err != nil {
77657		return nil, err
77658	}
77659	reqHeaders.Set("Content-Type", "application/json")
77660	c.urlParams_.Set("alt", alt)
77661	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/removeInstance")
77662	urls += "?" + c.urlParams_.Encode()
77663	req, _ := http.NewRequest("POST", urls, body)
77664	req.Header = reqHeaders
77665	googleapi.Expand(req.URL, map[string]string{
77666		"project":    c.project,
77667		"region":     c.region,
77668		"targetPool": c.targetPool,
77669	})
77670	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77671}
77672
77673// Do executes the "compute.targetPools.removeInstance" call.
77674// Exactly one of *Operation or error will be non-nil. Any non-2xx
77675// status code is an error. Response headers are in either
77676// *Operation.ServerResponse.Header or (if a response was returned at
77677// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77678// to check whether the returned error was because
77679// http.StatusNotModified was returned.
77680func (c *TargetPoolsRemoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77681	gensupport.SetOptions(c.urlParams_, opts...)
77682	res, err := c.doRequest("json")
77683	if res != nil && res.StatusCode == http.StatusNotModified {
77684		if res.Body != nil {
77685			res.Body.Close()
77686		}
77687		return nil, &googleapi.Error{
77688			Code:   res.StatusCode,
77689			Header: res.Header,
77690		}
77691	}
77692	if err != nil {
77693		return nil, err
77694	}
77695	defer googleapi.CloseBody(res)
77696	if err := googleapi.CheckResponse(res); err != nil {
77697		return nil, err
77698	}
77699	ret := &Operation{
77700		ServerResponse: googleapi.ServerResponse{
77701			Header:         res.Header,
77702			HTTPStatusCode: res.StatusCode,
77703		},
77704	}
77705	target := &ret
77706	if err := gensupport.DecodeResponse(target, res); err != nil {
77707		return nil, err
77708	}
77709	return ret, nil
77710	// {
77711	//   "description": "Removes instance URL from a target pool.",
77712	//   "httpMethod": "POST",
77713	//   "id": "compute.targetPools.removeInstance",
77714	//   "parameterOrder": [
77715	//     "project",
77716	//     "region",
77717	//     "targetPool"
77718	//   ],
77719	//   "parameters": {
77720	//     "project": {
77721	//       "description": "Project ID for this request.",
77722	//       "location": "path",
77723	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77724	//       "required": true,
77725	//       "type": "string"
77726	//     },
77727	//     "region": {
77728	//       "description": "Name of the region scoping this request.",
77729	//       "location": "path",
77730	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77731	//       "required": true,
77732	//       "type": "string"
77733	//     },
77734	//     "requestId": {
77735	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77736	//       "location": "query",
77737	//       "type": "string"
77738	//     },
77739	//     "targetPool": {
77740	//       "description": "Name of the TargetPool resource to remove instances from.",
77741	//       "location": "path",
77742	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77743	//       "required": true,
77744	//       "type": "string"
77745	//     }
77746	//   },
77747	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/removeInstance",
77748	//   "request": {
77749	//     "$ref": "TargetPoolsRemoveInstanceRequest"
77750	//   },
77751	//   "response": {
77752	//     "$ref": "Operation"
77753	//   },
77754	//   "scopes": [
77755	//     "https://www.googleapis.com/auth/cloud-platform",
77756	//     "https://www.googleapis.com/auth/compute"
77757	//   ]
77758	// }
77759
77760}
77761
77762// method id "compute.targetPools.setBackup":
77763
77764type TargetPoolsSetBackupCall struct {
77765	s               *Service
77766	project         string
77767	region          string
77768	targetPool      string
77769	targetreference *TargetReference
77770	urlParams_      gensupport.URLParams
77771	ctx_            context.Context
77772	header_         http.Header
77773}
77774
77775// SetBackup: Changes a backup target pool's configurations.
77776// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/setBackup
77777func (r *TargetPoolsService) SetBackup(project string, region string, targetPool string, targetreference *TargetReference) *TargetPoolsSetBackupCall {
77778	c := &TargetPoolsSetBackupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77779	c.project = project
77780	c.region = region
77781	c.targetPool = targetPool
77782	c.targetreference = targetreference
77783	return c
77784}
77785
77786// FailoverRatio sets the optional parameter "failoverRatio": New
77787// failoverRatio value for the target pool.
77788func (c *TargetPoolsSetBackupCall) FailoverRatio(failoverRatio float64) *TargetPoolsSetBackupCall {
77789	c.urlParams_.Set("failoverRatio", fmt.Sprint(failoverRatio))
77790	return c
77791}
77792
77793// RequestId sets the optional parameter "requestId": An optional
77794// request ID to identify requests. Specify a unique request ID so that
77795// if you must retry your request, the server will know to ignore the
77796// request if it has already been completed.
77797//
77798// For example, consider a situation where you make an initial request
77799// and the request times out. If you make the request again with the
77800// same request ID, the server can check if original operation with the
77801// same request ID was received, and if so, will ignore the second
77802// request. This prevents clients from accidentally creating duplicate
77803// commitments.
77804//
77805// The request ID must be a valid UUID with the exception that zero UUID
77806// is not supported (00000000-0000-0000-0000-000000000000).
77807func (c *TargetPoolsSetBackupCall) RequestId(requestId string) *TargetPoolsSetBackupCall {
77808	c.urlParams_.Set("requestId", requestId)
77809	return c
77810}
77811
77812// Fields allows partial responses to be retrieved. See
77813// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77814// for more information.
77815func (c *TargetPoolsSetBackupCall) Fields(s ...googleapi.Field) *TargetPoolsSetBackupCall {
77816	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77817	return c
77818}
77819
77820// Context sets the context to be used in this call's Do method. Any
77821// pending HTTP request will be aborted if the provided context is
77822// canceled.
77823func (c *TargetPoolsSetBackupCall) Context(ctx context.Context) *TargetPoolsSetBackupCall {
77824	c.ctx_ = ctx
77825	return c
77826}
77827
77828// Header returns an http.Header that can be modified by the caller to
77829// add HTTP headers to the request.
77830func (c *TargetPoolsSetBackupCall) Header() http.Header {
77831	if c.header_ == nil {
77832		c.header_ = make(http.Header)
77833	}
77834	return c.header_
77835}
77836
77837func (c *TargetPoolsSetBackupCall) doRequest(alt string) (*http.Response, error) {
77838	reqHeaders := make(http.Header)
77839	for k, v := range c.header_ {
77840		reqHeaders[k] = v
77841	}
77842	reqHeaders.Set("User-Agent", c.s.userAgent())
77843	var body io.Reader = nil
77844	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
77845	if err != nil {
77846		return nil, err
77847	}
77848	reqHeaders.Set("Content-Type", "application/json")
77849	c.urlParams_.Set("alt", alt)
77850	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/setBackup")
77851	urls += "?" + c.urlParams_.Encode()
77852	req, _ := http.NewRequest("POST", urls, body)
77853	req.Header = reqHeaders
77854	googleapi.Expand(req.URL, map[string]string{
77855		"project":    c.project,
77856		"region":     c.region,
77857		"targetPool": c.targetPool,
77858	})
77859	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77860}
77861
77862// Do executes the "compute.targetPools.setBackup" call.
77863// Exactly one of *Operation or error will be non-nil. Any non-2xx
77864// status code is an error. Response headers are in either
77865// *Operation.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 *TargetPoolsSetBackupCall) Do(opts ...googleapi.CallOption) (*Operation, 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 := &Operation{
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": "Changes a backup target pool's configurations.",
77901	//   "httpMethod": "POST",
77902	//   "id": "compute.targetPools.setBackup",
77903	//   "parameterOrder": [
77904	//     "project",
77905	//     "region",
77906	//     "targetPool"
77907	//   ],
77908	//   "parameters": {
77909	//     "failoverRatio": {
77910	//       "description": "New failoverRatio value for the target pool.",
77911	//       "format": "float",
77912	//       "location": "query",
77913	//       "type": "number"
77914	//     },
77915	//     "project": {
77916	//       "description": "Project ID for this request.",
77917	//       "location": "path",
77918	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77919	//       "required": true,
77920	//       "type": "string"
77921	//     },
77922	//     "region": {
77923	//       "description": "Name of the region scoping this request.",
77924	//       "location": "path",
77925	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77926	//       "required": true,
77927	//       "type": "string"
77928	//     },
77929	//     "requestId": {
77930	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77931	//       "location": "query",
77932	//       "type": "string"
77933	//     },
77934	//     "targetPool": {
77935	//       "description": "Name of the TargetPool resource to set a backup pool for.",
77936	//       "location": "path",
77937	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77938	//       "required": true,
77939	//       "type": "string"
77940	//     }
77941	//   },
77942	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/setBackup",
77943	//   "request": {
77944	//     "$ref": "TargetReference"
77945	//   },
77946	//   "response": {
77947	//     "$ref": "Operation"
77948	//   },
77949	//   "scopes": [
77950	//     "https://www.googleapis.com/auth/cloud-platform",
77951	//     "https://www.googleapis.com/auth/compute"
77952	//   ]
77953	// }
77954
77955}
77956
77957// method id "compute.targetSslProxies.delete":
77958
77959type TargetSslProxiesDeleteCall struct {
77960	s              *Service
77961	project        string
77962	targetSslProxy string
77963	urlParams_     gensupport.URLParams
77964	ctx_           context.Context
77965	header_        http.Header
77966}
77967
77968// Delete: Deletes the specified TargetSslProxy resource.
77969func (r *TargetSslProxiesService) Delete(project string, targetSslProxy string) *TargetSslProxiesDeleteCall {
77970	c := &TargetSslProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77971	c.project = project
77972	c.targetSslProxy = targetSslProxy
77973	return c
77974}
77975
77976// RequestId sets the optional parameter "requestId": An optional
77977// request ID to identify requests. Specify a unique request ID so that
77978// if you must retry your request, the server will know to ignore the
77979// request if it has already been completed.
77980//
77981// For example, consider a situation where you make an initial request
77982// and the request times out. If you make the request again with the
77983// same request ID, the server can check if original operation with the
77984// same request ID was received, and if so, will ignore the second
77985// request. This prevents clients from accidentally creating duplicate
77986// commitments.
77987//
77988// The request ID must be a valid UUID with the exception that zero UUID
77989// is not supported (00000000-0000-0000-0000-000000000000).
77990func (c *TargetSslProxiesDeleteCall) RequestId(requestId string) *TargetSslProxiesDeleteCall {
77991	c.urlParams_.Set("requestId", requestId)
77992	return c
77993}
77994
77995// Fields allows partial responses to be retrieved. See
77996// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77997// for more information.
77998func (c *TargetSslProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetSslProxiesDeleteCall {
77999	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78000	return c
78001}
78002
78003// Context sets the context to be used in this call's Do method. Any
78004// pending HTTP request will be aborted if the provided context is
78005// canceled.
78006func (c *TargetSslProxiesDeleteCall) Context(ctx context.Context) *TargetSslProxiesDeleteCall {
78007	c.ctx_ = ctx
78008	return c
78009}
78010
78011// Header returns an http.Header that can be modified by the caller to
78012// add HTTP headers to the request.
78013func (c *TargetSslProxiesDeleteCall) Header() http.Header {
78014	if c.header_ == nil {
78015		c.header_ = make(http.Header)
78016	}
78017	return c.header_
78018}
78019
78020func (c *TargetSslProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
78021	reqHeaders := make(http.Header)
78022	for k, v := range c.header_ {
78023		reqHeaders[k] = v
78024	}
78025	reqHeaders.Set("User-Agent", c.s.userAgent())
78026	var body io.Reader = nil
78027	c.urlParams_.Set("alt", alt)
78028	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}")
78029	urls += "?" + c.urlParams_.Encode()
78030	req, _ := http.NewRequest("DELETE", urls, body)
78031	req.Header = reqHeaders
78032	googleapi.Expand(req.URL, map[string]string{
78033		"project":        c.project,
78034		"targetSslProxy": c.targetSslProxy,
78035	})
78036	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78037}
78038
78039// Do executes the "compute.targetSslProxies.delete" call.
78040// Exactly one of *Operation or error will be non-nil. Any non-2xx
78041// status code is an error. Response headers are in either
78042// *Operation.ServerResponse.Header or (if a response was returned at
78043// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78044// to check whether the returned error was because
78045// http.StatusNotModified was returned.
78046func (c *TargetSslProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78047	gensupport.SetOptions(c.urlParams_, opts...)
78048	res, err := c.doRequest("json")
78049	if res != nil && res.StatusCode == http.StatusNotModified {
78050		if res.Body != nil {
78051			res.Body.Close()
78052		}
78053		return nil, &googleapi.Error{
78054			Code:   res.StatusCode,
78055			Header: res.Header,
78056		}
78057	}
78058	if err != nil {
78059		return nil, err
78060	}
78061	defer googleapi.CloseBody(res)
78062	if err := googleapi.CheckResponse(res); err != nil {
78063		return nil, err
78064	}
78065	ret := &Operation{
78066		ServerResponse: googleapi.ServerResponse{
78067			Header:         res.Header,
78068			HTTPStatusCode: res.StatusCode,
78069		},
78070	}
78071	target := &ret
78072	if err := gensupport.DecodeResponse(target, res); err != nil {
78073		return nil, err
78074	}
78075	return ret, nil
78076	// {
78077	//   "description": "Deletes the specified TargetSslProxy resource.",
78078	//   "httpMethod": "DELETE",
78079	//   "id": "compute.targetSslProxies.delete",
78080	//   "parameterOrder": [
78081	//     "project",
78082	//     "targetSslProxy"
78083	//   ],
78084	//   "parameters": {
78085	//     "project": {
78086	//       "description": "Project ID for this request.",
78087	//       "location": "path",
78088	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78089	//       "required": true,
78090	//       "type": "string"
78091	//     },
78092	//     "requestId": {
78093	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78094	//       "location": "query",
78095	//       "type": "string"
78096	//     },
78097	//     "targetSslProxy": {
78098	//       "description": "Name of the TargetSslProxy resource to delete.",
78099	//       "location": "path",
78100	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78101	//       "required": true,
78102	//       "type": "string"
78103	//     }
78104	//   },
78105	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}",
78106	//   "response": {
78107	//     "$ref": "Operation"
78108	//   },
78109	//   "scopes": [
78110	//     "https://www.googleapis.com/auth/cloud-platform",
78111	//     "https://www.googleapis.com/auth/compute"
78112	//   ]
78113	// }
78114
78115}
78116
78117// method id "compute.targetSslProxies.get":
78118
78119type TargetSslProxiesGetCall struct {
78120	s              *Service
78121	project        string
78122	targetSslProxy string
78123	urlParams_     gensupport.URLParams
78124	ifNoneMatch_   string
78125	ctx_           context.Context
78126	header_        http.Header
78127}
78128
78129// Get: Returns the specified TargetSslProxy resource. Gets a list of
78130// available target SSL proxies by making a list() request.
78131func (r *TargetSslProxiesService) Get(project string, targetSslProxy string) *TargetSslProxiesGetCall {
78132	c := &TargetSslProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78133	c.project = project
78134	c.targetSslProxy = targetSslProxy
78135	return c
78136}
78137
78138// Fields allows partial responses to be retrieved. See
78139// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78140// for more information.
78141func (c *TargetSslProxiesGetCall) Fields(s ...googleapi.Field) *TargetSslProxiesGetCall {
78142	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78143	return c
78144}
78145
78146// IfNoneMatch sets the optional parameter which makes the operation
78147// fail if the object's ETag matches the given value. This is useful for
78148// getting updates only after the object has changed since the last
78149// request. Use googleapi.IsNotModified to check whether the response
78150// error from Do is the result of In-None-Match.
78151func (c *TargetSslProxiesGetCall) IfNoneMatch(entityTag string) *TargetSslProxiesGetCall {
78152	c.ifNoneMatch_ = entityTag
78153	return c
78154}
78155
78156// Context sets the context to be used in this call's Do method. Any
78157// pending HTTP request will be aborted if the provided context is
78158// canceled.
78159func (c *TargetSslProxiesGetCall) Context(ctx context.Context) *TargetSslProxiesGetCall {
78160	c.ctx_ = ctx
78161	return c
78162}
78163
78164// Header returns an http.Header that can be modified by the caller to
78165// add HTTP headers to the request.
78166func (c *TargetSslProxiesGetCall) Header() http.Header {
78167	if c.header_ == nil {
78168		c.header_ = make(http.Header)
78169	}
78170	return c.header_
78171}
78172
78173func (c *TargetSslProxiesGetCall) doRequest(alt string) (*http.Response, error) {
78174	reqHeaders := make(http.Header)
78175	for k, v := range c.header_ {
78176		reqHeaders[k] = v
78177	}
78178	reqHeaders.Set("User-Agent", c.s.userAgent())
78179	if c.ifNoneMatch_ != "" {
78180		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78181	}
78182	var body io.Reader = nil
78183	c.urlParams_.Set("alt", alt)
78184	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}")
78185	urls += "?" + c.urlParams_.Encode()
78186	req, _ := http.NewRequest("GET", urls, body)
78187	req.Header = reqHeaders
78188	googleapi.Expand(req.URL, map[string]string{
78189		"project":        c.project,
78190		"targetSslProxy": c.targetSslProxy,
78191	})
78192	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78193}
78194
78195// Do executes the "compute.targetSslProxies.get" call.
78196// Exactly one of *TargetSslProxy or error will be non-nil. Any non-2xx
78197// status code is an error. Response headers are in either
78198// *TargetSslProxy.ServerResponse.Header or (if a response was returned
78199// at all) in error.(*googleapi.Error).Header. Use
78200// googleapi.IsNotModified to check whether the returned error was
78201// because http.StatusNotModified was returned.
78202func (c *TargetSslProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetSslProxy, error) {
78203	gensupport.SetOptions(c.urlParams_, opts...)
78204	res, err := c.doRequest("json")
78205	if res != nil && res.StatusCode == http.StatusNotModified {
78206		if res.Body != nil {
78207			res.Body.Close()
78208		}
78209		return nil, &googleapi.Error{
78210			Code:   res.StatusCode,
78211			Header: res.Header,
78212		}
78213	}
78214	if err != nil {
78215		return nil, err
78216	}
78217	defer googleapi.CloseBody(res)
78218	if err := googleapi.CheckResponse(res); err != nil {
78219		return nil, err
78220	}
78221	ret := &TargetSslProxy{
78222		ServerResponse: googleapi.ServerResponse{
78223			Header:         res.Header,
78224			HTTPStatusCode: res.StatusCode,
78225		},
78226	}
78227	target := &ret
78228	if err := gensupport.DecodeResponse(target, res); err != nil {
78229		return nil, err
78230	}
78231	return ret, nil
78232	// {
78233	//   "description": "Returns the specified TargetSslProxy resource. Gets a list of available target SSL proxies by making a list() request.",
78234	//   "httpMethod": "GET",
78235	//   "id": "compute.targetSslProxies.get",
78236	//   "parameterOrder": [
78237	//     "project",
78238	//     "targetSslProxy"
78239	//   ],
78240	//   "parameters": {
78241	//     "project": {
78242	//       "description": "Project ID for this request.",
78243	//       "location": "path",
78244	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78245	//       "required": true,
78246	//       "type": "string"
78247	//     },
78248	//     "targetSslProxy": {
78249	//       "description": "Name of the TargetSslProxy resource to return.",
78250	//       "location": "path",
78251	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78252	//       "required": true,
78253	//       "type": "string"
78254	//     }
78255	//   },
78256	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}",
78257	//   "response": {
78258	//     "$ref": "TargetSslProxy"
78259	//   },
78260	//   "scopes": [
78261	//     "https://www.googleapis.com/auth/cloud-platform",
78262	//     "https://www.googleapis.com/auth/compute",
78263	//     "https://www.googleapis.com/auth/compute.readonly"
78264	//   ]
78265	// }
78266
78267}
78268
78269// method id "compute.targetSslProxies.insert":
78270
78271type TargetSslProxiesInsertCall struct {
78272	s              *Service
78273	project        string
78274	targetsslproxy *TargetSslProxy
78275	urlParams_     gensupport.URLParams
78276	ctx_           context.Context
78277	header_        http.Header
78278}
78279
78280// Insert: Creates a TargetSslProxy resource in the specified project
78281// using the data included in the request.
78282func (r *TargetSslProxiesService) Insert(project string, targetsslproxy *TargetSslProxy) *TargetSslProxiesInsertCall {
78283	c := &TargetSslProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78284	c.project = project
78285	c.targetsslproxy = targetsslproxy
78286	return c
78287}
78288
78289// RequestId sets the optional parameter "requestId": An optional
78290// request ID to identify requests. Specify a unique request ID so that
78291// if you must retry your request, the server will know to ignore the
78292// request if it has already been completed.
78293//
78294// For example, consider a situation where you make an initial request
78295// and the request times out. If you make the request again with the
78296// same request ID, the server can check if original operation with the
78297// same request ID was received, and if so, will ignore the second
78298// request. This prevents clients from accidentally creating duplicate
78299// commitments.
78300//
78301// The request ID must be a valid UUID with the exception that zero UUID
78302// is not supported (00000000-0000-0000-0000-000000000000).
78303func (c *TargetSslProxiesInsertCall) RequestId(requestId string) *TargetSslProxiesInsertCall {
78304	c.urlParams_.Set("requestId", requestId)
78305	return c
78306}
78307
78308// Fields allows partial responses to be retrieved. See
78309// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78310// for more information.
78311func (c *TargetSslProxiesInsertCall) Fields(s ...googleapi.Field) *TargetSslProxiesInsertCall {
78312	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78313	return c
78314}
78315
78316// Context sets the context to be used in this call's Do method. Any
78317// pending HTTP request will be aborted if the provided context is
78318// canceled.
78319func (c *TargetSslProxiesInsertCall) Context(ctx context.Context) *TargetSslProxiesInsertCall {
78320	c.ctx_ = ctx
78321	return c
78322}
78323
78324// Header returns an http.Header that can be modified by the caller to
78325// add HTTP headers to the request.
78326func (c *TargetSslProxiesInsertCall) Header() http.Header {
78327	if c.header_ == nil {
78328		c.header_ = make(http.Header)
78329	}
78330	return c.header_
78331}
78332
78333func (c *TargetSslProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
78334	reqHeaders := make(http.Header)
78335	for k, v := range c.header_ {
78336		reqHeaders[k] = v
78337	}
78338	reqHeaders.Set("User-Agent", c.s.userAgent())
78339	var body io.Reader = nil
78340	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxy)
78341	if err != nil {
78342		return nil, err
78343	}
78344	reqHeaders.Set("Content-Type", "application/json")
78345	c.urlParams_.Set("alt", alt)
78346	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies")
78347	urls += "?" + c.urlParams_.Encode()
78348	req, _ := http.NewRequest("POST", urls, body)
78349	req.Header = reqHeaders
78350	googleapi.Expand(req.URL, map[string]string{
78351		"project": c.project,
78352	})
78353	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78354}
78355
78356// Do executes the "compute.targetSslProxies.insert" call.
78357// Exactly one of *Operation or error will be non-nil. Any non-2xx
78358// status code is an error. Response headers are in either
78359// *Operation.ServerResponse.Header or (if a response was returned at
78360// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78361// to check whether the returned error was because
78362// http.StatusNotModified was returned.
78363func (c *TargetSslProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78364	gensupport.SetOptions(c.urlParams_, opts...)
78365	res, err := c.doRequest("json")
78366	if res != nil && res.StatusCode == http.StatusNotModified {
78367		if res.Body != nil {
78368			res.Body.Close()
78369		}
78370		return nil, &googleapi.Error{
78371			Code:   res.StatusCode,
78372			Header: res.Header,
78373		}
78374	}
78375	if err != nil {
78376		return nil, err
78377	}
78378	defer googleapi.CloseBody(res)
78379	if err := googleapi.CheckResponse(res); err != nil {
78380		return nil, err
78381	}
78382	ret := &Operation{
78383		ServerResponse: googleapi.ServerResponse{
78384			Header:         res.Header,
78385			HTTPStatusCode: res.StatusCode,
78386		},
78387	}
78388	target := &ret
78389	if err := gensupport.DecodeResponse(target, res); err != nil {
78390		return nil, err
78391	}
78392	return ret, nil
78393	// {
78394	//   "description": "Creates a TargetSslProxy resource in the specified project using the data included in the request.",
78395	//   "httpMethod": "POST",
78396	//   "id": "compute.targetSslProxies.insert",
78397	//   "parameterOrder": [
78398	//     "project"
78399	//   ],
78400	//   "parameters": {
78401	//     "project": {
78402	//       "description": "Project ID for this request.",
78403	//       "location": "path",
78404	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78405	//       "required": true,
78406	//       "type": "string"
78407	//     },
78408	//     "requestId": {
78409	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78410	//       "location": "query",
78411	//       "type": "string"
78412	//     }
78413	//   },
78414	//   "path": "{project}/global/targetSslProxies",
78415	//   "request": {
78416	//     "$ref": "TargetSslProxy"
78417	//   },
78418	//   "response": {
78419	//     "$ref": "Operation"
78420	//   },
78421	//   "scopes": [
78422	//     "https://www.googleapis.com/auth/cloud-platform",
78423	//     "https://www.googleapis.com/auth/compute"
78424	//   ]
78425	// }
78426
78427}
78428
78429// method id "compute.targetSslProxies.list":
78430
78431type TargetSslProxiesListCall struct {
78432	s            *Service
78433	project      string
78434	urlParams_   gensupport.URLParams
78435	ifNoneMatch_ string
78436	ctx_         context.Context
78437	header_      http.Header
78438}
78439
78440// List: Retrieves the list of TargetSslProxy resources available to the
78441// specified project.
78442func (r *TargetSslProxiesService) List(project string) *TargetSslProxiesListCall {
78443	c := &TargetSslProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78444	c.project = project
78445	return c
78446}
78447
78448// Filter sets the optional parameter "filter": A filter expression that
78449// filters resources listed in the response. The expression must specify
78450// the field name, a comparison operator, and the value that you want to
78451// use for filtering. The value must be a string, a number, or a
78452// boolean. The comparison operator must be either =, !=, >, or <.
78453//
78454// For example, if you are filtering Compute Engine instances, you can
78455// exclude instances named example-instance by specifying name !=
78456// example-instance.
78457//
78458// You can also filter nested fields. For example, you could specify
78459// scheduling.automaticRestart = false to include instances only if they
78460// are not scheduled for automatic restarts. You can use filtering on
78461// nested fields to filter based on resource labels.
78462//
78463// To filter on multiple expressions, provide each separate expression
78464// within parentheses. For example, (scheduling.automaticRestart = true)
78465// (cpuPlatform = "Intel Skylake"). By default, each expression is an
78466// AND expression. However, you can include AND and OR expressions
78467// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
78468// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
78469// true).
78470func (c *TargetSslProxiesListCall) Filter(filter string) *TargetSslProxiesListCall {
78471	c.urlParams_.Set("filter", filter)
78472	return c
78473}
78474
78475// MaxResults sets the optional parameter "maxResults": The maximum
78476// number of results per page that should be returned. If the number of
78477// available results is larger than maxResults, Compute Engine returns a
78478// nextPageToken that can be used to get the next page of results in
78479// subsequent list requests. Acceptable values are 0 to 500, inclusive.
78480// (Default: 500)
78481func (c *TargetSslProxiesListCall) MaxResults(maxResults int64) *TargetSslProxiesListCall {
78482	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
78483	return c
78484}
78485
78486// OrderBy sets the optional parameter "orderBy": Sorts list results by
78487// a certain order. By default, results are returned in alphanumerical
78488// order based on the resource name.
78489//
78490// You can also sort results in descending order based on the creation
78491// timestamp using orderBy="creationTimestamp desc". This sorts results
78492// based on the creationTimestamp field in reverse chronological order
78493// (newest result first). Use this to sort resources like operations so
78494// that the newest operation is returned first.
78495//
78496// Currently, only sorting by name or creationTimestamp desc is
78497// supported.
78498func (c *TargetSslProxiesListCall) OrderBy(orderBy string) *TargetSslProxiesListCall {
78499	c.urlParams_.Set("orderBy", orderBy)
78500	return c
78501}
78502
78503// PageToken sets the optional parameter "pageToken": Specifies a page
78504// token to use. Set pageToken to the nextPageToken returned by a
78505// previous list request to get the next page of results.
78506func (c *TargetSslProxiesListCall) PageToken(pageToken string) *TargetSslProxiesListCall {
78507	c.urlParams_.Set("pageToken", pageToken)
78508	return c
78509}
78510
78511// Fields allows partial responses to be retrieved. See
78512// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78513// for more information.
78514func (c *TargetSslProxiesListCall) Fields(s ...googleapi.Field) *TargetSslProxiesListCall {
78515	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78516	return c
78517}
78518
78519// IfNoneMatch sets the optional parameter which makes the operation
78520// fail if the object's ETag matches the given value. This is useful for
78521// getting updates only after the object has changed since the last
78522// request. Use googleapi.IsNotModified to check whether the response
78523// error from Do is the result of In-None-Match.
78524func (c *TargetSslProxiesListCall) IfNoneMatch(entityTag string) *TargetSslProxiesListCall {
78525	c.ifNoneMatch_ = entityTag
78526	return c
78527}
78528
78529// Context sets the context to be used in this call's Do method. Any
78530// pending HTTP request will be aborted if the provided context is
78531// canceled.
78532func (c *TargetSslProxiesListCall) Context(ctx context.Context) *TargetSslProxiesListCall {
78533	c.ctx_ = ctx
78534	return c
78535}
78536
78537// Header returns an http.Header that can be modified by the caller to
78538// add HTTP headers to the request.
78539func (c *TargetSslProxiesListCall) Header() http.Header {
78540	if c.header_ == nil {
78541		c.header_ = make(http.Header)
78542	}
78543	return c.header_
78544}
78545
78546func (c *TargetSslProxiesListCall) doRequest(alt string) (*http.Response, error) {
78547	reqHeaders := make(http.Header)
78548	for k, v := range c.header_ {
78549		reqHeaders[k] = v
78550	}
78551	reqHeaders.Set("User-Agent", c.s.userAgent())
78552	if c.ifNoneMatch_ != "" {
78553		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78554	}
78555	var body io.Reader = nil
78556	c.urlParams_.Set("alt", alt)
78557	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies")
78558	urls += "?" + c.urlParams_.Encode()
78559	req, _ := http.NewRequest("GET", urls, body)
78560	req.Header = reqHeaders
78561	googleapi.Expand(req.URL, map[string]string{
78562		"project": c.project,
78563	})
78564	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78565}
78566
78567// Do executes the "compute.targetSslProxies.list" call.
78568// Exactly one of *TargetSslProxyList or error will be non-nil. Any
78569// non-2xx status code is an error. Response headers are in either
78570// *TargetSslProxyList.ServerResponse.Header or (if a response was
78571// returned at all) in error.(*googleapi.Error).Header. Use
78572// googleapi.IsNotModified to check whether the returned error was
78573// because http.StatusNotModified was returned.
78574func (c *TargetSslProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetSslProxyList, error) {
78575	gensupport.SetOptions(c.urlParams_, opts...)
78576	res, err := c.doRequest("json")
78577	if res != nil && res.StatusCode == http.StatusNotModified {
78578		if res.Body != nil {
78579			res.Body.Close()
78580		}
78581		return nil, &googleapi.Error{
78582			Code:   res.StatusCode,
78583			Header: res.Header,
78584		}
78585	}
78586	if err != nil {
78587		return nil, err
78588	}
78589	defer googleapi.CloseBody(res)
78590	if err := googleapi.CheckResponse(res); err != nil {
78591		return nil, err
78592	}
78593	ret := &TargetSslProxyList{
78594		ServerResponse: googleapi.ServerResponse{
78595			Header:         res.Header,
78596			HTTPStatusCode: res.StatusCode,
78597		},
78598	}
78599	target := &ret
78600	if err := gensupport.DecodeResponse(target, res); err != nil {
78601		return nil, err
78602	}
78603	return ret, nil
78604	// {
78605	//   "description": "Retrieves the list of TargetSslProxy resources available to the specified project.",
78606	//   "httpMethod": "GET",
78607	//   "id": "compute.targetSslProxies.list",
78608	//   "parameterOrder": [
78609	//     "project"
78610	//   ],
78611	//   "parameters": {
78612	//     "filter": {
78613	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
78614	//       "location": "query",
78615	//       "type": "string"
78616	//     },
78617	//     "maxResults": {
78618	//       "default": "500",
78619	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
78620	//       "format": "uint32",
78621	//       "location": "query",
78622	//       "minimum": "0",
78623	//       "type": "integer"
78624	//     },
78625	//     "orderBy": {
78626	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
78627	//       "location": "query",
78628	//       "type": "string"
78629	//     },
78630	//     "pageToken": {
78631	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
78632	//       "location": "query",
78633	//       "type": "string"
78634	//     },
78635	//     "project": {
78636	//       "description": "Project ID for this request.",
78637	//       "location": "path",
78638	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78639	//       "required": true,
78640	//       "type": "string"
78641	//     }
78642	//   },
78643	//   "path": "{project}/global/targetSslProxies",
78644	//   "response": {
78645	//     "$ref": "TargetSslProxyList"
78646	//   },
78647	//   "scopes": [
78648	//     "https://www.googleapis.com/auth/cloud-platform",
78649	//     "https://www.googleapis.com/auth/compute",
78650	//     "https://www.googleapis.com/auth/compute.readonly"
78651	//   ]
78652	// }
78653
78654}
78655
78656// Pages invokes f for each page of results.
78657// A non-nil error returned from f will halt the iteration.
78658// The provided context supersedes any context provided to the Context method.
78659func (c *TargetSslProxiesListCall) Pages(ctx context.Context, f func(*TargetSslProxyList) error) error {
78660	c.ctx_ = ctx
78661	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
78662	for {
78663		x, err := c.Do()
78664		if err != nil {
78665			return err
78666		}
78667		if err := f(x); err != nil {
78668			return err
78669		}
78670		if x.NextPageToken == "" {
78671			return nil
78672		}
78673		c.PageToken(x.NextPageToken)
78674	}
78675}
78676
78677// method id "compute.targetSslProxies.setBackendService":
78678
78679type TargetSslProxiesSetBackendServiceCall struct {
78680	s                                        *Service
78681	project                                  string
78682	targetSslProxy                           string
78683	targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest
78684	urlParams_                               gensupport.URLParams
78685	ctx_                                     context.Context
78686	header_                                  http.Header
78687}
78688
78689// SetBackendService: Changes the BackendService for TargetSslProxy.
78690func (r *TargetSslProxiesService) SetBackendService(project string, targetSslProxy string, targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest) *TargetSslProxiesSetBackendServiceCall {
78691	c := &TargetSslProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78692	c.project = project
78693	c.targetSslProxy = targetSslProxy
78694	c.targetsslproxiessetbackendservicerequest = targetsslproxiessetbackendservicerequest
78695	return c
78696}
78697
78698// RequestId sets the optional parameter "requestId": An optional
78699// request ID to identify requests. Specify a unique request ID so that
78700// if you must retry your request, the server will know to ignore the
78701// request if it has already been completed.
78702//
78703// For example, consider a situation where you make an initial request
78704// and the request times out. If you make the request again with the
78705// same request ID, the server can check if original operation with the
78706// same request ID was received, and if so, will ignore the second
78707// request. This prevents clients from accidentally creating duplicate
78708// commitments.
78709//
78710// The request ID must be a valid UUID with the exception that zero UUID
78711// is not supported (00000000-0000-0000-0000-000000000000).
78712func (c *TargetSslProxiesSetBackendServiceCall) RequestId(requestId string) *TargetSslProxiesSetBackendServiceCall {
78713	c.urlParams_.Set("requestId", requestId)
78714	return c
78715}
78716
78717// Fields allows partial responses to be retrieved. See
78718// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78719// for more information.
78720func (c *TargetSslProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetBackendServiceCall {
78721	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78722	return c
78723}
78724
78725// Context sets the context to be used in this call's Do method. Any
78726// pending HTTP request will be aborted if the provided context is
78727// canceled.
78728func (c *TargetSslProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetSslProxiesSetBackendServiceCall {
78729	c.ctx_ = ctx
78730	return c
78731}
78732
78733// Header returns an http.Header that can be modified by the caller to
78734// add HTTP headers to the request.
78735func (c *TargetSslProxiesSetBackendServiceCall) Header() http.Header {
78736	if c.header_ == nil {
78737		c.header_ = make(http.Header)
78738	}
78739	return c.header_
78740}
78741
78742func (c *TargetSslProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
78743	reqHeaders := make(http.Header)
78744	for k, v := range c.header_ {
78745		reqHeaders[k] = v
78746	}
78747	reqHeaders.Set("User-Agent", c.s.userAgent())
78748	var body io.Reader = nil
78749	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetbackendservicerequest)
78750	if err != nil {
78751		return nil, err
78752	}
78753	reqHeaders.Set("Content-Type", "application/json")
78754	c.urlParams_.Set("alt", alt)
78755	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setBackendService")
78756	urls += "?" + c.urlParams_.Encode()
78757	req, _ := http.NewRequest("POST", urls, body)
78758	req.Header = reqHeaders
78759	googleapi.Expand(req.URL, map[string]string{
78760		"project":        c.project,
78761		"targetSslProxy": c.targetSslProxy,
78762	})
78763	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78764}
78765
78766// Do executes the "compute.targetSslProxies.setBackendService" call.
78767// Exactly one of *Operation or error will be non-nil. Any non-2xx
78768// status code is an error. Response headers are in either
78769// *Operation.ServerResponse.Header or (if a response was returned at
78770// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78771// to check whether the returned error was because
78772// http.StatusNotModified was returned.
78773func (c *TargetSslProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78774	gensupport.SetOptions(c.urlParams_, opts...)
78775	res, err := c.doRequest("json")
78776	if res != nil && res.StatusCode == http.StatusNotModified {
78777		if res.Body != nil {
78778			res.Body.Close()
78779		}
78780		return nil, &googleapi.Error{
78781			Code:   res.StatusCode,
78782			Header: res.Header,
78783		}
78784	}
78785	if err != nil {
78786		return nil, err
78787	}
78788	defer googleapi.CloseBody(res)
78789	if err := googleapi.CheckResponse(res); err != nil {
78790		return nil, err
78791	}
78792	ret := &Operation{
78793		ServerResponse: googleapi.ServerResponse{
78794			Header:         res.Header,
78795			HTTPStatusCode: res.StatusCode,
78796		},
78797	}
78798	target := &ret
78799	if err := gensupport.DecodeResponse(target, res); err != nil {
78800		return nil, err
78801	}
78802	return ret, nil
78803	// {
78804	//   "description": "Changes the BackendService for TargetSslProxy.",
78805	//   "httpMethod": "POST",
78806	//   "id": "compute.targetSslProxies.setBackendService",
78807	//   "parameterOrder": [
78808	//     "project",
78809	//     "targetSslProxy"
78810	//   ],
78811	//   "parameters": {
78812	//     "project": {
78813	//       "description": "Project ID for this request.",
78814	//       "location": "path",
78815	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78816	//       "required": true,
78817	//       "type": "string"
78818	//     },
78819	//     "requestId": {
78820	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78821	//       "location": "query",
78822	//       "type": "string"
78823	//     },
78824	//     "targetSslProxy": {
78825	//       "description": "Name of the TargetSslProxy resource whose BackendService resource is to be set.",
78826	//       "location": "path",
78827	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78828	//       "required": true,
78829	//       "type": "string"
78830	//     }
78831	//   },
78832	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setBackendService",
78833	//   "request": {
78834	//     "$ref": "TargetSslProxiesSetBackendServiceRequest"
78835	//   },
78836	//   "response": {
78837	//     "$ref": "Operation"
78838	//   },
78839	//   "scopes": [
78840	//     "https://www.googleapis.com/auth/cloud-platform",
78841	//     "https://www.googleapis.com/auth/compute"
78842	//   ]
78843	// }
78844
78845}
78846
78847// method id "compute.targetSslProxies.setProxyHeader":
78848
78849type TargetSslProxiesSetProxyHeaderCall struct {
78850	s                                     *Service
78851	project                               string
78852	targetSslProxy                        string
78853	targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest
78854	urlParams_                            gensupport.URLParams
78855	ctx_                                  context.Context
78856	header_                               http.Header
78857}
78858
78859// SetProxyHeader: Changes the ProxyHeaderType for TargetSslProxy.
78860func (r *TargetSslProxiesService) SetProxyHeader(project string, targetSslProxy string, targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest) *TargetSslProxiesSetProxyHeaderCall {
78861	c := &TargetSslProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78862	c.project = project
78863	c.targetSslProxy = targetSslProxy
78864	c.targetsslproxiessetproxyheaderrequest = targetsslproxiessetproxyheaderrequest
78865	return c
78866}
78867
78868// RequestId sets the optional parameter "requestId": An optional
78869// request ID to identify requests. Specify a unique request ID so that
78870// if you must retry your request, the server will know to ignore the
78871// request if it has already been completed.
78872//
78873// For example, consider a situation where you make an initial request
78874// and the request times out. If you make the request again with the
78875// same request ID, the server can check if original operation with the
78876// same request ID was received, and if so, will ignore the second
78877// request. This prevents clients from accidentally creating duplicate
78878// commitments.
78879//
78880// The request ID must be a valid UUID with the exception that zero UUID
78881// is not supported (00000000-0000-0000-0000-000000000000).
78882func (c *TargetSslProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetSslProxiesSetProxyHeaderCall {
78883	c.urlParams_.Set("requestId", requestId)
78884	return c
78885}
78886
78887// Fields allows partial responses to be retrieved. See
78888// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78889// for more information.
78890func (c *TargetSslProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetProxyHeaderCall {
78891	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78892	return c
78893}
78894
78895// Context sets the context to be used in this call's Do method. Any
78896// pending HTTP request will be aborted if the provided context is
78897// canceled.
78898func (c *TargetSslProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetSslProxiesSetProxyHeaderCall {
78899	c.ctx_ = ctx
78900	return c
78901}
78902
78903// Header returns an http.Header that can be modified by the caller to
78904// add HTTP headers to the request.
78905func (c *TargetSslProxiesSetProxyHeaderCall) Header() http.Header {
78906	if c.header_ == nil {
78907		c.header_ = make(http.Header)
78908	}
78909	return c.header_
78910}
78911
78912func (c *TargetSslProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
78913	reqHeaders := make(http.Header)
78914	for k, v := range c.header_ {
78915		reqHeaders[k] = v
78916	}
78917	reqHeaders.Set("User-Agent", c.s.userAgent())
78918	var body io.Reader = nil
78919	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetproxyheaderrequest)
78920	if err != nil {
78921		return nil, err
78922	}
78923	reqHeaders.Set("Content-Type", "application/json")
78924	c.urlParams_.Set("alt", alt)
78925	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader")
78926	urls += "?" + c.urlParams_.Encode()
78927	req, _ := http.NewRequest("POST", urls, body)
78928	req.Header = reqHeaders
78929	googleapi.Expand(req.URL, map[string]string{
78930		"project":        c.project,
78931		"targetSslProxy": c.targetSslProxy,
78932	})
78933	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78934}
78935
78936// Do executes the "compute.targetSslProxies.setProxyHeader" call.
78937// Exactly one of *Operation or error will be non-nil. Any non-2xx
78938// status code is an error. Response headers are in either
78939// *Operation.ServerResponse.Header or (if a response was returned at
78940// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78941// to check whether the returned error was because
78942// http.StatusNotModified was returned.
78943func (c *TargetSslProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78944	gensupport.SetOptions(c.urlParams_, opts...)
78945	res, err := c.doRequest("json")
78946	if res != nil && res.StatusCode == http.StatusNotModified {
78947		if res.Body != nil {
78948			res.Body.Close()
78949		}
78950		return nil, &googleapi.Error{
78951			Code:   res.StatusCode,
78952			Header: res.Header,
78953		}
78954	}
78955	if err != nil {
78956		return nil, err
78957	}
78958	defer googleapi.CloseBody(res)
78959	if err := googleapi.CheckResponse(res); err != nil {
78960		return nil, err
78961	}
78962	ret := &Operation{
78963		ServerResponse: googleapi.ServerResponse{
78964			Header:         res.Header,
78965			HTTPStatusCode: res.StatusCode,
78966		},
78967	}
78968	target := &ret
78969	if err := gensupport.DecodeResponse(target, res); err != nil {
78970		return nil, err
78971	}
78972	return ret, nil
78973	// {
78974	//   "description": "Changes the ProxyHeaderType for TargetSslProxy.",
78975	//   "httpMethod": "POST",
78976	//   "id": "compute.targetSslProxies.setProxyHeader",
78977	//   "parameterOrder": [
78978	//     "project",
78979	//     "targetSslProxy"
78980	//   ],
78981	//   "parameters": {
78982	//     "project": {
78983	//       "description": "Project ID for this request.",
78984	//       "location": "path",
78985	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78986	//       "required": true,
78987	//       "type": "string"
78988	//     },
78989	//     "requestId": {
78990	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78991	//       "location": "query",
78992	//       "type": "string"
78993	//     },
78994	//     "targetSslProxy": {
78995	//       "description": "Name of the TargetSslProxy resource whose ProxyHeader is to be set.",
78996	//       "location": "path",
78997	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78998	//       "required": true,
78999	//       "type": "string"
79000	//     }
79001	//   },
79002	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader",
79003	//   "request": {
79004	//     "$ref": "TargetSslProxiesSetProxyHeaderRequest"
79005	//   },
79006	//   "response": {
79007	//     "$ref": "Operation"
79008	//   },
79009	//   "scopes": [
79010	//     "https://www.googleapis.com/auth/cloud-platform",
79011	//     "https://www.googleapis.com/auth/compute"
79012	//   ]
79013	// }
79014
79015}
79016
79017// method id "compute.targetSslProxies.setSslCertificates":
79018
79019type TargetSslProxiesSetSslCertificatesCall struct {
79020	s                                         *Service
79021	project                                   string
79022	targetSslProxy                            string
79023	targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest
79024	urlParams_                                gensupport.URLParams
79025	ctx_                                      context.Context
79026	header_                                   http.Header
79027}
79028
79029// SetSslCertificates: Changes SslCertificates for TargetSslProxy.
79030func (r *TargetSslProxiesService) SetSslCertificates(project string, targetSslProxy string, targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest) *TargetSslProxiesSetSslCertificatesCall {
79031	c := &TargetSslProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79032	c.project = project
79033	c.targetSslProxy = targetSslProxy
79034	c.targetsslproxiessetsslcertificatesrequest = targetsslproxiessetsslcertificatesrequest
79035	return c
79036}
79037
79038// RequestId sets the optional parameter "requestId": An optional
79039// request ID to identify requests. Specify a unique request ID so that
79040// if you must retry your request, the server will know to ignore the
79041// request if it has already been completed.
79042//
79043// For example, consider a situation where you make an initial request
79044// and the request times out. If you make the request again with the
79045// same request ID, the server can check if original operation with the
79046// same request ID was received, and if so, will ignore the second
79047// request. This prevents clients from accidentally creating duplicate
79048// commitments.
79049//
79050// The request ID must be a valid UUID with the exception that zero UUID
79051// is not supported (00000000-0000-0000-0000-000000000000).
79052func (c *TargetSslProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetSslProxiesSetSslCertificatesCall {
79053	c.urlParams_.Set("requestId", requestId)
79054	return c
79055}
79056
79057// Fields allows partial responses to be retrieved. See
79058// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79059// for more information.
79060func (c *TargetSslProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslCertificatesCall {
79061	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79062	return c
79063}
79064
79065// Context sets the context to be used in this call's Do method. Any
79066// pending HTTP request will be aborted if the provided context is
79067// canceled.
79068func (c *TargetSslProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetSslProxiesSetSslCertificatesCall {
79069	c.ctx_ = ctx
79070	return c
79071}
79072
79073// Header returns an http.Header that can be modified by the caller to
79074// add HTTP headers to the request.
79075func (c *TargetSslProxiesSetSslCertificatesCall) Header() http.Header {
79076	if c.header_ == nil {
79077		c.header_ = make(http.Header)
79078	}
79079	return c.header_
79080}
79081
79082func (c *TargetSslProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
79083	reqHeaders := make(http.Header)
79084	for k, v := range c.header_ {
79085		reqHeaders[k] = v
79086	}
79087	reqHeaders.Set("User-Agent", c.s.userAgent())
79088	var body io.Reader = nil
79089	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetsslcertificatesrequest)
79090	if err != nil {
79091		return nil, err
79092	}
79093	reqHeaders.Set("Content-Type", "application/json")
79094	c.urlParams_.Set("alt", alt)
79095	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates")
79096	urls += "?" + c.urlParams_.Encode()
79097	req, _ := http.NewRequest("POST", urls, body)
79098	req.Header = reqHeaders
79099	googleapi.Expand(req.URL, map[string]string{
79100		"project":        c.project,
79101		"targetSslProxy": c.targetSslProxy,
79102	})
79103	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79104}
79105
79106// Do executes the "compute.targetSslProxies.setSslCertificates" call.
79107// Exactly one of *Operation or error will be non-nil. Any non-2xx
79108// status code is an error. Response headers are in either
79109// *Operation.ServerResponse.Header or (if a response was returned at
79110// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79111// to check whether the returned error was because
79112// http.StatusNotModified was returned.
79113func (c *TargetSslProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79114	gensupport.SetOptions(c.urlParams_, opts...)
79115	res, err := c.doRequest("json")
79116	if res != nil && res.StatusCode == http.StatusNotModified {
79117		if res.Body != nil {
79118			res.Body.Close()
79119		}
79120		return nil, &googleapi.Error{
79121			Code:   res.StatusCode,
79122			Header: res.Header,
79123		}
79124	}
79125	if err != nil {
79126		return nil, err
79127	}
79128	defer googleapi.CloseBody(res)
79129	if err := googleapi.CheckResponse(res); err != nil {
79130		return nil, err
79131	}
79132	ret := &Operation{
79133		ServerResponse: googleapi.ServerResponse{
79134			Header:         res.Header,
79135			HTTPStatusCode: res.StatusCode,
79136		},
79137	}
79138	target := &ret
79139	if err := gensupport.DecodeResponse(target, res); err != nil {
79140		return nil, err
79141	}
79142	return ret, nil
79143	// {
79144	//   "description": "Changes SslCertificates for TargetSslProxy.",
79145	//   "httpMethod": "POST",
79146	//   "id": "compute.targetSslProxies.setSslCertificates",
79147	//   "parameterOrder": [
79148	//     "project",
79149	//     "targetSslProxy"
79150	//   ],
79151	//   "parameters": {
79152	//     "project": {
79153	//       "description": "Project ID for this request.",
79154	//       "location": "path",
79155	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79156	//       "required": true,
79157	//       "type": "string"
79158	//     },
79159	//     "requestId": {
79160	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79161	//       "location": "query",
79162	//       "type": "string"
79163	//     },
79164	//     "targetSslProxy": {
79165	//       "description": "Name of the TargetSslProxy resource whose SslCertificate resource is to be set.",
79166	//       "location": "path",
79167	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79168	//       "required": true,
79169	//       "type": "string"
79170	//     }
79171	//   },
79172	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates",
79173	//   "request": {
79174	//     "$ref": "TargetSslProxiesSetSslCertificatesRequest"
79175	//   },
79176	//   "response": {
79177	//     "$ref": "Operation"
79178	//   },
79179	//   "scopes": [
79180	//     "https://www.googleapis.com/auth/cloud-platform",
79181	//     "https://www.googleapis.com/auth/compute"
79182	//   ]
79183	// }
79184
79185}
79186
79187// method id "compute.targetSslProxies.setSslPolicy":
79188
79189type TargetSslProxiesSetSslPolicyCall struct {
79190	s                  *Service
79191	project            string
79192	targetSslProxy     string
79193	sslpolicyreference *SslPolicyReference
79194	urlParams_         gensupport.URLParams
79195	ctx_               context.Context
79196	header_            http.Header
79197}
79198
79199// SetSslPolicy: Sets the SSL policy for TargetSslProxy. The SSL policy
79200// specifies the server-side support for SSL features. This affects
79201// connections between clients and the SSL proxy load balancer. They do
79202// not affect the connection between the load balancer and the backends.
79203func (r *TargetSslProxiesService) SetSslPolicy(project string, targetSslProxy string, sslpolicyreference *SslPolicyReference) *TargetSslProxiesSetSslPolicyCall {
79204	c := &TargetSslProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79205	c.project = project
79206	c.targetSslProxy = targetSslProxy
79207	c.sslpolicyreference = sslpolicyreference
79208	return c
79209}
79210
79211// RequestId sets the optional parameter "requestId": An optional
79212// request ID to identify requests. Specify a unique request ID so that
79213// if you must retry your request, the server will know to ignore the
79214// request if it has already been completed.
79215//
79216// For example, consider a situation where you make an initial request
79217// and the request times out. If you make the request again with the
79218// same request ID, the server can check if original operation with the
79219// same request ID was received, and if so, will ignore the second
79220// request. This prevents clients from accidentally creating duplicate
79221// commitments.
79222//
79223// The request ID must be a valid UUID with the exception that zero UUID
79224// is not supported (00000000-0000-0000-0000-000000000000).
79225func (c *TargetSslProxiesSetSslPolicyCall) RequestId(requestId string) *TargetSslProxiesSetSslPolicyCall {
79226	c.urlParams_.Set("requestId", requestId)
79227	return c
79228}
79229
79230// Fields allows partial responses to be retrieved. See
79231// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79232// for more information.
79233func (c *TargetSslProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslPolicyCall {
79234	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79235	return c
79236}
79237
79238// Context sets the context to be used in this call's Do method. Any
79239// pending HTTP request will be aborted if the provided context is
79240// canceled.
79241func (c *TargetSslProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetSslProxiesSetSslPolicyCall {
79242	c.ctx_ = ctx
79243	return c
79244}
79245
79246// Header returns an http.Header that can be modified by the caller to
79247// add HTTP headers to the request.
79248func (c *TargetSslProxiesSetSslPolicyCall) Header() http.Header {
79249	if c.header_ == nil {
79250		c.header_ = make(http.Header)
79251	}
79252	return c.header_
79253}
79254
79255func (c *TargetSslProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
79256	reqHeaders := make(http.Header)
79257	for k, v := range c.header_ {
79258		reqHeaders[k] = v
79259	}
79260	reqHeaders.Set("User-Agent", c.s.userAgent())
79261	var body io.Reader = nil
79262	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
79263	if err != nil {
79264		return nil, err
79265	}
79266	reqHeaders.Set("Content-Type", "application/json")
79267	c.urlParams_.Set("alt", alt)
79268	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy")
79269	urls += "?" + c.urlParams_.Encode()
79270	req, _ := http.NewRequest("POST", urls, body)
79271	req.Header = reqHeaders
79272	googleapi.Expand(req.URL, map[string]string{
79273		"project":        c.project,
79274		"targetSslProxy": c.targetSslProxy,
79275	})
79276	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79277}
79278
79279// Do executes the "compute.targetSslProxies.setSslPolicy" call.
79280// Exactly one of *Operation or error will be non-nil. Any non-2xx
79281// status code is an error. Response headers are in either
79282// *Operation.ServerResponse.Header or (if a response was returned at
79283// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79284// to check whether the returned error was because
79285// http.StatusNotModified was returned.
79286func (c *TargetSslProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79287	gensupport.SetOptions(c.urlParams_, opts...)
79288	res, err := c.doRequest("json")
79289	if res != nil && res.StatusCode == http.StatusNotModified {
79290		if res.Body != nil {
79291			res.Body.Close()
79292		}
79293		return nil, &googleapi.Error{
79294			Code:   res.StatusCode,
79295			Header: res.Header,
79296		}
79297	}
79298	if err != nil {
79299		return nil, err
79300	}
79301	defer googleapi.CloseBody(res)
79302	if err := googleapi.CheckResponse(res); err != nil {
79303		return nil, err
79304	}
79305	ret := &Operation{
79306		ServerResponse: googleapi.ServerResponse{
79307			Header:         res.Header,
79308			HTTPStatusCode: res.StatusCode,
79309		},
79310	}
79311	target := &ret
79312	if err := gensupport.DecodeResponse(target, res); err != nil {
79313		return nil, err
79314	}
79315	return ret, nil
79316	// {
79317	//   "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.",
79318	//   "httpMethod": "POST",
79319	//   "id": "compute.targetSslProxies.setSslPolicy",
79320	//   "parameterOrder": [
79321	//     "project",
79322	//     "targetSslProxy"
79323	//   ],
79324	//   "parameters": {
79325	//     "project": {
79326	//       "description": "Project ID for this request.",
79327	//       "location": "path",
79328	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79329	//       "required": true,
79330	//       "type": "string"
79331	//     },
79332	//     "requestId": {
79333	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79334	//       "location": "query",
79335	//       "type": "string"
79336	//     },
79337	//     "targetSslProxy": {
79338	//       "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.",
79339	//       "location": "path",
79340	//       "required": true,
79341	//       "type": "string"
79342	//     }
79343	//   },
79344	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy",
79345	//   "request": {
79346	//     "$ref": "SslPolicyReference"
79347	//   },
79348	//   "response": {
79349	//     "$ref": "Operation"
79350	//   },
79351	//   "scopes": [
79352	//     "https://www.googleapis.com/auth/cloud-platform",
79353	//     "https://www.googleapis.com/auth/compute"
79354	//   ]
79355	// }
79356
79357}
79358
79359// method id "compute.targetTcpProxies.delete":
79360
79361type TargetTcpProxiesDeleteCall struct {
79362	s              *Service
79363	project        string
79364	targetTcpProxy string
79365	urlParams_     gensupport.URLParams
79366	ctx_           context.Context
79367	header_        http.Header
79368}
79369
79370// Delete: Deletes the specified TargetTcpProxy resource.
79371func (r *TargetTcpProxiesService) Delete(project string, targetTcpProxy string) *TargetTcpProxiesDeleteCall {
79372	c := &TargetTcpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79373	c.project = project
79374	c.targetTcpProxy = targetTcpProxy
79375	return c
79376}
79377
79378// RequestId sets the optional parameter "requestId": An optional
79379// request ID to identify requests. Specify a unique request ID so that
79380// if you must retry your request, the server will know to ignore the
79381// request if it has already been completed.
79382//
79383// For example, consider a situation where you make an initial request
79384// and the request times out. If you make the request again with the
79385// same request ID, the server can check if original operation with the
79386// same request ID was received, and if so, will ignore the second
79387// request. This prevents clients from accidentally creating duplicate
79388// commitments.
79389//
79390// The request ID must be a valid UUID with the exception that zero UUID
79391// is not supported (00000000-0000-0000-0000-000000000000).
79392func (c *TargetTcpProxiesDeleteCall) RequestId(requestId string) *TargetTcpProxiesDeleteCall {
79393	c.urlParams_.Set("requestId", requestId)
79394	return c
79395}
79396
79397// Fields allows partial responses to be retrieved. See
79398// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79399// for more information.
79400func (c *TargetTcpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetTcpProxiesDeleteCall {
79401	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79402	return c
79403}
79404
79405// Context sets the context to be used in this call's Do method. Any
79406// pending HTTP request will be aborted if the provided context is
79407// canceled.
79408func (c *TargetTcpProxiesDeleteCall) Context(ctx context.Context) *TargetTcpProxiesDeleteCall {
79409	c.ctx_ = ctx
79410	return c
79411}
79412
79413// Header returns an http.Header that can be modified by the caller to
79414// add HTTP headers to the request.
79415func (c *TargetTcpProxiesDeleteCall) Header() http.Header {
79416	if c.header_ == nil {
79417		c.header_ = make(http.Header)
79418	}
79419	return c.header_
79420}
79421
79422func (c *TargetTcpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
79423	reqHeaders := make(http.Header)
79424	for k, v := range c.header_ {
79425		reqHeaders[k] = v
79426	}
79427	reqHeaders.Set("User-Agent", c.s.userAgent())
79428	var body io.Reader = nil
79429	c.urlParams_.Set("alt", alt)
79430	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}")
79431	urls += "?" + c.urlParams_.Encode()
79432	req, _ := http.NewRequest("DELETE", urls, body)
79433	req.Header = reqHeaders
79434	googleapi.Expand(req.URL, map[string]string{
79435		"project":        c.project,
79436		"targetTcpProxy": c.targetTcpProxy,
79437	})
79438	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79439}
79440
79441// Do executes the "compute.targetTcpProxies.delete" call.
79442// Exactly one of *Operation or error will be non-nil. Any non-2xx
79443// status code is an error. Response headers are in either
79444// *Operation.ServerResponse.Header or (if a response was returned at
79445// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79446// to check whether the returned error was because
79447// http.StatusNotModified was returned.
79448func (c *TargetTcpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79449	gensupport.SetOptions(c.urlParams_, opts...)
79450	res, err := c.doRequest("json")
79451	if res != nil && res.StatusCode == http.StatusNotModified {
79452		if res.Body != nil {
79453			res.Body.Close()
79454		}
79455		return nil, &googleapi.Error{
79456			Code:   res.StatusCode,
79457			Header: res.Header,
79458		}
79459	}
79460	if err != nil {
79461		return nil, err
79462	}
79463	defer googleapi.CloseBody(res)
79464	if err := googleapi.CheckResponse(res); err != nil {
79465		return nil, err
79466	}
79467	ret := &Operation{
79468		ServerResponse: googleapi.ServerResponse{
79469			Header:         res.Header,
79470			HTTPStatusCode: res.StatusCode,
79471		},
79472	}
79473	target := &ret
79474	if err := gensupport.DecodeResponse(target, res); err != nil {
79475		return nil, err
79476	}
79477	return ret, nil
79478	// {
79479	//   "description": "Deletes the specified TargetTcpProxy resource.",
79480	//   "httpMethod": "DELETE",
79481	//   "id": "compute.targetTcpProxies.delete",
79482	//   "parameterOrder": [
79483	//     "project",
79484	//     "targetTcpProxy"
79485	//   ],
79486	//   "parameters": {
79487	//     "project": {
79488	//       "description": "Project ID for this request.",
79489	//       "location": "path",
79490	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79491	//       "required": true,
79492	//       "type": "string"
79493	//     },
79494	//     "requestId": {
79495	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79496	//       "location": "query",
79497	//       "type": "string"
79498	//     },
79499	//     "targetTcpProxy": {
79500	//       "description": "Name of the TargetTcpProxy resource to delete.",
79501	//       "location": "path",
79502	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79503	//       "required": true,
79504	//       "type": "string"
79505	//     }
79506	//   },
79507	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}",
79508	//   "response": {
79509	//     "$ref": "Operation"
79510	//   },
79511	//   "scopes": [
79512	//     "https://www.googleapis.com/auth/cloud-platform",
79513	//     "https://www.googleapis.com/auth/compute"
79514	//   ]
79515	// }
79516
79517}
79518
79519// method id "compute.targetTcpProxies.get":
79520
79521type TargetTcpProxiesGetCall struct {
79522	s              *Service
79523	project        string
79524	targetTcpProxy string
79525	urlParams_     gensupport.URLParams
79526	ifNoneMatch_   string
79527	ctx_           context.Context
79528	header_        http.Header
79529}
79530
79531// Get: Returns the specified TargetTcpProxy resource. Gets a list of
79532// available target TCP proxies by making a list() request.
79533func (r *TargetTcpProxiesService) Get(project string, targetTcpProxy string) *TargetTcpProxiesGetCall {
79534	c := &TargetTcpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79535	c.project = project
79536	c.targetTcpProxy = targetTcpProxy
79537	return c
79538}
79539
79540// Fields allows partial responses to be retrieved. See
79541// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79542// for more information.
79543func (c *TargetTcpProxiesGetCall) Fields(s ...googleapi.Field) *TargetTcpProxiesGetCall {
79544	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79545	return c
79546}
79547
79548// IfNoneMatch sets the optional parameter which makes the operation
79549// fail if the object's ETag matches the given value. This is useful for
79550// getting updates only after the object has changed since the last
79551// request. Use googleapi.IsNotModified to check whether the response
79552// error from Do is the result of In-None-Match.
79553func (c *TargetTcpProxiesGetCall) IfNoneMatch(entityTag string) *TargetTcpProxiesGetCall {
79554	c.ifNoneMatch_ = entityTag
79555	return c
79556}
79557
79558// Context sets the context to be used in this call's Do method. Any
79559// pending HTTP request will be aborted if the provided context is
79560// canceled.
79561func (c *TargetTcpProxiesGetCall) Context(ctx context.Context) *TargetTcpProxiesGetCall {
79562	c.ctx_ = ctx
79563	return c
79564}
79565
79566// Header returns an http.Header that can be modified by the caller to
79567// add HTTP headers to the request.
79568func (c *TargetTcpProxiesGetCall) Header() http.Header {
79569	if c.header_ == nil {
79570		c.header_ = make(http.Header)
79571	}
79572	return c.header_
79573}
79574
79575func (c *TargetTcpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
79576	reqHeaders := make(http.Header)
79577	for k, v := range c.header_ {
79578		reqHeaders[k] = v
79579	}
79580	reqHeaders.Set("User-Agent", c.s.userAgent())
79581	if c.ifNoneMatch_ != "" {
79582		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79583	}
79584	var body io.Reader = nil
79585	c.urlParams_.Set("alt", alt)
79586	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}")
79587	urls += "?" + c.urlParams_.Encode()
79588	req, _ := http.NewRequest("GET", urls, body)
79589	req.Header = reqHeaders
79590	googleapi.Expand(req.URL, map[string]string{
79591		"project":        c.project,
79592		"targetTcpProxy": c.targetTcpProxy,
79593	})
79594	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79595}
79596
79597// Do executes the "compute.targetTcpProxies.get" call.
79598// Exactly one of *TargetTcpProxy or error will be non-nil. Any non-2xx
79599// status code is an error. Response headers are in either
79600// *TargetTcpProxy.ServerResponse.Header or (if a response was returned
79601// at all) in error.(*googleapi.Error).Header. Use
79602// googleapi.IsNotModified to check whether the returned error was
79603// because http.StatusNotModified was returned.
79604func (c *TargetTcpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxy, error) {
79605	gensupport.SetOptions(c.urlParams_, opts...)
79606	res, err := c.doRequest("json")
79607	if res != nil && res.StatusCode == http.StatusNotModified {
79608		if res.Body != nil {
79609			res.Body.Close()
79610		}
79611		return nil, &googleapi.Error{
79612			Code:   res.StatusCode,
79613			Header: res.Header,
79614		}
79615	}
79616	if err != nil {
79617		return nil, err
79618	}
79619	defer googleapi.CloseBody(res)
79620	if err := googleapi.CheckResponse(res); err != nil {
79621		return nil, err
79622	}
79623	ret := &TargetTcpProxy{
79624		ServerResponse: googleapi.ServerResponse{
79625			Header:         res.Header,
79626			HTTPStatusCode: res.StatusCode,
79627		},
79628	}
79629	target := &ret
79630	if err := gensupport.DecodeResponse(target, res); err != nil {
79631		return nil, err
79632	}
79633	return ret, nil
79634	// {
79635	//   "description": "Returns the specified TargetTcpProxy resource. Gets a list of available target TCP proxies by making a list() request.",
79636	//   "httpMethod": "GET",
79637	//   "id": "compute.targetTcpProxies.get",
79638	//   "parameterOrder": [
79639	//     "project",
79640	//     "targetTcpProxy"
79641	//   ],
79642	//   "parameters": {
79643	//     "project": {
79644	//       "description": "Project ID for this request.",
79645	//       "location": "path",
79646	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79647	//       "required": true,
79648	//       "type": "string"
79649	//     },
79650	//     "targetTcpProxy": {
79651	//       "description": "Name of the TargetTcpProxy resource to return.",
79652	//       "location": "path",
79653	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79654	//       "required": true,
79655	//       "type": "string"
79656	//     }
79657	//   },
79658	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}",
79659	//   "response": {
79660	//     "$ref": "TargetTcpProxy"
79661	//   },
79662	//   "scopes": [
79663	//     "https://www.googleapis.com/auth/cloud-platform",
79664	//     "https://www.googleapis.com/auth/compute",
79665	//     "https://www.googleapis.com/auth/compute.readonly"
79666	//   ]
79667	// }
79668
79669}
79670
79671// method id "compute.targetTcpProxies.insert":
79672
79673type TargetTcpProxiesInsertCall struct {
79674	s              *Service
79675	project        string
79676	targettcpproxy *TargetTcpProxy
79677	urlParams_     gensupport.URLParams
79678	ctx_           context.Context
79679	header_        http.Header
79680}
79681
79682// Insert: Creates a TargetTcpProxy resource in the specified project
79683// using the data included in the request.
79684func (r *TargetTcpProxiesService) Insert(project string, targettcpproxy *TargetTcpProxy) *TargetTcpProxiesInsertCall {
79685	c := &TargetTcpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79686	c.project = project
79687	c.targettcpproxy = targettcpproxy
79688	return c
79689}
79690
79691// RequestId sets the optional parameter "requestId": An optional
79692// request ID to identify requests. Specify a unique request ID so that
79693// if you must retry your request, the server will know to ignore the
79694// request if it has already been completed.
79695//
79696// For example, consider a situation where you make an initial request
79697// and the request times out. If you make the request again with the
79698// same request ID, the server can check if original operation with the
79699// same request ID was received, and if so, will ignore the second
79700// request. This prevents clients from accidentally creating duplicate
79701// commitments.
79702//
79703// The request ID must be a valid UUID with the exception that zero UUID
79704// is not supported (00000000-0000-0000-0000-000000000000).
79705func (c *TargetTcpProxiesInsertCall) RequestId(requestId string) *TargetTcpProxiesInsertCall {
79706	c.urlParams_.Set("requestId", requestId)
79707	return c
79708}
79709
79710// Fields allows partial responses to be retrieved. See
79711// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79712// for more information.
79713func (c *TargetTcpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetTcpProxiesInsertCall {
79714	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79715	return c
79716}
79717
79718// Context sets the context to be used in this call's Do method. Any
79719// pending HTTP request will be aborted if the provided context is
79720// canceled.
79721func (c *TargetTcpProxiesInsertCall) Context(ctx context.Context) *TargetTcpProxiesInsertCall {
79722	c.ctx_ = ctx
79723	return c
79724}
79725
79726// Header returns an http.Header that can be modified by the caller to
79727// add HTTP headers to the request.
79728func (c *TargetTcpProxiesInsertCall) Header() http.Header {
79729	if c.header_ == nil {
79730		c.header_ = make(http.Header)
79731	}
79732	return c.header_
79733}
79734
79735func (c *TargetTcpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
79736	reqHeaders := make(http.Header)
79737	for k, v := range c.header_ {
79738		reqHeaders[k] = v
79739	}
79740	reqHeaders.Set("User-Agent", c.s.userAgent())
79741	var body io.Reader = nil
79742	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxy)
79743	if err != nil {
79744		return nil, err
79745	}
79746	reqHeaders.Set("Content-Type", "application/json")
79747	c.urlParams_.Set("alt", alt)
79748	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies")
79749	urls += "?" + c.urlParams_.Encode()
79750	req, _ := http.NewRequest("POST", urls, body)
79751	req.Header = reqHeaders
79752	googleapi.Expand(req.URL, map[string]string{
79753		"project": c.project,
79754	})
79755	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79756}
79757
79758// Do executes the "compute.targetTcpProxies.insert" call.
79759// Exactly one of *Operation or error will be non-nil. Any non-2xx
79760// status code is an error. Response headers are in either
79761// *Operation.ServerResponse.Header or (if a response was returned at
79762// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79763// to check whether the returned error was because
79764// http.StatusNotModified was returned.
79765func (c *TargetTcpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79766	gensupport.SetOptions(c.urlParams_, opts...)
79767	res, err := c.doRequest("json")
79768	if res != nil && res.StatusCode == http.StatusNotModified {
79769		if res.Body != nil {
79770			res.Body.Close()
79771		}
79772		return nil, &googleapi.Error{
79773			Code:   res.StatusCode,
79774			Header: res.Header,
79775		}
79776	}
79777	if err != nil {
79778		return nil, err
79779	}
79780	defer googleapi.CloseBody(res)
79781	if err := googleapi.CheckResponse(res); err != nil {
79782		return nil, err
79783	}
79784	ret := &Operation{
79785		ServerResponse: googleapi.ServerResponse{
79786			Header:         res.Header,
79787			HTTPStatusCode: res.StatusCode,
79788		},
79789	}
79790	target := &ret
79791	if err := gensupport.DecodeResponse(target, res); err != nil {
79792		return nil, err
79793	}
79794	return ret, nil
79795	// {
79796	//   "description": "Creates a TargetTcpProxy resource in the specified project using the data included in the request.",
79797	//   "httpMethod": "POST",
79798	//   "id": "compute.targetTcpProxies.insert",
79799	//   "parameterOrder": [
79800	//     "project"
79801	//   ],
79802	//   "parameters": {
79803	//     "project": {
79804	//       "description": "Project ID for this request.",
79805	//       "location": "path",
79806	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79807	//       "required": true,
79808	//       "type": "string"
79809	//     },
79810	//     "requestId": {
79811	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79812	//       "location": "query",
79813	//       "type": "string"
79814	//     }
79815	//   },
79816	//   "path": "{project}/global/targetTcpProxies",
79817	//   "request": {
79818	//     "$ref": "TargetTcpProxy"
79819	//   },
79820	//   "response": {
79821	//     "$ref": "Operation"
79822	//   },
79823	//   "scopes": [
79824	//     "https://www.googleapis.com/auth/cloud-platform",
79825	//     "https://www.googleapis.com/auth/compute"
79826	//   ]
79827	// }
79828
79829}
79830
79831// method id "compute.targetTcpProxies.list":
79832
79833type TargetTcpProxiesListCall struct {
79834	s            *Service
79835	project      string
79836	urlParams_   gensupport.URLParams
79837	ifNoneMatch_ string
79838	ctx_         context.Context
79839	header_      http.Header
79840}
79841
79842// List: Retrieves the list of TargetTcpProxy resources available to the
79843// specified project.
79844func (r *TargetTcpProxiesService) List(project string) *TargetTcpProxiesListCall {
79845	c := &TargetTcpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79846	c.project = project
79847	return c
79848}
79849
79850// Filter sets the optional parameter "filter": A filter expression that
79851// filters resources listed in the response. The expression must specify
79852// the field name, a comparison operator, and the value that you want to
79853// use for filtering. The value must be a string, a number, or a
79854// boolean. The comparison operator must be either =, !=, >, or <.
79855//
79856// For example, if you are filtering Compute Engine instances, you can
79857// exclude instances named example-instance by specifying name !=
79858// example-instance.
79859//
79860// You can also filter nested fields. For example, you could specify
79861// scheduling.automaticRestart = false to include instances only if they
79862// are not scheduled for automatic restarts. You can use filtering on
79863// nested fields to filter based on resource labels.
79864//
79865// To filter on multiple expressions, provide each separate expression
79866// within parentheses. For example, (scheduling.automaticRestart = true)
79867// (cpuPlatform = "Intel Skylake"). By default, each expression is an
79868// AND expression. However, you can include AND and OR expressions
79869// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
79870// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
79871// true).
79872func (c *TargetTcpProxiesListCall) Filter(filter string) *TargetTcpProxiesListCall {
79873	c.urlParams_.Set("filter", filter)
79874	return c
79875}
79876
79877// MaxResults sets the optional parameter "maxResults": The maximum
79878// number of results per page that should be returned. If the number of
79879// available results is larger than maxResults, Compute Engine returns a
79880// nextPageToken that can be used to get the next page of results in
79881// subsequent list requests. Acceptable values are 0 to 500, inclusive.
79882// (Default: 500)
79883func (c *TargetTcpProxiesListCall) MaxResults(maxResults int64) *TargetTcpProxiesListCall {
79884	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
79885	return c
79886}
79887
79888// OrderBy sets the optional parameter "orderBy": Sorts list results by
79889// a certain order. By default, results are returned in alphanumerical
79890// order based on the resource name.
79891//
79892// You can also sort results in descending order based on the creation
79893// timestamp using orderBy="creationTimestamp desc". This sorts results
79894// based on the creationTimestamp field in reverse chronological order
79895// (newest result first). Use this to sort resources like operations so
79896// that the newest operation is returned first.
79897//
79898// Currently, only sorting by name or creationTimestamp desc is
79899// supported.
79900func (c *TargetTcpProxiesListCall) OrderBy(orderBy string) *TargetTcpProxiesListCall {
79901	c.urlParams_.Set("orderBy", orderBy)
79902	return c
79903}
79904
79905// PageToken sets the optional parameter "pageToken": Specifies a page
79906// token to use. Set pageToken to the nextPageToken returned by a
79907// previous list request to get the next page of results.
79908func (c *TargetTcpProxiesListCall) PageToken(pageToken string) *TargetTcpProxiesListCall {
79909	c.urlParams_.Set("pageToken", pageToken)
79910	return c
79911}
79912
79913// Fields allows partial responses to be retrieved. See
79914// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79915// for more information.
79916func (c *TargetTcpProxiesListCall) Fields(s ...googleapi.Field) *TargetTcpProxiesListCall {
79917	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79918	return c
79919}
79920
79921// IfNoneMatch sets the optional parameter which makes the operation
79922// fail if the object's ETag matches the given value. This is useful for
79923// getting updates only after the object has changed since the last
79924// request. Use googleapi.IsNotModified to check whether the response
79925// error from Do is the result of In-None-Match.
79926func (c *TargetTcpProxiesListCall) IfNoneMatch(entityTag string) *TargetTcpProxiesListCall {
79927	c.ifNoneMatch_ = entityTag
79928	return c
79929}
79930
79931// Context sets the context to be used in this call's Do method. Any
79932// pending HTTP request will be aborted if the provided context is
79933// canceled.
79934func (c *TargetTcpProxiesListCall) Context(ctx context.Context) *TargetTcpProxiesListCall {
79935	c.ctx_ = ctx
79936	return c
79937}
79938
79939// Header returns an http.Header that can be modified by the caller to
79940// add HTTP headers to the request.
79941func (c *TargetTcpProxiesListCall) Header() http.Header {
79942	if c.header_ == nil {
79943		c.header_ = make(http.Header)
79944	}
79945	return c.header_
79946}
79947
79948func (c *TargetTcpProxiesListCall) doRequest(alt string) (*http.Response, error) {
79949	reqHeaders := make(http.Header)
79950	for k, v := range c.header_ {
79951		reqHeaders[k] = v
79952	}
79953	reqHeaders.Set("User-Agent", c.s.userAgent())
79954	if c.ifNoneMatch_ != "" {
79955		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79956	}
79957	var body io.Reader = nil
79958	c.urlParams_.Set("alt", alt)
79959	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies")
79960	urls += "?" + c.urlParams_.Encode()
79961	req, _ := http.NewRequest("GET", urls, body)
79962	req.Header = reqHeaders
79963	googleapi.Expand(req.URL, map[string]string{
79964		"project": c.project,
79965	})
79966	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79967}
79968
79969// Do executes the "compute.targetTcpProxies.list" call.
79970// Exactly one of *TargetTcpProxyList or error will be non-nil. Any
79971// non-2xx status code is an error. Response headers are in either
79972// *TargetTcpProxyList.ServerResponse.Header or (if a response was
79973// returned at all) in error.(*googleapi.Error).Header. Use
79974// googleapi.IsNotModified to check whether the returned error was
79975// because http.StatusNotModified was returned.
79976func (c *TargetTcpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxyList, error) {
79977	gensupport.SetOptions(c.urlParams_, opts...)
79978	res, err := c.doRequest("json")
79979	if res != nil && res.StatusCode == http.StatusNotModified {
79980		if res.Body != nil {
79981			res.Body.Close()
79982		}
79983		return nil, &googleapi.Error{
79984			Code:   res.StatusCode,
79985			Header: res.Header,
79986		}
79987	}
79988	if err != nil {
79989		return nil, err
79990	}
79991	defer googleapi.CloseBody(res)
79992	if err := googleapi.CheckResponse(res); err != nil {
79993		return nil, err
79994	}
79995	ret := &TargetTcpProxyList{
79996		ServerResponse: googleapi.ServerResponse{
79997			Header:         res.Header,
79998			HTTPStatusCode: res.StatusCode,
79999		},
80000	}
80001	target := &ret
80002	if err := gensupport.DecodeResponse(target, res); err != nil {
80003		return nil, err
80004	}
80005	return ret, nil
80006	// {
80007	//   "description": "Retrieves the list of TargetTcpProxy resources available to the specified project.",
80008	//   "httpMethod": "GET",
80009	//   "id": "compute.targetTcpProxies.list",
80010	//   "parameterOrder": [
80011	//     "project"
80012	//   ],
80013	//   "parameters": {
80014	//     "filter": {
80015	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
80016	//       "location": "query",
80017	//       "type": "string"
80018	//     },
80019	//     "maxResults": {
80020	//       "default": "500",
80021	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
80022	//       "format": "uint32",
80023	//       "location": "query",
80024	//       "minimum": "0",
80025	//       "type": "integer"
80026	//     },
80027	//     "orderBy": {
80028	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
80029	//       "location": "query",
80030	//       "type": "string"
80031	//     },
80032	//     "pageToken": {
80033	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
80034	//       "location": "query",
80035	//       "type": "string"
80036	//     },
80037	//     "project": {
80038	//       "description": "Project ID for this request.",
80039	//       "location": "path",
80040	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80041	//       "required": true,
80042	//       "type": "string"
80043	//     }
80044	//   },
80045	//   "path": "{project}/global/targetTcpProxies",
80046	//   "response": {
80047	//     "$ref": "TargetTcpProxyList"
80048	//   },
80049	//   "scopes": [
80050	//     "https://www.googleapis.com/auth/cloud-platform",
80051	//     "https://www.googleapis.com/auth/compute",
80052	//     "https://www.googleapis.com/auth/compute.readonly"
80053	//   ]
80054	// }
80055
80056}
80057
80058// Pages invokes f for each page of results.
80059// A non-nil error returned from f will halt the iteration.
80060// The provided context supersedes any context provided to the Context method.
80061func (c *TargetTcpProxiesListCall) Pages(ctx context.Context, f func(*TargetTcpProxyList) error) error {
80062	c.ctx_ = ctx
80063	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
80064	for {
80065		x, err := c.Do()
80066		if err != nil {
80067			return err
80068		}
80069		if err := f(x); err != nil {
80070			return err
80071		}
80072		if x.NextPageToken == "" {
80073			return nil
80074		}
80075		c.PageToken(x.NextPageToken)
80076	}
80077}
80078
80079// method id "compute.targetTcpProxies.setBackendService":
80080
80081type TargetTcpProxiesSetBackendServiceCall struct {
80082	s                                        *Service
80083	project                                  string
80084	targetTcpProxy                           string
80085	targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest
80086	urlParams_                               gensupport.URLParams
80087	ctx_                                     context.Context
80088	header_                                  http.Header
80089}
80090
80091// SetBackendService: Changes the BackendService for TargetTcpProxy.
80092func (r *TargetTcpProxiesService) SetBackendService(project string, targetTcpProxy string, targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest) *TargetTcpProxiesSetBackendServiceCall {
80093	c := &TargetTcpProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80094	c.project = project
80095	c.targetTcpProxy = targetTcpProxy
80096	c.targettcpproxiessetbackendservicerequest = targettcpproxiessetbackendservicerequest
80097	return c
80098}
80099
80100// RequestId sets the optional parameter "requestId": An optional
80101// request ID to identify requests. Specify a unique request ID so that
80102// if you must retry your request, the server will know to ignore the
80103// request if it has already been completed.
80104//
80105// For example, consider a situation where you make an initial request
80106// and the request times out. If you make the request again with the
80107// same request ID, the server can check if original operation with the
80108// same request ID was received, and if so, will ignore the second
80109// request. This prevents clients from accidentally creating duplicate
80110// commitments.
80111//
80112// The request ID must be a valid UUID with the exception that zero UUID
80113// is not supported (00000000-0000-0000-0000-000000000000).
80114func (c *TargetTcpProxiesSetBackendServiceCall) RequestId(requestId string) *TargetTcpProxiesSetBackendServiceCall {
80115	c.urlParams_.Set("requestId", requestId)
80116	return c
80117}
80118
80119// Fields allows partial responses to be retrieved. See
80120// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80121// for more information.
80122func (c *TargetTcpProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetBackendServiceCall {
80123	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80124	return c
80125}
80126
80127// Context sets the context to be used in this call's Do method. Any
80128// pending HTTP request will be aborted if the provided context is
80129// canceled.
80130func (c *TargetTcpProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetTcpProxiesSetBackendServiceCall {
80131	c.ctx_ = ctx
80132	return c
80133}
80134
80135// Header returns an http.Header that can be modified by the caller to
80136// add HTTP headers to the request.
80137func (c *TargetTcpProxiesSetBackendServiceCall) Header() http.Header {
80138	if c.header_ == nil {
80139		c.header_ = make(http.Header)
80140	}
80141	return c.header_
80142}
80143
80144func (c *TargetTcpProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
80145	reqHeaders := make(http.Header)
80146	for k, v := range c.header_ {
80147		reqHeaders[k] = v
80148	}
80149	reqHeaders.Set("User-Agent", c.s.userAgent())
80150	var body io.Reader = nil
80151	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetbackendservicerequest)
80152	if err != nil {
80153		return nil, err
80154	}
80155	reqHeaders.Set("Content-Type", "application/json")
80156	c.urlParams_.Set("alt", alt)
80157	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService")
80158	urls += "?" + c.urlParams_.Encode()
80159	req, _ := http.NewRequest("POST", urls, body)
80160	req.Header = reqHeaders
80161	googleapi.Expand(req.URL, map[string]string{
80162		"project":        c.project,
80163		"targetTcpProxy": c.targetTcpProxy,
80164	})
80165	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80166}
80167
80168// Do executes the "compute.targetTcpProxies.setBackendService" call.
80169// Exactly one of *Operation or error will be non-nil. Any non-2xx
80170// status code is an error. Response headers are in either
80171// *Operation.ServerResponse.Header or (if a response was returned at
80172// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80173// to check whether the returned error was because
80174// http.StatusNotModified was returned.
80175func (c *TargetTcpProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80176	gensupport.SetOptions(c.urlParams_, opts...)
80177	res, err := c.doRequest("json")
80178	if res != nil && res.StatusCode == http.StatusNotModified {
80179		if res.Body != nil {
80180			res.Body.Close()
80181		}
80182		return nil, &googleapi.Error{
80183			Code:   res.StatusCode,
80184			Header: res.Header,
80185		}
80186	}
80187	if err != nil {
80188		return nil, err
80189	}
80190	defer googleapi.CloseBody(res)
80191	if err := googleapi.CheckResponse(res); err != nil {
80192		return nil, err
80193	}
80194	ret := &Operation{
80195		ServerResponse: googleapi.ServerResponse{
80196			Header:         res.Header,
80197			HTTPStatusCode: res.StatusCode,
80198		},
80199	}
80200	target := &ret
80201	if err := gensupport.DecodeResponse(target, res); err != nil {
80202		return nil, err
80203	}
80204	return ret, nil
80205	// {
80206	//   "description": "Changes the BackendService for TargetTcpProxy.",
80207	//   "httpMethod": "POST",
80208	//   "id": "compute.targetTcpProxies.setBackendService",
80209	//   "parameterOrder": [
80210	//     "project",
80211	//     "targetTcpProxy"
80212	//   ],
80213	//   "parameters": {
80214	//     "project": {
80215	//       "description": "Project ID for this request.",
80216	//       "location": "path",
80217	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80218	//       "required": true,
80219	//       "type": "string"
80220	//     },
80221	//     "requestId": {
80222	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80223	//       "location": "query",
80224	//       "type": "string"
80225	//     },
80226	//     "targetTcpProxy": {
80227	//       "description": "Name of the TargetTcpProxy resource whose BackendService resource is to be set.",
80228	//       "location": "path",
80229	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80230	//       "required": true,
80231	//       "type": "string"
80232	//     }
80233	//   },
80234	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService",
80235	//   "request": {
80236	//     "$ref": "TargetTcpProxiesSetBackendServiceRequest"
80237	//   },
80238	//   "response": {
80239	//     "$ref": "Operation"
80240	//   },
80241	//   "scopes": [
80242	//     "https://www.googleapis.com/auth/cloud-platform",
80243	//     "https://www.googleapis.com/auth/compute"
80244	//   ]
80245	// }
80246
80247}
80248
80249// method id "compute.targetTcpProxies.setProxyHeader":
80250
80251type TargetTcpProxiesSetProxyHeaderCall struct {
80252	s                                     *Service
80253	project                               string
80254	targetTcpProxy                        string
80255	targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest
80256	urlParams_                            gensupport.URLParams
80257	ctx_                                  context.Context
80258	header_                               http.Header
80259}
80260
80261// SetProxyHeader: Changes the ProxyHeaderType for TargetTcpProxy.
80262func (r *TargetTcpProxiesService) SetProxyHeader(project string, targetTcpProxy string, targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest) *TargetTcpProxiesSetProxyHeaderCall {
80263	c := &TargetTcpProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80264	c.project = project
80265	c.targetTcpProxy = targetTcpProxy
80266	c.targettcpproxiessetproxyheaderrequest = targettcpproxiessetproxyheaderrequest
80267	return c
80268}
80269
80270// RequestId sets the optional parameter "requestId": An optional
80271// request ID to identify requests. Specify a unique request ID so that
80272// if you must retry your request, the server will know to ignore the
80273// request if it has already been completed.
80274//
80275// For example, consider a situation where you make an initial request
80276// and the request times out. If you make the request again with the
80277// same request ID, the server can check if original operation with the
80278// same request ID was received, and if so, will ignore the second
80279// request. This prevents clients from accidentally creating duplicate
80280// commitments.
80281//
80282// The request ID must be a valid UUID with the exception that zero UUID
80283// is not supported (00000000-0000-0000-0000-000000000000).
80284func (c *TargetTcpProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetTcpProxiesSetProxyHeaderCall {
80285	c.urlParams_.Set("requestId", requestId)
80286	return c
80287}
80288
80289// Fields allows partial responses to be retrieved. See
80290// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80291// for more information.
80292func (c *TargetTcpProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetProxyHeaderCall {
80293	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80294	return c
80295}
80296
80297// Context sets the context to be used in this call's Do method. Any
80298// pending HTTP request will be aborted if the provided context is
80299// canceled.
80300func (c *TargetTcpProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetTcpProxiesSetProxyHeaderCall {
80301	c.ctx_ = ctx
80302	return c
80303}
80304
80305// Header returns an http.Header that can be modified by the caller to
80306// add HTTP headers to the request.
80307func (c *TargetTcpProxiesSetProxyHeaderCall) Header() http.Header {
80308	if c.header_ == nil {
80309		c.header_ = make(http.Header)
80310	}
80311	return c.header_
80312}
80313
80314func (c *TargetTcpProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
80315	reqHeaders := make(http.Header)
80316	for k, v := range c.header_ {
80317		reqHeaders[k] = v
80318	}
80319	reqHeaders.Set("User-Agent", c.s.userAgent())
80320	var body io.Reader = nil
80321	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetproxyheaderrequest)
80322	if err != nil {
80323		return nil, err
80324	}
80325	reqHeaders.Set("Content-Type", "application/json")
80326	c.urlParams_.Set("alt", alt)
80327	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader")
80328	urls += "?" + c.urlParams_.Encode()
80329	req, _ := http.NewRequest("POST", urls, body)
80330	req.Header = reqHeaders
80331	googleapi.Expand(req.URL, map[string]string{
80332		"project":        c.project,
80333		"targetTcpProxy": c.targetTcpProxy,
80334	})
80335	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80336}
80337
80338// Do executes the "compute.targetTcpProxies.setProxyHeader" call.
80339// Exactly one of *Operation or error will be non-nil. Any non-2xx
80340// status code is an error. Response headers are in either
80341// *Operation.ServerResponse.Header or (if a response was returned at
80342// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80343// to check whether the returned error was because
80344// http.StatusNotModified was returned.
80345func (c *TargetTcpProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80346	gensupport.SetOptions(c.urlParams_, opts...)
80347	res, err := c.doRequest("json")
80348	if res != nil && res.StatusCode == http.StatusNotModified {
80349		if res.Body != nil {
80350			res.Body.Close()
80351		}
80352		return nil, &googleapi.Error{
80353			Code:   res.StatusCode,
80354			Header: res.Header,
80355		}
80356	}
80357	if err != nil {
80358		return nil, err
80359	}
80360	defer googleapi.CloseBody(res)
80361	if err := googleapi.CheckResponse(res); err != nil {
80362		return nil, err
80363	}
80364	ret := &Operation{
80365		ServerResponse: googleapi.ServerResponse{
80366			Header:         res.Header,
80367			HTTPStatusCode: res.StatusCode,
80368		},
80369	}
80370	target := &ret
80371	if err := gensupport.DecodeResponse(target, res); err != nil {
80372		return nil, err
80373	}
80374	return ret, nil
80375	// {
80376	//   "description": "Changes the ProxyHeaderType for TargetTcpProxy.",
80377	//   "httpMethod": "POST",
80378	//   "id": "compute.targetTcpProxies.setProxyHeader",
80379	//   "parameterOrder": [
80380	//     "project",
80381	//     "targetTcpProxy"
80382	//   ],
80383	//   "parameters": {
80384	//     "project": {
80385	//       "description": "Project ID for this request.",
80386	//       "location": "path",
80387	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80388	//       "required": true,
80389	//       "type": "string"
80390	//     },
80391	//     "requestId": {
80392	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80393	//       "location": "query",
80394	//       "type": "string"
80395	//     },
80396	//     "targetTcpProxy": {
80397	//       "description": "Name of the TargetTcpProxy resource whose ProxyHeader is to be set.",
80398	//       "location": "path",
80399	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80400	//       "required": true,
80401	//       "type": "string"
80402	//     }
80403	//   },
80404	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader",
80405	//   "request": {
80406	//     "$ref": "TargetTcpProxiesSetProxyHeaderRequest"
80407	//   },
80408	//   "response": {
80409	//     "$ref": "Operation"
80410	//   },
80411	//   "scopes": [
80412	//     "https://www.googleapis.com/auth/cloud-platform",
80413	//     "https://www.googleapis.com/auth/compute"
80414	//   ]
80415	// }
80416
80417}
80418
80419// method id "compute.targetVpnGateways.aggregatedList":
80420
80421type TargetVpnGatewaysAggregatedListCall struct {
80422	s            *Service
80423	project      string
80424	urlParams_   gensupport.URLParams
80425	ifNoneMatch_ string
80426	ctx_         context.Context
80427	header_      http.Header
80428}
80429
80430// AggregatedList: Retrieves an aggregated list of target VPN gateways.
80431func (r *TargetVpnGatewaysService) AggregatedList(project string) *TargetVpnGatewaysAggregatedListCall {
80432	c := &TargetVpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80433	c.project = project
80434	return c
80435}
80436
80437// Filter sets the optional parameter "filter": A filter expression that
80438// filters resources listed in the response. The expression must specify
80439// the field name, a comparison operator, and the value that you want to
80440// use for filtering. The value must be a string, a number, or a
80441// boolean. The comparison operator must be either =, !=, >, or <.
80442//
80443// For example, if you are filtering Compute Engine instances, you can
80444// exclude instances named example-instance by specifying name !=
80445// example-instance.
80446//
80447// You can also filter nested fields. For example, you could specify
80448// scheduling.automaticRestart = false to include instances only if they
80449// are not scheduled for automatic restarts. You can use filtering on
80450// nested fields to filter based on resource labels.
80451//
80452// To filter on multiple expressions, provide each separate expression
80453// within parentheses. For example, (scheduling.automaticRestart = true)
80454// (cpuPlatform = "Intel Skylake"). By default, each expression is an
80455// AND expression. However, you can include AND and OR expressions
80456// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
80457// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
80458// true).
80459func (c *TargetVpnGatewaysAggregatedListCall) Filter(filter string) *TargetVpnGatewaysAggregatedListCall {
80460	c.urlParams_.Set("filter", filter)
80461	return c
80462}
80463
80464// MaxResults sets the optional parameter "maxResults": The maximum
80465// number of results per page that should be returned. If the number of
80466// available results is larger than maxResults, Compute Engine returns a
80467// nextPageToken that can be used to get the next page of results in
80468// subsequent list requests. Acceptable values are 0 to 500, inclusive.
80469// (Default: 500)
80470func (c *TargetVpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *TargetVpnGatewaysAggregatedListCall {
80471	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
80472	return c
80473}
80474
80475// OrderBy sets the optional parameter "orderBy": Sorts list results by
80476// a certain order. By default, results are returned in alphanumerical
80477// order based on the resource name.
80478//
80479// You can also sort results in descending order based on the creation
80480// timestamp using orderBy="creationTimestamp desc". This sorts results
80481// based on the creationTimestamp field in reverse chronological order
80482// (newest result first). Use this to sort resources like operations so
80483// that the newest operation is returned first.
80484//
80485// Currently, only sorting by name or creationTimestamp desc is
80486// supported.
80487func (c *TargetVpnGatewaysAggregatedListCall) OrderBy(orderBy string) *TargetVpnGatewaysAggregatedListCall {
80488	c.urlParams_.Set("orderBy", orderBy)
80489	return c
80490}
80491
80492// PageToken sets the optional parameter "pageToken": Specifies a page
80493// token to use. Set pageToken to the nextPageToken returned by a
80494// previous list request to get the next page of results.
80495func (c *TargetVpnGatewaysAggregatedListCall) PageToken(pageToken string) *TargetVpnGatewaysAggregatedListCall {
80496	c.urlParams_.Set("pageToken", pageToken)
80497	return c
80498}
80499
80500// Fields allows partial responses to be retrieved. See
80501// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80502// for more information.
80503func (c *TargetVpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysAggregatedListCall {
80504	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80505	return c
80506}
80507
80508// IfNoneMatch sets the optional parameter which makes the operation
80509// fail if the object's ETag matches the given value. This is useful for
80510// getting updates only after the object has changed since the last
80511// request. Use googleapi.IsNotModified to check whether the response
80512// error from Do is the result of In-None-Match.
80513func (c *TargetVpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysAggregatedListCall {
80514	c.ifNoneMatch_ = entityTag
80515	return c
80516}
80517
80518// Context sets the context to be used in this call's Do method. Any
80519// pending HTTP request will be aborted if the provided context is
80520// canceled.
80521func (c *TargetVpnGatewaysAggregatedListCall) Context(ctx context.Context) *TargetVpnGatewaysAggregatedListCall {
80522	c.ctx_ = ctx
80523	return c
80524}
80525
80526// Header returns an http.Header that can be modified by the caller to
80527// add HTTP headers to the request.
80528func (c *TargetVpnGatewaysAggregatedListCall) Header() http.Header {
80529	if c.header_ == nil {
80530		c.header_ = make(http.Header)
80531	}
80532	return c.header_
80533}
80534
80535func (c *TargetVpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
80536	reqHeaders := make(http.Header)
80537	for k, v := range c.header_ {
80538		reqHeaders[k] = v
80539	}
80540	reqHeaders.Set("User-Agent", c.s.userAgent())
80541	if c.ifNoneMatch_ != "" {
80542		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80543	}
80544	var body io.Reader = nil
80545	c.urlParams_.Set("alt", alt)
80546	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetVpnGateways")
80547	urls += "?" + c.urlParams_.Encode()
80548	req, _ := http.NewRequest("GET", urls, body)
80549	req.Header = reqHeaders
80550	googleapi.Expand(req.URL, map[string]string{
80551		"project": c.project,
80552	})
80553	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80554}
80555
80556// Do executes the "compute.targetVpnGateways.aggregatedList" call.
80557// Exactly one of *TargetVpnGatewayAggregatedList or error will be
80558// non-nil. Any non-2xx status code is an error. Response headers are in
80559// either *TargetVpnGatewayAggregatedList.ServerResponse.Header or (if a
80560// response was returned at all) in error.(*googleapi.Error).Header. Use
80561// googleapi.IsNotModified to check whether the returned error was
80562// because http.StatusNotModified was returned.
80563func (c *TargetVpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayAggregatedList, error) {
80564	gensupport.SetOptions(c.urlParams_, opts...)
80565	res, err := c.doRequest("json")
80566	if res != nil && res.StatusCode == http.StatusNotModified {
80567		if res.Body != nil {
80568			res.Body.Close()
80569		}
80570		return nil, &googleapi.Error{
80571			Code:   res.StatusCode,
80572			Header: res.Header,
80573		}
80574	}
80575	if err != nil {
80576		return nil, err
80577	}
80578	defer googleapi.CloseBody(res)
80579	if err := googleapi.CheckResponse(res); err != nil {
80580		return nil, err
80581	}
80582	ret := &TargetVpnGatewayAggregatedList{
80583		ServerResponse: googleapi.ServerResponse{
80584			Header:         res.Header,
80585			HTTPStatusCode: res.StatusCode,
80586		},
80587	}
80588	target := &ret
80589	if err := gensupport.DecodeResponse(target, res); err != nil {
80590		return nil, err
80591	}
80592	return ret, nil
80593	// {
80594	//   "description": "Retrieves an aggregated list of target VPN gateways.",
80595	//   "httpMethod": "GET",
80596	//   "id": "compute.targetVpnGateways.aggregatedList",
80597	//   "parameterOrder": [
80598	//     "project"
80599	//   ],
80600	//   "parameters": {
80601	//     "filter": {
80602	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
80603	//       "location": "query",
80604	//       "type": "string"
80605	//     },
80606	//     "maxResults": {
80607	//       "default": "500",
80608	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
80609	//       "format": "uint32",
80610	//       "location": "query",
80611	//       "minimum": "0",
80612	//       "type": "integer"
80613	//     },
80614	//     "orderBy": {
80615	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
80616	//       "location": "query",
80617	//       "type": "string"
80618	//     },
80619	//     "pageToken": {
80620	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
80621	//       "location": "query",
80622	//       "type": "string"
80623	//     },
80624	//     "project": {
80625	//       "description": "Project ID for this request.",
80626	//       "location": "path",
80627	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80628	//       "required": true,
80629	//       "type": "string"
80630	//     }
80631	//   },
80632	//   "path": "{project}/aggregated/targetVpnGateways",
80633	//   "response": {
80634	//     "$ref": "TargetVpnGatewayAggregatedList"
80635	//   },
80636	//   "scopes": [
80637	//     "https://www.googleapis.com/auth/cloud-platform",
80638	//     "https://www.googleapis.com/auth/compute",
80639	//     "https://www.googleapis.com/auth/compute.readonly"
80640	//   ]
80641	// }
80642
80643}
80644
80645// Pages invokes f for each page of results.
80646// A non-nil error returned from f will halt the iteration.
80647// The provided context supersedes any context provided to the Context method.
80648func (c *TargetVpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayAggregatedList) error) error {
80649	c.ctx_ = ctx
80650	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
80651	for {
80652		x, err := c.Do()
80653		if err != nil {
80654			return err
80655		}
80656		if err := f(x); err != nil {
80657			return err
80658		}
80659		if x.NextPageToken == "" {
80660			return nil
80661		}
80662		c.PageToken(x.NextPageToken)
80663	}
80664}
80665
80666// method id "compute.targetVpnGateways.delete":
80667
80668type TargetVpnGatewaysDeleteCall struct {
80669	s                *Service
80670	project          string
80671	region           string
80672	targetVpnGateway string
80673	urlParams_       gensupport.URLParams
80674	ctx_             context.Context
80675	header_          http.Header
80676}
80677
80678// Delete: Deletes the specified target VPN gateway.
80679func (r *TargetVpnGatewaysService) Delete(project string, region string, targetVpnGateway string) *TargetVpnGatewaysDeleteCall {
80680	c := &TargetVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80681	c.project = project
80682	c.region = region
80683	c.targetVpnGateway = targetVpnGateway
80684	return c
80685}
80686
80687// RequestId sets the optional parameter "requestId": An optional
80688// request ID to identify requests. Specify a unique request ID so that
80689// if you must retry your request, the server will know to ignore the
80690// request if it has already been completed.
80691//
80692// For example, consider a situation where you make an initial request
80693// and the request times out. If you make the request again with the
80694// same request ID, the server can check if original operation with the
80695// same request ID was received, and if so, will ignore the second
80696// request. This prevents clients from accidentally creating duplicate
80697// commitments.
80698//
80699// The request ID must be a valid UUID with the exception that zero UUID
80700// is not supported (00000000-0000-0000-0000-000000000000).
80701func (c *TargetVpnGatewaysDeleteCall) RequestId(requestId string) *TargetVpnGatewaysDeleteCall {
80702	c.urlParams_.Set("requestId", requestId)
80703	return c
80704}
80705
80706// Fields allows partial responses to be retrieved. See
80707// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80708// for more information.
80709func (c *TargetVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysDeleteCall {
80710	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80711	return c
80712}
80713
80714// Context sets the context to be used in this call's Do method. Any
80715// pending HTTP request will be aborted if the provided context is
80716// canceled.
80717func (c *TargetVpnGatewaysDeleteCall) Context(ctx context.Context) *TargetVpnGatewaysDeleteCall {
80718	c.ctx_ = ctx
80719	return c
80720}
80721
80722// Header returns an http.Header that can be modified by the caller to
80723// add HTTP headers to the request.
80724func (c *TargetVpnGatewaysDeleteCall) Header() http.Header {
80725	if c.header_ == nil {
80726		c.header_ = make(http.Header)
80727	}
80728	return c.header_
80729}
80730
80731func (c *TargetVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
80732	reqHeaders := make(http.Header)
80733	for k, v := range c.header_ {
80734		reqHeaders[k] = v
80735	}
80736	reqHeaders.Set("User-Agent", c.s.userAgent())
80737	var body io.Reader = nil
80738	c.urlParams_.Set("alt", alt)
80739	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
80740	urls += "?" + c.urlParams_.Encode()
80741	req, _ := http.NewRequest("DELETE", urls, body)
80742	req.Header = reqHeaders
80743	googleapi.Expand(req.URL, map[string]string{
80744		"project":          c.project,
80745		"region":           c.region,
80746		"targetVpnGateway": c.targetVpnGateway,
80747	})
80748	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80749}
80750
80751// Do executes the "compute.targetVpnGateways.delete" call.
80752// Exactly one of *Operation or error will be non-nil. Any non-2xx
80753// status code is an error. Response headers are in either
80754// *Operation.ServerResponse.Header or (if a response was returned at
80755// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80756// to check whether the returned error was because
80757// http.StatusNotModified was returned.
80758func (c *TargetVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80759	gensupport.SetOptions(c.urlParams_, opts...)
80760	res, err := c.doRequest("json")
80761	if res != nil && res.StatusCode == http.StatusNotModified {
80762		if res.Body != nil {
80763			res.Body.Close()
80764		}
80765		return nil, &googleapi.Error{
80766			Code:   res.StatusCode,
80767			Header: res.Header,
80768		}
80769	}
80770	if err != nil {
80771		return nil, err
80772	}
80773	defer googleapi.CloseBody(res)
80774	if err := googleapi.CheckResponse(res); err != nil {
80775		return nil, err
80776	}
80777	ret := &Operation{
80778		ServerResponse: googleapi.ServerResponse{
80779			Header:         res.Header,
80780			HTTPStatusCode: res.StatusCode,
80781		},
80782	}
80783	target := &ret
80784	if err := gensupport.DecodeResponse(target, res); err != nil {
80785		return nil, err
80786	}
80787	return ret, nil
80788	// {
80789	//   "description": "Deletes the specified target VPN gateway.",
80790	//   "httpMethod": "DELETE",
80791	//   "id": "compute.targetVpnGateways.delete",
80792	//   "parameterOrder": [
80793	//     "project",
80794	//     "region",
80795	//     "targetVpnGateway"
80796	//   ],
80797	//   "parameters": {
80798	//     "project": {
80799	//       "description": "Project ID for this request.",
80800	//       "location": "path",
80801	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80802	//       "required": true,
80803	//       "type": "string"
80804	//     },
80805	//     "region": {
80806	//       "description": "Name of the region for this request.",
80807	//       "location": "path",
80808	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80809	//       "required": true,
80810	//       "type": "string"
80811	//     },
80812	//     "requestId": {
80813	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80814	//       "location": "query",
80815	//       "type": "string"
80816	//     },
80817	//     "targetVpnGateway": {
80818	//       "description": "Name of the target VPN gateway to delete.",
80819	//       "location": "path",
80820	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80821	//       "required": true,
80822	//       "type": "string"
80823	//     }
80824	//   },
80825	//   "path": "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
80826	//   "response": {
80827	//     "$ref": "Operation"
80828	//   },
80829	//   "scopes": [
80830	//     "https://www.googleapis.com/auth/cloud-platform",
80831	//     "https://www.googleapis.com/auth/compute"
80832	//   ]
80833	// }
80834
80835}
80836
80837// method id "compute.targetVpnGateways.get":
80838
80839type TargetVpnGatewaysGetCall struct {
80840	s                *Service
80841	project          string
80842	region           string
80843	targetVpnGateway string
80844	urlParams_       gensupport.URLParams
80845	ifNoneMatch_     string
80846	ctx_             context.Context
80847	header_          http.Header
80848}
80849
80850// Get: Returns the specified target VPN gateway. Gets a list of
80851// available target VPN gateways by making a list() request.
80852func (r *TargetVpnGatewaysService) Get(project string, region string, targetVpnGateway string) *TargetVpnGatewaysGetCall {
80853	c := &TargetVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80854	c.project = project
80855	c.region = region
80856	c.targetVpnGateway = targetVpnGateway
80857	return c
80858}
80859
80860// Fields allows partial responses to be retrieved. See
80861// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80862// for more information.
80863func (c *TargetVpnGatewaysGetCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysGetCall {
80864	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80865	return c
80866}
80867
80868// IfNoneMatch sets the optional parameter which makes the operation
80869// fail if the object's ETag matches the given value. This is useful for
80870// getting updates only after the object has changed since the last
80871// request. Use googleapi.IsNotModified to check whether the response
80872// error from Do is the result of In-None-Match.
80873func (c *TargetVpnGatewaysGetCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysGetCall {
80874	c.ifNoneMatch_ = entityTag
80875	return c
80876}
80877
80878// Context sets the context to be used in this call's Do method. Any
80879// pending HTTP request will be aborted if the provided context is
80880// canceled.
80881func (c *TargetVpnGatewaysGetCall) Context(ctx context.Context) *TargetVpnGatewaysGetCall {
80882	c.ctx_ = ctx
80883	return c
80884}
80885
80886// Header returns an http.Header that can be modified by the caller to
80887// add HTTP headers to the request.
80888func (c *TargetVpnGatewaysGetCall) Header() http.Header {
80889	if c.header_ == nil {
80890		c.header_ = make(http.Header)
80891	}
80892	return c.header_
80893}
80894
80895func (c *TargetVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
80896	reqHeaders := make(http.Header)
80897	for k, v := range c.header_ {
80898		reqHeaders[k] = v
80899	}
80900	reqHeaders.Set("User-Agent", c.s.userAgent())
80901	if c.ifNoneMatch_ != "" {
80902		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80903	}
80904	var body io.Reader = nil
80905	c.urlParams_.Set("alt", alt)
80906	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
80907	urls += "?" + c.urlParams_.Encode()
80908	req, _ := http.NewRequest("GET", urls, body)
80909	req.Header = reqHeaders
80910	googleapi.Expand(req.URL, map[string]string{
80911		"project":          c.project,
80912		"region":           c.region,
80913		"targetVpnGateway": c.targetVpnGateway,
80914	})
80915	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80916}
80917
80918// Do executes the "compute.targetVpnGateways.get" call.
80919// Exactly one of *TargetVpnGateway or error will be non-nil. Any
80920// non-2xx status code is an error. Response headers are in either
80921// *TargetVpnGateway.ServerResponse.Header or (if a response was
80922// returned at all) in error.(*googleapi.Error).Header. Use
80923// googleapi.IsNotModified to check whether the returned error was
80924// because http.StatusNotModified was returned.
80925func (c *TargetVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*TargetVpnGateway, error) {
80926	gensupport.SetOptions(c.urlParams_, opts...)
80927	res, err := c.doRequest("json")
80928	if res != nil && res.StatusCode == http.StatusNotModified {
80929		if res.Body != nil {
80930			res.Body.Close()
80931		}
80932		return nil, &googleapi.Error{
80933			Code:   res.StatusCode,
80934			Header: res.Header,
80935		}
80936	}
80937	if err != nil {
80938		return nil, err
80939	}
80940	defer googleapi.CloseBody(res)
80941	if err := googleapi.CheckResponse(res); err != nil {
80942		return nil, err
80943	}
80944	ret := &TargetVpnGateway{
80945		ServerResponse: googleapi.ServerResponse{
80946			Header:         res.Header,
80947			HTTPStatusCode: res.StatusCode,
80948		},
80949	}
80950	target := &ret
80951	if err := gensupport.DecodeResponse(target, res); err != nil {
80952		return nil, err
80953	}
80954	return ret, nil
80955	// {
80956	//   "description": "Returns the specified target VPN gateway. Gets a list of available target VPN gateways by making a list() request.",
80957	//   "httpMethod": "GET",
80958	//   "id": "compute.targetVpnGateways.get",
80959	//   "parameterOrder": [
80960	//     "project",
80961	//     "region",
80962	//     "targetVpnGateway"
80963	//   ],
80964	//   "parameters": {
80965	//     "project": {
80966	//       "description": "Project ID for this request.",
80967	//       "location": "path",
80968	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80969	//       "required": true,
80970	//       "type": "string"
80971	//     },
80972	//     "region": {
80973	//       "description": "Name of the region for this request.",
80974	//       "location": "path",
80975	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80976	//       "required": true,
80977	//       "type": "string"
80978	//     },
80979	//     "targetVpnGateway": {
80980	//       "description": "Name of the target VPN gateway to return.",
80981	//       "location": "path",
80982	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80983	//       "required": true,
80984	//       "type": "string"
80985	//     }
80986	//   },
80987	//   "path": "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
80988	//   "response": {
80989	//     "$ref": "TargetVpnGateway"
80990	//   },
80991	//   "scopes": [
80992	//     "https://www.googleapis.com/auth/cloud-platform",
80993	//     "https://www.googleapis.com/auth/compute",
80994	//     "https://www.googleapis.com/auth/compute.readonly"
80995	//   ]
80996	// }
80997
80998}
80999
81000// method id "compute.targetVpnGateways.insert":
81001
81002type TargetVpnGatewaysInsertCall struct {
81003	s                *Service
81004	project          string
81005	region           string
81006	targetvpngateway *TargetVpnGateway
81007	urlParams_       gensupport.URLParams
81008	ctx_             context.Context
81009	header_          http.Header
81010}
81011
81012// Insert: Creates a target VPN gateway in the specified project and
81013// region using the data included in the request.
81014func (r *TargetVpnGatewaysService) Insert(project string, region string, targetvpngateway *TargetVpnGateway) *TargetVpnGatewaysInsertCall {
81015	c := &TargetVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81016	c.project = project
81017	c.region = region
81018	c.targetvpngateway = targetvpngateway
81019	return c
81020}
81021
81022// RequestId sets the optional parameter "requestId": An optional
81023// request ID to identify requests. Specify a unique request ID so that
81024// if you must retry your request, the server will know to ignore the
81025// request if it has already been completed.
81026//
81027// For example, consider a situation where you make an initial request
81028// and the request times out. If you make the request again with the
81029// same request ID, the server can check if original operation with the
81030// same request ID was received, and if so, will ignore the second
81031// request. This prevents clients from accidentally creating duplicate
81032// commitments.
81033//
81034// The request ID must be a valid UUID with the exception that zero UUID
81035// is not supported (00000000-0000-0000-0000-000000000000).
81036func (c *TargetVpnGatewaysInsertCall) RequestId(requestId string) *TargetVpnGatewaysInsertCall {
81037	c.urlParams_.Set("requestId", requestId)
81038	return c
81039}
81040
81041// Fields allows partial responses to be retrieved. See
81042// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81043// for more information.
81044func (c *TargetVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysInsertCall {
81045	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81046	return c
81047}
81048
81049// Context sets the context to be used in this call's Do method. Any
81050// pending HTTP request will be aborted if the provided context is
81051// canceled.
81052func (c *TargetVpnGatewaysInsertCall) Context(ctx context.Context) *TargetVpnGatewaysInsertCall {
81053	c.ctx_ = ctx
81054	return c
81055}
81056
81057// Header returns an http.Header that can be modified by the caller to
81058// add HTTP headers to the request.
81059func (c *TargetVpnGatewaysInsertCall) Header() http.Header {
81060	if c.header_ == nil {
81061		c.header_ = make(http.Header)
81062	}
81063	return c.header_
81064}
81065
81066func (c *TargetVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
81067	reqHeaders := make(http.Header)
81068	for k, v := range c.header_ {
81069		reqHeaders[k] = v
81070	}
81071	reqHeaders.Set("User-Agent", c.s.userAgent())
81072	var body io.Reader = nil
81073	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetvpngateway)
81074	if err != nil {
81075		return nil, err
81076	}
81077	reqHeaders.Set("Content-Type", "application/json")
81078	c.urlParams_.Set("alt", alt)
81079	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways")
81080	urls += "?" + c.urlParams_.Encode()
81081	req, _ := http.NewRequest("POST", urls, body)
81082	req.Header = reqHeaders
81083	googleapi.Expand(req.URL, map[string]string{
81084		"project": c.project,
81085		"region":  c.region,
81086	})
81087	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81088}
81089
81090// Do executes the "compute.targetVpnGateways.insert" call.
81091// Exactly one of *Operation or error will be non-nil. Any non-2xx
81092// status code is an error. Response headers are in either
81093// *Operation.ServerResponse.Header or (if a response was returned at
81094// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81095// to check whether the returned error was because
81096// http.StatusNotModified was returned.
81097func (c *TargetVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81098	gensupport.SetOptions(c.urlParams_, opts...)
81099	res, err := c.doRequest("json")
81100	if res != nil && res.StatusCode == http.StatusNotModified {
81101		if res.Body != nil {
81102			res.Body.Close()
81103		}
81104		return nil, &googleapi.Error{
81105			Code:   res.StatusCode,
81106			Header: res.Header,
81107		}
81108	}
81109	if err != nil {
81110		return nil, err
81111	}
81112	defer googleapi.CloseBody(res)
81113	if err := googleapi.CheckResponse(res); err != nil {
81114		return nil, err
81115	}
81116	ret := &Operation{
81117		ServerResponse: googleapi.ServerResponse{
81118			Header:         res.Header,
81119			HTTPStatusCode: res.StatusCode,
81120		},
81121	}
81122	target := &ret
81123	if err := gensupport.DecodeResponse(target, res); err != nil {
81124		return nil, err
81125	}
81126	return ret, nil
81127	// {
81128	//   "description": "Creates a target VPN gateway in the specified project and region using the data included in the request.",
81129	//   "httpMethod": "POST",
81130	//   "id": "compute.targetVpnGateways.insert",
81131	//   "parameterOrder": [
81132	//     "project",
81133	//     "region"
81134	//   ],
81135	//   "parameters": {
81136	//     "project": {
81137	//       "description": "Project ID for this request.",
81138	//       "location": "path",
81139	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81140	//       "required": true,
81141	//       "type": "string"
81142	//     },
81143	//     "region": {
81144	//       "description": "Name of the region for this request.",
81145	//       "location": "path",
81146	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
81147	//       "required": true,
81148	//       "type": "string"
81149	//     },
81150	//     "requestId": {
81151	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81152	//       "location": "query",
81153	//       "type": "string"
81154	//     }
81155	//   },
81156	//   "path": "{project}/regions/{region}/targetVpnGateways",
81157	//   "request": {
81158	//     "$ref": "TargetVpnGateway"
81159	//   },
81160	//   "response": {
81161	//     "$ref": "Operation"
81162	//   },
81163	//   "scopes": [
81164	//     "https://www.googleapis.com/auth/cloud-platform",
81165	//     "https://www.googleapis.com/auth/compute"
81166	//   ]
81167	// }
81168
81169}
81170
81171// method id "compute.targetVpnGateways.list":
81172
81173type TargetVpnGatewaysListCall struct {
81174	s            *Service
81175	project      string
81176	region       string
81177	urlParams_   gensupport.URLParams
81178	ifNoneMatch_ string
81179	ctx_         context.Context
81180	header_      http.Header
81181}
81182
81183// List: Retrieves a list of target VPN gateways available to the
81184// specified project and region.
81185func (r *TargetVpnGatewaysService) List(project string, region string) *TargetVpnGatewaysListCall {
81186	c := &TargetVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81187	c.project = project
81188	c.region = region
81189	return c
81190}
81191
81192// Filter sets the optional parameter "filter": A filter expression that
81193// filters resources listed in the response. The expression must specify
81194// the field name, a comparison operator, and the value that you want to
81195// use for filtering. The value must be a string, a number, or a
81196// boolean. The comparison operator must be either =, !=, >, or <.
81197//
81198// For example, if you are filtering Compute Engine instances, you can
81199// exclude instances named example-instance by specifying name !=
81200// example-instance.
81201//
81202// You can also filter nested fields. For example, you could specify
81203// scheduling.automaticRestart = false to include instances only if they
81204// are not scheduled for automatic restarts. You can use filtering on
81205// nested fields to filter based on resource labels.
81206//
81207// To filter on multiple expressions, provide each separate expression
81208// within parentheses. For example, (scheduling.automaticRestart = true)
81209// (cpuPlatform = "Intel Skylake"). By default, each expression is an
81210// AND expression. However, you can include AND and OR expressions
81211// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
81212// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
81213// true).
81214func (c *TargetVpnGatewaysListCall) Filter(filter string) *TargetVpnGatewaysListCall {
81215	c.urlParams_.Set("filter", filter)
81216	return c
81217}
81218
81219// MaxResults sets the optional parameter "maxResults": The maximum
81220// number of results per page that should be returned. If the number of
81221// available results is larger than maxResults, Compute Engine returns a
81222// nextPageToken that can be used to get the next page of results in
81223// subsequent list requests. Acceptable values are 0 to 500, inclusive.
81224// (Default: 500)
81225func (c *TargetVpnGatewaysListCall) MaxResults(maxResults int64) *TargetVpnGatewaysListCall {
81226	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
81227	return c
81228}
81229
81230// OrderBy sets the optional parameter "orderBy": Sorts list results by
81231// a certain order. By default, results are returned in alphanumerical
81232// order based on the resource name.
81233//
81234// You can also sort results in descending order based on the creation
81235// timestamp using orderBy="creationTimestamp desc". This sorts results
81236// based on the creationTimestamp field in reverse chronological order
81237// (newest result first). Use this to sort resources like operations so
81238// that the newest operation is returned first.
81239//
81240// Currently, only sorting by name or creationTimestamp desc is
81241// supported.
81242func (c *TargetVpnGatewaysListCall) OrderBy(orderBy string) *TargetVpnGatewaysListCall {
81243	c.urlParams_.Set("orderBy", orderBy)
81244	return c
81245}
81246
81247// PageToken sets the optional parameter "pageToken": Specifies a page
81248// token to use. Set pageToken to the nextPageToken returned by a
81249// previous list request to get the next page of results.
81250func (c *TargetVpnGatewaysListCall) PageToken(pageToken string) *TargetVpnGatewaysListCall {
81251	c.urlParams_.Set("pageToken", pageToken)
81252	return c
81253}
81254
81255// Fields allows partial responses to be retrieved. See
81256// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81257// for more information.
81258func (c *TargetVpnGatewaysListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysListCall {
81259	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81260	return c
81261}
81262
81263// IfNoneMatch sets the optional parameter which makes the operation
81264// fail if the object's ETag matches the given value. This is useful for
81265// getting updates only after the object has changed since the last
81266// request. Use googleapi.IsNotModified to check whether the response
81267// error from Do is the result of In-None-Match.
81268func (c *TargetVpnGatewaysListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysListCall {
81269	c.ifNoneMatch_ = entityTag
81270	return c
81271}
81272
81273// Context sets the context to be used in this call's Do method. Any
81274// pending HTTP request will be aborted if the provided context is
81275// canceled.
81276func (c *TargetVpnGatewaysListCall) Context(ctx context.Context) *TargetVpnGatewaysListCall {
81277	c.ctx_ = ctx
81278	return c
81279}
81280
81281// Header returns an http.Header that can be modified by the caller to
81282// add HTTP headers to the request.
81283func (c *TargetVpnGatewaysListCall) Header() http.Header {
81284	if c.header_ == nil {
81285		c.header_ = make(http.Header)
81286	}
81287	return c.header_
81288}
81289
81290func (c *TargetVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
81291	reqHeaders := make(http.Header)
81292	for k, v := range c.header_ {
81293		reqHeaders[k] = v
81294	}
81295	reqHeaders.Set("User-Agent", c.s.userAgent())
81296	if c.ifNoneMatch_ != "" {
81297		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81298	}
81299	var body io.Reader = nil
81300	c.urlParams_.Set("alt", alt)
81301	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways")
81302	urls += "?" + c.urlParams_.Encode()
81303	req, _ := http.NewRequest("GET", urls, body)
81304	req.Header = reqHeaders
81305	googleapi.Expand(req.URL, map[string]string{
81306		"project": c.project,
81307		"region":  c.region,
81308	})
81309	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81310}
81311
81312// Do executes the "compute.targetVpnGateways.list" call.
81313// Exactly one of *TargetVpnGatewayList or error will be non-nil. Any
81314// non-2xx status code is an error. Response headers are in either
81315// *TargetVpnGatewayList.ServerResponse.Header or (if a response was
81316// returned at all) in error.(*googleapi.Error).Header. Use
81317// googleapi.IsNotModified to check whether the returned error was
81318// because http.StatusNotModified was returned.
81319func (c *TargetVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayList, error) {
81320	gensupport.SetOptions(c.urlParams_, opts...)
81321	res, err := c.doRequest("json")
81322	if res != nil && res.StatusCode == http.StatusNotModified {
81323		if res.Body != nil {
81324			res.Body.Close()
81325		}
81326		return nil, &googleapi.Error{
81327			Code:   res.StatusCode,
81328			Header: res.Header,
81329		}
81330	}
81331	if err != nil {
81332		return nil, err
81333	}
81334	defer googleapi.CloseBody(res)
81335	if err := googleapi.CheckResponse(res); err != nil {
81336		return nil, err
81337	}
81338	ret := &TargetVpnGatewayList{
81339		ServerResponse: googleapi.ServerResponse{
81340			Header:         res.Header,
81341			HTTPStatusCode: res.StatusCode,
81342		},
81343	}
81344	target := &ret
81345	if err := gensupport.DecodeResponse(target, res); err != nil {
81346		return nil, err
81347	}
81348	return ret, nil
81349	// {
81350	//   "description": "Retrieves a list of target VPN gateways available to the specified project and region.",
81351	//   "httpMethod": "GET",
81352	//   "id": "compute.targetVpnGateways.list",
81353	//   "parameterOrder": [
81354	//     "project",
81355	//     "region"
81356	//   ],
81357	//   "parameters": {
81358	//     "filter": {
81359	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
81360	//       "location": "query",
81361	//       "type": "string"
81362	//     },
81363	//     "maxResults": {
81364	//       "default": "500",
81365	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
81366	//       "format": "uint32",
81367	//       "location": "query",
81368	//       "minimum": "0",
81369	//       "type": "integer"
81370	//     },
81371	//     "orderBy": {
81372	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
81373	//       "location": "query",
81374	//       "type": "string"
81375	//     },
81376	//     "pageToken": {
81377	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
81378	//       "location": "query",
81379	//       "type": "string"
81380	//     },
81381	//     "project": {
81382	//       "description": "Project ID for this request.",
81383	//       "location": "path",
81384	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81385	//       "required": true,
81386	//       "type": "string"
81387	//     },
81388	//     "region": {
81389	//       "description": "Name of the region for this request.",
81390	//       "location": "path",
81391	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
81392	//       "required": true,
81393	//       "type": "string"
81394	//     }
81395	//   },
81396	//   "path": "{project}/regions/{region}/targetVpnGateways",
81397	//   "response": {
81398	//     "$ref": "TargetVpnGatewayList"
81399	//   },
81400	//   "scopes": [
81401	//     "https://www.googleapis.com/auth/cloud-platform",
81402	//     "https://www.googleapis.com/auth/compute",
81403	//     "https://www.googleapis.com/auth/compute.readonly"
81404	//   ]
81405	// }
81406
81407}
81408
81409// Pages invokes f for each page of results.
81410// A non-nil error returned from f will halt the iteration.
81411// The provided context supersedes any context provided to the Context method.
81412func (c *TargetVpnGatewaysListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayList) error) error {
81413	c.ctx_ = ctx
81414	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
81415	for {
81416		x, err := c.Do()
81417		if err != nil {
81418			return err
81419		}
81420		if err := f(x); err != nil {
81421			return err
81422		}
81423		if x.NextPageToken == "" {
81424			return nil
81425		}
81426		c.PageToken(x.NextPageToken)
81427	}
81428}
81429
81430// method id "compute.urlMaps.delete":
81431
81432type UrlMapsDeleteCall struct {
81433	s          *Service
81434	project    string
81435	urlMap     string
81436	urlParams_ gensupport.URLParams
81437	ctx_       context.Context
81438	header_    http.Header
81439}
81440
81441// Delete: Deletes the specified UrlMap resource.
81442// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/delete
81443func (r *UrlMapsService) Delete(project string, urlMap string) *UrlMapsDeleteCall {
81444	c := &UrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81445	c.project = project
81446	c.urlMap = urlMap
81447	return c
81448}
81449
81450// RequestId sets the optional parameter "requestId": An optional
81451// request ID to identify requests. Specify a unique request ID so that
81452// if you must retry your request, the server will know to ignore the
81453// request if it has already been completed.
81454//
81455// For example, consider a situation where you make an initial request
81456// and the request times out. If you make the request again with the
81457// same request ID, the server can check if original operation with the
81458// same request ID was received, and if so, will ignore the second
81459// request. This prevents clients from accidentally creating duplicate
81460// commitments.
81461//
81462// The request ID must be a valid UUID with the exception that zero UUID
81463// is not supported (00000000-0000-0000-0000-000000000000).
81464func (c *UrlMapsDeleteCall) RequestId(requestId string) *UrlMapsDeleteCall {
81465	c.urlParams_.Set("requestId", requestId)
81466	return c
81467}
81468
81469// Fields allows partial responses to be retrieved. See
81470// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81471// for more information.
81472func (c *UrlMapsDeleteCall) Fields(s ...googleapi.Field) *UrlMapsDeleteCall {
81473	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81474	return c
81475}
81476
81477// Context sets the context to be used in this call's Do method. Any
81478// pending HTTP request will be aborted if the provided context is
81479// canceled.
81480func (c *UrlMapsDeleteCall) Context(ctx context.Context) *UrlMapsDeleteCall {
81481	c.ctx_ = ctx
81482	return c
81483}
81484
81485// Header returns an http.Header that can be modified by the caller to
81486// add HTTP headers to the request.
81487func (c *UrlMapsDeleteCall) Header() http.Header {
81488	if c.header_ == nil {
81489		c.header_ = make(http.Header)
81490	}
81491	return c.header_
81492}
81493
81494func (c *UrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
81495	reqHeaders := make(http.Header)
81496	for k, v := range c.header_ {
81497		reqHeaders[k] = v
81498	}
81499	reqHeaders.Set("User-Agent", c.s.userAgent())
81500	var body io.Reader = nil
81501	c.urlParams_.Set("alt", alt)
81502	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
81503	urls += "?" + c.urlParams_.Encode()
81504	req, _ := http.NewRequest("DELETE", urls, body)
81505	req.Header = reqHeaders
81506	googleapi.Expand(req.URL, map[string]string{
81507		"project": c.project,
81508		"urlMap":  c.urlMap,
81509	})
81510	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81511}
81512
81513// Do executes the "compute.urlMaps.delete" call.
81514// Exactly one of *Operation or error will be non-nil. Any non-2xx
81515// status code is an error. Response headers are in either
81516// *Operation.ServerResponse.Header or (if a response was returned at
81517// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81518// to check whether the returned error was because
81519// http.StatusNotModified was returned.
81520func (c *UrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81521	gensupport.SetOptions(c.urlParams_, opts...)
81522	res, err := c.doRequest("json")
81523	if res != nil && res.StatusCode == http.StatusNotModified {
81524		if res.Body != nil {
81525			res.Body.Close()
81526		}
81527		return nil, &googleapi.Error{
81528			Code:   res.StatusCode,
81529			Header: res.Header,
81530		}
81531	}
81532	if err != nil {
81533		return nil, err
81534	}
81535	defer googleapi.CloseBody(res)
81536	if err := googleapi.CheckResponse(res); err != nil {
81537		return nil, err
81538	}
81539	ret := &Operation{
81540		ServerResponse: googleapi.ServerResponse{
81541			Header:         res.Header,
81542			HTTPStatusCode: res.StatusCode,
81543		},
81544	}
81545	target := &ret
81546	if err := gensupport.DecodeResponse(target, res); err != nil {
81547		return nil, err
81548	}
81549	return ret, nil
81550	// {
81551	//   "description": "Deletes the specified UrlMap resource.",
81552	//   "httpMethod": "DELETE",
81553	//   "id": "compute.urlMaps.delete",
81554	//   "parameterOrder": [
81555	//     "project",
81556	//     "urlMap"
81557	//   ],
81558	//   "parameters": {
81559	//     "project": {
81560	//       "description": "Project ID for this request.",
81561	//       "location": "path",
81562	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81563	//       "required": true,
81564	//       "type": "string"
81565	//     },
81566	//     "requestId": {
81567	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81568	//       "location": "query",
81569	//       "type": "string"
81570	//     },
81571	//     "urlMap": {
81572	//       "description": "Name of the UrlMap resource to delete.",
81573	//       "location": "path",
81574	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
81575	//       "required": true,
81576	//       "type": "string"
81577	//     }
81578	//   },
81579	//   "path": "{project}/global/urlMaps/{urlMap}",
81580	//   "response": {
81581	//     "$ref": "Operation"
81582	//   },
81583	//   "scopes": [
81584	//     "https://www.googleapis.com/auth/cloud-platform",
81585	//     "https://www.googleapis.com/auth/compute"
81586	//   ]
81587	// }
81588
81589}
81590
81591// method id "compute.urlMaps.get":
81592
81593type UrlMapsGetCall struct {
81594	s            *Service
81595	project      string
81596	urlMap       string
81597	urlParams_   gensupport.URLParams
81598	ifNoneMatch_ string
81599	ctx_         context.Context
81600	header_      http.Header
81601}
81602
81603// Get: Returns the specified UrlMap resource. Gets a list of available
81604// URL maps by making a list() request.
81605// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/get
81606func (r *UrlMapsService) Get(project string, urlMap string) *UrlMapsGetCall {
81607	c := &UrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81608	c.project = project
81609	c.urlMap = urlMap
81610	return c
81611}
81612
81613// Fields allows partial responses to be retrieved. See
81614// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81615// for more information.
81616func (c *UrlMapsGetCall) Fields(s ...googleapi.Field) *UrlMapsGetCall {
81617	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81618	return c
81619}
81620
81621// IfNoneMatch sets the optional parameter which makes the operation
81622// fail if the object's ETag matches the given value. This is useful for
81623// getting updates only after the object has changed since the last
81624// request. Use googleapi.IsNotModified to check whether the response
81625// error from Do is the result of In-None-Match.
81626func (c *UrlMapsGetCall) IfNoneMatch(entityTag string) *UrlMapsGetCall {
81627	c.ifNoneMatch_ = entityTag
81628	return c
81629}
81630
81631// Context sets the context to be used in this call's Do method. Any
81632// pending HTTP request will be aborted if the provided context is
81633// canceled.
81634func (c *UrlMapsGetCall) Context(ctx context.Context) *UrlMapsGetCall {
81635	c.ctx_ = ctx
81636	return c
81637}
81638
81639// Header returns an http.Header that can be modified by the caller to
81640// add HTTP headers to the request.
81641func (c *UrlMapsGetCall) Header() http.Header {
81642	if c.header_ == nil {
81643		c.header_ = make(http.Header)
81644	}
81645	return c.header_
81646}
81647
81648func (c *UrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
81649	reqHeaders := make(http.Header)
81650	for k, v := range c.header_ {
81651		reqHeaders[k] = v
81652	}
81653	reqHeaders.Set("User-Agent", c.s.userAgent())
81654	if c.ifNoneMatch_ != "" {
81655		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81656	}
81657	var body io.Reader = nil
81658	c.urlParams_.Set("alt", alt)
81659	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
81660	urls += "?" + c.urlParams_.Encode()
81661	req, _ := http.NewRequest("GET", urls, body)
81662	req.Header = reqHeaders
81663	googleapi.Expand(req.URL, map[string]string{
81664		"project": c.project,
81665		"urlMap":  c.urlMap,
81666	})
81667	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81668}
81669
81670// Do executes the "compute.urlMaps.get" call.
81671// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
81672// code is an error. Response headers are in either
81673// *UrlMap.ServerResponse.Header or (if a response was returned at all)
81674// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
81675// check whether the returned error was because http.StatusNotModified
81676// was returned.
81677func (c *UrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
81678	gensupport.SetOptions(c.urlParams_, opts...)
81679	res, err := c.doRequest("json")
81680	if res != nil && res.StatusCode == http.StatusNotModified {
81681		if res.Body != nil {
81682			res.Body.Close()
81683		}
81684		return nil, &googleapi.Error{
81685			Code:   res.StatusCode,
81686			Header: res.Header,
81687		}
81688	}
81689	if err != nil {
81690		return nil, err
81691	}
81692	defer googleapi.CloseBody(res)
81693	if err := googleapi.CheckResponse(res); err != nil {
81694		return nil, err
81695	}
81696	ret := &UrlMap{
81697		ServerResponse: googleapi.ServerResponse{
81698			Header:         res.Header,
81699			HTTPStatusCode: res.StatusCode,
81700		},
81701	}
81702	target := &ret
81703	if err := gensupport.DecodeResponse(target, res); err != nil {
81704		return nil, err
81705	}
81706	return ret, nil
81707	// {
81708	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
81709	//   "httpMethod": "GET",
81710	//   "id": "compute.urlMaps.get",
81711	//   "parameterOrder": [
81712	//     "project",
81713	//     "urlMap"
81714	//   ],
81715	//   "parameters": {
81716	//     "project": {
81717	//       "description": "Project ID for this request.",
81718	//       "location": "path",
81719	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81720	//       "required": true,
81721	//       "type": "string"
81722	//     },
81723	//     "urlMap": {
81724	//       "description": "Name of the UrlMap resource to return.",
81725	//       "location": "path",
81726	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
81727	//       "required": true,
81728	//       "type": "string"
81729	//     }
81730	//   },
81731	//   "path": "{project}/global/urlMaps/{urlMap}",
81732	//   "response": {
81733	//     "$ref": "UrlMap"
81734	//   },
81735	//   "scopes": [
81736	//     "https://www.googleapis.com/auth/cloud-platform",
81737	//     "https://www.googleapis.com/auth/compute",
81738	//     "https://www.googleapis.com/auth/compute.readonly"
81739	//   ]
81740	// }
81741
81742}
81743
81744// method id "compute.urlMaps.insert":
81745
81746type UrlMapsInsertCall struct {
81747	s          *Service
81748	project    string
81749	urlmap     *UrlMap
81750	urlParams_ gensupport.URLParams
81751	ctx_       context.Context
81752	header_    http.Header
81753}
81754
81755// Insert: Creates a UrlMap resource in the specified project using the
81756// data included in the request.
81757// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/insert
81758func (r *UrlMapsService) Insert(project string, urlmap *UrlMap) *UrlMapsInsertCall {
81759	c := &UrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81760	c.project = project
81761	c.urlmap = urlmap
81762	return c
81763}
81764
81765// RequestId sets the optional parameter "requestId": An optional
81766// request ID to identify requests. Specify a unique request ID so that
81767// if you must retry your request, the server will know to ignore the
81768// request if it has already been completed.
81769//
81770// For example, consider a situation where you make an initial request
81771// and the request times out. If you make the request again with the
81772// same request ID, the server can check if original operation with the
81773// same request ID was received, and if so, will ignore the second
81774// request. This prevents clients from accidentally creating duplicate
81775// commitments.
81776//
81777// The request ID must be a valid UUID with the exception that zero UUID
81778// is not supported (00000000-0000-0000-0000-000000000000).
81779func (c *UrlMapsInsertCall) RequestId(requestId string) *UrlMapsInsertCall {
81780	c.urlParams_.Set("requestId", requestId)
81781	return c
81782}
81783
81784// Fields allows partial responses to be retrieved. See
81785// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81786// for more information.
81787func (c *UrlMapsInsertCall) Fields(s ...googleapi.Field) *UrlMapsInsertCall {
81788	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81789	return c
81790}
81791
81792// Context sets the context to be used in this call's Do method. Any
81793// pending HTTP request will be aborted if the provided context is
81794// canceled.
81795func (c *UrlMapsInsertCall) Context(ctx context.Context) *UrlMapsInsertCall {
81796	c.ctx_ = ctx
81797	return c
81798}
81799
81800// Header returns an http.Header that can be modified by the caller to
81801// add HTTP headers to the request.
81802func (c *UrlMapsInsertCall) Header() http.Header {
81803	if c.header_ == nil {
81804		c.header_ = make(http.Header)
81805	}
81806	return c.header_
81807}
81808
81809func (c *UrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
81810	reqHeaders := make(http.Header)
81811	for k, v := range c.header_ {
81812		reqHeaders[k] = v
81813	}
81814	reqHeaders.Set("User-Agent", c.s.userAgent())
81815	var body io.Reader = nil
81816	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
81817	if err != nil {
81818		return nil, err
81819	}
81820	reqHeaders.Set("Content-Type", "application/json")
81821	c.urlParams_.Set("alt", alt)
81822	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps")
81823	urls += "?" + c.urlParams_.Encode()
81824	req, _ := http.NewRequest("POST", urls, body)
81825	req.Header = reqHeaders
81826	googleapi.Expand(req.URL, map[string]string{
81827		"project": c.project,
81828	})
81829	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81830}
81831
81832// Do executes the "compute.urlMaps.insert" call.
81833// Exactly one of *Operation or error will be non-nil. Any non-2xx
81834// status code is an error. Response headers are in either
81835// *Operation.ServerResponse.Header or (if a response was returned at
81836// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81837// to check whether the returned error was because
81838// http.StatusNotModified was returned.
81839func (c *UrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81840	gensupport.SetOptions(c.urlParams_, opts...)
81841	res, err := c.doRequest("json")
81842	if res != nil && res.StatusCode == http.StatusNotModified {
81843		if res.Body != nil {
81844			res.Body.Close()
81845		}
81846		return nil, &googleapi.Error{
81847			Code:   res.StatusCode,
81848			Header: res.Header,
81849		}
81850	}
81851	if err != nil {
81852		return nil, err
81853	}
81854	defer googleapi.CloseBody(res)
81855	if err := googleapi.CheckResponse(res); err != nil {
81856		return nil, err
81857	}
81858	ret := &Operation{
81859		ServerResponse: googleapi.ServerResponse{
81860			Header:         res.Header,
81861			HTTPStatusCode: res.StatusCode,
81862		},
81863	}
81864	target := &ret
81865	if err := gensupport.DecodeResponse(target, res); err != nil {
81866		return nil, err
81867	}
81868	return ret, nil
81869	// {
81870	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
81871	//   "httpMethod": "POST",
81872	//   "id": "compute.urlMaps.insert",
81873	//   "parameterOrder": [
81874	//     "project"
81875	//   ],
81876	//   "parameters": {
81877	//     "project": {
81878	//       "description": "Project ID for this request.",
81879	//       "location": "path",
81880	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81881	//       "required": true,
81882	//       "type": "string"
81883	//     },
81884	//     "requestId": {
81885	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81886	//       "location": "query",
81887	//       "type": "string"
81888	//     }
81889	//   },
81890	//   "path": "{project}/global/urlMaps",
81891	//   "request": {
81892	//     "$ref": "UrlMap"
81893	//   },
81894	//   "response": {
81895	//     "$ref": "Operation"
81896	//   },
81897	//   "scopes": [
81898	//     "https://www.googleapis.com/auth/cloud-platform",
81899	//     "https://www.googleapis.com/auth/compute"
81900	//   ]
81901	// }
81902
81903}
81904
81905// method id "compute.urlMaps.invalidateCache":
81906
81907type UrlMapsInvalidateCacheCall struct {
81908	s                     *Service
81909	project               string
81910	urlMap                string
81911	cacheinvalidationrule *CacheInvalidationRule
81912	urlParams_            gensupport.URLParams
81913	ctx_                  context.Context
81914	header_               http.Header
81915}
81916
81917// InvalidateCache: Initiates a cache invalidation operation,
81918// invalidating the specified path, scoped to the specified UrlMap.
81919func (r *UrlMapsService) InvalidateCache(project string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *UrlMapsInvalidateCacheCall {
81920	c := &UrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81921	c.project = project
81922	c.urlMap = urlMap
81923	c.cacheinvalidationrule = cacheinvalidationrule
81924	return c
81925}
81926
81927// RequestId sets the optional parameter "requestId": An optional
81928// request ID to identify requests. Specify a unique request ID so that
81929// if you must retry your request, the server will know to ignore the
81930// request if it has already been completed.
81931//
81932// For example, consider a situation where you make an initial request
81933// and the request times out. If you make the request again with the
81934// same request ID, the server can check if original operation with the
81935// same request ID was received, and if so, will ignore the second
81936// request. This prevents clients from accidentally creating duplicate
81937// commitments.
81938//
81939// The request ID must be a valid UUID with the exception that zero UUID
81940// is not supported (00000000-0000-0000-0000-000000000000).
81941func (c *UrlMapsInvalidateCacheCall) RequestId(requestId string) *UrlMapsInvalidateCacheCall {
81942	c.urlParams_.Set("requestId", requestId)
81943	return c
81944}
81945
81946// Fields allows partial responses to be retrieved. See
81947// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81948// for more information.
81949func (c *UrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *UrlMapsInvalidateCacheCall {
81950	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81951	return c
81952}
81953
81954// Context sets the context to be used in this call's Do method. Any
81955// pending HTTP request will be aborted if the provided context is
81956// canceled.
81957func (c *UrlMapsInvalidateCacheCall) Context(ctx context.Context) *UrlMapsInvalidateCacheCall {
81958	c.ctx_ = ctx
81959	return c
81960}
81961
81962// Header returns an http.Header that can be modified by the caller to
81963// add HTTP headers to the request.
81964func (c *UrlMapsInvalidateCacheCall) Header() http.Header {
81965	if c.header_ == nil {
81966		c.header_ = make(http.Header)
81967	}
81968	return c.header_
81969}
81970
81971func (c *UrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) {
81972	reqHeaders := make(http.Header)
81973	for k, v := range c.header_ {
81974		reqHeaders[k] = v
81975	}
81976	reqHeaders.Set("User-Agent", c.s.userAgent())
81977	var body io.Reader = nil
81978	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule)
81979	if err != nil {
81980		return nil, err
81981	}
81982	reqHeaders.Set("Content-Type", "application/json")
81983	c.urlParams_.Set("alt", alt)
81984	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}/invalidateCache")
81985	urls += "?" + c.urlParams_.Encode()
81986	req, _ := http.NewRequest("POST", urls, body)
81987	req.Header = reqHeaders
81988	googleapi.Expand(req.URL, map[string]string{
81989		"project": c.project,
81990		"urlMap":  c.urlMap,
81991	})
81992	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81993}
81994
81995// Do executes the "compute.urlMaps.invalidateCache" call.
81996// Exactly one of *Operation or error will be non-nil. Any non-2xx
81997// status code is an error. Response headers are in either
81998// *Operation.ServerResponse.Header or (if a response was returned at
81999// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82000// to check whether the returned error was because
82001// http.StatusNotModified was returned.
82002func (c *UrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82003	gensupport.SetOptions(c.urlParams_, opts...)
82004	res, err := c.doRequest("json")
82005	if res != nil && res.StatusCode == http.StatusNotModified {
82006		if res.Body != nil {
82007			res.Body.Close()
82008		}
82009		return nil, &googleapi.Error{
82010			Code:   res.StatusCode,
82011			Header: res.Header,
82012		}
82013	}
82014	if err != nil {
82015		return nil, err
82016	}
82017	defer googleapi.CloseBody(res)
82018	if err := googleapi.CheckResponse(res); err != nil {
82019		return nil, err
82020	}
82021	ret := &Operation{
82022		ServerResponse: googleapi.ServerResponse{
82023			Header:         res.Header,
82024			HTTPStatusCode: res.StatusCode,
82025		},
82026	}
82027	target := &ret
82028	if err := gensupport.DecodeResponse(target, res); err != nil {
82029		return nil, err
82030	}
82031	return ret, nil
82032	// {
82033	//   "description": "Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap.",
82034	//   "httpMethod": "POST",
82035	//   "id": "compute.urlMaps.invalidateCache",
82036	//   "parameterOrder": [
82037	//     "project",
82038	//     "urlMap"
82039	//   ],
82040	//   "parameters": {
82041	//     "project": {
82042	//       "description": "Project ID for this request.",
82043	//       "location": "path",
82044	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82045	//       "required": true,
82046	//       "type": "string"
82047	//     },
82048	//     "requestId": {
82049	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82050	//       "location": "query",
82051	//       "type": "string"
82052	//     },
82053	//     "urlMap": {
82054	//       "description": "Name of the UrlMap scoping this request.",
82055	//       "location": "path",
82056	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
82057	//       "required": true,
82058	//       "type": "string"
82059	//     }
82060	//   },
82061	//   "path": "{project}/global/urlMaps/{urlMap}/invalidateCache",
82062	//   "request": {
82063	//     "$ref": "CacheInvalidationRule"
82064	//   },
82065	//   "response": {
82066	//     "$ref": "Operation"
82067	//   },
82068	//   "scopes": [
82069	//     "https://www.googleapis.com/auth/cloud-platform",
82070	//     "https://www.googleapis.com/auth/compute"
82071	//   ]
82072	// }
82073
82074}
82075
82076// method id "compute.urlMaps.list":
82077
82078type UrlMapsListCall struct {
82079	s            *Service
82080	project      string
82081	urlParams_   gensupport.URLParams
82082	ifNoneMatch_ string
82083	ctx_         context.Context
82084	header_      http.Header
82085}
82086
82087// List: Retrieves the list of UrlMap resources available to the
82088// specified project.
82089// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/list
82090func (r *UrlMapsService) List(project string) *UrlMapsListCall {
82091	c := &UrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82092	c.project = project
82093	return c
82094}
82095
82096// Filter sets the optional parameter "filter": A filter expression that
82097// filters resources listed in the response. The expression must specify
82098// the field name, a comparison operator, and the value that you want to
82099// use for filtering. The value must be a string, a number, or a
82100// boolean. The comparison operator must be either =, !=, >, or <.
82101//
82102// For example, if you are filtering Compute Engine instances, you can
82103// exclude instances named example-instance by specifying name !=
82104// example-instance.
82105//
82106// You can also filter nested fields. For example, you could specify
82107// scheduling.automaticRestart = false to include instances only if they
82108// are not scheduled for automatic restarts. You can use filtering on
82109// nested fields to filter based on resource labels.
82110//
82111// To filter on multiple expressions, provide each separate expression
82112// within parentheses. For example, (scheduling.automaticRestart = true)
82113// (cpuPlatform = "Intel Skylake"). By default, each expression is an
82114// AND expression. However, you can include AND and OR expressions
82115// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
82116// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
82117// true).
82118func (c *UrlMapsListCall) Filter(filter string) *UrlMapsListCall {
82119	c.urlParams_.Set("filter", filter)
82120	return c
82121}
82122
82123// MaxResults sets the optional parameter "maxResults": The maximum
82124// number of results per page that should be returned. If the number of
82125// available results is larger than maxResults, Compute Engine returns a
82126// nextPageToken that can be used to get the next page of results in
82127// subsequent list requests. Acceptable values are 0 to 500, inclusive.
82128// (Default: 500)
82129func (c *UrlMapsListCall) MaxResults(maxResults int64) *UrlMapsListCall {
82130	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
82131	return c
82132}
82133
82134// OrderBy sets the optional parameter "orderBy": Sorts list results by
82135// a certain order. By default, results are returned in alphanumerical
82136// order based on the resource name.
82137//
82138// You can also sort results in descending order based on the creation
82139// timestamp using orderBy="creationTimestamp desc". This sorts results
82140// based on the creationTimestamp field in reverse chronological order
82141// (newest result first). Use this to sort resources like operations so
82142// that the newest operation is returned first.
82143//
82144// Currently, only sorting by name or creationTimestamp desc is
82145// supported.
82146func (c *UrlMapsListCall) OrderBy(orderBy string) *UrlMapsListCall {
82147	c.urlParams_.Set("orderBy", orderBy)
82148	return c
82149}
82150
82151// PageToken sets the optional parameter "pageToken": Specifies a page
82152// token to use. Set pageToken to the nextPageToken returned by a
82153// previous list request to get the next page of results.
82154func (c *UrlMapsListCall) PageToken(pageToken string) *UrlMapsListCall {
82155	c.urlParams_.Set("pageToken", pageToken)
82156	return c
82157}
82158
82159// Fields allows partial responses to be retrieved. See
82160// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82161// for more information.
82162func (c *UrlMapsListCall) Fields(s ...googleapi.Field) *UrlMapsListCall {
82163	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82164	return c
82165}
82166
82167// IfNoneMatch sets the optional parameter which makes the operation
82168// fail if the object's ETag matches the given value. This is useful for
82169// getting updates only after the object has changed since the last
82170// request. Use googleapi.IsNotModified to check whether the response
82171// error from Do is the result of In-None-Match.
82172func (c *UrlMapsListCall) IfNoneMatch(entityTag string) *UrlMapsListCall {
82173	c.ifNoneMatch_ = entityTag
82174	return c
82175}
82176
82177// Context sets the context to be used in this call's Do method. Any
82178// pending HTTP request will be aborted if the provided context is
82179// canceled.
82180func (c *UrlMapsListCall) Context(ctx context.Context) *UrlMapsListCall {
82181	c.ctx_ = ctx
82182	return c
82183}
82184
82185// Header returns an http.Header that can be modified by the caller to
82186// add HTTP headers to the request.
82187func (c *UrlMapsListCall) Header() http.Header {
82188	if c.header_ == nil {
82189		c.header_ = make(http.Header)
82190	}
82191	return c.header_
82192}
82193
82194func (c *UrlMapsListCall) doRequest(alt string) (*http.Response, error) {
82195	reqHeaders := make(http.Header)
82196	for k, v := range c.header_ {
82197		reqHeaders[k] = v
82198	}
82199	reqHeaders.Set("User-Agent", c.s.userAgent())
82200	if c.ifNoneMatch_ != "" {
82201		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82202	}
82203	var body io.Reader = nil
82204	c.urlParams_.Set("alt", alt)
82205	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps")
82206	urls += "?" + c.urlParams_.Encode()
82207	req, _ := http.NewRequest("GET", urls, body)
82208	req.Header = reqHeaders
82209	googleapi.Expand(req.URL, map[string]string{
82210		"project": c.project,
82211	})
82212	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82213}
82214
82215// Do executes the "compute.urlMaps.list" call.
82216// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
82217// status code is an error. Response headers are in either
82218// *UrlMapList.ServerResponse.Header or (if a response was returned at
82219// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82220// to check whether the returned error was because
82221// http.StatusNotModified was returned.
82222func (c *UrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
82223	gensupport.SetOptions(c.urlParams_, opts...)
82224	res, err := c.doRequest("json")
82225	if res != nil && res.StatusCode == http.StatusNotModified {
82226		if res.Body != nil {
82227			res.Body.Close()
82228		}
82229		return nil, &googleapi.Error{
82230			Code:   res.StatusCode,
82231			Header: res.Header,
82232		}
82233	}
82234	if err != nil {
82235		return nil, err
82236	}
82237	defer googleapi.CloseBody(res)
82238	if err := googleapi.CheckResponse(res); err != nil {
82239		return nil, err
82240	}
82241	ret := &UrlMapList{
82242		ServerResponse: googleapi.ServerResponse{
82243			Header:         res.Header,
82244			HTTPStatusCode: res.StatusCode,
82245		},
82246	}
82247	target := &ret
82248	if err := gensupport.DecodeResponse(target, res); err != nil {
82249		return nil, err
82250	}
82251	return ret, nil
82252	// {
82253	//   "description": "Retrieves the list of UrlMap resources available to the specified project.",
82254	//   "httpMethod": "GET",
82255	//   "id": "compute.urlMaps.list",
82256	//   "parameterOrder": [
82257	//     "project"
82258	//   ],
82259	//   "parameters": {
82260	//     "filter": {
82261	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
82262	//       "location": "query",
82263	//       "type": "string"
82264	//     },
82265	//     "maxResults": {
82266	//       "default": "500",
82267	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
82268	//       "format": "uint32",
82269	//       "location": "query",
82270	//       "minimum": "0",
82271	//       "type": "integer"
82272	//     },
82273	//     "orderBy": {
82274	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
82275	//       "location": "query",
82276	//       "type": "string"
82277	//     },
82278	//     "pageToken": {
82279	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
82280	//       "location": "query",
82281	//       "type": "string"
82282	//     },
82283	//     "project": {
82284	//       "description": "Project ID for this request.",
82285	//       "location": "path",
82286	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82287	//       "required": true,
82288	//       "type": "string"
82289	//     }
82290	//   },
82291	//   "path": "{project}/global/urlMaps",
82292	//   "response": {
82293	//     "$ref": "UrlMapList"
82294	//   },
82295	//   "scopes": [
82296	//     "https://www.googleapis.com/auth/cloud-platform",
82297	//     "https://www.googleapis.com/auth/compute",
82298	//     "https://www.googleapis.com/auth/compute.readonly"
82299	//   ]
82300	// }
82301
82302}
82303
82304// Pages invokes f for each page of results.
82305// A non-nil error returned from f will halt the iteration.
82306// The provided context supersedes any context provided to the Context method.
82307func (c *UrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
82308	c.ctx_ = ctx
82309	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
82310	for {
82311		x, err := c.Do()
82312		if err != nil {
82313			return err
82314		}
82315		if err := f(x); err != nil {
82316			return err
82317		}
82318		if x.NextPageToken == "" {
82319			return nil
82320		}
82321		c.PageToken(x.NextPageToken)
82322	}
82323}
82324
82325// method id "compute.urlMaps.patch":
82326
82327type UrlMapsPatchCall struct {
82328	s          *Service
82329	project    string
82330	urlMap     string
82331	urlmap     *UrlMap
82332	urlParams_ gensupport.URLParams
82333	ctx_       context.Context
82334	header_    http.Header
82335}
82336
82337// Patch: Patches the specified UrlMap resource with the data included
82338// in the request. This method supports PATCH semantics and uses the
82339// JSON merge patch format and processing rules.
82340// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/patch
82341func (r *UrlMapsService) Patch(project string, urlMap string, urlmap *UrlMap) *UrlMapsPatchCall {
82342	c := &UrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82343	c.project = project
82344	c.urlMap = urlMap
82345	c.urlmap = urlmap
82346	return c
82347}
82348
82349// RequestId sets the optional parameter "requestId": An optional
82350// request ID to identify requests. Specify a unique request ID so that
82351// if you must retry your request, the server will know to ignore the
82352// request if it has already been completed.
82353//
82354// For example, consider a situation where you make an initial request
82355// and the request times out. If you make the request again with the
82356// same request ID, the server can check if original operation with the
82357// same request ID was received, and if so, will ignore the second
82358// request. This prevents clients from accidentally creating duplicate
82359// commitments.
82360//
82361// The request ID must be a valid UUID with the exception that zero UUID
82362// is not supported (00000000-0000-0000-0000-000000000000).
82363func (c *UrlMapsPatchCall) RequestId(requestId string) *UrlMapsPatchCall {
82364	c.urlParams_.Set("requestId", requestId)
82365	return c
82366}
82367
82368// Fields allows partial responses to be retrieved. See
82369// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82370// for more information.
82371func (c *UrlMapsPatchCall) Fields(s ...googleapi.Field) *UrlMapsPatchCall {
82372	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82373	return c
82374}
82375
82376// Context sets the context to be used in this call's Do method. Any
82377// pending HTTP request will be aborted if the provided context is
82378// canceled.
82379func (c *UrlMapsPatchCall) Context(ctx context.Context) *UrlMapsPatchCall {
82380	c.ctx_ = ctx
82381	return c
82382}
82383
82384// Header returns an http.Header that can be modified by the caller to
82385// add HTTP headers to the request.
82386func (c *UrlMapsPatchCall) Header() http.Header {
82387	if c.header_ == nil {
82388		c.header_ = make(http.Header)
82389	}
82390	return c.header_
82391}
82392
82393func (c *UrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
82394	reqHeaders := make(http.Header)
82395	for k, v := range c.header_ {
82396		reqHeaders[k] = v
82397	}
82398	reqHeaders.Set("User-Agent", c.s.userAgent())
82399	var body io.Reader = nil
82400	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
82401	if err != nil {
82402		return nil, err
82403	}
82404	reqHeaders.Set("Content-Type", "application/json")
82405	c.urlParams_.Set("alt", alt)
82406	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
82407	urls += "?" + c.urlParams_.Encode()
82408	req, _ := http.NewRequest("PATCH", urls, body)
82409	req.Header = reqHeaders
82410	googleapi.Expand(req.URL, map[string]string{
82411		"project": c.project,
82412		"urlMap":  c.urlMap,
82413	})
82414	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82415}
82416
82417// Do executes the "compute.urlMaps.patch" call.
82418// Exactly one of *Operation or error will be non-nil. Any non-2xx
82419// status code is an error. Response headers are in either
82420// *Operation.ServerResponse.Header or (if a response was returned at
82421// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82422// to check whether the returned error was because
82423// http.StatusNotModified was returned.
82424func (c *UrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82425	gensupport.SetOptions(c.urlParams_, opts...)
82426	res, err := c.doRequest("json")
82427	if res != nil && res.StatusCode == http.StatusNotModified {
82428		if res.Body != nil {
82429			res.Body.Close()
82430		}
82431		return nil, &googleapi.Error{
82432			Code:   res.StatusCode,
82433			Header: res.Header,
82434		}
82435	}
82436	if err != nil {
82437		return nil, err
82438	}
82439	defer googleapi.CloseBody(res)
82440	if err := googleapi.CheckResponse(res); err != nil {
82441		return nil, err
82442	}
82443	ret := &Operation{
82444		ServerResponse: googleapi.ServerResponse{
82445			Header:         res.Header,
82446			HTTPStatusCode: res.StatusCode,
82447		},
82448	}
82449	target := &ret
82450	if err := gensupport.DecodeResponse(target, res); err != nil {
82451		return nil, err
82452	}
82453	return ret, nil
82454	// {
82455	//   "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.",
82456	//   "httpMethod": "PATCH",
82457	//   "id": "compute.urlMaps.patch",
82458	//   "parameterOrder": [
82459	//     "project",
82460	//     "urlMap"
82461	//   ],
82462	//   "parameters": {
82463	//     "project": {
82464	//       "description": "Project ID for this request.",
82465	//       "location": "path",
82466	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82467	//       "required": true,
82468	//       "type": "string"
82469	//     },
82470	//     "requestId": {
82471	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82472	//       "location": "query",
82473	//       "type": "string"
82474	//     },
82475	//     "urlMap": {
82476	//       "description": "Name of the UrlMap resource to patch.",
82477	//       "location": "path",
82478	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
82479	//       "required": true,
82480	//       "type": "string"
82481	//     }
82482	//   },
82483	//   "path": "{project}/global/urlMaps/{urlMap}",
82484	//   "request": {
82485	//     "$ref": "UrlMap"
82486	//   },
82487	//   "response": {
82488	//     "$ref": "Operation"
82489	//   },
82490	//   "scopes": [
82491	//     "https://www.googleapis.com/auth/cloud-platform",
82492	//     "https://www.googleapis.com/auth/compute"
82493	//   ]
82494	// }
82495
82496}
82497
82498// method id "compute.urlMaps.update":
82499
82500type UrlMapsUpdateCall struct {
82501	s          *Service
82502	project    string
82503	urlMap     string
82504	urlmap     *UrlMap
82505	urlParams_ gensupport.URLParams
82506	ctx_       context.Context
82507	header_    http.Header
82508}
82509
82510// Update: Updates the specified UrlMap resource with the data included
82511// in the request.
82512// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/update
82513func (r *UrlMapsService) Update(project string, urlMap string, urlmap *UrlMap) *UrlMapsUpdateCall {
82514	c := &UrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82515	c.project = project
82516	c.urlMap = urlMap
82517	c.urlmap = urlmap
82518	return c
82519}
82520
82521// RequestId sets the optional parameter "requestId": An optional
82522// request ID to identify requests. Specify a unique request ID so that
82523// if you must retry your request, the server will know to ignore the
82524// request if it has already been completed.
82525//
82526// For example, consider a situation where you make an initial request
82527// and the request times out. If you make the request again with the
82528// same request ID, the server can check if original operation with the
82529// same request ID was received, and if so, will ignore the second
82530// request. This prevents clients from accidentally creating duplicate
82531// commitments.
82532//
82533// The request ID must be a valid UUID with the exception that zero UUID
82534// is not supported (00000000-0000-0000-0000-000000000000).
82535func (c *UrlMapsUpdateCall) RequestId(requestId string) *UrlMapsUpdateCall {
82536	c.urlParams_.Set("requestId", requestId)
82537	return c
82538}
82539
82540// Fields allows partial responses to be retrieved. See
82541// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82542// for more information.
82543func (c *UrlMapsUpdateCall) Fields(s ...googleapi.Field) *UrlMapsUpdateCall {
82544	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82545	return c
82546}
82547
82548// Context sets the context to be used in this call's Do method. Any
82549// pending HTTP request will be aborted if the provided context is
82550// canceled.
82551func (c *UrlMapsUpdateCall) Context(ctx context.Context) *UrlMapsUpdateCall {
82552	c.ctx_ = ctx
82553	return c
82554}
82555
82556// Header returns an http.Header that can be modified by the caller to
82557// add HTTP headers to the request.
82558func (c *UrlMapsUpdateCall) Header() http.Header {
82559	if c.header_ == nil {
82560		c.header_ = make(http.Header)
82561	}
82562	return c.header_
82563}
82564
82565func (c *UrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
82566	reqHeaders := make(http.Header)
82567	for k, v := range c.header_ {
82568		reqHeaders[k] = v
82569	}
82570	reqHeaders.Set("User-Agent", c.s.userAgent())
82571	var body io.Reader = nil
82572	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
82573	if err != nil {
82574		return nil, err
82575	}
82576	reqHeaders.Set("Content-Type", "application/json")
82577	c.urlParams_.Set("alt", alt)
82578	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
82579	urls += "?" + c.urlParams_.Encode()
82580	req, _ := http.NewRequest("PUT", urls, body)
82581	req.Header = reqHeaders
82582	googleapi.Expand(req.URL, map[string]string{
82583		"project": c.project,
82584		"urlMap":  c.urlMap,
82585	})
82586	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82587}
82588
82589// Do executes the "compute.urlMaps.update" call.
82590// Exactly one of *Operation or error will be non-nil. Any non-2xx
82591// status code is an error. Response headers are in either
82592// *Operation.ServerResponse.Header or (if a response was returned at
82593// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82594// to check whether the returned error was because
82595// http.StatusNotModified was returned.
82596func (c *UrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82597	gensupport.SetOptions(c.urlParams_, opts...)
82598	res, err := c.doRequest("json")
82599	if res != nil && res.StatusCode == http.StatusNotModified {
82600		if res.Body != nil {
82601			res.Body.Close()
82602		}
82603		return nil, &googleapi.Error{
82604			Code:   res.StatusCode,
82605			Header: res.Header,
82606		}
82607	}
82608	if err != nil {
82609		return nil, err
82610	}
82611	defer googleapi.CloseBody(res)
82612	if err := googleapi.CheckResponse(res); err != nil {
82613		return nil, err
82614	}
82615	ret := &Operation{
82616		ServerResponse: googleapi.ServerResponse{
82617			Header:         res.Header,
82618			HTTPStatusCode: res.StatusCode,
82619		},
82620	}
82621	target := &ret
82622	if err := gensupport.DecodeResponse(target, res); err != nil {
82623		return nil, err
82624	}
82625	return ret, nil
82626	// {
82627	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
82628	//   "httpMethod": "PUT",
82629	//   "id": "compute.urlMaps.update",
82630	//   "parameterOrder": [
82631	//     "project",
82632	//     "urlMap"
82633	//   ],
82634	//   "parameters": {
82635	//     "project": {
82636	//       "description": "Project ID for this request.",
82637	//       "location": "path",
82638	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82639	//       "required": true,
82640	//       "type": "string"
82641	//     },
82642	//     "requestId": {
82643	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82644	//       "location": "query",
82645	//       "type": "string"
82646	//     },
82647	//     "urlMap": {
82648	//       "description": "Name of the UrlMap resource to update.",
82649	//       "location": "path",
82650	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
82651	//       "required": true,
82652	//       "type": "string"
82653	//     }
82654	//   },
82655	//   "path": "{project}/global/urlMaps/{urlMap}",
82656	//   "request": {
82657	//     "$ref": "UrlMap"
82658	//   },
82659	//   "response": {
82660	//     "$ref": "Operation"
82661	//   },
82662	//   "scopes": [
82663	//     "https://www.googleapis.com/auth/cloud-platform",
82664	//     "https://www.googleapis.com/auth/compute"
82665	//   ]
82666	// }
82667
82668}
82669
82670// method id "compute.urlMaps.validate":
82671
82672type UrlMapsValidateCall struct {
82673	s                      *Service
82674	project                string
82675	urlMap                 string
82676	urlmapsvalidaterequest *UrlMapsValidateRequest
82677	urlParams_             gensupport.URLParams
82678	ctx_                   context.Context
82679	header_                http.Header
82680}
82681
82682// Validate: Runs static validation for the UrlMap. In particular, the
82683// tests of the provided UrlMap will be run. Calling this method does
82684// NOT create the UrlMap.
82685// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/validate
82686func (r *UrlMapsService) Validate(project string, urlMap string, urlmapsvalidaterequest *UrlMapsValidateRequest) *UrlMapsValidateCall {
82687	c := &UrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82688	c.project = project
82689	c.urlMap = urlMap
82690	c.urlmapsvalidaterequest = urlmapsvalidaterequest
82691	return c
82692}
82693
82694// Fields allows partial responses to be retrieved. See
82695// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82696// for more information.
82697func (c *UrlMapsValidateCall) Fields(s ...googleapi.Field) *UrlMapsValidateCall {
82698	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82699	return c
82700}
82701
82702// Context sets the context to be used in this call's Do method. Any
82703// pending HTTP request will be aborted if the provided context is
82704// canceled.
82705func (c *UrlMapsValidateCall) Context(ctx context.Context) *UrlMapsValidateCall {
82706	c.ctx_ = ctx
82707	return c
82708}
82709
82710// Header returns an http.Header that can be modified by the caller to
82711// add HTTP headers to the request.
82712func (c *UrlMapsValidateCall) Header() http.Header {
82713	if c.header_ == nil {
82714		c.header_ = make(http.Header)
82715	}
82716	return c.header_
82717}
82718
82719func (c *UrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
82720	reqHeaders := make(http.Header)
82721	for k, v := range c.header_ {
82722		reqHeaders[k] = v
82723	}
82724	reqHeaders.Set("User-Agent", c.s.userAgent())
82725	var body io.Reader = nil
82726	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapsvalidaterequest)
82727	if err != nil {
82728		return nil, err
82729	}
82730	reqHeaders.Set("Content-Type", "application/json")
82731	c.urlParams_.Set("alt", alt)
82732	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}/validate")
82733	urls += "?" + c.urlParams_.Encode()
82734	req, _ := http.NewRequest("POST", urls, body)
82735	req.Header = reqHeaders
82736	googleapi.Expand(req.URL, map[string]string{
82737		"project": c.project,
82738		"urlMap":  c.urlMap,
82739	})
82740	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82741}
82742
82743// Do executes the "compute.urlMaps.validate" call.
82744// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
82745// non-2xx status code is an error. Response headers are in either
82746// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
82747// returned at all) in error.(*googleapi.Error).Header. Use
82748// googleapi.IsNotModified to check whether the returned error was
82749// because http.StatusNotModified was returned.
82750func (c *UrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
82751	gensupport.SetOptions(c.urlParams_, opts...)
82752	res, err := c.doRequest("json")
82753	if res != nil && res.StatusCode == http.StatusNotModified {
82754		if res.Body != nil {
82755			res.Body.Close()
82756		}
82757		return nil, &googleapi.Error{
82758			Code:   res.StatusCode,
82759			Header: res.Header,
82760		}
82761	}
82762	if err != nil {
82763		return nil, err
82764	}
82765	defer googleapi.CloseBody(res)
82766	if err := googleapi.CheckResponse(res); err != nil {
82767		return nil, err
82768	}
82769	ret := &UrlMapsValidateResponse{
82770		ServerResponse: googleapi.ServerResponse{
82771			Header:         res.Header,
82772			HTTPStatusCode: res.StatusCode,
82773		},
82774	}
82775	target := &ret
82776	if err := gensupport.DecodeResponse(target, res); err != nil {
82777		return nil, err
82778	}
82779	return ret, nil
82780	// {
82781	//   "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.",
82782	//   "httpMethod": "POST",
82783	//   "id": "compute.urlMaps.validate",
82784	//   "parameterOrder": [
82785	//     "project",
82786	//     "urlMap"
82787	//   ],
82788	//   "parameters": {
82789	//     "project": {
82790	//       "description": "Project ID for this request.",
82791	//       "location": "path",
82792	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82793	//       "required": true,
82794	//       "type": "string"
82795	//     },
82796	//     "urlMap": {
82797	//       "description": "Name of the UrlMap resource to be validated as.",
82798	//       "location": "path",
82799	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
82800	//       "required": true,
82801	//       "type": "string"
82802	//     }
82803	//   },
82804	//   "path": "{project}/global/urlMaps/{urlMap}/validate",
82805	//   "request": {
82806	//     "$ref": "UrlMapsValidateRequest"
82807	//   },
82808	//   "response": {
82809	//     "$ref": "UrlMapsValidateResponse"
82810	//   },
82811	//   "scopes": [
82812	//     "https://www.googleapis.com/auth/cloud-platform",
82813	//     "https://www.googleapis.com/auth/compute"
82814	//   ]
82815	// }
82816
82817}
82818
82819// method id "compute.vpnTunnels.aggregatedList":
82820
82821type VpnTunnelsAggregatedListCall struct {
82822	s            *Service
82823	project      string
82824	urlParams_   gensupport.URLParams
82825	ifNoneMatch_ string
82826	ctx_         context.Context
82827	header_      http.Header
82828}
82829
82830// AggregatedList: Retrieves an aggregated list of VPN tunnels.
82831func (r *VpnTunnelsService) AggregatedList(project string) *VpnTunnelsAggregatedListCall {
82832	c := &VpnTunnelsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82833	c.project = project
82834	return c
82835}
82836
82837// Filter sets the optional parameter "filter": A filter expression that
82838// filters resources listed in the response. The expression must specify
82839// the field name, a comparison operator, and the value that you want to
82840// use for filtering. The value must be a string, a number, or a
82841// boolean. The comparison operator must be either =, !=, >, or <.
82842//
82843// For example, if you are filtering Compute Engine instances, you can
82844// exclude instances named example-instance by specifying name !=
82845// example-instance.
82846//
82847// You can also filter nested fields. For example, you could specify
82848// scheduling.automaticRestart = false to include instances only if they
82849// are not scheduled for automatic restarts. You can use filtering on
82850// nested fields to filter based on resource labels.
82851//
82852// To filter on multiple expressions, provide each separate expression
82853// within parentheses. For example, (scheduling.automaticRestart = true)
82854// (cpuPlatform = "Intel Skylake"). By default, each expression is an
82855// AND expression. However, you can include AND and OR expressions
82856// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
82857// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
82858// true).
82859func (c *VpnTunnelsAggregatedListCall) Filter(filter string) *VpnTunnelsAggregatedListCall {
82860	c.urlParams_.Set("filter", filter)
82861	return c
82862}
82863
82864// MaxResults sets the optional parameter "maxResults": The maximum
82865// number of results per page that should be returned. If the number of
82866// available results is larger than maxResults, Compute Engine returns a
82867// nextPageToken that can be used to get the next page of results in
82868// subsequent list requests. Acceptable values are 0 to 500, inclusive.
82869// (Default: 500)
82870func (c *VpnTunnelsAggregatedListCall) MaxResults(maxResults int64) *VpnTunnelsAggregatedListCall {
82871	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
82872	return c
82873}
82874
82875// OrderBy sets the optional parameter "orderBy": Sorts list results by
82876// a certain order. By default, results are returned in alphanumerical
82877// order based on the resource name.
82878//
82879// You can also sort results in descending order based on the creation
82880// timestamp using orderBy="creationTimestamp desc". This sorts results
82881// based on the creationTimestamp field in reverse chronological order
82882// (newest result first). Use this to sort resources like operations so
82883// that the newest operation is returned first.
82884//
82885// Currently, only sorting by name or creationTimestamp desc is
82886// supported.
82887func (c *VpnTunnelsAggregatedListCall) OrderBy(orderBy string) *VpnTunnelsAggregatedListCall {
82888	c.urlParams_.Set("orderBy", orderBy)
82889	return c
82890}
82891
82892// PageToken sets the optional parameter "pageToken": Specifies a page
82893// token to use. Set pageToken to the nextPageToken returned by a
82894// previous list request to get the next page of results.
82895func (c *VpnTunnelsAggregatedListCall) PageToken(pageToken string) *VpnTunnelsAggregatedListCall {
82896	c.urlParams_.Set("pageToken", pageToken)
82897	return c
82898}
82899
82900// Fields allows partial responses to be retrieved. See
82901// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82902// for more information.
82903func (c *VpnTunnelsAggregatedListCall) Fields(s ...googleapi.Field) *VpnTunnelsAggregatedListCall {
82904	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82905	return c
82906}
82907
82908// IfNoneMatch sets the optional parameter which makes the operation
82909// fail if the object's ETag matches the given value. This is useful for
82910// getting updates only after the object has changed since the last
82911// request. Use googleapi.IsNotModified to check whether the response
82912// error from Do is the result of In-None-Match.
82913func (c *VpnTunnelsAggregatedListCall) IfNoneMatch(entityTag string) *VpnTunnelsAggregatedListCall {
82914	c.ifNoneMatch_ = entityTag
82915	return c
82916}
82917
82918// Context sets the context to be used in this call's Do method. Any
82919// pending HTTP request will be aborted if the provided context is
82920// canceled.
82921func (c *VpnTunnelsAggregatedListCall) Context(ctx context.Context) *VpnTunnelsAggregatedListCall {
82922	c.ctx_ = ctx
82923	return c
82924}
82925
82926// Header returns an http.Header that can be modified by the caller to
82927// add HTTP headers to the request.
82928func (c *VpnTunnelsAggregatedListCall) Header() http.Header {
82929	if c.header_ == nil {
82930		c.header_ = make(http.Header)
82931	}
82932	return c.header_
82933}
82934
82935func (c *VpnTunnelsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
82936	reqHeaders := make(http.Header)
82937	for k, v := range c.header_ {
82938		reqHeaders[k] = v
82939	}
82940	reqHeaders.Set("User-Agent", c.s.userAgent())
82941	if c.ifNoneMatch_ != "" {
82942		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82943	}
82944	var body io.Reader = nil
82945	c.urlParams_.Set("alt", alt)
82946	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/vpnTunnels")
82947	urls += "?" + c.urlParams_.Encode()
82948	req, _ := http.NewRequest("GET", urls, body)
82949	req.Header = reqHeaders
82950	googleapi.Expand(req.URL, map[string]string{
82951		"project": c.project,
82952	})
82953	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82954}
82955
82956// Do executes the "compute.vpnTunnels.aggregatedList" call.
82957// Exactly one of *VpnTunnelAggregatedList or error will be non-nil. Any
82958// non-2xx status code is an error. Response headers are in either
82959// *VpnTunnelAggregatedList.ServerResponse.Header or (if a response was
82960// returned at all) in error.(*googleapi.Error).Header. Use
82961// googleapi.IsNotModified to check whether the returned error was
82962// because http.StatusNotModified was returned.
82963func (c *VpnTunnelsAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelAggregatedList, error) {
82964	gensupport.SetOptions(c.urlParams_, opts...)
82965	res, err := c.doRequest("json")
82966	if res != nil && res.StatusCode == http.StatusNotModified {
82967		if res.Body != nil {
82968			res.Body.Close()
82969		}
82970		return nil, &googleapi.Error{
82971			Code:   res.StatusCode,
82972			Header: res.Header,
82973		}
82974	}
82975	if err != nil {
82976		return nil, err
82977	}
82978	defer googleapi.CloseBody(res)
82979	if err := googleapi.CheckResponse(res); err != nil {
82980		return nil, err
82981	}
82982	ret := &VpnTunnelAggregatedList{
82983		ServerResponse: googleapi.ServerResponse{
82984			Header:         res.Header,
82985			HTTPStatusCode: res.StatusCode,
82986		},
82987	}
82988	target := &ret
82989	if err := gensupport.DecodeResponse(target, res); err != nil {
82990		return nil, err
82991	}
82992	return ret, nil
82993	// {
82994	//   "description": "Retrieves an aggregated list of VPN tunnels.",
82995	//   "httpMethod": "GET",
82996	//   "id": "compute.vpnTunnels.aggregatedList",
82997	//   "parameterOrder": [
82998	//     "project"
82999	//   ],
83000	//   "parameters": {
83001	//     "filter": {
83002	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
83003	//       "location": "query",
83004	//       "type": "string"
83005	//     },
83006	//     "maxResults": {
83007	//       "default": "500",
83008	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
83009	//       "format": "uint32",
83010	//       "location": "query",
83011	//       "minimum": "0",
83012	//       "type": "integer"
83013	//     },
83014	//     "orderBy": {
83015	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
83016	//       "location": "query",
83017	//       "type": "string"
83018	//     },
83019	//     "pageToken": {
83020	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
83021	//       "location": "query",
83022	//       "type": "string"
83023	//     },
83024	//     "project": {
83025	//       "description": "Project ID for this request.",
83026	//       "location": "path",
83027	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83028	//       "required": true,
83029	//       "type": "string"
83030	//     }
83031	//   },
83032	//   "path": "{project}/aggregated/vpnTunnels",
83033	//   "response": {
83034	//     "$ref": "VpnTunnelAggregatedList"
83035	//   },
83036	//   "scopes": [
83037	//     "https://www.googleapis.com/auth/cloud-platform",
83038	//     "https://www.googleapis.com/auth/compute",
83039	//     "https://www.googleapis.com/auth/compute.readonly"
83040	//   ]
83041	// }
83042
83043}
83044
83045// Pages invokes f for each page of results.
83046// A non-nil error returned from f will halt the iteration.
83047// The provided context supersedes any context provided to the Context method.
83048func (c *VpnTunnelsAggregatedListCall) Pages(ctx context.Context, f func(*VpnTunnelAggregatedList) error) error {
83049	c.ctx_ = ctx
83050	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
83051	for {
83052		x, err := c.Do()
83053		if err != nil {
83054			return err
83055		}
83056		if err := f(x); err != nil {
83057			return err
83058		}
83059		if x.NextPageToken == "" {
83060			return nil
83061		}
83062		c.PageToken(x.NextPageToken)
83063	}
83064}
83065
83066// method id "compute.vpnTunnels.delete":
83067
83068type VpnTunnelsDeleteCall struct {
83069	s          *Service
83070	project    string
83071	region     string
83072	vpnTunnel  string
83073	urlParams_ gensupport.URLParams
83074	ctx_       context.Context
83075	header_    http.Header
83076}
83077
83078// Delete: Deletes the specified VpnTunnel resource.
83079func (r *VpnTunnelsService) Delete(project string, region string, vpnTunnel string) *VpnTunnelsDeleteCall {
83080	c := &VpnTunnelsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83081	c.project = project
83082	c.region = region
83083	c.vpnTunnel = vpnTunnel
83084	return c
83085}
83086
83087// RequestId sets the optional parameter "requestId": An optional
83088// request ID to identify requests. Specify a unique request ID so that
83089// if you must retry your request, the server will know to ignore the
83090// request if it has already been completed.
83091//
83092// For example, consider a situation where you make an initial request
83093// and the request times out. If you make the request again with the
83094// same request ID, the server can check if original operation with the
83095// same request ID was received, and if so, will ignore the second
83096// request. This prevents clients from accidentally creating duplicate
83097// commitments.
83098//
83099// The request ID must be a valid UUID with the exception that zero UUID
83100// is not supported (00000000-0000-0000-0000-000000000000).
83101func (c *VpnTunnelsDeleteCall) RequestId(requestId string) *VpnTunnelsDeleteCall {
83102	c.urlParams_.Set("requestId", requestId)
83103	return c
83104}
83105
83106// Fields allows partial responses to be retrieved. See
83107// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83108// for more information.
83109func (c *VpnTunnelsDeleteCall) Fields(s ...googleapi.Field) *VpnTunnelsDeleteCall {
83110	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83111	return c
83112}
83113
83114// Context sets the context to be used in this call's Do method. Any
83115// pending HTTP request will be aborted if the provided context is
83116// canceled.
83117func (c *VpnTunnelsDeleteCall) Context(ctx context.Context) *VpnTunnelsDeleteCall {
83118	c.ctx_ = ctx
83119	return c
83120}
83121
83122// Header returns an http.Header that can be modified by the caller to
83123// add HTTP headers to the request.
83124func (c *VpnTunnelsDeleteCall) Header() http.Header {
83125	if c.header_ == nil {
83126		c.header_ = make(http.Header)
83127	}
83128	return c.header_
83129}
83130
83131func (c *VpnTunnelsDeleteCall) doRequest(alt string) (*http.Response, error) {
83132	reqHeaders := make(http.Header)
83133	for k, v := range c.header_ {
83134		reqHeaders[k] = v
83135	}
83136	reqHeaders.Set("User-Agent", c.s.userAgent())
83137	var body io.Reader = nil
83138	c.urlParams_.Set("alt", alt)
83139	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
83140	urls += "?" + c.urlParams_.Encode()
83141	req, _ := http.NewRequest("DELETE", urls, body)
83142	req.Header = reqHeaders
83143	googleapi.Expand(req.URL, map[string]string{
83144		"project":   c.project,
83145		"region":    c.region,
83146		"vpnTunnel": c.vpnTunnel,
83147	})
83148	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83149}
83150
83151// Do executes the "compute.vpnTunnels.delete" call.
83152// Exactly one of *Operation or error will be non-nil. Any non-2xx
83153// status code is an error. Response headers are in either
83154// *Operation.ServerResponse.Header or (if a response was returned at
83155// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83156// to check whether the returned error was because
83157// http.StatusNotModified was returned.
83158func (c *VpnTunnelsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83159	gensupport.SetOptions(c.urlParams_, opts...)
83160	res, err := c.doRequest("json")
83161	if res != nil && res.StatusCode == http.StatusNotModified {
83162		if res.Body != nil {
83163			res.Body.Close()
83164		}
83165		return nil, &googleapi.Error{
83166			Code:   res.StatusCode,
83167			Header: res.Header,
83168		}
83169	}
83170	if err != nil {
83171		return nil, err
83172	}
83173	defer googleapi.CloseBody(res)
83174	if err := googleapi.CheckResponse(res); err != nil {
83175		return nil, err
83176	}
83177	ret := &Operation{
83178		ServerResponse: googleapi.ServerResponse{
83179			Header:         res.Header,
83180			HTTPStatusCode: res.StatusCode,
83181		},
83182	}
83183	target := &ret
83184	if err := gensupport.DecodeResponse(target, res); err != nil {
83185		return nil, err
83186	}
83187	return ret, nil
83188	// {
83189	//   "description": "Deletes the specified VpnTunnel resource.",
83190	//   "httpMethod": "DELETE",
83191	//   "id": "compute.vpnTunnels.delete",
83192	//   "parameterOrder": [
83193	//     "project",
83194	//     "region",
83195	//     "vpnTunnel"
83196	//   ],
83197	//   "parameters": {
83198	//     "project": {
83199	//       "description": "Project ID for this request.",
83200	//       "location": "path",
83201	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83202	//       "required": true,
83203	//       "type": "string"
83204	//     },
83205	//     "region": {
83206	//       "description": "Name of the region for this request.",
83207	//       "location": "path",
83208	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83209	//       "required": true,
83210	//       "type": "string"
83211	//     },
83212	//     "requestId": {
83213	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83214	//       "location": "query",
83215	//       "type": "string"
83216	//     },
83217	//     "vpnTunnel": {
83218	//       "description": "Name of the VpnTunnel resource to delete.",
83219	//       "location": "path",
83220	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83221	//       "required": true,
83222	//       "type": "string"
83223	//     }
83224	//   },
83225	//   "path": "{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
83226	//   "response": {
83227	//     "$ref": "Operation"
83228	//   },
83229	//   "scopes": [
83230	//     "https://www.googleapis.com/auth/cloud-platform",
83231	//     "https://www.googleapis.com/auth/compute"
83232	//   ]
83233	// }
83234
83235}
83236
83237// method id "compute.vpnTunnels.get":
83238
83239type VpnTunnelsGetCall struct {
83240	s            *Service
83241	project      string
83242	region       string
83243	vpnTunnel    string
83244	urlParams_   gensupport.URLParams
83245	ifNoneMatch_ string
83246	ctx_         context.Context
83247	header_      http.Header
83248}
83249
83250// Get: Returns the specified VpnTunnel resource. Gets a list of
83251// available VPN tunnels by making a list() request.
83252func (r *VpnTunnelsService) Get(project string, region string, vpnTunnel string) *VpnTunnelsGetCall {
83253	c := &VpnTunnelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83254	c.project = project
83255	c.region = region
83256	c.vpnTunnel = vpnTunnel
83257	return c
83258}
83259
83260// Fields allows partial responses to be retrieved. See
83261// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83262// for more information.
83263func (c *VpnTunnelsGetCall) Fields(s ...googleapi.Field) *VpnTunnelsGetCall {
83264	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83265	return c
83266}
83267
83268// IfNoneMatch sets the optional parameter which makes the operation
83269// fail if the object's ETag matches the given value. This is useful for
83270// getting updates only after the object has changed since the last
83271// request. Use googleapi.IsNotModified to check whether the response
83272// error from Do is the result of In-None-Match.
83273func (c *VpnTunnelsGetCall) IfNoneMatch(entityTag string) *VpnTunnelsGetCall {
83274	c.ifNoneMatch_ = entityTag
83275	return c
83276}
83277
83278// Context sets the context to be used in this call's Do method. Any
83279// pending HTTP request will be aborted if the provided context is
83280// canceled.
83281func (c *VpnTunnelsGetCall) Context(ctx context.Context) *VpnTunnelsGetCall {
83282	c.ctx_ = ctx
83283	return c
83284}
83285
83286// Header returns an http.Header that can be modified by the caller to
83287// add HTTP headers to the request.
83288func (c *VpnTunnelsGetCall) Header() http.Header {
83289	if c.header_ == nil {
83290		c.header_ = make(http.Header)
83291	}
83292	return c.header_
83293}
83294
83295func (c *VpnTunnelsGetCall) doRequest(alt string) (*http.Response, error) {
83296	reqHeaders := make(http.Header)
83297	for k, v := range c.header_ {
83298		reqHeaders[k] = v
83299	}
83300	reqHeaders.Set("User-Agent", c.s.userAgent())
83301	if c.ifNoneMatch_ != "" {
83302		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
83303	}
83304	var body io.Reader = nil
83305	c.urlParams_.Set("alt", alt)
83306	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
83307	urls += "?" + c.urlParams_.Encode()
83308	req, _ := http.NewRequest("GET", urls, body)
83309	req.Header = reqHeaders
83310	googleapi.Expand(req.URL, map[string]string{
83311		"project":   c.project,
83312		"region":    c.region,
83313		"vpnTunnel": c.vpnTunnel,
83314	})
83315	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83316}
83317
83318// Do executes the "compute.vpnTunnels.get" call.
83319// Exactly one of *VpnTunnel or error will be non-nil. Any non-2xx
83320// status code is an error. Response headers are in either
83321// *VpnTunnel.ServerResponse.Header or (if a response was returned at
83322// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83323// to check whether the returned error was because
83324// http.StatusNotModified was returned.
83325func (c *VpnTunnelsGetCall) Do(opts ...googleapi.CallOption) (*VpnTunnel, error) {
83326	gensupport.SetOptions(c.urlParams_, opts...)
83327	res, err := c.doRequest("json")
83328	if res != nil && res.StatusCode == http.StatusNotModified {
83329		if res.Body != nil {
83330			res.Body.Close()
83331		}
83332		return nil, &googleapi.Error{
83333			Code:   res.StatusCode,
83334			Header: res.Header,
83335		}
83336	}
83337	if err != nil {
83338		return nil, err
83339	}
83340	defer googleapi.CloseBody(res)
83341	if err := googleapi.CheckResponse(res); err != nil {
83342		return nil, err
83343	}
83344	ret := &VpnTunnel{
83345		ServerResponse: googleapi.ServerResponse{
83346			Header:         res.Header,
83347			HTTPStatusCode: res.StatusCode,
83348		},
83349	}
83350	target := &ret
83351	if err := gensupport.DecodeResponse(target, res); err != nil {
83352		return nil, err
83353	}
83354	return ret, nil
83355	// {
83356	//   "description": "Returns the specified VpnTunnel resource. Gets a list of available VPN tunnels by making a list() request.",
83357	//   "httpMethod": "GET",
83358	//   "id": "compute.vpnTunnels.get",
83359	//   "parameterOrder": [
83360	//     "project",
83361	//     "region",
83362	//     "vpnTunnel"
83363	//   ],
83364	//   "parameters": {
83365	//     "project": {
83366	//       "description": "Project ID for this request.",
83367	//       "location": "path",
83368	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83369	//       "required": true,
83370	//       "type": "string"
83371	//     },
83372	//     "region": {
83373	//       "description": "Name of the region for this request.",
83374	//       "location": "path",
83375	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83376	//       "required": true,
83377	//       "type": "string"
83378	//     },
83379	//     "vpnTunnel": {
83380	//       "description": "Name of the VpnTunnel resource to return.",
83381	//       "location": "path",
83382	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83383	//       "required": true,
83384	//       "type": "string"
83385	//     }
83386	//   },
83387	//   "path": "{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
83388	//   "response": {
83389	//     "$ref": "VpnTunnel"
83390	//   },
83391	//   "scopes": [
83392	//     "https://www.googleapis.com/auth/cloud-platform",
83393	//     "https://www.googleapis.com/auth/compute",
83394	//     "https://www.googleapis.com/auth/compute.readonly"
83395	//   ]
83396	// }
83397
83398}
83399
83400// method id "compute.vpnTunnels.insert":
83401
83402type VpnTunnelsInsertCall struct {
83403	s          *Service
83404	project    string
83405	region     string
83406	vpntunnel  *VpnTunnel
83407	urlParams_ gensupport.URLParams
83408	ctx_       context.Context
83409	header_    http.Header
83410}
83411
83412// Insert: Creates a VpnTunnel resource in the specified project and
83413// region using the data included in the request.
83414func (r *VpnTunnelsService) Insert(project string, region string, vpntunnel *VpnTunnel) *VpnTunnelsInsertCall {
83415	c := &VpnTunnelsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83416	c.project = project
83417	c.region = region
83418	c.vpntunnel = vpntunnel
83419	return c
83420}
83421
83422// RequestId sets the optional parameter "requestId": An optional
83423// request ID to identify requests. Specify a unique request ID so that
83424// if you must retry your request, the server will know to ignore the
83425// request if it has already been completed.
83426//
83427// For example, consider a situation where you make an initial request
83428// and the request times out. If you make the request again with the
83429// same request ID, the server can check if original operation with the
83430// same request ID was received, and if so, will ignore the second
83431// request. This prevents clients from accidentally creating duplicate
83432// commitments.
83433//
83434// The request ID must be a valid UUID with the exception that zero UUID
83435// is not supported (00000000-0000-0000-0000-000000000000).
83436func (c *VpnTunnelsInsertCall) RequestId(requestId string) *VpnTunnelsInsertCall {
83437	c.urlParams_.Set("requestId", requestId)
83438	return c
83439}
83440
83441// Fields allows partial responses to be retrieved. See
83442// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83443// for more information.
83444func (c *VpnTunnelsInsertCall) Fields(s ...googleapi.Field) *VpnTunnelsInsertCall {
83445	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83446	return c
83447}
83448
83449// Context sets the context to be used in this call's Do method. Any
83450// pending HTTP request will be aborted if the provided context is
83451// canceled.
83452func (c *VpnTunnelsInsertCall) Context(ctx context.Context) *VpnTunnelsInsertCall {
83453	c.ctx_ = ctx
83454	return c
83455}
83456
83457// Header returns an http.Header that can be modified by the caller to
83458// add HTTP headers to the request.
83459func (c *VpnTunnelsInsertCall) Header() http.Header {
83460	if c.header_ == nil {
83461		c.header_ = make(http.Header)
83462	}
83463	return c.header_
83464}
83465
83466func (c *VpnTunnelsInsertCall) doRequest(alt string) (*http.Response, error) {
83467	reqHeaders := make(http.Header)
83468	for k, v := range c.header_ {
83469		reqHeaders[k] = v
83470	}
83471	reqHeaders.Set("User-Agent", c.s.userAgent())
83472	var body io.Reader = nil
83473	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpntunnel)
83474	if err != nil {
83475		return nil, err
83476	}
83477	reqHeaders.Set("Content-Type", "application/json")
83478	c.urlParams_.Set("alt", alt)
83479	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels")
83480	urls += "?" + c.urlParams_.Encode()
83481	req, _ := http.NewRequest("POST", urls, body)
83482	req.Header = reqHeaders
83483	googleapi.Expand(req.URL, map[string]string{
83484		"project": c.project,
83485		"region":  c.region,
83486	})
83487	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83488}
83489
83490// Do executes the "compute.vpnTunnels.insert" call.
83491// Exactly one of *Operation or error will be non-nil. Any non-2xx
83492// status code is an error. Response headers are in either
83493// *Operation.ServerResponse.Header or (if a response was returned at
83494// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83495// to check whether the returned error was because
83496// http.StatusNotModified was returned.
83497func (c *VpnTunnelsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83498	gensupport.SetOptions(c.urlParams_, opts...)
83499	res, err := c.doRequest("json")
83500	if res != nil && res.StatusCode == http.StatusNotModified {
83501		if res.Body != nil {
83502			res.Body.Close()
83503		}
83504		return nil, &googleapi.Error{
83505			Code:   res.StatusCode,
83506			Header: res.Header,
83507		}
83508	}
83509	if err != nil {
83510		return nil, err
83511	}
83512	defer googleapi.CloseBody(res)
83513	if err := googleapi.CheckResponse(res); err != nil {
83514		return nil, err
83515	}
83516	ret := &Operation{
83517		ServerResponse: googleapi.ServerResponse{
83518			Header:         res.Header,
83519			HTTPStatusCode: res.StatusCode,
83520		},
83521	}
83522	target := &ret
83523	if err := gensupport.DecodeResponse(target, res); err != nil {
83524		return nil, err
83525	}
83526	return ret, nil
83527	// {
83528	//   "description": "Creates a VpnTunnel resource in the specified project and region using the data included in the request.",
83529	//   "httpMethod": "POST",
83530	//   "id": "compute.vpnTunnels.insert",
83531	//   "parameterOrder": [
83532	//     "project",
83533	//     "region"
83534	//   ],
83535	//   "parameters": {
83536	//     "project": {
83537	//       "description": "Project ID for this request.",
83538	//       "location": "path",
83539	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83540	//       "required": true,
83541	//       "type": "string"
83542	//     },
83543	//     "region": {
83544	//       "description": "Name of the region for this request.",
83545	//       "location": "path",
83546	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83547	//       "required": true,
83548	//       "type": "string"
83549	//     },
83550	//     "requestId": {
83551	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83552	//       "location": "query",
83553	//       "type": "string"
83554	//     }
83555	//   },
83556	//   "path": "{project}/regions/{region}/vpnTunnels",
83557	//   "request": {
83558	//     "$ref": "VpnTunnel"
83559	//   },
83560	//   "response": {
83561	//     "$ref": "Operation"
83562	//   },
83563	//   "scopes": [
83564	//     "https://www.googleapis.com/auth/cloud-platform",
83565	//     "https://www.googleapis.com/auth/compute"
83566	//   ]
83567	// }
83568
83569}
83570
83571// method id "compute.vpnTunnels.list":
83572
83573type VpnTunnelsListCall struct {
83574	s            *Service
83575	project      string
83576	region       string
83577	urlParams_   gensupport.URLParams
83578	ifNoneMatch_ string
83579	ctx_         context.Context
83580	header_      http.Header
83581}
83582
83583// List: Retrieves a list of VpnTunnel resources contained in the
83584// specified project and region.
83585func (r *VpnTunnelsService) List(project string, region string) *VpnTunnelsListCall {
83586	c := &VpnTunnelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83587	c.project = project
83588	c.region = region
83589	return c
83590}
83591
83592// Filter sets the optional parameter "filter": A filter expression that
83593// filters resources listed in the response. The expression must specify
83594// the field name, a comparison operator, and the value that you want to
83595// use for filtering. The value must be a string, a number, or a
83596// boolean. The comparison operator must be either =, !=, >, or <.
83597//
83598// For example, if you are filtering Compute Engine instances, you can
83599// exclude instances named example-instance by specifying name !=
83600// example-instance.
83601//
83602// You can also filter nested fields. For example, you could specify
83603// scheduling.automaticRestart = false to include instances only if they
83604// are not scheduled for automatic restarts. You can use filtering on
83605// nested fields to filter based on resource labels.
83606//
83607// To filter on multiple expressions, provide each separate expression
83608// within parentheses. For example, (scheduling.automaticRestart = true)
83609// (cpuPlatform = "Intel Skylake"). By default, each expression is an
83610// AND expression. However, you can include AND and OR expressions
83611// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
83612// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
83613// true).
83614func (c *VpnTunnelsListCall) Filter(filter string) *VpnTunnelsListCall {
83615	c.urlParams_.Set("filter", filter)
83616	return c
83617}
83618
83619// MaxResults sets the optional parameter "maxResults": The maximum
83620// number of results per page that should be returned. If the number of
83621// available results is larger than maxResults, Compute Engine returns a
83622// nextPageToken that can be used to get the next page of results in
83623// subsequent list requests. Acceptable values are 0 to 500, inclusive.
83624// (Default: 500)
83625func (c *VpnTunnelsListCall) MaxResults(maxResults int64) *VpnTunnelsListCall {
83626	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
83627	return c
83628}
83629
83630// OrderBy sets the optional parameter "orderBy": Sorts list results by
83631// a certain order. By default, results are returned in alphanumerical
83632// order based on the resource name.
83633//
83634// You can also sort results in descending order based on the creation
83635// timestamp using orderBy="creationTimestamp desc". This sorts results
83636// based on the creationTimestamp field in reverse chronological order
83637// (newest result first). Use this to sort resources like operations so
83638// that the newest operation is returned first.
83639//
83640// Currently, only sorting by name or creationTimestamp desc is
83641// supported.
83642func (c *VpnTunnelsListCall) OrderBy(orderBy string) *VpnTunnelsListCall {
83643	c.urlParams_.Set("orderBy", orderBy)
83644	return c
83645}
83646
83647// PageToken sets the optional parameter "pageToken": Specifies a page
83648// token to use. Set pageToken to the nextPageToken returned by a
83649// previous list request to get the next page of results.
83650func (c *VpnTunnelsListCall) PageToken(pageToken string) *VpnTunnelsListCall {
83651	c.urlParams_.Set("pageToken", pageToken)
83652	return c
83653}
83654
83655// Fields allows partial responses to be retrieved. See
83656// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83657// for more information.
83658func (c *VpnTunnelsListCall) Fields(s ...googleapi.Field) *VpnTunnelsListCall {
83659	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83660	return c
83661}
83662
83663// IfNoneMatch sets the optional parameter which makes the operation
83664// fail if the object's ETag matches the given value. This is useful for
83665// getting updates only after the object has changed since the last
83666// request. Use googleapi.IsNotModified to check whether the response
83667// error from Do is the result of In-None-Match.
83668func (c *VpnTunnelsListCall) IfNoneMatch(entityTag string) *VpnTunnelsListCall {
83669	c.ifNoneMatch_ = entityTag
83670	return c
83671}
83672
83673// Context sets the context to be used in this call's Do method. Any
83674// pending HTTP request will be aborted if the provided context is
83675// canceled.
83676func (c *VpnTunnelsListCall) Context(ctx context.Context) *VpnTunnelsListCall {
83677	c.ctx_ = ctx
83678	return c
83679}
83680
83681// Header returns an http.Header that can be modified by the caller to
83682// add HTTP headers to the request.
83683func (c *VpnTunnelsListCall) Header() http.Header {
83684	if c.header_ == nil {
83685		c.header_ = make(http.Header)
83686	}
83687	return c.header_
83688}
83689
83690func (c *VpnTunnelsListCall) doRequest(alt string) (*http.Response, error) {
83691	reqHeaders := make(http.Header)
83692	for k, v := range c.header_ {
83693		reqHeaders[k] = v
83694	}
83695	reqHeaders.Set("User-Agent", c.s.userAgent())
83696	if c.ifNoneMatch_ != "" {
83697		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
83698	}
83699	var body io.Reader = nil
83700	c.urlParams_.Set("alt", alt)
83701	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels")
83702	urls += "?" + c.urlParams_.Encode()
83703	req, _ := http.NewRequest("GET", urls, body)
83704	req.Header = reqHeaders
83705	googleapi.Expand(req.URL, map[string]string{
83706		"project": c.project,
83707		"region":  c.region,
83708	})
83709	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83710}
83711
83712// Do executes the "compute.vpnTunnels.list" call.
83713// Exactly one of *VpnTunnelList or error will be non-nil. Any non-2xx
83714// status code is an error. Response headers are in either
83715// *VpnTunnelList.ServerResponse.Header or (if a response was returned
83716// at all) in error.(*googleapi.Error).Header. Use
83717// googleapi.IsNotModified to check whether the returned error was
83718// because http.StatusNotModified was returned.
83719func (c *VpnTunnelsListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelList, error) {
83720	gensupport.SetOptions(c.urlParams_, opts...)
83721	res, err := c.doRequest("json")
83722	if res != nil && res.StatusCode == http.StatusNotModified {
83723		if res.Body != nil {
83724			res.Body.Close()
83725		}
83726		return nil, &googleapi.Error{
83727			Code:   res.StatusCode,
83728			Header: res.Header,
83729		}
83730	}
83731	if err != nil {
83732		return nil, err
83733	}
83734	defer googleapi.CloseBody(res)
83735	if err := googleapi.CheckResponse(res); err != nil {
83736		return nil, err
83737	}
83738	ret := &VpnTunnelList{
83739		ServerResponse: googleapi.ServerResponse{
83740			Header:         res.Header,
83741			HTTPStatusCode: res.StatusCode,
83742		},
83743	}
83744	target := &ret
83745	if err := gensupport.DecodeResponse(target, res); err != nil {
83746		return nil, err
83747	}
83748	return ret, nil
83749	// {
83750	//   "description": "Retrieves a list of VpnTunnel resources contained in the specified project and region.",
83751	//   "httpMethod": "GET",
83752	//   "id": "compute.vpnTunnels.list",
83753	//   "parameterOrder": [
83754	//     "project",
83755	//     "region"
83756	//   ],
83757	//   "parameters": {
83758	//     "filter": {
83759	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
83760	//       "location": "query",
83761	//       "type": "string"
83762	//     },
83763	//     "maxResults": {
83764	//       "default": "500",
83765	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
83766	//       "format": "uint32",
83767	//       "location": "query",
83768	//       "minimum": "0",
83769	//       "type": "integer"
83770	//     },
83771	//     "orderBy": {
83772	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
83773	//       "location": "query",
83774	//       "type": "string"
83775	//     },
83776	//     "pageToken": {
83777	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
83778	//       "location": "query",
83779	//       "type": "string"
83780	//     },
83781	//     "project": {
83782	//       "description": "Project ID for this request.",
83783	//       "location": "path",
83784	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83785	//       "required": true,
83786	//       "type": "string"
83787	//     },
83788	//     "region": {
83789	//       "description": "Name of the region for this request.",
83790	//       "location": "path",
83791	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83792	//       "required": true,
83793	//       "type": "string"
83794	//     }
83795	//   },
83796	//   "path": "{project}/regions/{region}/vpnTunnels",
83797	//   "response": {
83798	//     "$ref": "VpnTunnelList"
83799	//   },
83800	//   "scopes": [
83801	//     "https://www.googleapis.com/auth/cloud-platform",
83802	//     "https://www.googleapis.com/auth/compute",
83803	//     "https://www.googleapis.com/auth/compute.readonly"
83804	//   ]
83805	// }
83806
83807}
83808
83809// Pages invokes f for each page of results.
83810// A non-nil error returned from f will halt the iteration.
83811// The provided context supersedes any context provided to the Context method.
83812func (c *VpnTunnelsListCall) Pages(ctx context.Context, f func(*VpnTunnelList) error) error {
83813	c.ctx_ = ctx
83814	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
83815	for {
83816		x, err := c.Do()
83817		if err != nil {
83818			return err
83819		}
83820		if err := f(x); err != nil {
83821			return err
83822		}
83823		if x.NextPageToken == "" {
83824			return nil
83825		}
83826		c.PageToken(x.NextPageToken)
83827	}
83828}
83829
83830// method id "compute.zoneOperations.delete":
83831
83832type ZoneOperationsDeleteCall struct {
83833	s          *Service
83834	project    string
83835	zone       string
83836	operation  string
83837	urlParams_ gensupport.URLParams
83838	ctx_       context.Context
83839	header_    http.Header
83840}
83841
83842// Delete: Deletes the specified zone-specific Operations resource.
83843// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/delete
83844func (r *ZoneOperationsService) Delete(project string, zone string, operation string) *ZoneOperationsDeleteCall {
83845	c := &ZoneOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83846	c.project = project
83847	c.zone = zone
83848	c.operation = operation
83849	return c
83850}
83851
83852// Fields allows partial responses to be retrieved. See
83853// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83854// for more information.
83855func (c *ZoneOperationsDeleteCall) Fields(s ...googleapi.Field) *ZoneOperationsDeleteCall {
83856	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83857	return c
83858}
83859
83860// Context sets the context to be used in this call's Do method. Any
83861// pending HTTP request will be aborted if the provided context is
83862// canceled.
83863func (c *ZoneOperationsDeleteCall) Context(ctx context.Context) *ZoneOperationsDeleteCall {
83864	c.ctx_ = ctx
83865	return c
83866}
83867
83868// Header returns an http.Header that can be modified by the caller to
83869// add HTTP headers to the request.
83870func (c *ZoneOperationsDeleteCall) Header() http.Header {
83871	if c.header_ == nil {
83872		c.header_ = make(http.Header)
83873	}
83874	return c.header_
83875}
83876
83877func (c *ZoneOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
83878	reqHeaders := make(http.Header)
83879	for k, v := range c.header_ {
83880		reqHeaders[k] = v
83881	}
83882	reqHeaders.Set("User-Agent", c.s.userAgent())
83883	var body io.Reader = nil
83884	c.urlParams_.Set("alt", alt)
83885	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}")
83886	urls += "?" + c.urlParams_.Encode()
83887	req, _ := http.NewRequest("DELETE", urls, body)
83888	req.Header = reqHeaders
83889	googleapi.Expand(req.URL, map[string]string{
83890		"project":   c.project,
83891		"zone":      c.zone,
83892		"operation": c.operation,
83893	})
83894	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83895}
83896
83897// Do executes the "compute.zoneOperations.delete" call.
83898func (c *ZoneOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
83899	gensupport.SetOptions(c.urlParams_, opts...)
83900	res, err := c.doRequest("json")
83901	if err != nil {
83902		return err
83903	}
83904	defer googleapi.CloseBody(res)
83905	if err := googleapi.CheckResponse(res); err != nil {
83906		return err
83907	}
83908	return nil
83909	// {
83910	//   "description": "Deletes the specified zone-specific Operations resource.",
83911	//   "httpMethod": "DELETE",
83912	//   "id": "compute.zoneOperations.delete",
83913	//   "parameterOrder": [
83914	//     "project",
83915	//     "zone",
83916	//     "operation"
83917	//   ],
83918	//   "parameters": {
83919	//     "operation": {
83920	//       "description": "Name of the Operations resource to delete.",
83921	//       "location": "path",
83922	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83923	//       "required": true,
83924	//       "type": "string"
83925	//     },
83926	//     "project": {
83927	//       "description": "Project ID for this request.",
83928	//       "location": "path",
83929	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83930	//       "required": true,
83931	//       "type": "string"
83932	//     },
83933	//     "zone": {
83934	//       "description": "Name of the zone for this request.",
83935	//       "location": "path",
83936	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83937	//       "required": true,
83938	//       "type": "string"
83939	//     }
83940	//   },
83941	//   "path": "{project}/zones/{zone}/operations/{operation}",
83942	//   "scopes": [
83943	//     "https://www.googleapis.com/auth/cloud-platform",
83944	//     "https://www.googleapis.com/auth/compute"
83945	//   ]
83946	// }
83947
83948}
83949
83950// method id "compute.zoneOperations.get":
83951
83952type ZoneOperationsGetCall struct {
83953	s            *Service
83954	project      string
83955	zone         string
83956	operation    string
83957	urlParams_   gensupport.URLParams
83958	ifNoneMatch_ string
83959	ctx_         context.Context
83960	header_      http.Header
83961}
83962
83963// Get: Retrieves the specified zone-specific Operations resource.
83964// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/get
83965func (r *ZoneOperationsService) Get(project string, zone string, operation string) *ZoneOperationsGetCall {
83966	c := &ZoneOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83967	c.project = project
83968	c.zone = zone
83969	c.operation = operation
83970	return c
83971}
83972
83973// Fields allows partial responses to be retrieved. See
83974// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83975// for more information.
83976func (c *ZoneOperationsGetCall) Fields(s ...googleapi.Field) *ZoneOperationsGetCall {
83977	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83978	return c
83979}
83980
83981// IfNoneMatch sets the optional parameter which makes the operation
83982// fail if the object's ETag matches the given value. This is useful for
83983// getting updates only after the object has changed since the last
83984// request. Use googleapi.IsNotModified to check whether the response
83985// error from Do is the result of In-None-Match.
83986func (c *ZoneOperationsGetCall) IfNoneMatch(entityTag string) *ZoneOperationsGetCall {
83987	c.ifNoneMatch_ = entityTag
83988	return c
83989}
83990
83991// Context sets the context to be used in this call's Do method. Any
83992// pending HTTP request will be aborted if the provided context is
83993// canceled.
83994func (c *ZoneOperationsGetCall) Context(ctx context.Context) *ZoneOperationsGetCall {
83995	c.ctx_ = ctx
83996	return c
83997}
83998
83999// Header returns an http.Header that can be modified by the caller to
84000// add HTTP headers to the request.
84001func (c *ZoneOperationsGetCall) Header() http.Header {
84002	if c.header_ == nil {
84003		c.header_ = make(http.Header)
84004	}
84005	return c.header_
84006}
84007
84008func (c *ZoneOperationsGetCall) doRequest(alt string) (*http.Response, error) {
84009	reqHeaders := make(http.Header)
84010	for k, v := range c.header_ {
84011		reqHeaders[k] = v
84012	}
84013	reqHeaders.Set("User-Agent", c.s.userAgent())
84014	if c.ifNoneMatch_ != "" {
84015		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
84016	}
84017	var body io.Reader = nil
84018	c.urlParams_.Set("alt", alt)
84019	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}")
84020	urls += "?" + c.urlParams_.Encode()
84021	req, _ := http.NewRequest("GET", urls, body)
84022	req.Header = reqHeaders
84023	googleapi.Expand(req.URL, map[string]string{
84024		"project":   c.project,
84025		"zone":      c.zone,
84026		"operation": c.operation,
84027	})
84028	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84029}
84030
84031// Do executes the "compute.zoneOperations.get" call.
84032// Exactly one of *Operation or error will be non-nil. Any non-2xx
84033// status code is an error. Response headers are in either
84034// *Operation.ServerResponse.Header or (if a response was returned at
84035// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84036// to check whether the returned error was because
84037// http.StatusNotModified was returned.
84038func (c *ZoneOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84039	gensupport.SetOptions(c.urlParams_, opts...)
84040	res, err := c.doRequest("json")
84041	if res != nil && res.StatusCode == http.StatusNotModified {
84042		if res.Body != nil {
84043			res.Body.Close()
84044		}
84045		return nil, &googleapi.Error{
84046			Code:   res.StatusCode,
84047			Header: res.Header,
84048		}
84049	}
84050	if err != nil {
84051		return nil, err
84052	}
84053	defer googleapi.CloseBody(res)
84054	if err := googleapi.CheckResponse(res); err != nil {
84055		return nil, err
84056	}
84057	ret := &Operation{
84058		ServerResponse: googleapi.ServerResponse{
84059			Header:         res.Header,
84060			HTTPStatusCode: res.StatusCode,
84061		},
84062	}
84063	target := &ret
84064	if err := gensupport.DecodeResponse(target, res); err != nil {
84065		return nil, err
84066	}
84067	return ret, nil
84068	// {
84069	//   "description": "Retrieves the specified zone-specific Operations resource.",
84070	//   "httpMethod": "GET",
84071	//   "id": "compute.zoneOperations.get",
84072	//   "parameterOrder": [
84073	//     "project",
84074	//     "zone",
84075	//     "operation"
84076	//   ],
84077	//   "parameters": {
84078	//     "operation": {
84079	//       "description": "Name of the Operations resource to return.",
84080	//       "location": "path",
84081	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84082	//       "required": true,
84083	//       "type": "string"
84084	//     },
84085	//     "project": {
84086	//       "description": "Project ID for this request.",
84087	//       "location": "path",
84088	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84089	//       "required": true,
84090	//       "type": "string"
84091	//     },
84092	//     "zone": {
84093	//       "description": "Name of the zone for this request.",
84094	//       "location": "path",
84095	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84096	//       "required": true,
84097	//       "type": "string"
84098	//     }
84099	//   },
84100	//   "path": "{project}/zones/{zone}/operations/{operation}",
84101	//   "response": {
84102	//     "$ref": "Operation"
84103	//   },
84104	//   "scopes": [
84105	//     "https://www.googleapis.com/auth/cloud-platform",
84106	//     "https://www.googleapis.com/auth/compute",
84107	//     "https://www.googleapis.com/auth/compute.readonly"
84108	//   ]
84109	// }
84110
84111}
84112
84113// method id "compute.zoneOperations.list":
84114
84115type ZoneOperationsListCall struct {
84116	s            *Service
84117	project      string
84118	zone         string
84119	urlParams_   gensupport.URLParams
84120	ifNoneMatch_ string
84121	ctx_         context.Context
84122	header_      http.Header
84123}
84124
84125// List: Retrieves a list of Operation resources contained within the
84126// specified zone.
84127// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/list
84128func (r *ZoneOperationsService) List(project string, zone string) *ZoneOperationsListCall {
84129	c := &ZoneOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84130	c.project = project
84131	c.zone = zone
84132	return c
84133}
84134
84135// Filter sets the optional parameter "filter": A filter expression that
84136// filters resources listed in the response. The expression must specify
84137// the field name, a comparison operator, and the value that you want to
84138// use for filtering. The value must be a string, a number, or a
84139// boolean. The comparison operator must be either =, !=, >, or <.
84140//
84141// For example, if you are filtering Compute Engine instances, you can
84142// exclude instances named example-instance by specifying name !=
84143// example-instance.
84144//
84145// You can also filter nested fields. For example, you could specify
84146// scheduling.automaticRestart = false to include instances only if they
84147// are not scheduled for automatic restarts. You can use filtering on
84148// nested fields to filter based on resource labels.
84149//
84150// To filter on multiple expressions, provide each separate expression
84151// within parentheses. For example, (scheduling.automaticRestart = true)
84152// (cpuPlatform = "Intel Skylake"). By default, each expression is an
84153// AND expression. However, you can include AND and OR expressions
84154// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
84155// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
84156// true).
84157func (c *ZoneOperationsListCall) Filter(filter string) *ZoneOperationsListCall {
84158	c.urlParams_.Set("filter", filter)
84159	return c
84160}
84161
84162// MaxResults sets the optional parameter "maxResults": The maximum
84163// number of results per page that should be returned. If the number of
84164// available results is larger than maxResults, Compute Engine returns a
84165// nextPageToken that can be used to get the next page of results in
84166// subsequent list requests. Acceptable values are 0 to 500, inclusive.
84167// (Default: 500)
84168func (c *ZoneOperationsListCall) MaxResults(maxResults int64) *ZoneOperationsListCall {
84169	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
84170	return c
84171}
84172
84173// OrderBy sets the optional parameter "orderBy": Sorts list results by
84174// a certain order. By default, results are returned in alphanumerical
84175// order based on the resource name.
84176//
84177// You can also sort results in descending order based on the creation
84178// timestamp using orderBy="creationTimestamp desc". This sorts results
84179// based on the creationTimestamp field in reverse chronological order
84180// (newest result first). Use this to sort resources like operations so
84181// that the newest operation is returned first.
84182//
84183// Currently, only sorting by name or creationTimestamp desc is
84184// supported.
84185func (c *ZoneOperationsListCall) OrderBy(orderBy string) *ZoneOperationsListCall {
84186	c.urlParams_.Set("orderBy", orderBy)
84187	return c
84188}
84189
84190// PageToken sets the optional parameter "pageToken": Specifies a page
84191// token to use. Set pageToken to the nextPageToken returned by a
84192// previous list request to get the next page of results.
84193func (c *ZoneOperationsListCall) PageToken(pageToken string) *ZoneOperationsListCall {
84194	c.urlParams_.Set("pageToken", pageToken)
84195	return c
84196}
84197
84198// Fields allows partial responses to be retrieved. See
84199// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84200// for more information.
84201func (c *ZoneOperationsListCall) Fields(s ...googleapi.Field) *ZoneOperationsListCall {
84202	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84203	return c
84204}
84205
84206// IfNoneMatch sets the optional parameter which makes the operation
84207// fail if the object's ETag matches the given value. This is useful for
84208// getting updates only after the object has changed since the last
84209// request. Use googleapi.IsNotModified to check whether the response
84210// error from Do is the result of In-None-Match.
84211func (c *ZoneOperationsListCall) IfNoneMatch(entityTag string) *ZoneOperationsListCall {
84212	c.ifNoneMatch_ = entityTag
84213	return c
84214}
84215
84216// Context sets the context to be used in this call's Do method. Any
84217// pending HTTP request will be aborted if the provided context is
84218// canceled.
84219func (c *ZoneOperationsListCall) Context(ctx context.Context) *ZoneOperationsListCall {
84220	c.ctx_ = ctx
84221	return c
84222}
84223
84224// Header returns an http.Header that can be modified by the caller to
84225// add HTTP headers to the request.
84226func (c *ZoneOperationsListCall) Header() http.Header {
84227	if c.header_ == nil {
84228		c.header_ = make(http.Header)
84229	}
84230	return c.header_
84231}
84232
84233func (c *ZoneOperationsListCall) doRequest(alt string) (*http.Response, error) {
84234	reqHeaders := make(http.Header)
84235	for k, v := range c.header_ {
84236		reqHeaders[k] = v
84237	}
84238	reqHeaders.Set("User-Agent", c.s.userAgent())
84239	if c.ifNoneMatch_ != "" {
84240		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
84241	}
84242	var body io.Reader = nil
84243	c.urlParams_.Set("alt", alt)
84244	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations")
84245	urls += "?" + c.urlParams_.Encode()
84246	req, _ := http.NewRequest("GET", urls, body)
84247	req.Header = reqHeaders
84248	googleapi.Expand(req.URL, map[string]string{
84249		"project": c.project,
84250		"zone":    c.zone,
84251	})
84252	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84253}
84254
84255// Do executes the "compute.zoneOperations.list" call.
84256// Exactly one of *OperationList or error will be non-nil. Any non-2xx
84257// status code is an error. Response headers are in either
84258// *OperationList.ServerResponse.Header or (if a response was returned
84259// at all) in error.(*googleapi.Error).Header. Use
84260// googleapi.IsNotModified to check whether the returned error was
84261// because http.StatusNotModified was returned.
84262func (c *ZoneOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
84263	gensupport.SetOptions(c.urlParams_, opts...)
84264	res, err := c.doRequest("json")
84265	if res != nil && res.StatusCode == http.StatusNotModified {
84266		if res.Body != nil {
84267			res.Body.Close()
84268		}
84269		return nil, &googleapi.Error{
84270			Code:   res.StatusCode,
84271			Header: res.Header,
84272		}
84273	}
84274	if err != nil {
84275		return nil, err
84276	}
84277	defer googleapi.CloseBody(res)
84278	if err := googleapi.CheckResponse(res); err != nil {
84279		return nil, err
84280	}
84281	ret := &OperationList{
84282		ServerResponse: googleapi.ServerResponse{
84283			Header:         res.Header,
84284			HTTPStatusCode: res.StatusCode,
84285		},
84286	}
84287	target := &ret
84288	if err := gensupport.DecodeResponse(target, res); err != nil {
84289		return nil, err
84290	}
84291	return ret, nil
84292	// {
84293	//   "description": "Retrieves a list of Operation resources contained within the specified zone.",
84294	//   "httpMethod": "GET",
84295	//   "id": "compute.zoneOperations.list",
84296	//   "parameterOrder": [
84297	//     "project",
84298	//     "zone"
84299	//   ],
84300	//   "parameters": {
84301	//     "filter": {
84302	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
84303	//       "location": "query",
84304	//       "type": "string"
84305	//     },
84306	//     "maxResults": {
84307	//       "default": "500",
84308	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
84309	//       "format": "uint32",
84310	//       "location": "query",
84311	//       "minimum": "0",
84312	//       "type": "integer"
84313	//     },
84314	//     "orderBy": {
84315	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
84316	//       "location": "query",
84317	//       "type": "string"
84318	//     },
84319	//     "pageToken": {
84320	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
84321	//       "location": "query",
84322	//       "type": "string"
84323	//     },
84324	//     "project": {
84325	//       "description": "Project ID for this request.",
84326	//       "location": "path",
84327	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84328	//       "required": true,
84329	//       "type": "string"
84330	//     },
84331	//     "zone": {
84332	//       "description": "Name of the zone for request.",
84333	//       "location": "path",
84334	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84335	//       "required": true,
84336	//       "type": "string"
84337	//     }
84338	//   },
84339	//   "path": "{project}/zones/{zone}/operations",
84340	//   "response": {
84341	//     "$ref": "OperationList"
84342	//   },
84343	//   "scopes": [
84344	//     "https://www.googleapis.com/auth/cloud-platform",
84345	//     "https://www.googleapis.com/auth/compute",
84346	//     "https://www.googleapis.com/auth/compute.readonly"
84347	//   ]
84348	// }
84349
84350}
84351
84352// Pages invokes f for each page of results.
84353// A non-nil error returned from f will halt the iteration.
84354// The provided context supersedes any context provided to the Context method.
84355func (c *ZoneOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
84356	c.ctx_ = ctx
84357	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
84358	for {
84359		x, err := c.Do()
84360		if err != nil {
84361			return err
84362		}
84363		if err := f(x); err != nil {
84364			return err
84365		}
84366		if x.NextPageToken == "" {
84367			return nil
84368		}
84369		c.PageToken(x.NextPageToken)
84370	}
84371}
84372
84373// method id "compute.zones.get":
84374
84375type ZonesGetCall struct {
84376	s            *Service
84377	project      string
84378	zone         string
84379	urlParams_   gensupport.URLParams
84380	ifNoneMatch_ string
84381	ctx_         context.Context
84382	header_      http.Header
84383}
84384
84385// Get: Returns the specified Zone resource. Gets a list of available
84386// zones by making a list() request.
84387// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/get
84388func (r *ZonesService) Get(project string, zone string) *ZonesGetCall {
84389	c := &ZonesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84390	c.project = project
84391	c.zone = zone
84392	return c
84393}
84394
84395// Fields allows partial responses to be retrieved. See
84396// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84397// for more information.
84398func (c *ZonesGetCall) Fields(s ...googleapi.Field) *ZonesGetCall {
84399	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84400	return c
84401}
84402
84403// IfNoneMatch sets the optional parameter which makes the operation
84404// fail if the object's ETag matches the given value. This is useful for
84405// getting updates only after the object has changed since the last
84406// request. Use googleapi.IsNotModified to check whether the response
84407// error from Do is the result of In-None-Match.
84408func (c *ZonesGetCall) IfNoneMatch(entityTag string) *ZonesGetCall {
84409	c.ifNoneMatch_ = entityTag
84410	return c
84411}
84412
84413// Context sets the context to be used in this call's Do method. Any
84414// pending HTTP request will be aborted if the provided context is
84415// canceled.
84416func (c *ZonesGetCall) Context(ctx context.Context) *ZonesGetCall {
84417	c.ctx_ = ctx
84418	return c
84419}
84420
84421// Header returns an http.Header that can be modified by the caller to
84422// add HTTP headers to the request.
84423func (c *ZonesGetCall) Header() http.Header {
84424	if c.header_ == nil {
84425		c.header_ = make(http.Header)
84426	}
84427	return c.header_
84428}
84429
84430func (c *ZonesGetCall) doRequest(alt string) (*http.Response, error) {
84431	reqHeaders := make(http.Header)
84432	for k, v := range c.header_ {
84433		reqHeaders[k] = v
84434	}
84435	reqHeaders.Set("User-Agent", c.s.userAgent())
84436	if c.ifNoneMatch_ != "" {
84437		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
84438	}
84439	var body io.Reader = nil
84440	c.urlParams_.Set("alt", alt)
84441	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}")
84442	urls += "?" + c.urlParams_.Encode()
84443	req, _ := http.NewRequest("GET", urls, body)
84444	req.Header = reqHeaders
84445	googleapi.Expand(req.URL, map[string]string{
84446		"project": c.project,
84447		"zone":    c.zone,
84448	})
84449	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84450}
84451
84452// Do executes the "compute.zones.get" call.
84453// Exactly one of *Zone or error will be non-nil. Any non-2xx status
84454// code is an error. Response headers are in either
84455// *Zone.ServerResponse.Header or (if a response was returned at all) in
84456// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
84457// whether the returned error was because http.StatusNotModified was
84458// returned.
84459func (c *ZonesGetCall) Do(opts ...googleapi.CallOption) (*Zone, error) {
84460	gensupport.SetOptions(c.urlParams_, opts...)
84461	res, err := c.doRequest("json")
84462	if res != nil && res.StatusCode == http.StatusNotModified {
84463		if res.Body != nil {
84464			res.Body.Close()
84465		}
84466		return nil, &googleapi.Error{
84467			Code:   res.StatusCode,
84468			Header: res.Header,
84469		}
84470	}
84471	if err != nil {
84472		return nil, err
84473	}
84474	defer googleapi.CloseBody(res)
84475	if err := googleapi.CheckResponse(res); err != nil {
84476		return nil, err
84477	}
84478	ret := &Zone{
84479		ServerResponse: googleapi.ServerResponse{
84480			Header:         res.Header,
84481			HTTPStatusCode: res.StatusCode,
84482		},
84483	}
84484	target := &ret
84485	if err := gensupport.DecodeResponse(target, res); err != nil {
84486		return nil, err
84487	}
84488	return ret, nil
84489	// {
84490	//   "description": "Returns the specified Zone resource. Gets a list of available zones by making a list() request.",
84491	//   "httpMethod": "GET",
84492	//   "id": "compute.zones.get",
84493	//   "parameterOrder": [
84494	//     "project",
84495	//     "zone"
84496	//   ],
84497	//   "parameters": {
84498	//     "project": {
84499	//       "description": "Project ID for this request.",
84500	//       "location": "path",
84501	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84502	//       "required": true,
84503	//       "type": "string"
84504	//     },
84505	//     "zone": {
84506	//       "description": "Name of the zone resource to return.",
84507	//       "location": "path",
84508	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84509	//       "required": true,
84510	//       "type": "string"
84511	//     }
84512	//   },
84513	//   "path": "{project}/zones/{zone}",
84514	//   "response": {
84515	//     "$ref": "Zone"
84516	//   },
84517	//   "scopes": [
84518	//     "https://www.googleapis.com/auth/cloud-platform",
84519	//     "https://www.googleapis.com/auth/compute",
84520	//     "https://www.googleapis.com/auth/compute.readonly"
84521	//   ]
84522	// }
84523
84524}
84525
84526// method id "compute.zones.list":
84527
84528type ZonesListCall struct {
84529	s            *Service
84530	project      string
84531	urlParams_   gensupport.URLParams
84532	ifNoneMatch_ string
84533	ctx_         context.Context
84534	header_      http.Header
84535}
84536
84537// List: Retrieves the list of Zone resources available to the specified
84538// project.
84539// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/list
84540func (r *ZonesService) List(project string) *ZonesListCall {
84541	c := &ZonesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84542	c.project = project
84543	return c
84544}
84545
84546// Filter sets the optional parameter "filter": A filter expression that
84547// filters resources listed in the response. The expression must specify
84548// the field name, a comparison operator, and the value that you want to
84549// use for filtering. The value must be a string, a number, or a
84550// boolean. The comparison operator must be either =, !=, >, or <.
84551//
84552// For example, if you are filtering Compute Engine instances, you can
84553// exclude instances named example-instance by specifying name !=
84554// example-instance.
84555//
84556// You can also filter nested fields. For example, you could specify
84557// scheduling.automaticRestart = false to include instances only if they
84558// are not scheduled for automatic restarts. You can use filtering on
84559// nested fields to filter based on resource labels.
84560//
84561// To filter on multiple expressions, provide each separate expression
84562// within parentheses. For example, (scheduling.automaticRestart = true)
84563// (cpuPlatform = "Intel Skylake"). By default, each expression is an
84564// AND expression. However, you can include AND and OR expressions
84565// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
84566// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
84567// true).
84568func (c *ZonesListCall) Filter(filter string) *ZonesListCall {
84569	c.urlParams_.Set("filter", filter)
84570	return c
84571}
84572
84573// MaxResults sets the optional parameter "maxResults": The maximum
84574// number of results per page that should be returned. If the number of
84575// available results is larger than maxResults, Compute Engine returns a
84576// nextPageToken that can be used to get the next page of results in
84577// subsequent list requests. Acceptable values are 0 to 500, inclusive.
84578// (Default: 500)
84579func (c *ZonesListCall) MaxResults(maxResults int64) *ZonesListCall {
84580	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
84581	return c
84582}
84583
84584// OrderBy sets the optional parameter "orderBy": Sorts list results by
84585// a certain order. By default, results are returned in alphanumerical
84586// order based on the resource name.
84587//
84588// You can also sort results in descending order based on the creation
84589// timestamp using orderBy="creationTimestamp desc". This sorts results
84590// based on the creationTimestamp field in reverse chronological order
84591// (newest result first). Use this to sort resources like operations so
84592// that the newest operation is returned first.
84593//
84594// Currently, only sorting by name or creationTimestamp desc is
84595// supported.
84596func (c *ZonesListCall) OrderBy(orderBy string) *ZonesListCall {
84597	c.urlParams_.Set("orderBy", orderBy)
84598	return c
84599}
84600
84601// PageToken sets the optional parameter "pageToken": Specifies a page
84602// token to use. Set pageToken to the nextPageToken returned by a
84603// previous list request to get the next page of results.
84604func (c *ZonesListCall) PageToken(pageToken string) *ZonesListCall {
84605	c.urlParams_.Set("pageToken", pageToken)
84606	return c
84607}
84608
84609// Fields allows partial responses to be retrieved. See
84610// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84611// for more information.
84612func (c *ZonesListCall) Fields(s ...googleapi.Field) *ZonesListCall {
84613	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84614	return c
84615}
84616
84617// IfNoneMatch sets the optional parameter which makes the operation
84618// fail if the object's ETag matches the given value. This is useful for
84619// getting updates only after the object has changed since the last
84620// request. Use googleapi.IsNotModified to check whether the response
84621// error from Do is the result of In-None-Match.
84622func (c *ZonesListCall) IfNoneMatch(entityTag string) *ZonesListCall {
84623	c.ifNoneMatch_ = entityTag
84624	return c
84625}
84626
84627// Context sets the context to be used in this call's Do method. Any
84628// pending HTTP request will be aborted if the provided context is
84629// canceled.
84630func (c *ZonesListCall) Context(ctx context.Context) *ZonesListCall {
84631	c.ctx_ = ctx
84632	return c
84633}
84634
84635// Header returns an http.Header that can be modified by the caller to
84636// add HTTP headers to the request.
84637func (c *ZonesListCall) Header() http.Header {
84638	if c.header_ == nil {
84639		c.header_ = make(http.Header)
84640	}
84641	return c.header_
84642}
84643
84644func (c *ZonesListCall) doRequest(alt string) (*http.Response, error) {
84645	reqHeaders := make(http.Header)
84646	for k, v := range c.header_ {
84647		reqHeaders[k] = v
84648	}
84649	reqHeaders.Set("User-Agent", c.s.userAgent())
84650	if c.ifNoneMatch_ != "" {
84651		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
84652	}
84653	var body io.Reader = nil
84654	c.urlParams_.Set("alt", alt)
84655	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones")
84656	urls += "?" + c.urlParams_.Encode()
84657	req, _ := http.NewRequest("GET", urls, body)
84658	req.Header = reqHeaders
84659	googleapi.Expand(req.URL, map[string]string{
84660		"project": c.project,
84661	})
84662	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84663}
84664
84665// Do executes the "compute.zones.list" call.
84666// Exactly one of *ZoneList or error will be non-nil. Any non-2xx status
84667// code is an error. Response headers are in either
84668// *ZoneList.ServerResponse.Header or (if a response was returned at
84669// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84670// to check whether the returned error was because
84671// http.StatusNotModified was returned.
84672func (c *ZonesListCall) Do(opts ...googleapi.CallOption) (*ZoneList, error) {
84673	gensupport.SetOptions(c.urlParams_, opts...)
84674	res, err := c.doRequest("json")
84675	if res != nil && res.StatusCode == http.StatusNotModified {
84676		if res.Body != nil {
84677			res.Body.Close()
84678		}
84679		return nil, &googleapi.Error{
84680			Code:   res.StatusCode,
84681			Header: res.Header,
84682		}
84683	}
84684	if err != nil {
84685		return nil, err
84686	}
84687	defer googleapi.CloseBody(res)
84688	if err := googleapi.CheckResponse(res); err != nil {
84689		return nil, err
84690	}
84691	ret := &ZoneList{
84692		ServerResponse: googleapi.ServerResponse{
84693			Header:         res.Header,
84694			HTTPStatusCode: res.StatusCode,
84695		},
84696	}
84697	target := &ret
84698	if err := gensupport.DecodeResponse(target, res); err != nil {
84699		return nil, err
84700	}
84701	return ret, nil
84702	// {
84703	//   "description": "Retrieves the list of Zone resources available to the specified project.",
84704	//   "httpMethod": "GET",
84705	//   "id": "compute.zones.list",
84706	//   "parameterOrder": [
84707	//     "project"
84708	//   ],
84709	//   "parameters": {
84710	//     "filter": {
84711	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
84712	//       "location": "query",
84713	//       "type": "string"
84714	//     },
84715	//     "maxResults": {
84716	//       "default": "500",
84717	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
84718	//       "format": "uint32",
84719	//       "location": "query",
84720	//       "minimum": "0",
84721	//       "type": "integer"
84722	//     },
84723	//     "orderBy": {
84724	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
84725	//       "location": "query",
84726	//       "type": "string"
84727	//     },
84728	//     "pageToken": {
84729	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
84730	//       "location": "query",
84731	//       "type": "string"
84732	//     },
84733	//     "project": {
84734	//       "description": "Project ID for this request.",
84735	//       "location": "path",
84736	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84737	//       "required": true,
84738	//       "type": "string"
84739	//     }
84740	//   },
84741	//   "path": "{project}/zones",
84742	//   "response": {
84743	//     "$ref": "ZoneList"
84744	//   },
84745	//   "scopes": [
84746	//     "https://www.googleapis.com/auth/cloud-platform",
84747	//     "https://www.googleapis.com/auth/compute",
84748	//     "https://www.googleapis.com/auth/compute.readonly"
84749	//   ]
84750	// }
84751
84752}
84753
84754// Pages invokes f for each page of results.
84755// A non-nil error returned from f will halt the iteration.
84756// The provided context supersedes any context provided to the Context method.
84757func (c *ZonesListCall) Pages(ctx context.Context, f func(*ZoneList) error) error {
84758	c.ctx_ = ctx
84759	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
84760	for {
84761		x, err := c.Do()
84762		if err != nil {
84763			return err
84764		}
84765		if err := f(x); err != nil {
84766			return err
84767		}
84768		if x.NextPageToken == "" {
84769			return nil
84770		}
84771		c.PageToken(x.NextPageToken)
84772	}
84773}
84774