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.Licenses = NewLicensesService(s)
98	s.MachineTypes = NewMachineTypesService(s)
99	s.Networks = NewNetworksService(s)
100	s.Projects = NewProjectsService(s)
101	s.RegionAutoscalers = NewRegionAutoscalersService(s)
102	s.RegionBackendServices = NewRegionBackendServicesService(s)
103	s.RegionCommitments = NewRegionCommitmentsService(s)
104	s.RegionInstanceGroupManagers = NewRegionInstanceGroupManagersService(s)
105	s.RegionInstanceGroups = NewRegionInstanceGroupsService(s)
106	s.RegionOperations = NewRegionOperationsService(s)
107	s.Regions = NewRegionsService(s)
108	s.Routers = NewRoutersService(s)
109	s.Routes = NewRoutesService(s)
110	s.Snapshots = NewSnapshotsService(s)
111	s.SslCertificates = NewSslCertificatesService(s)
112	s.Subnetworks = NewSubnetworksService(s)
113	s.TargetHttpProxies = NewTargetHttpProxiesService(s)
114	s.TargetHttpsProxies = NewTargetHttpsProxiesService(s)
115	s.TargetInstances = NewTargetInstancesService(s)
116	s.TargetPools = NewTargetPoolsService(s)
117	s.TargetSslProxies = NewTargetSslProxiesService(s)
118	s.TargetTcpProxies = NewTargetTcpProxiesService(s)
119	s.TargetVpnGateways = NewTargetVpnGatewaysService(s)
120	s.UrlMaps = NewUrlMapsService(s)
121	s.VpnTunnels = NewVpnTunnelsService(s)
122	s.ZoneOperations = NewZoneOperationsService(s)
123	s.Zones = NewZonesService(s)
124	return s, nil
125}
126
127type Service struct {
128	client    *http.Client
129	BasePath  string // API endpoint base URL
130	UserAgent string // optional additional User-Agent fragment
131
132	AcceleratorTypes *AcceleratorTypesService
133
134	Addresses *AddressesService
135
136	Autoscalers *AutoscalersService
137
138	BackendBuckets *BackendBucketsService
139
140	BackendServices *BackendServicesService
141
142	DiskTypes *DiskTypesService
143
144	Disks *DisksService
145
146	Firewalls *FirewallsService
147
148	ForwardingRules *ForwardingRulesService
149
150	GlobalAddresses *GlobalAddressesService
151
152	GlobalForwardingRules *GlobalForwardingRulesService
153
154	GlobalOperations *GlobalOperationsService
155
156	HealthChecks *HealthChecksService
157
158	HttpHealthChecks *HttpHealthChecksService
159
160	HttpsHealthChecks *HttpsHealthChecksService
161
162	Images *ImagesService
163
164	InstanceGroupManagers *InstanceGroupManagersService
165
166	InstanceGroups *InstanceGroupsService
167
168	InstanceTemplates *InstanceTemplatesService
169
170	Instances *InstancesService
171
172	InterconnectAttachments *InterconnectAttachmentsService
173
174	InterconnectLocations *InterconnectLocationsService
175
176	Interconnects *InterconnectsService
177
178	Licenses *LicensesService
179
180	MachineTypes *MachineTypesService
181
182	Networks *NetworksService
183
184	Projects *ProjectsService
185
186	RegionAutoscalers *RegionAutoscalersService
187
188	RegionBackendServices *RegionBackendServicesService
189
190	RegionCommitments *RegionCommitmentsService
191
192	RegionInstanceGroupManagers *RegionInstanceGroupManagersService
193
194	RegionInstanceGroups *RegionInstanceGroupsService
195
196	RegionOperations *RegionOperationsService
197
198	Regions *RegionsService
199
200	Routers *RoutersService
201
202	Routes *RoutesService
203
204	Snapshots *SnapshotsService
205
206	SslCertificates *SslCertificatesService
207
208	Subnetworks *SubnetworksService
209
210	TargetHttpProxies *TargetHttpProxiesService
211
212	TargetHttpsProxies *TargetHttpsProxiesService
213
214	TargetInstances *TargetInstancesService
215
216	TargetPools *TargetPoolsService
217
218	TargetSslProxies *TargetSslProxiesService
219
220	TargetTcpProxies *TargetTcpProxiesService
221
222	TargetVpnGateways *TargetVpnGatewaysService
223
224	UrlMaps *UrlMapsService
225
226	VpnTunnels *VpnTunnelsService
227
228	ZoneOperations *ZoneOperationsService
229
230	Zones *ZonesService
231}
232
233func (s *Service) userAgent() string {
234	if s.UserAgent == "" {
235		return googleapi.UserAgent
236	}
237	return googleapi.UserAgent + " " + s.UserAgent
238}
239
240func NewAcceleratorTypesService(s *Service) *AcceleratorTypesService {
241	rs := &AcceleratorTypesService{s: s}
242	return rs
243}
244
245type AcceleratorTypesService struct {
246	s *Service
247}
248
249func NewAddressesService(s *Service) *AddressesService {
250	rs := &AddressesService{s: s}
251	return rs
252}
253
254type AddressesService struct {
255	s *Service
256}
257
258func NewAutoscalersService(s *Service) *AutoscalersService {
259	rs := &AutoscalersService{s: s}
260	return rs
261}
262
263type AutoscalersService struct {
264	s *Service
265}
266
267func NewBackendBucketsService(s *Service) *BackendBucketsService {
268	rs := &BackendBucketsService{s: s}
269	return rs
270}
271
272type BackendBucketsService struct {
273	s *Service
274}
275
276func NewBackendServicesService(s *Service) *BackendServicesService {
277	rs := &BackendServicesService{s: s}
278	return rs
279}
280
281type BackendServicesService struct {
282	s *Service
283}
284
285func NewDiskTypesService(s *Service) *DiskTypesService {
286	rs := &DiskTypesService{s: s}
287	return rs
288}
289
290type DiskTypesService struct {
291	s *Service
292}
293
294func NewDisksService(s *Service) *DisksService {
295	rs := &DisksService{s: s}
296	return rs
297}
298
299type DisksService struct {
300	s *Service
301}
302
303func NewFirewallsService(s *Service) *FirewallsService {
304	rs := &FirewallsService{s: s}
305	return rs
306}
307
308type FirewallsService struct {
309	s *Service
310}
311
312func NewForwardingRulesService(s *Service) *ForwardingRulesService {
313	rs := &ForwardingRulesService{s: s}
314	return rs
315}
316
317type ForwardingRulesService struct {
318	s *Service
319}
320
321func NewGlobalAddressesService(s *Service) *GlobalAddressesService {
322	rs := &GlobalAddressesService{s: s}
323	return rs
324}
325
326type GlobalAddressesService struct {
327	s *Service
328}
329
330func NewGlobalForwardingRulesService(s *Service) *GlobalForwardingRulesService {
331	rs := &GlobalForwardingRulesService{s: s}
332	return rs
333}
334
335type GlobalForwardingRulesService struct {
336	s *Service
337}
338
339func NewGlobalOperationsService(s *Service) *GlobalOperationsService {
340	rs := &GlobalOperationsService{s: s}
341	return rs
342}
343
344type GlobalOperationsService struct {
345	s *Service
346}
347
348func NewHealthChecksService(s *Service) *HealthChecksService {
349	rs := &HealthChecksService{s: s}
350	return rs
351}
352
353type HealthChecksService struct {
354	s *Service
355}
356
357func NewHttpHealthChecksService(s *Service) *HttpHealthChecksService {
358	rs := &HttpHealthChecksService{s: s}
359	return rs
360}
361
362type HttpHealthChecksService struct {
363	s *Service
364}
365
366func NewHttpsHealthChecksService(s *Service) *HttpsHealthChecksService {
367	rs := &HttpsHealthChecksService{s: s}
368	return rs
369}
370
371type HttpsHealthChecksService struct {
372	s *Service
373}
374
375func NewImagesService(s *Service) *ImagesService {
376	rs := &ImagesService{s: s}
377	return rs
378}
379
380type ImagesService struct {
381	s *Service
382}
383
384func NewInstanceGroupManagersService(s *Service) *InstanceGroupManagersService {
385	rs := &InstanceGroupManagersService{s: s}
386	return rs
387}
388
389type InstanceGroupManagersService struct {
390	s *Service
391}
392
393func NewInstanceGroupsService(s *Service) *InstanceGroupsService {
394	rs := &InstanceGroupsService{s: s}
395	return rs
396}
397
398type InstanceGroupsService struct {
399	s *Service
400}
401
402func NewInstanceTemplatesService(s *Service) *InstanceTemplatesService {
403	rs := &InstanceTemplatesService{s: s}
404	return rs
405}
406
407type InstanceTemplatesService struct {
408	s *Service
409}
410
411func NewInstancesService(s *Service) *InstancesService {
412	rs := &InstancesService{s: s}
413	return rs
414}
415
416type InstancesService struct {
417	s *Service
418}
419
420func NewInterconnectAttachmentsService(s *Service) *InterconnectAttachmentsService {
421	rs := &InterconnectAttachmentsService{s: s}
422	return rs
423}
424
425type InterconnectAttachmentsService struct {
426	s *Service
427}
428
429func NewInterconnectLocationsService(s *Service) *InterconnectLocationsService {
430	rs := &InterconnectLocationsService{s: s}
431	return rs
432}
433
434type InterconnectLocationsService struct {
435	s *Service
436}
437
438func NewInterconnectsService(s *Service) *InterconnectsService {
439	rs := &InterconnectsService{s: s}
440	return rs
441}
442
443type InterconnectsService struct {
444	s *Service
445}
446
447func NewLicensesService(s *Service) *LicensesService {
448	rs := &LicensesService{s: s}
449	return rs
450}
451
452type LicensesService struct {
453	s *Service
454}
455
456func NewMachineTypesService(s *Service) *MachineTypesService {
457	rs := &MachineTypesService{s: s}
458	return rs
459}
460
461type MachineTypesService struct {
462	s *Service
463}
464
465func NewNetworksService(s *Service) *NetworksService {
466	rs := &NetworksService{s: s}
467	return rs
468}
469
470type NetworksService struct {
471	s *Service
472}
473
474func NewProjectsService(s *Service) *ProjectsService {
475	rs := &ProjectsService{s: s}
476	return rs
477}
478
479type ProjectsService struct {
480	s *Service
481}
482
483func NewRegionAutoscalersService(s *Service) *RegionAutoscalersService {
484	rs := &RegionAutoscalersService{s: s}
485	return rs
486}
487
488type RegionAutoscalersService struct {
489	s *Service
490}
491
492func NewRegionBackendServicesService(s *Service) *RegionBackendServicesService {
493	rs := &RegionBackendServicesService{s: s}
494	return rs
495}
496
497type RegionBackendServicesService struct {
498	s *Service
499}
500
501func NewRegionCommitmentsService(s *Service) *RegionCommitmentsService {
502	rs := &RegionCommitmentsService{s: s}
503	return rs
504}
505
506type RegionCommitmentsService struct {
507	s *Service
508}
509
510func NewRegionInstanceGroupManagersService(s *Service) *RegionInstanceGroupManagersService {
511	rs := &RegionInstanceGroupManagersService{s: s}
512	return rs
513}
514
515type RegionInstanceGroupManagersService struct {
516	s *Service
517}
518
519func NewRegionInstanceGroupsService(s *Service) *RegionInstanceGroupsService {
520	rs := &RegionInstanceGroupsService{s: s}
521	return rs
522}
523
524type RegionInstanceGroupsService struct {
525	s *Service
526}
527
528func NewRegionOperationsService(s *Service) *RegionOperationsService {
529	rs := &RegionOperationsService{s: s}
530	return rs
531}
532
533type RegionOperationsService struct {
534	s *Service
535}
536
537func NewRegionsService(s *Service) *RegionsService {
538	rs := &RegionsService{s: s}
539	return rs
540}
541
542type RegionsService struct {
543	s *Service
544}
545
546func NewRoutersService(s *Service) *RoutersService {
547	rs := &RoutersService{s: s}
548	return rs
549}
550
551type RoutersService struct {
552	s *Service
553}
554
555func NewRoutesService(s *Service) *RoutesService {
556	rs := &RoutesService{s: s}
557	return rs
558}
559
560type RoutesService struct {
561	s *Service
562}
563
564func NewSnapshotsService(s *Service) *SnapshotsService {
565	rs := &SnapshotsService{s: s}
566	return rs
567}
568
569type SnapshotsService struct {
570	s *Service
571}
572
573func NewSslCertificatesService(s *Service) *SslCertificatesService {
574	rs := &SslCertificatesService{s: s}
575	return rs
576}
577
578type SslCertificatesService struct {
579	s *Service
580}
581
582func NewSubnetworksService(s *Service) *SubnetworksService {
583	rs := &SubnetworksService{s: s}
584	return rs
585}
586
587type SubnetworksService struct {
588	s *Service
589}
590
591func NewTargetHttpProxiesService(s *Service) *TargetHttpProxiesService {
592	rs := &TargetHttpProxiesService{s: s}
593	return rs
594}
595
596type TargetHttpProxiesService struct {
597	s *Service
598}
599
600func NewTargetHttpsProxiesService(s *Service) *TargetHttpsProxiesService {
601	rs := &TargetHttpsProxiesService{s: s}
602	return rs
603}
604
605type TargetHttpsProxiesService struct {
606	s *Service
607}
608
609func NewTargetInstancesService(s *Service) *TargetInstancesService {
610	rs := &TargetInstancesService{s: s}
611	return rs
612}
613
614type TargetInstancesService struct {
615	s *Service
616}
617
618func NewTargetPoolsService(s *Service) *TargetPoolsService {
619	rs := &TargetPoolsService{s: s}
620	return rs
621}
622
623type TargetPoolsService struct {
624	s *Service
625}
626
627func NewTargetSslProxiesService(s *Service) *TargetSslProxiesService {
628	rs := &TargetSslProxiesService{s: s}
629	return rs
630}
631
632type TargetSslProxiesService struct {
633	s *Service
634}
635
636func NewTargetTcpProxiesService(s *Service) *TargetTcpProxiesService {
637	rs := &TargetTcpProxiesService{s: s}
638	return rs
639}
640
641type TargetTcpProxiesService struct {
642	s *Service
643}
644
645func NewTargetVpnGatewaysService(s *Service) *TargetVpnGatewaysService {
646	rs := &TargetVpnGatewaysService{s: s}
647	return rs
648}
649
650type TargetVpnGatewaysService struct {
651	s *Service
652}
653
654func NewUrlMapsService(s *Service) *UrlMapsService {
655	rs := &UrlMapsService{s: s}
656	return rs
657}
658
659type UrlMapsService struct {
660	s *Service
661}
662
663func NewVpnTunnelsService(s *Service) *VpnTunnelsService {
664	rs := &VpnTunnelsService{s: s}
665	return rs
666}
667
668type VpnTunnelsService struct {
669	s *Service
670}
671
672func NewZoneOperationsService(s *Service) *ZoneOperationsService {
673	rs := &ZoneOperationsService{s: s}
674	return rs
675}
676
677type ZoneOperationsService struct {
678	s *Service
679}
680
681func NewZonesService(s *Service) *ZonesService {
682	rs := &ZonesService{s: s}
683	return rs
684}
685
686type ZonesService struct {
687	s *Service
688}
689
690// AcceleratorConfig: A specification of the type and number of
691// accelerator cards attached to the instance.
692type AcceleratorConfig struct {
693	// AcceleratorCount: The number of the guest accelerator cards exposed
694	// to this instance.
695	AcceleratorCount int64 `json:"acceleratorCount,omitempty"`
696
697	// AcceleratorType: Full or partial URL of the accelerator type resource
698	// to attach to this instance. If you are creating an instance template,
699	// specify only the accelerator name.
700	AcceleratorType string `json:"acceleratorType,omitempty"`
701
702	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
703	// unconditionally include in API requests. By default, fields with
704	// empty values are omitted from API requests. However, any non-pointer,
705	// non-interface field appearing in ForceSendFields will be sent to the
706	// server regardless of whether the field is empty or not. This may be
707	// used to include empty fields in Patch requests.
708	ForceSendFields []string `json:"-"`
709
710	// NullFields is a list of field names (e.g. "AcceleratorCount") to
711	// include in API requests with the JSON null value. By default, fields
712	// with empty values are omitted from API requests. However, any field
713	// with an empty value appearing in NullFields will be sent to the
714	// server as null. It is an error if a field in this list has a
715	// non-empty value. This may be used to include null fields in Patch
716	// requests.
717	NullFields []string `json:"-"`
718}
719
720func (s *AcceleratorConfig) MarshalJSON() ([]byte, error) {
721	type NoMethod AcceleratorConfig
722	raw := NoMethod(*s)
723	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
724}
725
726// AcceleratorType: An Accelerator Type resource. (== resource_for
727// beta.acceleratorTypes ==) (== resource_for v1.acceleratorTypes ==)
728type AcceleratorType struct {
729	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
730	// format.
731	CreationTimestamp string `json:"creationTimestamp,omitempty"`
732
733	// Deprecated: [Output Only] The deprecation status associated with this
734	// accelerator type.
735	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
736
737	// Description: [Output Only] An optional textual description of the
738	// resource.
739	Description string `json:"description,omitempty"`
740
741	// Id: [Output Only] The unique identifier for the resource. This
742	// identifier is defined by the server.
743	Id uint64 `json:"id,omitempty,string"`
744
745	// Kind: [Output Only] The type of the resource. Always
746	// compute#acceleratorType for accelerator types.
747	Kind string `json:"kind,omitempty"`
748
749	// MaximumCardsPerInstance: [Output Only] Maximum accelerator cards
750	// allowed per instance.
751	MaximumCardsPerInstance int64 `json:"maximumCardsPerInstance,omitempty"`
752
753	// Name: [Output Only] Name of the resource.
754	Name string `json:"name,omitempty"`
755
756	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
757	// resource.
758	SelfLink string `json:"selfLink,omitempty"`
759
760	// Zone: [Output Only] The name of the zone where the accelerator type
761	// resides, such as us-central1-a. You must specify this field as part
762	// of the HTTP request URL. It is not settable as a field in the request
763	// body.
764	Zone string `json:"zone,omitempty"`
765
766	// ServerResponse contains the HTTP response code and headers from the
767	// server.
768	googleapi.ServerResponse `json:"-"`
769
770	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
771	// to unconditionally include in API requests. By default, fields with
772	// empty values are omitted from API requests. However, any non-pointer,
773	// non-interface field appearing in ForceSendFields will be sent to the
774	// server regardless of whether the field is empty or not. This may be
775	// used to include empty fields in Patch requests.
776	ForceSendFields []string `json:"-"`
777
778	// NullFields is a list of field names (e.g. "CreationTimestamp") to
779	// include in API requests with the JSON null value. By default, fields
780	// with empty values are omitted from API requests. However, any field
781	// with an empty value appearing in NullFields will be sent to the
782	// server as null. It is an error if a field in this list has a
783	// non-empty value. This may be used to include null fields in Patch
784	// requests.
785	NullFields []string `json:"-"`
786}
787
788func (s *AcceleratorType) MarshalJSON() ([]byte, error) {
789	type NoMethod AcceleratorType
790	raw := NoMethod(*s)
791	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
792}
793
794type AcceleratorTypeAggregatedList struct {
795	// Id: [Output Only] Unique identifier for the resource; defined by the
796	// server.
797	Id string `json:"id,omitempty"`
798
799	// Items: A list of AcceleratorTypesScopedList resources.
800	Items map[string]AcceleratorTypesScopedList `json:"items,omitempty"`
801
802	// Kind: [Output Only] Type of resource. Always
803	// compute#acceleratorTypeAggregatedList for aggregated lists of
804	// accelerator types.
805	Kind string `json:"kind,omitempty"`
806
807	// NextPageToken: [Output Only] This token allows you to get the next
808	// page of results for list requests. If the number of results is larger
809	// than maxResults, use the nextPageToken as a value for the query
810	// parameter pageToken in the next list request. Subsequent list
811	// requests will have their own nextPageToken to continue paging through
812	// the results.
813	NextPageToken string `json:"nextPageToken,omitempty"`
814
815	// SelfLink: [Output Only] Server-defined URL for this resource.
816	SelfLink string `json:"selfLink,omitempty"`
817
818	// Warning: [Output Only] Informational warning message.
819	Warning *AcceleratorTypeAggregatedListWarning `json:"warning,omitempty"`
820
821	// ServerResponse contains the HTTP response code and headers from the
822	// server.
823	googleapi.ServerResponse `json:"-"`
824
825	// ForceSendFields is a list of field names (e.g. "Id") to
826	// unconditionally include in API requests. By default, fields with
827	// empty values are omitted from API requests. However, any non-pointer,
828	// non-interface field appearing in ForceSendFields will be sent to the
829	// server regardless of whether the field is empty or not. This may be
830	// used to include empty fields in Patch requests.
831	ForceSendFields []string `json:"-"`
832
833	// NullFields is a list of field names (e.g. "Id") to include in API
834	// requests with the JSON null value. By default, fields with empty
835	// values are omitted from API requests. However, any field with an
836	// empty value appearing in NullFields will be sent to the server as
837	// null. It is an error if a field in this list has a non-empty value.
838	// This may be used to include null fields in Patch requests.
839	NullFields []string `json:"-"`
840}
841
842func (s *AcceleratorTypeAggregatedList) MarshalJSON() ([]byte, error) {
843	type NoMethod AcceleratorTypeAggregatedList
844	raw := NoMethod(*s)
845	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
846}
847
848// AcceleratorTypeAggregatedListWarning: [Output Only] Informational
849// warning message.
850type AcceleratorTypeAggregatedListWarning struct {
851	// Code: [Output Only] A warning code, if applicable. For example,
852	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
853	// the response.
854	//
855	// Possible values:
856	//   "CLEANUP_FAILED"
857	//   "DEPRECATED_RESOURCE_USED"
858	//   "DEPRECATED_TYPE_USED"
859	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
860	//   "EXPERIMENTAL_TYPE_USED"
861	//   "EXTERNAL_API_WARNING"
862	//   "FIELD_VALUE_OVERRIDEN"
863	//   "INJECTED_KERNELS_DEPRECATED"
864	//   "MISSING_TYPE_DEPENDENCY"
865	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
866	//   "NEXT_HOP_CANNOT_IP_FORWARD"
867	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
868	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
869	//   "NEXT_HOP_NOT_RUNNING"
870	//   "NOT_CRITICAL_ERROR"
871	//   "NO_RESULTS_ON_PAGE"
872	//   "REQUIRED_TOS_AGREEMENT"
873	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
874	//   "RESOURCE_NOT_DELETED"
875	//   "SCHEMA_VALIDATION_IGNORED"
876	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
877	//   "UNDECLARED_PROPERTIES"
878	//   "UNREACHABLE"
879	Code string `json:"code,omitempty"`
880
881	// Data: [Output Only] Metadata about this warning in key: value format.
882	// For example:
883	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
884	Data []*AcceleratorTypeAggregatedListWarningData `json:"data,omitempty"`
885
886	// Message: [Output Only] A human-readable description of the warning
887	// code.
888	Message string `json:"message,omitempty"`
889
890	// ForceSendFields is a list of field names (e.g. "Code") to
891	// unconditionally include in API requests. By default, fields with
892	// empty values are omitted from API requests. However, any non-pointer,
893	// non-interface field appearing in ForceSendFields will be sent to the
894	// server regardless of whether the field is empty or not. This may be
895	// used to include empty fields in Patch requests.
896	ForceSendFields []string `json:"-"`
897
898	// NullFields is a list of field names (e.g. "Code") to include in API
899	// requests with the JSON null value. By default, fields with empty
900	// values are omitted from API requests. However, any field with an
901	// empty value appearing in NullFields will be sent to the server as
902	// null. It is an error if a field in this list has a non-empty value.
903	// This may be used to include null fields in Patch requests.
904	NullFields []string `json:"-"`
905}
906
907func (s *AcceleratorTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
908	type NoMethod AcceleratorTypeAggregatedListWarning
909	raw := NoMethod(*s)
910	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
911}
912
913type AcceleratorTypeAggregatedListWarningData struct {
914	// Key: [Output Only] A key that provides more detail on the warning
915	// being returned. For example, for warnings where there are no results
916	// in a list request for a particular zone, this key might be scope and
917	// the key value might be the zone name. Other examples might be a key
918	// indicating a deprecated resource and a suggested replacement, or a
919	// warning about invalid network settings (for example, if an instance
920	// attempts to perform IP forwarding but is not enabled for IP
921	// forwarding).
922	Key string `json:"key,omitempty"`
923
924	// Value: [Output Only] A warning data value corresponding to the key.
925	Value string `json:"value,omitempty"`
926
927	// ForceSendFields is a list of field names (e.g. "Key") to
928	// unconditionally include in API requests. By default, fields with
929	// empty values are omitted from API requests. However, any non-pointer,
930	// non-interface field appearing in ForceSendFields will be sent to the
931	// server regardless of whether the field is empty or not. This may be
932	// used to include empty fields in Patch requests.
933	ForceSendFields []string `json:"-"`
934
935	// NullFields is a list of field names (e.g. "Key") to include in API
936	// requests with the JSON null value. By default, fields with empty
937	// values are omitted from API requests. However, any field with an
938	// empty value appearing in NullFields will be sent to the server as
939	// null. It is an error if a field in this list has a non-empty value.
940	// This may be used to include null fields in Patch requests.
941	NullFields []string `json:"-"`
942}
943
944func (s *AcceleratorTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
945	type NoMethod AcceleratorTypeAggregatedListWarningData
946	raw := NoMethod(*s)
947	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
948}
949
950// AcceleratorTypeList: Contains a list of accelerator types.
951type AcceleratorTypeList struct {
952	// Id: [Output Only] Unique identifier for the resource; defined by the
953	// server.
954	Id string `json:"id,omitempty"`
955
956	// Items: A list of AcceleratorType resources.
957	Items []*AcceleratorType `json:"items,omitempty"`
958
959	// Kind: [Output Only] Type of resource. Always
960	// compute#acceleratorTypeList for lists of accelerator types.
961	Kind string `json:"kind,omitempty"`
962
963	// NextPageToken: [Output Only] This token allows you to get the next
964	// page of results for list requests. If the number of results is larger
965	// than maxResults, use the nextPageToken as a value for the query
966	// parameter pageToken in the next list request. Subsequent list
967	// requests will have their own nextPageToken to continue paging through
968	// the results.
969	NextPageToken string `json:"nextPageToken,omitempty"`
970
971	// SelfLink: [Output Only] Server-defined URL for this resource.
972	SelfLink string `json:"selfLink,omitempty"`
973
974	// Warning: [Output Only] Informational warning message.
975	Warning *AcceleratorTypeListWarning `json:"warning,omitempty"`
976
977	// ServerResponse contains the HTTP response code and headers from the
978	// server.
979	googleapi.ServerResponse `json:"-"`
980
981	// ForceSendFields is a list of field names (e.g. "Id") to
982	// unconditionally include in API requests. By default, fields with
983	// empty values are omitted from API requests. However, any non-pointer,
984	// non-interface field appearing in ForceSendFields will be sent to the
985	// server regardless of whether the field is empty or not. This may be
986	// used to include empty fields in Patch requests.
987	ForceSendFields []string `json:"-"`
988
989	// NullFields is a list of field names (e.g. "Id") to include in API
990	// requests with the JSON null value. By default, fields with empty
991	// values are omitted from API requests. However, any field with an
992	// empty value appearing in NullFields will be sent to the server as
993	// null. It is an error if a field in this list has a non-empty value.
994	// This may be used to include null fields in Patch requests.
995	NullFields []string `json:"-"`
996}
997
998func (s *AcceleratorTypeList) MarshalJSON() ([]byte, error) {
999	type NoMethod AcceleratorTypeList
1000	raw := NoMethod(*s)
1001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1002}
1003
1004// AcceleratorTypeListWarning: [Output Only] Informational warning
1005// message.
1006type AcceleratorTypeListWarning struct {
1007	// Code: [Output Only] A warning code, if applicable. For example,
1008	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1009	// the response.
1010	//
1011	// Possible values:
1012	//   "CLEANUP_FAILED"
1013	//   "DEPRECATED_RESOURCE_USED"
1014	//   "DEPRECATED_TYPE_USED"
1015	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1016	//   "EXPERIMENTAL_TYPE_USED"
1017	//   "EXTERNAL_API_WARNING"
1018	//   "FIELD_VALUE_OVERRIDEN"
1019	//   "INJECTED_KERNELS_DEPRECATED"
1020	//   "MISSING_TYPE_DEPENDENCY"
1021	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1022	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1023	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1024	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1025	//   "NEXT_HOP_NOT_RUNNING"
1026	//   "NOT_CRITICAL_ERROR"
1027	//   "NO_RESULTS_ON_PAGE"
1028	//   "REQUIRED_TOS_AGREEMENT"
1029	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1030	//   "RESOURCE_NOT_DELETED"
1031	//   "SCHEMA_VALIDATION_IGNORED"
1032	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1033	//   "UNDECLARED_PROPERTIES"
1034	//   "UNREACHABLE"
1035	Code string `json:"code,omitempty"`
1036
1037	// Data: [Output Only] Metadata about this warning in key: value format.
1038	// For example:
1039	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1040	Data []*AcceleratorTypeListWarningData `json:"data,omitempty"`
1041
1042	// Message: [Output Only] A human-readable description of the warning
1043	// code.
1044	Message string `json:"message,omitempty"`
1045
1046	// ForceSendFields is a list of field names (e.g. "Code") to
1047	// unconditionally include in API requests. By default, fields with
1048	// empty values are omitted from API requests. However, any non-pointer,
1049	// non-interface field appearing in ForceSendFields will be sent to the
1050	// server regardless of whether the field is empty or not. This may be
1051	// used to include empty fields in Patch requests.
1052	ForceSendFields []string `json:"-"`
1053
1054	// NullFields is a list of field names (e.g. "Code") to include in API
1055	// requests with the JSON null value. By default, fields with empty
1056	// values are omitted from API requests. However, any field with an
1057	// empty value appearing in NullFields will be sent to the server as
1058	// null. It is an error if a field in this list has a non-empty value.
1059	// This may be used to include null fields in Patch requests.
1060	NullFields []string `json:"-"`
1061}
1062
1063func (s *AcceleratorTypeListWarning) MarshalJSON() ([]byte, error) {
1064	type NoMethod AcceleratorTypeListWarning
1065	raw := NoMethod(*s)
1066	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1067}
1068
1069type AcceleratorTypeListWarningData struct {
1070	// Key: [Output Only] A key that provides more detail on the warning
1071	// being returned. For example, for warnings where there are no results
1072	// in a list request for a particular zone, this key might be scope and
1073	// the key value might be the zone name. Other examples might be a key
1074	// indicating a deprecated resource and a suggested replacement, or a
1075	// warning about invalid network settings (for example, if an instance
1076	// attempts to perform IP forwarding but is not enabled for IP
1077	// forwarding).
1078	Key string `json:"key,omitempty"`
1079
1080	// Value: [Output Only] A warning data value corresponding to the key.
1081	Value string `json:"value,omitempty"`
1082
1083	// ForceSendFields is a list of field names (e.g. "Key") to
1084	// unconditionally include in API requests. By default, fields with
1085	// empty values are omitted from API requests. However, any non-pointer,
1086	// non-interface field appearing in ForceSendFields will be sent to the
1087	// server regardless of whether the field is empty or not. This may be
1088	// used to include empty fields in Patch requests.
1089	ForceSendFields []string `json:"-"`
1090
1091	// NullFields is a list of field names (e.g. "Key") to include in API
1092	// requests with the JSON null value. By default, fields with empty
1093	// values are omitted from API requests. However, any field with an
1094	// empty value appearing in NullFields will be sent to the server as
1095	// null. It is an error if a field in this list has a non-empty value.
1096	// This may be used to include null fields in Patch requests.
1097	NullFields []string `json:"-"`
1098}
1099
1100func (s *AcceleratorTypeListWarningData) MarshalJSON() ([]byte, error) {
1101	type NoMethod AcceleratorTypeListWarningData
1102	raw := NoMethod(*s)
1103	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1104}
1105
1106type AcceleratorTypesScopedList struct {
1107	// AcceleratorTypes: [Output Only] List of accelerator types contained
1108	// in this scope.
1109	AcceleratorTypes []*AcceleratorType `json:"acceleratorTypes,omitempty"`
1110
1111	// Warning: [Output Only] An informational warning that appears when the
1112	// accelerator types list is empty.
1113	Warning *AcceleratorTypesScopedListWarning `json:"warning,omitempty"`
1114
1115	// ForceSendFields is a list of field names (e.g. "AcceleratorTypes") to
1116	// unconditionally include in API requests. By default, fields with
1117	// empty values are omitted from API requests. However, any non-pointer,
1118	// non-interface field appearing in ForceSendFields will be sent to the
1119	// server regardless of whether the field is empty or not. This may be
1120	// used to include empty fields in Patch requests.
1121	ForceSendFields []string `json:"-"`
1122
1123	// NullFields is a list of field names (e.g. "AcceleratorTypes") to
1124	// include in API requests with the JSON null value. By default, fields
1125	// with empty values are omitted from API requests. However, any field
1126	// with an empty value appearing in NullFields will be sent to the
1127	// server as null. It is an error if a field in this list has a
1128	// non-empty value. This may be used to include null fields in Patch
1129	// requests.
1130	NullFields []string `json:"-"`
1131}
1132
1133func (s *AcceleratorTypesScopedList) MarshalJSON() ([]byte, error) {
1134	type NoMethod AcceleratorTypesScopedList
1135	raw := NoMethod(*s)
1136	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1137}
1138
1139// AcceleratorTypesScopedListWarning: [Output Only] An informational
1140// warning that appears when the accelerator types list is empty.
1141type AcceleratorTypesScopedListWarning struct {
1142	// Code: [Output Only] A warning code, if applicable. For example,
1143	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1144	// the response.
1145	//
1146	// Possible values:
1147	//   "CLEANUP_FAILED"
1148	//   "DEPRECATED_RESOURCE_USED"
1149	//   "DEPRECATED_TYPE_USED"
1150	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1151	//   "EXPERIMENTAL_TYPE_USED"
1152	//   "EXTERNAL_API_WARNING"
1153	//   "FIELD_VALUE_OVERRIDEN"
1154	//   "INJECTED_KERNELS_DEPRECATED"
1155	//   "MISSING_TYPE_DEPENDENCY"
1156	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1157	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1158	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1159	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1160	//   "NEXT_HOP_NOT_RUNNING"
1161	//   "NOT_CRITICAL_ERROR"
1162	//   "NO_RESULTS_ON_PAGE"
1163	//   "REQUIRED_TOS_AGREEMENT"
1164	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1165	//   "RESOURCE_NOT_DELETED"
1166	//   "SCHEMA_VALIDATION_IGNORED"
1167	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1168	//   "UNDECLARED_PROPERTIES"
1169	//   "UNREACHABLE"
1170	Code string `json:"code,omitempty"`
1171
1172	// Data: [Output Only] Metadata about this warning in key: value format.
1173	// For example:
1174	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1175	Data []*AcceleratorTypesScopedListWarningData `json:"data,omitempty"`
1176
1177	// Message: [Output Only] A human-readable description of the warning
1178	// code.
1179	Message string `json:"message,omitempty"`
1180
1181	// ForceSendFields is a list of field names (e.g. "Code") to
1182	// unconditionally include in API requests. By default, fields with
1183	// empty values are omitted from API requests. However, any non-pointer,
1184	// non-interface field appearing in ForceSendFields will be sent to the
1185	// server regardless of whether the field is empty or not. This may be
1186	// used to include empty fields in Patch requests.
1187	ForceSendFields []string `json:"-"`
1188
1189	// NullFields is a list of field names (e.g. "Code") to include in API
1190	// requests with the JSON null value. By default, fields with empty
1191	// values are omitted from API requests. However, any field with an
1192	// empty value appearing in NullFields will be sent to the server as
1193	// null. It is an error if a field in this list has a non-empty value.
1194	// This may be used to include null fields in Patch requests.
1195	NullFields []string `json:"-"`
1196}
1197
1198func (s *AcceleratorTypesScopedListWarning) MarshalJSON() ([]byte, error) {
1199	type NoMethod AcceleratorTypesScopedListWarning
1200	raw := NoMethod(*s)
1201	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1202}
1203
1204type AcceleratorTypesScopedListWarningData struct {
1205	// Key: [Output Only] A key that provides more detail on the warning
1206	// being returned. For example, for warnings where there are no results
1207	// in a list request for a particular zone, this key might be scope and
1208	// the key value might be the zone name. Other examples might be a key
1209	// indicating a deprecated resource and a suggested replacement, or a
1210	// warning about invalid network settings (for example, if an instance
1211	// attempts to perform IP forwarding but is not enabled for IP
1212	// forwarding).
1213	Key string `json:"key,omitempty"`
1214
1215	// Value: [Output Only] A warning data value corresponding to the key.
1216	Value string `json:"value,omitempty"`
1217
1218	// ForceSendFields is a list of field names (e.g. "Key") to
1219	// unconditionally include in API requests. By default, fields with
1220	// empty values are omitted from API requests. However, any non-pointer,
1221	// non-interface field appearing in ForceSendFields will be sent to the
1222	// server regardless of whether the field is empty or not. This may be
1223	// used to include empty fields in Patch requests.
1224	ForceSendFields []string `json:"-"`
1225
1226	// NullFields is a list of field names (e.g. "Key") to include in API
1227	// requests with the JSON null value. By default, fields with empty
1228	// values are omitted from API requests. However, any field with an
1229	// empty value appearing in NullFields will be sent to the server as
1230	// null. It is an error if a field in this list has a non-empty value.
1231	// This may be used to include null fields in Patch requests.
1232	NullFields []string `json:"-"`
1233}
1234
1235func (s *AcceleratorTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
1236	type NoMethod AcceleratorTypesScopedListWarningData
1237	raw := NoMethod(*s)
1238	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1239}
1240
1241// AccessConfig: An access configuration attached to an instance's
1242// network interface. Only one access config per instance is supported.
1243type AccessConfig struct {
1244	// Kind: [Output Only] Type of the resource. Always compute#accessConfig
1245	// for access configs.
1246	Kind string `json:"kind,omitempty"`
1247
1248	// Name: The name of this access configuration. The default and
1249	// recommended name is External NAT but you can use any arbitrary string
1250	// you would like. For example, My external IP or Network Access.
1251	Name string `json:"name,omitempty"`
1252
1253	// NatIP: An external IP address associated with this instance. Specify
1254	// an unused static external IP address available to the project or
1255	// leave this field undefined to use an IP from a shared ephemeral IP
1256	// address pool. If you specify a static external IP address, it must
1257	// live in the same region as the zone of the instance.
1258	NatIP string `json:"natIP,omitempty"`
1259
1260	// PublicPtrDomainName: The DNS domain name for the public PTR record.
1261	// This field can only be set when the set_public_ptr field is enabled.
1262	PublicPtrDomainName string `json:"publicPtrDomainName,omitempty"`
1263
1264	// SetPublicPtr: Specifies whether a public DNS ?PTR? record should be
1265	// created to map the external IP address of the instance to a DNS
1266	// domain name.
1267	SetPublicPtr bool `json:"setPublicPtr,omitempty"`
1268
1269	// Type: The type of configuration. The default and only option is
1270	// ONE_TO_ONE_NAT.
1271	//
1272	// Possible values:
1273	//   "ONE_TO_ONE_NAT" (default)
1274	Type string `json:"type,omitempty"`
1275
1276	// ForceSendFields is a list of field names (e.g. "Kind") to
1277	// unconditionally include in API requests. By default, fields with
1278	// empty values are omitted from API requests. However, any non-pointer,
1279	// non-interface field appearing in ForceSendFields will be sent to the
1280	// server regardless of whether the field is empty or not. This may be
1281	// used to include empty fields in Patch requests.
1282	ForceSendFields []string `json:"-"`
1283
1284	// NullFields is a list of field names (e.g. "Kind") to include in API
1285	// requests with the JSON null value. By default, fields with empty
1286	// values are omitted from API requests. However, any field with an
1287	// empty value appearing in NullFields will be sent to the server as
1288	// null. It is an error if a field in this list has a non-empty value.
1289	// This may be used to include null fields in Patch requests.
1290	NullFields []string `json:"-"`
1291}
1292
1293func (s *AccessConfig) MarshalJSON() ([]byte, error) {
1294	type NoMethod AccessConfig
1295	raw := NoMethod(*s)
1296	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1297}
1298
1299// Address: A reserved address resource. (== resource_for beta.addresses
1300// ==) (== resource_for v1.addresses ==) (== resource_for
1301// beta.globalAddresses ==) (== resource_for v1.globalAddresses ==)
1302type Address struct {
1303	// Address: The static IP address represented by this resource.
1304	Address string `json:"address,omitempty"`
1305
1306	// AddressType: The type of address to reserve, either INTERNAL or
1307	// EXTERNAL. If unspecified, defaults to EXTERNAL.
1308	//
1309	// Possible values:
1310	//   "EXTERNAL"
1311	//   "INTERNAL"
1312	//   "UNSPECIFIED_TYPE"
1313	AddressType string `json:"addressType,omitempty"`
1314
1315	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1316	// format.
1317	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1318
1319	// Description: An optional description of this resource. Provide this
1320	// property when you create the resource.
1321	Description string `json:"description,omitempty"`
1322
1323	// Id: [Output Only] The unique identifier for the resource. This
1324	// identifier is defined by the server.
1325	Id uint64 `json:"id,omitempty,string"`
1326
1327	// IpVersion: The IP Version that will be used by this address. Valid
1328	// options are IPV4 or IPV6. This can only be specified for a global
1329	// address.
1330	//
1331	// Possible values:
1332	//   "IPV4"
1333	//   "IPV6"
1334	//   "UNSPECIFIED_VERSION"
1335	IpVersion string `json:"ipVersion,omitempty"`
1336
1337	// Kind: [Output Only] Type of the resource. Always compute#address for
1338	// addresses.
1339	Kind string `json:"kind,omitempty"`
1340
1341	// Name: Name of the resource. Provided by the client when the resource
1342	// is created. The name must be 1-63 characters long, and comply with
1343	// RFC1035. Specifically, the name must be 1-63 characters long and
1344	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
1345	// the first character must be a lowercase letter, and all following
1346	// characters must be a dash, lowercase letter, or digit, except the
1347	// last character, which cannot be a dash.
1348	Name string `json:"name,omitempty"`
1349
1350	// Region: [Output Only] URL of the region where the regional address
1351	// resides. This field is not applicable to global addresses. You must
1352	// specify this field as part of the HTTP request URL. You cannot set
1353	// this field in the request body.
1354	Region string `json:"region,omitempty"`
1355
1356	// SelfLink: [Output Only] Server-defined URL for the resource.
1357	SelfLink string `json:"selfLink,omitempty"`
1358
1359	// Status: [Output Only] The status of the address, which can be one of
1360	// RESERVING, RESERVED, or IN_USE. An address that is RESERVING is
1361	// currently in the process of being reserved. A RESERVED address is
1362	// currently reserved and available to use. An IN_USE address is
1363	// currently being used by another resource and is not available.
1364	//
1365	// Possible values:
1366	//   "IN_USE"
1367	//   "RESERVED"
1368	Status string `json:"status,omitempty"`
1369
1370	// Subnetwork: The URL of the subnetwork in which to reserve the
1371	// address. If an IP address is specified, it must be within the
1372	// subnetwork's IP range. This field can only be used with INTERNAL type
1373	// with GCE_ENDPOINT/DNS_RESOLVER purposes.
1374	Subnetwork string `json:"subnetwork,omitempty"`
1375
1376	// Users: [Output Only] The URLs of the resources that are using this
1377	// address.
1378	Users []string `json:"users,omitempty"`
1379
1380	// ServerResponse contains the HTTP response code and headers from the
1381	// server.
1382	googleapi.ServerResponse `json:"-"`
1383
1384	// ForceSendFields is a list of field names (e.g. "Address") to
1385	// unconditionally include in API requests. By default, fields with
1386	// empty values are omitted from API requests. However, any non-pointer,
1387	// non-interface field appearing in ForceSendFields will be sent to the
1388	// server regardless of whether the field is empty or not. This may be
1389	// used to include empty fields in Patch requests.
1390	ForceSendFields []string `json:"-"`
1391
1392	// NullFields is a list of field names (e.g. "Address") to include in
1393	// API requests with the JSON null value. By default, fields with empty
1394	// values are omitted from API requests. However, any field with an
1395	// empty value appearing in NullFields will be sent to the server as
1396	// null. It is an error if a field in this list has a non-empty value.
1397	// This may be used to include null fields in Patch requests.
1398	NullFields []string `json:"-"`
1399}
1400
1401func (s *Address) MarshalJSON() ([]byte, error) {
1402	type NoMethod Address
1403	raw := NoMethod(*s)
1404	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1405}
1406
1407type AddressAggregatedList struct {
1408	// Id: [Output Only] Unique identifier for the resource; defined by the
1409	// server.
1410	Id string `json:"id,omitempty"`
1411
1412	// Items: A list of AddressesScopedList resources.
1413	Items map[string]AddressesScopedList `json:"items,omitempty"`
1414
1415	// Kind: [Output Only] Type of resource. Always
1416	// compute#addressAggregatedList for aggregated lists of addresses.
1417	Kind string `json:"kind,omitempty"`
1418
1419	// NextPageToken: [Output Only] This token allows you to get the next
1420	// page of results for list requests. If the number of results is larger
1421	// than maxResults, use the nextPageToken as a value for the query
1422	// parameter pageToken in the next list request. Subsequent list
1423	// requests will have their own nextPageToken to continue paging through
1424	// the results.
1425	NextPageToken string `json:"nextPageToken,omitempty"`
1426
1427	// SelfLink: [Output Only] Server-defined URL for this resource.
1428	SelfLink string `json:"selfLink,omitempty"`
1429
1430	// Warning: [Output Only] Informational warning message.
1431	Warning *AddressAggregatedListWarning `json:"warning,omitempty"`
1432
1433	// ServerResponse contains the HTTP response code and headers from the
1434	// server.
1435	googleapi.ServerResponse `json:"-"`
1436
1437	// ForceSendFields is a list of field names (e.g. "Id") to
1438	// unconditionally include in API requests. By default, fields with
1439	// empty values are omitted from API requests. However, any non-pointer,
1440	// non-interface field appearing in ForceSendFields will be sent to the
1441	// server regardless of whether the field is empty or not. This may be
1442	// used to include empty fields in Patch requests.
1443	ForceSendFields []string `json:"-"`
1444
1445	// NullFields is a list of field names (e.g. "Id") to include in API
1446	// requests with the JSON null value. By default, fields with empty
1447	// values are omitted from API requests. However, any field with an
1448	// empty value appearing in NullFields will be sent to the server as
1449	// null. It is an error if a field in this list has a non-empty value.
1450	// This may be used to include null fields in Patch requests.
1451	NullFields []string `json:"-"`
1452}
1453
1454func (s *AddressAggregatedList) MarshalJSON() ([]byte, error) {
1455	type NoMethod AddressAggregatedList
1456	raw := NoMethod(*s)
1457	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1458}
1459
1460// AddressAggregatedListWarning: [Output Only] Informational warning
1461// message.
1462type AddressAggregatedListWarning struct {
1463	// Code: [Output Only] A warning code, if applicable. For example,
1464	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1465	// the response.
1466	//
1467	// Possible values:
1468	//   "CLEANUP_FAILED"
1469	//   "DEPRECATED_RESOURCE_USED"
1470	//   "DEPRECATED_TYPE_USED"
1471	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1472	//   "EXPERIMENTAL_TYPE_USED"
1473	//   "EXTERNAL_API_WARNING"
1474	//   "FIELD_VALUE_OVERRIDEN"
1475	//   "INJECTED_KERNELS_DEPRECATED"
1476	//   "MISSING_TYPE_DEPENDENCY"
1477	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1478	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1479	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1480	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1481	//   "NEXT_HOP_NOT_RUNNING"
1482	//   "NOT_CRITICAL_ERROR"
1483	//   "NO_RESULTS_ON_PAGE"
1484	//   "REQUIRED_TOS_AGREEMENT"
1485	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1486	//   "RESOURCE_NOT_DELETED"
1487	//   "SCHEMA_VALIDATION_IGNORED"
1488	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1489	//   "UNDECLARED_PROPERTIES"
1490	//   "UNREACHABLE"
1491	Code string `json:"code,omitempty"`
1492
1493	// Data: [Output Only] Metadata about this warning in key: value format.
1494	// For example:
1495	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1496	Data []*AddressAggregatedListWarningData `json:"data,omitempty"`
1497
1498	// Message: [Output Only] A human-readable description of the warning
1499	// code.
1500	Message string `json:"message,omitempty"`
1501
1502	// ForceSendFields is a list of field names (e.g. "Code") to
1503	// unconditionally include in API requests. By default, fields with
1504	// empty values are omitted from API requests. However, any non-pointer,
1505	// non-interface field appearing in ForceSendFields will be sent to the
1506	// server regardless of whether the field is empty or not. This may be
1507	// used to include empty fields in Patch requests.
1508	ForceSendFields []string `json:"-"`
1509
1510	// NullFields is a list of field names (e.g. "Code") to include in API
1511	// requests with the JSON null value. By default, fields with empty
1512	// values are omitted from API requests. However, any field with an
1513	// empty value appearing in NullFields will be sent to the server as
1514	// null. It is an error if a field in this list has a non-empty value.
1515	// This may be used to include null fields in Patch requests.
1516	NullFields []string `json:"-"`
1517}
1518
1519func (s *AddressAggregatedListWarning) MarshalJSON() ([]byte, error) {
1520	type NoMethod AddressAggregatedListWarning
1521	raw := NoMethod(*s)
1522	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1523}
1524
1525type AddressAggregatedListWarningData struct {
1526	// Key: [Output Only] A key that provides more detail on the warning
1527	// being returned. For example, for warnings where there are no results
1528	// in a list request for a particular zone, this key might be scope and
1529	// the key value might be the zone name. Other examples might be a key
1530	// indicating a deprecated resource and a suggested replacement, or a
1531	// warning about invalid network settings (for example, if an instance
1532	// attempts to perform IP forwarding but is not enabled for IP
1533	// forwarding).
1534	Key string `json:"key,omitempty"`
1535
1536	// Value: [Output Only] A warning data value corresponding to the key.
1537	Value string `json:"value,omitempty"`
1538
1539	// ForceSendFields is a list of field names (e.g. "Key") to
1540	// unconditionally include in API requests. By default, fields with
1541	// empty values are omitted from API requests. However, any non-pointer,
1542	// non-interface field appearing in ForceSendFields will be sent to the
1543	// server regardless of whether the field is empty or not. This may be
1544	// used to include empty fields in Patch requests.
1545	ForceSendFields []string `json:"-"`
1546
1547	// NullFields is a list of field names (e.g. "Key") to include in API
1548	// requests with the JSON null value. By default, fields with empty
1549	// values are omitted from API requests. However, any field with an
1550	// empty value appearing in NullFields will be sent to the server as
1551	// null. It is an error if a field in this list has a non-empty value.
1552	// This may be used to include null fields in Patch requests.
1553	NullFields []string `json:"-"`
1554}
1555
1556func (s *AddressAggregatedListWarningData) MarshalJSON() ([]byte, error) {
1557	type NoMethod AddressAggregatedListWarningData
1558	raw := NoMethod(*s)
1559	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1560}
1561
1562// AddressList: Contains a list of addresses.
1563type AddressList struct {
1564	// Id: [Output Only] Unique identifier for the resource; defined by the
1565	// server.
1566	Id string `json:"id,omitempty"`
1567
1568	// Items: A list of Address resources.
1569	Items []*Address `json:"items,omitempty"`
1570
1571	// Kind: [Output Only] Type of resource. Always compute#addressList for
1572	// lists of addresses.
1573	Kind string `json:"kind,omitempty"`
1574
1575	// NextPageToken: [Output Only] This token allows you to get the next
1576	// page of results for list requests. If the number of results is larger
1577	// than maxResults, use the nextPageToken as a value for the query
1578	// parameter pageToken in the next list request. Subsequent list
1579	// requests will have their own nextPageToken to continue paging through
1580	// the results.
1581	NextPageToken string `json:"nextPageToken,omitempty"`
1582
1583	// SelfLink: [Output Only] Server-defined URL for this resource.
1584	SelfLink string `json:"selfLink,omitempty"`
1585
1586	// Warning: [Output Only] Informational warning message.
1587	Warning *AddressListWarning `json:"warning,omitempty"`
1588
1589	// ServerResponse contains the HTTP response code and headers from the
1590	// server.
1591	googleapi.ServerResponse `json:"-"`
1592
1593	// ForceSendFields is a list of field names (e.g. "Id") to
1594	// unconditionally include in API requests. By default, fields with
1595	// empty values are omitted from API requests. However, any non-pointer,
1596	// non-interface field appearing in ForceSendFields will be sent to the
1597	// server regardless of whether the field is empty or not. This may be
1598	// used to include empty fields in Patch requests.
1599	ForceSendFields []string `json:"-"`
1600
1601	// NullFields is a list of field names (e.g. "Id") to include in API
1602	// requests with the JSON null value. By default, fields with empty
1603	// values are omitted from API requests. However, any field with an
1604	// empty value appearing in NullFields will be sent to the server as
1605	// null. It is an error if a field in this list has a non-empty value.
1606	// This may be used to include null fields in Patch requests.
1607	NullFields []string `json:"-"`
1608}
1609
1610func (s *AddressList) MarshalJSON() ([]byte, error) {
1611	type NoMethod AddressList
1612	raw := NoMethod(*s)
1613	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1614}
1615
1616// AddressListWarning: [Output Only] Informational warning message.
1617type AddressListWarning struct {
1618	// Code: [Output Only] A warning code, if applicable. For example,
1619	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1620	// the response.
1621	//
1622	// Possible values:
1623	//   "CLEANUP_FAILED"
1624	//   "DEPRECATED_RESOURCE_USED"
1625	//   "DEPRECATED_TYPE_USED"
1626	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1627	//   "EXPERIMENTAL_TYPE_USED"
1628	//   "EXTERNAL_API_WARNING"
1629	//   "FIELD_VALUE_OVERRIDEN"
1630	//   "INJECTED_KERNELS_DEPRECATED"
1631	//   "MISSING_TYPE_DEPENDENCY"
1632	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1633	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1634	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1635	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1636	//   "NEXT_HOP_NOT_RUNNING"
1637	//   "NOT_CRITICAL_ERROR"
1638	//   "NO_RESULTS_ON_PAGE"
1639	//   "REQUIRED_TOS_AGREEMENT"
1640	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1641	//   "RESOURCE_NOT_DELETED"
1642	//   "SCHEMA_VALIDATION_IGNORED"
1643	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1644	//   "UNDECLARED_PROPERTIES"
1645	//   "UNREACHABLE"
1646	Code string `json:"code,omitempty"`
1647
1648	// Data: [Output Only] Metadata about this warning in key: value format.
1649	// For example:
1650	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1651	Data []*AddressListWarningData `json:"data,omitempty"`
1652
1653	// Message: [Output Only] A human-readable description of the warning
1654	// code.
1655	Message string `json:"message,omitempty"`
1656
1657	// ForceSendFields is a list of field names (e.g. "Code") to
1658	// unconditionally include in API requests. By default, fields with
1659	// empty values are omitted from API requests. However, any non-pointer,
1660	// non-interface field appearing in ForceSendFields will be sent to the
1661	// server regardless of whether the field is empty or not. This may be
1662	// used to include empty fields in Patch requests.
1663	ForceSendFields []string `json:"-"`
1664
1665	// NullFields is a list of field names (e.g. "Code") to include in API
1666	// requests with the JSON null value. By default, fields with empty
1667	// values are omitted from API requests. However, any field with an
1668	// empty value appearing in NullFields will be sent to the server as
1669	// null. It is an error if a field in this list has a non-empty value.
1670	// This may be used to include null fields in Patch requests.
1671	NullFields []string `json:"-"`
1672}
1673
1674func (s *AddressListWarning) MarshalJSON() ([]byte, error) {
1675	type NoMethod AddressListWarning
1676	raw := NoMethod(*s)
1677	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1678}
1679
1680type AddressListWarningData struct {
1681	// Key: [Output Only] A key that provides more detail on the warning
1682	// being returned. For example, for warnings where there are no results
1683	// in a list request for a particular zone, this key might be scope and
1684	// the key value might be the zone name. Other examples might be a key
1685	// indicating a deprecated resource and a suggested replacement, or a
1686	// warning about invalid network settings (for example, if an instance
1687	// attempts to perform IP forwarding but is not enabled for IP
1688	// forwarding).
1689	Key string `json:"key,omitempty"`
1690
1691	// Value: [Output Only] A warning data value corresponding to the key.
1692	Value string `json:"value,omitempty"`
1693
1694	// ForceSendFields is a list of field names (e.g. "Key") to
1695	// unconditionally include in API requests. By default, fields with
1696	// empty values are omitted from API requests. However, any non-pointer,
1697	// non-interface field appearing in ForceSendFields will be sent to the
1698	// server regardless of whether the field is empty or not. This may be
1699	// used to include empty fields in Patch requests.
1700	ForceSendFields []string `json:"-"`
1701
1702	// NullFields is a list of field names (e.g. "Key") to include in API
1703	// requests with the JSON null value. By default, fields with empty
1704	// values are omitted from API requests. However, any field with an
1705	// empty value appearing in NullFields will be sent to the server as
1706	// null. It is an error if a field in this list has a non-empty value.
1707	// This may be used to include null fields in Patch requests.
1708	NullFields []string `json:"-"`
1709}
1710
1711func (s *AddressListWarningData) MarshalJSON() ([]byte, error) {
1712	type NoMethod AddressListWarningData
1713	raw := NoMethod(*s)
1714	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1715}
1716
1717type AddressesScopedList struct {
1718	// Addresses: [Output Only] List of addresses contained in this scope.
1719	Addresses []*Address `json:"addresses,omitempty"`
1720
1721	// Warning: [Output Only] Informational warning which replaces the list
1722	// of addresses when the list is empty.
1723	Warning *AddressesScopedListWarning `json:"warning,omitempty"`
1724
1725	// ForceSendFields is a list of field names (e.g. "Addresses") to
1726	// unconditionally include in API requests. By default, fields with
1727	// empty values are omitted from API requests. However, any non-pointer,
1728	// non-interface field appearing in ForceSendFields will be sent to the
1729	// server regardless of whether the field is empty or not. This may be
1730	// used to include empty fields in Patch requests.
1731	ForceSendFields []string `json:"-"`
1732
1733	// NullFields is a list of field names (e.g. "Addresses") to include in
1734	// API requests with the JSON null value. By default, fields with empty
1735	// values are omitted from API requests. However, any field with an
1736	// empty value appearing in NullFields will be sent to the server as
1737	// null. It is an error if a field in this list has a non-empty value.
1738	// This may be used to include null fields in Patch requests.
1739	NullFields []string `json:"-"`
1740}
1741
1742func (s *AddressesScopedList) MarshalJSON() ([]byte, error) {
1743	type NoMethod AddressesScopedList
1744	raw := NoMethod(*s)
1745	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1746}
1747
1748// AddressesScopedListWarning: [Output Only] Informational warning which
1749// replaces the list of addresses when the list is empty.
1750type AddressesScopedListWarning struct {
1751	// Code: [Output Only] A warning code, if applicable. For example,
1752	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1753	// the response.
1754	//
1755	// Possible values:
1756	//   "CLEANUP_FAILED"
1757	//   "DEPRECATED_RESOURCE_USED"
1758	//   "DEPRECATED_TYPE_USED"
1759	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1760	//   "EXPERIMENTAL_TYPE_USED"
1761	//   "EXTERNAL_API_WARNING"
1762	//   "FIELD_VALUE_OVERRIDEN"
1763	//   "INJECTED_KERNELS_DEPRECATED"
1764	//   "MISSING_TYPE_DEPENDENCY"
1765	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1766	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1767	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1768	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1769	//   "NEXT_HOP_NOT_RUNNING"
1770	//   "NOT_CRITICAL_ERROR"
1771	//   "NO_RESULTS_ON_PAGE"
1772	//   "REQUIRED_TOS_AGREEMENT"
1773	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1774	//   "RESOURCE_NOT_DELETED"
1775	//   "SCHEMA_VALIDATION_IGNORED"
1776	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1777	//   "UNDECLARED_PROPERTIES"
1778	//   "UNREACHABLE"
1779	Code string `json:"code,omitempty"`
1780
1781	// Data: [Output Only] Metadata about this warning in key: value format.
1782	// For example:
1783	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1784	Data []*AddressesScopedListWarningData `json:"data,omitempty"`
1785
1786	// Message: [Output Only] A human-readable description of the warning
1787	// code.
1788	Message string `json:"message,omitempty"`
1789
1790	// ForceSendFields is a list of field names (e.g. "Code") to
1791	// unconditionally include in API requests. By default, fields with
1792	// empty values are omitted from API requests. However, any non-pointer,
1793	// non-interface field appearing in ForceSendFields will be sent to the
1794	// server regardless of whether the field is empty or not. This may be
1795	// used to include empty fields in Patch requests.
1796	ForceSendFields []string `json:"-"`
1797
1798	// NullFields is a list of field names (e.g. "Code") to include in API
1799	// requests with the JSON null value. By default, fields with empty
1800	// values are omitted from API requests. However, any field with an
1801	// empty value appearing in NullFields will be sent to the server as
1802	// null. It is an error if a field in this list has a non-empty value.
1803	// This may be used to include null fields in Patch requests.
1804	NullFields []string `json:"-"`
1805}
1806
1807func (s *AddressesScopedListWarning) MarshalJSON() ([]byte, error) {
1808	type NoMethod AddressesScopedListWarning
1809	raw := NoMethod(*s)
1810	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1811}
1812
1813type AddressesScopedListWarningData struct {
1814	// Key: [Output Only] A key that provides more detail on the warning
1815	// being returned. For example, for warnings where there are no results
1816	// in a list request for a particular zone, this key might be scope and
1817	// the key value might be the zone name. Other examples might be a key
1818	// indicating a deprecated resource and a suggested replacement, or a
1819	// warning about invalid network settings (for example, if an instance
1820	// attempts to perform IP forwarding but is not enabled for IP
1821	// forwarding).
1822	Key string `json:"key,omitempty"`
1823
1824	// Value: [Output Only] A warning data value corresponding to the key.
1825	Value string `json:"value,omitempty"`
1826
1827	// ForceSendFields is a list of field names (e.g. "Key") to
1828	// unconditionally include in API requests. By default, fields with
1829	// empty values are omitted from API requests. However, any non-pointer,
1830	// non-interface field appearing in ForceSendFields will be sent to the
1831	// server regardless of whether the field is empty or not. This may be
1832	// used to include empty fields in Patch requests.
1833	ForceSendFields []string `json:"-"`
1834
1835	// NullFields is a list of field names (e.g. "Key") to include in API
1836	// requests with the JSON null value. By default, fields with empty
1837	// values are omitted from API requests. However, any field with an
1838	// empty value appearing in NullFields will be sent to the server as
1839	// null. It is an error if a field in this list has a non-empty value.
1840	// This may be used to include null fields in Patch requests.
1841	NullFields []string `json:"-"`
1842}
1843
1844func (s *AddressesScopedListWarningData) MarshalJSON() ([]byte, error) {
1845	type NoMethod AddressesScopedListWarningData
1846	raw := NoMethod(*s)
1847	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1848}
1849
1850// AliasIpRange: An alias IP range attached to an instance's network
1851// interface.
1852type AliasIpRange struct {
1853	// IpCidrRange: The IP CIDR range represented by this alias IP range.
1854	// This IP CIDR range must belong to the specified subnetwork and cannot
1855	// contain IP addresses reserved by system or used by other network
1856	// interfaces. This range may be a single IP address (e.g. 10.2.3.4), a
1857	// netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).
1858	IpCidrRange string `json:"ipCidrRange,omitempty"`
1859
1860	// SubnetworkRangeName: Optional subnetwork secondary range name
1861	// specifying the secondary range from which to allocate the IP CIDR
1862	// range for this alias IP range. If left unspecified, the primary range
1863	// of the subnetwork will be used.
1864	SubnetworkRangeName string `json:"subnetworkRangeName,omitempty"`
1865
1866	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
1867	// unconditionally include in API requests. By default, fields with
1868	// empty values are omitted from API requests. However, any non-pointer,
1869	// non-interface field appearing in ForceSendFields will be sent to the
1870	// server regardless of whether the field is empty or not. This may be
1871	// used to include empty fields in Patch requests.
1872	ForceSendFields []string `json:"-"`
1873
1874	// NullFields is a list of field names (e.g. "IpCidrRange") to include
1875	// in API requests with the JSON null value. By default, fields with
1876	// empty values are omitted from API requests. However, any field with
1877	// an empty value appearing in NullFields will be sent to the server as
1878	// null. It is an error if a field in this list has a non-empty value.
1879	// This may be used to include null fields in Patch requests.
1880	NullFields []string `json:"-"`
1881}
1882
1883func (s *AliasIpRange) MarshalJSON() ([]byte, error) {
1884	type NoMethod AliasIpRange
1885	raw := NoMethod(*s)
1886	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1887}
1888
1889// AttachedDisk: An instance-attached disk resource.
1890type AttachedDisk struct {
1891	// AutoDelete: Specifies whether the disk will be auto-deleted when the
1892	// instance is deleted (but not when the disk is detached from the
1893	// instance).
1894	AutoDelete bool `json:"autoDelete,omitempty"`
1895
1896	// Boot: Indicates that this is a boot disk. The virtual machine will
1897	// use the first partition of the disk for its root filesystem.
1898	Boot bool `json:"boot,omitempty"`
1899
1900	// DeviceName: Specifies a unique device name of your choice that is
1901	// reflected into the /dev/disk/by-id/google-* tree of a Linux operating
1902	// system running within the instance. This name can be used to
1903	// reference the device for mounting, resizing, and so on, from within
1904	// the instance.
1905	//
1906	// If not specified, the server chooses a default device name to apply
1907	// to this disk, in the form persistent-disks-x, where x is a number
1908	// assigned by Google Compute Engine. This field is only applicable for
1909	// persistent disks.
1910	DeviceName string `json:"deviceName,omitempty"`
1911
1912	// DiskEncryptionKey: Encrypts or decrypts a disk using a
1913	// customer-supplied encryption key.
1914	//
1915	// If you are creating a new disk, this field encrypts the new disk
1916	// using an encryption key that you provide. If you are attaching an
1917	// existing disk that is already encrypted, this field decrypts the disk
1918	// using the customer-supplied encryption key.
1919	//
1920	// If you encrypt a disk using a customer-supplied key, you must provide
1921	// the same key again when you attempt to use this resource at a later
1922	// time. For example, you must provide the key when you create a
1923	// snapshot or an image from the disk or when you attach the disk to a
1924	// virtual machine instance.
1925	//
1926	// If you do not provide an encryption key, then the disk will be
1927	// encrypted using an automatically generated key and you do not need to
1928	// provide a key to use the disk later.
1929	//
1930	// Instance templates do not store customer-supplied encryption keys, so
1931	// you cannot use your own keys to encrypt disks in a managed instance
1932	// group.
1933	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
1934
1935	// Index: [Output Only] A zero-based index to this disk, where 0 is
1936	// reserved for the boot disk. If you have many disks attached to an
1937	// instance, each disk would have a unique index number.
1938	Index int64 `json:"index,omitempty"`
1939
1940	// InitializeParams: [Input Only] Specifies the parameters for a new
1941	// disk that will be created alongside the new instance. Use
1942	// initialization parameters to create boot disks or local SSDs attached
1943	// to the new instance.
1944	//
1945	// This property is mutually exclusive with the source property; you can
1946	// only define one or the other, but not both.
1947	InitializeParams *AttachedDiskInitializeParams `json:"initializeParams,omitempty"`
1948
1949	// Interface: Specifies the disk interface to use for attaching this
1950	// disk, which is either SCSI or NVME. The default is SCSI. Persistent
1951	// disks must always use SCSI and the request will fail if you attempt
1952	// to attach a persistent disk in any other format than SCSI. Local SSDs
1953	// can use either NVME or SCSI. For performance characteristics of SCSI
1954	// over NVMe, see Local SSD performance.
1955	//
1956	// Possible values:
1957	//   "NVME"
1958	//   "SCSI"
1959	Interface string `json:"interface,omitempty"`
1960
1961	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk
1962	// for attached disks.
1963	Kind string `json:"kind,omitempty"`
1964
1965	// Licenses: [Output Only] Any valid publicly visible licenses.
1966	Licenses []string `json:"licenses,omitempty"`
1967
1968	// Mode: The mode in which to attach this disk, either READ_WRITE or
1969	// READ_ONLY. If not specified, the default is to attach the disk in
1970	// READ_WRITE mode.
1971	//
1972	// Possible values:
1973	//   "READ_ONLY"
1974	//   "READ_WRITE"
1975	Mode string `json:"mode,omitempty"`
1976
1977	// Source: Specifies a valid partial or full URL to an existing
1978	// Persistent Disk resource. When creating a new instance, one of
1979	// initializeParams.sourceImage or disks.source is required except for
1980	// local SSD.
1981	//
1982	// If desired, you can also attach existing non-root persistent disks
1983	// using this property. This field is only applicable for persistent
1984	// disks.
1985	//
1986	// Note that for InstanceTemplate, specify the disk name, not the URL
1987	// for the disk.
1988	Source string `json:"source,omitempty"`
1989
1990	// Type: Specifies the type of the disk, either SCRATCH or PERSISTENT.
1991	// If not specified, the default is PERSISTENT.
1992	//
1993	// Possible values:
1994	//   "PERSISTENT"
1995	//   "SCRATCH"
1996	Type string `json:"type,omitempty"`
1997
1998	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
1999	// unconditionally include in API requests. By default, fields with
2000	// empty values are omitted from API requests. However, any non-pointer,
2001	// non-interface field appearing in ForceSendFields will be sent to the
2002	// server regardless of whether the field is empty or not. This may be
2003	// used to include empty fields in Patch requests.
2004	ForceSendFields []string `json:"-"`
2005
2006	// NullFields is a list of field names (e.g. "AutoDelete") to include in
2007	// API requests with the JSON null value. By default, fields with empty
2008	// values are omitted from API requests. However, any field with an
2009	// empty value appearing in NullFields will be sent to the server as
2010	// null. It is an error if a field in this list has a non-empty value.
2011	// This may be used to include null fields in Patch requests.
2012	NullFields []string `json:"-"`
2013}
2014
2015func (s *AttachedDisk) MarshalJSON() ([]byte, error) {
2016	type NoMethod AttachedDisk
2017	raw := NoMethod(*s)
2018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2019}
2020
2021// AttachedDiskInitializeParams: [Input Only] Specifies the parameters
2022// for a new disk that will be created alongside the new instance. Use
2023// initialization parameters to create boot disks or local SSDs attached
2024// to the new instance.
2025//
2026// This property is mutually exclusive with the source property; you can
2027// only define one or the other, but not both.
2028type AttachedDiskInitializeParams struct {
2029	// DiskName: Specifies the disk name. If not specified, the default is
2030	// to use the name of the instance.
2031	DiskName string `json:"diskName,omitempty"`
2032
2033	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
2034	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2035
2036	// DiskType: Specifies the disk type to use to create the instance. If
2037	// not specified, the default is pd-standard, specified using the full
2038	// URL. For
2039	// example:
2040	// https://www.googleapis.com/compute/v1/projects/project/zones/
2041	// zone/diskTypes/pd-standard
2042	//
2043	//
2044	// Other values include pd-ssd and local-ssd. If you define this field,
2045	// you can provide either the full or partial URL. For example, the
2046	// following are valid values:
2047	// -
2048	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/diskType
2049	// - projects/project/zones/zone/diskTypes/diskType
2050	// - zones/zone/diskTypes/diskType  Note that for InstanceTemplate, this
2051	// is the name of the disk type, not URL.
2052	DiskType string `json:"diskType,omitempty"`
2053
2054	// Labels: Labels to apply to this disk. These can be later modified by
2055	// the disks.setLabels method. This field is only applicable for
2056	// persistent disks.
2057	Labels map[string]string `json:"labels,omitempty"`
2058
2059	// SourceImage: The source image to create this disk. When creating a
2060	// new instance, one of initializeParams.sourceImage or disks.source is
2061	// required except for local SSD.
2062	//
2063	// To create a disk with one of the public operating system images,
2064	// specify the image by its family name. For example, specify
2065	// family/debian-8 to use the latest Debian 8
2066	// image:
2067	// projects/debian-cloud/global/images/family/debian-8
2068	//
2069	//
2070	// Alternati
2071	// vely, use a specific version of a public operating system
2072	// image:
2073	// projects/debian-cloud/global/images/debian-8-jessie-vYYYYMMDD
2074	//
2075	//
2076	//
2077	// To create a disk with a custom image that you created, specify the
2078	// image name in the following
2079	// format:
2080	// global/images/my-custom-image
2081	//
2082	//
2083	// You can also specify a custom image by its image family, which
2084	// returns the latest version of the image in that family. Replace the
2085	// image name with
2086	// family/family-name:
2087	// global/images/family/my-image-family
2088	//
2089	//
2090	// If the source image is deleted later, this field will not be set.
2091	SourceImage string `json:"sourceImage,omitempty"`
2092
2093	// SourceImageEncryptionKey: The customer-supplied encryption key of the
2094	// source image. Required if the source image is protected by a
2095	// customer-supplied encryption key.
2096	//
2097	// Instance templates do not store customer-supplied encryption keys, so
2098	// you cannot create disks for instances in a managed instance group if
2099	// the source images are encrypted with your own keys.
2100	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
2101
2102	// ForceSendFields is a list of field names (e.g. "DiskName") to
2103	// unconditionally include in API requests. By default, fields with
2104	// empty values are omitted from API requests. However, any non-pointer,
2105	// non-interface field appearing in ForceSendFields will be sent to the
2106	// server regardless of whether the field is empty or not. This may be
2107	// used to include empty fields in Patch requests.
2108	ForceSendFields []string `json:"-"`
2109
2110	// NullFields is a list of field names (e.g. "DiskName") to include in
2111	// API requests with the JSON null value. By default, fields with empty
2112	// values are omitted from API requests. However, any field with an
2113	// empty value appearing in NullFields will be sent to the server as
2114	// null. It is an error if a field in this list has a non-empty value.
2115	// This may be used to include null fields in Patch requests.
2116	NullFields []string `json:"-"`
2117}
2118
2119func (s *AttachedDiskInitializeParams) MarshalJSON() ([]byte, error) {
2120	type NoMethod AttachedDiskInitializeParams
2121	raw := NoMethod(*s)
2122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2123}
2124
2125// Autoscaler: Represents an Autoscaler resource. Autoscalers allow you
2126// to automatically scale virtual machine instances in managed instance
2127// groups according to an autoscaling policy that you define. For more
2128// information, read Autoscaling Groups of Instances. (== resource_for
2129// beta.autoscalers ==) (== resource_for v1.autoscalers ==) (==
2130// resource_for beta.regionAutoscalers ==) (== resource_for
2131// v1.regionAutoscalers ==)
2132type Autoscaler struct {
2133	// AutoscalingPolicy: The configuration parameters for the autoscaling
2134	// algorithm. You can define one or more of the policies for an
2135	// autoscaler: cpuUtilization, customMetricUtilizations, and
2136	// loadBalancingUtilization.
2137	//
2138	// If none of these are specified, the default will be to autoscale
2139	// based on cpuUtilization to 0.6 or 60%.
2140	AutoscalingPolicy *AutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
2141
2142	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
2143	// format.
2144	CreationTimestamp string `json:"creationTimestamp,omitempty"`
2145
2146	// Description: An optional description of this resource. Provide this
2147	// property when you create the resource.
2148	Description string `json:"description,omitempty"`
2149
2150	// Id: [Output Only] The unique identifier for the resource. This
2151	// identifier is defined by the server.
2152	Id uint64 `json:"id,omitempty,string"`
2153
2154	// Kind: [Output Only] Type of the resource. Always compute#autoscaler
2155	// for autoscalers.
2156	Kind string `json:"kind,omitempty"`
2157
2158	// Name: Name of the resource. Provided by the client when the resource
2159	// is created. The name must be 1-63 characters long, and comply with
2160	// RFC1035. Specifically, the name must be 1-63 characters long and
2161	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
2162	// the first character must be a lowercase letter, and all following
2163	// characters must be a dash, lowercase letter, or digit, except the
2164	// last character, which cannot be a dash.
2165	Name string `json:"name,omitempty"`
2166
2167	// Region: [Output Only] URL of the region where the instance group
2168	// resides (for autoscalers living in regional scope).
2169	Region string `json:"region,omitempty"`
2170
2171	// SelfLink: [Output Only] Server-defined URL for the resource.
2172	SelfLink string `json:"selfLink,omitempty"`
2173
2174	// Status: [Output Only] The status of the autoscaler configuration.
2175	//
2176	// Possible values:
2177	//   "ACTIVE"
2178	//   "DELETING"
2179	//   "ERROR"
2180	//   "PENDING"
2181	Status string `json:"status,omitempty"`
2182
2183	// StatusDetails: [Output Only] Human-readable details about the current
2184	// state of the autoscaler. Read the documentation for Commonly returned
2185	// status messages for examples of status messages you might encounter.
2186	StatusDetails []*AutoscalerStatusDetails `json:"statusDetails,omitempty"`
2187
2188	// Target: URL of the managed instance group that this autoscaler will
2189	// scale.
2190	Target string `json:"target,omitempty"`
2191
2192	// Zone: [Output Only] URL of the zone where the instance group resides
2193	// (for autoscalers living in zonal scope).
2194	Zone string `json:"zone,omitempty"`
2195
2196	// ServerResponse contains the HTTP response code and headers from the
2197	// server.
2198	googleapi.ServerResponse `json:"-"`
2199
2200	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
2201	// to unconditionally include in API requests. By default, fields with
2202	// empty values are omitted from API requests. However, any non-pointer,
2203	// non-interface field appearing in ForceSendFields will be sent to the
2204	// server regardless of whether the field is empty or not. This may be
2205	// used to include empty fields in Patch requests.
2206	ForceSendFields []string `json:"-"`
2207
2208	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
2209	// include in API requests with the JSON null value. By default, fields
2210	// with empty values are omitted from API requests. However, any field
2211	// with an empty value appearing in NullFields will be sent to the
2212	// server as null. It is an error if a field in this list has a
2213	// non-empty value. This may be used to include null fields in Patch
2214	// requests.
2215	NullFields []string `json:"-"`
2216}
2217
2218func (s *Autoscaler) MarshalJSON() ([]byte, error) {
2219	type NoMethod Autoscaler
2220	raw := NoMethod(*s)
2221	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2222}
2223
2224type AutoscalerAggregatedList struct {
2225	// Id: [Output Only] Unique identifier for the resource; defined by the
2226	// server.
2227	Id string `json:"id,omitempty"`
2228
2229	// Items: A list of AutoscalersScopedList resources.
2230	Items map[string]AutoscalersScopedList `json:"items,omitempty"`
2231
2232	// Kind: [Output Only] Type of resource. Always
2233	// compute#autoscalerAggregatedList for aggregated lists of autoscalers.
2234	Kind string `json:"kind,omitempty"`
2235
2236	// NextPageToken: [Output Only] This token allows you to get the next
2237	// page of results for list requests. If the number of results is larger
2238	// than maxResults, use the nextPageToken as a value for the query
2239	// parameter pageToken in the next list request. Subsequent list
2240	// requests will have their own nextPageToken to continue paging through
2241	// the results.
2242	NextPageToken string `json:"nextPageToken,omitempty"`
2243
2244	// SelfLink: [Output Only] Server-defined URL for this resource.
2245	SelfLink string `json:"selfLink,omitempty"`
2246
2247	// Warning: [Output Only] Informational warning message.
2248	Warning *AutoscalerAggregatedListWarning `json:"warning,omitempty"`
2249
2250	// ServerResponse contains the HTTP response code and headers from the
2251	// server.
2252	googleapi.ServerResponse `json:"-"`
2253
2254	// ForceSendFields is a list of field names (e.g. "Id") to
2255	// unconditionally include in API requests. By default, fields with
2256	// empty values are omitted from API requests. However, any non-pointer,
2257	// non-interface field appearing in ForceSendFields will be sent to the
2258	// server regardless of whether the field is empty or not. This may be
2259	// used to include empty fields in Patch requests.
2260	ForceSendFields []string `json:"-"`
2261
2262	// NullFields is a list of field names (e.g. "Id") to include in API
2263	// requests with the JSON null value. By default, fields with empty
2264	// values are omitted from API requests. However, any field with an
2265	// empty value appearing in NullFields will be sent to the server as
2266	// null. It is an error if a field in this list has a non-empty value.
2267	// This may be used to include null fields in Patch requests.
2268	NullFields []string `json:"-"`
2269}
2270
2271func (s *AutoscalerAggregatedList) MarshalJSON() ([]byte, error) {
2272	type NoMethod AutoscalerAggregatedList
2273	raw := NoMethod(*s)
2274	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2275}
2276
2277// AutoscalerAggregatedListWarning: [Output Only] Informational warning
2278// message.
2279type AutoscalerAggregatedListWarning struct {
2280	// Code: [Output Only] A warning code, if applicable. For example,
2281	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2282	// the response.
2283	//
2284	// Possible values:
2285	//   "CLEANUP_FAILED"
2286	//   "DEPRECATED_RESOURCE_USED"
2287	//   "DEPRECATED_TYPE_USED"
2288	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2289	//   "EXPERIMENTAL_TYPE_USED"
2290	//   "EXTERNAL_API_WARNING"
2291	//   "FIELD_VALUE_OVERRIDEN"
2292	//   "INJECTED_KERNELS_DEPRECATED"
2293	//   "MISSING_TYPE_DEPENDENCY"
2294	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2295	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2296	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2297	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2298	//   "NEXT_HOP_NOT_RUNNING"
2299	//   "NOT_CRITICAL_ERROR"
2300	//   "NO_RESULTS_ON_PAGE"
2301	//   "REQUIRED_TOS_AGREEMENT"
2302	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2303	//   "RESOURCE_NOT_DELETED"
2304	//   "SCHEMA_VALIDATION_IGNORED"
2305	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2306	//   "UNDECLARED_PROPERTIES"
2307	//   "UNREACHABLE"
2308	Code string `json:"code,omitempty"`
2309
2310	// Data: [Output Only] Metadata about this warning in key: value format.
2311	// For example:
2312	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2313	Data []*AutoscalerAggregatedListWarningData `json:"data,omitempty"`
2314
2315	// Message: [Output Only] A human-readable description of the warning
2316	// code.
2317	Message string `json:"message,omitempty"`
2318
2319	// ForceSendFields is a list of field names (e.g. "Code") to
2320	// unconditionally include in API requests. By default, fields with
2321	// empty values are omitted from API requests. However, any non-pointer,
2322	// non-interface field appearing in ForceSendFields will be sent to the
2323	// server regardless of whether the field is empty or not. This may be
2324	// used to include empty fields in Patch requests.
2325	ForceSendFields []string `json:"-"`
2326
2327	// NullFields is a list of field names (e.g. "Code") to include in API
2328	// requests with the JSON null value. By default, fields with empty
2329	// values are omitted from API requests. However, any field with an
2330	// empty value appearing in NullFields will be sent to the server as
2331	// null. It is an error if a field in this list has a non-empty value.
2332	// This may be used to include null fields in Patch requests.
2333	NullFields []string `json:"-"`
2334}
2335
2336func (s *AutoscalerAggregatedListWarning) MarshalJSON() ([]byte, error) {
2337	type NoMethod AutoscalerAggregatedListWarning
2338	raw := NoMethod(*s)
2339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2340}
2341
2342type AutoscalerAggregatedListWarningData struct {
2343	// Key: [Output Only] A key that provides more detail on the warning
2344	// being returned. For example, for warnings where there are no results
2345	// in a list request for a particular zone, this key might be scope and
2346	// the key value might be the zone name. Other examples might be a key
2347	// indicating a deprecated resource and a suggested replacement, or a
2348	// warning about invalid network settings (for example, if an instance
2349	// attempts to perform IP forwarding but is not enabled for IP
2350	// forwarding).
2351	Key string `json:"key,omitempty"`
2352
2353	// Value: [Output Only] A warning data value corresponding to the key.
2354	Value string `json:"value,omitempty"`
2355
2356	// ForceSendFields is a list of field names (e.g. "Key") to
2357	// unconditionally include in API requests. By default, fields with
2358	// empty values are omitted from API requests. However, any non-pointer,
2359	// non-interface field appearing in ForceSendFields will be sent to the
2360	// server regardless of whether the field is empty or not. This may be
2361	// used to include empty fields in Patch requests.
2362	ForceSendFields []string `json:"-"`
2363
2364	// NullFields is a list of field names (e.g. "Key") to include in API
2365	// requests with the JSON null value. By default, fields with empty
2366	// values are omitted from API requests. However, any field with an
2367	// empty value appearing in NullFields will be sent to the server as
2368	// null. It is an error if a field in this list has a non-empty value.
2369	// This may be used to include null fields in Patch requests.
2370	NullFields []string `json:"-"`
2371}
2372
2373func (s *AutoscalerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
2374	type NoMethod AutoscalerAggregatedListWarningData
2375	raw := NoMethod(*s)
2376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2377}
2378
2379// AutoscalerList: Contains a list of Autoscaler resources.
2380type AutoscalerList struct {
2381	// Id: [Output Only] Unique identifier for the resource; defined by the
2382	// server.
2383	Id string `json:"id,omitempty"`
2384
2385	// Items: A list of Autoscaler resources.
2386	Items []*Autoscaler `json:"items,omitempty"`
2387
2388	// Kind: [Output Only] Type of resource. Always compute#autoscalerList
2389	// for lists of autoscalers.
2390	Kind string `json:"kind,omitempty"`
2391
2392	// NextPageToken: [Output Only] This token allows you to get the next
2393	// page of results for list requests. If the number of results is larger
2394	// than maxResults, use the nextPageToken as a value for the query
2395	// parameter pageToken in the next list request. Subsequent list
2396	// requests will have their own nextPageToken to continue paging through
2397	// the results.
2398	NextPageToken string `json:"nextPageToken,omitempty"`
2399
2400	// SelfLink: [Output Only] Server-defined URL for this resource.
2401	SelfLink string `json:"selfLink,omitempty"`
2402
2403	// Warning: [Output Only] Informational warning message.
2404	Warning *AutoscalerListWarning `json:"warning,omitempty"`
2405
2406	// ServerResponse contains the HTTP response code and headers from the
2407	// server.
2408	googleapi.ServerResponse `json:"-"`
2409
2410	// ForceSendFields is a list of field names (e.g. "Id") to
2411	// unconditionally include in API requests. By default, fields with
2412	// empty values are omitted from API requests. However, any non-pointer,
2413	// non-interface field appearing in ForceSendFields will be sent to the
2414	// server regardless of whether the field is empty or not. This may be
2415	// used to include empty fields in Patch requests.
2416	ForceSendFields []string `json:"-"`
2417
2418	// NullFields is a list of field names (e.g. "Id") to include in API
2419	// requests with the JSON null value. By default, fields with empty
2420	// values are omitted from API requests. However, any field with an
2421	// empty value appearing in NullFields will be sent to the server as
2422	// null. It is an error if a field in this list has a non-empty value.
2423	// This may be used to include null fields in Patch requests.
2424	NullFields []string `json:"-"`
2425}
2426
2427func (s *AutoscalerList) MarshalJSON() ([]byte, error) {
2428	type NoMethod AutoscalerList
2429	raw := NoMethod(*s)
2430	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2431}
2432
2433// AutoscalerListWarning: [Output Only] Informational warning message.
2434type AutoscalerListWarning struct {
2435	// Code: [Output Only] A warning code, if applicable. For example,
2436	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2437	// the response.
2438	//
2439	// Possible values:
2440	//   "CLEANUP_FAILED"
2441	//   "DEPRECATED_RESOURCE_USED"
2442	//   "DEPRECATED_TYPE_USED"
2443	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2444	//   "EXPERIMENTAL_TYPE_USED"
2445	//   "EXTERNAL_API_WARNING"
2446	//   "FIELD_VALUE_OVERRIDEN"
2447	//   "INJECTED_KERNELS_DEPRECATED"
2448	//   "MISSING_TYPE_DEPENDENCY"
2449	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2450	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2451	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2452	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2453	//   "NEXT_HOP_NOT_RUNNING"
2454	//   "NOT_CRITICAL_ERROR"
2455	//   "NO_RESULTS_ON_PAGE"
2456	//   "REQUIRED_TOS_AGREEMENT"
2457	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2458	//   "RESOURCE_NOT_DELETED"
2459	//   "SCHEMA_VALIDATION_IGNORED"
2460	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2461	//   "UNDECLARED_PROPERTIES"
2462	//   "UNREACHABLE"
2463	Code string `json:"code,omitempty"`
2464
2465	// Data: [Output Only] Metadata about this warning in key: value format.
2466	// For example:
2467	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2468	Data []*AutoscalerListWarningData `json:"data,omitempty"`
2469
2470	// Message: [Output Only] A human-readable description of the warning
2471	// code.
2472	Message string `json:"message,omitempty"`
2473
2474	// ForceSendFields is a list of field names (e.g. "Code") to
2475	// unconditionally include in API requests. By default, fields with
2476	// empty values are omitted from API requests. However, any non-pointer,
2477	// non-interface field appearing in ForceSendFields will be sent to the
2478	// server regardless of whether the field is empty or not. This may be
2479	// used to include empty fields in Patch requests.
2480	ForceSendFields []string `json:"-"`
2481
2482	// NullFields is a list of field names (e.g. "Code") to include in API
2483	// requests with the JSON null value. By default, fields with empty
2484	// values are omitted from API requests. However, any field with an
2485	// empty value appearing in NullFields will be sent to the server as
2486	// null. It is an error if a field in this list has a non-empty value.
2487	// This may be used to include null fields in Patch requests.
2488	NullFields []string `json:"-"`
2489}
2490
2491func (s *AutoscalerListWarning) MarshalJSON() ([]byte, error) {
2492	type NoMethod AutoscalerListWarning
2493	raw := NoMethod(*s)
2494	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2495}
2496
2497type AutoscalerListWarningData struct {
2498	// Key: [Output Only] A key that provides more detail on the warning
2499	// being returned. For example, for warnings where there are no results
2500	// in a list request for a particular zone, this key might be scope and
2501	// the key value might be the zone name. Other examples might be a key
2502	// indicating a deprecated resource and a suggested replacement, or a
2503	// warning about invalid network settings (for example, if an instance
2504	// attempts to perform IP forwarding but is not enabled for IP
2505	// forwarding).
2506	Key string `json:"key,omitempty"`
2507
2508	// Value: [Output Only] A warning data value corresponding to the key.
2509	Value string `json:"value,omitempty"`
2510
2511	// ForceSendFields is a list of field names (e.g. "Key") to
2512	// unconditionally include in API requests. By default, fields with
2513	// empty values are omitted from API requests. However, any non-pointer,
2514	// non-interface field appearing in ForceSendFields will be sent to the
2515	// server regardless of whether the field is empty or not. This may be
2516	// used to include empty fields in Patch requests.
2517	ForceSendFields []string `json:"-"`
2518
2519	// NullFields is a list of field names (e.g. "Key") to include in API
2520	// requests with the JSON null value. By default, fields with empty
2521	// values are omitted from API requests. However, any field with an
2522	// empty value appearing in NullFields will be sent to the server as
2523	// null. It is an error if a field in this list has a non-empty value.
2524	// This may be used to include null fields in Patch requests.
2525	NullFields []string `json:"-"`
2526}
2527
2528func (s *AutoscalerListWarningData) MarshalJSON() ([]byte, error) {
2529	type NoMethod AutoscalerListWarningData
2530	raw := NoMethod(*s)
2531	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2532}
2533
2534type AutoscalerStatusDetails struct {
2535	// Message: The status message.
2536	Message string `json:"message,omitempty"`
2537
2538	// Type: The type of error returned.
2539	//
2540	// Possible values:
2541	//   "ALL_INSTANCES_UNHEALTHY"
2542	//   "BACKEND_SERVICE_DOES_NOT_EXIST"
2543	//   "CAPPED_AT_MAX_NUM_REPLICAS"
2544	//   "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE"
2545	//   "CUSTOM_METRIC_INVALID"
2546	//   "MIN_EQUALS_MAX"
2547	//   "MISSING_CUSTOM_METRIC_DATA_POINTS"
2548	//   "MISSING_LOAD_BALANCING_DATA_POINTS"
2549	//   "MORE_THAN_ONE_BACKEND_SERVICE"
2550	//   "NOT_ENOUGH_QUOTA_AVAILABLE"
2551	//   "REGION_RESOURCE_STOCKOUT"
2552	//   "SCALING_TARGET_DOES_NOT_EXIST"
2553	//   "UNKNOWN"
2554	//   "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION"
2555	//   "ZONE_RESOURCE_STOCKOUT"
2556	Type string `json:"type,omitempty"`
2557
2558	// ForceSendFields is a list of field names (e.g. "Message") to
2559	// unconditionally include in API requests. By default, fields with
2560	// empty values are omitted from API requests. However, any non-pointer,
2561	// non-interface field appearing in ForceSendFields will be sent to the
2562	// server regardless of whether the field is empty or not. This may be
2563	// used to include empty fields in Patch requests.
2564	ForceSendFields []string `json:"-"`
2565
2566	// NullFields is a list of field names (e.g. "Message") to include in
2567	// API requests with the JSON null value. By default, fields with empty
2568	// values are omitted from API requests. However, any field with an
2569	// empty value appearing in NullFields will be sent to the server as
2570	// null. It is an error if a field in this list has a non-empty value.
2571	// This may be used to include null fields in Patch requests.
2572	NullFields []string `json:"-"`
2573}
2574
2575func (s *AutoscalerStatusDetails) MarshalJSON() ([]byte, error) {
2576	type NoMethod AutoscalerStatusDetails
2577	raw := NoMethod(*s)
2578	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2579}
2580
2581type AutoscalersScopedList struct {
2582	// Autoscalers: [Output Only] List of autoscalers contained in this
2583	// scope.
2584	Autoscalers []*Autoscaler `json:"autoscalers,omitempty"`
2585
2586	// Warning: [Output Only] Informational warning which replaces the list
2587	// of autoscalers when the list is empty.
2588	Warning *AutoscalersScopedListWarning `json:"warning,omitempty"`
2589
2590	// ForceSendFields is a list of field names (e.g. "Autoscalers") to
2591	// unconditionally include in API requests. By default, fields with
2592	// empty values are omitted from API requests. However, any non-pointer,
2593	// non-interface field appearing in ForceSendFields will be sent to the
2594	// server regardless of whether the field is empty or not. This may be
2595	// used to include empty fields in Patch requests.
2596	ForceSendFields []string `json:"-"`
2597
2598	// NullFields is a list of field names (e.g. "Autoscalers") to include
2599	// in API requests with the JSON null value. By default, fields with
2600	// empty values are omitted from API requests. However, any field with
2601	// an empty value appearing in NullFields will be sent to the server as
2602	// null. It is an error if a field in this list has a non-empty value.
2603	// This may be used to include null fields in Patch requests.
2604	NullFields []string `json:"-"`
2605}
2606
2607func (s *AutoscalersScopedList) MarshalJSON() ([]byte, error) {
2608	type NoMethod AutoscalersScopedList
2609	raw := NoMethod(*s)
2610	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2611}
2612
2613// AutoscalersScopedListWarning: [Output Only] Informational warning
2614// which replaces the list of autoscalers when the list is empty.
2615type AutoscalersScopedListWarning struct {
2616	// Code: [Output Only] A warning code, if applicable. For example,
2617	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2618	// the response.
2619	//
2620	// Possible values:
2621	//   "CLEANUP_FAILED"
2622	//   "DEPRECATED_RESOURCE_USED"
2623	//   "DEPRECATED_TYPE_USED"
2624	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2625	//   "EXPERIMENTAL_TYPE_USED"
2626	//   "EXTERNAL_API_WARNING"
2627	//   "FIELD_VALUE_OVERRIDEN"
2628	//   "INJECTED_KERNELS_DEPRECATED"
2629	//   "MISSING_TYPE_DEPENDENCY"
2630	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2631	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2632	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2633	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2634	//   "NEXT_HOP_NOT_RUNNING"
2635	//   "NOT_CRITICAL_ERROR"
2636	//   "NO_RESULTS_ON_PAGE"
2637	//   "REQUIRED_TOS_AGREEMENT"
2638	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2639	//   "RESOURCE_NOT_DELETED"
2640	//   "SCHEMA_VALIDATION_IGNORED"
2641	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2642	//   "UNDECLARED_PROPERTIES"
2643	//   "UNREACHABLE"
2644	Code string `json:"code,omitempty"`
2645
2646	// Data: [Output Only] Metadata about this warning in key: value format.
2647	// For example:
2648	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2649	Data []*AutoscalersScopedListWarningData `json:"data,omitempty"`
2650
2651	// Message: [Output Only] A human-readable description of the warning
2652	// code.
2653	Message string `json:"message,omitempty"`
2654
2655	// ForceSendFields is a list of field names (e.g. "Code") to
2656	// unconditionally include in API requests. By default, fields with
2657	// empty values are omitted from API requests. However, any non-pointer,
2658	// non-interface field appearing in ForceSendFields will be sent to the
2659	// server regardless of whether the field is empty or not. This may be
2660	// used to include empty fields in Patch requests.
2661	ForceSendFields []string `json:"-"`
2662
2663	// NullFields is a list of field names (e.g. "Code") to include in API
2664	// requests with the JSON null value. By default, fields with empty
2665	// values are omitted from API requests. However, any field with an
2666	// empty value appearing in NullFields will be sent to the server as
2667	// null. It is an error if a field in this list has a non-empty value.
2668	// This may be used to include null fields in Patch requests.
2669	NullFields []string `json:"-"`
2670}
2671
2672func (s *AutoscalersScopedListWarning) MarshalJSON() ([]byte, error) {
2673	type NoMethod AutoscalersScopedListWarning
2674	raw := NoMethod(*s)
2675	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2676}
2677
2678type AutoscalersScopedListWarningData struct {
2679	// Key: [Output Only] A key that provides more detail on the warning
2680	// being returned. For example, for warnings where there are no results
2681	// in a list request for a particular zone, this key might be scope and
2682	// the key value might be the zone name. Other examples might be a key
2683	// indicating a deprecated resource and a suggested replacement, or a
2684	// warning about invalid network settings (for example, if an instance
2685	// attempts to perform IP forwarding but is not enabled for IP
2686	// forwarding).
2687	Key string `json:"key,omitempty"`
2688
2689	// Value: [Output Only] A warning data value corresponding to the key.
2690	Value string `json:"value,omitempty"`
2691
2692	// ForceSendFields is a list of field names (e.g. "Key") to
2693	// unconditionally include in API requests. By default, fields with
2694	// empty values are omitted from API requests. However, any non-pointer,
2695	// non-interface field appearing in ForceSendFields will be sent to the
2696	// server regardless of whether the field is empty or not. This may be
2697	// used to include empty fields in Patch requests.
2698	ForceSendFields []string `json:"-"`
2699
2700	// NullFields is a list of field names (e.g. "Key") to include in API
2701	// requests with the JSON null value. By default, fields with empty
2702	// values are omitted from API requests. However, any field with an
2703	// empty value appearing in NullFields will be sent to the server as
2704	// null. It is an error if a field in this list has a non-empty value.
2705	// This may be used to include null fields in Patch requests.
2706	NullFields []string `json:"-"`
2707}
2708
2709func (s *AutoscalersScopedListWarningData) MarshalJSON() ([]byte, error) {
2710	type NoMethod AutoscalersScopedListWarningData
2711	raw := NoMethod(*s)
2712	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2713}
2714
2715// AutoscalingPolicy: Cloud Autoscaler policy.
2716type AutoscalingPolicy struct {
2717	// CoolDownPeriodSec: The number of seconds that the autoscaler should
2718	// wait before it starts collecting information from a new instance.
2719	// This prevents the autoscaler from collecting information when the
2720	// instance is initializing, during which the collected usage would not
2721	// be reliable. The default time autoscaler waits is 60
2722	// seconds.
2723	//
2724	// Virtual machine initialization times might vary because of numerous
2725	// factors. We recommend that you test how long an instance may take to
2726	// initialize. To do this, create an instance and time the startup
2727	// process.
2728	CoolDownPeriodSec int64 `json:"coolDownPeriodSec,omitempty"`
2729
2730	// CpuUtilization: Defines the CPU utilization policy that allows the
2731	// autoscaler to scale based on the average CPU utilization of a managed
2732	// instance group.
2733	CpuUtilization *AutoscalingPolicyCpuUtilization `json:"cpuUtilization,omitempty"`
2734
2735	// CustomMetricUtilizations: Configuration parameters of autoscaling
2736	// based on a custom metric.
2737	CustomMetricUtilizations []*AutoscalingPolicyCustomMetricUtilization `json:"customMetricUtilizations,omitempty"`
2738
2739	// LoadBalancingUtilization: Configuration parameters of autoscaling
2740	// based on load balancer.
2741	LoadBalancingUtilization *AutoscalingPolicyLoadBalancingUtilization `json:"loadBalancingUtilization,omitempty"`
2742
2743	// MaxNumReplicas: The maximum number of instances that the autoscaler
2744	// can scale up to. This is required when creating or updating an
2745	// autoscaler. The maximum number of replicas should not be lower than
2746	// minimal number of replicas.
2747	MaxNumReplicas int64 `json:"maxNumReplicas,omitempty"`
2748
2749	// MinNumReplicas: The minimum number of replicas that the autoscaler
2750	// can scale down to. This cannot be less than 0. If not provided,
2751	// autoscaler will choose a default value depending on maximum number of
2752	// instances allowed.
2753	MinNumReplicas int64 `json:"minNumReplicas,omitempty"`
2754
2755	// ForceSendFields is a list of field names (e.g. "CoolDownPeriodSec")
2756	// to unconditionally include in API requests. By default, fields with
2757	// empty values are omitted from API requests. However, any non-pointer,
2758	// non-interface field appearing in ForceSendFields will be sent to the
2759	// server regardless of whether the field is empty or not. This may be
2760	// used to include empty fields in Patch requests.
2761	ForceSendFields []string `json:"-"`
2762
2763	// NullFields is a list of field names (e.g. "CoolDownPeriodSec") to
2764	// include in API requests with the JSON null value. By default, fields
2765	// with empty values are omitted from API requests. However, any field
2766	// with an empty value appearing in NullFields will be sent to the
2767	// server as null. It is an error if a field in this list has a
2768	// non-empty value. This may be used to include null fields in Patch
2769	// requests.
2770	NullFields []string `json:"-"`
2771}
2772
2773func (s *AutoscalingPolicy) MarshalJSON() ([]byte, error) {
2774	type NoMethod AutoscalingPolicy
2775	raw := NoMethod(*s)
2776	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2777}
2778
2779// AutoscalingPolicyCpuUtilization: CPU utilization policy.
2780type AutoscalingPolicyCpuUtilization struct {
2781	// UtilizationTarget: The target CPU utilization that the autoscaler
2782	// should maintain. Must be a float value in the range (0, 1]. If not
2783	// specified, the default is 0.6.
2784	//
2785	// If the CPU level is below the target utilization, the autoscaler
2786	// scales down the number of instances until it reaches the minimum
2787	// number of instances you specified or until the average CPU of your
2788	// instances reaches the target utilization.
2789	//
2790	// If the average CPU is above the target utilization, the autoscaler
2791	// scales up until it reaches the maximum number of instances you
2792	// specified or until the average utilization reaches the target
2793	// utilization.
2794	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
2795
2796	// ForceSendFields is a list of field names (e.g. "UtilizationTarget")
2797	// to unconditionally include in API requests. By default, fields with
2798	// empty values are omitted from API requests. However, any non-pointer,
2799	// non-interface field appearing in ForceSendFields will be sent to the
2800	// server regardless of whether the field is empty or not. This may be
2801	// used to include empty fields in Patch requests.
2802	ForceSendFields []string `json:"-"`
2803
2804	// NullFields is a list of field names (e.g. "UtilizationTarget") to
2805	// include in API requests with the JSON null value. By default, fields
2806	// with empty values are omitted from API requests. However, any field
2807	// with an empty value appearing in NullFields will be sent to the
2808	// server as null. It is an error if a field in this list has a
2809	// non-empty value. This may be used to include null fields in Patch
2810	// requests.
2811	NullFields []string `json:"-"`
2812}
2813
2814func (s *AutoscalingPolicyCpuUtilization) MarshalJSON() ([]byte, error) {
2815	type NoMethod AutoscalingPolicyCpuUtilization
2816	raw := NoMethod(*s)
2817	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2818}
2819
2820func (s *AutoscalingPolicyCpuUtilization) UnmarshalJSON(data []byte) error {
2821	type NoMethod AutoscalingPolicyCpuUtilization
2822	var s1 struct {
2823		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
2824		*NoMethod
2825	}
2826	s1.NoMethod = (*NoMethod)(s)
2827	if err := json.Unmarshal(data, &s1); err != nil {
2828		return err
2829	}
2830	s.UtilizationTarget = float64(s1.UtilizationTarget)
2831	return nil
2832}
2833
2834// AutoscalingPolicyCustomMetricUtilization: Custom utilization metric
2835// policy.
2836type AutoscalingPolicyCustomMetricUtilization struct {
2837	// Metric: The identifier (type) of the Stackdriver Monitoring metric.
2838	// The metric cannot have negative values.
2839	//
2840	// The metric must have a value type of INT64 or DOUBLE.
2841	Metric string `json:"metric,omitempty"`
2842
2843	// UtilizationTarget: The target value of the metric that autoscaler
2844	// should maintain. This must be a positive value. A utilization metric
2845	// scales number of virtual machines handling requests to increase or
2846	// decrease proportionally to the metric.
2847	//
2848	// For example, a good metric to use as a utilization_target is
2849	// compute.googleapis.com/instance/network/received_bytes_count. The
2850	// autoscaler will work to keep this value constant for each of the
2851	// instances.
2852	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
2853
2854	// UtilizationTargetType: Defines how target utilization value is
2855	// expressed for a Stackdriver Monitoring metric. Either GAUGE,
2856	// DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default
2857	// is GAUGE.
2858	//
2859	// Possible values:
2860	//   "DELTA_PER_MINUTE"
2861	//   "DELTA_PER_SECOND"
2862	//   "GAUGE"
2863	UtilizationTargetType string `json:"utilizationTargetType,omitempty"`
2864
2865	// ForceSendFields is a list of field names (e.g. "Metric") to
2866	// unconditionally include in API requests. By default, fields with
2867	// empty values are omitted from API requests. However, any non-pointer,
2868	// non-interface field appearing in ForceSendFields will be sent to the
2869	// server regardless of whether the field is empty or not. This may be
2870	// used to include empty fields in Patch requests.
2871	ForceSendFields []string `json:"-"`
2872
2873	// NullFields is a list of field names (e.g. "Metric") to include in API
2874	// requests with the JSON null value. By default, fields with empty
2875	// values are omitted from API requests. However, any field with an
2876	// empty value appearing in NullFields will be sent to the server as
2877	// null. It is an error if a field in this list has a non-empty value.
2878	// This may be used to include null fields in Patch requests.
2879	NullFields []string `json:"-"`
2880}
2881
2882func (s *AutoscalingPolicyCustomMetricUtilization) MarshalJSON() ([]byte, error) {
2883	type NoMethod AutoscalingPolicyCustomMetricUtilization
2884	raw := NoMethod(*s)
2885	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2886}
2887
2888func (s *AutoscalingPolicyCustomMetricUtilization) UnmarshalJSON(data []byte) error {
2889	type NoMethod AutoscalingPolicyCustomMetricUtilization
2890	var s1 struct {
2891		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
2892		*NoMethod
2893	}
2894	s1.NoMethod = (*NoMethod)(s)
2895	if err := json.Unmarshal(data, &s1); err != nil {
2896		return err
2897	}
2898	s.UtilizationTarget = float64(s1.UtilizationTarget)
2899	return nil
2900}
2901
2902// AutoscalingPolicyLoadBalancingUtilization: Configuration parameters
2903// of autoscaling based on load balancing.
2904type AutoscalingPolicyLoadBalancingUtilization struct {
2905	// UtilizationTarget: Fraction of backend capacity utilization (set in
2906	// HTTP(s) load balancing configuration) that autoscaler should
2907	// maintain. Must be a positive float value. If not defined, the default
2908	// is 0.8.
2909	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
2910
2911	// ForceSendFields is a list of field names (e.g. "UtilizationTarget")
2912	// to unconditionally include in API requests. By default, fields with
2913	// empty values are omitted from API requests. However, any non-pointer,
2914	// non-interface field appearing in ForceSendFields will be sent to the
2915	// server regardless of whether the field is empty or not. This may be
2916	// used to include empty fields in Patch requests.
2917	ForceSendFields []string `json:"-"`
2918
2919	// NullFields is a list of field names (e.g. "UtilizationTarget") to
2920	// include in API requests with the JSON null value. By default, fields
2921	// with empty values are omitted from API requests. However, any field
2922	// with an empty value appearing in NullFields will be sent to the
2923	// server as null. It is an error if a field in this list has a
2924	// non-empty value. This may be used to include null fields in Patch
2925	// requests.
2926	NullFields []string `json:"-"`
2927}
2928
2929func (s *AutoscalingPolicyLoadBalancingUtilization) MarshalJSON() ([]byte, error) {
2930	type NoMethod AutoscalingPolicyLoadBalancingUtilization
2931	raw := NoMethod(*s)
2932	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2933}
2934
2935func (s *AutoscalingPolicyLoadBalancingUtilization) UnmarshalJSON(data []byte) error {
2936	type NoMethod AutoscalingPolicyLoadBalancingUtilization
2937	var s1 struct {
2938		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
2939		*NoMethod
2940	}
2941	s1.NoMethod = (*NoMethod)(s)
2942	if err := json.Unmarshal(data, &s1); err != nil {
2943		return err
2944	}
2945	s.UtilizationTarget = float64(s1.UtilizationTarget)
2946	return nil
2947}
2948
2949// Backend: Message containing information of one individual backend.
2950type Backend struct {
2951	// BalancingMode: Specifies the balancing mode for this backend. For
2952	// global HTTP(S) or TCP/SSL load balancing, the default is UTILIZATION.
2953	// Valid values are UTILIZATION, RATE (for HTTP(S)) and CONNECTION (for
2954	// TCP/SSL).
2955	//
2956	// For Internal Load Balancing, the default and only supported mode is
2957	// CONNECTION.
2958	//
2959	// Possible values:
2960	//   "CONNECTION"
2961	//   "RATE"
2962	//   "UTILIZATION"
2963	BalancingMode string `json:"balancingMode,omitempty"`
2964
2965	// CapacityScaler: A multiplier applied to the group's maximum servicing
2966	// capacity (based on UTILIZATION, RATE or CONNECTION). Default value is
2967	// 1, which means the group will serve up to 100% of its configured
2968	// capacity (depending on balancingMode). A setting of 0 means the group
2969	// is completely drained, offering 0% of its available Capacity. Valid
2970	// range is [0.0,1.0].
2971	//
2972	// This cannot be used for internal load balancing.
2973	CapacityScaler float64 `json:"capacityScaler,omitempty"`
2974
2975	// Description: An optional description of this resource. Provide this
2976	// property when you create the resource.
2977	Description string `json:"description,omitempty"`
2978
2979	// Group: The fully-qualified URL of a Instance Group resource. This
2980	// instance group defines the list of instances that serve traffic.
2981	// Member virtual machine instances from each instance group must live
2982	// in the same zone as the instance group itself. No two backends in a
2983	// backend service are allowed to use same Instance Group
2984	// resource.
2985	//
2986	// Note that you must specify an Instance Group resource using the
2987	// fully-qualified URL, rather than a partial URL.
2988	//
2989	// When the BackendService has load balancing scheme INTERNAL, the
2990	// instance group must be within the same region as the BackendService.
2991	Group string `json:"group,omitempty"`
2992
2993	// MaxConnections: The max number of simultaneous connections for the
2994	// group. Can be used with either CONNECTION or UTILIZATION balancing
2995	// modes. For CONNECTION mode, either maxConnections or
2996	// maxConnectionsPerInstance must be set.
2997	//
2998	// This cannot be used for internal load balancing.
2999	MaxConnections int64 `json:"maxConnections,omitempty"`
3000
3001	// MaxConnectionsPerInstance: The max number of simultaneous connections
3002	// that a single backend instance can handle. This is used to calculate
3003	// the capacity of the group. Can be used in either CONNECTION or
3004	// UTILIZATION balancing modes. For CONNECTION mode, either
3005	// maxConnections or maxConnectionsPerInstance must be set.
3006	//
3007	// This cannot be used for internal load balancing.
3008	MaxConnectionsPerInstance int64 `json:"maxConnectionsPerInstance,omitempty"`
3009
3010	// MaxRate: The max requests per second (RPS) of the group. Can be used
3011	// with either RATE or UTILIZATION balancing modes, but required if RATE
3012	// mode. For RATE mode, either maxRate or maxRatePerInstance must be
3013	// set.
3014	//
3015	// This cannot be used for internal load balancing.
3016	MaxRate int64 `json:"maxRate,omitempty"`
3017
3018	// MaxRatePerInstance: The max requests per second (RPS) that a single
3019	// backend instance can handle. This is used to calculate the capacity
3020	// of the group. Can be used in either balancing mode. For RATE mode,
3021	// either maxRate or maxRatePerInstance must be set.
3022	//
3023	// This cannot be used for internal load balancing.
3024	MaxRatePerInstance float64 `json:"maxRatePerInstance,omitempty"`
3025
3026	// MaxUtilization: Used when balancingMode is UTILIZATION. This ratio
3027	// defines the CPU utilization target for the group. The default is 0.8.
3028	// Valid range is [0.0, 1.0].
3029	//
3030	// This cannot be used for internal load balancing.
3031	MaxUtilization float64 `json:"maxUtilization,omitempty"`
3032
3033	// ForceSendFields is a list of field names (e.g. "BalancingMode") to
3034	// unconditionally include in API requests. By default, fields with
3035	// empty values are omitted from API requests. However, any non-pointer,
3036	// non-interface field appearing in ForceSendFields will be sent to the
3037	// server regardless of whether the field is empty or not. This may be
3038	// used to include empty fields in Patch requests.
3039	ForceSendFields []string `json:"-"`
3040
3041	// NullFields is a list of field names (e.g. "BalancingMode") to include
3042	// in API requests with the JSON null value. By default, fields with
3043	// empty values are omitted from API requests. However, any field with
3044	// an empty value appearing in NullFields will be sent to the server as
3045	// null. It is an error if a field in this list has a non-empty value.
3046	// This may be used to include null fields in Patch requests.
3047	NullFields []string `json:"-"`
3048}
3049
3050func (s *Backend) MarshalJSON() ([]byte, error) {
3051	type NoMethod Backend
3052	raw := NoMethod(*s)
3053	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3054}
3055
3056func (s *Backend) UnmarshalJSON(data []byte) error {
3057	type NoMethod Backend
3058	var s1 struct {
3059		CapacityScaler     gensupport.JSONFloat64 `json:"capacityScaler"`
3060		MaxRatePerInstance gensupport.JSONFloat64 `json:"maxRatePerInstance"`
3061		MaxUtilization     gensupport.JSONFloat64 `json:"maxUtilization"`
3062		*NoMethod
3063	}
3064	s1.NoMethod = (*NoMethod)(s)
3065	if err := json.Unmarshal(data, &s1); err != nil {
3066		return err
3067	}
3068	s.CapacityScaler = float64(s1.CapacityScaler)
3069	s.MaxRatePerInstance = float64(s1.MaxRatePerInstance)
3070	s.MaxUtilization = float64(s1.MaxUtilization)
3071	return nil
3072}
3073
3074// BackendBucket: A BackendBucket resource. This resource defines a
3075// Cloud Storage bucket.
3076type BackendBucket struct {
3077	// BucketName: Cloud Storage bucket name.
3078	BucketName string `json:"bucketName,omitempty"`
3079
3080	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
3081	// format.
3082	CreationTimestamp string `json:"creationTimestamp,omitempty"`
3083
3084	// Description: An optional textual description of the resource;
3085	// provided by the client when the resource is created.
3086	Description string `json:"description,omitempty"`
3087
3088	// EnableCdn: If true, enable Cloud CDN for this BackendBucket.
3089	EnableCdn bool `json:"enableCdn,omitempty"`
3090
3091	// Id: [Output Only] Unique identifier for the resource; defined by the
3092	// server.
3093	Id uint64 `json:"id,omitempty,string"`
3094
3095	// Kind: Type of the resource.
3096	Kind string `json:"kind,omitempty"`
3097
3098	// Name: Name of the resource. Provided by the client when the resource
3099	// is created. The name must be 1-63 characters long, and comply with
3100	// RFC1035. Specifically, the name must be 1-63 characters long and
3101	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
3102	// the first character must be a lowercase letter, and all following
3103	// characters must be a dash, lowercase letter, or digit, except the
3104	// last character, which cannot be a dash.
3105	Name string `json:"name,omitempty"`
3106
3107	// SelfLink: [Output Only] Server-defined URL for the resource.
3108	SelfLink string `json:"selfLink,omitempty"`
3109
3110	// ServerResponse contains the HTTP response code and headers from the
3111	// server.
3112	googleapi.ServerResponse `json:"-"`
3113
3114	// ForceSendFields is a list of field names (e.g. "BucketName") to
3115	// unconditionally include in API requests. By default, fields with
3116	// empty values are omitted from API requests. However, any non-pointer,
3117	// non-interface field appearing in ForceSendFields will be sent to the
3118	// server regardless of whether the field is empty or not. This may be
3119	// used to include empty fields in Patch requests.
3120	ForceSendFields []string `json:"-"`
3121
3122	// NullFields is a list of field names (e.g. "BucketName") to include in
3123	// API requests with the JSON null value. By default, fields with empty
3124	// values are omitted from API requests. However, any field with an
3125	// empty value appearing in NullFields will be sent to the server as
3126	// null. It is an error if a field in this list has a non-empty value.
3127	// This may be used to include null fields in Patch requests.
3128	NullFields []string `json:"-"`
3129}
3130
3131func (s *BackendBucket) MarshalJSON() ([]byte, error) {
3132	type NoMethod BackendBucket
3133	raw := NoMethod(*s)
3134	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3135}
3136
3137// BackendBucketList: Contains a list of BackendBucket resources.
3138type BackendBucketList struct {
3139	// Id: [Output Only] Unique identifier for the resource; defined by the
3140	// server.
3141	Id string `json:"id,omitempty"`
3142
3143	// Items: A list of BackendBucket resources.
3144	Items []*BackendBucket `json:"items,omitempty"`
3145
3146	// Kind: Type of resource.
3147	Kind string `json:"kind,omitempty"`
3148
3149	// NextPageToken: [Output Only] This token allows you to get the next
3150	// page of results for list requests. If the number of results is larger
3151	// than maxResults, use the nextPageToken as a value for the query
3152	// parameter pageToken in the next list request. Subsequent list
3153	// requests will have their own nextPageToken to continue paging through
3154	// the results.
3155	NextPageToken string `json:"nextPageToken,omitempty"`
3156
3157	// SelfLink: [Output Only] Server-defined URL for this resource.
3158	SelfLink string `json:"selfLink,omitempty"`
3159
3160	// Warning: [Output Only] Informational warning message.
3161	Warning *BackendBucketListWarning `json:"warning,omitempty"`
3162
3163	// ServerResponse contains the HTTP response code and headers from the
3164	// server.
3165	googleapi.ServerResponse `json:"-"`
3166
3167	// ForceSendFields is a list of field names (e.g. "Id") to
3168	// unconditionally include in API requests. By default, fields with
3169	// empty values are omitted from API requests. However, any non-pointer,
3170	// non-interface field appearing in ForceSendFields will be sent to the
3171	// server regardless of whether the field is empty or not. This may be
3172	// used to include empty fields in Patch requests.
3173	ForceSendFields []string `json:"-"`
3174
3175	// NullFields is a list of field names (e.g. "Id") to include in API
3176	// requests with the JSON null value. By default, fields with empty
3177	// values are omitted from API requests. However, any field with an
3178	// empty value appearing in NullFields will be sent to the server as
3179	// null. It is an error if a field in this list has a non-empty value.
3180	// This may be used to include null fields in Patch requests.
3181	NullFields []string `json:"-"`
3182}
3183
3184func (s *BackendBucketList) MarshalJSON() ([]byte, error) {
3185	type NoMethod BackendBucketList
3186	raw := NoMethod(*s)
3187	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3188}
3189
3190// BackendBucketListWarning: [Output Only] Informational warning
3191// message.
3192type BackendBucketListWarning struct {
3193	// Code: [Output Only] A warning code, if applicable. For example,
3194	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3195	// the response.
3196	//
3197	// Possible values:
3198	//   "CLEANUP_FAILED"
3199	//   "DEPRECATED_RESOURCE_USED"
3200	//   "DEPRECATED_TYPE_USED"
3201	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3202	//   "EXPERIMENTAL_TYPE_USED"
3203	//   "EXTERNAL_API_WARNING"
3204	//   "FIELD_VALUE_OVERRIDEN"
3205	//   "INJECTED_KERNELS_DEPRECATED"
3206	//   "MISSING_TYPE_DEPENDENCY"
3207	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3208	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3209	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3210	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3211	//   "NEXT_HOP_NOT_RUNNING"
3212	//   "NOT_CRITICAL_ERROR"
3213	//   "NO_RESULTS_ON_PAGE"
3214	//   "REQUIRED_TOS_AGREEMENT"
3215	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3216	//   "RESOURCE_NOT_DELETED"
3217	//   "SCHEMA_VALIDATION_IGNORED"
3218	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3219	//   "UNDECLARED_PROPERTIES"
3220	//   "UNREACHABLE"
3221	Code string `json:"code,omitempty"`
3222
3223	// Data: [Output Only] Metadata about this warning in key: value format.
3224	// For example:
3225	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3226	Data []*BackendBucketListWarningData `json:"data,omitempty"`
3227
3228	// Message: [Output Only] A human-readable description of the warning
3229	// code.
3230	Message string `json:"message,omitempty"`
3231
3232	// ForceSendFields is a list of field names (e.g. "Code") to
3233	// unconditionally include in API requests. By default, fields with
3234	// empty values are omitted from API requests. However, any non-pointer,
3235	// non-interface field appearing in ForceSendFields will be sent to the
3236	// server regardless of whether the field is empty or not. This may be
3237	// used to include empty fields in Patch requests.
3238	ForceSendFields []string `json:"-"`
3239
3240	// NullFields is a list of field names (e.g. "Code") to include in API
3241	// requests with the JSON null value. By default, fields with empty
3242	// values are omitted from API requests. However, any field with an
3243	// empty value appearing in NullFields will be sent to the server as
3244	// null. It is an error if a field in this list has a non-empty value.
3245	// This may be used to include null fields in Patch requests.
3246	NullFields []string `json:"-"`
3247}
3248
3249func (s *BackendBucketListWarning) MarshalJSON() ([]byte, error) {
3250	type NoMethod BackendBucketListWarning
3251	raw := NoMethod(*s)
3252	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3253}
3254
3255type BackendBucketListWarningData struct {
3256	// Key: [Output Only] A key that provides more detail on the warning
3257	// being returned. For example, for warnings where there are no results
3258	// in a list request for a particular zone, this key might be scope and
3259	// the key value might be the zone name. Other examples might be a key
3260	// indicating a deprecated resource and a suggested replacement, or a
3261	// warning about invalid network settings (for example, if an instance
3262	// attempts to perform IP forwarding but is not enabled for IP
3263	// forwarding).
3264	Key string `json:"key,omitempty"`
3265
3266	// Value: [Output Only] A warning data value corresponding to the key.
3267	Value string `json:"value,omitempty"`
3268
3269	// ForceSendFields is a list of field names (e.g. "Key") to
3270	// unconditionally include in API requests. By default, fields with
3271	// empty values are omitted from API requests. However, any non-pointer,
3272	// non-interface field appearing in ForceSendFields will be sent to the
3273	// server regardless of whether the field is empty or not. This may be
3274	// used to include empty fields in Patch requests.
3275	ForceSendFields []string `json:"-"`
3276
3277	// NullFields is a list of field names (e.g. "Key") to include in API
3278	// requests with the JSON null value. By default, fields with empty
3279	// values are omitted from API requests. However, any field with an
3280	// empty value appearing in NullFields will be sent to the server as
3281	// null. It is an error if a field in this list has a non-empty value.
3282	// This may be used to include null fields in Patch requests.
3283	NullFields []string `json:"-"`
3284}
3285
3286func (s *BackendBucketListWarningData) MarshalJSON() ([]byte, error) {
3287	type NoMethod BackendBucketListWarningData
3288	raw := NoMethod(*s)
3289	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3290}
3291
3292// BackendService: A BackendService resource. This resource defines a
3293// group of backend virtual machines and their serving capacity. (==
3294// resource_for v1.backendService ==) (== resource_for
3295// beta.backendService ==)
3296type BackendService struct {
3297	// AffinityCookieTtlSec: Lifetime of cookies in seconds if
3298	// session_affinity is GENERATED_COOKIE. If set to 0, the cookie is
3299	// non-persistent and lasts only until the end of the browser session
3300	// (or equivalent). The maximum allowed value for TTL is one day.
3301	//
3302	// When the load balancing scheme is INTERNAL, this field is not used.
3303	AffinityCookieTtlSec int64 `json:"affinityCookieTtlSec,omitempty"`
3304
3305	// Backends: The list of backends that serve this BackendService.
3306	Backends []*Backend `json:"backends,omitempty"`
3307
3308	// CdnPolicy: Cloud CDN configuration for this BackendService.
3309	CdnPolicy *BackendServiceCdnPolicy `json:"cdnPolicy,omitempty"`
3310
3311	ConnectionDraining *ConnectionDraining `json:"connectionDraining,omitempty"`
3312
3313	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
3314	// format.
3315	CreationTimestamp string `json:"creationTimestamp,omitempty"`
3316
3317	// Description: An optional description of this resource. Provide this
3318	// property when you create the resource.
3319	Description string `json:"description,omitempty"`
3320
3321	// EnableCDN: If true, enable Cloud CDN for this BackendService.
3322	//
3323	// When the load balancing scheme is INTERNAL, this field is not used.
3324	EnableCDN bool `json:"enableCDN,omitempty"`
3325
3326	// Fingerprint: Fingerprint of this resource. A hash of the contents
3327	// stored in this object. This field is used in optimistic locking. This
3328	// field will be ignored when inserting a BackendService. An up-to-date
3329	// fingerprint must be provided in order to update the BackendService.
3330	Fingerprint string `json:"fingerprint,omitempty"`
3331
3332	// HealthChecks: The list of URLs to the HttpHealthCheck or
3333	// HttpsHealthCheck resource for health checking this BackendService.
3334	// Currently at most one health check can be specified, and a health
3335	// check is required for Compute Engine backend services. A health check
3336	// must not be specified for App Engine backend and Cloud Function
3337	// backend.
3338	//
3339	// For internal load balancing, a URL to a HealthCheck resource must be
3340	// specified instead.
3341	HealthChecks []string `json:"healthChecks,omitempty"`
3342
3343	Iap *BackendServiceIAP `json:"iap,omitempty"`
3344
3345	// Id: [Output Only] The unique identifier for the resource. This
3346	// identifier is defined by the server.
3347	Id uint64 `json:"id,omitempty,string"`
3348
3349	// Kind: [Output Only] Type of resource. Always compute#backendService
3350	// for backend services.
3351	Kind string `json:"kind,omitempty"`
3352
3353	// LoadBalancingScheme: Indicates whether the backend service will be
3354	// used with internal or external load balancing. A backend service
3355	// created for one type of load balancing cannot be used with the other.
3356	// Possible values are INTERNAL and EXTERNAL.
3357	//
3358	// Possible values:
3359	//   "EXTERNAL"
3360	//   "INTERNAL"
3361	//   "INVALID_LOAD_BALANCING_SCHEME"
3362	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
3363
3364	// Name: Name of the resource. Provided by the client when the resource
3365	// is created. The name must be 1-63 characters long, and comply with
3366	// RFC1035. Specifically, the name must be 1-63 characters long and
3367	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
3368	// the first character must be a lowercase letter, and all following
3369	// characters must be a dash, lowercase letter, or digit, except the
3370	// last character, which cannot be a dash.
3371	Name string `json:"name,omitempty"`
3372
3373	// Port: Deprecated in favor of portName. The TCP port to connect on the
3374	// backend. The default value is 80.
3375	//
3376	// This cannot be used for internal load balancing.
3377	Port int64 `json:"port,omitempty"`
3378
3379	// PortName: Name of backend port. The same name should appear in the
3380	// instance groups referenced by this service. Required when the load
3381	// balancing scheme is EXTERNAL.
3382	//
3383	// When the load balancing scheme is INTERNAL, this field is not used.
3384	PortName string `json:"portName,omitempty"`
3385
3386	// Protocol: The protocol this BackendService uses to communicate with
3387	// backends.
3388	//
3389	// Possible values are HTTP, HTTPS, TCP, and SSL. The default is
3390	// HTTP.
3391	//
3392	// For internal load balancing, the possible values are TCP and UDP, and
3393	// the default is TCP.
3394	//
3395	// Possible values:
3396	//   "HTTP"
3397	//   "HTTPS"
3398	//   "SSL"
3399	//   "TCP"
3400	//   "UDP"
3401	Protocol string `json:"protocol,omitempty"`
3402
3403	// Region: [Output Only] URL of the region where the regional backend
3404	// service resides. This field is not applicable to global backend
3405	// services. You must specify this field as part of the HTTP request
3406	// URL. It is not settable as a field in the request body.
3407	Region string `json:"region,omitempty"`
3408
3409	// SelfLink: [Output Only] Server-defined URL for the resource.
3410	SelfLink string `json:"selfLink,omitempty"`
3411
3412	// SessionAffinity: Type of session affinity to use. The default is
3413	// NONE.
3414	//
3415	// When the load balancing scheme is EXTERNAL, can be NONE, CLIENT_IP,
3416	// or GENERATED_COOKIE.
3417	//
3418	// When the load balancing scheme is INTERNAL, can be NONE, CLIENT_IP,
3419	// CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
3420	//
3421	// When the protocol is UDP, this field is not used.
3422	//
3423	// Possible values:
3424	//   "CLIENT_IP"
3425	//   "CLIENT_IP_PORT_PROTO"
3426	//   "CLIENT_IP_PROTO"
3427	//   "GENERATED_COOKIE"
3428	//   "NONE"
3429	SessionAffinity string `json:"sessionAffinity,omitempty"`
3430
3431	// TimeoutSec: How many seconds to wait for the backend before
3432	// considering it a failed request. Default is 30 seconds.
3433	TimeoutSec int64 `json:"timeoutSec,omitempty"`
3434
3435	// ServerResponse contains the HTTP response code and headers from the
3436	// server.
3437	googleapi.ServerResponse `json:"-"`
3438
3439	// ForceSendFields is a list of field names (e.g.
3440	// "AffinityCookieTtlSec") to unconditionally include in API requests.
3441	// By default, fields with empty values are omitted from API requests.
3442	// However, any non-pointer, non-interface field appearing in
3443	// ForceSendFields will be sent to the server regardless of whether the
3444	// field is empty or not. This may be used to include empty fields in
3445	// Patch requests.
3446	ForceSendFields []string `json:"-"`
3447
3448	// NullFields is a list of field names (e.g. "AffinityCookieTtlSec") to
3449	// include in API requests with the JSON null value. By default, fields
3450	// with empty values are omitted from API requests. However, any field
3451	// with an empty value appearing in NullFields will be sent to the
3452	// server as null. It is an error if a field in this list has a
3453	// non-empty value. This may be used to include null fields in Patch
3454	// requests.
3455	NullFields []string `json:"-"`
3456}
3457
3458func (s *BackendService) MarshalJSON() ([]byte, error) {
3459	type NoMethod BackendService
3460	raw := NoMethod(*s)
3461	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3462}
3463
3464// BackendServiceAggregatedList: Contains a list of
3465// BackendServicesScopedList.
3466type BackendServiceAggregatedList struct {
3467	// Id: [Output Only] Unique identifier for the resource; defined by the
3468	// server.
3469	Id string `json:"id,omitempty"`
3470
3471	// Items: A list of BackendServicesScopedList resources.
3472	Items map[string]BackendServicesScopedList `json:"items,omitempty"`
3473
3474	// Kind: Type of resource.
3475	Kind string `json:"kind,omitempty"`
3476
3477	// NextPageToken: [Output Only] This token allows you to get the next
3478	// page of results for list requests. If the number of results is larger
3479	// than maxResults, use the nextPageToken as a value for the query
3480	// parameter pageToken in the next list request. Subsequent list
3481	// requests will have their own nextPageToken to continue paging through
3482	// the results.
3483	NextPageToken string `json:"nextPageToken,omitempty"`
3484
3485	// SelfLink: [Output Only] Server-defined URL for this resource.
3486	SelfLink string `json:"selfLink,omitempty"`
3487
3488	// Warning: [Output Only] Informational warning message.
3489	Warning *BackendServiceAggregatedListWarning `json:"warning,omitempty"`
3490
3491	// ServerResponse contains the HTTP response code and headers from the
3492	// server.
3493	googleapi.ServerResponse `json:"-"`
3494
3495	// ForceSendFields is a list of field names (e.g. "Id") to
3496	// unconditionally include in API requests. By default, fields with
3497	// empty values are omitted from API requests. However, any non-pointer,
3498	// non-interface field appearing in ForceSendFields will be sent to the
3499	// server regardless of whether the field is empty or not. This may be
3500	// used to include empty fields in Patch requests.
3501	ForceSendFields []string `json:"-"`
3502
3503	// NullFields is a list of field names (e.g. "Id") to include in API
3504	// requests with the JSON null value. By default, fields with empty
3505	// values are omitted from API requests. However, any field with an
3506	// empty value appearing in NullFields will be sent to the server as
3507	// null. It is an error if a field in this list has a non-empty value.
3508	// This may be used to include null fields in Patch requests.
3509	NullFields []string `json:"-"`
3510}
3511
3512func (s *BackendServiceAggregatedList) MarshalJSON() ([]byte, error) {
3513	type NoMethod BackendServiceAggregatedList
3514	raw := NoMethod(*s)
3515	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3516}
3517
3518// BackendServiceAggregatedListWarning: [Output Only] Informational
3519// warning message.
3520type BackendServiceAggregatedListWarning struct {
3521	// Code: [Output Only] A warning code, if applicable. For example,
3522	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3523	// the response.
3524	//
3525	// Possible values:
3526	//   "CLEANUP_FAILED"
3527	//   "DEPRECATED_RESOURCE_USED"
3528	//   "DEPRECATED_TYPE_USED"
3529	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3530	//   "EXPERIMENTAL_TYPE_USED"
3531	//   "EXTERNAL_API_WARNING"
3532	//   "FIELD_VALUE_OVERRIDEN"
3533	//   "INJECTED_KERNELS_DEPRECATED"
3534	//   "MISSING_TYPE_DEPENDENCY"
3535	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3536	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3537	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3538	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3539	//   "NEXT_HOP_NOT_RUNNING"
3540	//   "NOT_CRITICAL_ERROR"
3541	//   "NO_RESULTS_ON_PAGE"
3542	//   "REQUIRED_TOS_AGREEMENT"
3543	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3544	//   "RESOURCE_NOT_DELETED"
3545	//   "SCHEMA_VALIDATION_IGNORED"
3546	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3547	//   "UNDECLARED_PROPERTIES"
3548	//   "UNREACHABLE"
3549	Code string `json:"code,omitempty"`
3550
3551	// Data: [Output Only] Metadata about this warning in key: value format.
3552	// For example:
3553	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3554	Data []*BackendServiceAggregatedListWarningData `json:"data,omitempty"`
3555
3556	// Message: [Output Only] A human-readable description of the warning
3557	// code.
3558	Message string `json:"message,omitempty"`
3559
3560	// ForceSendFields is a list of field names (e.g. "Code") to
3561	// unconditionally include in API requests. By default, fields with
3562	// empty values are omitted from API requests. However, any non-pointer,
3563	// non-interface field appearing in ForceSendFields will be sent to the
3564	// server regardless of whether the field is empty or not. This may be
3565	// used to include empty fields in Patch requests.
3566	ForceSendFields []string `json:"-"`
3567
3568	// NullFields is a list of field names (e.g. "Code") to include in API
3569	// requests with the JSON null value. By default, fields with empty
3570	// values are omitted from API requests. However, any field with an
3571	// empty value appearing in NullFields will be sent to the server as
3572	// null. It is an error if a field in this list has a non-empty value.
3573	// This may be used to include null fields in Patch requests.
3574	NullFields []string `json:"-"`
3575}
3576
3577func (s *BackendServiceAggregatedListWarning) MarshalJSON() ([]byte, error) {
3578	type NoMethod BackendServiceAggregatedListWarning
3579	raw := NoMethod(*s)
3580	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3581}
3582
3583type BackendServiceAggregatedListWarningData struct {
3584	// Key: [Output Only] A key that provides more detail on the warning
3585	// being returned. For example, for warnings where there are no results
3586	// in a list request for a particular zone, this key might be scope and
3587	// the key value might be the zone name. Other examples might be a key
3588	// indicating a deprecated resource and a suggested replacement, or a
3589	// warning about invalid network settings (for example, if an instance
3590	// attempts to perform IP forwarding but is not enabled for IP
3591	// forwarding).
3592	Key string `json:"key,omitempty"`
3593
3594	// Value: [Output Only] A warning data value corresponding to the key.
3595	Value string `json:"value,omitempty"`
3596
3597	// ForceSendFields is a list of field names (e.g. "Key") to
3598	// unconditionally include in API requests. By default, fields with
3599	// empty values are omitted from API requests. However, any non-pointer,
3600	// non-interface field appearing in ForceSendFields will be sent to the
3601	// server regardless of whether the field is empty or not. This may be
3602	// used to include empty fields in Patch requests.
3603	ForceSendFields []string `json:"-"`
3604
3605	// NullFields is a list of field names (e.g. "Key") to include in API
3606	// requests with the JSON null value. By default, fields with empty
3607	// values are omitted from API requests. However, any field with an
3608	// empty value appearing in NullFields will be sent to the server as
3609	// null. It is an error if a field in this list has a non-empty value.
3610	// This may be used to include null fields in Patch requests.
3611	NullFields []string `json:"-"`
3612}
3613
3614func (s *BackendServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
3615	type NoMethod BackendServiceAggregatedListWarningData
3616	raw := NoMethod(*s)
3617	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3618}
3619
3620// BackendServiceCdnPolicy: Message containing Cloud CDN configuration
3621// for a backend service.
3622type BackendServiceCdnPolicy struct {
3623	// CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy.
3624	CacheKeyPolicy *CacheKeyPolicy `json:"cacheKeyPolicy,omitempty"`
3625
3626	// ForceSendFields is a list of field names (e.g. "CacheKeyPolicy") 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. "CacheKeyPolicy") to
3635	// include in API requests with the JSON null value. By default, fields
3636	// with empty values are omitted from API requests. However, any field
3637	// with an empty value appearing in NullFields will be sent to the
3638	// server as null. It is an error if a field in this list has a
3639	// non-empty value. This may be used to include null fields in Patch
3640	// requests.
3641	NullFields []string `json:"-"`
3642}
3643
3644func (s *BackendServiceCdnPolicy) MarshalJSON() ([]byte, error) {
3645	type NoMethod BackendServiceCdnPolicy
3646	raw := NoMethod(*s)
3647	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3648}
3649
3650type BackendServiceGroupHealth struct {
3651	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
3652
3653	// Kind: [Output Only] Type of resource. Always
3654	// compute#backendServiceGroupHealth for the health of backend services.
3655	Kind string `json:"kind,omitempty"`
3656
3657	// ServerResponse contains the HTTP response code and headers from the
3658	// server.
3659	googleapi.ServerResponse `json:"-"`
3660
3661	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
3662	// unconditionally include in API requests. By default, fields with
3663	// empty values are omitted from API requests. However, any non-pointer,
3664	// non-interface field appearing in ForceSendFields will be sent to the
3665	// server regardless of whether the field is empty or not. This may be
3666	// used to include empty fields in Patch requests.
3667	ForceSendFields []string `json:"-"`
3668
3669	// NullFields is a list of field names (e.g. "HealthStatus") to include
3670	// in API requests with the JSON null value. By default, fields with
3671	// empty values are omitted from API requests. However, any field with
3672	// an empty value appearing in NullFields will be sent to the server as
3673	// null. It is an error if a field in this list has a non-empty value.
3674	// This may be used to include null fields in Patch requests.
3675	NullFields []string `json:"-"`
3676}
3677
3678func (s *BackendServiceGroupHealth) MarshalJSON() ([]byte, error) {
3679	type NoMethod BackendServiceGroupHealth
3680	raw := NoMethod(*s)
3681	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3682}
3683
3684// BackendServiceIAP: Identity-Aware Proxy
3685type BackendServiceIAP struct {
3686	Enabled bool `json:"enabled,omitempty"`
3687
3688	Oauth2ClientId string `json:"oauth2ClientId,omitempty"`
3689
3690	Oauth2ClientSecret string `json:"oauth2ClientSecret,omitempty"`
3691
3692	// Oauth2ClientSecretSha256: [Output Only] SHA256 hash value for the
3693	// field oauth2_client_secret above.
3694	Oauth2ClientSecretSha256 string `json:"oauth2ClientSecretSha256,omitempty"`
3695
3696	// ForceSendFields is a list of field names (e.g. "Enabled") to
3697	// unconditionally include in API requests. By default, fields with
3698	// empty values are omitted from API requests. However, any non-pointer,
3699	// non-interface field appearing in ForceSendFields will be sent to the
3700	// server regardless of whether the field is empty or not. This may be
3701	// used to include empty fields in Patch requests.
3702	ForceSendFields []string `json:"-"`
3703
3704	// NullFields is a list of field names (e.g. "Enabled") to include in
3705	// API requests with the JSON null value. By default, fields with empty
3706	// values are omitted from API requests. However, any field with an
3707	// empty value appearing in NullFields will be sent to the server as
3708	// null. It is an error if a field in this list has a non-empty value.
3709	// This may be used to include null fields in Patch requests.
3710	NullFields []string `json:"-"`
3711}
3712
3713func (s *BackendServiceIAP) MarshalJSON() ([]byte, error) {
3714	type NoMethod BackendServiceIAP
3715	raw := NoMethod(*s)
3716	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3717}
3718
3719// BackendServiceList: Contains a list of BackendService resources.
3720type BackendServiceList struct {
3721	// Id: [Output Only] Unique identifier for the resource; defined by the
3722	// server.
3723	Id string `json:"id,omitempty"`
3724
3725	// Items: A list of BackendService resources.
3726	Items []*BackendService `json:"items,omitempty"`
3727
3728	// Kind: [Output Only] Type of resource. Always
3729	// compute#backendServiceList for lists of backend services.
3730	Kind string `json:"kind,omitempty"`
3731
3732	// NextPageToken: [Output Only] This token allows you to get the next
3733	// page of results for list requests. If the number of results is larger
3734	// than maxResults, use the nextPageToken as a value for the query
3735	// parameter pageToken in the next list request. Subsequent list
3736	// requests will have their own nextPageToken to continue paging through
3737	// the results.
3738	NextPageToken string `json:"nextPageToken,omitempty"`
3739
3740	// SelfLink: [Output Only] Server-defined URL for this resource.
3741	SelfLink string `json:"selfLink,omitempty"`
3742
3743	// Warning: [Output Only] Informational warning message.
3744	Warning *BackendServiceListWarning `json:"warning,omitempty"`
3745
3746	// ServerResponse contains the HTTP response code and headers from the
3747	// server.
3748	googleapi.ServerResponse `json:"-"`
3749
3750	// ForceSendFields is a list of field names (e.g. "Id") to
3751	// unconditionally include in API requests. By default, fields with
3752	// empty values are omitted from API requests. However, any non-pointer,
3753	// non-interface field appearing in ForceSendFields will be sent to the
3754	// server regardless of whether the field is empty or not. This may be
3755	// used to include empty fields in Patch requests.
3756	ForceSendFields []string `json:"-"`
3757
3758	// NullFields is a list of field names (e.g. "Id") to include in API
3759	// requests with the JSON null value. By default, fields with empty
3760	// values are omitted from API requests. However, any field with an
3761	// empty value appearing in NullFields will be sent to the server as
3762	// null. It is an error if a field in this list has a non-empty value.
3763	// This may be used to include null fields in Patch requests.
3764	NullFields []string `json:"-"`
3765}
3766
3767func (s *BackendServiceList) MarshalJSON() ([]byte, error) {
3768	type NoMethod BackendServiceList
3769	raw := NoMethod(*s)
3770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3771}
3772
3773// BackendServiceListWarning: [Output Only] Informational warning
3774// message.
3775type BackendServiceListWarning struct {
3776	// Code: [Output Only] A warning code, if applicable. For example,
3777	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3778	// the response.
3779	//
3780	// Possible values:
3781	//   "CLEANUP_FAILED"
3782	//   "DEPRECATED_RESOURCE_USED"
3783	//   "DEPRECATED_TYPE_USED"
3784	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3785	//   "EXPERIMENTAL_TYPE_USED"
3786	//   "EXTERNAL_API_WARNING"
3787	//   "FIELD_VALUE_OVERRIDEN"
3788	//   "INJECTED_KERNELS_DEPRECATED"
3789	//   "MISSING_TYPE_DEPENDENCY"
3790	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3791	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3792	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3793	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3794	//   "NEXT_HOP_NOT_RUNNING"
3795	//   "NOT_CRITICAL_ERROR"
3796	//   "NO_RESULTS_ON_PAGE"
3797	//   "REQUIRED_TOS_AGREEMENT"
3798	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3799	//   "RESOURCE_NOT_DELETED"
3800	//   "SCHEMA_VALIDATION_IGNORED"
3801	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3802	//   "UNDECLARED_PROPERTIES"
3803	//   "UNREACHABLE"
3804	Code string `json:"code,omitempty"`
3805
3806	// Data: [Output Only] Metadata about this warning in key: value format.
3807	// For example:
3808	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3809	Data []*BackendServiceListWarningData `json:"data,omitempty"`
3810
3811	// Message: [Output Only] A human-readable description of the warning
3812	// code.
3813	Message string `json:"message,omitempty"`
3814
3815	// ForceSendFields is a list of field names (e.g. "Code") to
3816	// unconditionally include in API requests. By default, fields with
3817	// empty values are omitted from API requests. However, any non-pointer,
3818	// non-interface field appearing in ForceSendFields will be sent to the
3819	// server regardless of whether the field is empty or not. This may be
3820	// used to include empty fields in Patch requests.
3821	ForceSendFields []string `json:"-"`
3822
3823	// NullFields is a list of field names (e.g. "Code") to include in API
3824	// requests with the JSON null value. By default, fields with empty
3825	// values are omitted from API requests. However, any field with an
3826	// empty value appearing in NullFields will be sent to the server as
3827	// null. It is an error if a field in this list has a non-empty value.
3828	// This may be used to include null fields in Patch requests.
3829	NullFields []string `json:"-"`
3830}
3831
3832func (s *BackendServiceListWarning) MarshalJSON() ([]byte, error) {
3833	type NoMethod BackendServiceListWarning
3834	raw := NoMethod(*s)
3835	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3836}
3837
3838type BackendServiceListWarningData struct {
3839	// Key: [Output Only] A key that provides more detail on the warning
3840	// being returned. For example, for warnings where there are no results
3841	// in a list request for a particular zone, this key might be scope and
3842	// the key value might be the zone name. Other examples might be a key
3843	// indicating a deprecated resource and a suggested replacement, or a
3844	// warning about invalid network settings (for example, if an instance
3845	// attempts to perform IP forwarding but is not enabled for IP
3846	// forwarding).
3847	Key string `json:"key,omitempty"`
3848
3849	// Value: [Output Only] A warning data value corresponding to the key.
3850	Value string `json:"value,omitempty"`
3851
3852	// ForceSendFields is a list of field names (e.g. "Key") to
3853	// unconditionally include in API requests. By default, fields with
3854	// empty values are omitted from API requests. However, any non-pointer,
3855	// non-interface field appearing in ForceSendFields will be sent to the
3856	// server regardless of whether the field is empty or not. This may be
3857	// used to include empty fields in Patch requests.
3858	ForceSendFields []string `json:"-"`
3859
3860	// NullFields is a list of field names (e.g. "Key") to include in API
3861	// requests with the JSON null value. By default, fields with empty
3862	// values are omitted from API requests. However, any field with an
3863	// empty value appearing in NullFields will be sent to the server as
3864	// null. It is an error if a field in this list has a non-empty value.
3865	// This may be used to include null fields in Patch requests.
3866	NullFields []string `json:"-"`
3867}
3868
3869func (s *BackendServiceListWarningData) MarshalJSON() ([]byte, error) {
3870	type NoMethod BackendServiceListWarningData
3871	raw := NoMethod(*s)
3872	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3873}
3874
3875type BackendServicesScopedList struct {
3876	// BackendServices: List of BackendServices contained in this scope.
3877	BackendServices []*BackendService `json:"backendServices,omitempty"`
3878
3879	// Warning: Informational warning which replaces the list of backend
3880	// services when the list is empty.
3881	Warning *BackendServicesScopedListWarning `json:"warning,omitempty"`
3882
3883	// ForceSendFields is a list of field names (e.g. "BackendServices") to
3884	// unconditionally include in API requests. By default, fields with
3885	// empty values are omitted from API requests. However, any non-pointer,
3886	// non-interface field appearing in ForceSendFields will be sent to the
3887	// server regardless of whether the field is empty or not. This may be
3888	// used to include empty fields in Patch requests.
3889	ForceSendFields []string `json:"-"`
3890
3891	// NullFields is a list of field names (e.g. "BackendServices") to
3892	// include in API requests with the JSON null value. By default, fields
3893	// with empty values are omitted from API requests. However, any field
3894	// with an empty value appearing in NullFields will be sent to the
3895	// server as null. It is an error if a field in this list has a
3896	// non-empty value. This may be used to include null fields in Patch
3897	// requests.
3898	NullFields []string `json:"-"`
3899}
3900
3901func (s *BackendServicesScopedList) MarshalJSON() ([]byte, error) {
3902	type NoMethod BackendServicesScopedList
3903	raw := NoMethod(*s)
3904	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3905}
3906
3907// BackendServicesScopedListWarning: Informational warning which
3908// replaces the list of backend services when the list is empty.
3909type BackendServicesScopedListWarning struct {
3910	// Code: [Output Only] A warning code, if applicable. For example,
3911	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3912	// the response.
3913	//
3914	// Possible values:
3915	//   "CLEANUP_FAILED"
3916	//   "DEPRECATED_RESOURCE_USED"
3917	//   "DEPRECATED_TYPE_USED"
3918	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3919	//   "EXPERIMENTAL_TYPE_USED"
3920	//   "EXTERNAL_API_WARNING"
3921	//   "FIELD_VALUE_OVERRIDEN"
3922	//   "INJECTED_KERNELS_DEPRECATED"
3923	//   "MISSING_TYPE_DEPENDENCY"
3924	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3925	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3926	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3927	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3928	//   "NEXT_HOP_NOT_RUNNING"
3929	//   "NOT_CRITICAL_ERROR"
3930	//   "NO_RESULTS_ON_PAGE"
3931	//   "REQUIRED_TOS_AGREEMENT"
3932	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3933	//   "RESOURCE_NOT_DELETED"
3934	//   "SCHEMA_VALIDATION_IGNORED"
3935	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3936	//   "UNDECLARED_PROPERTIES"
3937	//   "UNREACHABLE"
3938	Code string `json:"code,omitempty"`
3939
3940	// Data: [Output Only] Metadata about this warning in key: value format.
3941	// For example:
3942	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3943	Data []*BackendServicesScopedListWarningData `json:"data,omitempty"`
3944
3945	// Message: [Output Only] A human-readable description of the warning
3946	// code.
3947	Message string `json:"message,omitempty"`
3948
3949	// ForceSendFields is a list of field names (e.g. "Code") to
3950	// unconditionally include in API requests. By default, fields with
3951	// empty values are omitted from API requests. However, any non-pointer,
3952	// non-interface field appearing in ForceSendFields will be sent to the
3953	// server regardless of whether the field is empty or not. This may be
3954	// used to include empty fields in Patch requests.
3955	ForceSendFields []string `json:"-"`
3956
3957	// NullFields is a list of field names (e.g. "Code") to include in API
3958	// requests with the JSON null value. By default, fields with empty
3959	// values are omitted from API requests. However, any field with an
3960	// empty value appearing in NullFields will be sent to the server as
3961	// null. It is an error if a field in this list has a non-empty value.
3962	// This may be used to include null fields in Patch requests.
3963	NullFields []string `json:"-"`
3964}
3965
3966func (s *BackendServicesScopedListWarning) MarshalJSON() ([]byte, error) {
3967	type NoMethod BackendServicesScopedListWarning
3968	raw := NoMethod(*s)
3969	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3970}
3971
3972type BackendServicesScopedListWarningData struct {
3973	// Key: [Output Only] A key that provides more detail on the warning
3974	// being returned. For example, for warnings where there are no results
3975	// in a list request for a particular zone, this key might be scope and
3976	// the key value might be the zone name. Other examples might be a key
3977	// indicating a deprecated resource and a suggested replacement, or a
3978	// warning about invalid network settings (for example, if an instance
3979	// attempts to perform IP forwarding but is not enabled for IP
3980	// forwarding).
3981	Key string `json:"key,omitempty"`
3982
3983	// Value: [Output Only] A warning data value corresponding to the key.
3984	Value string `json:"value,omitempty"`
3985
3986	// ForceSendFields is a list of field names (e.g. "Key") to
3987	// unconditionally include in API requests. By default, fields with
3988	// empty values are omitted from API requests. However, any non-pointer,
3989	// non-interface field appearing in ForceSendFields will be sent to the
3990	// server regardless of whether the field is empty or not. This may be
3991	// used to include empty fields in Patch requests.
3992	ForceSendFields []string `json:"-"`
3993
3994	// NullFields is a list of field names (e.g. "Key") to include in API
3995	// requests with the JSON null value. By default, fields with empty
3996	// values are omitted from API requests. However, any field with an
3997	// empty value appearing in NullFields will be sent to the server as
3998	// null. It is an error if a field in this list has a non-empty value.
3999	// This may be used to include null fields in Patch requests.
4000	NullFields []string `json:"-"`
4001}
4002
4003func (s *BackendServicesScopedListWarningData) MarshalJSON() ([]byte, error) {
4004	type NoMethod BackendServicesScopedListWarningData
4005	raw := NoMethod(*s)
4006	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4007}
4008
4009type CacheInvalidationRule struct {
4010	// Host: If set, this invalidation rule will only apply to requests with
4011	// a Host header matching host.
4012	Host string `json:"host,omitempty"`
4013
4014	Path string `json:"path,omitempty"`
4015
4016	// ForceSendFields is a list of field names (e.g. "Host") to
4017	// unconditionally include in API requests. By default, fields with
4018	// empty values are omitted from API requests. However, any non-pointer,
4019	// non-interface field appearing in ForceSendFields will be sent to the
4020	// server regardless of whether the field is empty or not. This may be
4021	// used to include empty fields in Patch requests.
4022	ForceSendFields []string `json:"-"`
4023
4024	// NullFields is a list of field names (e.g. "Host") to include in API
4025	// requests with the JSON null value. By default, fields with empty
4026	// values are omitted from API requests. However, any field with an
4027	// empty value appearing in NullFields will be sent to the server as
4028	// null. It is an error if a field in this list has a non-empty value.
4029	// This may be used to include null fields in Patch requests.
4030	NullFields []string `json:"-"`
4031}
4032
4033func (s *CacheInvalidationRule) MarshalJSON() ([]byte, error) {
4034	type NoMethod CacheInvalidationRule
4035	raw := NoMethod(*s)
4036	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4037}
4038
4039// CacheKeyPolicy: Message containing what to include in the cache key
4040// for a request for Cloud CDN.
4041type CacheKeyPolicy struct {
4042	// IncludeHost: If true, requests to different hosts will be cached
4043	// separately.
4044	IncludeHost bool `json:"includeHost,omitempty"`
4045
4046	// IncludeProtocol: If true, http and https requests will be cached
4047	// separately.
4048	IncludeProtocol bool `json:"includeProtocol,omitempty"`
4049
4050	// IncludeQueryString: If true, include query string parameters in the
4051	// cache key according to query_string_whitelist and
4052	// query_string_blacklist. If neither is set, the entire query string
4053	// will be included. If false, the query string will be excluded from
4054	// the cache key entirely.
4055	IncludeQueryString bool `json:"includeQueryString,omitempty"`
4056
4057	// QueryStringBlacklist: Names of query string parameters to exclude in
4058	// cache keys. All other parameters will be included. Either specify
4059	// query_string_whitelist or query_string_blacklist, not both. '&' and
4060	// '=' will be percent encoded and not treated as delimiters.
4061	QueryStringBlacklist []string `json:"queryStringBlacklist,omitempty"`
4062
4063	// QueryStringWhitelist: Names of query string parameters to include in
4064	// cache keys. All other parameters will be excluded. Either specify
4065	// query_string_whitelist or query_string_blacklist, not both. '&' and
4066	// '=' will be percent encoded and not treated as delimiters.
4067	QueryStringWhitelist []string `json:"queryStringWhitelist,omitempty"`
4068
4069	// ForceSendFields is a list of field names (e.g. "IncludeHost") to
4070	// unconditionally include in API requests. By default, fields with
4071	// empty values are omitted from API requests. However, any non-pointer,
4072	// non-interface field appearing in ForceSendFields will be sent to the
4073	// server regardless of whether the field is empty or not. This may be
4074	// used to include empty fields in Patch requests.
4075	ForceSendFields []string `json:"-"`
4076
4077	// NullFields is a list of field names (e.g. "IncludeHost") to include
4078	// in API requests with the JSON null value. By default, fields with
4079	// empty values are omitted from API requests. However, any field with
4080	// an empty value appearing in NullFields will be sent to the server as
4081	// null. It is an error if a field in this list has a non-empty value.
4082	// This may be used to include null fields in Patch requests.
4083	NullFields []string `json:"-"`
4084}
4085
4086func (s *CacheKeyPolicy) MarshalJSON() ([]byte, error) {
4087	type NoMethod CacheKeyPolicy
4088	raw := NoMethod(*s)
4089	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4090}
4091
4092// Commitment: Represents a Commitment resource. Creating a Commitment
4093// resource means that you are purchasing a committed use contract with
4094// an explicit start and end time. You can create commitments based on
4095// vCPUs and memory usage and receive discounted rates. For full
4096// details, read Signing Up for Committed Use Discounts.
4097//
4098// Committed use discounts are subject to Google Cloud Platform's
4099// Service Specific Terms. By purchasing a committed use discount, you
4100// agree to these terms. Committed use discounts will not renew, so you
4101// must purchase a new commitment to continue receiving discounts. (==
4102// resource_for beta.commitments ==) (== resource_for v1.commitments ==)
4103type Commitment struct {
4104	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4105	// format.
4106	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4107
4108	// Description: An optional description of this resource. Provide this
4109	// property when you create the resource.
4110	Description string `json:"description,omitempty"`
4111
4112	// EndTimestamp: [Output Only] Commitment end time in RFC3339 text
4113	// format.
4114	EndTimestamp string `json:"endTimestamp,omitempty"`
4115
4116	// Id: [Output Only] The unique identifier for the resource. This
4117	// identifier is defined by the server.
4118	Id uint64 `json:"id,omitempty,string"`
4119
4120	// Kind: [Output Only] Type of the resource. Always compute#commitment
4121	// for commitments.
4122	Kind string `json:"kind,omitempty"`
4123
4124	// Name: Name of the resource. Provided by the client when the resource
4125	// is created. The name must be 1-63 characters long, and comply with
4126	// RFC1035. Specifically, the name must be 1-63 characters long and
4127	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
4128	// the first character must be a lowercase letter, and all following
4129	// characters must be a dash, lowercase letter, or digit, except the
4130	// last character, which cannot be a dash.
4131	Name string `json:"name,omitempty"`
4132
4133	// Plan: The plan for this commitment, which determines duration and
4134	// discount rate. The currently supported plans are TWELVE_MONTH (1
4135	// year), and THIRTY_SIX_MONTH (3 years).
4136	//
4137	// Possible values:
4138	//   "INVALID"
4139	//   "THIRTY_SIX_MONTH"
4140	//   "TWELVE_MONTH"
4141	Plan string `json:"plan,omitempty"`
4142
4143	// Region: [Output Only] URL of the region where this commitment may be
4144	// used.
4145	Region string `json:"region,omitempty"`
4146
4147	// Resources: List of commitment amounts for particular resources. Note
4148	// that VCPU and MEMORY resource commitments must occur together.
4149	Resources []*ResourceCommitment `json:"resources,omitempty"`
4150
4151	// SelfLink: [Output Only] Server-defined URL for the resource.
4152	SelfLink string `json:"selfLink,omitempty"`
4153
4154	// StartTimestamp: [Output Only] Commitment start time in RFC3339 text
4155	// format.
4156	StartTimestamp string `json:"startTimestamp,omitempty"`
4157
4158	// Status: [Output Only] Status of the commitment with regards to
4159	// eventual expiration (each commitment has an end date defined). One of
4160	// the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
4161	//
4162	// Possible values:
4163	//   "ACTIVE"
4164	//   "CREATING"
4165	//   "EXPIRED"
4166	//   "NOT_YET_ACTIVE"
4167	Status string `json:"status,omitempty"`
4168
4169	// StatusMessage: [Output Only] An optional, human-readable explanation
4170	// of the status.
4171	StatusMessage string `json:"statusMessage,omitempty"`
4172
4173	// ServerResponse contains the HTTP response code and headers from the
4174	// server.
4175	googleapi.ServerResponse `json:"-"`
4176
4177	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
4178	// to unconditionally include in API requests. By default, fields with
4179	// empty values are omitted from API requests. However, any non-pointer,
4180	// non-interface field appearing in ForceSendFields will be sent to the
4181	// server regardless of whether the field is empty or not. This may be
4182	// used to include empty fields in Patch requests.
4183	ForceSendFields []string `json:"-"`
4184
4185	// NullFields is a list of field names (e.g. "CreationTimestamp") to
4186	// include in API requests with the JSON null value. By default, fields
4187	// with empty values are omitted from API requests. However, any field
4188	// with an empty value appearing in NullFields will be sent to the
4189	// server as null. It is an error if a field in this list has a
4190	// non-empty value. This may be used to include null fields in Patch
4191	// requests.
4192	NullFields []string `json:"-"`
4193}
4194
4195func (s *Commitment) MarshalJSON() ([]byte, error) {
4196	type NoMethod Commitment
4197	raw := NoMethod(*s)
4198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4199}
4200
4201type CommitmentAggregatedList struct {
4202	// Id: [Output Only] Unique identifier for the resource; defined by the
4203	// server.
4204	Id string `json:"id,omitempty"`
4205
4206	// Items: A list of CommitmentsScopedList resources.
4207	Items map[string]CommitmentsScopedList `json:"items,omitempty"`
4208
4209	// Kind: [Output Only] Type of resource. Always
4210	// compute#commitmentAggregatedList for aggregated lists of commitments.
4211	Kind string `json:"kind,omitempty"`
4212
4213	// NextPageToken: [Output Only] This token allows you to get the next
4214	// page of results for list requests. If the number of results is larger
4215	// than maxResults, use the nextPageToken as a value for the query
4216	// parameter pageToken in the next list request. Subsequent list
4217	// requests will have their own nextPageToken to continue paging through
4218	// the results.
4219	NextPageToken string `json:"nextPageToken,omitempty"`
4220
4221	// SelfLink: [Output Only] Server-defined URL for this resource.
4222	SelfLink string `json:"selfLink,omitempty"`
4223
4224	// Warning: [Output Only] Informational warning message.
4225	Warning *CommitmentAggregatedListWarning `json:"warning,omitempty"`
4226
4227	// ServerResponse contains the HTTP response code and headers from the
4228	// server.
4229	googleapi.ServerResponse `json:"-"`
4230
4231	// ForceSendFields is a list of field names (e.g. "Id") to
4232	// unconditionally include in API requests. By default, fields with
4233	// empty values are omitted from API requests. However, any non-pointer,
4234	// non-interface field appearing in ForceSendFields will be sent to the
4235	// server regardless of whether the field is empty or not. This may be
4236	// used to include empty fields in Patch requests.
4237	ForceSendFields []string `json:"-"`
4238
4239	// NullFields is a list of field names (e.g. "Id") to include in API
4240	// requests with the JSON null value. By default, fields with empty
4241	// values are omitted from API requests. However, any field with an
4242	// empty value appearing in NullFields will be sent to the server as
4243	// null. It is an error if a field in this list has a non-empty value.
4244	// This may be used to include null fields in Patch requests.
4245	NullFields []string `json:"-"`
4246}
4247
4248func (s *CommitmentAggregatedList) MarshalJSON() ([]byte, error) {
4249	type NoMethod CommitmentAggregatedList
4250	raw := NoMethod(*s)
4251	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4252}
4253
4254// CommitmentAggregatedListWarning: [Output Only] Informational warning
4255// message.
4256type CommitmentAggregatedListWarning struct {
4257	// Code: [Output Only] A warning code, if applicable. For example,
4258	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4259	// the response.
4260	//
4261	// Possible values:
4262	//   "CLEANUP_FAILED"
4263	//   "DEPRECATED_RESOURCE_USED"
4264	//   "DEPRECATED_TYPE_USED"
4265	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4266	//   "EXPERIMENTAL_TYPE_USED"
4267	//   "EXTERNAL_API_WARNING"
4268	//   "FIELD_VALUE_OVERRIDEN"
4269	//   "INJECTED_KERNELS_DEPRECATED"
4270	//   "MISSING_TYPE_DEPENDENCY"
4271	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4272	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4273	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4274	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4275	//   "NEXT_HOP_NOT_RUNNING"
4276	//   "NOT_CRITICAL_ERROR"
4277	//   "NO_RESULTS_ON_PAGE"
4278	//   "REQUIRED_TOS_AGREEMENT"
4279	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4280	//   "RESOURCE_NOT_DELETED"
4281	//   "SCHEMA_VALIDATION_IGNORED"
4282	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4283	//   "UNDECLARED_PROPERTIES"
4284	//   "UNREACHABLE"
4285	Code string `json:"code,omitempty"`
4286
4287	// Data: [Output Only] Metadata about this warning in key: value format.
4288	// For example:
4289	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4290	Data []*CommitmentAggregatedListWarningData `json:"data,omitempty"`
4291
4292	// Message: [Output Only] A human-readable description of the warning
4293	// code.
4294	Message string `json:"message,omitempty"`
4295
4296	// ForceSendFields is a list of field names (e.g. "Code") to
4297	// unconditionally include in API requests. By default, fields with
4298	// empty values are omitted from API requests. However, any non-pointer,
4299	// non-interface field appearing in ForceSendFields will be sent to the
4300	// server regardless of whether the field is empty or not. This may be
4301	// used to include empty fields in Patch requests.
4302	ForceSendFields []string `json:"-"`
4303
4304	// NullFields is a list of field names (e.g. "Code") to include in API
4305	// requests with the JSON null value. By default, fields with empty
4306	// values are omitted from API requests. However, any field with an
4307	// empty value appearing in NullFields will be sent to the server as
4308	// null. It is an error if a field in this list has a non-empty value.
4309	// This may be used to include null fields in Patch requests.
4310	NullFields []string `json:"-"`
4311}
4312
4313func (s *CommitmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
4314	type NoMethod CommitmentAggregatedListWarning
4315	raw := NoMethod(*s)
4316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4317}
4318
4319type CommitmentAggregatedListWarningData struct {
4320	// Key: [Output Only] A key that provides more detail on the warning
4321	// being returned. For example, for warnings where there are no results
4322	// in a list request for a particular zone, this key might be scope and
4323	// the key value might be the zone name. Other examples might be a key
4324	// indicating a deprecated resource and a suggested replacement, or a
4325	// warning about invalid network settings (for example, if an instance
4326	// attempts to perform IP forwarding but is not enabled for IP
4327	// forwarding).
4328	Key string `json:"key,omitempty"`
4329
4330	// Value: [Output Only] A warning data value corresponding to the key.
4331	Value string `json:"value,omitempty"`
4332
4333	// ForceSendFields is a list of field names (e.g. "Key") to
4334	// unconditionally include in API requests. By default, fields with
4335	// empty values are omitted from API requests. However, any non-pointer,
4336	// non-interface field appearing in ForceSendFields will be sent to the
4337	// server regardless of whether the field is empty or not. This may be
4338	// used to include empty fields in Patch requests.
4339	ForceSendFields []string `json:"-"`
4340
4341	// NullFields is a list of field names (e.g. "Key") to include in API
4342	// requests with the JSON null value. By default, fields with empty
4343	// values are omitted from API requests. However, any field with an
4344	// empty value appearing in NullFields will be sent to the server as
4345	// null. It is an error if a field in this list has a non-empty value.
4346	// This may be used to include null fields in Patch requests.
4347	NullFields []string `json:"-"`
4348}
4349
4350func (s *CommitmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
4351	type NoMethod CommitmentAggregatedListWarningData
4352	raw := NoMethod(*s)
4353	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4354}
4355
4356// CommitmentList: Contains a list of Commitment resources.
4357type CommitmentList struct {
4358	// Id: [Output Only] Unique identifier for the resource; defined by the
4359	// server.
4360	Id string `json:"id,omitempty"`
4361
4362	// Items: A list of Commitment resources.
4363	Items []*Commitment `json:"items,omitempty"`
4364
4365	// Kind: [Output Only] Type of resource. Always compute#commitmentList
4366	// for lists of commitments.
4367	Kind string `json:"kind,omitempty"`
4368
4369	// NextPageToken: [Output Only] This token allows you to get the next
4370	// page of results for list requests. If the number of results is larger
4371	// than maxResults, use the nextPageToken as a value for the query
4372	// parameter pageToken in the next list request. Subsequent list
4373	// requests will have their own nextPageToken to continue paging through
4374	// the results.
4375	NextPageToken string `json:"nextPageToken,omitempty"`
4376
4377	// SelfLink: [Output Only] Server-defined URL for this resource.
4378	SelfLink string `json:"selfLink,omitempty"`
4379
4380	// Warning: [Output Only] Informational warning message.
4381	Warning *CommitmentListWarning `json:"warning,omitempty"`
4382
4383	// ServerResponse contains the HTTP response code and headers from the
4384	// server.
4385	googleapi.ServerResponse `json:"-"`
4386
4387	// ForceSendFields is a list of field names (e.g. "Id") to
4388	// unconditionally include in API requests. By default, fields with
4389	// empty values are omitted from API requests. However, any non-pointer,
4390	// non-interface field appearing in ForceSendFields will be sent to the
4391	// server regardless of whether the field is empty or not. This may be
4392	// used to include empty fields in Patch requests.
4393	ForceSendFields []string `json:"-"`
4394
4395	// NullFields is a list of field names (e.g. "Id") to include in API
4396	// requests with the JSON null value. By default, fields with empty
4397	// values are omitted from API requests. However, any field with an
4398	// empty value appearing in NullFields will be sent to the server as
4399	// null. It is an error if a field in this list has a non-empty value.
4400	// This may be used to include null fields in Patch requests.
4401	NullFields []string `json:"-"`
4402}
4403
4404func (s *CommitmentList) MarshalJSON() ([]byte, error) {
4405	type NoMethod CommitmentList
4406	raw := NoMethod(*s)
4407	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4408}
4409
4410// CommitmentListWarning: [Output Only] Informational warning message.
4411type CommitmentListWarning struct {
4412	// Code: [Output Only] A warning code, if applicable. For example,
4413	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4414	// the response.
4415	//
4416	// Possible values:
4417	//   "CLEANUP_FAILED"
4418	//   "DEPRECATED_RESOURCE_USED"
4419	//   "DEPRECATED_TYPE_USED"
4420	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4421	//   "EXPERIMENTAL_TYPE_USED"
4422	//   "EXTERNAL_API_WARNING"
4423	//   "FIELD_VALUE_OVERRIDEN"
4424	//   "INJECTED_KERNELS_DEPRECATED"
4425	//   "MISSING_TYPE_DEPENDENCY"
4426	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4427	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4428	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4429	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4430	//   "NEXT_HOP_NOT_RUNNING"
4431	//   "NOT_CRITICAL_ERROR"
4432	//   "NO_RESULTS_ON_PAGE"
4433	//   "REQUIRED_TOS_AGREEMENT"
4434	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4435	//   "RESOURCE_NOT_DELETED"
4436	//   "SCHEMA_VALIDATION_IGNORED"
4437	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4438	//   "UNDECLARED_PROPERTIES"
4439	//   "UNREACHABLE"
4440	Code string `json:"code,omitempty"`
4441
4442	// Data: [Output Only] Metadata about this warning in key: value format.
4443	// For example:
4444	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4445	Data []*CommitmentListWarningData `json:"data,omitempty"`
4446
4447	// Message: [Output Only] A human-readable description of the warning
4448	// code.
4449	Message string `json:"message,omitempty"`
4450
4451	// ForceSendFields is a list of field names (e.g. "Code") to
4452	// unconditionally include in API requests. By default, fields with
4453	// empty values are omitted from API requests. However, any non-pointer,
4454	// non-interface field appearing in ForceSendFields will be sent to the
4455	// server regardless of whether the field is empty or not. This may be
4456	// used to include empty fields in Patch requests.
4457	ForceSendFields []string `json:"-"`
4458
4459	// NullFields is a list of field names (e.g. "Code") to include in API
4460	// requests with the JSON null value. By default, fields with empty
4461	// values are omitted from API requests. However, any field with an
4462	// empty value appearing in NullFields will be sent to the server as
4463	// null. It is an error if a field in this list has a non-empty value.
4464	// This may be used to include null fields in Patch requests.
4465	NullFields []string `json:"-"`
4466}
4467
4468func (s *CommitmentListWarning) MarshalJSON() ([]byte, error) {
4469	type NoMethod CommitmentListWarning
4470	raw := NoMethod(*s)
4471	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4472}
4473
4474type CommitmentListWarningData struct {
4475	// Key: [Output Only] A key that provides more detail on the warning
4476	// being returned. For example, for warnings where there are no results
4477	// in a list request for a particular zone, this key might be scope and
4478	// the key value might be the zone name. Other examples might be a key
4479	// indicating a deprecated resource and a suggested replacement, or a
4480	// warning about invalid network settings (for example, if an instance
4481	// attempts to perform IP forwarding but is not enabled for IP
4482	// forwarding).
4483	Key string `json:"key,omitempty"`
4484
4485	// Value: [Output Only] A warning data value corresponding to the key.
4486	Value string `json:"value,omitempty"`
4487
4488	// ForceSendFields is a list of field names (e.g. "Key") to
4489	// unconditionally include in API requests. By default, fields with
4490	// empty values are omitted from API requests. However, any non-pointer,
4491	// non-interface field appearing in ForceSendFields will be sent to the
4492	// server regardless of whether the field is empty or not. This may be
4493	// used to include empty fields in Patch requests.
4494	ForceSendFields []string `json:"-"`
4495
4496	// NullFields is a list of field names (e.g. "Key") to include in API
4497	// requests with the JSON null value. By default, fields with empty
4498	// values are omitted from API requests. However, any field with an
4499	// empty value appearing in NullFields will be sent to the server as
4500	// null. It is an error if a field in this list has a non-empty value.
4501	// This may be used to include null fields in Patch requests.
4502	NullFields []string `json:"-"`
4503}
4504
4505func (s *CommitmentListWarningData) MarshalJSON() ([]byte, error) {
4506	type NoMethod CommitmentListWarningData
4507	raw := NoMethod(*s)
4508	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4509}
4510
4511type CommitmentsScopedList struct {
4512	// Commitments: [Output Only] List of commitments contained in this
4513	// scope.
4514	Commitments []*Commitment `json:"commitments,omitempty"`
4515
4516	// Warning: [Output Only] Informational warning which replaces the list
4517	// of commitments when the list is empty.
4518	Warning *CommitmentsScopedListWarning `json:"warning,omitempty"`
4519
4520	// ForceSendFields is a list of field names (e.g. "Commitments") to
4521	// unconditionally include in API requests. By default, fields with
4522	// empty values are omitted from API requests. However, any non-pointer,
4523	// non-interface field appearing in ForceSendFields will be sent to the
4524	// server regardless of whether the field is empty or not. This may be
4525	// used to include empty fields in Patch requests.
4526	ForceSendFields []string `json:"-"`
4527
4528	// NullFields is a list of field names (e.g. "Commitments") to include
4529	// in API requests with the JSON null value. By default, fields with
4530	// empty values are omitted from API requests. However, any field with
4531	// an empty value appearing in NullFields will be sent to the server as
4532	// null. It is an error if a field in this list has a non-empty value.
4533	// This may be used to include null fields in Patch requests.
4534	NullFields []string `json:"-"`
4535}
4536
4537func (s *CommitmentsScopedList) MarshalJSON() ([]byte, error) {
4538	type NoMethod CommitmentsScopedList
4539	raw := NoMethod(*s)
4540	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4541}
4542
4543// CommitmentsScopedListWarning: [Output Only] Informational warning
4544// which replaces the list of commitments when the list is empty.
4545type CommitmentsScopedListWarning struct {
4546	// Code: [Output Only] A warning code, if applicable. For example,
4547	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4548	// the response.
4549	//
4550	// Possible values:
4551	//   "CLEANUP_FAILED"
4552	//   "DEPRECATED_RESOURCE_USED"
4553	//   "DEPRECATED_TYPE_USED"
4554	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4555	//   "EXPERIMENTAL_TYPE_USED"
4556	//   "EXTERNAL_API_WARNING"
4557	//   "FIELD_VALUE_OVERRIDEN"
4558	//   "INJECTED_KERNELS_DEPRECATED"
4559	//   "MISSING_TYPE_DEPENDENCY"
4560	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4561	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4562	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4563	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4564	//   "NEXT_HOP_NOT_RUNNING"
4565	//   "NOT_CRITICAL_ERROR"
4566	//   "NO_RESULTS_ON_PAGE"
4567	//   "REQUIRED_TOS_AGREEMENT"
4568	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4569	//   "RESOURCE_NOT_DELETED"
4570	//   "SCHEMA_VALIDATION_IGNORED"
4571	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4572	//   "UNDECLARED_PROPERTIES"
4573	//   "UNREACHABLE"
4574	Code string `json:"code,omitempty"`
4575
4576	// Data: [Output Only] Metadata about this warning in key: value format.
4577	// For example:
4578	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4579	Data []*CommitmentsScopedListWarningData `json:"data,omitempty"`
4580
4581	// Message: [Output Only] A human-readable description of the warning
4582	// code.
4583	Message string `json:"message,omitempty"`
4584
4585	// ForceSendFields is a list of field names (e.g. "Code") to
4586	// unconditionally include in API requests. By default, fields with
4587	// empty values are omitted from API requests. However, any non-pointer,
4588	// non-interface field appearing in ForceSendFields will be sent to the
4589	// server regardless of whether the field is empty or not. This may be
4590	// used to include empty fields in Patch requests.
4591	ForceSendFields []string `json:"-"`
4592
4593	// NullFields is a list of field names (e.g. "Code") to include in API
4594	// requests with the JSON null value. By default, fields with empty
4595	// values are omitted from API requests. However, any field with an
4596	// empty value appearing in NullFields will be sent to the server as
4597	// null. It is an error if a field in this list has a non-empty value.
4598	// This may be used to include null fields in Patch requests.
4599	NullFields []string `json:"-"`
4600}
4601
4602func (s *CommitmentsScopedListWarning) MarshalJSON() ([]byte, error) {
4603	type NoMethod CommitmentsScopedListWarning
4604	raw := NoMethod(*s)
4605	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4606}
4607
4608type CommitmentsScopedListWarningData struct {
4609	// Key: [Output Only] A key that provides more detail on the warning
4610	// being returned. For example, for warnings where there are no results
4611	// in a list request for a particular zone, this key might be scope and
4612	// the key value might be the zone name. Other examples might be a key
4613	// indicating a deprecated resource and a suggested replacement, or a
4614	// warning about invalid network settings (for example, if an instance
4615	// attempts to perform IP forwarding but is not enabled for IP
4616	// forwarding).
4617	Key string `json:"key,omitempty"`
4618
4619	// Value: [Output Only] A warning data value corresponding to the key.
4620	Value string `json:"value,omitempty"`
4621
4622	// ForceSendFields is a list of field names (e.g. "Key") to
4623	// unconditionally include in API requests. By default, fields with
4624	// empty values are omitted from API requests. However, any non-pointer,
4625	// non-interface field appearing in ForceSendFields will be sent to the
4626	// server regardless of whether the field is empty or not. This may be
4627	// used to include empty fields in Patch requests.
4628	ForceSendFields []string `json:"-"`
4629
4630	// NullFields is a list of field names (e.g. "Key") to include in API
4631	// requests with the JSON null value. By default, fields with empty
4632	// values are omitted from API requests. However, any field with an
4633	// empty value appearing in NullFields will be sent to the server as
4634	// null. It is an error if a field in this list has a non-empty value.
4635	// This may be used to include null fields in Patch requests.
4636	NullFields []string `json:"-"`
4637}
4638
4639func (s *CommitmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
4640	type NoMethod CommitmentsScopedListWarningData
4641	raw := NoMethod(*s)
4642	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4643}
4644
4645// ConnectionDraining: Message containing connection draining
4646// configuration.
4647type ConnectionDraining struct {
4648	// DrainingTimeoutSec: Time for which instance will be drained (not
4649	// accept new connections, but still work to finish started).
4650	DrainingTimeoutSec int64 `json:"drainingTimeoutSec,omitempty"`
4651
4652	// ForceSendFields is a list of field names (e.g. "DrainingTimeoutSec")
4653	// to unconditionally include in API requests. By default, fields with
4654	// empty values are omitted from API requests. However, any non-pointer,
4655	// non-interface field appearing in ForceSendFields will be sent to the
4656	// server regardless of whether the field is empty or not. This may be
4657	// used to include empty fields in Patch requests.
4658	ForceSendFields []string `json:"-"`
4659
4660	// NullFields is a list of field names (e.g. "DrainingTimeoutSec") to
4661	// include in API requests with the JSON null value. By default, fields
4662	// with empty values are omitted from API requests. However, any field
4663	// with an empty value appearing in NullFields will be sent to the
4664	// server as null. It is an error if a field in this list has a
4665	// non-empty value. This may be used to include null fields in Patch
4666	// requests.
4667	NullFields []string `json:"-"`
4668}
4669
4670func (s *ConnectionDraining) MarshalJSON() ([]byte, error) {
4671	type NoMethod ConnectionDraining
4672	raw := NoMethod(*s)
4673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4674}
4675
4676// CustomerEncryptionKey: Represents a customer-supplied encryption key
4677type CustomerEncryptionKey struct {
4678	// RawKey: Specifies a 256-bit customer-supplied encryption key, encoded
4679	// in RFC 4648 base64 to either encrypt or decrypt this resource.
4680	RawKey string `json:"rawKey,omitempty"`
4681
4682	// Sha256: [Output only] The RFC 4648 base64 encoded SHA-256 hash of the
4683	// customer-supplied encryption key that protects this resource.
4684	Sha256 string `json:"sha256,omitempty"`
4685
4686	// ForceSendFields is a list of field names (e.g. "RawKey") to
4687	// unconditionally include in API requests. By default, fields with
4688	// empty values are omitted from API requests. However, any non-pointer,
4689	// non-interface field appearing in ForceSendFields will be sent to the
4690	// server regardless of whether the field is empty or not. This may be
4691	// used to include empty fields in Patch requests.
4692	ForceSendFields []string `json:"-"`
4693
4694	// NullFields is a list of field names (e.g. "RawKey") to include in API
4695	// requests with the JSON null value. By default, fields with empty
4696	// values are omitted from API requests. However, any field with an
4697	// empty value appearing in NullFields will be sent to the server as
4698	// null. It is an error if a field in this list has a non-empty value.
4699	// This may be used to include null fields in Patch requests.
4700	NullFields []string `json:"-"`
4701}
4702
4703func (s *CustomerEncryptionKey) MarshalJSON() ([]byte, error) {
4704	type NoMethod CustomerEncryptionKey
4705	raw := NoMethod(*s)
4706	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4707}
4708
4709type CustomerEncryptionKeyProtectedDisk struct {
4710	// DiskEncryptionKey: Decrypts data associated with the disk with a
4711	// customer-supplied encryption key.
4712	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
4713
4714	// Source: Specifies a valid partial or full URL to an existing
4715	// Persistent Disk resource. This field is only applicable for
4716	// persistent disks.
4717	Source string `json:"source,omitempty"`
4718
4719	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
4720	// to unconditionally include in API requests. By default, fields with
4721	// empty values are omitted from API requests. However, any non-pointer,
4722	// non-interface field appearing in ForceSendFields will be sent to the
4723	// server regardless of whether the field is empty or not. This may be
4724	// used to include empty fields in Patch requests.
4725	ForceSendFields []string `json:"-"`
4726
4727	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to
4728	// include in API requests with the JSON null value. By default, fields
4729	// with empty values are omitted from API requests. However, any field
4730	// with an empty value appearing in NullFields will be sent to the
4731	// server as null. It is an error if a field in this list has a
4732	// non-empty value. This may be used to include null fields in Patch
4733	// requests.
4734	NullFields []string `json:"-"`
4735}
4736
4737func (s *CustomerEncryptionKeyProtectedDisk) MarshalJSON() ([]byte, error) {
4738	type NoMethod CustomerEncryptionKeyProtectedDisk
4739	raw := NoMethod(*s)
4740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4741}
4742
4743// DeprecationStatus: Deprecation status for a public resource.
4744type DeprecationStatus struct {
4745	// Deleted: An optional RFC3339 timestamp on or after which the state of
4746	// this resource is intended to change to DELETED. This is only
4747	// informational and the status will not change unless the client
4748	// explicitly changes it.
4749	Deleted string `json:"deleted,omitempty"`
4750
4751	// Deprecated: An optional RFC3339 timestamp on or after which the state
4752	// of this resource is intended to change to DEPRECATED. This is only
4753	// informational and the status will not change unless the client
4754	// explicitly changes it.
4755	Deprecated string `json:"deprecated,omitempty"`
4756
4757	// Obsolete: An optional RFC3339 timestamp on or after which the state
4758	// of this resource is intended to change to OBSOLETE. This is only
4759	// informational and the status will not change unless the client
4760	// explicitly changes it.
4761	Obsolete string `json:"obsolete,omitempty"`
4762
4763	// Replacement: The URL of the suggested replacement for a deprecated
4764	// resource. The suggested replacement resource must be the same kind of
4765	// resource as the deprecated resource.
4766	Replacement string `json:"replacement,omitempty"`
4767
4768	// State: The deprecation state of this resource. This can be
4769	// DEPRECATED, OBSOLETE, or DELETED. Operations which create a new
4770	// resource using a DEPRECATED resource will return successfully, but
4771	// with a warning indicating the deprecated resource and recommending
4772	// its replacement. Operations which use OBSOLETE or DELETED resources
4773	// will be rejected and result in an error.
4774	//
4775	// Possible values:
4776	//   "DELETED"
4777	//   "DEPRECATED"
4778	//   "OBSOLETE"
4779	State string `json:"state,omitempty"`
4780
4781	// ForceSendFields is a list of field names (e.g. "Deleted") to
4782	// unconditionally include in API requests. By default, fields with
4783	// empty values are omitted from API requests. However, any non-pointer,
4784	// non-interface field appearing in ForceSendFields will be sent to the
4785	// server regardless of whether the field is empty or not. This may be
4786	// used to include empty fields in Patch requests.
4787	ForceSendFields []string `json:"-"`
4788
4789	// NullFields is a list of field names (e.g. "Deleted") to include in
4790	// API requests with the JSON null value. By default, fields with empty
4791	// values are omitted from API requests. However, any field with an
4792	// empty value appearing in NullFields will be sent to the server as
4793	// null. It is an error if a field in this list has a non-empty value.
4794	// This may be used to include null fields in Patch requests.
4795	NullFields []string `json:"-"`
4796}
4797
4798func (s *DeprecationStatus) MarshalJSON() ([]byte, error) {
4799	type NoMethod DeprecationStatus
4800	raw := NoMethod(*s)
4801	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4802}
4803
4804// Disk: A Disk resource. (== resource_for beta.disks ==) (==
4805// resource_for v1.disks ==)
4806type Disk struct {
4807	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4808	// format.
4809	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4810
4811	// Description: An optional description of this resource. Provide this
4812	// property when you create the resource.
4813	Description string `json:"description,omitempty"`
4814
4815	// DiskEncryptionKey: Encrypts the disk using a customer-supplied
4816	// encryption key.
4817	//
4818	// After you encrypt a disk with a customer-supplied key, you must
4819	// provide the same key if you use the disk later (e.g. to create a disk
4820	// snapshot or an image, or to attach the disk to a virtual
4821	// machine).
4822	//
4823	// Customer-supplied encryption keys do not protect access to metadata
4824	// of the disk.
4825	//
4826	// If you do not provide an encryption key when creating the disk, then
4827	// the disk will be encrypted using an automatically generated key and
4828	// you do not need to provide a key to use the disk later.
4829	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
4830
4831	// Id: [Output Only] The unique identifier for the resource. This
4832	// identifier is defined by the server.
4833	Id uint64 `json:"id,omitempty,string"`
4834
4835	// Kind: [Output Only] Type of the resource. Always compute#disk for
4836	// disks.
4837	Kind string `json:"kind,omitempty"`
4838
4839	// LabelFingerprint: A fingerprint for the labels being applied to this
4840	// disk, which is essentially a hash of the labels set used for
4841	// optimistic locking. The fingerprint is initially generated by Compute
4842	// Engine and changes after every request to modify or update labels.
4843	// You must always provide an up-to-date fingerprint hash in order to
4844	// update or change labels.
4845	//
4846	// To see the latest fingerprint, make a get() request to retrieve a
4847	// disk.
4848	LabelFingerprint string `json:"labelFingerprint,omitempty"`
4849
4850	// Labels: Labels to apply to this disk. These can be later modified by
4851	// the setLabels method.
4852	Labels map[string]string `json:"labels,omitempty"`
4853
4854	// LastAttachTimestamp: [Output Only] Last attach timestamp in RFC3339
4855	// text format.
4856	LastAttachTimestamp string `json:"lastAttachTimestamp,omitempty"`
4857
4858	// LastDetachTimestamp: [Output Only] Last detach timestamp in RFC3339
4859	// text format.
4860	LastDetachTimestamp string `json:"lastDetachTimestamp,omitempty"`
4861
4862	// Licenses: Any applicable publicly visible licenses.
4863	Licenses []string `json:"licenses,omitempty"`
4864
4865	// Name: Name of the resource. Provided by the client when the resource
4866	// is created. The name must be 1-63 characters long, and comply with
4867	// RFC1035. Specifically, the name must be 1-63 characters long and
4868	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
4869	// the first character must be a lowercase letter, and all following
4870	// characters must be a dash, lowercase letter, or digit, except the
4871	// last character, which cannot be a dash.
4872	Name string `json:"name,omitempty"`
4873
4874	// Options: Internal use only.
4875	Options string `json:"options,omitempty"`
4876
4877	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
4878	// resource.
4879	SelfLink string `json:"selfLink,omitempty"`
4880
4881	// SizeGb: Size of the persistent disk, specified in GB. You can specify
4882	// this field when creating a persistent disk using the sourceImage or
4883	// sourceSnapshot parameter, or specify it alone to create an empty
4884	// persistent disk.
4885	//
4886	// If you specify this field along with sourceImage or sourceSnapshot,
4887	// the value of sizeGb must not be less than the size of the sourceImage
4888	// or the size of the snapshot. Acceptable values are 1 to 65536,
4889	// inclusive.
4890	SizeGb int64 `json:"sizeGb,omitempty,string"`
4891
4892	// SourceImage: The source image used to create this disk. If the source
4893	// image is deleted, this field will not be set.
4894	//
4895	// To create a disk with one of the public operating system images,
4896	// specify the image by its family name. For example, specify
4897	// family/debian-8 to use the latest Debian 8
4898	// image:
4899	// projects/debian-cloud/global/images/family/debian-8
4900	//
4901	//
4902	// Alternati
4903	// vely, use a specific version of a public operating system
4904	// image:
4905	// projects/debian-cloud/global/images/debian-8-jessie-vYYYYMMDD
4906	//
4907	//
4908	//
4909	// To create a disk with a custom image that you created, specify the
4910	// image name in the following
4911	// format:
4912	// global/images/my-custom-image
4913	//
4914	//
4915	// You can also specify a custom image by its image family, which
4916	// returns the latest version of the image in that family. Replace the
4917	// image name with
4918	// family/family-name:
4919	// global/images/family/my-image-family
4920	SourceImage string `json:"sourceImage,omitempty"`
4921
4922	// SourceImageEncryptionKey: The customer-supplied encryption key of the
4923	// source image. Required if the source image is protected by a
4924	// customer-supplied encryption key.
4925	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
4926
4927	// SourceImageId: [Output Only] The ID value of the image used to create
4928	// this disk. This value identifies the exact image that was used to
4929	// create this persistent disk. For example, if you created the
4930	// persistent disk from an image that was later deleted and recreated
4931	// under the same name, the source image ID would identify the exact
4932	// version of the image that was used.
4933	SourceImageId string `json:"sourceImageId,omitempty"`
4934
4935	// SourceSnapshot: The source snapshot used to create this disk. You can
4936	// provide this as a partial or full URL to the resource. For example,
4937	// the following are valid values:
4938	// -
4939	// https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot
4940	// - projects/project/global/snapshots/snapshot
4941	// - global/snapshots/snapshot
4942	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
4943
4944	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
4945	// the source snapshot. Required if the source snapshot is protected by
4946	// a customer-supplied encryption key.
4947	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
4948
4949	// SourceSnapshotId: [Output Only] The unique ID of the snapshot used to
4950	// create this disk. This value identifies the exact snapshot that was
4951	// used to create this persistent disk. For example, if you created the
4952	// persistent disk from a snapshot that was later deleted and recreated
4953	// under the same name, the source snapshot ID would identify the exact
4954	// version of the snapshot that was used.
4955	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
4956
4957	// Status: [Output Only] The status of disk creation.
4958	//
4959	// Possible values:
4960	//   "CREATING"
4961	//   "FAILED"
4962	//   "READY"
4963	//   "RESTORING"
4964	Status string `json:"status,omitempty"`
4965
4966	// Type: URL of the disk type resource describing which disk type to use
4967	// to create the disk. Provide this when creating the disk.
4968	Type string `json:"type,omitempty"`
4969
4970	// Users: [Output Only] Links to the users of the disk (attached
4971	// instances) in form: project/zones/zone/instances/instance
4972	Users []string `json:"users,omitempty"`
4973
4974	// Zone: [Output Only] URL of the zone where the disk resides. You must
4975	// specify this field as part of the HTTP request URL. It is not
4976	// settable as a field in the request body.
4977	Zone string `json:"zone,omitempty"`
4978
4979	// ServerResponse contains the HTTP response code and headers from the
4980	// server.
4981	googleapi.ServerResponse `json:"-"`
4982
4983	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
4984	// to unconditionally include in API requests. By default, fields with
4985	// empty values are omitted from API requests. However, any non-pointer,
4986	// non-interface field appearing in ForceSendFields will be sent to the
4987	// server regardless of whether the field is empty or not. This may be
4988	// used to include empty fields in Patch requests.
4989	ForceSendFields []string `json:"-"`
4990
4991	// NullFields is a list of field names (e.g. "CreationTimestamp") to
4992	// include in API requests with the JSON null value. By default, fields
4993	// with empty values are omitted from API requests. However, any field
4994	// with an empty value appearing in NullFields will be sent to the
4995	// server as null. It is an error if a field in this list has a
4996	// non-empty value. This may be used to include null fields in Patch
4997	// requests.
4998	NullFields []string `json:"-"`
4999}
5000
5001func (s *Disk) MarshalJSON() ([]byte, error) {
5002	type NoMethod Disk
5003	raw := NoMethod(*s)
5004	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5005}
5006
5007type DiskAggregatedList struct {
5008	// Id: [Output Only] Unique identifier for the resource; defined by the
5009	// server.
5010	Id string `json:"id,omitempty"`
5011
5012	// Items: A list of DisksScopedList resources.
5013	Items map[string]DisksScopedList `json:"items,omitempty"`
5014
5015	// Kind: [Output Only] Type of resource. Always
5016	// compute#diskAggregatedList for aggregated lists of persistent disks.
5017	Kind string `json:"kind,omitempty"`
5018
5019	// NextPageToken: [Output Only] This token allows you to get the next
5020	// page of results for list requests. If the number of results is larger
5021	// than maxResults, use the nextPageToken as a value for the query
5022	// parameter pageToken in the next list request. Subsequent list
5023	// requests will have their own nextPageToken to continue paging through
5024	// the results.
5025	NextPageToken string `json:"nextPageToken,omitempty"`
5026
5027	// SelfLink: [Output Only] Server-defined URL for this resource.
5028	SelfLink string `json:"selfLink,omitempty"`
5029
5030	// Warning: [Output Only] Informational warning message.
5031	Warning *DiskAggregatedListWarning `json:"warning,omitempty"`
5032
5033	// ServerResponse contains the HTTP response code and headers from the
5034	// server.
5035	googleapi.ServerResponse `json:"-"`
5036
5037	// ForceSendFields is a list of field names (e.g. "Id") to
5038	// unconditionally include in API requests. By default, fields with
5039	// empty values are omitted from API requests. However, any non-pointer,
5040	// non-interface field appearing in ForceSendFields will be sent to the
5041	// server regardless of whether the field is empty or not. This may be
5042	// used to include empty fields in Patch requests.
5043	ForceSendFields []string `json:"-"`
5044
5045	// NullFields is a list of field names (e.g. "Id") to include in API
5046	// requests with the JSON null value. By default, fields with empty
5047	// values are omitted from API requests. However, any field with an
5048	// empty value appearing in NullFields will be sent to the server as
5049	// null. It is an error if a field in this list has a non-empty value.
5050	// This may be used to include null fields in Patch requests.
5051	NullFields []string `json:"-"`
5052}
5053
5054func (s *DiskAggregatedList) MarshalJSON() ([]byte, error) {
5055	type NoMethod DiskAggregatedList
5056	raw := NoMethod(*s)
5057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5058}
5059
5060// DiskAggregatedListWarning: [Output Only] Informational warning
5061// message.
5062type DiskAggregatedListWarning struct {
5063	// Code: [Output Only] A warning code, if applicable. For example,
5064	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5065	// the response.
5066	//
5067	// Possible values:
5068	//   "CLEANUP_FAILED"
5069	//   "DEPRECATED_RESOURCE_USED"
5070	//   "DEPRECATED_TYPE_USED"
5071	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5072	//   "EXPERIMENTAL_TYPE_USED"
5073	//   "EXTERNAL_API_WARNING"
5074	//   "FIELD_VALUE_OVERRIDEN"
5075	//   "INJECTED_KERNELS_DEPRECATED"
5076	//   "MISSING_TYPE_DEPENDENCY"
5077	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5078	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5079	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5080	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5081	//   "NEXT_HOP_NOT_RUNNING"
5082	//   "NOT_CRITICAL_ERROR"
5083	//   "NO_RESULTS_ON_PAGE"
5084	//   "REQUIRED_TOS_AGREEMENT"
5085	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5086	//   "RESOURCE_NOT_DELETED"
5087	//   "SCHEMA_VALIDATION_IGNORED"
5088	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5089	//   "UNDECLARED_PROPERTIES"
5090	//   "UNREACHABLE"
5091	Code string `json:"code,omitempty"`
5092
5093	// Data: [Output Only] Metadata about this warning in key: value format.
5094	// For example:
5095	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5096	Data []*DiskAggregatedListWarningData `json:"data,omitempty"`
5097
5098	// Message: [Output Only] A human-readable description of the warning
5099	// code.
5100	Message string `json:"message,omitempty"`
5101
5102	// ForceSendFields is a list of field names (e.g. "Code") to
5103	// unconditionally include in API requests. By default, fields with
5104	// empty values are omitted from API requests. However, any non-pointer,
5105	// non-interface field appearing in ForceSendFields will be sent to the
5106	// server regardless of whether the field is empty or not. This may be
5107	// used to include empty fields in Patch requests.
5108	ForceSendFields []string `json:"-"`
5109
5110	// NullFields is a list of field names (e.g. "Code") to include in API
5111	// requests with the JSON null value. By default, fields with empty
5112	// values are omitted from API requests. However, any field with an
5113	// empty value appearing in NullFields will be sent to the server as
5114	// null. It is an error if a field in this list has a non-empty value.
5115	// This may be used to include null fields in Patch requests.
5116	NullFields []string `json:"-"`
5117}
5118
5119func (s *DiskAggregatedListWarning) MarshalJSON() ([]byte, error) {
5120	type NoMethod DiskAggregatedListWarning
5121	raw := NoMethod(*s)
5122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5123}
5124
5125type DiskAggregatedListWarningData struct {
5126	// Key: [Output Only] A key that provides more detail on the warning
5127	// being returned. For example, for warnings where there are no results
5128	// in a list request for a particular zone, this key might be scope and
5129	// the key value might be the zone name. Other examples might be a key
5130	// indicating a deprecated resource and a suggested replacement, or a
5131	// warning about invalid network settings (for example, if an instance
5132	// attempts to perform IP forwarding but is not enabled for IP
5133	// forwarding).
5134	Key string `json:"key,omitempty"`
5135
5136	// Value: [Output Only] A warning data value corresponding to the key.
5137	Value string `json:"value,omitempty"`
5138
5139	// ForceSendFields is a list of field names (e.g. "Key") to
5140	// unconditionally include in API requests. By default, fields with
5141	// empty values are omitted from API requests. However, any non-pointer,
5142	// non-interface field appearing in ForceSendFields will be sent to the
5143	// server regardless of whether the field is empty or not. This may be
5144	// used to include empty fields in Patch requests.
5145	ForceSendFields []string `json:"-"`
5146
5147	// NullFields is a list of field names (e.g. "Key") to include in API
5148	// requests with the JSON null value. By default, fields with empty
5149	// values are omitted from API requests. However, any field with an
5150	// empty value appearing in NullFields will be sent to the server as
5151	// null. It is an error if a field in this list has a non-empty value.
5152	// This may be used to include null fields in Patch requests.
5153	NullFields []string `json:"-"`
5154}
5155
5156func (s *DiskAggregatedListWarningData) MarshalJSON() ([]byte, error) {
5157	type NoMethod DiskAggregatedListWarningData
5158	raw := NoMethod(*s)
5159	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5160}
5161
5162// DiskList: A list of Disk resources.
5163type DiskList struct {
5164	// Id: [Output Only] Unique identifier for the resource; defined by the
5165	// server.
5166	Id string `json:"id,omitempty"`
5167
5168	// Items: A list of Disk resources.
5169	Items []*Disk `json:"items,omitempty"`
5170
5171	// Kind: [Output Only] Type of resource. Always compute#diskList for
5172	// lists of disks.
5173	Kind string `json:"kind,omitempty"`
5174
5175	// NextPageToken: [Output Only] This token allows you to get the next
5176	// page of results for list requests. If the number of results is larger
5177	// than maxResults, use the nextPageToken as a value for the query
5178	// parameter pageToken in the next list request. Subsequent list
5179	// requests will have their own nextPageToken to continue paging through
5180	// the results.
5181	NextPageToken string `json:"nextPageToken,omitempty"`
5182
5183	// SelfLink: [Output Only] Server-defined URL for this resource.
5184	SelfLink string `json:"selfLink,omitempty"`
5185
5186	// Warning: [Output Only] Informational warning message.
5187	Warning *DiskListWarning `json:"warning,omitempty"`
5188
5189	// ServerResponse contains the HTTP response code and headers from the
5190	// server.
5191	googleapi.ServerResponse `json:"-"`
5192
5193	// ForceSendFields is a list of field names (e.g. "Id") to
5194	// unconditionally include in API requests. By default, fields with
5195	// empty values are omitted from API requests. However, any non-pointer,
5196	// non-interface field appearing in ForceSendFields will be sent to the
5197	// server regardless of whether the field is empty or not. This may be
5198	// used to include empty fields in Patch requests.
5199	ForceSendFields []string `json:"-"`
5200
5201	// NullFields is a list of field names (e.g. "Id") to include in API
5202	// requests with the JSON null value. By default, fields with empty
5203	// values are omitted from API requests. However, any field with an
5204	// empty value appearing in NullFields will be sent to the server as
5205	// null. It is an error if a field in this list has a non-empty value.
5206	// This may be used to include null fields in Patch requests.
5207	NullFields []string `json:"-"`
5208}
5209
5210func (s *DiskList) MarshalJSON() ([]byte, error) {
5211	type NoMethod DiskList
5212	raw := NoMethod(*s)
5213	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5214}
5215
5216// DiskListWarning: [Output Only] Informational warning message.
5217type DiskListWarning struct {
5218	// Code: [Output Only] A warning code, if applicable. For example,
5219	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5220	// the response.
5221	//
5222	// Possible values:
5223	//   "CLEANUP_FAILED"
5224	//   "DEPRECATED_RESOURCE_USED"
5225	//   "DEPRECATED_TYPE_USED"
5226	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5227	//   "EXPERIMENTAL_TYPE_USED"
5228	//   "EXTERNAL_API_WARNING"
5229	//   "FIELD_VALUE_OVERRIDEN"
5230	//   "INJECTED_KERNELS_DEPRECATED"
5231	//   "MISSING_TYPE_DEPENDENCY"
5232	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5233	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5234	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5235	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5236	//   "NEXT_HOP_NOT_RUNNING"
5237	//   "NOT_CRITICAL_ERROR"
5238	//   "NO_RESULTS_ON_PAGE"
5239	//   "REQUIRED_TOS_AGREEMENT"
5240	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5241	//   "RESOURCE_NOT_DELETED"
5242	//   "SCHEMA_VALIDATION_IGNORED"
5243	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5244	//   "UNDECLARED_PROPERTIES"
5245	//   "UNREACHABLE"
5246	Code string `json:"code,omitempty"`
5247
5248	// Data: [Output Only] Metadata about this warning in key: value format.
5249	// For example:
5250	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5251	Data []*DiskListWarningData `json:"data,omitempty"`
5252
5253	// Message: [Output Only] A human-readable description of the warning
5254	// code.
5255	Message string `json:"message,omitempty"`
5256
5257	// ForceSendFields is a list of field names (e.g. "Code") to
5258	// unconditionally include in API requests. By default, fields with
5259	// empty values are omitted from API requests. However, any non-pointer,
5260	// non-interface field appearing in ForceSendFields will be sent to the
5261	// server regardless of whether the field is empty or not. This may be
5262	// used to include empty fields in Patch requests.
5263	ForceSendFields []string `json:"-"`
5264
5265	// NullFields is a list of field names (e.g. "Code") to include in API
5266	// requests with the JSON null value. By default, fields with empty
5267	// values are omitted from API requests. However, any field with an
5268	// empty value appearing in NullFields will be sent to the server as
5269	// null. It is an error if a field in this list has a non-empty value.
5270	// This may be used to include null fields in Patch requests.
5271	NullFields []string `json:"-"`
5272}
5273
5274func (s *DiskListWarning) MarshalJSON() ([]byte, error) {
5275	type NoMethod DiskListWarning
5276	raw := NoMethod(*s)
5277	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5278}
5279
5280type DiskListWarningData struct {
5281	// Key: [Output Only] A key that provides more detail on the warning
5282	// being returned. For example, for warnings where there are no results
5283	// in a list request for a particular zone, this key might be scope and
5284	// the key value might be the zone name. Other examples might be a key
5285	// indicating a deprecated resource and a suggested replacement, or a
5286	// warning about invalid network settings (for example, if an instance
5287	// attempts to perform IP forwarding but is not enabled for IP
5288	// forwarding).
5289	Key string `json:"key,omitempty"`
5290
5291	// Value: [Output Only] A warning data value corresponding to the key.
5292	Value string `json:"value,omitempty"`
5293
5294	// ForceSendFields is a list of field names (e.g. "Key") to
5295	// unconditionally include in API requests. By default, fields with
5296	// empty values are omitted from API requests. However, any non-pointer,
5297	// non-interface field appearing in ForceSendFields will be sent to the
5298	// server regardless of whether the field is empty or not. This may be
5299	// used to include empty fields in Patch requests.
5300	ForceSendFields []string `json:"-"`
5301
5302	// NullFields is a list of field names (e.g. "Key") to include in API
5303	// requests with the JSON null value. By default, fields with empty
5304	// values are omitted from API requests. However, any field with an
5305	// empty value appearing in NullFields will be sent to the server as
5306	// null. It is an error if a field in this list has a non-empty value.
5307	// This may be used to include null fields in Patch requests.
5308	NullFields []string `json:"-"`
5309}
5310
5311func (s *DiskListWarningData) MarshalJSON() ([]byte, error) {
5312	type NoMethod DiskListWarningData
5313	raw := NoMethod(*s)
5314	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5315}
5316
5317type DiskMoveRequest struct {
5318	// DestinationZone: The URL of the destination zone to move the disk.
5319	// This can be a full or partial URL. For example, the following are all
5320	// valid URLs to a zone:
5321	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
5322	//
5323	// - projects/project/zones/zone
5324	// - zones/zone
5325	DestinationZone string `json:"destinationZone,omitempty"`
5326
5327	// TargetDisk: The URL of the target disk to move. This can be a full or
5328	// partial URL. For example, the following are all valid URLs to a disk:
5329	//
5330	// -
5331	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
5332	// - projects/project/zones/zone/disks/disk
5333	// - zones/zone/disks/disk
5334	TargetDisk string `json:"targetDisk,omitempty"`
5335
5336	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
5337	// unconditionally include in API requests. By default, fields with
5338	// empty values are omitted from API requests. However, any non-pointer,
5339	// non-interface field appearing in ForceSendFields will be sent to the
5340	// server regardless of whether the field is empty or not. This may be
5341	// used to include empty fields in Patch requests.
5342	ForceSendFields []string `json:"-"`
5343
5344	// NullFields is a list of field names (e.g. "DestinationZone") to
5345	// include in API requests with the JSON null value. By default, fields
5346	// with empty values are omitted from API requests. However, any field
5347	// with an empty value appearing in NullFields will be sent to the
5348	// server as null. It is an error if a field in this list has a
5349	// non-empty value. This may be used to include null fields in Patch
5350	// requests.
5351	NullFields []string `json:"-"`
5352}
5353
5354func (s *DiskMoveRequest) MarshalJSON() ([]byte, error) {
5355	type NoMethod DiskMoveRequest
5356	raw := NoMethod(*s)
5357	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5358}
5359
5360// DiskType: A DiskType resource. (== resource_for beta.diskTypes ==)
5361// (== resource_for v1.diskTypes ==)
5362type DiskType struct {
5363	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
5364	// format.
5365	CreationTimestamp string `json:"creationTimestamp,omitempty"`
5366
5367	// DefaultDiskSizeGb: [Output Only] Server-defined default disk size in
5368	// GB.
5369	DefaultDiskSizeGb int64 `json:"defaultDiskSizeGb,omitempty,string"`
5370
5371	// Deprecated: [Output Only] The deprecation status associated with this
5372	// disk type.
5373	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
5374
5375	// Description: [Output Only] An optional description of this resource.
5376	Description string `json:"description,omitempty"`
5377
5378	// Id: [Output Only] The unique identifier for the resource. This
5379	// identifier is defined by the server.
5380	Id uint64 `json:"id,omitempty,string"`
5381
5382	// Kind: [Output Only] Type of the resource. Always compute#diskType for
5383	// disk types.
5384	Kind string `json:"kind,omitempty"`
5385
5386	// Name: [Output Only] Name of the resource.
5387	Name string `json:"name,omitempty"`
5388
5389	// SelfLink: [Output Only] Server-defined URL for the resource.
5390	SelfLink string `json:"selfLink,omitempty"`
5391
5392	// ValidDiskSize: [Output Only] An optional textual description of the
5393	// valid disk size, such as "10GB-10TB".
5394	ValidDiskSize string `json:"validDiskSize,omitempty"`
5395
5396	// Zone: [Output Only] URL of the zone where the disk type resides. You
5397	// must specify this field as part of the HTTP request URL. It is not
5398	// settable as a field in the request body.
5399	Zone string `json:"zone,omitempty"`
5400
5401	// ServerResponse contains the HTTP response code and headers from the
5402	// server.
5403	googleapi.ServerResponse `json:"-"`
5404
5405	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
5406	// to unconditionally include in API requests. By default, fields with
5407	// empty values are omitted from API requests. However, any non-pointer,
5408	// non-interface field appearing in ForceSendFields will be sent to the
5409	// server regardless of whether the field is empty or not. This may be
5410	// used to include empty fields in Patch requests.
5411	ForceSendFields []string `json:"-"`
5412
5413	// NullFields is a list of field names (e.g. "CreationTimestamp") to
5414	// include in API requests with the JSON null value. By default, fields
5415	// with empty values are omitted from API requests. However, any field
5416	// with an empty value appearing in NullFields will be sent to the
5417	// server as null. It is an error if a field in this list has a
5418	// non-empty value. This may be used to include null fields in Patch
5419	// requests.
5420	NullFields []string `json:"-"`
5421}
5422
5423func (s *DiskType) MarshalJSON() ([]byte, error) {
5424	type NoMethod DiskType
5425	raw := NoMethod(*s)
5426	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5427}
5428
5429type DiskTypeAggregatedList struct {
5430	// Id: [Output Only] Unique identifier for the resource; defined by the
5431	// server.
5432	Id string `json:"id,omitempty"`
5433
5434	// Items: A list of DiskTypesScopedList resources.
5435	Items map[string]DiskTypesScopedList `json:"items,omitempty"`
5436
5437	// Kind: [Output Only] Type of resource. Always
5438	// compute#diskTypeAggregatedList.
5439	Kind string `json:"kind,omitempty"`
5440
5441	// NextPageToken: [Output Only] This token allows you to get the next
5442	// page of results for list requests. If the number of results is larger
5443	// than maxResults, use the nextPageToken as a value for the query
5444	// parameter pageToken in the next list request. Subsequent list
5445	// requests will have their own nextPageToken to continue paging through
5446	// the results.
5447	NextPageToken string `json:"nextPageToken,omitempty"`
5448
5449	// SelfLink: [Output Only] Server-defined URL for this resource.
5450	SelfLink string `json:"selfLink,omitempty"`
5451
5452	// Warning: [Output Only] Informational warning message.
5453	Warning *DiskTypeAggregatedListWarning `json:"warning,omitempty"`
5454
5455	// ServerResponse contains the HTTP response code and headers from the
5456	// server.
5457	googleapi.ServerResponse `json:"-"`
5458
5459	// ForceSendFields is a list of field names (e.g. "Id") to
5460	// unconditionally include in API requests. By default, fields with
5461	// empty values are omitted from API requests. However, any non-pointer,
5462	// non-interface field appearing in ForceSendFields will be sent to the
5463	// server regardless of whether the field is empty or not. This may be
5464	// used to include empty fields in Patch requests.
5465	ForceSendFields []string `json:"-"`
5466
5467	// NullFields is a list of field names (e.g. "Id") to include in API
5468	// requests with the JSON null value. By default, fields with empty
5469	// values are omitted from API requests. However, any field with an
5470	// empty value appearing in NullFields will be sent to the server as
5471	// null. It is an error if a field in this list has a non-empty value.
5472	// This may be used to include null fields in Patch requests.
5473	NullFields []string `json:"-"`
5474}
5475
5476func (s *DiskTypeAggregatedList) MarshalJSON() ([]byte, error) {
5477	type NoMethod DiskTypeAggregatedList
5478	raw := NoMethod(*s)
5479	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5480}
5481
5482// DiskTypeAggregatedListWarning: [Output Only] Informational warning
5483// message.
5484type DiskTypeAggregatedListWarning struct {
5485	// Code: [Output Only] A warning code, if applicable. For example,
5486	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5487	// the response.
5488	//
5489	// Possible values:
5490	//   "CLEANUP_FAILED"
5491	//   "DEPRECATED_RESOURCE_USED"
5492	//   "DEPRECATED_TYPE_USED"
5493	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5494	//   "EXPERIMENTAL_TYPE_USED"
5495	//   "EXTERNAL_API_WARNING"
5496	//   "FIELD_VALUE_OVERRIDEN"
5497	//   "INJECTED_KERNELS_DEPRECATED"
5498	//   "MISSING_TYPE_DEPENDENCY"
5499	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5500	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5501	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5502	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5503	//   "NEXT_HOP_NOT_RUNNING"
5504	//   "NOT_CRITICAL_ERROR"
5505	//   "NO_RESULTS_ON_PAGE"
5506	//   "REQUIRED_TOS_AGREEMENT"
5507	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5508	//   "RESOURCE_NOT_DELETED"
5509	//   "SCHEMA_VALIDATION_IGNORED"
5510	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5511	//   "UNDECLARED_PROPERTIES"
5512	//   "UNREACHABLE"
5513	Code string `json:"code,omitempty"`
5514
5515	// Data: [Output Only] Metadata about this warning in key: value format.
5516	// For example:
5517	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5518	Data []*DiskTypeAggregatedListWarningData `json:"data,omitempty"`
5519
5520	// Message: [Output Only] A human-readable description of the warning
5521	// code.
5522	Message string `json:"message,omitempty"`
5523
5524	// ForceSendFields is a list of field names (e.g. "Code") to
5525	// unconditionally include in API requests. By default, fields with
5526	// empty values are omitted from API requests. However, any non-pointer,
5527	// non-interface field appearing in ForceSendFields will be sent to the
5528	// server regardless of whether the field is empty or not. This may be
5529	// used to include empty fields in Patch requests.
5530	ForceSendFields []string `json:"-"`
5531
5532	// NullFields is a list of field names (e.g. "Code") to include in API
5533	// requests with the JSON null value. By default, fields with empty
5534	// values are omitted from API requests. However, any field with an
5535	// empty value appearing in NullFields will be sent to the server as
5536	// null. It is an error if a field in this list has a non-empty value.
5537	// This may be used to include null fields in Patch requests.
5538	NullFields []string `json:"-"`
5539}
5540
5541func (s *DiskTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
5542	type NoMethod DiskTypeAggregatedListWarning
5543	raw := NoMethod(*s)
5544	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5545}
5546
5547type DiskTypeAggregatedListWarningData struct {
5548	// Key: [Output Only] A key that provides more detail on the warning
5549	// being returned. For example, for warnings where there are no results
5550	// in a list request for a particular zone, this key might be scope and
5551	// the key value might be the zone name. Other examples might be a key
5552	// indicating a deprecated resource and a suggested replacement, or a
5553	// warning about invalid network settings (for example, if an instance
5554	// attempts to perform IP forwarding but is not enabled for IP
5555	// forwarding).
5556	Key string `json:"key,omitempty"`
5557
5558	// Value: [Output Only] A warning data value corresponding to the key.
5559	Value string `json:"value,omitempty"`
5560
5561	// ForceSendFields is a list of field names (e.g. "Key") to
5562	// unconditionally include in API requests. By default, fields with
5563	// empty values are omitted from API requests. However, any non-pointer,
5564	// non-interface field appearing in ForceSendFields will be sent to the
5565	// server regardless of whether the field is empty or not. This may be
5566	// used to include empty fields in Patch requests.
5567	ForceSendFields []string `json:"-"`
5568
5569	// NullFields is a list of field names (e.g. "Key") to include in API
5570	// requests with the JSON null value. By default, fields with empty
5571	// values are omitted from API requests. However, any field with an
5572	// empty value appearing in NullFields will be sent to the server as
5573	// null. It is an error if a field in this list has a non-empty value.
5574	// This may be used to include null fields in Patch requests.
5575	NullFields []string `json:"-"`
5576}
5577
5578func (s *DiskTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
5579	type NoMethod DiskTypeAggregatedListWarningData
5580	raw := NoMethod(*s)
5581	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5582}
5583
5584// DiskTypeList: Contains a list of disk types.
5585type DiskTypeList struct {
5586	// Id: [Output Only] Unique identifier for the resource; defined by the
5587	// server.
5588	Id string `json:"id,omitempty"`
5589
5590	// Items: A list of DiskType resources.
5591	Items []*DiskType `json:"items,omitempty"`
5592
5593	// Kind: [Output Only] Type of resource. Always compute#diskTypeList for
5594	// disk types.
5595	Kind string `json:"kind,omitempty"`
5596
5597	// NextPageToken: [Output Only] This token allows you to get the next
5598	// page of results for list requests. If the number of results is larger
5599	// than maxResults, use the nextPageToken as a value for the query
5600	// parameter pageToken in the next list request. Subsequent list
5601	// requests will have their own nextPageToken to continue paging through
5602	// the results.
5603	NextPageToken string `json:"nextPageToken,omitempty"`
5604
5605	// SelfLink: [Output Only] Server-defined URL for this resource.
5606	SelfLink string `json:"selfLink,omitempty"`
5607
5608	// Warning: [Output Only] Informational warning message.
5609	Warning *DiskTypeListWarning `json:"warning,omitempty"`
5610
5611	// ServerResponse contains the HTTP response code and headers from the
5612	// server.
5613	googleapi.ServerResponse `json:"-"`
5614
5615	// ForceSendFields is a list of field names (e.g. "Id") to
5616	// unconditionally include in API requests. By default, fields with
5617	// empty values are omitted from API requests. However, any non-pointer,
5618	// non-interface field appearing in ForceSendFields will be sent to the
5619	// server regardless of whether the field is empty or not. This may be
5620	// used to include empty fields in Patch requests.
5621	ForceSendFields []string `json:"-"`
5622
5623	// NullFields is a list of field names (e.g. "Id") to include in API
5624	// requests with the JSON null value. By default, fields with empty
5625	// values are omitted from API requests. However, any field with an
5626	// empty value appearing in NullFields will be sent to the server as
5627	// null. It is an error if a field in this list has a non-empty value.
5628	// This may be used to include null fields in Patch requests.
5629	NullFields []string `json:"-"`
5630}
5631
5632func (s *DiskTypeList) MarshalJSON() ([]byte, error) {
5633	type NoMethod DiskTypeList
5634	raw := NoMethod(*s)
5635	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5636}
5637
5638// DiskTypeListWarning: [Output Only] Informational warning message.
5639type DiskTypeListWarning struct {
5640	// Code: [Output Only] A warning code, if applicable. For example,
5641	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5642	// the response.
5643	//
5644	// Possible values:
5645	//   "CLEANUP_FAILED"
5646	//   "DEPRECATED_RESOURCE_USED"
5647	//   "DEPRECATED_TYPE_USED"
5648	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5649	//   "EXPERIMENTAL_TYPE_USED"
5650	//   "EXTERNAL_API_WARNING"
5651	//   "FIELD_VALUE_OVERRIDEN"
5652	//   "INJECTED_KERNELS_DEPRECATED"
5653	//   "MISSING_TYPE_DEPENDENCY"
5654	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5655	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5656	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5657	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5658	//   "NEXT_HOP_NOT_RUNNING"
5659	//   "NOT_CRITICAL_ERROR"
5660	//   "NO_RESULTS_ON_PAGE"
5661	//   "REQUIRED_TOS_AGREEMENT"
5662	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5663	//   "RESOURCE_NOT_DELETED"
5664	//   "SCHEMA_VALIDATION_IGNORED"
5665	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5666	//   "UNDECLARED_PROPERTIES"
5667	//   "UNREACHABLE"
5668	Code string `json:"code,omitempty"`
5669
5670	// Data: [Output Only] Metadata about this warning in key: value format.
5671	// For example:
5672	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5673	Data []*DiskTypeListWarningData `json:"data,omitempty"`
5674
5675	// Message: [Output Only] A human-readable description of the warning
5676	// code.
5677	Message string `json:"message,omitempty"`
5678
5679	// ForceSendFields is a list of field names (e.g. "Code") to
5680	// unconditionally include in API requests. By default, fields with
5681	// empty values are omitted from API requests. However, any non-pointer,
5682	// non-interface field appearing in ForceSendFields will be sent to the
5683	// server regardless of whether the field is empty or not. This may be
5684	// used to include empty fields in Patch requests.
5685	ForceSendFields []string `json:"-"`
5686
5687	// NullFields is a list of field names (e.g. "Code") to include in API
5688	// requests with the JSON null value. By default, fields with empty
5689	// values are omitted from API requests. However, any field with an
5690	// empty value appearing in NullFields will be sent to the server as
5691	// null. It is an error if a field in this list has a non-empty value.
5692	// This may be used to include null fields in Patch requests.
5693	NullFields []string `json:"-"`
5694}
5695
5696func (s *DiskTypeListWarning) MarshalJSON() ([]byte, error) {
5697	type NoMethod DiskTypeListWarning
5698	raw := NoMethod(*s)
5699	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5700}
5701
5702type DiskTypeListWarningData struct {
5703	// Key: [Output Only] A key that provides more detail on the warning
5704	// being returned. For example, for warnings where there are no results
5705	// in a list request for a particular zone, this key might be scope and
5706	// the key value might be the zone name. Other examples might be a key
5707	// indicating a deprecated resource and a suggested replacement, or a
5708	// warning about invalid network settings (for example, if an instance
5709	// attempts to perform IP forwarding but is not enabled for IP
5710	// forwarding).
5711	Key string `json:"key,omitempty"`
5712
5713	// Value: [Output Only] A warning data value corresponding to the key.
5714	Value string `json:"value,omitempty"`
5715
5716	// ForceSendFields is a list of field names (e.g. "Key") to
5717	// unconditionally include in API requests. By default, fields with
5718	// empty values are omitted from API requests. However, any non-pointer,
5719	// non-interface field appearing in ForceSendFields will be sent to the
5720	// server regardless of whether the field is empty or not. This may be
5721	// used to include empty fields in Patch requests.
5722	ForceSendFields []string `json:"-"`
5723
5724	// NullFields is a list of field names (e.g. "Key") to include in API
5725	// requests with the JSON null value. By default, fields with empty
5726	// values are omitted from API requests. However, any field with an
5727	// empty value appearing in NullFields will be sent to the server as
5728	// null. It is an error if a field in this list has a non-empty value.
5729	// This may be used to include null fields in Patch requests.
5730	NullFields []string `json:"-"`
5731}
5732
5733func (s *DiskTypeListWarningData) MarshalJSON() ([]byte, error) {
5734	type NoMethod DiskTypeListWarningData
5735	raw := NoMethod(*s)
5736	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5737}
5738
5739type DiskTypesScopedList struct {
5740	// DiskTypes: [Output Only] List of disk types contained in this scope.
5741	DiskTypes []*DiskType `json:"diskTypes,omitempty"`
5742
5743	// Warning: [Output Only] Informational warning which replaces the list
5744	// of disk types when the list is empty.
5745	Warning *DiskTypesScopedListWarning `json:"warning,omitempty"`
5746
5747	// ForceSendFields is a list of field names (e.g. "DiskTypes") to
5748	// unconditionally include in API requests. By default, fields with
5749	// empty values are omitted from API requests. However, any non-pointer,
5750	// non-interface field appearing in ForceSendFields will be sent to the
5751	// server regardless of whether the field is empty or not. This may be
5752	// used to include empty fields in Patch requests.
5753	ForceSendFields []string `json:"-"`
5754
5755	// NullFields is a list of field names (e.g. "DiskTypes") to include in
5756	// API requests with the JSON null value. By default, fields with empty
5757	// values are omitted from API requests. However, any field with an
5758	// empty value appearing in NullFields will be sent to the server as
5759	// null. It is an error if a field in this list has a non-empty value.
5760	// This may be used to include null fields in Patch requests.
5761	NullFields []string `json:"-"`
5762}
5763
5764func (s *DiskTypesScopedList) MarshalJSON() ([]byte, error) {
5765	type NoMethod DiskTypesScopedList
5766	raw := NoMethod(*s)
5767	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5768}
5769
5770// DiskTypesScopedListWarning: [Output Only] Informational warning which
5771// replaces the list of disk types when the list is empty.
5772type DiskTypesScopedListWarning struct {
5773	// Code: [Output Only] A warning code, if applicable. For example,
5774	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5775	// the response.
5776	//
5777	// Possible values:
5778	//   "CLEANUP_FAILED"
5779	//   "DEPRECATED_RESOURCE_USED"
5780	//   "DEPRECATED_TYPE_USED"
5781	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5782	//   "EXPERIMENTAL_TYPE_USED"
5783	//   "EXTERNAL_API_WARNING"
5784	//   "FIELD_VALUE_OVERRIDEN"
5785	//   "INJECTED_KERNELS_DEPRECATED"
5786	//   "MISSING_TYPE_DEPENDENCY"
5787	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5788	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5789	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5790	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5791	//   "NEXT_HOP_NOT_RUNNING"
5792	//   "NOT_CRITICAL_ERROR"
5793	//   "NO_RESULTS_ON_PAGE"
5794	//   "REQUIRED_TOS_AGREEMENT"
5795	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5796	//   "RESOURCE_NOT_DELETED"
5797	//   "SCHEMA_VALIDATION_IGNORED"
5798	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5799	//   "UNDECLARED_PROPERTIES"
5800	//   "UNREACHABLE"
5801	Code string `json:"code,omitempty"`
5802
5803	// Data: [Output Only] Metadata about this warning in key: value format.
5804	// For example:
5805	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5806	Data []*DiskTypesScopedListWarningData `json:"data,omitempty"`
5807
5808	// Message: [Output Only] A human-readable description of the warning
5809	// code.
5810	Message string `json:"message,omitempty"`
5811
5812	// ForceSendFields is a list of field names (e.g. "Code") to
5813	// unconditionally include in API requests. By default, fields with
5814	// empty values are omitted from API requests. However, any non-pointer,
5815	// non-interface field appearing in ForceSendFields will be sent to the
5816	// server regardless of whether the field is empty or not. This may be
5817	// used to include empty fields in Patch requests.
5818	ForceSendFields []string `json:"-"`
5819
5820	// NullFields is a list of field names (e.g. "Code") to include in API
5821	// requests with the JSON null value. By default, fields with empty
5822	// values are omitted from API requests. However, any field with an
5823	// empty value appearing in NullFields will be sent to the server as
5824	// null. It is an error if a field in this list has a non-empty value.
5825	// This may be used to include null fields in Patch requests.
5826	NullFields []string `json:"-"`
5827}
5828
5829func (s *DiskTypesScopedListWarning) MarshalJSON() ([]byte, error) {
5830	type NoMethod DiskTypesScopedListWarning
5831	raw := NoMethod(*s)
5832	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5833}
5834
5835type DiskTypesScopedListWarningData struct {
5836	// Key: [Output Only] A key that provides more detail on the warning
5837	// being returned. For example, for warnings where there are no results
5838	// in a list request for a particular zone, this key might be scope and
5839	// the key value might be the zone name. Other examples might be a key
5840	// indicating a deprecated resource and a suggested replacement, or a
5841	// warning about invalid network settings (for example, if an instance
5842	// attempts to perform IP forwarding but is not enabled for IP
5843	// forwarding).
5844	Key string `json:"key,omitempty"`
5845
5846	// Value: [Output Only] A warning data value corresponding to the key.
5847	Value string `json:"value,omitempty"`
5848
5849	// ForceSendFields is a list of field names (e.g. "Key") to
5850	// unconditionally include in API requests. By default, fields with
5851	// empty values are omitted from API requests. However, any non-pointer,
5852	// non-interface field appearing in ForceSendFields will be sent to the
5853	// server regardless of whether the field is empty or not. This may be
5854	// used to include empty fields in Patch requests.
5855	ForceSendFields []string `json:"-"`
5856
5857	// NullFields is a list of field names (e.g. "Key") to include in API
5858	// requests with the JSON null value. By default, fields with empty
5859	// values are omitted from API requests. However, any field with an
5860	// empty value appearing in NullFields will be sent to the server as
5861	// null. It is an error if a field in this list has a non-empty value.
5862	// This may be used to include null fields in Patch requests.
5863	NullFields []string `json:"-"`
5864}
5865
5866func (s *DiskTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
5867	type NoMethod DiskTypesScopedListWarningData
5868	raw := NoMethod(*s)
5869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5870}
5871
5872type DisksResizeRequest struct {
5873	// SizeGb: The new size of the persistent disk, which is specified in
5874	// GB.
5875	SizeGb int64 `json:"sizeGb,omitempty,string"`
5876
5877	// ForceSendFields is a list of field names (e.g. "SizeGb") to
5878	// unconditionally include in API requests. By default, fields with
5879	// empty values are omitted from API requests. However, any non-pointer,
5880	// non-interface field appearing in ForceSendFields will be sent to the
5881	// server regardless of whether the field is empty or not. This may be
5882	// used to include empty fields in Patch requests.
5883	ForceSendFields []string `json:"-"`
5884
5885	// NullFields is a list of field names (e.g. "SizeGb") to include in API
5886	// requests with the JSON null value. By default, fields with empty
5887	// values are omitted from API requests. However, any field with an
5888	// empty value appearing in NullFields will be sent to the server as
5889	// null. It is an error if a field in this list has a non-empty value.
5890	// This may be used to include null fields in Patch requests.
5891	NullFields []string `json:"-"`
5892}
5893
5894func (s *DisksResizeRequest) MarshalJSON() ([]byte, error) {
5895	type NoMethod DisksResizeRequest
5896	raw := NoMethod(*s)
5897	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5898}
5899
5900type DisksScopedList struct {
5901	// Disks: [Output Only] List of disks contained in this scope.
5902	Disks []*Disk `json:"disks,omitempty"`
5903
5904	// Warning: [Output Only] Informational warning which replaces the list
5905	// of disks when the list is empty.
5906	Warning *DisksScopedListWarning `json:"warning,omitempty"`
5907
5908	// ForceSendFields is a list of field names (e.g. "Disks") to
5909	// unconditionally include in API requests. By default, fields with
5910	// empty values are omitted from API requests. However, any non-pointer,
5911	// non-interface field appearing in ForceSendFields will be sent to the
5912	// server regardless of whether the field is empty or not. This may be
5913	// used to include empty fields in Patch requests.
5914	ForceSendFields []string `json:"-"`
5915
5916	// NullFields is a list of field names (e.g. "Disks") to include in API
5917	// requests with the JSON null value. By default, fields with empty
5918	// values are omitted from API requests. However, any field with an
5919	// empty value appearing in NullFields will be sent to the server as
5920	// null. It is an error if a field in this list has a non-empty value.
5921	// This may be used to include null fields in Patch requests.
5922	NullFields []string `json:"-"`
5923}
5924
5925func (s *DisksScopedList) MarshalJSON() ([]byte, error) {
5926	type NoMethod DisksScopedList
5927	raw := NoMethod(*s)
5928	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5929}
5930
5931// DisksScopedListWarning: [Output Only] Informational warning which
5932// replaces the list of disks when the list is empty.
5933type DisksScopedListWarning struct {
5934	// Code: [Output Only] A warning code, if applicable. For example,
5935	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5936	// the response.
5937	//
5938	// Possible values:
5939	//   "CLEANUP_FAILED"
5940	//   "DEPRECATED_RESOURCE_USED"
5941	//   "DEPRECATED_TYPE_USED"
5942	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5943	//   "EXPERIMENTAL_TYPE_USED"
5944	//   "EXTERNAL_API_WARNING"
5945	//   "FIELD_VALUE_OVERRIDEN"
5946	//   "INJECTED_KERNELS_DEPRECATED"
5947	//   "MISSING_TYPE_DEPENDENCY"
5948	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5949	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5950	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5951	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5952	//   "NEXT_HOP_NOT_RUNNING"
5953	//   "NOT_CRITICAL_ERROR"
5954	//   "NO_RESULTS_ON_PAGE"
5955	//   "REQUIRED_TOS_AGREEMENT"
5956	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5957	//   "RESOURCE_NOT_DELETED"
5958	//   "SCHEMA_VALIDATION_IGNORED"
5959	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5960	//   "UNDECLARED_PROPERTIES"
5961	//   "UNREACHABLE"
5962	Code string `json:"code,omitempty"`
5963
5964	// Data: [Output Only] Metadata about this warning in key: value format.
5965	// For example:
5966	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5967	Data []*DisksScopedListWarningData `json:"data,omitempty"`
5968
5969	// Message: [Output Only] A human-readable description of the warning
5970	// code.
5971	Message string `json:"message,omitempty"`
5972
5973	// ForceSendFields is a list of field names (e.g. "Code") to
5974	// unconditionally include in API requests. By default, fields with
5975	// empty values are omitted from API requests. However, any non-pointer,
5976	// non-interface field appearing in ForceSendFields will be sent to the
5977	// server regardless of whether the field is empty or not. This may be
5978	// used to include empty fields in Patch requests.
5979	ForceSendFields []string `json:"-"`
5980
5981	// NullFields is a list of field names (e.g. "Code") to include in API
5982	// requests with the JSON null value. By default, fields with empty
5983	// values are omitted from API requests. However, any field with an
5984	// empty value appearing in NullFields will be sent to the server as
5985	// null. It is an error if a field in this list has a non-empty value.
5986	// This may be used to include null fields in Patch requests.
5987	NullFields []string `json:"-"`
5988}
5989
5990func (s *DisksScopedListWarning) MarshalJSON() ([]byte, error) {
5991	type NoMethod DisksScopedListWarning
5992	raw := NoMethod(*s)
5993	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5994}
5995
5996type DisksScopedListWarningData struct {
5997	// Key: [Output Only] A key that provides more detail on the warning
5998	// being returned. For example, for warnings where there are no results
5999	// in a list request for a particular zone, this key might be scope and
6000	// the key value might be the zone name. Other examples might be a key
6001	// indicating a deprecated resource and a suggested replacement, or a
6002	// warning about invalid network settings (for example, if an instance
6003	// attempts to perform IP forwarding but is not enabled for IP
6004	// forwarding).
6005	Key string `json:"key,omitempty"`
6006
6007	// Value: [Output Only] A warning data value corresponding to the key.
6008	Value string `json:"value,omitempty"`
6009
6010	// ForceSendFields is a list of field names (e.g. "Key") to
6011	// unconditionally include in API requests. By default, fields with
6012	// empty values are omitted from API requests. However, any non-pointer,
6013	// non-interface field appearing in ForceSendFields will be sent to the
6014	// server regardless of whether the field is empty or not. This may be
6015	// used to include empty fields in Patch requests.
6016	ForceSendFields []string `json:"-"`
6017
6018	// NullFields is a list of field names (e.g. "Key") to include in API
6019	// requests with the JSON null value. By default, fields with empty
6020	// values are omitted from API requests. However, any field with an
6021	// empty value appearing in NullFields will be sent to the server as
6022	// null. It is an error if a field in this list has a non-empty value.
6023	// This may be used to include null fields in Patch requests.
6024	NullFields []string `json:"-"`
6025}
6026
6027func (s *DisksScopedListWarningData) MarshalJSON() ([]byte, error) {
6028	type NoMethod DisksScopedListWarningData
6029	raw := NoMethod(*s)
6030	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6031}
6032
6033// Firewall: Represents a Firewall resource.
6034type Firewall struct {
6035	// Allowed: The list of ALLOW rules specified by this firewall. Each
6036	// rule specifies a protocol and port-range tuple that describes a
6037	// permitted connection.
6038	Allowed []*FirewallAllowed `json:"allowed,omitempty"`
6039
6040	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
6041	// format.
6042	CreationTimestamp string `json:"creationTimestamp,omitempty"`
6043
6044	// Denied: The list of DENY rules specified by this firewall. Each rule
6045	// specifies a protocol and port-range tuple that describes a denied
6046	// connection.
6047	Denied []*FirewallDenied `json:"denied,omitempty"`
6048
6049	// Description: An optional description of this resource. Provide this
6050	// property when you create the resource.
6051	Description string `json:"description,omitempty"`
6052
6053	// DestinationRanges: If destination ranges are specified, the firewall
6054	// will apply only to traffic that has destination IP address in these
6055	// ranges. These ranges must be expressed in CIDR format. Only IPv4 is
6056	// supported.
6057	DestinationRanges []string `json:"destinationRanges,omitempty"`
6058
6059	// Direction: Direction of traffic to which this firewall applies;
6060	// default is INGRESS. Note: For INGRESS traffic, it is NOT supported to
6061	// specify destinationRanges; For EGRESS traffic, it is NOT supported to
6062	// specify sourceRanges OR sourceTags.
6063	//
6064	// Possible values:
6065	//   "EGRESS"
6066	//   "INGRESS"
6067	Direction string `json:"direction,omitempty"`
6068
6069	// Id: [Output Only] The unique identifier for the resource. This
6070	// identifier is defined by the server.
6071	Id uint64 `json:"id,omitempty,string"`
6072
6073	// Kind: [Output Only] Type of the resource. Always compute#firewall for
6074	// firewall rules.
6075	Kind string `json:"kind,omitempty"`
6076
6077	// Name: Name of the resource; provided by the client when the resource
6078	// is created. The name must be 1-63 characters long, and comply with
6079	// RFC1035. Specifically, the name must be 1-63 characters long and
6080	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
6081	// the first character must be a lowercase letter, and all following
6082	// characters must be a dash, lowercase letter, or digit, except the
6083	// last character, which cannot be a dash.
6084	Name string `json:"name,omitempty"`
6085
6086	// Network: URL of the network resource for this firewall rule. If not
6087	// specified when creating a firewall rule, the default network is
6088	// used:
6089	// global/networks/default
6090	// If you choose to specify this property, you can specify the network
6091	// as a full or partial URL. For example, the following are all valid
6092	// URLs:
6093	// -
6094	// https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
6095	// - projects/myproject/global/networks/my-network
6096	// - global/networks/default
6097	Network string `json:"network,omitempty"`
6098
6099	// Priority: Priority for this rule. This is an integer between 0 and
6100	// 65535, both inclusive. When not specified, the value assumed is 1000.
6101	// Relative priorities determine precedence of conflicting rules. Lower
6102	// value of priority implies higher precedence (eg, a rule with priority
6103	// 0 has higher precedence than a rule with priority 1). DENY rules take
6104	// precedence over ALLOW rules having equal priority.
6105	Priority int64 `json:"priority,omitempty"`
6106
6107	// SelfLink: [Output Only] Server-defined URL for the resource.
6108	SelfLink string `json:"selfLink,omitempty"`
6109
6110	// SourceRanges: If source ranges are specified, the firewall will apply
6111	// only to traffic that has source IP address in these ranges. These
6112	// ranges must be expressed in CIDR format. One or both of sourceRanges
6113	// and sourceTags may be set. If both properties are set, the firewall
6114	// will apply to traffic that has source IP address within sourceRanges
6115	// OR the source IP that belongs to a tag listed in the sourceTags
6116	// property. The connection does not need to match both properties for
6117	// the firewall to apply. Only IPv4 is supported.
6118	SourceRanges []string `json:"sourceRanges,omitempty"`
6119
6120	// SourceServiceAccounts: If source service accounts are specified, the
6121	// firewall will apply only to traffic originating from an instance with
6122	// a service account in this list. Source service accounts cannot be
6123	// used to control traffic to an instance's external IP address because
6124	// service accounts are associated with an instance, not an IP address.
6125	// sourceRanges can be set at the same time as sourceServiceAccounts. If
6126	// both are set, the firewall will apply to traffic that has source IP
6127	// address within sourceRanges OR the source IP belongs to an instance
6128	// with service account listed in sourceServiceAccount. The connection
6129	// does not need to match both properties for the firewall to apply.
6130	// sourceServiceAccounts cannot be used at the same time as sourceTags
6131	// or targetTags.
6132	SourceServiceAccounts []string `json:"sourceServiceAccounts,omitempty"`
6133
6134	// SourceTags: If source tags are specified, the firewall rule applies
6135	// only to traffic with source IPs that match the primary network
6136	// interfaces of VM instances that have the tag and are in the same VPC
6137	// network. Source tags cannot be used to control traffic to an
6138	// instance's external IP address, it only applies to traffic between
6139	// instances in the same virtual network. Because tags are associated
6140	// with instances, not IP addresses. One or both of sourceRanges and
6141	// sourceTags may be set. If both properties are set, the firewall will
6142	// apply to traffic that has source IP address within sourceRanges OR
6143	// the source IP that belongs to a tag listed in the sourceTags
6144	// property. The connection does not need to match both properties for
6145	// the firewall to apply.
6146	SourceTags []string `json:"sourceTags,omitempty"`
6147
6148	// TargetServiceAccounts: A list of service accounts indicating sets of
6149	// instances located in the network that may make network connections as
6150	// specified in allowed[]. targetServiceAccounts cannot be used at the
6151	// same time as targetTags or sourceTags. If neither
6152	// targetServiceAccounts nor targetTags are specified, the firewall rule
6153	// applies to all instances on the specified network.
6154	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
6155
6156	// TargetTags: A list of tags that controls which instances the firewall
6157	// rule applies to. If targetTags are specified, then the firewall rule
6158	// applies only to instances in the VPC network that have one of those
6159	// tags. If no targetTags are specified, the firewall rule applies to
6160	// all instances on the specified network.
6161	TargetTags []string `json:"targetTags,omitempty"`
6162
6163	// ServerResponse contains the HTTP response code and headers from the
6164	// server.
6165	googleapi.ServerResponse `json:"-"`
6166
6167	// ForceSendFields is a list of field names (e.g. "Allowed") to
6168	// unconditionally include in API requests. By default, fields with
6169	// empty values are omitted from API requests. However, any non-pointer,
6170	// non-interface field appearing in ForceSendFields will be sent to the
6171	// server regardless of whether the field is empty or not. This may be
6172	// used to include empty fields in Patch requests.
6173	ForceSendFields []string `json:"-"`
6174
6175	// NullFields is a list of field names (e.g. "Allowed") to include in
6176	// API requests with the JSON null value. By default, fields with empty
6177	// values are omitted from API requests. However, any field with an
6178	// empty value appearing in NullFields will be sent to the server as
6179	// null. It is an error if a field in this list has a non-empty value.
6180	// This may be used to include null fields in Patch requests.
6181	NullFields []string `json:"-"`
6182}
6183
6184func (s *Firewall) MarshalJSON() ([]byte, error) {
6185	type NoMethod Firewall
6186	raw := NoMethod(*s)
6187	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6188}
6189
6190type FirewallAllowed struct {
6191	// IPProtocol: The IP protocol to which this rule applies. The protocol
6192	// type is required when creating a firewall rule. This value can either
6193	// be one of the following well known protocol strings (tcp, udp, icmp,
6194	// esp, ah, ipip, sctp), or the IP protocol number.
6195	IPProtocol string `json:"IPProtocol,omitempty"`
6196
6197	// Ports: An optional list of ports to which this rule applies. This
6198	// field is only applicable for UDP or TCP protocol. Each entry must be
6199	// either an integer or a range. If not specified, this rule applies to
6200	// connections through any port.
6201	//
6202	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
6203	Ports []string `json:"ports,omitempty"`
6204
6205	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
6206	// unconditionally include in API requests. By default, fields with
6207	// empty values are omitted from API requests. However, any non-pointer,
6208	// non-interface field appearing in ForceSendFields will be sent to the
6209	// server regardless of whether the field is empty or not. This may be
6210	// used to include empty fields in Patch requests.
6211	ForceSendFields []string `json:"-"`
6212
6213	// NullFields is a list of field names (e.g. "IPProtocol") to include in
6214	// API requests with the JSON null value. By default, fields with empty
6215	// values are omitted from API requests. However, any field with an
6216	// empty value appearing in NullFields will be sent to the server as
6217	// null. It is an error if a field in this list has a non-empty value.
6218	// This may be used to include null fields in Patch requests.
6219	NullFields []string `json:"-"`
6220}
6221
6222func (s *FirewallAllowed) MarshalJSON() ([]byte, error) {
6223	type NoMethod FirewallAllowed
6224	raw := NoMethod(*s)
6225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6226}
6227
6228type FirewallDenied struct {
6229	// IPProtocol: The IP protocol to which this rule applies. The protocol
6230	// type is required when creating a firewall rule. This value can either
6231	// be one of the following well known protocol strings (tcp, udp, icmp,
6232	// esp, ah, ipip, sctp), or the IP protocol number.
6233	IPProtocol string `json:"IPProtocol,omitempty"`
6234
6235	// Ports: An optional list of ports to which this rule applies. This
6236	// field is only applicable for UDP or TCP protocol. Each entry must be
6237	// either an integer or a range. If not specified, this rule applies to
6238	// connections through any port.
6239	//
6240	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
6241	Ports []string `json:"ports,omitempty"`
6242
6243	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
6244	// unconditionally include in API requests. By default, fields with
6245	// empty values are omitted from API requests. However, any non-pointer,
6246	// non-interface field appearing in ForceSendFields will be sent to the
6247	// server regardless of whether the field is empty or not. This may be
6248	// used to include empty fields in Patch requests.
6249	ForceSendFields []string `json:"-"`
6250
6251	// NullFields is a list of field names (e.g. "IPProtocol") to include in
6252	// API requests with the JSON null value. By default, fields with empty
6253	// values are omitted from API requests. However, any field with an
6254	// empty value appearing in NullFields will be sent to the server as
6255	// null. It is an error if a field in this list has a non-empty value.
6256	// This may be used to include null fields in Patch requests.
6257	NullFields []string `json:"-"`
6258}
6259
6260func (s *FirewallDenied) MarshalJSON() ([]byte, error) {
6261	type NoMethod FirewallDenied
6262	raw := NoMethod(*s)
6263	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6264}
6265
6266// FirewallList: Contains a list of firewalls.
6267type FirewallList struct {
6268	// Id: [Output Only] Unique identifier for the resource; defined by the
6269	// server.
6270	Id string `json:"id,omitempty"`
6271
6272	// Items: A list of Firewall resources.
6273	Items []*Firewall `json:"items,omitempty"`
6274
6275	// Kind: [Output Only] Type of resource. Always compute#firewallList for
6276	// lists of firewalls.
6277	Kind string `json:"kind,omitempty"`
6278
6279	// NextPageToken: [Output Only] This token allows you to get the next
6280	// page of results for list requests. If the number of results is larger
6281	// than maxResults, use the nextPageToken as a value for the query
6282	// parameter pageToken in the next list request. Subsequent list
6283	// requests will have their own nextPageToken to continue paging through
6284	// the results.
6285	NextPageToken string `json:"nextPageToken,omitempty"`
6286
6287	// SelfLink: [Output Only] Server-defined URL for this resource.
6288	SelfLink string `json:"selfLink,omitempty"`
6289
6290	// Warning: [Output Only] Informational warning message.
6291	Warning *FirewallListWarning `json:"warning,omitempty"`
6292
6293	// ServerResponse contains the HTTP response code and headers from the
6294	// server.
6295	googleapi.ServerResponse `json:"-"`
6296
6297	// ForceSendFields is a list of field names (e.g. "Id") to
6298	// unconditionally include in API requests. By default, fields with
6299	// empty values are omitted from API requests. However, any non-pointer,
6300	// non-interface field appearing in ForceSendFields will be sent to the
6301	// server regardless of whether the field is empty or not. This may be
6302	// used to include empty fields in Patch requests.
6303	ForceSendFields []string `json:"-"`
6304
6305	// NullFields is a list of field names (e.g. "Id") to include in API
6306	// requests with the JSON null value. By default, fields with empty
6307	// values are omitted from API requests. However, any field with an
6308	// empty value appearing in NullFields will be sent to the server as
6309	// null. It is an error if a field in this list has a non-empty value.
6310	// This may be used to include null fields in Patch requests.
6311	NullFields []string `json:"-"`
6312}
6313
6314func (s *FirewallList) MarshalJSON() ([]byte, error) {
6315	type NoMethod FirewallList
6316	raw := NoMethod(*s)
6317	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6318}
6319
6320// FirewallListWarning: [Output Only] Informational warning message.
6321type FirewallListWarning struct {
6322	// Code: [Output Only] A warning code, if applicable. For example,
6323	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6324	// the response.
6325	//
6326	// Possible values:
6327	//   "CLEANUP_FAILED"
6328	//   "DEPRECATED_RESOURCE_USED"
6329	//   "DEPRECATED_TYPE_USED"
6330	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6331	//   "EXPERIMENTAL_TYPE_USED"
6332	//   "EXTERNAL_API_WARNING"
6333	//   "FIELD_VALUE_OVERRIDEN"
6334	//   "INJECTED_KERNELS_DEPRECATED"
6335	//   "MISSING_TYPE_DEPENDENCY"
6336	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6337	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6338	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6339	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6340	//   "NEXT_HOP_NOT_RUNNING"
6341	//   "NOT_CRITICAL_ERROR"
6342	//   "NO_RESULTS_ON_PAGE"
6343	//   "REQUIRED_TOS_AGREEMENT"
6344	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6345	//   "RESOURCE_NOT_DELETED"
6346	//   "SCHEMA_VALIDATION_IGNORED"
6347	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6348	//   "UNDECLARED_PROPERTIES"
6349	//   "UNREACHABLE"
6350	Code string `json:"code,omitempty"`
6351
6352	// Data: [Output Only] Metadata about this warning in key: value format.
6353	// For example:
6354	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6355	Data []*FirewallListWarningData `json:"data,omitempty"`
6356
6357	// Message: [Output Only] A human-readable description of the warning
6358	// code.
6359	Message string `json:"message,omitempty"`
6360
6361	// ForceSendFields is a list of field names (e.g. "Code") to
6362	// unconditionally include in API requests. By default, fields with
6363	// empty values are omitted from API requests. However, any non-pointer,
6364	// non-interface field appearing in ForceSendFields will be sent to the
6365	// server regardless of whether the field is empty or not. This may be
6366	// used to include empty fields in Patch requests.
6367	ForceSendFields []string `json:"-"`
6368
6369	// NullFields is a list of field names (e.g. "Code") to include in API
6370	// requests with the JSON null value. By default, fields with empty
6371	// values are omitted from API requests. However, any field with an
6372	// empty value appearing in NullFields will be sent to the server as
6373	// null. It is an error if a field in this list has a non-empty value.
6374	// This may be used to include null fields in Patch requests.
6375	NullFields []string `json:"-"`
6376}
6377
6378func (s *FirewallListWarning) MarshalJSON() ([]byte, error) {
6379	type NoMethod FirewallListWarning
6380	raw := NoMethod(*s)
6381	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6382}
6383
6384type FirewallListWarningData struct {
6385	// Key: [Output Only] A key that provides more detail on the warning
6386	// being returned. For example, for warnings where there are no results
6387	// in a list request for a particular zone, this key might be scope and
6388	// the key value might be the zone name. Other examples might be a key
6389	// indicating a deprecated resource and a suggested replacement, or a
6390	// warning about invalid network settings (for example, if an instance
6391	// attempts to perform IP forwarding but is not enabled for IP
6392	// forwarding).
6393	Key string `json:"key,omitempty"`
6394
6395	// Value: [Output Only] A warning data value corresponding to the key.
6396	Value string `json:"value,omitempty"`
6397
6398	// ForceSendFields is a list of field names (e.g. "Key") to
6399	// unconditionally include in API requests. By default, fields with
6400	// empty values are omitted from API requests. However, any non-pointer,
6401	// non-interface field appearing in ForceSendFields will be sent to the
6402	// server regardless of whether the field is empty or not. This may be
6403	// used to include empty fields in Patch requests.
6404	ForceSendFields []string `json:"-"`
6405
6406	// NullFields is a list of field names (e.g. "Key") to include in API
6407	// requests with the JSON null value. By default, fields with empty
6408	// values are omitted from API requests. However, any field with an
6409	// empty value appearing in NullFields will be sent to the server as
6410	// null. It is an error if a field in this list has a non-empty value.
6411	// This may be used to include null fields in Patch requests.
6412	NullFields []string `json:"-"`
6413}
6414
6415func (s *FirewallListWarningData) MarshalJSON() ([]byte, error) {
6416	type NoMethod FirewallListWarningData
6417	raw := NoMethod(*s)
6418	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6419}
6420
6421// ForwardingRule: A ForwardingRule resource. A ForwardingRule resource
6422// specifies which pool of target virtual machines to forward a packet
6423// to if it matches the given [IPAddress, IPProtocol, ports] tuple. (==
6424// resource_for beta.forwardingRules ==) (== resource_for
6425// v1.forwardingRules ==) (== resource_for beta.globalForwardingRules
6426// ==) (== resource_for v1.globalForwardingRules ==) (== resource_for
6427// beta.regionForwardingRules ==) (== resource_for
6428// v1.regionForwardingRules ==)
6429type ForwardingRule struct {
6430	// IPAddress: The IP address that this forwarding rule is serving on
6431	// behalf of.
6432	//
6433	// Addresses are restricted based on the forwarding rule's load
6434	// balancing scheme (EXTERNAL or INTERNAL) and scope (global or
6435	// regional).
6436	//
6437	// When the load balancing scheme is EXTERNAL, for global forwarding
6438	// rules, the address must be a global IP, and for regional forwarding
6439	// rules, the address must live in the same region as the forwarding
6440	// rule. If this field is empty, an ephemeral IPv4 address from the same
6441	// scope (global or regional) will be assigned. A regional forwarding
6442	// rule supports IPv4 only. A global forwarding rule supports either
6443	// IPv4 or IPv6.
6444	//
6445	// When the load balancing scheme is INTERNAL, this can only be an RFC
6446	// 1918 IP address belonging to the network/subnet configured for the
6447	// forwarding rule. By default, if this field is empty, an ephemeral
6448	// internal IP address will be automatically allocated from the IP range
6449	// of the subnet or network configured for this forwarding rule.
6450	//
6451	// An address can be specified either by a literal IP address or a URL
6452	// reference to an existing Address resource. The following examples are
6453	// all valid:
6454	// - 100.1.2.3
6455	// -
6456	// https://www.googleapis.com/compute/v1/projects/project/regions/region/addresses/address
6457	// - projects/project/regions/region/addresses/address
6458	// - regions/region/addresses/address
6459	// - global/addresses/address
6460	// - address
6461	IPAddress string `json:"IPAddress,omitempty"`
6462
6463	// IPProtocol: The IP protocol to which this rule applies. Valid options
6464	// are TCP, UDP, ESP, AH, SCTP or ICMP.
6465	//
6466	// When the load balancing scheme is INTERNAL, only TCP and UDP are
6467	// valid.
6468	//
6469	// Possible values:
6470	//   "AH"
6471	//   "ESP"
6472	//   "ICMP"
6473	//   "SCTP"
6474	//   "TCP"
6475	//   "UDP"
6476	IPProtocol string `json:"IPProtocol,omitempty"`
6477
6478	// BackendService: This field is not used for external load
6479	// balancing.
6480	//
6481	// For internal load balancing, this field identifies the BackendService
6482	// resource to receive the matched traffic.
6483	BackendService string `json:"backendService,omitempty"`
6484
6485	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
6486	// format.
6487	CreationTimestamp string `json:"creationTimestamp,omitempty"`
6488
6489	// Description: An optional description of this resource. Provide this
6490	// property when you create the resource.
6491	Description string `json:"description,omitempty"`
6492
6493	// Id: [Output Only] The unique identifier for the resource. This
6494	// identifier is defined by the server.
6495	Id uint64 `json:"id,omitempty,string"`
6496
6497	// IpVersion: The IP Version that will be used by this forwarding rule.
6498	// Valid options are IPV4 or IPV6. This can only be specified for a
6499	// global forwarding rule.
6500	//
6501	// Possible values:
6502	//   "IPV4"
6503	//   "IPV6"
6504	//   "UNSPECIFIED_VERSION"
6505	IpVersion string `json:"ipVersion,omitempty"`
6506
6507	// Kind: [Output Only] Type of the resource. Always
6508	// compute#forwardingRule for Forwarding Rule resources.
6509	Kind string `json:"kind,omitempty"`
6510
6511	// LoadBalancingScheme: This signifies what the ForwardingRule will be
6512	// used for and can only take the following values: INTERNAL, EXTERNAL
6513	// The value of INTERNAL means that this will be used for Internal
6514	// Network Load Balancing (TCP, UDP). The value of EXTERNAL means that
6515	// this will be used for External Load Balancing (HTTP(S) LB, External
6516	// TCP/UDP LB, SSL Proxy)
6517	//
6518	// Possible values:
6519	//   "EXTERNAL"
6520	//   "INTERNAL"
6521	//   "INVALID"
6522	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
6523
6524	// Name: Name of the resource; provided by the client when the resource
6525	// is created. The name must be 1-63 characters long, and comply with
6526	// RFC1035. Specifically, the name must be 1-63 characters long and
6527	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
6528	// the first character must be a lowercase letter, and all following
6529	// characters must be a dash, lowercase letter, or digit, except the
6530	// last character, which cannot be a dash.
6531	Name string `json:"name,omitempty"`
6532
6533	// Network: This field is not used for external load balancing.
6534	//
6535	// For internal load balancing, this field identifies the network that
6536	// the load balanced IP should belong to for this Forwarding Rule. If
6537	// this field is not specified, the default network will be used.
6538	Network string `json:"network,omitempty"`
6539
6540	// PortRange: This field is used along with the target field for
6541	// TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy,
6542	// TargetVpnGateway, TargetPool, TargetInstance.
6543	//
6544	// Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets
6545	// addressed to ports in the specified range will be forwarded to
6546	// target. Forwarding rules with the same [IPAddress, IPProtocol] pair
6547	// must have disjoint port ranges.
6548	//
6549	// Some types of forwarding target have constraints on the acceptable
6550	// ports:
6551	// - TargetHttpProxy: 80, 8080
6552	// - TargetHttpsProxy: 443
6553	// - TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
6554	// 995, 1883, 5222
6555	// - TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
6556	// 995, 1883, 5222
6557	// - TargetVpnGateway: 500, 4500
6558	PortRange string `json:"portRange,omitempty"`
6559
6560	// Ports: This field is used along with the backend_service field for
6561	// internal load balancing.
6562	//
6563	// When the load balancing scheme is INTERNAL, a single port or a comma
6564	// separated list of ports can be configured. Only packets addressed to
6565	// these ports will be forwarded to the backends configured with this
6566	// forwarding rule.
6567	//
6568	// You may specify a maximum of up to 5 ports.
6569	Ports []string `json:"ports,omitempty"`
6570
6571	// Region: [Output Only] URL of the region where the regional forwarding
6572	// rule resides. This field is not applicable to global forwarding
6573	// rules. You must specify this field as part of the HTTP request URL.
6574	// It is not settable as a field in the request body.
6575	Region string `json:"region,omitempty"`
6576
6577	// SelfLink: [Output Only] Server-defined URL for the resource.
6578	SelfLink string `json:"selfLink,omitempty"`
6579
6580	// Subnetwork: This field is not used for external load balancing.
6581	//
6582	// For internal load balancing, this field identifies the subnetwork
6583	// that the load balanced IP should belong to for this Forwarding
6584	// Rule.
6585	//
6586	// If the network specified is in auto subnet mode, this field is
6587	// optional. However, if the network is in custom subnet mode, a
6588	// subnetwork must be specified.
6589	Subnetwork string `json:"subnetwork,omitempty"`
6590
6591	// Target: The URL of the target resource to receive the matched
6592	// traffic. For regional forwarding rules, this target must live in the
6593	// same region as the forwarding rule. For global forwarding rules, this
6594	// target must be a global load balancing resource. The forwarded
6595	// traffic must be of a type appropriate to the target object.
6596	Target string `json:"target,omitempty"`
6597
6598	// ServerResponse contains the HTTP response code and headers from the
6599	// server.
6600	googleapi.ServerResponse `json:"-"`
6601
6602	// ForceSendFields is a list of field names (e.g. "IPAddress") to
6603	// unconditionally include in API requests. By default, fields with
6604	// empty values are omitted from API requests. However, any non-pointer,
6605	// non-interface field appearing in ForceSendFields will be sent to the
6606	// server regardless of whether the field is empty or not. This may be
6607	// used to include empty fields in Patch requests.
6608	ForceSendFields []string `json:"-"`
6609
6610	// NullFields is a list of field names (e.g. "IPAddress") to include in
6611	// API requests with the JSON null value. By default, fields with empty
6612	// values are omitted from API requests. However, any field with an
6613	// empty value appearing in NullFields will be sent to the server as
6614	// null. It is an error if a field in this list has a non-empty value.
6615	// This may be used to include null fields in Patch requests.
6616	NullFields []string `json:"-"`
6617}
6618
6619func (s *ForwardingRule) MarshalJSON() ([]byte, error) {
6620	type NoMethod ForwardingRule
6621	raw := NoMethod(*s)
6622	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6623}
6624
6625type ForwardingRuleAggregatedList struct {
6626	// Id: [Output Only] Unique identifier for the resource; defined by the
6627	// server.
6628	Id string `json:"id,omitempty"`
6629
6630	// Items: A list of ForwardingRulesScopedList resources.
6631	Items map[string]ForwardingRulesScopedList `json:"items,omitempty"`
6632
6633	// Kind: [Output Only] Type of resource. Always
6634	// compute#forwardingRuleAggregatedList for lists of forwarding rules.
6635	Kind string `json:"kind,omitempty"`
6636
6637	// NextPageToken: [Output Only] This token allows you to get the next
6638	// page of results for list requests. If the number of results is larger
6639	// than maxResults, use the nextPageToken as a value for the query
6640	// parameter pageToken in the next list request. Subsequent list
6641	// requests will have their own nextPageToken to continue paging through
6642	// the results.
6643	NextPageToken string `json:"nextPageToken,omitempty"`
6644
6645	// SelfLink: [Output Only] Server-defined URL for this resource.
6646	SelfLink string `json:"selfLink,omitempty"`
6647
6648	// Warning: [Output Only] Informational warning message.
6649	Warning *ForwardingRuleAggregatedListWarning `json:"warning,omitempty"`
6650
6651	// ServerResponse contains the HTTP response code and headers from the
6652	// server.
6653	googleapi.ServerResponse `json:"-"`
6654
6655	// ForceSendFields is a list of field names (e.g. "Id") to
6656	// unconditionally include in API requests. By default, fields with
6657	// empty values are omitted from API requests. However, any non-pointer,
6658	// non-interface field appearing in ForceSendFields will be sent to the
6659	// server regardless of whether the field is empty or not. This may be
6660	// used to include empty fields in Patch requests.
6661	ForceSendFields []string `json:"-"`
6662
6663	// NullFields is a list of field names (e.g. "Id") to include in API
6664	// requests with the JSON null value. By default, fields with empty
6665	// values are omitted from API requests. However, any field with an
6666	// empty value appearing in NullFields will be sent to the server as
6667	// null. It is an error if a field in this list has a non-empty value.
6668	// This may be used to include null fields in Patch requests.
6669	NullFields []string `json:"-"`
6670}
6671
6672func (s *ForwardingRuleAggregatedList) MarshalJSON() ([]byte, error) {
6673	type NoMethod ForwardingRuleAggregatedList
6674	raw := NoMethod(*s)
6675	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6676}
6677
6678// ForwardingRuleAggregatedListWarning: [Output Only] Informational
6679// warning message.
6680type ForwardingRuleAggregatedListWarning struct {
6681	// Code: [Output Only] A warning code, if applicable. For example,
6682	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6683	// the response.
6684	//
6685	// Possible values:
6686	//   "CLEANUP_FAILED"
6687	//   "DEPRECATED_RESOURCE_USED"
6688	//   "DEPRECATED_TYPE_USED"
6689	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6690	//   "EXPERIMENTAL_TYPE_USED"
6691	//   "EXTERNAL_API_WARNING"
6692	//   "FIELD_VALUE_OVERRIDEN"
6693	//   "INJECTED_KERNELS_DEPRECATED"
6694	//   "MISSING_TYPE_DEPENDENCY"
6695	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6696	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6697	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6698	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6699	//   "NEXT_HOP_NOT_RUNNING"
6700	//   "NOT_CRITICAL_ERROR"
6701	//   "NO_RESULTS_ON_PAGE"
6702	//   "REQUIRED_TOS_AGREEMENT"
6703	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6704	//   "RESOURCE_NOT_DELETED"
6705	//   "SCHEMA_VALIDATION_IGNORED"
6706	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6707	//   "UNDECLARED_PROPERTIES"
6708	//   "UNREACHABLE"
6709	Code string `json:"code,omitempty"`
6710
6711	// Data: [Output Only] Metadata about this warning in key: value format.
6712	// For example:
6713	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6714	Data []*ForwardingRuleAggregatedListWarningData `json:"data,omitempty"`
6715
6716	// Message: [Output Only] A human-readable description of the warning
6717	// code.
6718	Message string `json:"message,omitempty"`
6719
6720	// ForceSendFields is a list of field names (e.g. "Code") to
6721	// unconditionally include in API requests. By default, fields with
6722	// empty values are omitted from API requests. However, any non-pointer,
6723	// non-interface field appearing in ForceSendFields will be sent to the
6724	// server regardless of whether the field is empty or not. This may be
6725	// used to include empty fields in Patch requests.
6726	ForceSendFields []string `json:"-"`
6727
6728	// NullFields is a list of field names (e.g. "Code") to include in API
6729	// requests with the JSON null value. By default, fields with empty
6730	// values are omitted from API requests. However, any field with an
6731	// empty value appearing in NullFields will be sent to the server as
6732	// null. It is an error if a field in this list has a non-empty value.
6733	// This may be used to include null fields in Patch requests.
6734	NullFields []string `json:"-"`
6735}
6736
6737func (s *ForwardingRuleAggregatedListWarning) MarshalJSON() ([]byte, error) {
6738	type NoMethod ForwardingRuleAggregatedListWarning
6739	raw := NoMethod(*s)
6740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6741}
6742
6743type ForwardingRuleAggregatedListWarningData struct {
6744	// Key: [Output Only] A key that provides more detail on the warning
6745	// being returned. For example, for warnings where there are no results
6746	// in a list request for a particular zone, this key might be scope and
6747	// the key value might be the zone name. Other examples might be a key
6748	// indicating a deprecated resource and a suggested replacement, or a
6749	// warning about invalid network settings (for example, if an instance
6750	// attempts to perform IP forwarding but is not enabled for IP
6751	// forwarding).
6752	Key string `json:"key,omitempty"`
6753
6754	// Value: [Output Only] A warning data value corresponding to the key.
6755	Value string `json:"value,omitempty"`
6756
6757	// ForceSendFields is a list of field names (e.g. "Key") to
6758	// unconditionally include in API requests. By default, fields with
6759	// empty values are omitted from API requests. However, any non-pointer,
6760	// non-interface field appearing in ForceSendFields will be sent to the
6761	// server regardless of whether the field is empty or not. This may be
6762	// used to include empty fields in Patch requests.
6763	ForceSendFields []string `json:"-"`
6764
6765	// NullFields is a list of field names (e.g. "Key") to include in API
6766	// requests with the JSON null value. By default, fields with empty
6767	// values are omitted from API requests. However, any field with an
6768	// empty value appearing in NullFields will be sent to the server as
6769	// null. It is an error if a field in this list has a non-empty value.
6770	// This may be used to include null fields in Patch requests.
6771	NullFields []string `json:"-"`
6772}
6773
6774func (s *ForwardingRuleAggregatedListWarningData) MarshalJSON() ([]byte, error) {
6775	type NoMethod ForwardingRuleAggregatedListWarningData
6776	raw := NoMethod(*s)
6777	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6778}
6779
6780// ForwardingRuleList: Contains a list of ForwardingRule resources.
6781type ForwardingRuleList struct {
6782	// Id: [Output Only] Unique identifier for the resource; defined by the
6783	// server.
6784	Id string `json:"id,omitempty"`
6785
6786	// Items: A list of ForwardingRule resources.
6787	Items []*ForwardingRule `json:"items,omitempty"`
6788
6789	// Kind: Type of resource.
6790	Kind string `json:"kind,omitempty"`
6791
6792	// NextPageToken: [Output Only] This token allows you to get the next
6793	// page of results for list requests. If the number of results is larger
6794	// than maxResults, use the nextPageToken as a value for the query
6795	// parameter pageToken in the next list request. Subsequent list
6796	// requests will have their own nextPageToken to continue paging through
6797	// the results.
6798	NextPageToken string `json:"nextPageToken,omitempty"`
6799
6800	// SelfLink: [Output Only] Server-defined URL for this resource.
6801	SelfLink string `json:"selfLink,omitempty"`
6802
6803	// Warning: [Output Only] Informational warning message.
6804	Warning *ForwardingRuleListWarning `json:"warning,omitempty"`
6805
6806	// ServerResponse contains the HTTP response code and headers from the
6807	// server.
6808	googleapi.ServerResponse `json:"-"`
6809
6810	// ForceSendFields is a list of field names (e.g. "Id") to
6811	// unconditionally include in API requests. By default, fields with
6812	// empty values are omitted from API requests. However, any non-pointer,
6813	// non-interface field appearing in ForceSendFields will be sent to the
6814	// server regardless of whether the field is empty or not. This may be
6815	// used to include empty fields in Patch requests.
6816	ForceSendFields []string `json:"-"`
6817
6818	// NullFields is a list of field names (e.g. "Id") to include in API
6819	// requests with the JSON null value. By default, fields with empty
6820	// values are omitted from API requests. However, any field with an
6821	// empty value appearing in NullFields will be sent to the server as
6822	// null. It is an error if a field in this list has a non-empty value.
6823	// This may be used to include null fields in Patch requests.
6824	NullFields []string `json:"-"`
6825}
6826
6827func (s *ForwardingRuleList) MarshalJSON() ([]byte, error) {
6828	type NoMethod ForwardingRuleList
6829	raw := NoMethod(*s)
6830	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6831}
6832
6833// ForwardingRuleListWarning: [Output Only] Informational warning
6834// message.
6835type ForwardingRuleListWarning struct {
6836	// Code: [Output Only] A warning code, if applicable. For example,
6837	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6838	// the response.
6839	//
6840	// Possible values:
6841	//   "CLEANUP_FAILED"
6842	//   "DEPRECATED_RESOURCE_USED"
6843	//   "DEPRECATED_TYPE_USED"
6844	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6845	//   "EXPERIMENTAL_TYPE_USED"
6846	//   "EXTERNAL_API_WARNING"
6847	//   "FIELD_VALUE_OVERRIDEN"
6848	//   "INJECTED_KERNELS_DEPRECATED"
6849	//   "MISSING_TYPE_DEPENDENCY"
6850	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6851	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6852	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6853	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6854	//   "NEXT_HOP_NOT_RUNNING"
6855	//   "NOT_CRITICAL_ERROR"
6856	//   "NO_RESULTS_ON_PAGE"
6857	//   "REQUIRED_TOS_AGREEMENT"
6858	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6859	//   "RESOURCE_NOT_DELETED"
6860	//   "SCHEMA_VALIDATION_IGNORED"
6861	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6862	//   "UNDECLARED_PROPERTIES"
6863	//   "UNREACHABLE"
6864	Code string `json:"code,omitempty"`
6865
6866	// Data: [Output Only] Metadata about this warning in key: value format.
6867	// For example:
6868	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6869	Data []*ForwardingRuleListWarningData `json:"data,omitempty"`
6870
6871	// Message: [Output Only] A human-readable description of the warning
6872	// code.
6873	Message string `json:"message,omitempty"`
6874
6875	// ForceSendFields is a list of field names (e.g. "Code") to
6876	// unconditionally include in API requests. By default, fields with
6877	// empty values are omitted from API requests. However, any non-pointer,
6878	// non-interface field appearing in ForceSendFields will be sent to the
6879	// server regardless of whether the field is empty or not. This may be
6880	// used to include empty fields in Patch requests.
6881	ForceSendFields []string `json:"-"`
6882
6883	// NullFields is a list of field names (e.g. "Code") to include in API
6884	// requests with the JSON null value. By default, fields with empty
6885	// values are omitted from API requests. However, any field with an
6886	// empty value appearing in NullFields will be sent to the server as
6887	// null. It is an error if a field in this list has a non-empty value.
6888	// This may be used to include null fields in Patch requests.
6889	NullFields []string `json:"-"`
6890}
6891
6892func (s *ForwardingRuleListWarning) MarshalJSON() ([]byte, error) {
6893	type NoMethod ForwardingRuleListWarning
6894	raw := NoMethod(*s)
6895	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6896}
6897
6898type ForwardingRuleListWarningData struct {
6899	// Key: [Output Only] A key that provides more detail on the warning
6900	// being returned. For example, for warnings where there are no results
6901	// in a list request for a particular zone, this key might be scope and
6902	// the key value might be the zone name. Other examples might be a key
6903	// indicating a deprecated resource and a suggested replacement, or a
6904	// warning about invalid network settings (for example, if an instance
6905	// attempts to perform IP forwarding but is not enabled for IP
6906	// forwarding).
6907	Key string `json:"key,omitempty"`
6908
6909	// Value: [Output Only] A warning data value corresponding to the key.
6910	Value string `json:"value,omitempty"`
6911
6912	// ForceSendFields is a list of field names (e.g. "Key") to
6913	// unconditionally include in API requests. By default, fields with
6914	// empty values are omitted from API requests. However, any non-pointer,
6915	// non-interface field appearing in ForceSendFields will be sent to the
6916	// server regardless of whether the field is empty or not. This may be
6917	// used to include empty fields in Patch requests.
6918	ForceSendFields []string `json:"-"`
6919
6920	// NullFields is a list of field names (e.g. "Key") to include in API
6921	// requests with the JSON null value. By default, fields with empty
6922	// values are omitted from API requests. However, any field with an
6923	// empty value appearing in NullFields will be sent to the server as
6924	// null. It is an error if a field in this list has a non-empty value.
6925	// This may be used to include null fields in Patch requests.
6926	NullFields []string `json:"-"`
6927}
6928
6929func (s *ForwardingRuleListWarningData) MarshalJSON() ([]byte, error) {
6930	type NoMethod ForwardingRuleListWarningData
6931	raw := NoMethod(*s)
6932	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6933}
6934
6935type ForwardingRulesScopedList struct {
6936	// ForwardingRules: List of forwarding rules contained in this scope.
6937	ForwardingRules []*ForwardingRule `json:"forwardingRules,omitempty"`
6938
6939	// Warning: Informational warning which replaces the list of forwarding
6940	// rules when the list is empty.
6941	Warning *ForwardingRulesScopedListWarning `json:"warning,omitempty"`
6942
6943	// ForceSendFields is a list of field names (e.g. "ForwardingRules") to
6944	// unconditionally include in API requests. By default, fields with
6945	// empty values are omitted from API requests. However, any non-pointer,
6946	// non-interface field appearing in ForceSendFields will be sent to the
6947	// server regardless of whether the field is empty or not. This may be
6948	// used to include empty fields in Patch requests.
6949	ForceSendFields []string `json:"-"`
6950
6951	// NullFields is a list of field names (e.g. "ForwardingRules") to
6952	// include in API requests with the JSON null value. By default, fields
6953	// with empty values are omitted from API requests. However, any field
6954	// with an empty value appearing in NullFields will be sent to the
6955	// server as null. It is an error if a field in this list has a
6956	// non-empty value. This may be used to include null fields in Patch
6957	// requests.
6958	NullFields []string `json:"-"`
6959}
6960
6961func (s *ForwardingRulesScopedList) MarshalJSON() ([]byte, error) {
6962	type NoMethod ForwardingRulesScopedList
6963	raw := NoMethod(*s)
6964	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6965}
6966
6967// ForwardingRulesScopedListWarning: Informational warning which
6968// replaces the list of forwarding rules when the list is empty.
6969type ForwardingRulesScopedListWarning struct {
6970	// Code: [Output Only] A warning code, if applicable. For example,
6971	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6972	// the response.
6973	//
6974	// Possible values:
6975	//   "CLEANUP_FAILED"
6976	//   "DEPRECATED_RESOURCE_USED"
6977	//   "DEPRECATED_TYPE_USED"
6978	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6979	//   "EXPERIMENTAL_TYPE_USED"
6980	//   "EXTERNAL_API_WARNING"
6981	//   "FIELD_VALUE_OVERRIDEN"
6982	//   "INJECTED_KERNELS_DEPRECATED"
6983	//   "MISSING_TYPE_DEPENDENCY"
6984	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6985	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6986	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6987	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6988	//   "NEXT_HOP_NOT_RUNNING"
6989	//   "NOT_CRITICAL_ERROR"
6990	//   "NO_RESULTS_ON_PAGE"
6991	//   "REQUIRED_TOS_AGREEMENT"
6992	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6993	//   "RESOURCE_NOT_DELETED"
6994	//   "SCHEMA_VALIDATION_IGNORED"
6995	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6996	//   "UNDECLARED_PROPERTIES"
6997	//   "UNREACHABLE"
6998	Code string `json:"code,omitempty"`
6999
7000	// Data: [Output Only] Metadata about this warning in key: value format.
7001	// For example:
7002	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7003	Data []*ForwardingRulesScopedListWarningData `json:"data,omitempty"`
7004
7005	// Message: [Output Only] A human-readable description of the warning
7006	// code.
7007	Message string `json:"message,omitempty"`
7008
7009	// ForceSendFields is a list of field names (e.g. "Code") to
7010	// unconditionally include in API requests. By default, fields with
7011	// empty values are omitted from API requests. However, any non-pointer,
7012	// non-interface field appearing in ForceSendFields will be sent to the
7013	// server regardless of whether the field is empty or not. This may be
7014	// used to include empty fields in Patch requests.
7015	ForceSendFields []string `json:"-"`
7016
7017	// NullFields is a list of field names (e.g. "Code") to include in API
7018	// requests with the JSON null value. By default, fields with empty
7019	// values are omitted from API requests. However, any field with an
7020	// empty value appearing in NullFields will be sent to the server as
7021	// null. It is an error if a field in this list has a non-empty value.
7022	// This may be used to include null fields in Patch requests.
7023	NullFields []string `json:"-"`
7024}
7025
7026func (s *ForwardingRulesScopedListWarning) MarshalJSON() ([]byte, error) {
7027	type NoMethod ForwardingRulesScopedListWarning
7028	raw := NoMethod(*s)
7029	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7030}
7031
7032type ForwardingRulesScopedListWarningData struct {
7033	// Key: [Output Only] A key that provides more detail on the warning
7034	// being returned. For example, for warnings where there are no results
7035	// in a list request for a particular zone, this key might be scope and
7036	// the key value might be the zone name. Other examples might be a key
7037	// indicating a deprecated resource and a suggested replacement, or a
7038	// warning about invalid network settings (for example, if an instance
7039	// attempts to perform IP forwarding but is not enabled for IP
7040	// forwarding).
7041	Key string `json:"key,omitempty"`
7042
7043	// Value: [Output Only] A warning data value corresponding to the key.
7044	Value string `json:"value,omitempty"`
7045
7046	// ForceSendFields is a list of field names (e.g. "Key") to
7047	// unconditionally include in API requests. By default, fields with
7048	// empty values are omitted from API requests. However, any non-pointer,
7049	// non-interface field appearing in ForceSendFields will be sent to the
7050	// server regardless of whether the field is empty or not. This may be
7051	// used to include empty fields in Patch requests.
7052	ForceSendFields []string `json:"-"`
7053
7054	// NullFields is a list of field names (e.g. "Key") to include in API
7055	// requests with the JSON null value. By default, fields with empty
7056	// values are omitted from API requests. However, any field with an
7057	// empty value appearing in NullFields will be sent to the server as
7058	// null. It is an error if a field in this list has a non-empty value.
7059	// This may be used to include null fields in Patch requests.
7060	NullFields []string `json:"-"`
7061}
7062
7063func (s *ForwardingRulesScopedListWarningData) MarshalJSON() ([]byte, error) {
7064	type NoMethod ForwardingRulesScopedListWarningData
7065	raw := NoMethod(*s)
7066	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7067}
7068
7069type GlobalSetLabelsRequest struct {
7070	// LabelFingerprint: The fingerprint of the previous set of labels for
7071	// this resource, used to detect conflicts. The fingerprint is initially
7072	// generated by Compute Engine and changes after every request to modify
7073	// or update labels. You must always provide an up-to-date fingerprint
7074	// hash when updating or changing labels. Make a get() request to the
7075	// resource to get the latest fingerprint.
7076	LabelFingerprint string `json:"labelFingerprint,omitempty"`
7077
7078	// Labels: A list of labels to apply for this resource. Each label key &
7079	// value must comply with RFC1035. Specifically, the name must be 1-63
7080	// characters long and match the regular expression
7081	// [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a
7082	// lowercase letter, and all following characters must be a dash,
7083	// lowercase letter, or digit, except the last character, which cannot
7084	// be a dash. For example, "webserver-frontend": "images". A label value
7085	// can also be empty (e.g. "my-label": "").
7086	Labels map[string]string `json:"labels,omitempty"`
7087
7088	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
7089	// unconditionally include in API requests. By default, fields with
7090	// empty values are omitted from API requests. However, any non-pointer,
7091	// non-interface field appearing in ForceSendFields will be sent to the
7092	// server regardless of whether the field is empty or not. This may be
7093	// used to include empty fields in Patch requests.
7094	ForceSendFields []string `json:"-"`
7095
7096	// NullFields is a list of field names (e.g. "LabelFingerprint") to
7097	// include in API requests with the JSON null value. By default, fields
7098	// with empty values are omitted from API requests. However, any field
7099	// with an empty value appearing in NullFields will be sent to the
7100	// server as null. It is an error if a field in this list has a
7101	// non-empty value. This may be used to include null fields in Patch
7102	// requests.
7103	NullFields []string `json:"-"`
7104}
7105
7106func (s *GlobalSetLabelsRequest) MarshalJSON() ([]byte, error) {
7107	type NoMethod GlobalSetLabelsRequest
7108	raw := NoMethod(*s)
7109	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7110}
7111
7112// GuestOsFeature: Guest OS features.
7113type GuestOsFeature struct {
7114	// Type: The ID of a supported feature. Read  Enabling guest operating
7115	// system features to see a list of available options.
7116	//
7117	// Possible values:
7118	//   "FEATURE_TYPE_UNSPECIFIED"
7119	//   "MULTI_IP_SUBNET"
7120	//   "VIRTIO_SCSI_MULTIQUEUE"
7121	//   "WINDOWS"
7122	Type string `json:"type,omitempty"`
7123
7124	// ForceSendFields is a list of field names (e.g. "Type") to
7125	// unconditionally include in API requests. By default, fields with
7126	// empty values are omitted from API requests. However, any non-pointer,
7127	// non-interface field appearing in ForceSendFields will be sent to the
7128	// server regardless of whether the field is empty or not. This may be
7129	// used to include empty fields in Patch requests.
7130	ForceSendFields []string `json:"-"`
7131
7132	// NullFields is a list of field names (e.g. "Type") to include in API
7133	// requests with the JSON null value. By default, fields with empty
7134	// values are omitted from API requests. However, any field with an
7135	// empty value appearing in NullFields will be sent to the server as
7136	// null. It is an error if a field in this list has a non-empty value.
7137	// This may be used to include null fields in Patch requests.
7138	NullFields []string `json:"-"`
7139}
7140
7141func (s *GuestOsFeature) MarshalJSON() ([]byte, error) {
7142	type NoMethod GuestOsFeature
7143	raw := NoMethod(*s)
7144	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7145}
7146
7147type HTTPHealthCheck struct {
7148	// Host: The value of the host header in the HTTP health check request.
7149	// If left empty (default value), the IP on behalf of which this health
7150	// check is performed will be used.
7151	Host string `json:"host,omitempty"`
7152
7153	// Port: The TCP port number for the health check request. The default
7154	// value is 80. Valid values are 1 through 65535.
7155	Port int64 `json:"port,omitempty"`
7156
7157	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
7158	// both port and port_name are defined, port takes precedence.
7159	PortName string `json:"portName,omitempty"`
7160
7161	// ProxyHeader: Specifies the type of proxy header to append before
7162	// sending data to the backend, either NONE or PROXY_V1. The default is
7163	// NONE.
7164	//
7165	// Possible values:
7166	//   "NONE"
7167	//   "PROXY_V1"
7168	ProxyHeader string `json:"proxyHeader,omitempty"`
7169
7170	// RequestPath: The request path of the HTTP health check request. The
7171	// default value is /.
7172	RequestPath string `json:"requestPath,omitempty"`
7173
7174	// ForceSendFields is a list of field names (e.g. "Host") to
7175	// unconditionally include in API requests. By default, fields with
7176	// empty values are omitted from API requests. However, any non-pointer,
7177	// non-interface field appearing in ForceSendFields will be sent to the
7178	// server regardless of whether the field is empty or not. This may be
7179	// used to include empty fields in Patch requests.
7180	ForceSendFields []string `json:"-"`
7181
7182	// NullFields is a list of field names (e.g. "Host") to include in API
7183	// requests with the JSON null value. By default, fields with empty
7184	// values are omitted from API requests. However, any field with an
7185	// empty value appearing in NullFields will be sent to the server as
7186	// null. It is an error if a field in this list has a non-empty value.
7187	// This may be used to include null fields in Patch requests.
7188	NullFields []string `json:"-"`
7189}
7190
7191func (s *HTTPHealthCheck) MarshalJSON() ([]byte, error) {
7192	type NoMethod HTTPHealthCheck
7193	raw := NoMethod(*s)
7194	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7195}
7196
7197type HTTPSHealthCheck struct {
7198	// Host: The value of the host header in the HTTPS health check request.
7199	// If left empty (default value), the IP on behalf of which this health
7200	// check is performed will be used.
7201	Host string `json:"host,omitempty"`
7202
7203	// Port: The TCP port number for the health check request. The default
7204	// value is 443. Valid values are 1 through 65535.
7205	Port int64 `json:"port,omitempty"`
7206
7207	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
7208	// both port and port_name are defined, port takes precedence.
7209	PortName string `json:"portName,omitempty"`
7210
7211	// ProxyHeader: Specifies the type of proxy header to append before
7212	// sending data to the backend, either NONE or PROXY_V1. The default is
7213	// NONE.
7214	//
7215	// Possible values:
7216	//   "NONE"
7217	//   "PROXY_V1"
7218	ProxyHeader string `json:"proxyHeader,omitempty"`
7219
7220	// RequestPath: The request path of the HTTPS health check request. The
7221	// default value is /.
7222	RequestPath string `json:"requestPath,omitempty"`
7223
7224	// ForceSendFields is a list of field names (e.g. "Host") to
7225	// unconditionally include in API requests. By default, fields with
7226	// empty values are omitted from API requests. However, any non-pointer,
7227	// non-interface field appearing in ForceSendFields will be sent to the
7228	// server regardless of whether the field is empty or not. This may be
7229	// used to include empty fields in Patch requests.
7230	ForceSendFields []string `json:"-"`
7231
7232	// NullFields is a list of field names (e.g. "Host") to include in API
7233	// requests with the JSON null value. By default, fields with empty
7234	// values are omitted from API requests. However, any field with an
7235	// empty value appearing in NullFields will be sent to the server as
7236	// null. It is an error if a field in this list has a non-empty value.
7237	// This may be used to include null fields in Patch requests.
7238	NullFields []string `json:"-"`
7239}
7240
7241func (s *HTTPSHealthCheck) MarshalJSON() ([]byte, error) {
7242	type NoMethod HTTPSHealthCheck
7243	raw := NoMethod(*s)
7244	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7245}
7246
7247// HealthCheck: An HealthCheck resource. This resource defines a
7248// template for how individual virtual machines should be checked for
7249// health, via one of the supported protocols.
7250type HealthCheck struct {
7251	// CheckIntervalSec: How often (in seconds) to send a health check. The
7252	// default value is 5 seconds.
7253	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
7254
7255	// CreationTimestamp: [Output Only] Creation timestamp in 3339 text
7256	// format.
7257	CreationTimestamp string `json:"creationTimestamp,omitempty"`
7258
7259	// Description: An optional description of this resource. Provide this
7260	// property when you create the resource.
7261	Description string `json:"description,omitempty"`
7262
7263	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
7264	// after this many consecutive successes. The default value is 2.
7265	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
7266
7267	HttpHealthCheck *HTTPHealthCheck `json:"httpHealthCheck,omitempty"`
7268
7269	HttpsHealthCheck *HTTPSHealthCheck `json:"httpsHealthCheck,omitempty"`
7270
7271	// Id: [Output Only] The unique identifier for the resource. This
7272	// identifier is defined by the server.
7273	Id uint64 `json:"id,omitempty,string"`
7274
7275	// Kind: Type of the resource.
7276	Kind string `json:"kind,omitempty"`
7277
7278	// Name: Name of the resource. Provided by the client when the resource
7279	// is created. The name must be 1-63 characters long, and comply with
7280	// RFC1035. Specifically, the name must be 1-63 characters long and
7281	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
7282	// the first character must be a lowercase letter, and all following
7283	// characters must be a dash, lowercase letter, or digit, except the
7284	// last character, which cannot be a dash.
7285	Name string `json:"name,omitempty"`
7286
7287	// SelfLink: [Output Only] Server-defined URL for the resource.
7288	SelfLink string `json:"selfLink,omitempty"`
7289
7290	SslHealthCheck *SSLHealthCheck `json:"sslHealthCheck,omitempty"`
7291
7292	TcpHealthCheck *TCPHealthCheck `json:"tcpHealthCheck,omitempty"`
7293
7294	// TimeoutSec: How long (in seconds) to wait before claiming failure.
7295	// The default value is 5 seconds. It is invalid for timeoutSec to have
7296	// greater value than checkIntervalSec.
7297	TimeoutSec int64 `json:"timeoutSec,omitempty"`
7298
7299	// Type: Specifies the type of the healthCheck, either TCP, SSL, HTTP or
7300	// HTTPS. If not specified, the default is TCP. Exactly one of the
7301	// protocol-specific health check field must be specified, which must
7302	// match type field.
7303	//
7304	// Possible values:
7305	//   "HTTP"
7306	//   "HTTPS"
7307	//   "INVALID"
7308	//   "SSL"
7309	//   "TCP"
7310	Type string `json:"type,omitempty"`
7311
7312	// UnhealthyThreshold: A so-far healthy instance will be marked
7313	// unhealthy after this many consecutive failures. The default value is
7314	// 2.
7315	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
7316
7317	// ServerResponse contains the HTTP response code and headers from the
7318	// server.
7319	googleapi.ServerResponse `json:"-"`
7320
7321	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
7322	// unconditionally include in API requests. By default, fields with
7323	// empty values are omitted from API requests. However, any non-pointer,
7324	// non-interface field appearing in ForceSendFields will be sent to the
7325	// server regardless of whether the field is empty or not. This may be
7326	// used to include empty fields in Patch requests.
7327	ForceSendFields []string `json:"-"`
7328
7329	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
7330	// include in API requests with the JSON null value. By default, fields
7331	// with empty values are omitted from API requests. However, any field
7332	// with an empty value appearing in NullFields will be sent to the
7333	// server as null. It is an error if a field in this list has a
7334	// non-empty value. This may be used to include null fields in Patch
7335	// requests.
7336	NullFields []string `json:"-"`
7337}
7338
7339func (s *HealthCheck) MarshalJSON() ([]byte, error) {
7340	type NoMethod HealthCheck
7341	raw := NoMethod(*s)
7342	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7343}
7344
7345// HealthCheckList: Contains a list of HealthCheck resources.
7346type HealthCheckList struct {
7347	// Id: [Output Only] Unique identifier for the resource; defined by the
7348	// server.
7349	Id string `json:"id,omitempty"`
7350
7351	// Items: A list of HealthCheck resources.
7352	Items []*HealthCheck `json:"items,omitempty"`
7353
7354	// Kind: Type of resource.
7355	Kind string `json:"kind,omitempty"`
7356
7357	// NextPageToken: [Output Only] This token allows you to get the next
7358	// page of results for list requests. If the number of results is larger
7359	// than maxResults, use the nextPageToken as a value for the query
7360	// parameter pageToken in the next list request. Subsequent list
7361	// requests will have their own nextPageToken to continue paging through
7362	// the results.
7363	NextPageToken string `json:"nextPageToken,omitempty"`
7364
7365	// SelfLink: [Output Only] Server-defined URL for this resource.
7366	SelfLink string `json:"selfLink,omitempty"`
7367
7368	// Warning: [Output Only] Informational warning message.
7369	Warning *HealthCheckListWarning `json:"warning,omitempty"`
7370
7371	// ServerResponse contains the HTTP response code and headers from the
7372	// server.
7373	googleapi.ServerResponse `json:"-"`
7374
7375	// ForceSendFields is a list of field names (e.g. "Id") to
7376	// unconditionally include in API requests. By default, fields with
7377	// empty values are omitted from API requests. However, any non-pointer,
7378	// non-interface field appearing in ForceSendFields will be sent to the
7379	// server regardless of whether the field is empty or not. This may be
7380	// used to include empty fields in Patch requests.
7381	ForceSendFields []string `json:"-"`
7382
7383	// NullFields is a list of field names (e.g. "Id") to include in API
7384	// requests with the JSON null value. By default, fields with empty
7385	// values are omitted from API requests. However, any field with an
7386	// empty value appearing in NullFields will be sent to the server as
7387	// null. It is an error if a field in this list has a non-empty value.
7388	// This may be used to include null fields in Patch requests.
7389	NullFields []string `json:"-"`
7390}
7391
7392func (s *HealthCheckList) MarshalJSON() ([]byte, error) {
7393	type NoMethod HealthCheckList
7394	raw := NoMethod(*s)
7395	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7396}
7397
7398// HealthCheckListWarning: [Output Only] Informational warning message.
7399type HealthCheckListWarning struct {
7400	// Code: [Output Only] A warning code, if applicable. For example,
7401	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7402	// the response.
7403	//
7404	// Possible values:
7405	//   "CLEANUP_FAILED"
7406	//   "DEPRECATED_RESOURCE_USED"
7407	//   "DEPRECATED_TYPE_USED"
7408	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7409	//   "EXPERIMENTAL_TYPE_USED"
7410	//   "EXTERNAL_API_WARNING"
7411	//   "FIELD_VALUE_OVERRIDEN"
7412	//   "INJECTED_KERNELS_DEPRECATED"
7413	//   "MISSING_TYPE_DEPENDENCY"
7414	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7415	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7416	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7417	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7418	//   "NEXT_HOP_NOT_RUNNING"
7419	//   "NOT_CRITICAL_ERROR"
7420	//   "NO_RESULTS_ON_PAGE"
7421	//   "REQUIRED_TOS_AGREEMENT"
7422	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7423	//   "RESOURCE_NOT_DELETED"
7424	//   "SCHEMA_VALIDATION_IGNORED"
7425	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7426	//   "UNDECLARED_PROPERTIES"
7427	//   "UNREACHABLE"
7428	Code string `json:"code,omitempty"`
7429
7430	// Data: [Output Only] Metadata about this warning in key: value format.
7431	// For example:
7432	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7433	Data []*HealthCheckListWarningData `json:"data,omitempty"`
7434
7435	// Message: [Output Only] A human-readable description of the warning
7436	// code.
7437	Message string `json:"message,omitempty"`
7438
7439	// ForceSendFields is a list of field names (e.g. "Code") to
7440	// unconditionally include in API requests. By default, fields with
7441	// empty values are omitted from API requests. However, any non-pointer,
7442	// non-interface field appearing in ForceSendFields will be sent to the
7443	// server regardless of whether the field is empty or not. This may be
7444	// used to include empty fields in Patch requests.
7445	ForceSendFields []string `json:"-"`
7446
7447	// NullFields is a list of field names (e.g. "Code") to include in API
7448	// requests with the JSON null value. By default, fields with empty
7449	// values are omitted from API requests. However, any field with an
7450	// empty value appearing in NullFields will be sent to the server as
7451	// null. It is an error if a field in this list has a non-empty value.
7452	// This may be used to include null fields in Patch requests.
7453	NullFields []string `json:"-"`
7454}
7455
7456func (s *HealthCheckListWarning) MarshalJSON() ([]byte, error) {
7457	type NoMethod HealthCheckListWarning
7458	raw := NoMethod(*s)
7459	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7460}
7461
7462type HealthCheckListWarningData struct {
7463	// Key: [Output Only] A key that provides more detail on the warning
7464	// being returned. For example, for warnings where there are no results
7465	// in a list request for a particular zone, this key might be scope and
7466	// the key value might be the zone name. Other examples might be a key
7467	// indicating a deprecated resource and a suggested replacement, or a
7468	// warning about invalid network settings (for example, if an instance
7469	// attempts to perform IP forwarding but is not enabled for IP
7470	// forwarding).
7471	Key string `json:"key,omitempty"`
7472
7473	// Value: [Output Only] A warning data value corresponding to the key.
7474	Value string `json:"value,omitempty"`
7475
7476	// ForceSendFields is a list of field names (e.g. "Key") to
7477	// unconditionally include in API requests. By default, fields with
7478	// empty values are omitted from API requests. However, any non-pointer,
7479	// non-interface field appearing in ForceSendFields will be sent to the
7480	// server regardless of whether the field is empty or not. This may be
7481	// used to include empty fields in Patch requests.
7482	ForceSendFields []string `json:"-"`
7483
7484	// NullFields is a list of field names (e.g. "Key") to include in API
7485	// requests with the JSON null value. By default, fields with empty
7486	// values are omitted from API requests. However, any field with an
7487	// empty value appearing in NullFields will be sent to the server as
7488	// null. It is an error if a field in this list has a non-empty value.
7489	// This may be used to include null fields in Patch requests.
7490	NullFields []string `json:"-"`
7491}
7492
7493func (s *HealthCheckListWarningData) MarshalJSON() ([]byte, error) {
7494	type NoMethod HealthCheckListWarningData
7495	raw := NoMethod(*s)
7496	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7497}
7498
7499// HealthCheckReference: A full or valid partial URL to a health check.
7500// For example, the following are valid URLs:
7501// -
7502// https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check
7503// - projects/project-id/global/httpHealthChecks/health-check
7504// - global/httpHealthChecks/health-check
7505type HealthCheckReference struct {
7506	HealthCheck string `json:"healthCheck,omitempty"`
7507
7508	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
7509	// unconditionally include in API requests. By default, fields with
7510	// empty values are omitted from API requests. However, any non-pointer,
7511	// non-interface field appearing in ForceSendFields will be sent to the
7512	// server regardless of whether the field is empty or not. This may be
7513	// used to include empty fields in Patch requests.
7514	ForceSendFields []string `json:"-"`
7515
7516	// NullFields is a list of field names (e.g. "HealthCheck") to include
7517	// in API requests with the JSON null value. By default, fields with
7518	// empty values are omitted from API requests. However, any field with
7519	// an empty value appearing in NullFields will be sent to the server as
7520	// null. It is an error if a field in this list has a non-empty value.
7521	// This may be used to include null fields in Patch requests.
7522	NullFields []string `json:"-"`
7523}
7524
7525func (s *HealthCheckReference) MarshalJSON() ([]byte, error) {
7526	type NoMethod HealthCheckReference
7527	raw := NoMethod(*s)
7528	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7529}
7530
7531type HealthStatus struct {
7532	// HealthState: Health state of the instance.
7533	//
7534	// Possible values:
7535	//   "HEALTHY"
7536	//   "UNHEALTHY"
7537	HealthState string `json:"healthState,omitempty"`
7538
7539	// Instance: URL of the instance resource.
7540	Instance string `json:"instance,omitempty"`
7541
7542	// IpAddress: The IP address represented by this resource.
7543	IpAddress string `json:"ipAddress,omitempty"`
7544
7545	// Port: The port on the instance.
7546	Port int64 `json:"port,omitempty"`
7547
7548	// ForceSendFields is a list of field names (e.g. "HealthState") to
7549	// unconditionally include in API requests. By default, fields with
7550	// empty values are omitted from API requests. However, any non-pointer,
7551	// non-interface field appearing in ForceSendFields will be sent to the
7552	// server regardless of whether the field is empty or not. This may be
7553	// used to include empty fields in Patch requests.
7554	ForceSendFields []string `json:"-"`
7555
7556	// NullFields is a list of field names (e.g. "HealthState") to include
7557	// in API requests with the JSON null value. By default, fields with
7558	// empty values are omitted from API requests. However, any field with
7559	// an empty value appearing in NullFields will be sent to the server as
7560	// null. It is an error if a field in this list has a non-empty value.
7561	// This may be used to include null fields in Patch requests.
7562	NullFields []string `json:"-"`
7563}
7564
7565func (s *HealthStatus) MarshalJSON() ([]byte, error) {
7566	type NoMethod HealthStatus
7567	raw := NoMethod(*s)
7568	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7569}
7570
7571// HostRule: UrlMaps A host-matching rule for a URL. If matched, will
7572// use the named PathMatcher to select the BackendService.
7573type HostRule struct {
7574	// Description: An optional description of this resource. Provide this
7575	// property when you create the resource.
7576	Description string `json:"description,omitempty"`
7577
7578	// Hosts: The list of host patterns to match. They must be valid
7579	// hostnames, except * will match any string of ([a-z0-9-.]*). In that
7580	// case, * must be the first character and must be followed in the
7581	// pattern by either - or ..
7582	Hosts []string `json:"hosts,omitempty"`
7583
7584	// PathMatcher: The name of the PathMatcher to use to match the path
7585	// portion of the URL if the hostRule matches the URL's host portion.
7586	PathMatcher string `json:"pathMatcher,omitempty"`
7587
7588	// ForceSendFields is a list of field names (e.g. "Description") to
7589	// unconditionally include in API requests. By default, fields with
7590	// empty values are omitted from API requests. However, any non-pointer,
7591	// non-interface field appearing in ForceSendFields will be sent to the
7592	// server regardless of whether the field is empty or not. This may be
7593	// used to include empty fields in Patch requests.
7594	ForceSendFields []string `json:"-"`
7595
7596	// NullFields is a list of field names (e.g. "Description") to include
7597	// in API requests with the JSON null value. By default, fields with
7598	// empty values are omitted from API requests. However, any field with
7599	// an empty value appearing in NullFields will be sent to the server as
7600	// null. It is an error if a field in this list has a non-empty value.
7601	// This may be used to include null fields in Patch requests.
7602	NullFields []string `json:"-"`
7603}
7604
7605func (s *HostRule) MarshalJSON() ([]byte, error) {
7606	type NoMethod HostRule
7607	raw := NoMethod(*s)
7608	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7609}
7610
7611// HttpHealthCheck: An HttpHealthCheck resource. This resource defines a
7612// template for how individual instances should be checked for health,
7613// via HTTP.
7614type HttpHealthCheck struct {
7615	// CheckIntervalSec: How often (in seconds) to send a health check. The
7616	// default value is 5 seconds.
7617	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
7618
7619	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
7620	// format.
7621	CreationTimestamp string `json:"creationTimestamp,omitempty"`
7622
7623	// Description: An optional description of this resource. Provide this
7624	// property when you create the resource.
7625	Description string `json:"description,omitempty"`
7626
7627	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
7628	// after this many consecutive successes. The default value is 2.
7629	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
7630
7631	// Host: The value of the host header in the HTTP health check request.
7632	// If left empty (default value), the public IP on behalf of which this
7633	// health check is performed will be used.
7634	Host string `json:"host,omitempty"`
7635
7636	// Id: [Output Only] The unique identifier for the resource. This
7637	// identifier is defined by the server.
7638	Id uint64 `json:"id,omitempty,string"`
7639
7640	// Kind: [Output Only] Type of the resource. Always
7641	// compute#httpHealthCheck for HTTP health checks.
7642	Kind string `json:"kind,omitempty"`
7643
7644	// Name: Name of the resource. Provided by the client when the resource
7645	// is created. The name must be 1-63 characters long, and comply with
7646	// RFC1035. Specifically, the name must be 1-63 characters long and
7647	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
7648	// the first character must be a lowercase letter, and all following
7649	// characters must be a dash, lowercase letter, or digit, except the
7650	// last character, which cannot be a dash.
7651	Name string `json:"name,omitempty"`
7652
7653	// Port: The TCP port number for the HTTP health check request. The
7654	// default value is 80.
7655	Port int64 `json:"port,omitempty"`
7656
7657	// RequestPath: The request path of the HTTP health check request. The
7658	// default value is /.
7659	RequestPath string `json:"requestPath,omitempty"`
7660
7661	// SelfLink: [Output Only] Server-defined URL for the resource.
7662	SelfLink string `json:"selfLink,omitempty"`
7663
7664	// TimeoutSec: How long (in seconds) to wait before claiming failure.
7665	// The default value is 5 seconds. It is invalid for timeoutSec to have
7666	// greater value than checkIntervalSec.
7667	TimeoutSec int64 `json:"timeoutSec,omitempty"`
7668
7669	// UnhealthyThreshold: A so-far healthy instance will be marked
7670	// unhealthy after this many consecutive failures. The default value is
7671	// 2.
7672	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
7673
7674	// ServerResponse contains the HTTP response code and headers from the
7675	// server.
7676	googleapi.ServerResponse `json:"-"`
7677
7678	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
7679	// unconditionally include in API requests. By default, fields with
7680	// empty values are omitted from API requests. However, any non-pointer,
7681	// non-interface field appearing in ForceSendFields will be sent to the
7682	// server regardless of whether the field is empty or not. This may be
7683	// used to include empty fields in Patch requests.
7684	ForceSendFields []string `json:"-"`
7685
7686	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
7687	// include in API requests with the JSON null value. By default, fields
7688	// with empty values are omitted from API requests. However, any field
7689	// with an empty value appearing in NullFields will be sent to the
7690	// server as null. It is an error if a field in this list has a
7691	// non-empty value. This may be used to include null fields in Patch
7692	// requests.
7693	NullFields []string `json:"-"`
7694}
7695
7696func (s *HttpHealthCheck) MarshalJSON() ([]byte, error) {
7697	type NoMethod HttpHealthCheck
7698	raw := NoMethod(*s)
7699	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7700}
7701
7702// HttpHealthCheckList: Contains a list of HttpHealthCheck resources.
7703type HttpHealthCheckList struct {
7704	// Id: [Output Only] Unique identifier for the resource; defined by the
7705	// server.
7706	Id string `json:"id,omitempty"`
7707
7708	// Items: A list of HttpHealthCheck resources.
7709	Items []*HttpHealthCheck `json:"items,omitempty"`
7710
7711	// Kind: Type of resource.
7712	Kind string `json:"kind,omitempty"`
7713
7714	// NextPageToken: [Output Only] This token allows you to get the next
7715	// page of results for list requests. If the number of results is larger
7716	// than maxResults, use the nextPageToken as a value for the query
7717	// parameter pageToken in the next list request. Subsequent list
7718	// requests will have their own nextPageToken to continue paging through
7719	// the results.
7720	NextPageToken string `json:"nextPageToken,omitempty"`
7721
7722	// SelfLink: [Output Only] Server-defined URL for this resource.
7723	SelfLink string `json:"selfLink,omitempty"`
7724
7725	// Warning: [Output Only] Informational warning message.
7726	Warning *HttpHealthCheckListWarning `json:"warning,omitempty"`
7727
7728	// ServerResponse contains the HTTP response code and headers from the
7729	// server.
7730	googleapi.ServerResponse `json:"-"`
7731
7732	// ForceSendFields is a list of field names (e.g. "Id") to
7733	// unconditionally include in API requests. By default, fields with
7734	// empty values are omitted from API requests. However, any non-pointer,
7735	// non-interface field appearing in ForceSendFields will be sent to the
7736	// server regardless of whether the field is empty or not. This may be
7737	// used to include empty fields in Patch requests.
7738	ForceSendFields []string `json:"-"`
7739
7740	// NullFields is a list of field names (e.g. "Id") to include in API
7741	// requests with the JSON null value. By default, fields with empty
7742	// values are omitted from API requests. However, any field with an
7743	// empty value appearing in NullFields will be sent to the server as
7744	// null. It is an error if a field in this list has a non-empty value.
7745	// This may be used to include null fields in Patch requests.
7746	NullFields []string `json:"-"`
7747}
7748
7749func (s *HttpHealthCheckList) MarshalJSON() ([]byte, error) {
7750	type NoMethod HttpHealthCheckList
7751	raw := NoMethod(*s)
7752	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7753}
7754
7755// HttpHealthCheckListWarning: [Output Only] Informational warning
7756// message.
7757type HttpHealthCheckListWarning struct {
7758	// Code: [Output Only] A warning code, if applicable. For example,
7759	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7760	// the response.
7761	//
7762	// Possible values:
7763	//   "CLEANUP_FAILED"
7764	//   "DEPRECATED_RESOURCE_USED"
7765	//   "DEPRECATED_TYPE_USED"
7766	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7767	//   "EXPERIMENTAL_TYPE_USED"
7768	//   "EXTERNAL_API_WARNING"
7769	//   "FIELD_VALUE_OVERRIDEN"
7770	//   "INJECTED_KERNELS_DEPRECATED"
7771	//   "MISSING_TYPE_DEPENDENCY"
7772	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7773	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7774	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7775	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7776	//   "NEXT_HOP_NOT_RUNNING"
7777	//   "NOT_CRITICAL_ERROR"
7778	//   "NO_RESULTS_ON_PAGE"
7779	//   "REQUIRED_TOS_AGREEMENT"
7780	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7781	//   "RESOURCE_NOT_DELETED"
7782	//   "SCHEMA_VALIDATION_IGNORED"
7783	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7784	//   "UNDECLARED_PROPERTIES"
7785	//   "UNREACHABLE"
7786	Code string `json:"code,omitempty"`
7787
7788	// Data: [Output Only] Metadata about this warning in key: value format.
7789	// For example:
7790	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7791	Data []*HttpHealthCheckListWarningData `json:"data,omitempty"`
7792
7793	// Message: [Output Only] A human-readable description of the warning
7794	// code.
7795	Message string `json:"message,omitempty"`
7796
7797	// ForceSendFields is a list of field names (e.g. "Code") to
7798	// unconditionally include in API requests. By default, fields with
7799	// empty values are omitted from API requests. However, any non-pointer,
7800	// non-interface field appearing in ForceSendFields will be sent to the
7801	// server regardless of whether the field is empty or not. This may be
7802	// used to include empty fields in Patch requests.
7803	ForceSendFields []string `json:"-"`
7804
7805	// NullFields is a list of field names (e.g. "Code") to include in API
7806	// requests with the JSON null value. By default, fields with empty
7807	// values are omitted from API requests. However, any field with an
7808	// empty value appearing in NullFields will be sent to the server as
7809	// null. It is an error if a field in this list has a non-empty value.
7810	// This may be used to include null fields in Patch requests.
7811	NullFields []string `json:"-"`
7812}
7813
7814func (s *HttpHealthCheckListWarning) MarshalJSON() ([]byte, error) {
7815	type NoMethod HttpHealthCheckListWarning
7816	raw := NoMethod(*s)
7817	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7818}
7819
7820type HttpHealthCheckListWarningData struct {
7821	// Key: [Output Only] A key that provides more detail on the warning
7822	// being returned. For example, for warnings where there are no results
7823	// in a list request for a particular zone, this key might be scope and
7824	// the key value might be the zone name. Other examples might be a key
7825	// indicating a deprecated resource and a suggested replacement, or a
7826	// warning about invalid network settings (for example, if an instance
7827	// attempts to perform IP forwarding but is not enabled for IP
7828	// forwarding).
7829	Key string `json:"key,omitempty"`
7830
7831	// Value: [Output Only] A warning data value corresponding to the key.
7832	Value string `json:"value,omitempty"`
7833
7834	// ForceSendFields is a list of field names (e.g. "Key") to
7835	// unconditionally include in API requests. By default, fields with
7836	// empty values are omitted from API requests. However, any non-pointer,
7837	// non-interface field appearing in ForceSendFields will be sent to the
7838	// server regardless of whether the field is empty or not. This may be
7839	// used to include empty fields in Patch requests.
7840	ForceSendFields []string `json:"-"`
7841
7842	// NullFields is a list of field names (e.g. "Key") to include in API
7843	// requests with the JSON null value. By default, fields with empty
7844	// values are omitted from API requests. However, any field with an
7845	// empty value appearing in NullFields will be sent to the server as
7846	// null. It is an error if a field in this list has a non-empty value.
7847	// This may be used to include null fields in Patch requests.
7848	NullFields []string `json:"-"`
7849}
7850
7851func (s *HttpHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
7852	type NoMethod HttpHealthCheckListWarningData
7853	raw := NoMethod(*s)
7854	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7855}
7856
7857// HttpsHealthCheck: An HttpsHealthCheck resource. This resource defines
7858// a template for how individual instances should be checked for health,
7859// via HTTPS.
7860type HttpsHealthCheck struct {
7861	// CheckIntervalSec: How often (in seconds) to send a health check. The
7862	// default value is 5 seconds.
7863	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
7864
7865	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
7866	// format.
7867	CreationTimestamp string `json:"creationTimestamp,omitempty"`
7868
7869	// Description: An optional description of this resource. Provide this
7870	// property when you create the resource.
7871	Description string `json:"description,omitempty"`
7872
7873	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
7874	// after this many consecutive successes. The default value is 2.
7875	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
7876
7877	// Host: The value of the host header in the HTTPS health check request.
7878	// If left empty (default value), the public IP on behalf of which this
7879	// health check is performed will be used.
7880	Host string `json:"host,omitempty"`
7881
7882	// Id: [Output Only] The unique identifier for the resource. This
7883	// identifier is defined by the server.
7884	Id uint64 `json:"id,omitempty,string"`
7885
7886	// Kind: Type of the resource.
7887	Kind string `json:"kind,omitempty"`
7888
7889	// Name: Name of the resource. Provided by the client when the resource
7890	// is created. The name must be 1-63 characters long, and comply with
7891	// RFC1035. Specifically, the name must be 1-63 characters long and
7892	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
7893	// the first character must be a lowercase letter, and all following
7894	// characters must be a dash, lowercase letter, or digit, except the
7895	// last character, which cannot be a dash.
7896	Name string `json:"name,omitempty"`
7897
7898	// Port: The TCP port number for the HTTPS health check request. The
7899	// default value is 443.
7900	Port int64 `json:"port,omitempty"`
7901
7902	// RequestPath: The request path of the HTTPS health check request. The
7903	// default value is "/".
7904	RequestPath string `json:"requestPath,omitempty"`
7905
7906	// SelfLink: [Output Only] Server-defined URL for the resource.
7907	SelfLink string `json:"selfLink,omitempty"`
7908
7909	// TimeoutSec: How long (in seconds) to wait before claiming failure.
7910	// The default value is 5 seconds. It is invalid for timeoutSec to have
7911	// a greater value than checkIntervalSec.
7912	TimeoutSec int64 `json:"timeoutSec,omitempty"`
7913
7914	// UnhealthyThreshold: A so-far healthy instance will be marked
7915	// unhealthy after this many consecutive failures. The default value is
7916	// 2.
7917	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
7918
7919	// ServerResponse contains the HTTP response code and headers from the
7920	// server.
7921	googleapi.ServerResponse `json:"-"`
7922
7923	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
7924	// unconditionally include in API requests. By default, fields with
7925	// empty values are omitted from API requests. However, any non-pointer,
7926	// non-interface field appearing in ForceSendFields will be sent to the
7927	// server regardless of whether the field is empty or not. This may be
7928	// used to include empty fields in Patch requests.
7929	ForceSendFields []string `json:"-"`
7930
7931	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
7932	// include in API requests with the JSON null value. By default, fields
7933	// with empty values are omitted from API requests. However, any field
7934	// with an empty value appearing in NullFields will be sent to the
7935	// server as null. It is an error if a field in this list has a
7936	// non-empty value. This may be used to include null fields in Patch
7937	// requests.
7938	NullFields []string `json:"-"`
7939}
7940
7941func (s *HttpsHealthCheck) MarshalJSON() ([]byte, error) {
7942	type NoMethod HttpsHealthCheck
7943	raw := NoMethod(*s)
7944	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7945}
7946
7947// HttpsHealthCheckList: Contains a list of HttpsHealthCheck resources.
7948type HttpsHealthCheckList struct {
7949	// Id: [Output Only] Unique identifier for the resource; defined by the
7950	// server.
7951	Id string `json:"id,omitempty"`
7952
7953	// Items: A list of HttpsHealthCheck resources.
7954	Items []*HttpsHealthCheck `json:"items,omitempty"`
7955
7956	// Kind: Type of resource.
7957	Kind string `json:"kind,omitempty"`
7958
7959	// NextPageToken: [Output Only] This token allows you to get the next
7960	// page of results for list requests. If the number of results is larger
7961	// than maxResults, use the nextPageToken as a value for the query
7962	// parameter pageToken in the next list request. Subsequent list
7963	// requests will have their own nextPageToken to continue paging through
7964	// the results.
7965	NextPageToken string `json:"nextPageToken,omitempty"`
7966
7967	// SelfLink: [Output Only] Server-defined URL for this resource.
7968	SelfLink string `json:"selfLink,omitempty"`
7969
7970	// Warning: [Output Only] Informational warning message.
7971	Warning *HttpsHealthCheckListWarning `json:"warning,omitempty"`
7972
7973	// ServerResponse contains the HTTP response code and headers from the
7974	// server.
7975	googleapi.ServerResponse `json:"-"`
7976
7977	// ForceSendFields is a list of field names (e.g. "Id") to
7978	// unconditionally include in API requests. By default, fields with
7979	// empty values are omitted from API requests. However, any non-pointer,
7980	// non-interface field appearing in ForceSendFields will be sent to the
7981	// server regardless of whether the field is empty or not. This may be
7982	// used to include empty fields in Patch requests.
7983	ForceSendFields []string `json:"-"`
7984
7985	// NullFields is a list of field names (e.g. "Id") to include in API
7986	// requests with the JSON null value. By default, fields with empty
7987	// values are omitted from API requests. However, any field with an
7988	// empty value appearing in NullFields will be sent to the server as
7989	// null. It is an error if a field in this list has a non-empty value.
7990	// This may be used to include null fields in Patch requests.
7991	NullFields []string `json:"-"`
7992}
7993
7994func (s *HttpsHealthCheckList) MarshalJSON() ([]byte, error) {
7995	type NoMethod HttpsHealthCheckList
7996	raw := NoMethod(*s)
7997	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7998}
7999
8000// HttpsHealthCheckListWarning: [Output Only] Informational warning
8001// message.
8002type HttpsHealthCheckListWarning struct {
8003	// Code: [Output Only] A warning code, if applicable. For example,
8004	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8005	// the response.
8006	//
8007	// Possible values:
8008	//   "CLEANUP_FAILED"
8009	//   "DEPRECATED_RESOURCE_USED"
8010	//   "DEPRECATED_TYPE_USED"
8011	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8012	//   "EXPERIMENTAL_TYPE_USED"
8013	//   "EXTERNAL_API_WARNING"
8014	//   "FIELD_VALUE_OVERRIDEN"
8015	//   "INJECTED_KERNELS_DEPRECATED"
8016	//   "MISSING_TYPE_DEPENDENCY"
8017	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8018	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8019	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8020	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8021	//   "NEXT_HOP_NOT_RUNNING"
8022	//   "NOT_CRITICAL_ERROR"
8023	//   "NO_RESULTS_ON_PAGE"
8024	//   "REQUIRED_TOS_AGREEMENT"
8025	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8026	//   "RESOURCE_NOT_DELETED"
8027	//   "SCHEMA_VALIDATION_IGNORED"
8028	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8029	//   "UNDECLARED_PROPERTIES"
8030	//   "UNREACHABLE"
8031	Code string `json:"code,omitempty"`
8032
8033	// Data: [Output Only] Metadata about this warning in key: value format.
8034	// For example:
8035	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8036	Data []*HttpsHealthCheckListWarningData `json:"data,omitempty"`
8037
8038	// Message: [Output Only] A human-readable description of the warning
8039	// code.
8040	Message string `json:"message,omitempty"`
8041
8042	// ForceSendFields is a list of field names (e.g. "Code") to
8043	// unconditionally include in API requests. By default, fields with
8044	// empty values are omitted from API requests. However, any non-pointer,
8045	// non-interface field appearing in ForceSendFields will be sent to the
8046	// server regardless of whether the field is empty or not. This may be
8047	// used to include empty fields in Patch requests.
8048	ForceSendFields []string `json:"-"`
8049
8050	// NullFields is a list of field names (e.g. "Code") to include in API
8051	// requests with the JSON null value. By default, fields with empty
8052	// values are omitted from API requests. However, any field with an
8053	// empty value appearing in NullFields will be sent to the server as
8054	// null. It is an error if a field in this list has a non-empty value.
8055	// This may be used to include null fields in Patch requests.
8056	NullFields []string `json:"-"`
8057}
8058
8059func (s *HttpsHealthCheckListWarning) MarshalJSON() ([]byte, error) {
8060	type NoMethod HttpsHealthCheckListWarning
8061	raw := NoMethod(*s)
8062	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8063}
8064
8065type HttpsHealthCheckListWarningData struct {
8066	// Key: [Output Only] A key that provides more detail on the warning
8067	// being returned. For example, for warnings where there are no results
8068	// in a list request for a particular zone, this key might be scope and
8069	// the key value might be the zone name. Other examples might be a key
8070	// indicating a deprecated resource and a suggested replacement, or a
8071	// warning about invalid network settings (for example, if an instance
8072	// attempts to perform IP forwarding but is not enabled for IP
8073	// forwarding).
8074	Key string `json:"key,omitempty"`
8075
8076	// Value: [Output Only] A warning data value corresponding to the key.
8077	Value string `json:"value,omitempty"`
8078
8079	// ForceSendFields is a list of field names (e.g. "Key") to
8080	// unconditionally include in API requests. By default, fields with
8081	// empty values are omitted from API requests. However, any non-pointer,
8082	// non-interface field appearing in ForceSendFields will be sent to the
8083	// server regardless of whether the field is empty or not. This may be
8084	// used to include empty fields in Patch requests.
8085	ForceSendFields []string `json:"-"`
8086
8087	// NullFields is a list of field names (e.g. "Key") to include in API
8088	// requests with the JSON null value. By default, fields with empty
8089	// values are omitted from API requests. However, any field with an
8090	// empty value appearing in NullFields will be sent to the server as
8091	// null. It is an error if a field in this list has a non-empty value.
8092	// This may be used to include null fields in Patch requests.
8093	NullFields []string `json:"-"`
8094}
8095
8096func (s *HttpsHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
8097	type NoMethod HttpsHealthCheckListWarningData
8098	raw := NoMethod(*s)
8099	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8100}
8101
8102// Image: An Image resource. (== resource_for beta.images ==) (==
8103// resource_for v1.images ==)
8104type Image struct {
8105	// ArchiveSizeBytes: Size of the image tar.gz archive stored in Google
8106	// Cloud Storage (in bytes).
8107	ArchiveSizeBytes int64 `json:"archiveSizeBytes,omitempty,string"`
8108
8109	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
8110	// format.
8111	CreationTimestamp string `json:"creationTimestamp,omitempty"`
8112
8113	// Deprecated: The deprecation status associated with this image.
8114	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
8115
8116	// Description: An optional description of this resource. Provide this
8117	// property when you create the resource.
8118	Description string `json:"description,omitempty"`
8119
8120	// DiskSizeGb: Size of the image when restored onto a persistent disk
8121	// (in GB).
8122	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
8123
8124	// Family: The name of the image family to which this image belongs. You
8125	// can create disks by specifying an image family instead of a specific
8126	// image name. The image family always returns its latest image that is
8127	// not deprecated. The name of the image family must comply with
8128	// RFC1035.
8129	Family string `json:"family,omitempty"`
8130
8131	// GuestOsFeatures: A list of features to enable on the guest operating
8132	// system. Applicable only for bootable images. Read  Enabling guest
8133	// operating system features to see a list of available options.
8134	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
8135
8136	// Id: [Output Only] The unique identifier for the resource. This
8137	// identifier is defined by the server.
8138	Id uint64 `json:"id,omitempty,string"`
8139
8140	// ImageEncryptionKey: Encrypts the image using a customer-supplied
8141	// encryption key.
8142	//
8143	// After you encrypt an image with a customer-supplied key, you must
8144	// provide the same key if you use the image later (e.g. to create a
8145	// disk from the image).
8146	//
8147	// Customer-supplied encryption keys do not protect access to metadata
8148	// of the disk.
8149	//
8150	// If you do not provide an encryption key when creating the image, then
8151	// the disk will be encrypted using an automatically generated key and
8152	// you do not need to provide a key to use the image later.
8153	ImageEncryptionKey *CustomerEncryptionKey `json:"imageEncryptionKey,omitempty"`
8154
8155	// Kind: [Output Only] Type of the resource. Always compute#image for
8156	// images.
8157	Kind string `json:"kind,omitempty"`
8158
8159	// LabelFingerprint: A fingerprint for the labels being applied to this
8160	// image, which is essentially a hash of the labels used for optimistic
8161	// locking. The fingerprint is initially generated by Compute Engine and
8162	// changes after every request to modify or update labels. You must
8163	// always provide an up-to-date fingerprint hash in order to update or
8164	// change labels.
8165	//
8166	// To see the latest fingerprint, make a get() request to retrieve an
8167	// image.
8168	LabelFingerprint string `json:"labelFingerprint,omitempty"`
8169
8170	// Labels: Labels to apply to this image. These can be later modified by
8171	// the setLabels method.
8172	Labels map[string]string `json:"labels,omitempty"`
8173
8174	// Licenses: Any applicable license URI.
8175	Licenses []string `json:"licenses,omitempty"`
8176
8177	// Name: Name of the resource; provided by the client when the resource
8178	// is created. The name must be 1-63 characters long, and comply with
8179	// RFC1035. Specifically, the name must be 1-63 characters long and
8180	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
8181	// the first character must be a lowercase letter, and all following
8182	// characters must be a dash, lowercase letter, or digit, except the
8183	// last character, which cannot be a dash.
8184	Name string `json:"name,omitempty"`
8185
8186	// RawDisk: The parameters of the raw disk image.
8187	RawDisk *ImageRawDisk `json:"rawDisk,omitempty"`
8188
8189	// SelfLink: [Output Only] Server-defined URL for the resource.
8190	SelfLink string `json:"selfLink,omitempty"`
8191
8192	// SourceDisk: URL of the source disk used to create this image. This
8193	// can be a full or valid partial URL. You must provide either this
8194	// property or the rawDisk.source property but not both to create an
8195	// image. For example, the following are valid values:
8196	// -
8197	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
8198	// - projects/project/zones/zone/disks/disk
8199	// - zones/zone/disks/disk
8200	SourceDisk string `json:"sourceDisk,omitempty"`
8201
8202	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
8203	// source disk. Required if the source disk is protected by a
8204	// customer-supplied encryption key.
8205	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
8206
8207	// SourceDiskId: The ID value of the disk used to create this image.
8208	// This value may be used to determine whether the image was taken from
8209	// the current or a previous instance of a given disk name.
8210	SourceDiskId string `json:"sourceDiskId,omitempty"`
8211
8212	// SourceImage: URL of the source image used to create this image. This
8213	// can be a full or valid partial URL. You must provide exactly one of:
8214	//
8215	// - this property, or
8216	// - the rawDisk.source property, or
8217	// - the sourceDisk property   in order to create an image.
8218	SourceImage string `json:"sourceImage,omitempty"`
8219
8220	// SourceImageEncryptionKey: The customer-supplied encryption key of the
8221	// source image. Required if the source image is protected by a
8222	// customer-supplied encryption key.
8223	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
8224
8225	// SourceImageId: [Output Only] The ID value of the image used to create
8226	// this image. This value may be used to determine whether the image was
8227	// taken from the current or a previous instance of a given image name.
8228	SourceImageId string `json:"sourceImageId,omitempty"`
8229
8230	// SourceType: The type of the image used to create this disk. The
8231	// default and only value is RAW
8232	//
8233	// Possible values:
8234	//   "RAW" (default)
8235	SourceType string `json:"sourceType,omitempty"`
8236
8237	// Status: [Output Only] The status of the image. An image can be used
8238	// to create other resources, such as instances, only after the image
8239	// has been successfully created and the status is set to READY.
8240	// Possible values are FAILED, PENDING, or READY.
8241	//
8242	// Possible values:
8243	//   "FAILED"
8244	//   "PENDING"
8245	//   "READY"
8246	Status string `json:"status,omitempty"`
8247
8248	// ServerResponse contains the HTTP response code and headers from the
8249	// server.
8250	googleapi.ServerResponse `json:"-"`
8251
8252	// ForceSendFields is a list of field names (e.g. "ArchiveSizeBytes") to
8253	// unconditionally include in API requests. By default, fields with
8254	// empty values are omitted from API requests. However, any non-pointer,
8255	// non-interface field appearing in ForceSendFields will be sent to the
8256	// server regardless of whether the field is empty or not. This may be
8257	// used to include empty fields in Patch requests.
8258	ForceSendFields []string `json:"-"`
8259
8260	// NullFields is a list of field names (e.g. "ArchiveSizeBytes") to
8261	// include in API requests with the JSON null value. By default, fields
8262	// with empty values are omitted from API requests. However, any field
8263	// with an empty value appearing in NullFields will be sent to the
8264	// server as null. It is an error if a field in this list has a
8265	// non-empty value. This may be used to include null fields in Patch
8266	// requests.
8267	NullFields []string `json:"-"`
8268}
8269
8270func (s *Image) MarshalJSON() ([]byte, error) {
8271	type NoMethod Image
8272	raw := NoMethod(*s)
8273	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8274}
8275
8276// ImageRawDisk: The parameters of the raw disk image.
8277type ImageRawDisk struct {
8278	// ContainerType: The format used to encode and transmit the block
8279	// device, which should be TAR. This is just a container and
8280	// transmission format and not a runtime format. Provided by the client
8281	// when the disk image is created.
8282	//
8283	// Possible values:
8284	//   "TAR"
8285	ContainerType string `json:"containerType,omitempty"`
8286
8287	// Sha1Checksum: An optional SHA1 checksum of the disk image before
8288	// unpackaging; provided by the client when the disk image is created.
8289	Sha1Checksum string `json:"sha1Checksum,omitempty"`
8290
8291	// Source: The full Google Cloud Storage URL where the disk image is
8292	// stored. You must provide either this property or the sourceDisk
8293	// property but not both.
8294	Source string `json:"source,omitempty"`
8295
8296	// ForceSendFields is a list of field names (e.g. "ContainerType") to
8297	// unconditionally include in API requests. By default, fields with
8298	// empty values are omitted from API requests. However, any non-pointer,
8299	// non-interface field appearing in ForceSendFields will be sent to the
8300	// server regardless of whether the field is empty or not. This may be
8301	// used to include empty fields in Patch requests.
8302	ForceSendFields []string `json:"-"`
8303
8304	// NullFields is a list of field names (e.g. "ContainerType") to include
8305	// in API requests with the JSON null value. By default, fields with
8306	// empty values are omitted from API requests. However, any field with
8307	// an empty value appearing in NullFields will be sent to the server as
8308	// null. It is an error if a field in this list has a non-empty value.
8309	// This may be used to include null fields in Patch requests.
8310	NullFields []string `json:"-"`
8311}
8312
8313func (s *ImageRawDisk) MarshalJSON() ([]byte, error) {
8314	type NoMethod ImageRawDisk
8315	raw := NoMethod(*s)
8316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8317}
8318
8319// ImageList: Contains a list of images.
8320type ImageList struct {
8321	// Id: [Output Only] Unique identifier for the resource; defined by the
8322	// server.
8323	Id string `json:"id,omitempty"`
8324
8325	// Items: A list of Image resources.
8326	Items []*Image `json:"items,omitempty"`
8327
8328	// Kind: Type of resource.
8329	Kind string `json:"kind,omitempty"`
8330
8331	// NextPageToken: [Output Only] This token allows you to get the next
8332	// page of results for list requests. If the number of results is larger
8333	// than maxResults, use the nextPageToken as a value for the query
8334	// parameter pageToken in the next list request. Subsequent list
8335	// requests will have their own nextPageToken to continue paging through
8336	// the results.
8337	NextPageToken string `json:"nextPageToken,omitempty"`
8338
8339	// SelfLink: [Output Only] Server-defined URL for this resource.
8340	SelfLink string `json:"selfLink,omitempty"`
8341
8342	// Warning: [Output Only] Informational warning message.
8343	Warning *ImageListWarning `json:"warning,omitempty"`
8344
8345	// ServerResponse contains the HTTP response code and headers from the
8346	// server.
8347	googleapi.ServerResponse `json:"-"`
8348
8349	// ForceSendFields is a list of field names (e.g. "Id") to
8350	// unconditionally include in API requests. By default, fields with
8351	// empty values are omitted from API requests. However, any non-pointer,
8352	// non-interface field appearing in ForceSendFields will be sent to the
8353	// server regardless of whether the field is empty or not. This may be
8354	// used to include empty fields in Patch requests.
8355	ForceSendFields []string `json:"-"`
8356
8357	// NullFields is a list of field names (e.g. "Id") to include in API
8358	// requests with the JSON null value. By default, fields with empty
8359	// values are omitted from API requests. However, any field with an
8360	// empty value appearing in NullFields will be sent to the server as
8361	// null. It is an error if a field in this list has a non-empty value.
8362	// This may be used to include null fields in Patch requests.
8363	NullFields []string `json:"-"`
8364}
8365
8366func (s *ImageList) MarshalJSON() ([]byte, error) {
8367	type NoMethod ImageList
8368	raw := NoMethod(*s)
8369	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8370}
8371
8372// ImageListWarning: [Output Only] Informational warning message.
8373type ImageListWarning struct {
8374	// Code: [Output Only] A warning code, if applicable. For example,
8375	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8376	// the response.
8377	//
8378	// Possible values:
8379	//   "CLEANUP_FAILED"
8380	//   "DEPRECATED_RESOURCE_USED"
8381	//   "DEPRECATED_TYPE_USED"
8382	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8383	//   "EXPERIMENTAL_TYPE_USED"
8384	//   "EXTERNAL_API_WARNING"
8385	//   "FIELD_VALUE_OVERRIDEN"
8386	//   "INJECTED_KERNELS_DEPRECATED"
8387	//   "MISSING_TYPE_DEPENDENCY"
8388	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8389	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8390	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8391	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8392	//   "NEXT_HOP_NOT_RUNNING"
8393	//   "NOT_CRITICAL_ERROR"
8394	//   "NO_RESULTS_ON_PAGE"
8395	//   "REQUIRED_TOS_AGREEMENT"
8396	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8397	//   "RESOURCE_NOT_DELETED"
8398	//   "SCHEMA_VALIDATION_IGNORED"
8399	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8400	//   "UNDECLARED_PROPERTIES"
8401	//   "UNREACHABLE"
8402	Code string `json:"code,omitempty"`
8403
8404	// Data: [Output Only] Metadata about this warning in key: value format.
8405	// For example:
8406	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8407	Data []*ImageListWarningData `json:"data,omitempty"`
8408
8409	// Message: [Output Only] A human-readable description of the warning
8410	// code.
8411	Message string `json:"message,omitempty"`
8412
8413	// ForceSendFields is a list of field names (e.g. "Code") to
8414	// unconditionally include in API requests. By default, fields with
8415	// empty values are omitted from API requests. However, any non-pointer,
8416	// non-interface field appearing in ForceSendFields will be sent to the
8417	// server regardless of whether the field is empty or not. This may be
8418	// used to include empty fields in Patch requests.
8419	ForceSendFields []string `json:"-"`
8420
8421	// NullFields is a list of field names (e.g. "Code") to include in API
8422	// requests with the JSON null value. By default, fields with empty
8423	// values are omitted from API requests. However, any field with an
8424	// empty value appearing in NullFields will be sent to the server as
8425	// null. It is an error if a field in this list has a non-empty value.
8426	// This may be used to include null fields in Patch requests.
8427	NullFields []string `json:"-"`
8428}
8429
8430func (s *ImageListWarning) MarshalJSON() ([]byte, error) {
8431	type NoMethod ImageListWarning
8432	raw := NoMethod(*s)
8433	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8434}
8435
8436type ImageListWarningData struct {
8437	// Key: [Output Only] A key that provides more detail on the warning
8438	// being returned. For example, for warnings where there are no results
8439	// in a list request for a particular zone, this key might be scope and
8440	// the key value might be the zone name. Other examples might be a key
8441	// indicating a deprecated resource and a suggested replacement, or a
8442	// warning about invalid network settings (for example, if an instance
8443	// attempts to perform IP forwarding but is not enabled for IP
8444	// forwarding).
8445	Key string `json:"key,omitempty"`
8446
8447	// Value: [Output Only] A warning data value corresponding to the key.
8448	Value string `json:"value,omitempty"`
8449
8450	// ForceSendFields is a list of field names (e.g. "Key") to
8451	// unconditionally include in API requests. By default, fields with
8452	// empty values are omitted from API requests. However, any non-pointer,
8453	// non-interface field appearing in ForceSendFields will be sent to the
8454	// server regardless of whether the field is empty or not. This may be
8455	// used to include empty fields in Patch requests.
8456	ForceSendFields []string `json:"-"`
8457
8458	// NullFields is a list of field names (e.g. "Key") to include in API
8459	// requests with the JSON null value. By default, fields with empty
8460	// values are omitted from API requests. However, any field with an
8461	// empty value appearing in NullFields will be sent to the server as
8462	// null. It is an error if a field in this list has a non-empty value.
8463	// This may be used to include null fields in Patch requests.
8464	NullFields []string `json:"-"`
8465}
8466
8467func (s *ImageListWarningData) MarshalJSON() ([]byte, error) {
8468	type NoMethod ImageListWarningData
8469	raw := NoMethod(*s)
8470	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8471}
8472
8473// Instance: An Instance resource. (== resource_for beta.instances ==)
8474// (== resource_for v1.instances ==)
8475type Instance struct {
8476	// CanIpForward: Allows this instance to send and receive packets with
8477	// non-matching destination or source IPs. This is required if you plan
8478	// to use this instance to forward routes. For more information, see
8479	// Enabling IP Forwarding.
8480	CanIpForward bool `json:"canIpForward,omitempty"`
8481
8482	// CpuPlatform: [Output Only] The CPU platform used by this instance.
8483	CpuPlatform string `json:"cpuPlatform,omitempty"`
8484
8485	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
8486	// format.
8487	CreationTimestamp string `json:"creationTimestamp,omitempty"`
8488
8489	// DeletionProtection: Whether the resource should be protected against
8490	// deletion.
8491	DeletionProtection bool `json:"deletionProtection,omitempty"`
8492
8493	// Description: An optional description of this resource. Provide this
8494	// property when you create the resource.
8495	Description string `json:"description,omitempty"`
8496
8497	// Disks: Array of disks associated with this instance. Persistent disks
8498	// must be created before you can assign them.
8499	Disks []*AttachedDisk `json:"disks,omitempty"`
8500
8501	// GuestAccelerators: List of the type and count of accelerator cards
8502	// attached to the instance.
8503	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
8504
8505	// Id: [Output Only] The unique identifier for the resource. This
8506	// identifier is defined by the server.
8507	Id uint64 `json:"id,omitempty,string"`
8508
8509	// Kind: [Output Only] Type of the resource. Always compute#instance for
8510	// instances.
8511	Kind string `json:"kind,omitempty"`
8512
8513	// LabelFingerprint: A fingerprint for this request, which is
8514	// essentially a hash of the metadata's contents and used for optimistic
8515	// locking. The fingerprint is initially generated by Compute Engine and
8516	// changes after every request to modify or update metadata. You must
8517	// always provide an up-to-date fingerprint hash in order to update or
8518	// change metadata.
8519	//
8520	// To see the latest fingerprint, make get() request to the instance.
8521	LabelFingerprint string `json:"labelFingerprint,omitempty"`
8522
8523	// Labels: Labels to apply to this instance. These can be later modified
8524	// by the setLabels method.
8525	Labels map[string]string `json:"labels,omitempty"`
8526
8527	// MachineType: Full or partial URL of the machine type resource to use
8528	// for this instance, in the format:
8529	// zones/zone/machineTypes/machine-type. This is provided by the client
8530	// when the instance is created. For example, the following is a valid
8531	// partial url to a predefined machine
8532	// type:
8533	// zones/us-central1-f/machineTypes/n1-standard-1
8534	//
8535	//
8536	// To create a custom machine type, provide a URL to a machine type in
8537	// the following format, where CPUS is 1 or an even number up to 32 (2,
8538	// 4, 6, ... 24, etc), and MEMORY is the total memory for this instance.
8539	// Memory must be a multiple of 256 MB and must be supplied in MB (e.g.
8540	// 5 GB of memory is 5120
8541	// MB):
8542	// zones/zone/machineTypes/custom-CPUS-MEMORY
8543	//
8544	//
8545	// For example: zones/us-central1-f/machineTypes/custom-4-5120
8546	//
8547	// For a full list of restrictions, read the Specifications for custom
8548	// machine types.
8549	MachineType string `json:"machineType,omitempty"`
8550
8551	// Metadata: The metadata key/value pairs assigned to this instance.
8552	// This includes custom metadata and predefined keys.
8553	Metadata *Metadata `json:"metadata,omitempty"`
8554
8555	// MinCpuPlatform: Specifies a minimum CPU platform for the VM instance.
8556	// Applicable values are the friendly names of CPU platforms, such as
8557	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
8558	// Bridge".
8559	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
8560
8561	// Name: The name of the resource, provided by the client when initially
8562	// creating the resource. The resource name must be 1-63 characters
8563	// long, and comply with RFC1035. Specifically, the name must be 1-63
8564	// characters long and match the regular expression
8565	// [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a
8566	// lowercase letter, and all following characters must be a dash,
8567	// lowercase letter, or digit, except the last character, which cannot
8568	// be a dash.
8569	Name string `json:"name,omitempty"`
8570
8571	// NetworkInterfaces: An array of network configurations for this
8572	// instance. These specify how interfaces are configured to interact
8573	// with other network services, such as connecting to the internet.
8574	// Multiple interfaces are supported per instance.
8575	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
8576
8577	// Scheduling: Sets the scheduling options for this instance.
8578	Scheduling *Scheduling `json:"scheduling,omitempty"`
8579
8580	// SelfLink: [Output Only] Server-defined URL for this resource.
8581	SelfLink string `json:"selfLink,omitempty"`
8582
8583	// ServiceAccounts: A list of service accounts, with their specified
8584	// scopes, authorized for this instance. Only one service account per VM
8585	// instance is supported.
8586	//
8587	// Service accounts generate access tokens that can be accessed through
8588	// the metadata server and used to authenticate applications on the
8589	// instance. See Service Accounts for more information.
8590	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
8591
8592	// StartRestricted: [Output Only] Whether a VM has been restricted for
8593	// start because Compute Engine has detected suspicious activity.
8594	StartRestricted bool `json:"startRestricted,omitempty"`
8595
8596	// Status: [Output Only] The status of the instance. One of the
8597	// following values: PROVISIONING, STAGING, RUNNING, STOPPING, STOPPED,
8598	// SUSPENDING, SUSPENDED, and TERMINATED.
8599	//
8600	// Possible values:
8601	//   "PROVISIONING"
8602	//   "RUNNING"
8603	//   "STAGING"
8604	//   "STOPPED"
8605	//   "STOPPING"
8606	//   "SUSPENDED"
8607	//   "SUSPENDING"
8608	//   "TERMINATED"
8609	Status string `json:"status,omitempty"`
8610
8611	// StatusMessage: [Output Only] An optional, human-readable explanation
8612	// of the status.
8613	StatusMessage string `json:"statusMessage,omitempty"`
8614
8615	// Tags: A list of tags to apply to this instance. Tags are used to
8616	// identify valid sources or targets for network firewalls and are
8617	// specified by the client during instance creation. The tags can be
8618	// later modified by the setTags method. Each tag within the list must
8619	// comply with RFC1035.
8620	Tags *Tags `json:"tags,omitempty"`
8621
8622	// Zone: [Output Only] URL of the zone where the instance resides. You
8623	// must specify this field as part of the HTTP request URL. It is not
8624	// settable as a field in the request body.
8625	Zone string `json:"zone,omitempty"`
8626
8627	// ServerResponse contains the HTTP response code and headers from the
8628	// server.
8629	googleapi.ServerResponse `json:"-"`
8630
8631	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
8632	// unconditionally include in API requests. By default, fields with
8633	// empty values are omitted from API requests. However, any non-pointer,
8634	// non-interface field appearing in ForceSendFields will be sent to the
8635	// server regardless of whether the field is empty or not. This may be
8636	// used to include empty fields in Patch requests.
8637	ForceSendFields []string `json:"-"`
8638
8639	// NullFields is a list of field names (e.g. "CanIpForward") to include
8640	// in API requests with the JSON null value. By default, fields with
8641	// empty values are omitted from API requests. However, any field with
8642	// an empty value appearing in NullFields will be sent to the server as
8643	// null. It is an error if a field in this list has a non-empty value.
8644	// This may be used to include null fields in Patch requests.
8645	NullFields []string `json:"-"`
8646}
8647
8648func (s *Instance) MarshalJSON() ([]byte, error) {
8649	type NoMethod Instance
8650	raw := NoMethod(*s)
8651	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8652}
8653
8654type InstanceAggregatedList struct {
8655	// Id: [Output Only] Unique identifier for the resource; defined by the
8656	// server.
8657	Id string `json:"id,omitempty"`
8658
8659	// Items: A list of InstancesScopedList resources.
8660	Items map[string]InstancesScopedList `json:"items,omitempty"`
8661
8662	// Kind: [Output Only] Type of resource. Always
8663	// compute#instanceAggregatedList for aggregated lists of Instance
8664	// resources.
8665	Kind string `json:"kind,omitempty"`
8666
8667	// NextPageToken: [Output Only] This token allows you to get the next
8668	// page of results for list requests. If the number of results is larger
8669	// than maxResults, use the nextPageToken as a value for the query
8670	// parameter pageToken in the next list request. Subsequent list
8671	// requests will have their own nextPageToken to continue paging through
8672	// the results.
8673	NextPageToken string `json:"nextPageToken,omitempty"`
8674
8675	// SelfLink: [Output Only] Server-defined URL for this resource.
8676	SelfLink string `json:"selfLink,omitempty"`
8677
8678	// Warning: [Output Only] Informational warning message.
8679	Warning *InstanceAggregatedListWarning `json:"warning,omitempty"`
8680
8681	// ServerResponse contains the HTTP response code and headers from the
8682	// server.
8683	googleapi.ServerResponse `json:"-"`
8684
8685	// ForceSendFields is a list of field names (e.g. "Id") to
8686	// unconditionally include in API requests. By default, fields with
8687	// empty values are omitted from API requests. However, any non-pointer,
8688	// non-interface field appearing in ForceSendFields will be sent to the
8689	// server regardless of whether the field is empty or not. This may be
8690	// used to include empty fields in Patch requests.
8691	ForceSendFields []string `json:"-"`
8692
8693	// NullFields is a list of field names (e.g. "Id") to include in API
8694	// requests with the JSON null value. By default, fields with empty
8695	// values are omitted from API requests. However, any field with an
8696	// empty value appearing in NullFields will be sent to the server as
8697	// null. It is an error if a field in this list has a non-empty value.
8698	// This may be used to include null fields in Patch requests.
8699	NullFields []string `json:"-"`
8700}
8701
8702func (s *InstanceAggregatedList) MarshalJSON() ([]byte, error) {
8703	type NoMethod InstanceAggregatedList
8704	raw := NoMethod(*s)
8705	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8706}
8707
8708// InstanceAggregatedListWarning: [Output Only] Informational warning
8709// message.
8710type InstanceAggregatedListWarning struct {
8711	// Code: [Output Only] A warning code, if applicable. For example,
8712	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8713	// the response.
8714	//
8715	// Possible values:
8716	//   "CLEANUP_FAILED"
8717	//   "DEPRECATED_RESOURCE_USED"
8718	//   "DEPRECATED_TYPE_USED"
8719	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8720	//   "EXPERIMENTAL_TYPE_USED"
8721	//   "EXTERNAL_API_WARNING"
8722	//   "FIELD_VALUE_OVERRIDEN"
8723	//   "INJECTED_KERNELS_DEPRECATED"
8724	//   "MISSING_TYPE_DEPENDENCY"
8725	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8726	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8727	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8728	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8729	//   "NEXT_HOP_NOT_RUNNING"
8730	//   "NOT_CRITICAL_ERROR"
8731	//   "NO_RESULTS_ON_PAGE"
8732	//   "REQUIRED_TOS_AGREEMENT"
8733	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8734	//   "RESOURCE_NOT_DELETED"
8735	//   "SCHEMA_VALIDATION_IGNORED"
8736	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8737	//   "UNDECLARED_PROPERTIES"
8738	//   "UNREACHABLE"
8739	Code string `json:"code,omitempty"`
8740
8741	// Data: [Output Only] Metadata about this warning in key: value format.
8742	// For example:
8743	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8744	Data []*InstanceAggregatedListWarningData `json:"data,omitempty"`
8745
8746	// Message: [Output Only] A human-readable description of the warning
8747	// code.
8748	Message string `json:"message,omitempty"`
8749
8750	// ForceSendFields is a list of field names (e.g. "Code") to
8751	// unconditionally include in API requests. By default, fields with
8752	// empty values are omitted from API requests. However, any non-pointer,
8753	// non-interface field appearing in ForceSendFields will be sent to the
8754	// server regardless of whether the field is empty or not. This may be
8755	// used to include empty fields in Patch requests.
8756	ForceSendFields []string `json:"-"`
8757
8758	// NullFields is a list of field names (e.g. "Code") to include in API
8759	// requests with the JSON null value. By default, fields with empty
8760	// values are omitted from API requests. However, any field with an
8761	// empty value appearing in NullFields will be sent to the server as
8762	// null. It is an error if a field in this list has a non-empty value.
8763	// This may be used to include null fields in Patch requests.
8764	NullFields []string `json:"-"`
8765}
8766
8767func (s *InstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
8768	type NoMethod InstanceAggregatedListWarning
8769	raw := NoMethod(*s)
8770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8771}
8772
8773type InstanceAggregatedListWarningData struct {
8774	// Key: [Output Only] A key that provides more detail on the warning
8775	// being returned. For example, for warnings where there are no results
8776	// in a list request for a particular zone, this key might be scope and
8777	// the key value might be the zone name. Other examples might be a key
8778	// indicating a deprecated resource and a suggested replacement, or a
8779	// warning about invalid network settings (for example, if an instance
8780	// attempts to perform IP forwarding but is not enabled for IP
8781	// forwarding).
8782	Key string `json:"key,omitempty"`
8783
8784	// Value: [Output Only] A warning data value corresponding to the key.
8785	Value string `json:"value,omitempty"`
8786
8787	// ForceSendFields is a list of field names (e.g. "Key") to
8788	// unconditionally include in API requests. By default, fields with
8789	// empty values are omitted from API requests. However, any non-pointer,
8790	// non-interface field appearing in ForceSendFields will be sent to the
8791	// server regardless of whether the field is empty or not. This may be
8792	// used to include empty fields in Patch requests.
8793	ForceSendFields []string `json:"-"`
8794
8795	// NullFields is a list of field names (e.g. "Key") to include in API
8796	// requests with the JSON null value. By default, fields with empty
8797	// values are omitted from API requests. However, any field with an
8798	// empty value appearing in NullFields will be sent to the server as
8799	// null. It is an error if a field in this list has a non-empty value.
8800	// This may be used to include null fields in Patch requests.
8801	NullFields []string `json:"-"`
8802}
8803
8804func (s *InstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
8805	type NoMethod InstanceAggregatedListWarningData
8806	raw := NoMethod(*s)
8807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8808}
8809
8810// InstanceGroup: InstanceGroups (== resource_for beta.instanceGroups
8811// ==) (== resource_for v1.instanceGroups ==) (== resource_for
8812// beta.regionInstanceGroups ==) (== resource_for
8813// v1.regionInstanceGroups ==)
8814type InstanceGroup struct {
8815	// CreationTimestamp: [Output Only] The creation timestamp for this
8816	// instance group in RFC3339 text format.
8817	CreationTimestamp string `json:"creationTimestamp,omitempty"`
8818
8819	// Description: An optional description of this resource. Provide this
8820	// property when you create the resource.
8821	Description string `json:"description,omitempty"`
8822
8823	// Fingerprint: [Output Only] The fingerprint of the named ports. The
8824	// system uses this fingerprint to detect conflicts when multiple users
8825	// change the named ports concurrently.
8826	Fingerprint string `json:"fingerprint,omitempty"`
8827
8828	// Id: [Output Only] A unique identifier for this instance group,
8829	// generated by the server.
8830	Id uint64 `json:"id,omitempty,string"`
8831
8832	// Kind: [Output Only] The resource type, which is always
8833	// compute#instanceGroup for instance groups.
8834	Kind string `json:"kind,omitempty"`
8835
8836	// Name: The name of the instance group. The name must be 1-63
8837	// characters long, and comply with RFC1035.
8838	Name string `json:"name,omitempty"`
8839
8840	// NamedPorts: Assigns a name to a port number. For example: {name:
8841	// "http", port: 80}
8842	//
8843	// This allows the system to reference ports by the assigned name
8844	// instead of a port number. Named ports can also contain multiple
8845	// ports. For example: [{name: "http", port: 80},{name: "http", port:
8846	// 8080}]
8847	//
8848	// Named ports apply to all instances in this instance group.
8849	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
8850
8851	// Network: The URL of the network to which all instances in the
8852	// instance group belong.
8853	Network string `json:"network,omitempty"`
8854
8855	// Region: The URL of the region where the instance group is located
8856	// (for regional resources).
8857	Region string `json:"region,omitempty"`
8858
8859	// SelfLink: [Output Only] The URL for this instance group. The server
8860	// generates this URL.
8861	SelfLink string `json:"selfLink,omitempty"`
8862
8863	// Size: [Output Only] The total number of instances in the instance
8864	// group.
8865	Size int64 `json:"size,omitempty"`
8866
8867	// Subnetwork: The URL of the subnetwork to which all instances in the
8868	// instance group belong.
8869	Subnetwork string `json:"subnetwork,omitempty"`
8870
8871	// Zone: [Output Only] The URL of the zone where the instance group is
8872	// located (for zonal resources).
8873	Zone string `json:"zone,omitempty"`
8874
8875	// ServerResponse contains the HTTP response code and headers from the
8876	// server.
8877	googleapi.ServerResponse `json:"-"`
8878
8879	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
8880	// to unconditionally include in API requests. By default, fields with
8881	// empty values are omitted from API requests. However, any non-pointer,
8882	// non-interface field appearing in ForceSendFields will be sent to the
8883	// server regardless of whether the field is empty or not. This may be
8884	// used to include empty fields in Patch requests.
8885	ForceSendFields []string `json:"-"`
8886
8887	// NullFields is a list of field names (e.g. "CreationTimestamp") to
8888	// include in API requests with the JSON null value. By default, fields
8889	// with empty values are omitted from API requests. However, any field
8890	// with an empty value appearing in NullFields will be sent to the
8891	// server as null. It is an error if a field in this list has a
8892	// non-empty value. This may be used to include null fields in Patch
8893	// requests.
8894	NullFields []string `json:"-"`
8895}
8896
8897func (s *InstanceGroup) MarshalJSON() ([]byte, error) {
8898	type NoMethod InstanceGroup
8899	raw := NoMethod(*s)
8900	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8901}
8902
8903type InstanceGroupAggregatedList struct {
8904	// Id: [Output Only] Unique identifier for the resource; defined by the
8905	// server.
8906	Id string `json:"id,omitempty"`
8907
8908	// Items: A list of InstanceGroupsScopedList resources.
8909	Items map[string]InstanceGroupsScopedList `json:"items,omitempty"`
8910
8911	// Kind: [Output Only] The resource type, which is always
8912	// compute#instanceGroupAggregatedList for aggregated lists of instance
8913	// groups.
8914	Kind string `json:"kind,omitempty"`
8915
8916	// NextPageToken: [Output Only] This token allows you to get the next
8917	// page of results for list requests. If the number of results is larger
8918	// than maxResults, use the nextPageToken as a value for the query
8919	// parameter pageToken in the next list request. Subsequent list
8920	// requests will have their own nextPageToken to continue paging through
8921	// the results.
8922	NextPageToken string `json:"nextPageToken,omitempty"`
8923
8924	// SelfLink: [Output Only] Server-defined URL for this resource.
8925	SelfLink string `json:"selfLink,omitempty"`
8926
8927	// Warning: [Output Only] Informational warning message.
8928	Warning *InstanceGroupAggregatedListWarning `json:"warning,omitempty"`
8929
8930	// ServerResponse contains the HTTP response code and headers from the
8931	// server.
8932	googleapi.ServerResponse `json:"-"`
8933
8934	// ForceSendFields is a list of field names (e.g. "Id") to
8935	// unconditionally include in API requests. By default, fields with
8936	// empty values are omitted from API requests. However, any non-pointer,
8937	// non-interface field appearing in ForceSendFields will be sent to the
8938	// server regardless of whether the field is empty or not. This may be
8939	// used to include empty fields in Patch requests.
8940	ForceSendFields []string `json:"-"`
8941
8942	// NullFields is a list of field names (e.g. "Id") to include in API
8943	// requests with the JSON null value. By default, fields with empty
8944	// values are omitted from API requests. However, any field with an
8945	// empty value appearing in NullFields will be sent to the server as
8946	// null. It is an error if a field in this list has a non-empty value.
8947	// This may be used to include null fields in Patch requests.
8948	NullFields []string `json:"-"`
8949}
8950
8951func (s *InstanceGroupAggregatedList) MarshalJSON() ([]byte, error) {
8952	type NoMethod InstanceGroupAggregatedList
8953	raw := NoMethod(*s)
8954	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8955}
8956
8957// InstanceGroupAggregatedListWarning: [Output Only] Informational
8958// warning message.
8959type InstanceGroupAggregatedListWarning struct {
8960	// Code: [Output Only] A warning code, if applicable. For example,
8961	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8962	// the response.
8963	//
8964	// Possible values:
8965	//   "CLEANUP_FAILED"
8966	//   "DEPRECATED_RESOURCE_USED"
8967	//   "DEPRECATED_TYPE_USED"
8968	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8969	//   "EXPERIMENTAL_TYPE_USED"
8970	//   "EXTERNAL_API_WARNING"
8971	//   "FIELD_VALUE_OVERRIDEN"
8972	//   "INJECTED_KERNELS_DEPRECATED"
8973	//   "MISSING_TYPE_DEPENDENCY"
8974	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8975	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8976	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8977	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8978	//   "NEXT_HOP_NOT_RUNNING"
8979	//   "NOT_CRITICAL_ERROR"
8980	//   "NO_RESULTS_ON_PAGE"
8981	//   "REQUIRED_TOS_AGREEMENT"
8982	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8983	//   "RESOURCE_NOT_DELETED"
8984	//   "SCHEMA_VALIDATION_IGNORED"
8985	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8986	//   "UNDECLARED_PROPERTIES"
8987	//   "UNREACHABLE"
8988	Code string `json:"code,omitempty"`
8989
8990	// Data: [Output Only] Metadata about this warning in key: value format.
8991	// For example:
8992	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8993	Data []*InstanceGroupAggregatedListWarningData `json:"data,omitempty"`
8994
8995	// Message: [Output Only] A human-readable description of the warning
8996	// code.
8997	Message string `json:"message,omitempty"`
8998
8999	// ForceSendFields is a list of field names (e.g. "Code") to
9000	// unconditionally include in API requests. By default, fields with
9001	// empty values are omitted from API requests. However, any non-pointer,
9002	// non-interface field appearing in ForceSendFields will be sent to the
9003	// server regardless of whether the field is empty or not. This may be
9004	// used to include empty fields in Patch requests.
9005	ForceSendFields []string `json:"-"`
9006
9007	// NullFields is a list of field names (e.g. "Code") to include in API
9008	// requests with the JSON null value. By default, fields with empty
9009	// values are omitted from API requests. However, any field with an
9010	// empty value appearing in NullFields will be sent to the server as
9011	// null. It is an error if a field in this list has a non-empty value.
9012	// This may be used to include null fields in Patch requests.
9013	NullFields []string `json:"-"`
9014}
9015
9016func (s *InstanceGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
9017	type NoMethod InstanceGroupAggregatedListWarning
9018	raw := NoMethod(*s)
9019	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9020}
9021
9022type InstanceGroupAggregatedListWarningData struct {
9023	// Key: [Output Only] A key that provides more detail on the warning
9024	// being returned. For example, for warnings where there are no results
9025	// in a list request for a particular zone, this key might be scope and
9026	// the key value might be the zone name. Other examples might be a key
9027	// indicating a deprecated resource and a suggested replacement, or a
9028	// warning about invalid network settings (for example, if an instance
9029	// attempts to perform IP forwarding but is not enabled for IP
9030	// forwarding).
9031	Key string `json:"key,omitempty"`
9032
9033	// Value: [Output Only] A warning data value corresponding to the key.
9034	Value string `json:"value,omitempty"`
9035
9036	// ForceSendFields is a list of field names (e.g. "Key") to
9037	// unconditionally include in API requests. By default, fields with
9038	// empty values are omitted from API requests. However, any non-pointer,
9039	// non-interface field appearing in ForceSendFields will be sent to the
9040	// server regardless of whether the field is empty or not. This may be
9041	// used to include empty fields in Patch requests.
9042	ForceSendFields []string `json:"-"`
9043
9044	// NullFields is a list of field names (e.g. "Key") to include in API
9045	// requests with the JSON null value. By default, fields with empty
9046	// values are omitted from API requests. However, any field with an
9047	// empty value appearing in NullFields will be sent to the server as
9048	// null. It is an error if a field in this list has a non-empty value.
9049	// This may be used to include null fields in Patch requests.
9050	NullFields []string `json:"-"`
9051}
9052
9053func (s *InstanceGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
9054	type NoMethod InstanceGroupAggregatedListWarningData
9055	raw := NoMethod(*s)
9056	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9057}
9058
9059// InstanceGroupList: A list of InstanceGroup resources.
9060type InstanceGroupList struct {
9061	// Id: [Output Only] Unique identifier for the resource; defined by the
9062	// server.
9063	Id string `json:"id,omitempty"`
9064
9065	// Items: A list of InstanceGroup resources.
9066	Items []*InstanceGroup `json:"items,omitempty"`
9067
9068	// Kind: [Output Only] The resource type, which is always
9069	// compute#instanceGroupList for instance group lists.
9070	Kind string `json:"kind,omitempty"`
9071
9072	// NextPageToken: [Output Only] This token allows you to get the next
9073	// page of results for list requests. If the number of results is larger
9074	// than maxResults, use the nextPageToken as a value for the query
9075	// parameter pageToken in the next list request. Subsequent list
9076	// requests will have their own nextPageToken to continue paging through
9077	// the results.
9078	NextPageToken string `json:"nextPageToken,omitempty"`
9079
9080	// SelfLink: [Output Only] Server-defined URL for this resource.
9081	SelfLink string `json:"selfLink,omitempty"`
9082
9083	// Warning: [Output Only] Informational warning message.
9084	Warning *InstanceGroupListWarning `json:"warning,omitempty"`
9085
9086	// ServerResponse contains the HTTP response code and headers from the
9087	// server.
9088	googleapi.ServerResponse `json:"-"`
9089
9090	// ForceSendFields is a list of field names (e.g. "Id") to
9091	// unconditionally include in API requests. By default, fields with
9092	// empty values are omitted from API requests. However, any non-pointer,
9093	// non-interface field appearing in ForceSendFields will be sent to the
9094	// server regardless of whether the field is empty or not. This may be
9095	// used to include empty fields in Patch requests.
9096	ForceSendFields []string `json:"-"`
9097
9098	// NullFields is a list of field names (e.g. "Id") to include in API
9099	// requests with the JSON null value. By default, fields with empty
9100	// values are omitted from API requests. However, any field with an
9101	// empty value appearing in NullFields will be sent to the server as
9102	// null. It is an error if a field in this list has a non-empty value.
9103	// This may be used to include null fields in Patch requests.
9104	NullFields []string `json:"-"`
9105}
9106
9107func (s *InstanceGroupList) MarshalJSON() ([]byte, error) {
9108	type NoMethod InstanceGroupList
9109	raw := NoMethod(*s)
9110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9111}
9112
9113// InstanceGroupListWarning: [Output Only] Informational warning
9114// message.
9115type InstanceGroupListWarning struct {
9116	// Code: [Output Only] A warning code, if applicable. For example,
9117	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9118	// the response.
9119	//
9120	// Possible values:
9121	//   "CLEANUP_FAILED"
9122	//   "DEPRECATED_RESOURCE_USED"
9123	//   "DEPRECATED_TYPE_USED"
9124	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9125	//   "EXPERIMENTAL_TYPE_USED"
9126	//   "EXTERNAL_API_WARNING"
9127	//   "FIELD_VALUE_OVERRIDEN"
9128	//   "INJECTED_KERNELS_DEPRECATED"
9129	//   "MISSING_TYPE_DEPENDENCY"
9130	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9131	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9132	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9133	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9134	//   "NEXT_HOP_NOT_RUNNING"
9135	//   "NOT_CRITICAL_ERROR"
9136	//   "NO_RESULTS_ON_PAGE"
9137	//   "REQUIRED_TOS_AGREEMENT"
9138	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9139	//   "RESOURCE_NOT_DELETED"
9140	//   "SCHEMA_VALIDATION_IGNORED"
9141	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9142	//   "UNDECLARED_PROPERTIES"
9143	//   "UNREACHABLE"
9144	Code string `json:"code,omitempty"`
9145
9146	// Data: [Output Only] Metadata about this warning in key: value format.
9147	// For example:
9148	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9149	Data []*InstanceGroupListWarningData `json:"data,omitempty"`
9150
9151	// Message: [Output Only] A human-readable description of the warning
9152	// code.
9153	Message string `json:"message,omitempty"`
9154
9155	// ForceSendFields is a list of field names (e.g. "Code") to
9156	// unconditionally include in API requests. By default, fields with
9157	// empty values are omitted from API requests. However, any non-pointer,
9158	// non-interface field appearing in ForceSendFields will be sent to the
9159	// server regardless of whether the field is empty or not. This may be
9160	// used to include empty fields in Patch requests.
9161	ForceSendFields []string `json:"-"`
9162
9163	// NullFields is a list of field names (e.g. "Code") to include in API
9164	// requests with the JSON null value. By default, fields with empty
9165	// values are omitted from API requests. However, any field with an
9166	// empty value appearing in NullFields will be sent to the server as
9167	// null. It is an error if a field in this list has a non-empty value.
9168	// This may be used to include null fields in Patch requests.
9169	NullFields []string `json:"-"`
9170}
9171
9172func (s *InstanceGroupListWarning) MarshalJSON() ([]byte, error) {
9173	type NoMethod InstanceGroupListWarning
9174	raw := NoMethod(*s)
9175	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9176}
9177
9178type InstanceGroupListWarningData struct {
9179	// Key: [Output Only] A key that provides more detail on the warning
9180	// being returned. For example, for warnings where there are no results
9181	// in a list request for a particular zone, this key might be scope and
9182	// the key value might be the zone name. Other examples might be a key
9183	// indicating a deprecated resource and a suggested replacement, or a
9184	// warning about invalid network settings (for example, if an instance
9185	// attempts to perform IP forwarding but is not enabled for IP
9186	// forwarding).
9187	Key string `json:"key,omitempty"`
9188
9189	// Value: [Output Only] A warning data value corresponding to the key.
9190	Value string `json:"value,omitempty"`
9191
9192	// ForceSendFields is a list of field names (e.g. "Key") to
9193	// unconditionally include in API requests. By default, fields with
9194	// empty values are omitted from API requests. However, any non-pointer,
9195	// non-interface field appearing in ForceSendFields will be sent to the
9196	// server regardless of whether the field is empty or not. This may be
9197	// used to include empty fields in Patch requests.
9198	ForceSendFields []string `json:"-"`
9199
9200	// NullFields is a list of field names (e.g. "Key") to include in API
9201	// requests with the JSON null value. By default, fields with empty
9202	// values are omitted from API requests. However, any field with an
9203	// empty value appearing in NullFields will be sent to the server as
9204	// null. It is an error if a field in this list has a non-empty value.
9205	// This may be used to include null fields in Patch requests.
9206	NullFields []string `json:"-"`
9207}
9208
9209func (s *InstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
9210	type NoMethod InstanceGroupListWarningData
9211	raw := NoMethod(*s)
9212	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9213}
9214
9215// InstanceGroupManager: An Instance Group Manager resource. (==
9216// resource_for beta.instanceGroupManagers ==) (== resource_for
9217// v1.instanceGroupManagers ==) (== resource_for
9218// beta.regionInstanceGroupManagers ==) (== resource_for
9219// v1.regionInstanceGroupManagers ==)
9220type InstanceGroupManager struct {
9221	// BaseInstanceName: The base instance name to use for instances in this
9222	// group. The value must be 1-58 characters long. Instances are named by
9223	// appending a hyphen and a random four-character string to the base
9224	// instance name. The base instance name must comply with RFC1035.
9225	BaseInstanceName string `json:"baseInstanceName,omitempty"`
9226
9227	// CreationTimestamp: [Output Only] The creation timestamp for this
9228	// managed instance group in RFC3339 text format.
9229	CreationTimestamp string `json:"creationTimestamp,omitempty"`
9230
9231	// CurrentActions: [Output Only] The list of instance actions and the
9232	// number of instances in this managed instance group that are scheduled
9233	// for each of those actions.
9234	CurrentActions *InstanceGroupManagerActionsSummary `json:"currentActions,omitempty"`
9235
9236	// Description: An optional description of this resource. Provide this
9237	// property when you create the resource.
9238	Description string `json:"description,omitempty"`
9239
9240	// Fingerprint: [Output Only] The fingerprint of the resource data. You
9241	// can use this optional field for optimistic locking when you update
9242	// the resource.
9243	Fingerprint string `json:"fingerprint,omitempty"`
9244
9245	// Id: [Output Only] A unique identifier for this resource type. The
9246	// server generates this identifier.
9247	Id uint64 `json:"id,omitempty,string"`
9248
9249	// InstanceGroup: [Output Only] The URL of the Instance Group resource.
9250	InstanceGroup string `json:"instanceGroup,omitempty"`
9251
9252	// InstanceTemplate: The URL of the instance template that is specified
9253	// for this managed instance group. The group uses this template to
9254	// create all new instances in the managed instance group.
9255	InstanceTemplate string `json:"instanceTemplate,omitempty"`
9256
9257	// Kind: [Output Only] The resource type, which is always
9258	// compute#instanceGroupManager for managed instance groups.
9259	Kind string `json:"kind,omitempty"`
9260
9261	// Name: The name of the managed instance group. The name must be 1-63
9262	// characters long, and comply with RFC1035.
9263	Name string `json:"name,omitempty"`
9264
9265	// NamedPorts: Named ports configured for the Instance Groups
9266	// complementary to this Instance Group Manager.
9267	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
9268
9269	// Region: [Output Only] The URL of the region where the managed
9270	// instance group resides (for regional resources).
9271	Region string `json:"region,omitempty"`
9272
9273	// SelfLink: [Output Only] The URL for this managed instance group. The
9274	// server defines this URL.
9275	SelfLink string `json:"selfLink,omitempty"`
9276
9277	// TargetPools: The URLs for all TargetPool resources to which instances
9278	// in the instanceGroup field are added. The target pools automatically
9279	// apply to all of the instances in the managed instance group.
9280	TargetPools []string `json:"targetPools,omitempty"`
9281
9282	// TargetSize: The target number of running instances for this managed
9283	// instance group. Deleting or abandoning instances reduces this number.
9284	// Resizing the group changes this number.
9285	TargetSize int64 `json:"targetSize,omitempty"`
9286
9287	// Zone: [Output Only] The URL of the zone where the managed instance
9288	// group is located (for zonal resources).
9289	Zone string `json:"zone,omitempty"`
9290
9291	// ServerResponse contains the HTTP response code and headers from the
9292	// server.
9293	googleapi.ServerResponse `json:"-"`
9294
9295	// ForceSendFields is a list of field names (e.g. "BaseInstanceName") to
9296	// unconditionally include in API requests. By default, fields with
9297	// empty values are omitted from API requests. However, any non-pointer,
9298	// non-interface field appearing in ForceSendFields will be sent to the
9299	// server regardless of whether the field is empty or not. This may be
9300	// used to include empty fields in Patch requests.
9301	ForceSendFields []string `json:"-"`
9302
9303	// NullFields is a list of field names (e.g. "BaseInstanceName") to
9304	// include in API requests with the JSON null value. By default, fields
9305	// with empty values are omitted from API requests. However, any field
9306	// with an empty value appearing in NullFields will be sent to the
9307	// server as null. It is an error if a field in this list has a
9308	// non-empty value. This may be used to include null fields in Patch
9309	// requests.
9310	NullFields []string `json:"-"`
9311}
9312
9313func (s *InstanceGroupManager) MarshalJSON() ([]byte, error) {
9314	type NoMethod InstanceGroupManager
9315	raw := NoMethod(*s)
9316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9317}
9318
9319type InstanceGroupManagerActionsSummary struct {
9320	// Abandoning: [Output Only] The total number of instances in the
9321	// managed instance group that are scheduled to be abandoned. Abandoning
9322	// an instance removes it from the managed instance group without
9323	// deleting it.
9324	Abandoning int64 `json:"abandoning,omitempty"`
9325
9326	// Creating: [Output Only] The number of instances in the managed
9327	// instance group that are scheduled to be created or are currently
9328	// being created. If the group fails to create any of these instances,
9329	// it tries again until it creates the instance successfully.
9330	//
9331	// If you have disabled creation retries, this field will not be
9332	// populated; instead, the creatingWithoutRetries field will be
9333	// populated.
9334	Creating int64 `json:"creating,omitempty"`
9335
9336	// CreatingWithoutRetries: [Output Only] The number of instances that
9337	// the managed instance group will attempt to create. The group attempts
9338	// to create each instance only once. If the group fails to create any
9339	// of these instances, it decreases the group's targetSize value
9340	// accordingly.
9341	CreatingWithoutRetries int64 `json:"creatingWithoutRetries,omitempty"`
9342
9343	// Deleting: [Output Only] The number of instances in the managed
9344	// instance group that are scheduled to be deleted or are currently
9345	// being deleted.
9346	Deleting int64 `json:"deleting,omitempty"`
9347
9348	// None: [Output Only] The number of instances in the managed instance
9349	// group that are running and have no scheduled actions.
9350	None int64 `json:"none,omitempty"`
9351
9352	// Recreating: [Output Only] The number of instances in the managed
9353	// instance group that are scheduled to be recreated or are currently
9354	// being being recreated. Recreating an instance deletes the existing
9355	// root persistent disk and creates a new disk from the image that is
9356	// defined in the instance template.
9357	Recreating int64 `json:"recreating,omitempty"`
9358
9359	// Refreshing: [Output Only] The number of instances in the managed
9360	// instance group that are being reconfigured with properties that do
9361	// not require a restart or a recreate action. For example, setting or
9362	// removing target pools for the instance.
9363	Refreshing int64 `json:"refreshing,omitempty"`
9364
9365	// Restarting: [Output Only] The number of instances in the managed
9366	// instance group that are scheduled to be restarted or are currently
9367	// being restarted.
9368	Restarting int64 `json:"restarting,omitempty"`
9369
9370	// ForceSendFields is a list of field names (e.g. "Abandoning") to
9371	// unconditionally include in API requests. By default, fields with
9372	// empty values are omitted from API requests. However, any non-pointer,
9373	// non-interface field appearing in ForceSendFields will be sent to the
9374	// server regardless of whether the field is empty or not. This may be
9375	// used to include empty fields in Patch requests.
9376	ForceSendFields []string `json:"-"`
9377
9378	// NullFields is a list of field names (e.g. "Abandoning") to include in
9379	// API requests with the JSON null value. By default, fields with empty
9380	// values are omitted from API requests. However, any field with an
9381	// empty value appearing in NullFields will be sent to the server as
9382	// null. It is an error if a field in this list has a non-empty value.
9383	// This may be used to include null fields in Patch requests.
9384	NullFields []string `json:"-"`
9385}
9386
9387func (s *InstanceGroupManagerActionsSummary) MarshalJSON() ([]byte, error) {
9388	type NoMethod InstanceGroupManagerActionsSummary
9389	raw := NoMethod(*s)
9390	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9391}
9392
9393type InstanceGroupManagerAggregatedList struct {
9394	// Id: [Output Only] Unique identifier for the resource; defined by the
9395	// server.
9396	Id string `json:"id,omitempty"`
9397
9398	// Items: A list of InstanceGroupManagersScopedList resources.
9399	Items map[string]InstanceGroupManagersScopedList `json:"items,omitempty"`
9400
9401	// Kind: [Output Only] The resource type, which is always
9402	// compute#instanceGroupManagerAggregatedList for an aggregated list of
9403	// managed instance groups.
9404	Kind string `json:"kind,omitempty"`
9405
9406	// NextPageToken: [Output Only] This token allows you to get the next
9407	// page of results for list requests. If the number of results is larger
9408	// than maxResults, use the nextPageToken as a value for the query
9409	// parameter pageToken in the next list request. Subsequent list
9410	// requests will have their own nextPageToken to continue paging through
9411	// the results.
9412	NextPageToken string `json:"nextPageToken,omitempty"`
9413
9414	// SelfLink: [Output Only] Server-defined URL for this resource.
9415	SelfLink string `json:"selfLink,omitempty"`
9416
9417	// Warning: [Output Only] Informational warning message.
9418	Warning *InstanceGroupManagerAggregatedListWarning `json:"warning,omitempty"`
9419
9420	// ServerResponse contains the HTTP response code and headers from the
9421	// server.
9422	googleapi.ServerResponse `json:"-"`
9423
9424	// ForceSendFields is a list of field names (e.g. "Id") to
9425	// unconditionally include in API requests. By default, fields with
9426	// empty values are omitted from API requests. However, any non-pointer,
9427	// non-interface field appearing in ForceSendFields will be sent to the
9428	// server regardless of whether the field is empty or not. This may be
9429	// used to include empty fields in Patch requests.
9430	ForceSendFields []string `json:"-"`
9431
9432	// NullFields is a list of field names (e.g. "Id") to include in API
9433	// requests with the JSON null value. By default, fields with empty
9434	// values are omitted from API requests. However, any field with an
9435	// empty value appearing in NullFields will be sent to the server as
9436	// null. It is an error if a field in this list has a non-empty value.
9437	// This may be used to include null fields in Patch requests.
9438	NullFields []string `json:"-"`
9439}
9440
9441func (s *InstanceGroupManagerAggregatedList) MarshalJSON() ([]byte, error) {
9442	type NoMethod InstanceGroupManagerAggregatedList
9443	raw := NoMethod(*s)
9444	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9445}
9446
9447// InstanceGroupManagerAggregatedListWarning: [Output Only]
9448// Informational warning message.
9449type InstanceGroupManagerAggregatedListWarning struct {
9450	// Code: [Output Only] A warning code, if applicable. For example,
9451	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9452	// the response.
9453	//
9454	// Possible values:
9455	//   "CLEANUP_FAILED"
9456	//   "DEPRECATED_RESOURCE_USED"
9457	//   "DEPRECATED_TYPE_USED"
9458	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9459	//   "EXPERIMENTAL_TYPE_USED"
9460	//   "EXTERNAL_API_WARNING"
9461	//   "FIELD_VALUE_OVERRIDEN"
9462	//   "INJECTED_KERNELS_DEPRECATED"
9463	//   "MISSING_TYPE_DEPENDENCY"
9464	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9465	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9466	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9467	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9468	//   "NEXT_HOP_NOT_RUNNING"
9469	//   "NOT_CRITICAL_ERROR"
9470	//   "NO_RESULTS_ON_PAGE"
9471	//   "REQUIRED_TOS_AGREEMENT"
9472	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9473	//   "RESOURCE_NOT_DELETED"
9474	//   "SCHEMA_VALIDATION_IGNORED"
9475	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9476	//   "UNDECLARED_PROPERTIES"
9477	//   "UNREACHABLE"
9478	Code string `json:"code,omitempty"`
9479
9480	// Data: [Output Only] Metadata about this warning in key: value format.
9481	// For example:
9482	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9483	Data []*InstanceGroupManagerAggregatedListWarningData `json:"data,omitempty"`
9484
9485	// Message: [Output Only] A human-readable description of the warning
9486	// code.
9487	Message string `json:"message,omitempty"`
9488
9489	// ForceSendFields is a list of field names (e.g. "Code") to
9490	// unconditionally include in API requests. By default, fields with
9491	// empty values are omitted from API requests. However, any non-pointer,
9492	// non-interface field appearing in ForceSendFields will be sent to the
9493	// server regardless of whether the field is empty or not. This may be
9494	// used to include empty fields in Patch requests.
9495	ForceSendFields []string `json:"-"`
9496
9497	// NullFields is a list of field names (e.g. "Code") to include in API
9498	// requests with the JSON null value. By default, fields with empty
9499	// values are omitted from API requests. However, any field with an
9500	// empty value appearing in NullFields will be sent to the server as
9501	// null. It is an error if a field in this list has a non-empty value.
9502	// This may be used to include null fields in Patch requests.
9503	NullFields []string `json:"-"`
9504}
9505
9506func (s *InstanceGroupManagerAggregatedListWarning) MarshalJSON() ([]byte, error) {
9507	type NoMethod InstanceGroupManagerAggregatedListWarning
9508	raw := NoMethod(*s)
9509	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9510}
9511
9512type InstanceGroupManagerAggregatedListWarningData struct {
9513	// Key: [Output Only] A key that provides more detail on the warning
9514	// being returned. For example, for warnings where there are no results
9515	// in a list request for a particular zone, this key might be scope and
9516	// the key value might be the zone name. Other examples might be a key
9517	// indicating a deprecated resource and a suggested replacement, or a
9518	// warning about invalid network settings (for example, if an instance
9519	// attempts to perform IP forwarding but is not enabled for IP
9520	// forwarding).
9521	Key string `json:"key,omitempty"`
9522
9523	// Value: [Output Only] A warning data value corresponding to the key.
9524	Value string `json:"value,omitempty"`
9525
9526	// ForceSendFields is a list of field names (e.g. "Key") to
9527	// unconditionally include in API requests. By default, fields with
9528	// empty values are omitted from API requests. However, any non-pointer,
9529	// non-interface field appearing in ForceSendFields will be sent to the
9530	// server regardless of whether the field is empty or not. This may be
9531	// used to include empty fields in Patch requests.
9532	ForceSendFields []string `json:"-"`
9533
9534	// NullFields is a list of field names (e.g. "Key") to include in API
9535	// requests with the JSON null value. By default, fields with empty
9536	// values are omitted from API requests. However, any field with an
9537	// empty value appearing in NullFields will be sent to the server as
9538	// null. It is an error if a field in this list has a non-empty value.
9539	// This may be used to include null fields in Patch requests.
9540	NullFields []string `json:"-"`
9541}
9542
9543func (s *InstanceGroupManagerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
9544	type NoMethod InstanceGroupManagerAggregatedListWarningData
9545	raw := NoMethod(*s)
9546	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9547}
9548
9549// InstanceGroupManagerList: [Output Only] A list of managed instance
9550// groups.
9551type InstanceGroupManagerList struct {
9552	// Id: [Output Only] Unique identifier for the resource; defined by the
9553	// server.
9554	Id string `json:"id,omitempty"`
9555
9556	// Items: A list of InstanceGroupManager resources.
9557	Items []*InstanceGroupManager `json:"items,omitempty"`
9558
9559	// Kind: [Output Only] The resource type, which is always
9560	// compute#instanceGroupManagerList for a list of managed instance
9561	// groups.
9562	Kind string `json:"kind,omitempty"`
9563
9564	// NextPageToken: [Output Only] This token allows you to get the next
9565	// page of results for list requests. If the number of results is larger
9566	// than maxResults, use the nextPageToken as a value for the query
9567	// parameter pageToken in the next list request. Subsequent list
9568	// requests will have their own nextPageToken to continue paging through
9569	// the results.
9570	NextPageToken string `json:"nextPageToken,omitempty"`
9571
9572	// SelfLink: [Output Only] Server-defined URL for this resource.
9573	SelfLink string `json:"selfLink,omitempty"`
9574
9575	// Warning: [Output Only] Informational warning message.
9576	Warning *InstanceGroupManagerListWarning `json:"warning,omitempty"`
9577
9578	// ServerResponse contains the HTTP response code and headers from the
9579	// server.
9580	googleapi.ServerResponse `json:"-"`
9581
9582	// ForceSendFields is a list of field names (e.g. "Id") to
9583	// unconditionally include in API requests. By default, fields with
9584	// empty values are omitted from API requests. However, any non-pointer,
9585	// non-interface field appearing in ForceSendFields will be sent to the
9586	// server regardless of whether the field is empty or not. This may be
9587	// used to include empty fields in Patch requests.
9588	ForceSendFields []string `json:"-"`
9589
9590	// NullFields is a list of field names (e.g. "Id") to include in API
9591	// requests with the JSON null value. By default, fields with empty
9592	// values are omitted from API requests. However, any field with an
9593	// empty value appearing in NullFields will be sent to the server as
9594	// null. It is an error if a field in this list has a non-empty value.
9595	// This may be used to include null fields in Patch requests.
9596	NullFields []string `json:"-"`
9597}
9598
9599func (s *InstanceGroupManagerList) MarshalJSON() ([]byte, error) {
9600	type NoMethod InstanceGroupManagerList
9601	raw := NoMethod(*s)
9602	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9603}
9604
9605// InstanceGroupManagerListWarning: [Output Only] Informational warning
9606// message.
9607type InstanceGroupManagerListWarning struct {
9608	// Code: [Output Only] A warning code, if applicable. For example,
9609	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9610	// the response.
9611	//
9612	// Possible values:
9613	//   "CLEANUP_FAILED"
9614	//   "DEPRECATED_RESOURCE_USED"
9615	//   "DEPRECATED_TYPE_USED"
9616	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9617	//   "EXPERIMENTAL_TYPE_USED"
9618	//   "EXTERNAL_API_WARNING"
9619	//   "FIELD_VALUE_OVERRIDEN"
9620	//   "INJECTED_KERNELS_DEPRECATED"
9621	//   "MISSING_TYPE_DEPENDENCY"
9622	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9623	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9624	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9625	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9626	//   "NEXT_HOP_NOT_RUNNING"
9627	//   "NOT_CRITICAL_ERROR"
9628	//   "NO_RESULTS_ON_PAGE"
9629	//   "REQUIRED_TOS_AGREEMENT"
9630	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9631	//   "RESOURCE_NOT_DELETED"
9632	//   "SCHEMA_VALIDATION_IGNORED"
9633	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9634	//   "UNDECLARED_PROPERTIES"
9635	//   "UNREACHABLE"
9636	Code string `json:"code,omitempty"`
9637
9638	// Data: [Output Only] Metadata about this warning in key: value format.
9639	// For example:
9640	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9641	Data []*InstanceGroupManagerListWarningData `json:"data,omitempty"`
9642
9643	// Message: [Output Only] A human-readable description of the warning
9644	// code.
9645	Message string `json:"message,omitempty"`
9646
9647	// ForceSendFields is a list of field names (e.g. "Code") to
9648	// unconditionally include in API requests. By default, fields with
9649	// empty values are omitted from API requests. However, any non-pointer,
9650	// non-interface field appearing in ForceSendFields will be sent to the
9651	// server regardless of whether the field is empty or not. This may be
9652	// used to include empty fields in Patch requests.
9653	ForceSendFields []string `json:"-"`
9654
9655	// NullFields is a list of field names (e.g. "Code") to include in API
9656	// requests with the JSON null value. By default, fields with empty
9657	// values are omitted from API requests. However, any field with an
9658	// empty value appearing in NullFields will be sent to the server as
9659	// null. It is an error if a field in this list has a non-empty value.
9660	// This may be used to include null fields in Patch requests.
9661	NullFields []string `json:"-"`
9662}
9663
9664func (s *InstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
9665	type NoMethod InstanceGroupManagerListWarning
9666	raw := NoMethod(*s)
9667	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9668}
9669
9670type InstanceGroupManagerListWarningData struct {
9671	// Key: [Output Only] A key that provides more detail on the warning
9672	// being returned. For example, for warnings where there are no results
9673	// in a list request for a particular zone, this key might be scope and
9674	// the key value might be the zone name. Other examples might be a key
9675	// indicating a deprecated resource and a suggested replacement, or a
9676	// warning about invalid network settings (for example, if an instance
9677	// attempts to perform IP forwarding but is not enabled for IP
9678	// forwarding).
9679	Key string `json:"key,omitempty"`
9680
9681	// Value: [Output Only] A warning data value corresponding to the key.
9682	Value string `json:"value,omitempty"`
9683
9684	// ForceSendFields is a list of field names (e.g. "Key") to
9685	// unconditionally include in API requests. By default, fields with
9686	// empty values are omitted from API requests. However, any non-pointer,
9687	// non-interface field appearing in ForceSendFields will be sent to the
9688	// server regardless of whether the field is empty or not. This may be
9689	// used to include empty fields in Patch requests.
9690	ForceSendFields []string `json:"-"`
9691
9692	// NullFields is a list of field names (e.g. "Key") to include in API
9693	// requests with the JSON null value. By default, fields with empty
9694	// values are omitted from API requests. However, any field with an
9695	// empty value appearing in NullFields will be sent to the server as
9696	// null. It is an error if a field in this list has a non-empty value.
9697	// This may be used to include null fields in Patch requests.
9698	NullFields []string `json:"-"`
9699}
9700
9701func (s *InstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
9702	type NoMethod InstanceGroupManagerListWarningData
9703	raw := NoMethod(*s)
9704	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9705}
9706
9707type InstanceGroupManagersAbandonInstancesRequest struct {
9708	// Instances: The URLs of one or more instances to abandon. This can be
9709	// a full URL or a partial URL, such as
9710	// zones/[ZONE]/instances/[INSTANCE_NAME].
9711	Instances []string `json:"instances,omitempty"`
9712
9713	// ForceSendFields is a list of field names (e.g. "Instances") to
9714	// unconditionally include in API requests. By default, fields with
9715	// empty values are omitted from API requests. However, any non-pointer,
9716	// non-interface field appearing in ForceSendFields will be sent to the
9717	// server regardless of whether the field is empty or not. This may be
9718	// used to include empty fields in Patch requests.
9719	ForceSendFields []string `json:"-"`
9720
9721	// NullFields is a list of field names (e.g. "Instances") to include in
9722	// API requests with the JSON null value. By default, fields with empty
9723	// values are omitted from API requests. However, any field with an
9724	// empty value appearing in NullFields will be sent to the server as
9725	// null. It is an error if a field in this list has a non-empty value.
9726	// This may be used to include null fields in Patch requests.
9727	NullFields []string `json:"-"`
9728}
9729
9730func (s *InstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
9731	type NoMethod InstanceGroupManagersAbandonInstancesRequest
9732	raw := NoMethod(*s)
9733	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9734}
9735
9736type InstanceGroupManagersDeleteInstancesRequest struct {
9737	// Instances: The URLs of one or more instances to delete. This can be a
9738	// full URL or a partial URL, such as
9739	// zones/[ZONE]/instances/[INSTANCE_NAME].
9740	Instances []string `json:"instances,omitempty"`
9741
9742	// ForceSendFields is a list of field names (e.g. "Instances") to
9743	// unconditionally include in API requests. By default, fields with
9744	// empty values are omitted from API requests. However, any non-pointer,
9745	// non-interface field appearing in ForceSendFields will be sent to the
9746	// server regardless of whether the field is empty or not. This may be
9747	// used to include empty fields in Patch requests.
9748	ForceSendFields []string `json:"-"`
9749
9750	// NullFields is a list of field names (e.g. "Instances") to include in
9751	// API requests with the JSON null value. By default, fields with empty
9752	// values are omitted from API requests. However, any field with an
9753	// empty value appearing in NullFields will be sent to the server as
9754	// null. It is an error if a field in this list has a non-empty value.
9755	// This may be used to include null fields in Patch requests.
9756	NullFields []string `json:"-"`
9757}
9758
9759func (s *InstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
9760	type NoMethod InstanceGroupManagersDeleteInstancesRequest
9761	raw := NoMethod(*s)
9762	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9763}
9764
9765type InstanceGroupManagersListManagedInstancesResponse struct {
9766	// ManagedInstances: [Output Only] The list of instances in the managed
9767	// instance group.
9768	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
9769
9770	// ServerResponse contains the HTTP response code and headers from the
9771	// server.
9772	googleapi.ServerResponse `json:"-"`
9773
9774	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
9775	// unconditionally include in API requests. By default, fields with
9776	// empty values are omitted from API requests. However, any non-pointer,
9777	// non-interface field appearing in ForceSendFields will be sent to the
9778	// server regardless of whether the field is empty or not. This may be
9779	// used to include empty fields in Patch requests.
9780	ForceSendFields []string `json:"-"`
9781
9782	// NullFields is a list of field names (e.g. "ManagedInstances") to
9783	// include in API requests with the JSON null value. By default, fields
9784	// with empty values are omitted from API requests. However, any field
9785	// with an empty value appearing in NullFields will be sent to the
9786	// server as null. It is an error if a field in this list has a
9787	// non-empty value. This may be used to include null fields in Patch
9788	// requests.
9789	NullFields []string `json:"-"`
9790}
9791
9792func (s *InstanceGroupManagersListManagedInstancesResponse) MarshalJSON() ([]byte, error) {
9793	type NoMethod InstanceGroupManagersListManagedInstancesResponse
9794	raw := NoMethod(*s)
9795	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9796}
9797
9798type InstanceGroupManagersRecreateInstancesRequest struct {
9799	// Instances: The URLs of one or more instances to recreate. This can be
9800	// a full URL or a partial URL, such as
9801	// zones/[ZONE]/instances/[INSTANCE_NAME].
9802	Instances []string `json:"instances,omitempty"`
9803
9804	// ForceSendFields is a list of field names (e.g. "Instances") to
9805	// unconditionally include in API requests. By default, fields with
9806	// empty values are omitted from API requests. However, any non-pointer,
9807	// non-interface field appearing in ForceSendFields will be sent to the
9808	// server regardless of whether the field is empty or not. This may be
9809	// used to include empty fields in Patch requests.
9810	ForceSendFields []string `json:"-"`
9811
9812	// NullFields is a list of field names (e.g. "Instances") to include in
9813	// API requests with the JSON null value. By default, fields with empty
9814	// values are omitted from API requests. However, any field with an
9815	// empty value appearing in NullFields will be sent to the server as
9816	// null. It is an error if a field in this list has a non-empty value.
9817	// This may be used to include null fields in Patch requests.
9818	NullFields []string `json:"-"`
9819}
9820
9821func (s *InstanceGroupManagersRecreateInstancesRequest) MarshalJSON() ([]byte, error) {
9822	type NoMethod InstanceGroupManagersRecreateInstancesRequest
9823	raw := NoMethod(*s)
9824	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9825}
9826
9827type InstanceGroupManagersScopedList struct {
9828	// InstanceGroupManagers: [Output Only] The list of managed instance
9829	// groups that are contained in the specified project and zone.
9830	InstanceGroupManagers []*InstanceGroupManager `json:"instanceGroupManagers,omitempty"`
9831
9832	// Warning: [Output Only] The warning that replaces the list of managed
9833	// instance groups when the list is empty.
9834	Warning *InstanceGroupManagersScopedListWarning `json:"warning,omitempty"`
9835
9836	// ForceSendFields is a list of field names (e.g.
9837	// "InstanceGroupManagers") to unconditionally include in API requests.
9838	// By default, fields with empty values are omitted from API requests.
9839	// However, any non-pointer, non-interface field appearing in
9840	// ForceSendFields will be sent to the server regardless of whether the
9841	// field is empty or not. This may be used to include empty fields in
9842	// Patch requests.
9843	ForceSendFields []string `json:"-"`
9844
9845	// NullFields is a list of field names (e.g. "InstanceGroupManagers") to
9846	// include in API requests with the JSON null value. By default, fields
9847	// with empty values are omitted from API requests. However, any field
9848	// with an empty value appearing in NullFields will be sent to the
9849	// server as null. It is an error if a field in this list has a
9850	// non-empty value. This may be used to include null fields in Patch
9851	// requests.
9852	NullFields []string `json:"-"`
9853}
9854
9855func (s *InstanceGroupManagersScopedList) MarshalJSON() ([]byte, error) {
9856	type NoMethod InstanceGroupManagersScopedList
9857	raw := NoMethod(*s)
9858	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9859}
9860
9861// InstanceGroupManagersScopedListWarning: [Output Only] The warning
9862// that replaces the list of managed instance groups when the list is
9863// empty.
9864type InstanceGroupManagersScopedListWarning struct {
9865	// Code: [Output Only] A warning code, if applicable. For example,
9866	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9867	// the response.
9868	//
9869	// Possible values:
9870	//   "CLEANUP_FAILED"
9871	//   "DEPRECATED_RESOURCE_USED"
9872	//   "DEPRECATED_TYPE_USED"
9873	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9874	//   "EXPERIMENTAL_TYPE_USED"
9875	//   "EXTERNAL_API_WARNING"
9876	//   "FIELD_VALUE_OVERRIDEN"
9877	//   "INJECTED_KERNELS_DEPRECATED"
9878	//   "MISSING_TYPE_DEPENDENCY"
9879	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9880	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9881	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9882	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9883	//   "NEXT_HOP_NOT_RUNNING"
9884	//   "NOT_CRITICAL_ERROR"
9885	//   "NO_RESULTS_ON_PAGE"
9886	//   "REQUIRED_TOS_AGREEMENT"
9887	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9888	//   "RESOURCE_NOT_DELETED"
9889	//   "SCHEMA_VALIDATION_IGNORED"
9890	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9891	//   "UNDECLARED_PROPERTIES"
9892	//   "UNREACHABLE"
9893	Code string `json:"code,omitempty"`
9894
9895	// Data: [Output Only] Metadata about this warning in key: value format.
9896	// For example:
9897	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9898	Data []*InstanceGroupManagersScopedListWarningData `json:"data,omitempty"`
9899
9900	// Message: [Output Only] A human-readable description of the warning
9901	// code.
9902	Message string `json:"message,omitempty"`
9903
9904	// ForceSendFields is a list of field names (e.g. "Code") to
9905	// unconditionally include in API requests. By default, fields with
9906	// empty values are omitted from API requests. However, any non-pointer,
9907	// non-interface field appearing in ForceSendFields will be sent to the
9908	// server regardless of whether the field is empty or not. This may be
9909	// used to include empty fields in Patch requests.
9910	ForceSendFields []string `json:"-"`
9911
9912	// NullFields is a list of field names (e.g. "Code") to include in API
9913	// requests with the JSON null value. By default, fields with empty
9914	// values are omitted from API requests. However, any field with an
9915	// empty value appearing in NullFields will be sent to the server as
9916	// null. It is an error if a field in this list has a non-empty value.
9917	// This may be used to include null fields in Patch requests.
9918	NullFields []string `json:"-"`
9919}
9920
9921func (s *InstanceGroupManagersScopedListWarning) MarshalJSON() ([]byte, error) {
9922	type NoMethod InstanceGroupManagersScopedListWarning
9923	raw := NoMethod(*s)
9924	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9925}
9926
9927type InstanceGroupManagersScopedListWarningData struct {
9928	// Key: [Output Only] A key that provides more detail on the warning
9929	// being returned. For example, for warnings where there are no results
9930	// in a list request for a particular zone, this key might be scope and
9931	// the key value might be the zone name. Other examples might be a key
9932	// indicating a deprecated resource and a suggested replacement, or a
9933	// warning about invalid network settings (for example, if an instance
9934	// attempts to perform IP forwarding but is not enabled for IP
9935	// forwarding).
9936	Key string `json:"key,omitempty"`
9937
9938	// Value: [Output Only] A warning data value corresponding to the key.
9939	Value string `json:"value,omitempty"`
9940
9941	// ForceSendFields is a list of field names (e.g. "Key") to
9942	// unconditionally include in API requests. By default, fields with
9943	// empty values are omitted from API requests. However, any non-pointer,
9944	// non-interface field appearing in ForceSendFields will be sent to the
9945	// server regardless of whether the field is empty or not. This may be
9946	// used to include empty fields in Patch requests.
9947	ForceSendFields []string `json:"-"`
9948
9949	// NullFields is a list of field names (e.g. "Key") to include in API
9950	// requests with the JSON null value. By default, fields with empty
9951	// values are omitted from API requests. However, any field with an
9952	// empty value appearing in NullFields will be sent to the server as
9953	// null. It is an error if a field in this list has a non-empty value.
9954	// This may be used to include null fields in Patch requests.
9955	NullFields []string `json:"-"`
9956}
9957
9958func (s *InstanceGroupManagersScopedListWarningData) MarshalJSON() ([]byte, error) {
9959	type NoMethod InstanceGroupManagersScopedListWarningData
9960	raw := NoMethod(*s)
9961	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9962}
9963
9964type InstanceGroupManagersSetInstanceTemplateRequest struct {
9965	// InstanceTemplate: The URL of the instance template that is specified
9966	// for this managed instance group. The group uses this template to
9967	// create all new instances in the managed instance group.
9968	InstanceTemplate string `json:"instanceTemplate,omitempty"`
9969
9970	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
9971	// unconditionally include in API requests. By default, fields with
9972	// empty values are omitted from API requests. However, any non-pointer,
9973	// non-interface field appearing in ForceSendFields will be sent to the
9974	// server regardless of whether the field is empty or not. This may be
9975	// used to include empty fields in Patch requests.
9976	ForceSendFields []string `json:"-"`
9977
9978	// NullFields is a list of field names (e.g. "InstanceTemplate") to
9979	// include in API requests with the JSON null value. By default, fields
9980	// with empty values are omitted from API requests. However, any field
9981	// with an empty value appearing in NullFields will be sent to the
9982	// server as null. It is an error if a field in this list has a
9983	// non-empty value. This may be used to include null fields in Patch
9984	// requests.
9985	NullFields []string `json:"-"`
9986}
9987
9988func (s *InstanceGroupManagersSetInstanceTemplateRequest) MarshalJSON() ([]byte, error) {
9989	type NoMethod InstanceGroupManagersSetInstanceTemplateRequest
9990	raw := NoMethod(*s)
9991	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9992}
9993
9994type InstanceGroupManagersSetTargetPoolsRequest struct {
9995	// Fingerprint: The fingerprint of the target pools information. Use
9996	// this optional property to prevent conflicts when multiple users
9997	// change the target pools settings concurrently. Obtain the fingerprint
9998	// with the instanceGroupManagers.get method. Then, include the
9999	// fingerprint in your request to ensure that you do not overwrite
10000	// changes that were applied from another concurrent request.
10001	Fingerprint string `json:"fingerprint,omitempty"`
10002
10003	// TargetPools: The list of target pool URLs that instances in this
10004	// managed instance group belong to. The managed instance group applies
10005	// these target pools to all of the instances in the group. Existing
10006	// instances and new instances in the group all receive these target
10007	// pool settings.
10008	TargetPools []string `json:"targetPools,omitempty"`
10009
10010	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
10011	// unconditionally include in API requests. By default, fields with
10012	// empty values are omitted from API requests. However, any non-pointer,
10013	// non-interface field appearing in ForceSendFields will be sent to the
10014	// server regardless of whether the field is empty or not. This may be
10015	// used to include empty fields in Patch requests.
10016	ForceSendFields []string `json:"-"`
10017
10018	// NullFields is a list of field names (e.g. "Fingerprint") to include
10019	// in API requests with the JSON null value. By default, fields with
10020	// empty values are omitted from API requests. However, any field with
10021	// an empty value appearing in NullFields will be sent to the server as
10022	// null. It is an error if a field in this list has a non-empty value.
10023	// This may be used to include null fields in Patch requests.
10024	NullFields []string `json:"-"`
10025}
10026
10027func (s *InstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
10028	type NoMethod InstanceGroupManagersSetTargetPoolsRequest
10029	raw := NoMethod(*s)
10030	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10031}
10032
10033type InstanceGroupsAddInstancesRequest struct {
10034	// Instances: The list of instances to add to the instance group.
10035	Instances []*InstanceReference `json:"instances,omitempty"`
10036
10037	// ForceSendFields is a list of field names (e.g. "Instances") to
10038	// unconditionally include in API requests. By default, fields with
10039	// empty values are omitted from API requests. However, any non-pointer,
10040	// non-interface field appearing in ForceSendFields will be sent to the
10041	// server regardless of whether the field is empty or not. This may be
10042	// used to include empty fields in Patch requests.
10043	ForceSendFields []string `json:"-"`
10044
10045	// NullFields is a list of field names (e.g. "Instances") to include in
10046	// API requests with the JSON null value. By default, fields with empty
10047	// values are omitted from API requests. However, any field with an
10048	// empty value appearing in NullFields will be sent to the server as
10049	// null. It is an error if a field in this list has a non-empty value.
10050	// This may be used to include null fields in Patch requests.
10051	NullFields []string `json:"-"`
10052}
10053
10054func (s *InstanceGroupsAddInstancesRequest) MarshalJSON() ([]byte, error) {
10055	type NoMethod InstanceGroupsAddInstancesRequest
10056	raw := NoMethod(*s)
10057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10058}
10059
10060type InstanceGroupsListInstances struct {
10061	// Id: [Output Only] Unique identifier for the resource; defined by the
10062	// server.
10063	Id string `json:"id,omitempty"`
10064
10065	// Items: A list of InstanceWithNamedPorts resources.
10066	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
10067
10068	// Kind: [Output Only] The resource type, which is always
10069	// compute#instanceGroupsListInstances for the list of instances in the
10070	// specified instance group.
10071	Kind string `json:"kind,omitempty"`
10072
10073	// NextPageToken: [Output Only] This token allows you to get the next
10074	// page of results for list requests. If the number of results is larger
10075	// than maxResults, use the nextPageToken as a value for the query
10076	// parameter pageToken in the next list request. Subsequent list
10077	// requests will have their own nextPageToken to continue paging through
10078	// the results.
10079	NextPageToken string `json:"nextPageToken,omitempty"`
10080
10081	// SelfLink: [Output Only] Server-defined URL for this resource.
10082	SelfLink string `json:"selfLink,omitempty"`
10083
10084	// Warning: [Output Only] Informational warning message.
10085	Warning *InstanceGroupsListInstancesWarning `json:"warning,omitempty"`
10086
10087	// ServerResponse contains the HTTP response code and headers from the
10088	// server.
10089	googleapi.ServerResponse `json:"-"`
10090
10091	// ForceSendFields is a list of field names (e.g. "Id") to
10092	// unconditionally include in API requests. By default, fields with
10093	// empty values are omitted from API requests. However, any non-pointer,
10094	// non-interface field appearing in ForceSendFields will be sent to the
10095	// server regardless of whether the field is empty or not. This may be
10096	// used to include empty fields in Patch requests.
10097	ForceSendFields []string `json:"-"`
10098
10099	// NullFields is a list of field names (e.g. "Id") to include in API
10100	// requests with the JSON null value. By default, fields with empty
10101	// values are omitted from API requests. However, any field with an
10102	// empty value appearing in NullFields will be sent to the server as
10103	// null. It is an error if a field in this list has a non-empty value.
10104	// This may be used to include null fields in Patch requests.
10105	NullFields []string `json:"-"`
10106}
10107
10108func (s *InstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
10109	type NoMethod InstanceGroupsListInstances
10110	raw := NoMethod(*s)
10111	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10112}
10113
10114// InstanceGroupsListInstancesWarning: [Output Only] Informational
10115// warning message.
10116type InstanceGroupsListInstancesWarning struct {
10117	// Code: [Output Only] A warning code, if applicable. For example,
10118	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10119	// the response.
10120	//
10121	// Possible values:
10122	//   "CLEANUP_FAILED"
10123	//   "DEPRECATED_RESOURCE_USED"
10124	//   "DEPRECATED_TYPE_USED"
10125	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10126	//   "EXPERIMENTAL_TYPE_USED"
10127	//   "EXTERNAL_API_WARNING"
10128	//   "FIELD_VALUE_OVERRIDEN"
10129	//   "INJECTED_KERNELS_DEPRECATED"
10130	//   "MISSING_TYPE_DEPENDENCY"
10131	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10132	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10133	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10134	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10135	//   "NEXT_HOP_NOT_RUNNING"
10136	//   "NOT_CRITICAL_ERROR"
10137	//   "NO_RESULTS_ON_PAGE"
10138	//   "REQUIRED_TOS_AGREEMENT"
10139	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10140	//   "RESOURCE_NOT_DELETED"
10141	//   "SCHEMA_VALIDATION_IGNORED"
10142	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10143	//   "UNDECLARED_PROPERTIES"
10144	//   "UNREACHABLE"
10145	Code string `json:"code,omitempty"`
10146
10147	// Data: [Output Only] Metadata about this warning in key: value format.
10148	// For example:
10149	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10150	Data []*InstanceGroupsListInstancesWarningData `json:"data,omitempty"`
10151
10152	// Message: [Output Only] A human-readable description of the warning
10153	// code.
10154	Message string `json:"message,omitempty"`
10155
10156	// ForceSendFields is a list of field names (e.g. "Code") to
10157	// unconditionally include in API requests. By default, fields with
10158	// empty values are omitted from API requests. However, any non-pointer,
10159	// non-interface field appearing in ForceSendFields will be sent to the
10160	// server regardless of whether the field is empty or not. This may be
10161	// used to include empty fields in Patch requests.
10162	ForceSendFields []string `json:"-"`
10163
10164	// NullFields is a list of field names (e.g. "Code") to include in API
10165	// requests with the JSON null value. By default, fields with empty
10166	// values are omitted from API requests. However, any field with an
10167	// empty value appearing in NullFields will be sent to the server as
10168	// null. It is an error if a field in this list has a non-empty value.
10169	// This may be used to include null fields in Patch requests.
10170	NullFields []string `json:"-"`
10171}
10172
10173func (s *InstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
10174	type NoMethod InstanceGroupsListInstancesWarning
10175	raw := NoMethod(*s)
10176	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10177}
10178
10179type InstanceGroupsListInstancesWarningData struct {
10180	// Key: [Output Only] A key that provides more detail on the warning
10181	// being returned. For example, for warnings where there are no results
10182	// in a list request for a particular zone, this key might be scope and
10183	// the key value might be the zone name. Other examples might be a key
10184	// indicating a deprecated resource and a suggested replacement, or a
10185	// warning about invalid network settings (for example, if an instance
10186	// attempts to perform IP forwarding but is not enabled for IP
10187	// forwarding).
10188	Key string `json:"key,omitempty"`
10189
10190	// Value: [Output Only] A warning data value corresponding to the key.
10191	Value string `json:"value,omitempty"`
10192
10193	// ForceSendFields is a list of field names (e.g. "Key") to
10194	// unconditionally include in API requests. By default, fields with
10195	// empty values are omitted from API requests. However, any non-pointer,
10196	// non-interface field appearing in ForceSendFields will be sent to the
10197	// server regardless of whether the field is empty or not. This may be
10198	// used to include empty fields in Patch requests.
10199	ForceSendFields []string `json:"-"`
10200
10201	// NullFields is a list of field names (e.g. "Key") to include in API
10202	// requests with the JSON null value. By default, fields with empty
10203	// values are omitted from API requests. However, any field with an
10204	// empty value appearing in NullFields will be sent to the server as
10205	// null. It is an error if a field in this list has a non-empty value.
10206	// This may be used to include null fields in Patch requests.
10207	NullFields []string `json:"-"`
10208}
10209
10210func (s *InstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
10211	type NoMethod InstanceGroupsListInstancesWarningData
10212	raw := NoMethod(*s)
10213	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10214}
10215
10216type InstanceGroupsListInstancesRequest struct {
10217	// InstanceState: A filter for the state of the instances in the
10218	// instance group. Valid options are ALL or RUNNING. If you do not
10219	// specify this parameter the list includes all instances regardless of
10220	// their state.
10221	//
10222	// Possible values:
10223	//   "ALL"
10224	//   "RUNNING"
10225	InstanceState string `json:"instanceState,omitempty"`
10226
10227	// ForceSendFields is a list of field names (e.g. "InstanceState") to
10228	// unconditionally include in API requests. By default, fields with
10229	// empty values are omitted from API requests. However, any non-pointer,
10230	// non-interface field appearing in ForceSendFields will be sent to the
10231	// server regardless of whether the field is empty or not. This may be
10232	// used to include empty fields in Patch requests.
10233	ForceSendFields []string `json:"-"`
10234
10235	// NullFields is a list of field names (e.g. "InstanceState") to include
10236	// in API requests with the JSON null value. By default, fields with
10237	// empty values are omitted from API requests. However, any field with
10238	// an empty value appearing in NullFields will be sent to the server as
10239	// null. It is an error if a field in this list has a non-empty value.
10240	// This may be used to include null fields in Patch requests.
10241	NullFields []string `json:"-"`
10242}
10243
10244func (s *InstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
10245	type NoMethod InstanceGroupsListInstancesRequest
10246	raw := NoMethod(*s)
10247	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10248}
10249
10250type InstanceGroupsRemoveInstancesRequest struct {
10251	// Instances: The list of instances to remove from the instance group.
10252	Instances []*InstanceReference `json:"instances,omitempty"`
10253
10254	// ForceSendFields is a list of field names (e.g. "Instances") to
10255	// unconditionally include in API requests. By default, fields with
10256	// empty values are omitted from API requests. However, any non-pointer,
10257	// non-interface field appearing in ForceSendFields will be sent to the
10258	// server regardless of whether the field is empty or not. This may be
10259	// used to include empty fields in Patch requests.
10260	ForceSendFields []string `json:"-"`
10261
10262	// NullFields is a list of field names (e.g. "Instances") to include in
10263	// API requests with the JSON null value. By default, fields with empty
10264	// values are omitted from API requests. However, any field with an
10265	// empty value appearing in NullFields will be sent to the server as
10266	// null. It is an error if a field in this list has a non-empty value.
10267	// This may be used to include null fields in Patch requests.
10268	NullFields []string `json:"-"`
10269}
10270
10271func (s *InstanceGroupsRemoveInstancesRequest) MarshalJSON() ([]byte, error) {
10272	type NoMethod InstanceGroupsRemoveInstancesRequest
10273	raw := NoMethod(*s)
10274	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10275}
10276
10277type InstanceGroupsScopedList struct {
10278	// InstanceGroups: [Output Only] The list of instance groups that are
10279	// contained in this scope.
10280	InstanceGroups []*InstanceGroup `json:"instanceGroups,omitempty"`
10281
10282	// Warning: [Output Only] An informational warning that replaces the
10283	// list of instance groups when the list is empty.
10284	Warning *InstanceGroupsScopedListWarning `json:"warning,omitempty"`
10285
10286	// ForceSendFields is a list of field names (e.g. "InstanceGroups") to
10287	// unconditionally include in API requests. By default, fields with
10288	// empty values are omitted from API requests. However, any non-pointer,
10289	// non-interface field appearing in ForceSendFields will be sent to the
10290	// server regardless of whether the field is empty or not. This may be
10291	// used to include empty fields in Patch requests.
10292	ForceSendFields []string `json:"-"`
10293
10294	// NullFields is a list of field names (e.g. "InstanceGroups") to
10295	// include in API requests with the JSON null value. By default, fields
10296	// with empty values are omitted from API requests. However, any field
10297	// with an empty value appearing in NullFields will be sent to the
10298	// server as null. It is an error if a field in this list has a
10299	// non-empty value. This may be used to include null fields in Patch
10300	// requests.
10301	NullFields []string `json:"-"`
10302}
10303
10304func (s *InstanceGroupsScopedList) MarshalJSON() ([]byte, error) {
10305	type NoMethod InstanceGroupsScopedList
10306	raw := NoMethod(*s)
10307	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10308}
10309
10310// InstanceGroupsScopedListWarning: [Output Only] An informational
10311// warning that replaces the list of instance groups when the list is
10312// empty.
10313type InstanceGroupsScopedListWarning struct {
10314	// Code: [Output Only] A warning code, if applicable. For example,
10315	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10316	// the response.
10317	//
10318	// Possible values:
10319	//   "CLEANUP_FAILED"
10320	//   "DEPRECATED_RESOURCE_USED"
10321	//   "DEPRECATED_TYPE_USED"
10322	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10323	//   "EXPERIMENTAL_TYPE_USED"
10324	//   "EXTERNAL_API_WARNING"
10325	//   "FIELD_VALUE_OVERRIDEN"
10326	//   "INJECTED_KERNELS_DEPRECATED"
10327	//   "MISSING_TYPE_DEPENDENCY"
10328	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10329	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10330	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10331	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10332	//   "NEXT_HOP_NOT_RUNNING"
10333	//   "NOT_CRITICAL_ERROR"
10334	//   "NO_RESULTS_ON_PAGE"
10335	//   "REQUIRED_TOS_AGREEMENT"
10336	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10337	//   "RESOURCE_NOT_DELETED"
10338	//   "SCHEMA_VALIDATION_IGNORED"
10339	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10340	//   "UNDECLARED_PROPERTIES"
10341	//   "UNREACHABLE"
10342	Code string `json:"code,omitempty"`
10343
10344	// Data: [Output Only] Metadata about this warning in key: value format.
10345	// For example:
10346	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10347	Data []*InstanceGroupsScopedListWarningData `json:"data,omitempty"`
10348
10349	// Message: [Output Only] A human-readable description of the warning
10350	// code.
10351	Message string `json:"message,omitempty"`
10352
10353	// ForceSendFields is a list of field names (e.g. "Code") to
10354	// unconditionally include in API requests. By default, fields with
10355	// empty values are omitted from API requests. However, any non-pointer,
10356	// non-interface field appearing in ForceSendFields will be sent to the
10357	// server regardless of whether the field is empty or not. This may be
10358	// used to include empty fields in Patch requests.
10359	ForceSendFields []string `json:"-"`
10360
10361	// NullFields is a list of field names (e.g. "Code") to include in API
10362	// requests with the JSON null value. By default, fields with empty
10363	// values are omitted from API requests. However, any field with an
10364	// empty value appearing in NullFields will be sent to the server as
10365	// null. It is an error if a field in this list has a non-empty value.
10366	// This may be used to include null fields in Patch requests.
10367	NullFields []string `json:"-"`
10368}
10369
10370func (s *InstanceGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
10371	type NoMethod InstanceGroupsScopedListWarning
10372	raw := NoMethod(*s)
10373	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10374}
10375
10376type InstanceGroupsScopedListWarningData struct {
10377	// Key: [Output Only] A key that provides more detail on the warning
10378	// being returned. For example, for warnings where there are no results
10379	// in a list request for a particular zone, this key might be scope and
10380	// the key value might be the zone name. Other examples might be a key
10381	// indicating a deprecated resource and a suggested replacement, or a
10382	// warning about invalid network settings (for example, if an instance
10383	// attempts to perform IP forwarding but is not enabled for IP
10384	// forwarding).
10385	Key string `json:"key,omitempty"`
10386
10387	// Value: [Output Only] A warning data value corresponding to the key.
10388	Value string `json:"value,omitempty"`
10389
10390	// ForceSendFields is a list of field names (e.g. "Key") to
10391	// unconditionally include in API requests. By default, fields with
10392	// empty values are omitted from API requests. However, any non-pointer,
10393	// non-interface field appearing in ForceSendFields will be sent to the
10394	// server regardless of whether the field is empty or not. This may be
10395	// used to include empty fields in Patch requests.
10396	ForceSendFields []string `json:"-"`
10397
10398	// NullFields is a list of field names (e.g. "Key") to include in API
10399	// requests with the JSON null value. By default, fields with empty
10400	// values are omitted from API requests. However, any field with an
10401	// empty value appearing in NullFields will be sent to the server as
10402	// null. It is an error if a field in this list has a non-empty value.
10403	// This may be used to include null fields in Patch requests.
10404	NullFields []string `json:"-"`
10405}
10406
10407func (s *InstanceGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
10408	type NoMethod InstanceGroupsScopedListWarningData
10409	raw := NoMethod(*s)
10410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10411}
10412
10413type InstanceGroupsSetNamedPortsRequest struct {
10414	// Fingerprint: The fingerprint of the named ports information for this
10415	// instance group. Use this optional property to prevent conflicts when
10416	// multiple users change the named ports settings concurrently. Obtain
10417	// the fingerprint with the instanceGroups.get method. Then, include the
10418	// fingerprint in your request to ensure that you do not overwrite
10419	// changes that were applied from another concurrent request.
10420	Fingerprint string `json:"fingerprint,omitempty"`
10421
10422	// NamedPorts: The list of named ports to set for this instance group.
10423	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
10424
10425	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
10426	// unconditionally include in API requests. By default, fields with
10427	// empty values are omitted from API requests. However, any non-pointer,
10428	// non-interface field appearing in ForceSendFields will be sent to the
10429	// server regardless of whether the field is empty or not. This may be
10430	// used to include empty fields in Patch requests.
10431	ForceSendFields []string `json:"-"`
10432
10433	// NullFields is a list of field names (e.g. "Fingerprint") to include
10434	// in API requests with the JSON null value. By default, fields with
10435	// empty values are omitted from API requests. However, any field with
10436	// an empty value appearing in NullFields will be sent to the server as
10437	// null. It is an error if a field in this list has a non-empty value.
10438	// This may be used to include null fields in Patch requests.
10439	NullFields []string `json:"-"`
10440}
10441
10442func (s *InstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
10443	type NoMethod InstanceGroupsSetNamedPortsRequest
10444	raw := NoMethod(*s)
10445	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10446}
10447
10448// InstanceList: Contains a list of instances.
10449type InstanceList struct {
10450	// Id: [Output Only] Unique identifier for the resource; defined by the
10451	// server.
10452	Id string `json:"id,omitempty"`
10453
10454	// Items: A list of Instance resources.
10455	Items []*Instance `json:"items,omitempty"`
10456
10457	// Kind: [Output Only] Type of resource. Always compute#instanceList for
10458	// lists of Instance resources.
10459	Kind string `json:"kind,omitempty"`
10460
10461	// NextPageToken: [Output Only] This token allows you to get the next
10462	// page of results for list requests. If the number of results is larger
10463	// than maxResults, use the nextPageToken as a value for the query
10464	// parameter pageToken in the next list request. Subsequent list
10465	// requests will have their own nextPageToken to continue paging through
10466	// the results.
10467	NextPageToken string `json:"nextPageToken,omitempty"`
10468
10469	// SelfLink: [Output Only] Server-defined URL for this resource.
10470	SelfLink string `json:"selfLink,omitempty"`
10471
10472	// Warning: [Output Only] Informational warning message.
10473	Warning *InstanceListWarning `json:"warning,omitempty"`
10474
10475	// ServerResponse contains the HTTP response code and headers from the
10476	// server.
10477	googleapi.ServerResponse `json:"-"`
10478
10479	// ForceSendFields is a list of field names (e.g. "Id") to
10480	// unconditionally include in API requests. By default, fields with
10481	// empty values are omitted from API requests. However, any non-pointer,
10482	// non-interface field appearing in ForceSendFields will be sent to the
10483	// server regardless of whether the field is empty or not. This may be
10484	// used to include empty fields in Patch requests.
10485	ForceSendFields []string `json:"-"`
10486
10487	// NullFields is a list of field names (e.g. "Id") to include in API
10488	// requests with the JSON null value. By default, fields with empty
10489	// values are omitted from API requests. However, any field with an
10490	// empty value appearing in NullFields will be sent to the server as
10491	// null. It is an error if a field in this list has a non-empty value.
10492	// This may be used to include null fields in Patch requests.
10493	NullFields []string `json:"-"`
10494}
10495
10496func (s *InstanceList) MarshalJSON() ([]byte, error) {
10497	type NoMethod InstanceList
10498	raw := NoMethod(*s)
10499	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10500}
10501
10502// InstanceListWarning: [Output Only] Informational warning message.
10503type InstanceListWarning struct {
10504	// Code: [Output Only] A warning code, if applicable. For example,
10505	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10506	// the response.
10507	//
10508	// Possible values:
10509	//   "CLEANUP_FAILED"
10510	//   "DEPRECATED_RESOURCE_USED"
10511	//   "DEPRECATED_TYPE_USED"
10512	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10513	//   "EXPERIMENTAL_TYPE_USED"
10514	//   "EXTERNAL_API_WARNING"
10515	//   "FIELD_VALUE_OVERRIDEN"
10516	//   "INJECTED_KERNELS_DEPRECATED"
10517	//   "MISSING_TYPE_DEPENDENCY"
10518	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10519	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10520	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10521	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10522	//   "NEXT_HOP_NOT_RUNNING"
10523	//   "NOT_CRITICAL_ERROR"
10524	//   "NO_RESULTS_ON_PAGE"
10525	//   "REQUIRED_TOS_AGREEMENT"
10526	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10527	//   "RESOURCE_NOT_DELETED"
10528	//   "SCHEMA_VALIDATION_IGNORED"
10529	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10530	//   "UNDECLARED_PROPERTIES"
10531	//   "UNREACHABLE"
10532	Code string `json:"code,omitempty"`
10533
10534	// Data: [Output Only] Metadata about this warning in key: value format.
10535	// For example:
10536	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10537	Data []*InstanceListWarningData `json:"data,omitempty"`
10538
10539	// Message: [Output Only] A human-readable description of the warning
10540	// code.
10541	Message string `json:"message,omitempty"`
10542
10543	// ForceSendFields is a list of field names (e.g. "Code") to
10544	// unconditionally include in API requests. By default, fields with
10545	// empty values are omitted from API requests. However, any non-pointer,
10546	// non-interface field appearing in ForceSendFields will be sent to the
10547	// server regardless of whether the field is empty or not. This may be
10548	// used to include empty fields in Patch requests.
10549	ForceSendFields []string `json:"-"`
10550
10551	// NullFields is a list of field names (e.g. "Code") to include in API
10552	// requests with the JSON null value. By default, fields with empty
10553	// values are omitted from API requests. However, any field with an
10554	// empty value appearing in NullFields will be sent to the server as
10555	// null. It is an error if a field in this list has a non-empty value.
10556	// This may be used to include null fields in Patch requests.
10557	NullFields []string `json:"-"`
10558}
10559
10560func (s *InstanceListWarning) MarshalJSON() ([]byte, error) {
10561	type NoMethod InstanceListWarning
10562	raw := NoMethod(*s)
10563	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10564}
10565
10566type InstanceListWarningData struct {
10567	// Key: [Output Only] A key that provides more detail on the warning
10568	// being returned. For example, for warnings where there are no results
10569	// in a list request for a particular zone, this key might be scope and
10570	// the key value might be the zone name. Other examples might be a key
10571	// indicating a deprecated resource and a suggested replacement, or a
10572	// warning about invalid network settings (for example, if an instance
10573	// attempts to perform IP forwarding but is not enabled for IP
10574	// forwarding).
10575	Key string `json:"key,omitempty"`
10576
10577	// Value: [Output Only] A warning data value corresponding to the key.
10578	Value string `json:"value,omitempty"`
10579
10580	// ForceSendFields is a list of field names (e.g. "Key") to
10581	// unconditionally include in API requests. By default, fields with
10582	// empty values are omitted from API requests. However, any non-pointer,
10583	// non-interface field appearing in ForceSendFields will be sent to the
10584	// server regardless of whether the field is empty or not. This may be
10585	// used to include empty fields in Patch requests.
10586	ForceSendFields []string `json:"-"`
10587
10588	// NullFields is a list of field names (e.g. "Key") to include in API
10589	// requests with the JSON null value. By default, fields with empty
10590	// values are omitted from API requests. However, any field with an
10591	// empty value appearing in NullFields will be sent to the server as
10592	// null. It is an error if a field in this list has a non-empty value.
10593	// This may be used to include null fields in Patch requests.
10594	NullFields []string `json:"-"`
10595}
10596
10597func (s *InstanceListWarningData) MarshalJSON() ([]byte, error) {
10598	type NoMethod InstanceListWarningData
10599	raw := NoMethod(*s)
10600	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10601}
10602
10603// InstanceListReferrers: Contains a list of instance referrers.
10604type InstanceListReferrers struct {
10605	// Id: [Output Only] Unique identifier for the resource; defined by the
10606	// server.
10607	Id string `json:"id,omitempty"`
10608
10609	// Items: A list of Reference resources.
10610	Items []*Reference `json:"items,omitempty"`
10611
10612	// Kind: [Output Only] Type of resource. Always
10613	// compute#instanceListReferrers for lists of Instance referrers.
10614	Kind string `json:"kind,omitempty"`
10615
10616	// NextPageToken: [Output Only] This token allows you to get the next
10617	// page of results for list requests. If the number of results is larger
10618	// than maxResults, use the nextPageToken as a value for the query
10619	// parameter pageToken in the next list request. Subsequent list
10620	// requests will have their own nextPageToken to continue paging through
10621	// the results.
10622	NextPageToken string `json:"nextPageToken,omitempty"`
10623
10624	// SelfLink: [Output Only] Server-defined URL for this resource.
10625	SelfLink string `json:"selfLink,omitempty"`
10626
10627	// Warning: [Output Only] Informational warning message.
10628	Warning *InstanceListReferrersWarning `json:"warning,omitempty"`
10629
10630	// ServerResponse contains the HTTP response code and headers from the
10631	// server.
10632	googleapi.ServerResponse `json:"-"`
10633
10634	// ForceSendFields is a list of field names (e.g. "Id") to
10635	// unconditionally include in API requests. By default, fields with
10636	// empty values are omitted from API requests. However, any non-pointer,
10637	// non-interface field appearing in ForceSendFields will be sent to the
10638	// server regardless of whether the field is empty or not. This may be
10639	// used to include empty fields in Patch requests.
10640	ForceSendFields []string `json:"-"`
10641
10642	// NullFields is a list of field names (e.g. "Id") to include in API
10643	// requests with the JSON null value. By default, fields with empty
10644	// values are omitted from API requests. However, any field with an
10645	// empty value appearing in NullFields will be sent to the server as
10646	// null. It is an error if a field in this list has a non-empty value.
10647	// This may be used to include null fields in Patch requests.
10648	NullFields []string `json:"-"`
10649}
10650
10651func (s *InstanceListReferrers) MarshalJSON() ([]byte, error) {
10652	type NoMethod InstanceListReferrers
10653	raw := NoMethod(*s)
10654	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10655}
10656
10657// InstanceListReferrersWarning: [Output Only] Informational warning
10658// message.
10659type InstanceListReferrersWarning struct {
10660	// Code: [Output Only] A warning code, if applicable. For example,
10661	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10662	// the response.
10663	//
10664	// Possible values:
10665	//   "CLEANUP_FAILED"
10666	//   "DEPRECATED_RESOURCE_USED"
10667	//   "DEPRECATED_TYPE_USED"
10668	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10669	//   "EXPERIMENTAL_TYPE_USED"
10670	//   "EXTERNAL_API_WARNING"
10671	//   "FIELD_VALUE_OVERRIDEN"
10672	//   "INJECTED_KERNELS_DEPRECATED"
10673	//   "MISSING_TYPE_DEPENDENCY"
10674	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10675	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10676	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10677	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10678	//   "NEXT_HOP_NOT_RUNNING"
10679	//   "NOT_CRITICAL_ERROR"
10680	//   "NO_RESULTS_ON_PAGE"
10681	//   "REQUIRED_TOS_AGREEMENT"
10682	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10683	//   "RESOURCE_NOT_DELETED"
10684	//   "SCHEMA_VALIDATION_IGNORED"
10685	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10686	//   "UNDECLARED_PROPERTIES"
10687	//   "UNREACHABLE"
10688	Code string `json:"code,omitempty"`
10689
10690	// Data: [Output Only] Metadata about this warning in key: value format.
10691	// For example:
10692	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10693	Data []*InstanceListReferrersWarningData `json:"data,omitempty"`
10694
10695	// Message: [Output Only] A human-readable description of the warning
10696	// code.
10697	Message string `json:"message,omitempty"`
10698
10699	// ForceSendFields is a list of field names (e.g. "Code") to
10700	// unconditionally include in API requests. By default, fields with
10701	// empty values are omitted from API requests. However, any non-pointer,
10702	// non-interface field appearing in ForceSendFields will be sent to the
10703	// server regardless of whether the field is empty or not. This may be
10704	// used to include empty fields in Patch requests.
10705	ForceSendFields []string `json:"-"`
10706
10707	// NullFields is a list of field names (e.g. "Code") to include in API
10708	// requests with the JSON null value. By default, fields with empty
10709	// values are omitted from API requests. However, any field with an
10710	// empty value appearing in NullFields will be sent to the server as
10711	// null. It is an error if a field in this list has a non-empty value.
10712	// This may be used to include null fields in Patch requests.
10713	NullFields []string `json:"-"`
10714}
10715
10716func (s *InstanceListReferrersWarning) MarshalJSON() ([]byte, error) {
10717	type NoMethod InstanceListReferrersWarning
10718	raw := NoMethod(*s)
10719	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10720}
10721
10722type InstanceListReferrersWarningData struct {
10723	// Key: [Output Only] A key that provides more detail on the warning
10724	// being returned. For example, for warnings where there are no results
10725	// in a list request for a particular zone, this key might be scope and
10726	// the key value might be the zone name. Other examples might be a key
10727	// indicating a deprecated resource and a suggested replacement, or a
10728	// warning about invalid network settings (for example, if an instance
10729	// attempts to perform IP forwarding but is not enabled for IP
10730	// forwarding).
10731	Key string `json:"key,omitempty"`
10732
10733	// Value: [Output Only] A warning data value corresponding to the key.
10734	Value string `json:"value,omitempty"`
10735
10736	// ForceSendFields is a list of field names (e.g. "Key") to
10737	// unconditionally include in API requests. By default, fields with
10738	// empty values are omitted from API requests. However, any non-pointer,
10739	// non-interface field appearing in ForceSendFields will be sent to the
10740	// server regardless of whether the field is empty or not. This may be
10741	// used to include empty fields in Patch requests.
10742	ForceSendFields []string `json:"-"`
10743
10744	// NullFields is a list of field names (e.g. "Key") to include in API
10745	// requests with the JSON null value. By default, fields with empty
10746	// values are omitted from API requests. However, any field with an
10747	// empty value appearing in NullFields will be sent to the server as
10748	// null. It is an error if a field in this list has a non-empty value.
10749	// This may be used to include null fields in Patch requests.
10750	NullFields []string `json:"-"`
10751}
10752
10753func (s *InstanceListReferrersWarningData) MarshalJSON() ([]byte, error) {
10754	type NoMethod InstanceListReferrersWarningData
10755	raw := NoMethod(*s)
10756	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10757}
10758
10759type InstanceMoveRequest struct {
10760	// DestinationZone: The URL of the destination zone to move the
10761	// instance. This can be a full or partial URL. For example, the
10762	// following are all valid URLs to a zone:
10763	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
10764	//
10765	// - projects/project/zones/zone
10766	// - zones/zone
10767	DestinationZone string `json:"destinationZone,omitempty"`
10768
10769	// TargetInstance: The URL of the target instance to move. This can be a
10770	// full or partial URL. For example, the following are all valid URLs to
10771	// an instance:
10772	// -
10773	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
10774	// - projects/project/zones/zone/instances/instance
10775	// - zones/zone/instances/instance
10776	TargetInstance string `json:"targetInstance,omitempty"`
10777
10778	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
10779	// unconditionally include in API requests. By default, fields with
10780	// empty values are omitted from API requests. However, any non-pointer,
10781	// non-interface field appearing in ForceSendFields will be sent to the
10782	// server regardless of whether the field is empty or not. This may be
10783	// used to include empty fields in Patch requests.
10784	ForceSendFields []string `json:"-"`
10785
10786	// NullFields is a list of field names (e.g. "DestinationZone") to
10787	// include in API requests with the JSON null value. By default, fields
10788	// with empty values are omitted from API requests. However, any field
10789	// with an empty value appearing in NullFields will be sent to the
10790	// server as null. It is an error if a field in this list has a
10791	// non-empty value. This may be used to include null fields in Patch
10792	// requests.
10793	NullFields []string `json:"-"`
10794}
10795
10796func (s *InstanceMoveRequest) MarshalJSON() ([]byte, error) {
10797	type NoMethod InstanceMoveRequest
10798	raw := NoMethod(*s)
10799	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10800}
10801
10802type InstanceProperties struct {
10803	// CanIpForward: Enables instances created based on this template to
10804	// send packets with source IP addresses other than their own and
10805	// receive packets with destination IP addresses other than their own.
10806	// If these instances will be used as an IP gateway or it will be set as
10807	// the next-hop in a Route resource, specify true. If unsure, leave this
10808	// set to false. See the Enable IP forwarding documentation for more
10809	// information.
10810	CanIpForward bool `json:"canIpForward,omitempty"`
10811
10812	// Description: An optional text description for the instances that are
10813	// created from this instance template.
10814	Description string `json:"description,omitempty"`
10815
10816	// Disks: An array of disks that are associated with the instances that
10817	// are created from this template.
10818	Disks []*AttachedDisk `json:"disks,omitempty"`
10819
10820	// GuestAccelerators: A list of guest accelerator cards' type and count
10821	// to use for instances created from the instance template.
10822	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
10823
10824	// Labels: Labels to apply to instances that are created from this
10825	// template.
10826	Labels map[string]string `json:"labels,omitempty"`
10827
10828	// MachineType: The machine type to use for instances that are created
10829	// from this template.
10830	MachineType string `json:"machineType,omitempty"`
10831
10832	// Metadata: The metadata key/value pairs to assign to instances that
10833	// are created from this template. These pairs can consist of custom
10834	// metadata or predefined keys. See Project and instance metadata for
10835	// more information.
10836	Metadata *Metadata `json:"metadata,omitempty"`
10837
10838	// MinCpuPlatform: Minimum cpu/platform to be used by this instance. The
10839	// instance may be scheduled on the specified or newer cpu/platform.
10840	// Applicable values are the friendly names of CPU platforms, such as
10841	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
10842	// Bridge". For more information, read Specifying a Minimum CPU
10843	// Platform.
10844	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
10845
10846	// NetworkInterfaces: An array of network access configurations for this
10847	// interface.
10848	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
10849
10850	// Scheduling: Specifies the scheduling options for the instances that
10851	// are created from this template.
10852	Scheduling *Scheduling `json:"scheduling,omitempty"`
10853
10854	// ServiceAccounts: A list of service accounts with specified scopes.
10855	// Access tokens for these service accounts are available to the
10856	// instances that are created from this template. Use metadata queries
10857	// to obtain the access tokens for these instances.
10858	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
10859
10860	// Tags: A list of tags to apply to the instances that are created from
10861	// this template. The tags identify valid sources or targets for network
10862	// firewalls. The setTags method can modify this list of tags. Each tag
10863	// within the list must comply with RFC1035.
10864	Tags *Tags `json:"tags,omitempty"`
10865
10866	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
10867	// unconditionally include in API requests. By default, fields with
10868	// empty values are omitted from API requests. However, any non-pointer,
10869	// non-interface field appearing in ForceSendFields will be sent to the
10870	// server regardless of whether the field is empty or not. This may be
10871	// used to include empty fields in Patch requests.
10872	ForceSendFields []string `json:"-"`
10873
10874	// NullFields is a list of field names (e.g. "CanIpForward") to include
10875	// in API requests with the JSON null value. By default, fields with
10876	// empty values are omitted from API requests. However, any field with
10877	// an empty value appearing in NullFields will be sent to the server as
10878	// null. It is an error if a field in this list has a non-empty value.
10879	// This may be used to include null fields in Patch requests.
10880	NullFields []string `json:"-"`
10881}
10882
10883func (s *InstanceProperties) MarshalJSON() ([]byte, error) {
10884	type NoMethod InstanceProperties
10885	raw := NoMethod(*s)
10886	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10887}
10888
10889type InstanceReference struct {
10890	// Instance: The URL for a specific instance.
10891	Instance string `json:"instance,omitempty"`
10892
10893	// ForceSendFields is a list of field names (e.g. "Instance") to
10894	// unconditionally include in API requests. By default, fields with
10895	// empty values are omitted from API requests. However, any non-pointer,
10896	// non-interface field appearing in ForceSendFields will be sent to the
10897	// server regardless of whether the field is empty or not. This may be
10898	// used to include empty fields in Patch requests.
10899	ForceSendFields []string `json:"-"`
10900
10901	// NullFields is a list of field names (e.g. "Instance") to include in
10902	// API requests with the JSON null value. By default, fields with empty
10903	// values are omitted from API requests. However, any field with an
10904	// empty value appearing in NullFields will be sent to the server as
10905	// null. It is an error if a field in this list has a non-empty value.
10906	// This may be used to include null fields in Patch requests.
10907	NullFields []string `json:"-"`
10908}
10909
10910func (s *InstanceReference) MarshalJSON() ([]byte, error) {
10911	type NoMethod InstanceReference
10912	raw := NoMethod(*s)
10913	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10914}
10915
10916// InstanceTemplate: An Instance Template resource. (== resource_for
10917// beta.instanceTemplates ==) (== resource_for v1.instanceTemplates ==)
10918type InstanceTemplate struct {
10919	// CreationTimestamp: [Output Only] The creation timestamp for this
10920	// instance template in RFC3339 text format.
10921	CreationTimestamp string `json:"creationTimestamp,omitempty"`
10922
10923	// Description: An optional description of this resource. Provide this
10924	// property when you create the resource.
10925	Description string `json:"description,omitempty"`
10926
10927	// Id: [Output Only] A unique identifier for this instance template. The
10928	// server defines this identifier.
10929	Id uint64 `json:"id,omitempty,string"`
10930
10931	// Kind: [Output Only] The resource type, which is always
10932	// compute#instanceTemplate for instance templates.
10933	Kind string `json:"kind,omitempty"`
10934
10935	// Name: Name of the resource; provided by the client when the resource
10936	// is created. The name must be 1-63 characters long, and comply with
10937	// RFC1035. Specifically, the name must be 1-63 characters long and
10938	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
10939	// the first character must be a lowercase letter, and all following
10940	// characters must be a dash, lowercase letter, or digit, except the
10941	// last character, which cannot be a dash.
10942	Name string `json:"name,omitempty"`
10943
10944	// Properties: The instance properties for this instance template.
10945	Properties *InstanceProperties `json:"properties,omitempty"`
10946
10947	// SelfLink: [Output Only] The URL for this instance template. The
10948	// server defines this URL.
10949	SelfLink string `json:"selfLink,omitempty"`
10950
10951	// ServerResponse contains the HTTP response code and headers from the
10952	// server.
10953	googleapi.ServerResponse `json:"-"`
10954
10955	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
10956	// to unconditionally include in API requests. By default, fields with
10957	// empty values are omitted from API requests. However, any non-pointer,
10958	// non-interface field appearing in ForceSendFields will be sent to the
10959	// server regardless of whether the field is empty or not. This may be
10960	// used to include empty fields in Patch requests.
10961	ForceSendFields []string `json:"-"`
10962
10963	// NullFields is a list of field names (e.g. "CreationTimestamp") to
10964	// include in API requests with the JSON null value. By default, fields
10965	// with empty values are omitted from API requests. However, any field
10966	// with an empty value appearing in NullFields will be sent to the
10967	// server as null. It is an error if a field in this list has a
10968	// non-empty value. This may be used to include null fields in Patch
10969	// requests.
10970	NullFields []string `json:"-"`
10971}
10972
10973func (s *InstanceTemplate) MarshalJSON() ([]byte, error) {
10974	type NoMethod InstanceTemplate
10975	raw := NoMethod(*s)
10976	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10977}
10978
10979// InstanceTemplateList: A list of instance templates.
10980type InstanceTemplateList struct {
10981	// Id: [Output Only] Unique identifier for the resource; defined by the
10982	// server.
10983	Id string `json:"id,omitempty"`
10984
10985	// Items: A list of InstanceTemplate resources.
10986	Items []*InstanceTemplate `json:"items,omitempty"`
10987
10988	// Kind: [Output Only] The resource type, which is always
10989	// compute#instanceTemplatesListResponse for instance template lists.
10990	Kind string `json:"kind,omitempty"`
10991
10992	// NextPageToken: [Output Only] This token allows you to get the next
10993	// page of results for list requests. If the number of results is larger
10994	// than maxResults, use the nextPageToken as a value for the query
10995	// parameter pageToken in the next list request. Subsequent list
10996	// requests will have their own nextPageToken to continue paging through
10997	// the results.
10998	NextPageToken string `json:"nextPageToken,omitempty"`
10999
11000	// SelfLink: [Output Only] Server-defined URL for this resource.
11001	SelfLink string `json:"selfLink,omitempty"`
11002
11003	// Warning: [Output Only] Informational warning message.
11004	Warning *InstanceTemplateListWarning `json:"warning,omitempty"`
11005
11006	// ServerResponse contains the HTTP response code and headers from the
11007	// server.
11008	googleapi.ServerResponse `json:"-"`
11009
11010	// ForceSendFields is a list of field names (e.g. "Id") to
11011	// unconditionally include in API requests. By default, fields with
11012	// empty values are omitted from API requests. However, any non-pointer,
11013	// non-interface field appearing in ForceSendFields will be sent to the
11014	// server regardless of whether the field is empty or not. This may be
11015	// used to include empty fields in Patch requests.
11016	ForceSendFields []string `json:"-"`
11017
11018	// NullFields is a list of field names (e.g. "Id") to include in API
11019	// requests with the JSON null value. By default, fields with empty
11020	// values are omitted from API requests. However, any field with an
11021	// empty value appearing in NullFields will be sent to the server as
11022	// null. It is an error if a field in this list has a non-empty value.
11023	// This may be used to include null fields in Patch requests.
11024	NullFields []string `json:"-"`
11025}
11026
11027func (s *InstanceTemplateList) MarshalJSON() ([]byte, error) {
11028	type NoMethod InstanceTemplateList
11029	raw := NoMethod(*s)
11030	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11031}
11032
11033// InstanceTemplateListWarning: [Output Only] Informational warning
11034// message.
11035type InstanceTemplateListWarning struct {
11036	// Code: [Output Only] A warning code, if applicable. For example,
11037	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11038	// the response.
11039	//
11040	// Possible values:
11041	//   "CLEANUP_FAILED"
11042	//   "DEPRECATED_RESOURCE_USED"
11043	//   "DEPRECATED_TYPE_USED"
11044	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11045	//   "EXPERIMENTAL_TYPE_USED"
11046	//   "EXTERNAL_API_WARNING"
11047	//   "FIELD_VALUE_OVERRIDEN"
11048	//   "INJECTED_KERNELS_DEPRECATED"
11049	//   "MISSING_TYPE_DEPENDENCY"
11050	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11051	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11052	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11053	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11054	//   "NEXT_HOP_NOT_RUNNING"
11055	//   "NOT_CRITICAL_ERROR"
11056	//   "NO_RESULTS_ON_PAGE"
11057	//   "REQUIRED_TOS_AGREEMENT"
11058	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11059	//   "RESOURCE_NOT_DELETED"
11060	//   "SCHEMA_VALIDATION_IGNORED"
11061	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11062	//   "UNDECLARED_PROPERTIES"
11063	//   "UNREACHABLE"
11064	Code string `json:"code,omitempty"`
11065
11066	// Data: [Output Only] Metadata about this warning in key: value format.
11067	// For example:
11068	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11069	Data []*InstanceTemplateListWarningData `json:"data,omitempty"`
11070
11071	// Message: [Output Only] A human-readable description of the warning
11072	// code.
11073	Message string `json:"message,omitempty"`
11074
11075	// ForceSendFields is a list of field names (e.g. "Code") to
11076	// unconditionally include in API requests. By default, fields with
11077	// empty values are omitted from API requests. However, any non-pointer,
11078	// non-interface field appearing in ForceSendFields will be sent to the
11079	// server regardless of whether the field is empty or not. This may be
11080	// used to include empty fields in Patch requests.
11081	ForceSendFields []string `json:"-"`
11082
11083	// NullFields is a list of field names (e.g. "Code") to include in API
11084	// requests with the JSON null value. By default, fields with empty
11085	// values are omitted from API requests. However, any field with an
11086	// empty value appearing in NullFields will be sent to the server as
11087	// null. It is an error if a field in this list has a non-empty value.
11088	// This may be used to include null fields in Patch requests.
11089	NullFields []string `json:"-"`
11090}
11091
11092func (s *InstanceTemplateListWarning) MarshalJSON() ([]byte, error) {
11093	type NoMethod InstanceTemplateListWarning
11094	raw := NoMethod(*s)
11095	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11096}
11097
11098type InstanceTemplateListWarningData struct {
11099	// Key: [Output Only] A key that provides more detail on the warning
11100	// being returned. For example, for warnings where there are no results
11101	// in a list request for a particular zone, this key might be scope and
11102	// the key value might be the zone name. Other examples might be a key
11103	// indicating a deprecated resource and a suggested replacement, or a
11104	// warning about invalid network settings (for example, if an instance
11105	// attempts to perform IP forwarding but is not enabled for IP
11106	// forwarding).
11107	Key string `json:"key,omitempty"`
11108
11109	// Value: [Output Only] A warning data value corresponding to the key.
11110	Value string `json:"value,omitempty"`
11111
11112	// ForceSendFields is a list of field names (e.g. "Key") to
11113	// unconditionally include in API requests. By default, fields with
11114	// empty values are omitted from API requests. However, any non-pointer,
11115	// non-interface field appearing in ForceSendFields will be sent to the
11116	// server regardless of whether the field is empty or not. This may be
11117	// used to include empty fields in Patch requests.
11118	ForceSendFields []string `json:"-"`
11119
11120	// NullFields is a list of field names (e.g. "Key") to include in API
11121	// requests with the JSON null value. By default, fields with empty
11122	// values are omitted from API requests. However, any field with an
11123	// empty value appearing in NullFields will be sent to the server as
11124	// null. It is an error if a field in this list has a non-empty value.
11125	// This may be used to include null fields in Patch requests.
11126	NullFields []string `json:"-"`
11127}
11128
11129func (s *InstanceTemplateListWarningData) MarshalJSON() ([]byte, error) {
11130	type NoMethod InstanceTemplateListWarningData
11131	raw := NoMethod(*s)
11132	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11133}
11134
11135type InstanceWithNamedPorts struct {
11136	// Instance: [Output Only] The URL of the instance.
11137	Instance string `json:"instance,omitempty"`
11138
11139	// NamedPorts: [Output Only] The named ports that belong to this
11140	// instance group.
11141	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
11142
11143	// Status: [Output Only] The status of the instance.
11144	//
11145	// Possible values:
11146	//   "PROVISIONING"
11147	//   "RUNNING"
11148	//   "STAGING"
11149	//   "STOPPED"
11150	//   "STOPPING"
11151	//   "SUSPENDED"
11152	//   "SUSPENDING"
11153	//   "TERMINATED"
11154	Status string `json:"status,omitempty"`
11155
11156	// ForceSendFields is a list of field names (e.g. "Instance") to
11157	// unconditionally include in API requests. By default, fields with
11158	// empty values are omitted from API requests. However, any non-pointer,
11159	// non-interface field appearing in ForceSendFields will be sent to the
11160	// server regardless of whether the field is empty or not. This may be
11161	// used to include empty fields in Patch requests.
11162	ForceSendFields []string `json:"-"`
11163
11164	// NullFields is a list of field names (e.g. "Instance") to include in
11165	// API requests with the JSON null value. By default, fields with empty
11166	// values are omitted from API requests. However, any field with an
11167	// empty value appearing in NullFields will be sent to the server as
11168	// null. It is an error if a field in this list has a non-empty value.
11169	// This may be used to include null fields in Patch requests.
11170	NullFields []string `json:"-"`
11171}
11172
11173func (s *InstanceWithNamedPorts) MarshalJSON() ([]byte, error) {
11174	type NoMethod InstanceWithNamedPorts
11175	raw := NoMethod(*s)
11176	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11177}
11178
11179type InstancesScopedList struct {
11180	// Instances: [Output Only] List of instances contained in this scope.
11181	Instances []*Instance `json:"instances,omitempty"`
11182
11183	// Warning: [Output Only] Informational warning which replaces the list
11184	// of instances when the list is empty.
11185	Warning *InstancesScopedListWarning `json:"warning,omitempty"`
11186
11187	// ForceSendFields is a list of field names (e.g. "Instances") to
11188	// unconditionally include in API requests. By default, fields with
11189	// empty values are omitted from API requests. However, any non-pointer,
11190	// non-interface field appearing in ForceSendFields will be sent to the
11191	// server regardless of whether the field is empty or not. This may be
11192	// used to include empty fields in Patch requests.
11193	ForceSendFields []string `json:"-"`
11194
11195	// NullFields is a list of field names (e.g. "Instances") to include in
11196	// API requests with the JSON null value. By default, fields with empty
11197	// values are omitted from API requests. However, any field with an
11198	// empty value appearing in NullFields will be sent to the server as
11199	// null. It is an error if a field in this list has a non-empty value.
11200	// This may be used to include null fields in Patch requests.
11201	NullFields []string `json:"-"`
11202}
11203
11204func (s *InstancesScopedList) MarshalJSON() ([]byte, error) {
11205	type NoMethod InstancesScopedList
11206	raw := NoMethod(*s)
11207	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11208}
11209
11210// InstancesScopedListWarning: [Output Only] Informational warning which
11211// replaces the list of instances when the list is empty.
11212type InstancesScopedListWarning struct {
11213	// Code: [Output Only] A warning code, if applicable. For example,
11214	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11215	// the response.
11216	//
11217	// Possible values:
11218	//   "CLEANUP_FAILED"
11219	//   "DEPRECATED_RESOURCE_USED"
11220	//   "DEPRECATED_TYPE_USED"
11221	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11222	//   "EXPERIMENTAL_TYPE_USED"
11223	//   "EXTERNAL_API_WARNING"
11224	//   "FIELD_VALUE_OVERRIDEN"
11225	//   "INJECTED_KERNELS_DEPRECATED"
11226	//   "MISSING_TYPE_DEPENDENCY"
11227	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11228	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11229	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11230	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11231	//   "NEXT_HOP_NOT_RUNNING"
11232	//   "NOT_CRITICAL_ERROR"
11233	//   "NO_RESULTS_ON_PAGE"
11234	//   "REQUIRED_TOS_AGREEMENT"
11235	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11236	//   "RESOURCE_NOT_DELETED"
11237	//   "SCHEMA_VALIDATION_IGNORED"
11238	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11239	//   "UNDECLARED_PROPERTIES"
11240	//   "UNREACHABLE"
11241	Code string `json:"code,omitempty"`
11242
11243	// Data: [Output Only] Metadata about this warning in key: value format.
11244	// For example:
11245	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11246	Data []*InstancesScopedListWarningData `json:"data,omitempty"`
11247
11248	// Message: [Output Only] A human-readable description of the warning
11249	// code.
11250	Message string `json:"message,omitempty"`
11251
11252	// ForceSendFields is a list of field names (e.g. "Code") to
11253	// unconditionally include in API requests. By default, fields with
11254	// empty values are omitted from API requests. However, any non-pointer,
11255	// non-interface field appearing in ForceSendFields will be sent to the
11256	// server regardless of whether the field is empty or not. This may be
11257	// used to include empty fields in Patch requests.
11258	ForceSendFields []string `json:"-"`
11259
11260	// NullFields is a list of field names (e.g. "Code") to include in API
11261	// requests with the JSON null value. By default, fields with empty
11262	// values are omitted from API requests. However, any field with an
11263	// empty value appearing in NullFields will be sent to the server as
11264	// null. It is an error if a field in this list has a non-empty value.
11265	// This may be used to include null fields in Patch requests.
11266	NullFields []string `json:"-"`
11267}
11268
11269func (s *InstancesScopedListWarning) MarshalJSON() ([]byte, error) {
11270	type NoMethod InstancesScopedListWarning
11271	raw := NoMethod(*s)
11272	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11273}
11274
11275type InstancesScopedListWarningData struct {
11276	// Key: [Output Only] A key that provides more detail on the warning
11277	// being returned. For example, for warnings where there are no results
11278	// in a list request for a particular zone, this key might be scope and
11279	// the key value might be the zone name. Other examples might be a key
11280	// indicating a deprecated resource and a suggested replacement, or a
11281	// warning about invalid network settings (for example, if an instance
11282	// attempts to perform IP forwarding but is not enabled for IP
11283	// forwarding).
11284	Key string `json:"key,omitempty"`
11285
11286	// Value: [Output Only] A warning data value corresponding to the key.
11287	Value string `json:"value,omitempty"`
11288
11289	// ForceSendFields is a list of field names (e.g. "Key") to
11290	// unconditionally include in API requests. By default, fields with
11291	// empty values are omitted from API requests. However, any non-pointer,
11292	// non-interface field appearing in ForceSendFields will be sent to the
11293	// server regardless of whether the field is empty or not. This may be
11294	// used to include empty fields in Patch requests.
11295	ForceSendFields []string `json:"-"`
11296
11297	// NullFields is a list of field names (e.g. "Key") to include in API
11298	// requests with the JSON null value. By default, fields with empty
11299	// values are omitted from API requests. However, any field with an
11300	// empty value appearing in NullFields will be sent to the server as
11301	// null. It is an error if a field in this list has a non-empty value.
11302	// This may be used to include null fields in Patch requests.
11303	NullFields []string `json:"-"`
11304}
11305
11306func (s *InstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
11307	type NoMethod InstancesScopedListWarningData
11308	raw := NoMethod(*s)
11309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11310}
11311
11312type InstancesSetLabelsRequest struct {
11313	// LabelFingerprint: Fingerprint of the previous set of labels for this
11314	// resource, used to prevent conflicts. Provide the latest fingerprint
11315	// value when making a request to add or change labels.
11316	LabelFingerprint string `json:"labelFingerprint,omitempty"`
11317
11318	Labels map[string]string `json:"labels,omitempty"`
11319
11320	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") 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. "LabelFingerprint") to
11329	// include in API requests with the JSON null value. By default, fields
11330	// with empty values are omitted from API requests. However, any field
11331	// with an empty value appearing in NullFields will be sent to the
11332	// server as null. It is an error if a field in this list has a
11333	// non-empty value. This may be used to include null fields in Patch
11334	// requests.
11335	NullFields []string `json:"-"`
11336}
11337
11338func (s *InstancesSetLabelsRequest) MarshalJSON() ([]byte, error) {
11339	type NoMethod InstancesSetLabelsRequest
11340	raw := NoMethod(*s)
11341	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11342}
11343
11344type InstancesSetMachineResourcesRequest struct {
11345	// GuestAccelerators: List of the type and count of accelerator cards
11346	// attached to the instance.
11347	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
11348
11349	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
11350	// to unconditionally include in API requests. By default, fields with
11351	// empty values are omitted from API requests. However, any non-pointer,
11352	// non-interface field appearing in ForceSendFields will be sent to the
11353	// server regardless of whether the field is empty or not. This may be
11354	// used to include empty fields in Patch requests.
11355	ForceSendFields []string `json:"-"`
11356
11357	// NullFields is a list of field names (e.g. "GuestAccelerators") to
11358	// include in API requests with the JSON null value. By default, fields
11359	// with empty values are omitted from API requests. However, any field
11360	// with an empty value appearing in NullFields will be sent to the
11361	// server as null. It is an error if a field in this list has a
11362	// non-empty value. This may be used to include null fields in Patch
11363	// requests.
11364	NullFields []string `json:"-"`
11365}
11366
11367func (s *InstancesSetMachineResourcesRequest) MarshalJSON() ([]byte, error) {
11368	type NoMethod InstancesSetMachineResourcesRequest
11369	raw := NoMethod(*s)
11370	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11371}
11372
11373type InstancesSetMachineTypeRequest struct {
11374	// MachineType: Full or partial URL of the machine type resource. See
11375	// Machine Types for a full list of machine types. For example:
11376	// zones/us-central1-f/machineTypes/n1-standard-1
11377	MachineType string `json:"machineType,omitempty"`
11378
11379	// ForceSendFields is a list of field names (e.g. "MachineType") to
11380	// unconditionally include in API requests. By default, fields with
11381	// empty values are omitted from API requests. However, any non-pointer,
11382	// non-interface field appearing in ForceSendFields will be sent to the
11383	// server regardless of whether the field is empty or not. This may be
11384	// used to include empty fields in Patch requests.
11385	ForceSendFields []string `json:"-"`
11386
11387	// NullFields is a list of field names (e.g. "MachineType") to include
11388	// in API requests with the JSON null value. By default, fields with
11389	// empty values are omitted from API requests. However, any field with
11390	// an empty value appearing in NullFields will be sent to the server as
11391	// null. It is an error if a field in this list has a non-empty value.
11392	// This may be used to include null fields in Patch requests.
11393	NullFields []string `json:"-"`
11394}
11395
11396func (s *InstancesSetMachineTypeRequest) MarshalJSON() ([]byte, error) {
11397	type NoMethod InstancesSetMachineTypeRequest
11398	raw := NoMethod(*s)
11399	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11400}
11401
11402type InstancesSetMinCpuPlatformRequest struct {
11403	// MinCpuPlatform: Minimum cpu/platform this instance should be started
11404	// at.
11405	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
11406
11407	// ForceSendFields is a list of field names (e.g. "MinCpuPlatform") to
11408	// unconditionally include in API requests. By default, fields with
11409	// empty values are omitted from API requests. However, any non-pointer,
11410	// non-interface field appearing in ForceSendFields will be sent to the
11411	// server regardless of whether the field is empty or not. This may be
11412	// used to include empty fields in Patch requests.
11413	ForceSendFields []string `json:"-"`
11414
11415	// NullFields is a list of field names (e.g. "MinCpuPlatform") to
11416	// include in API requests with the JSON null value. By default, fields
11417	// with empty values are omitted from API requests. However, any field
11418	// with an empty value appearing in NullFields will be sent to the
11419	// server as null. It is an error if a field in this list has a
11420	// non-empty value. This may be used to include null fields in Patch
11421	// requests.
11422	NullFields []string `json:"-"`
11423}
11424
11425func (s *InstancesSetMinCpuPlatformRequest) MarshalJSON() ([]byte, error) {
11426	type NoMethod InstancesSetMinCpuPlatformRequest
11427	raw := NoMethod(*s)
11428	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11429}
11430
11431type InstancesSetServiceAccountRequest struct {
11432	// Email: Email address of the service account.
11433	Email string `json:"email,omitempty"`
11434
11435	// Scopes: The list of scopes to be made available for this service
11436	// account.
11437	Scopes []string `json:"scopes,omitempty"`
11438
11439	// ForceSendFields is a list of field names (e.g. "Email") to
11440	// unconditionally include in API requests. By default, fields with
11441	// empty values are omitted from API requests. However, any non-pointer,
11442	// non-interface field appearing in ForceSendFields will be sent to the
11443	// server regardless of whether the field is empty or not. This may be
11444	// used to include empty fields in Patch requests.
11445	ForceSendFields []string `json:"-"`
11446
11447	// NullFields is a list of field names (e.g. "Email") to include in API
11448	// requests with the JSON null value. By default, fields with empty
11449	// values are omitted from API requests. However, any field with an
11450	// empty value appearing in NullFields will be sent to the server as
11451	// null. It is an error if a field in this list has a non-empty value.
11452	// This may be used to include null fields in Patch requests.
11453	NullFields []string `json:"-"`
11454}
11455
11456func (s *InstancesSetServiceAccountRequest) MarshalJSON() ([]byte, error) {
11457	type NoMethod InstancesSetServiceAccountRequest
11458	raw := NoMethod(*s)
11459	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11460}
11461
11462type InstancesStartWithEncryptionKeyRequest struct {
11463	// Disks: Array of disks associated with this instance that are
11464	// protected with a customer-supplied encryption key.
11465	//
11466	// In order to start the instance, the disk url and its corresponding
11467	// key must be provided.
11468	//
11469	// If the disk is not protected with a customer-supplied encryption key
11470	// it should not be specified.
11471	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
11472
11473	// ForceSendFields is a list of field names (e.g. "Disks") to
11474	// unconditionally include in API requests. By default, fields with
11475	// empty values are omitted from API requests. However, any non-pointer,
11476	// non-interface field appearing in ForceSendFields will be sent to the
11477	// server regardless of whether the field is empty or not. This may be
11478	// used to include empty fields in Patch requests.
11479	ForceSendFields []string `json:"-"`
11480
11481	// NullFields is a list of field names (e.g. "Disks") to include in API
11482	// requests with the JSON null value. By default, fields with empty
11483	// values are omitted from API requests. However, any field with an
11484	// empty value appearing in NullFields will be sent to the server as
11485	// null. It is an error if a field in this list has a non-empty value.
11486	// This may be used to include null fields in Patch requests.
11487	NullFields []string `json:"-"`
11488}
11489
11490func (s *InstancesStartWithEncryptionKeyRequest) MarshalJSON() ([]byte, error) {
11491	type NoMethod InstancesStartWithEncryptionKeyRequest
11492	raw := NoMethod(*s)
11493	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11494}
11495
11496// Interconnect: Represents an Interconnects resource. The Interconnects
11497// resource is a dedicated connection between Google's network and your
11498// on-premises network. For more information, see the  Dedicated
11499// overview page. (== resource_for v1.interconnects ==) (== resource_for
11500// beta.interconnects ==)
11501type Interconnect struct {
11502	// AdminEnabled: Administrative status of the interconnect. When this is
11503	// set to true, the Interconnect is functional and can carry traffic.
11504	// When set to false, no packets can be carried over the interconnect
11505	// and no BGP routes are exchanged over it. By default, the status is
11506	// set to true.
11507	AdminEnabled bool `json:"adminEnabled,omitempty"`
11508
11509	// CircuitInfos: [Output Only] List of CircuitInfo objects, that
11510	// describe the individual circuits in this LAG.
11511	CircuitInfos []*InterconnectCircuitInfo `json:"circuitInfos,omitempty"`
11512
11513	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
11514	// format.
11515	CreationTimestamp string `json:"creationTimestamp,omitempty"`
11516
11517	// CustomerName: Customer name, to put in the Letter of Authorization as
11518	// the party authorized to request a crossconnect.
11519	CustomerName string `json:"customerName,omitempty"`
11520
11521	// Description: An optional description of this resource. Provide this
11522	// property when you create the resource.
11523	Description string `json:"description,omitempty"`
11524
11525	// ExpectedOutages: [Output Only] List of outages expected for this
11526	// Interconnect.
11527	ExpectedOutages []*InterconnectOutageNotification `json:"expectedOutages,omitempty"`
11528
11529	// GoogleIpAddress: [Output Only] IP address configured on the Google
11530	// side of the Interconnect link. This can be used only for ping tests.
11531	GoogleIpAddress string `json:"googleIpAddress,omitempty"`
11532
11533	// GoogleReferenceId: [Output Only] Google reference ID; to be used when
11534	// raising support tickets with Google or otherwise to debug backend
11535	// connectivity issues.
11536	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
11537
11538	// Id: [Output Only] The unique identifier for the resource. This
11539	// identifier is defined by the server.
11540	Id uint64 `json:"id,omitempty,string"`
11541
11542	// InterconnectAttachments: [Output Only] A list of the URLs of all
11543	// InterconnectAttachments configured to use this Interconnect.
11544	InterconnectAttachments []string `json:"interconnectAttachments,omitempty"`
11545
11546	// InterconnectType: Type of interconnect. Note that "IT_PRIVATE" has
11547	// been deprecated in favor of "DEDICATED"
11548	//
11549	// Possible values:
11550	//   "DEDICATED"
11551	//   "IT_PRIVATE"
11552	InterconnectType string `json:"interconnectType,omitempty"`
11553
11554	// Kind: [Output Only] Type of the resource. Always compute#interconnect
11555	// for interconnects.
11556	Kind string `json:"kind,omitempty"`
11557
11558	// LinkType: Type of link requested. This field indicates speed of each
11559	// of the links in the bundle, not the entire bundle. Only 10G per link
11560	// is allowed for a dedicated interconnect. Options: Ethernet_10G_LR
11561	//
11562	// Possible values:
11563	//   "LINK_TYPE_ETHERNET_10G_LR"
11564	LinkType string `json:"linkType,omitempty"`
11565
11566	// Location: URL of the InterconnectLocation object that represents
11567	// where this connection is to be provisioned.
11568	Location string `json:"location,omitempty"`
11569
11570	// Name: Name of the resource. Provided by the client when the resource
11571	// is created. The name must be 1-63 characters long, and comply with
11572	// RFC1035. Specifically, the name must be 1-63 characters long and
11573	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
11574	// the first character must be a lowercase letter, and all following
11575	// characters must be a dash, lowercase letter, or digit, except the
11576	// last character, which cannot be a dash.
11577	Name string `json:"name,omitempty"`
11578
11579	// NocContactEmail: Email address to contact the customer NOC for
11580	// operations and maintenance notifications regarding this Interconnect.
11581	// If specified, this will be used for notifications in addition to all
11582	// other forms described, such as Stackdriver logs alerting and Cloud
11583	// Notifications.
11584	NocContactEmail string `json:"nocContactEmail,omitempty"`
11585
11586	// OperationalStatus: [Output Only] The current status of whether or not
11587	// this Interconnect is functional.
11588	//
11589	// Possible values:
11590	//   "OS_ACTIVE"
11591	//   "OS_UNPROVISIONED"
11592	OperationalStatus string `json:"operationalStatus,omitempty"`
11593
11594	// PeerIpAddress: [Output Only] IP address configured on the customer
11595	// side of the Interconnect link. The customer should configure this IP
11596	// address during turnup when prompted by Google NOC. This can be used
11597	// only for ping tests.
11598	PeerIpAddress string `json:"peerIpAddress,omitempty"`
11599
11600	// ProvisionedLinkCount: [Output Only] Number of links actually
11601	// provisioned in this interconnect.
11602	ProvisionedLinkCount int64 `json:"provisionedLinkCount,omitempty"`
11603
11604	// RequestedLinkCount: Target number of physical links in the link
11605	// bundle, as requested by the customer.
11606	RequestedLinkCount int64 `json:"requestedLinkCount,omitempty"`
11607
11608	// SelfLink: [Output Only] Server-defined URL for the resource.
11609	SelfLink string `json:"selfLink,omitempty"`
11610
11611	// ServerResponse contains the HTTP response code and headers from the
11612	// server.
11613	googleapi.ServerResponse `json:"-"`
11614
11615	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
11616	// unconditionally include in API requests. By default, fields with
11617	// empty values are omitted from API requests. However, any non-pointer,
11618	// non-interface field appearing in ForceSendFields will be sent to the
11619	// server regardless of whether the field is empty or not. This may be
11620	// used to include empty fields in Patch requests.
11621	ForceSendFields []string `json:"-"`
11622
11623	// NullFields is a list of field names (e.g. "AdminEnabled") to include
11624	// in API requests with the JSON null value. By default, fields with
11625	// empty values are omitted from API requests. However, any field with
11626	// an empty value appearing in NullFields will be sent to the server as
11627	// null. It is an error if a field in this list has a non-empty value.
11628	// This may be used to include null fields in Patch requests.
11629	NullFields []string `json:"-"`
11630}
11631
11632func (s *Interconnect) MarshalJSON() ([]byte, error) {
11633	type NoMethod Interconnect
11634	raw := NoMethod(*s)
11635	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11636}
11637
11638// InterconnectAttachment: Represents an InterconnectAttachment (VLAN
11639// attachment) resource. For more information, see  Creating VLAN
11640// Attachments. (== resource_for beta.interconnectAttachments ==) (==
11641// resource_for v1.interconnectAttachments ==)
11642type InterconnectAttachment struct {
11643	// CloudRouterIpAddress: [Output Only] IPv4 address + prefix length to
11644	// be configured on Cloud Router Interface for this interconnect
11645	// attachment.
11646	CloudRouterIpAddress string `json:"cloudRouterIpAddress,omitempty"`
11647
11648	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
11649	// format.
11650	CreationTimestamp string `json:"creationTimestamp,omitempty"`
11651
11652	// CustomerRouterIpAddress: [Output Only] IPv4 address + prefix length
11653	// to be configured on the customer router subinterface for this
11654	// interconnect attachment.
11655	CustomerRouterIpAddress string `json:"customerRouterIpAddress,omitempty"`
11656
11657	// Description: An optional description of this resource.
11658	Description string `json:"description,omitempty"`
11659
11660	// GoogleReferenceId: [Output Only] Google reference ID, to be used when
11661	// raising support tickets with Google or otherwise to debug backend
11662	// connectivity issues.
11663	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
11664
11665	// Id: [Output Only] The unique identifier for the resource. This
11666	// identifier is defined by the server.
11667	Id uint64 `json:"id,omitempty,string"`
11668
11669	// Interconnect: URL of the underlying Interconnect object that this
11670	// attachment's traffic will traverse through.
11671	Interconnect string `json:"interconnect,omitempty"`
11672
11673	// Kind: [Output Only] Type of the resource. Always
11674	// compute#interconnectAttachment for interconnect attachments.
11675	Kind string `json:"kind,omitempty"`
11676
11677	// Name: Name of the resource. Provided by the client when the resource
11678	// is created. The name must be 1-63 characters long, and comply with
11679	// RFC1035. Specifically, the name must be 1-63 characters long and
11680	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
11681	// the first character must be a lowercase letter, and all following
11682	// characters must be a dash, lowercase letter, or digit, except the
11683	// last character, which cannot be a dash.
11684	Name string `json:"name,omitempty"`
11685
11686	// OperationalStatus: [Output Only] The current status of whether or not
11687	// this interconnect attachment is functional.
11688	//
11689	// Possible values:
11690	//   "OS_ACTIVE"
11691	//   "OS_UNPROVISIONED"
11692	OperationalStatus string `json:"operationalStatus,omitempty"`
11693
11694	// PrivateInterconnectInfo: [Output Only] Information specific to an
11695	// InterconnectAttachment. This property is populated if the
11696	// interconnect that this is attached to is of type DEDICATED.
11697	PrivateInterconnectInfo *InterconnectAttachmentPrivateInfo `json:"privateInterconnectInfo,omitempty"`
11698
11699	// Region: [Output Only] URL of the region where the regional
11700	// interconnect attachment resides. You must specify this field as part
11701	// of the HTTP request URL. It is not settable as a field in the request
11702	// body.
11703	Region string `json:"region,omitempty"`
11704
11705	// Router: URL of the cloud router to be used for dynamic routing. This
11706	// router must be in the same region as this InterconnectAttachment. The
11707	// InterconnectAttachment will automatically connect the Interconnect to
11708	// the network & region within which the Cloud Router is configured.
11709	Router string `json:"router,omitempty"`
11710
11711	// SelfLink: [Output Only] Server-defined URL for the resource.
11712	SelfLink string `json:"selfLink,omitempty"`
11713
11714	// ServerResponse contains the HTTP response code and headers from the
11715	// server.
11716	googleapi.ServerResponse `json:"-"`
11717
11718	// ForceSendFields is a list of field names (e.g.
11719	// "CloudRouterIpAddress") to unconditionally include in API requests.
11720	// By default, fields with empty values are omitted from API requests.
11721	// However, any non-pointer, non-interface field appearing in
11722	// ForceSendFields will be sent to the server regardless of whether the
11723	// field is empty or not. This may be used to include empty fields in
11724	// Patch requests.
11725	ForceSendFields []string `json:"-"`
11726
11727	// NullFields is a list of field names (e.g. "CloudRouterIpAddress") to
11728	// include in API requests with the JSON null value. By default, fields
11729	// with empty values are omitted from API requests. However, any field
11730	// with an empty value appearing in NullFields will be sent to the
11731	// server as null. It is an error if a field in this list has a
11732	// non-empty value. This may be used to include null fields in Patch
11733	// requests.
11734	NullFields []string `json:"-"`
11735}
11736
11737func (s *InterconnectAttachment) MarshalJSON() ([]byte, error) {
11738	type NoMethod InterconnectAttachment
11739	raw := NoMethod(*s)
11740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11741}
11742
11743type InterconnectAttachmentAggregatedList struct {
11744	// Id: [Output Only] Unique identifier for the resource; defined by the
11745	// server.
11746	Id string `json:"id,omitempty"`
11747
11748	// Items: A list of InterconnectAttachmentsScopedList resources.
11749	Items map[string]InterconnectAttachmentsScopedList `json:"items,omitempty"`
11750
11751	// Kind: [Output Only] Type of resource. Always
11752	// compute#interconnectAttachmentAggregatedList for aggregated lists of
11753	// interconnect attachments.
11754	Kind string `json:"kind,omitempty"`
11755
11756	// NextPageToken: [Output Only] This token allows you to get the next
11757	// page of results for list requests. If the number of results is larger
11758	// than maxResults, use the nextPageToken as a value for the query
11759	// parameter pageToken in the next list request. Subsequent list
11760	// requests will have their own nextPageToken to continue paging through
11761	// the results.
11762	NextPageToken string `json:"nextPageToken,omitempty"`
11763
11764	// SelfLink: [Output Only] Server-defined URL for this resource.
11765	SelfLink string `json:"selfLink,omitempty"`
11766
11767	// Warning: [Output Only] Informational warning message.
11768	Warning *InterconnectAttachmentAggregatedListWarning `json:"warning,omitempty"`
11769
11770	// ServerResponse contains the HTTP response code and headers from the
11771	// server.
11772	googleapi.ServerResponse `json:"-"`
11773
11774	// ForceSendFields is a list of field names (e.g. "Id") to
11775	// unconditionally include in API requests. By default, fields with
11776	// empty values are omitted from API requests. However, any non-pointer,
11777	// non-interface field appearing in ForceSendFields will be sent to the
11778	// server regardless of whether the field is empty or not. This may be
11779	// used to include empty fields in Patch requests.
11780	ForceSendFields []string `json:"-"`
11781
11782	// NullFields is a list of field names (e.g. "Id") to include in API
11783	// requests with the JSON null value. By default, fields with empty
11784	// values are omitted from API requests. However, any field with an
11785	// empty value appearing in NullFields will be sent to the server as
11786	// null. It is an error if a field in this list has a non-empty value.
11787	// This may be used to include null fields in Patch requests.
11788	NullFields []string `json:"-"`
11789}
11790
11791func (s *InterconnectAttachmentAggregatedList) MarshalJSON() ([]byte, error) {
11792	type NoMethod InterconnectAttachmentAggregatedList
11793	raw := NoMethod(*s)
11794	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11795}
11796
11797// InterconnectAttachmentAggregatedListWarning: [Output Only]
11798// Informational warning message.
11799type InterconnectAttachmentAggregatedListWarning struct {
11800	// Code: [Output Only] A warning code, if applicable. For example,
11801	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11802	// the response.
11803	//
11804	// Possible values:
11805	//   "CLEANUP_FAILED"
11806	//   "DEPRECATED_RESOURCE_USED"
11807	//   "DEPRECATED_TYPE_USED"
11808	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11809	//   "EXPERIMENTAL_TYPE_USED"
11810	//   "EXTERNAL_API_WARNING"
11811	//   "FIELD_VALUE_OVERRIDEN"
11812	//   "INJECTED_KERNELS_DEPRECATED"
11813	//   "MISSING_TYPE_DEPENDENCY"
11814	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11815	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11816	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11817	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11818	//   "NEXT_HOP_NOT_RUNNING"
11819	//   "NOT_CRITICAL_ERROR"
11820	//   "NO_RESULTS_ON_PAGE"
11821	//   "REQUIRED_TOS_AGREEMENT"
11822	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11823	//   "RESOURCE_NOT_DELETED"
11824	//   "SCHEMA_VALIDATION_IGNORED"
11825	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11826	//   "UNDECLARED_PROPERTIES"
11827	//   "UNREACHABLE"
11828	Code string `json:"code,omitempty"`
11829
11830	// Data: [Output Only] Metadata about this warning in key: value format.
11831	// For example:
11832	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11833	Data []*InterconnectAttachmentAggregatedListWarningData `json:"data,omitempty"`
11834
11835	// Message: [Output Only] A human-readable description of the warning
11836	// code.
11837	Message string `json:"message,omitempty"`
11838
11839	// ForceSendFields is a list of field names (e.g. "Code") to
11840	// unconditionally include in API requests. By default, fields with
11841	// empty values are omitted from API requests. However, any non-pointer,
11842	// non-interface field appearing in ForceSendFields will be sent to the
11843	// server regardless of whether the field is empty or not. This may be
11844	// used to include empty fields in Patch requests.
11845	ForceSendFields []string `json:"-"`
11846
11847	// NullFields is a list of field names (e.g. "Code") to include in API
11848	// requests with the JSON null value. By default, fields with empty
11849	// values are omitted from API requests. However, any field with an
11850	// empty value appearing in NullFields will be sent to the server as
11851	// null. It is an error if a field in this list has a non-empty value.
11852	// This may be used to include null fields in Patch requests.
11853	NullFields []string `json:"-"`
11854}
11855
11856func (s *InterconnectAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
11857	type NoMethod InterconnectAttachmentAggregatedListWarning
11858	raw := NoMethod(*s)
11859	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11860}
11861
11862type InterconnectAttachmentAggregatedListWarningData struct {
11863	// Key: [Output Only] A key that provides more detail on the warning
11864	// being returned. For example, for warnings where there are no results
11865	// in a list request for a particular zone, this key might be scope and
11866	// the key value might be the zone name. Other examples might be a key
11867	// indicating a deprecated resource and a suggested replacement, or a
11868	// warning about invalid network settings (for example, if an instance
11869	// attempts to perform IP forwarding but is not enabled for IP
11870	// forwarding).
11871	Key string `json:"key,omitempty"`
11872
11873	// Value: [Output Only] A warning data value corresponding to the key.
11874	Value string `json:"value,omitempty"`
11875
11876	// ForceSendFields is a list of field names (e.g. "Key") to
11877	// unconditionally include in API requests. By default, fields with
11878	// empty values are omitted from API requests. However, any non-pointer,
11879	// non-interface field appearing in ForceSendFields will be sent to the
11880	// server regardless of whether the field is empty or not. This may be
11881	// used to include empty fields in Patch requests.
11882	ForceSendFields []string `json:"-"`
11883
11884	// NullFields is a list of field names (e.g. "Key") to include in API
11885	// requests with the JSON null value. By default, fields with empty
11886	// values are omitted from API requests. However, any field with an
11887	// empty value appearing in NullFields will be sent to the server as
11888	// null. It is an error if a field in this list has a non-empty value.
11889	// This may be used to include null fields in Patch requests.
11890	NullFields []string `json:"-"`
11891}
11892
11893func (s *InterconnectAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
11894	type NoMethod InterconnectAttachmentAggregatedListWarningData
11895	raw := NoMethod(*s)
11896	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11897}
11898
11899// InterconnectAttachmentList: Response to the list request, and
11900// contains a list of interconnect attachments.
11901type InterconnectAttachmentList struct {
11902	// Id: [Output Only] Unique identifier for the resource; defined by the
11903	// server.
11904	Id string `json:"id,omitempty"`
11905
11906	// Items: A list of InterconnectAttachment resources.
11907	Items []*InterconnectAttachment `json:"items,omitempty"`
11908
11909	// Kind: [Output Only] Type of resource. Always
11910	// compute#interconnectAttachmentList for lists of interconnect
11911	// attachments.
11912	Kind string `json:"kind,omitempty"`
11913
11914	// NextPageToken: [Output Only] This token allows you to get the next
11915	// page of results for list requests. If the number of results is larger
11916	// than maxResults, use the nextPageToken as a value for the query
11917	// parameter pageToken in the next list request. Subsequent list
11918	// requests will have their own nextPageToken to continue paging through
11919	// the results.
11920	NextPageToken string `json:"nextPageToken,omitempty"`
11921
11922	// SelfLink: [Output Only] Server-defined URL for this resource.
11923	SelfLink string `json:"selfLink,omitempty"`
11924
11925	// Warning: [Output Only] Informational warning message.
11926	Warning *InterconnectAttachmentListWarning `json:"warning,omitempty"`
11927
11928	// ServerResponse contains the HTTP response code and headers from the
11929	// server.
11930	googleapi.ServerResponse `json:"-"`
11931
11932	// ForceSendFields is a list of field names (e.g. "Id") to
11933	// unconditionally include in API requests. By default, fields with
11934	// empty values are omitted from API requests. However, any non-pointer,
11935	// non-interface field appearing in ForceSendFields will be sent to the
11936	// server regardless of whether the field is empty or not. This may be
11937	// used to include empty fields in Patch requests.
11938	ForceSendFields []string `json:"-"`
11939
11940	// NullFields is a list of field names (e.g. "Id") to include in API
11941	// requests with the JSON null value. By default, fields with empty
11942	// values are omitted from API requests. However, any field with an
11943	// empty value appearing in NullFields will be sent to the server as
11944	// null. It is an error if a field in this list has a non-empty value.
11945	// This may be used to include null fields in Patch requests.
11946	NullFields []string `json:"-"`
11947}
11948
11949func (s *InterconnectAttachmentList) MarshalJSON() ([]byte, error) {
11950	type NoMethod InterconnectAttachmentList
11951	raw := NoMethod(*s)
11952	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11953}
11954
11955// InterconnectAttachmentListWarning: [Output Only] Informational
11956// warning message.
11957type InterconnectAttachmentListWarning struct {
11958	// Code: [Output Only] A warning code, if applicable. For example,
11959	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11960	// the response.
11961	//
11962	// Possible values:
11963	//   "CLEANUP_FAILED"
11964	//   "DEPRECATED_RESOURCE_USED"
11965	//   "DEPRECATED_TYPE_USED"
11966	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11967	//   "EXPERIMENTAL_TYPE_USED"
11968	//   "EXTERNAL_API_WARNING"
11969	//   "FIELD_VALUE_OVERRIDEN"
11970	//   "INJECTED_KERNELS_DEPRECATED"
11971	//   "MISSING_TYPE_DEPENDENCY"
11972	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11973	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11974	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11975	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11976	//   "NEXT_HOP_NOT_RUNNING"
11977	//   "NOT_CRITICAL_ERROR"
11978	//   "NO_RESULTS_ON_PAGE"
11979	//   "REQUIRED_TOS_AGREEMENT"
11980	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11981	//   "RESOURCE_NOT_DELETED"
11982	//   "SCHEMA_VALIDATION_IGNORED"
11983	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11984	//   "UNDECLARED_PROPERTIES"
11985	//   "UNREACHABLE"
11986	Code string `json:"code,omitempty"`
11987
11988	// Data: [Output Only] Metadata about this warning in key: value format.
11989	// For example:
11990	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11991	Data []*InterconnectAttachmentListWarningData `json:"data,omitempty"`
11992
11993	// Message: [Output Only] A human-readable description of the warning
11994	// code.
11995	Message string `json:"message,omitempty"`
11996
11997	// ForceSendFields is a list of field names (e.g. "Code") to
11998	// unconditionally include in API requests. By default, fields with
11999	// empty values are omitted from API requests. However, any non-pointer,
12000	// non-interface field appearing in ForceSendFields will be sent to the
12001	// server regardless of whether the field is empty or not. This may be
12002	// used to include empty fields in Patch requests.
12003	ForceSendFields []string `json:"-"`
12004
12005	// NullFields is a list of field names (e.g. "Code") to include in API
12006	// requests with the JSON null value. By default, fields with empty
12007	// values are omitted from API requests. However, any field with an
12008	// empty value appearing in NullFields will be sent to the server as
12009	// null. It is an error if a field in this list has a non-empty value.
12010	// This may be used to include null fields in Patch requests.
12011	NullFields []string `json:"-"`
12012}
12013
12014func (s *InterconnectAttachmentListWarning) MarshalJSON() ([]byte, error) {
12015	type NoMethod InterconnectAttachmentListWarning
12016	raw := NoMethod(*s)
12017	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12018}
12019
12020type InterconnectAttachmentListWarningData struct {
12021	// Key: [Output Only] A key that provides more detail on the warning
12022	// being returned. For example, for warnings where there are no results
12023	// in a list request for a particular zone, this key might be scope and
12024	// the key value might be the zone name. Other examples might be a key
12025	// indicating a deprecated resource and a suggested replacement, or a
12026	// warning about invalid network settings (for example, if an instance
12027	// attempts to perform IP forwarding but is not enabled for IP
12028	// forwarding).
12029	Key string `json:"key,omitempty"`
12030
12031	// Value: [Output Only] A warning data value corresponding to the key.
12032	Value string `json:"value,omitempty"`
12033
12034	// ForceSendFields is a list of field names (e.g. "Key") to
12035	// unconditionally include in API requests. By default, fields with
12036	// empty values are omitted from API requests. However, any non-pointer,
12037	// non-interface field appearing in ForceSendFields will be sent to the
12038	// server regardless of whether the field is empty or not. This may be
12039	// used to include empty fields in Patch requests.
12040	ForceSendFields []string `json:"-"`
12041
12042	// NullFields is a list of field names (e.g. "Key") to include in API
12043	// requests with the JSON null value. By default, fields with empty
12044	// values are omitted from API requests. However, any field with an
12045	// empty value appearing in NullFields will be sent to the server as
12046	// null. It is an error if a field in this list has a non-empty value.
12047	// This may be used to include null fields in Patch requests.
12048	NullFields []string `json:"-"`
12049}
12050
12051func (s *InterconnectAttachmentListWarningData) MarshalJSON() ([]byte, error) {
12052	type NoMethod InterconnectAttachmentListWarningData
12053	raw := NoMethod(*s)
12054	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12055}
12056
12057// InterconnectAttachmentPrivateInfo: Information for an interconnect
12058// attachment when this belongs to an interconnect of type DEDICATED.
12059type InterconnectAttachmentPrivateInfo struct {
12060	// Tag8021q: [Output Only] 802.1q encapsulation tag to be used for
12061	// traffic between Google and the customer, going to and from this
12062	// network and region.
12063	Tag8021q int64 `json:"tag8021q,omitempty"`
12064
12065	// ForceSendFields is a list of field names (e.g. "Tag8021q") 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. "Tag8021q") to include in
12074	// API 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 *InterconnectAttachmentPrivateInfo) MarshalJSON() ([]byte, error) {
12083	type NoMethod InterconnectAttachmentPrivateInfo
12084	raw := NoMethod(*s)
12085	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12086}
12087
12088type InterconnectAttachmentsScopedList struct {
12089	// InterconnectAttachments: List of interconnect attachments contained
12090	// in this scope.
12091	InterconnectAttachments []*InterconnectAttachment `json:"interconnectAttachments,omitempty"`
12092
12093	// Warning: Informational warning which replaces the list of addresses
12094	// when the list is empty.
12095	Warning *InterconnectAttachmentsScopedListWarning `json:"warning,omitempty"`
12096
12097	// ForceSendFields is a list of field names (e.g.
12098	// "InterconnectAttachments") to unconditionally include in API
12099	// requests. By default, fields with empty values are omitted from API
12100	// requests. However, any non-pointer, non-interface field appearing in
12101	// ForceSendFields will be sent to the server regardless of whether the
12102	// field is empty or not. This may be used to include empty fields in
12103	// Patch requests.
12104	ForceSendFields []string `json:"-"`
12105
12106	// NullFields is a list of field names (e.g. "InterconnectAttachments")
12107	// to include in API requests with the JSON null value. By default,
12108	// fields with empty values are omitted from API requests. However, any
12109	// field with an empty value appearing in NullFields will be sent to the
12110	// server as null. It is an error if a field in this list has a
12111	// non-empty value. This may be used to include null fields in Patch
12112	// requests.
12113	NullFields []string `json:"-"`
12114}
12115
12116func (s *InterconnectAttachmentsScopedList) MarshalJSON() ([]byte, error) {
12117	type NoMethod InterconnectAttachmentsScopedList
12118	raw := NoMethod(*s)
12119	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12120}
12121
12122// InterconnectAttachmentsScopedListWarning: Informational warning which
12123// replaces the list of addresses when the list is empty.
12124type InterconnectAttachmentsScopedListWarning struct {
12125	// Code: [Output Only] A warning code, if applicable. For example,
12126	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12127	// the response.
12128	//
12129	// Possible values:
12130	//   "CLEANUP_FAILED"
12131	//   "DEPRECATED_RESOURCE_USED"
12132	//   "DEPRECATED_TYPE_USED"
12133	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12134	//   "EXPERIMENTAL_TYPE_USED"
12135	//   "EXTERNAL_API_WARNING"
12136	//   "FIELD_VALUE_OVERRIDEN"
12137	//   "INJECTED_KERNELS_DEPRECATED"
12138	//   "MISSING_TYPE_DEPENDENCY"
12139	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12140	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12141	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12142	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12143	//   "NEXT_HOP_NOT_RUNNING"
12144	//   "NOT_CRITICAL_ERROR"
12145	//   "NO_RESULTS_ON_PAGE"
12146	//   "REQUIRED_TOS_AGREEMENT"
12147	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12148	//   "RESOURCE_NOT_DELETED"
12149	//   "SCHEMA_VALIDATION_IGNORED"
12150	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12151	//   "UNDECLARED_PROPERTIES"
12152	//   "UNREACHABLE"
12153	Code string `json:"code,omitempty"`
12154
12155	// Data: [Output Only] Metadata about this warning in key: value format.
12156	// For example:
12157	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12158	Data []*InterconnectAttachmentsScopedListWarningData `json:"data,omitempty"`
12159
12160	// Message: [Output Only] A human-readable description of the warning
12161	// code.
12162	Message string `json:"message,omitempty"`
12163
12164	// ForceSendFields is a list of field names (e.g. "Code") to
12165	// unconditionally include in API requests. By default, fields with
12166	// empty values are omitted from API requests. However, any non-pointer,
12167	// non-interface field appearing in ForceSendFields will be sent to the
12168	// server regardless of whether the field is empty or not. This may be
12169	// used to include empty fields in Patch requests.
12170	ForceSendFields []string `json:"-"`
12171
12172	// NullFields is a list of field names (e.g. "Code") to include in API
12173	// requests with the JSON null value. By default, fields with empty
12174	// values are omitted from API requests. However, any field with an
12175	// empty value appearing in NullFields will be sent to the server as
12176	// null. It is an error if a field in this list has a non-empty value.
12177	// This may be used to include null fields in Patch requests.
12178	NullFields []string `json:"-"`
12179}
12180
12181func (s *InterconnectAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) {
12182	type NoMethod InterconnectAttachmentsScopedListWarning
12183	raw := NoMethod(*s)
12184	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12185}
12186
12187type InterconnectAttachmentsScopedListWarningData struct {
12188	// Key: [Output Only] A key that provides more detail on the warning
12189	// being returned. For example, for warnings where there are no results
12190	// in a list request for a particular zone, this key might be scope and
12191	// the key value might be the zone name. Other examples might be a key
12192	// indicating a deprecated resource and a suggested replacement, or a
12193	// warning about invalid network settings (for example, if an instance
12194	// attempts to perform IP forwarding but is not enabled for IP
12195	// forwarding).
12196	Key string `json:"key,omitempty"`
12197
12198	// Value: [Output Only] A warning data value corresponding to the key.
12199	Value string `json:"value,omitempty"`
12200
12201	// ForceSendFields is a list of field names (e.g. "Key") to
12202	// unconditionally include in API requests. By default, fields with
12203	// empty values are omitted from API requests. However, any non-pointer,
12204	// non-interface field appearing in ForceSendFields will be sent to the
12205	// server regardless of whether the field is empty or not. This may be
12206	// used to include empty fields in Patch requests.
12207	ForceSendFields []string `json:"-"`
12208
12209	// NullFields is a list of field names (e.g. "Key") to include in API
12210	// requests with the JSON null value. By default, fields with empty
12211	// values are omitted from API requests. However, any field with an
12212	// empty value appearing in NullFields will be sent to the server as
12213	// null. It is an error if a field in this list has a non-empty value.
12214	// This may be used to include null fields in Patch requests.
12215	NullFields []string `json:"-"`
12216}
12217
12218func (s *InterconnectAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
12219	type NoMethod InterconnectAttachmentsScopedListWarningData
12220	raw := NoMethod(*s)
12221	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12222}
12223
12224// InterconnectCircuitInfo: Describes a single physical circuit between
12225// the Customer and Google. CircuitInfo objects are created by Google,
12226// so all fields are output only. Next id: 4
12227type InterconnectCircuitInfo struct {
12228	// CustomerDemarcId: Customer-side demarc ID for this circuit.
12229	CustomerDemarcId string `json:"customerDemarcId,omitempty"`
12230
12231	// GoogleCircuitId: Google-assigned unique ID for this circuit. Assigned
12232	// at circuit turn-up.
12233	GoogleCircuitId string `json:"googleCircuitId,omitempty"`
12234
12235	// GoogleDemarcId: Google-side demarc ID for this circuit. Assigned at
12236	// circuit turn-up and provided by Google to the customer in the LOA.
12237	GoogleDemarcId string `json:"googleDemarcId,omitempty"`
12238
12239	// ForceSendFields is a list of field names (e.g. "CustomerDemarcId") to
12240	// unconditionally include in API requests. By default, fields with
12241	// empty values are omitted from API requests. However, any non-pointer,
12242	// non-interface field appearing in ForceSendFields will be sent to the
12243	// server regardless of whether the field is empty or not. This may be
12244	// used to include empty fields in Patch requests.
12245	ForceSendFields []string `json:"-"`
12246
12247	// NullFields is a list of field names (e.g. "CustomerDemarcId") to
12248	// include in API requests with the JSON null value. By default, fields
12249	// with empty values are omitted from API requests. However, any field
12250	// with an empty value appearing in NullFields will be sent to the
12251	// server as null. It is an error if a field in this list has a
12252	// non-empty value. This may be used to include null fields in Patch
12253	// requests.
12254	NullFields []string `json:"-"`
12255}
12256
12257func (s *InterconnectCircuitInfo) MarshalJSON() ([]byte, error) {
12258	type NoMethod InterconnectCircuitInfo
12259	raw := NoMethod(*s)
12260	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12261}
12262
12263// InterconnectList: Response to the list request, and contains a list
12264// of interconnects.
12265type InterconnectList struct {
12266	// Id: [Output Only] Unique identifier for the resource; defined by the
12267	// server.
12268	Id string `json:"id,omitempty"`
12269
12270	// Items: A list of Interconnect resources.
12271	Items []*Interconnect `json:"items,omitempty"`
12272
12273	// Kind: [Output Only] Type of resource. Always compute#interconnectList
12274	// for lists of interconnects.
12275	Kind string `json:"kind,omitempty"`
12276
12277	// NextPageToken: [Output Only] This token allows you to get the next
12278	// page of results for list requests. If the number of results is larger
12279	// than maxResults, use the nextPageToken as a value for the query
12280	// parameter pageToken in the next list request. Subsequent list
12281	// requests will have their own nextPageToken to continue paging through
12282	// the results.
12283	NextPageToken string `json:"nextPageToken,omitempty"`
12284
12285	// SelfLink: [Output Only] Server-defined URL for this resource.
12286	SelfLink string `json:"selfLink,omitempty"`
12287
12288	// Warning: [Output Only] Informational warning message.
12289	Warning *InterconnectListWarning `json:"warning,omitempty"`
12290
12291	// ServerResponse contains the HTTP response code and headers from the
12292	// server.
12293	googleapi.ServerResponse `json:"-"`
12294
12295	// ForceSendFields is a list of field names (e.g. "Id") to
12296	// unconditionally include in API requests. By default, fields with
12297	// empty values are omitted from API requests. However, any non-pointer,
12298	// non-interface field appearing in ForceSendFields will be sent to the
12299	// server regardless of whether the field is empty or not. This may be
12300	// used to include empty fields in Patch requests.
12301	ForceSendFields []string `json:"-"`
12302
12303	// NullFields is a list of field names (e.g. "Id") to include in API
12304	// requests with the JSON null value. By default, fields with empty
12305	// values are omitted from API requests. However, any field with an
12306	// empty value appearing in NullFields will be sent to the server as
12307	// null. It is an error if a field in this list has a non-empty value.
12308	// This may be used to include null fields in Patch requests.
12309	NullFields []string `json:"-"`
12310}
12311
12312func (s *InterconnectList) MarshalJSON() ([]byte, error) {
12313	type NoMethod InterconnectList
12314	raw := NoMethod(*s)
12315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12316}
12317
12318// InterconnectListWarning: [Output Only] Informational warning message.
12319type InterconnectListWarning struct {
12320	// Code: [Output Only] A warning code, if applicable. For example,
12321	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12322	// the response.
12323	//
12324	// Possible values:
12325	//   "CLEANUP_FAILED"
12326	//   "DEPRECATED_RESOURCE_USED"
12327	//   "DEPRECATED_TYPE_USED"
12328	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12329	//   "EXPERIMENTAL_TYPE_USED"
12330	//   "EXTERNAL_API_WARNING"
12331	//   "FIELD_VALUE_OVERRIDEN"
12332	//   "INJECTED_KERNELS_DEPRECATED"
12333	//   "MISSING_TYPE_DEPENDENCY"
12334	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12335	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12336	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12337	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12338	//   "NEXT_HOP_NOT_RUNNING"
12339	//   "NOT_CRITICAL_ERROR"
12340	//   "NO_RESULTS_ON_PAGE"
12341	//   "REQUIRED_TOS_AGREEMENT"
12342	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12343	//   "RESOURCE_NOT_DELETED"
12344	//   "SCHEMA_VALIDATION_IGNORED"
12345	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12346	//   "UNDECLARED_PROPERTIES"
12347	//   "UNREACHABLE"
12348	Code string `json:"code,omitempty"`
12349
12350	// Data: [Output Only] Metadata about this warning in key: value format.
12351	// For example:
12352	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12353	Data []*InterconnectListWarningData `json:"data,omitempty"`
12354
12355	// Message: [Output Only] A human-readable description of the warning
12356	// code.
12357	Message string `json:"message,omitempty"`
12358
12359	// ForceSendFields is a list of field names (e.g. "Code") to
12360	// unconditionally include in API requests. By default, fields with
12361	// empty values are omitted from API requests. However, any non-pointer,
12362	// non-interface field appearing in ForceSendFields will be sent to the
12363	// server regardless of whether the field is empty or not. This may be
12364	// used to include empty fields in Patch requests.
12365	ForceSendFields []string `json:"-"`
12366
12367	// NullFields is a list of field names (e.g. "Code") to include in API
12368	// requests with the JSON null value. By default, fields with empty
12369	// values are omitted from API requests. However, any field with an
12370	// empty value appearing in NullFields will be sent to the server as
12371	// null. It is an error if a field in this list has a non-empty value.
12372	// This may be used to include null fields in Patch requests.
12373	NullFields []string `json:"-"`
12374}
12375
12376func (s *InterconnectListWarning) MarshalJSON() ([]byte, error) {
12377	type NoMethod InterconnectListWarning
12378	raw := NoMethod(*s)
12379	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12380}
12381
12382type InterconnectListWarningData struct {
12383	// Key: [Output Only] A key that provides more detail on the warning
12384	// being returned. For example, for warnings where there are no results
12385	// in a list request for a particular zone, this key might be scope and
12386	// the key value might be the zone name. Other examples might be a key
12387	// indicating a deprecated resource and a suggested replacement, or a
12388	// warning about invalid network settings (for example, if an instance
12389	// attempts to perform IP forwarding but is not enabled for IP
12390	// forwarding).
12391	Key string `json:"key,omitempty"`
12392
12393	// Value: [Output Only] A warning data value corresponding to the key.
12394	Value string `json:"value,omitempty"`
12395
12396	// ForceSendFields is a list of field names (e.g. "Key") to
12397	// unconditionally include in API requests. By default, fields with
12398	// empty values are omitted from API requests. However, any non-pointer,
12399	// non-interface field appearing in ForceSendFields will be sent to the
12400	// server regardless of whether the field is empty or not. This may be
12401	// used to include empty fields in Patch requests.
12402	ForceSendFields []string `json:"-"`
12403
12404	// NullFields is a list of field names (e.g. "Key") to include in API
12405	// requests with the JSON null value. By default, fields with empty
12406	// values are omitted from API requests. However, any field with an
12407	// empty value appearing in NullFields will be sent to the server as
12408	// null. It is an error if a field in this list has a non-empty value.
12409	// This may be used to include null fields in Patch requests.
12410	NullFields []string `json:"-"`
12411}
12412
12413func (s *InterconnectListWarningData) MarshalJSON() ([]byte, error) {
12414	type NoMethod InterconnectListWarningData
12415	raw := NoMethod(*s)
12416	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12417}
12418
12419// InterconnectLocation: Represents an InterconnectLocations resource.
12420// The InterconnectLocations resource describes the locations where you
12421// can connect to Google's networks. For more information, see
12422// Colocation Facilities.
12423type InterconnectLocation struct {
12424	// Address: [Output Only] The postal address of the Point of Presence,
12425	// each line in the address is separated by a newline character.
12426	Address string `json:"address,omitempty"`
12427
12428	// AvailabilityZone: [Output Only] Availability zone for this location.
12429	// Within a metropolitan area (metro), maintenance will not be
12430	// simultaneously scheduled in more than one availability zone. Example:
12431	// "zone1" or "zone2".
12432	AvailabilityZone string `json:"availabilityZone,omitempty"`
12433
12434	// City: [Output Only] Metropolitan area designator that indicates which
12435	// city an interconnect is located. For example: "Chicago, IL",
12436	// "Amsterdam, Netherlands".
12437	City string `json:"city,omitempty"`
12438
12439	// Continent: [Output Only] Continent for this location.
12440	//
12441	// Possible values:
12442	//   "AFRICA"
12443	//   "ASIA_PAC"
12444	//   "C_AFRICA"
12445	//   "C_ASIA_PAC"
12446	//   "C_EUROPE"
12447	//   "C_NORTH_AMERICA"
12448	//   "C_SOUTH_AMERICA"
12449	//   "EUROPE"
12450	//   "NORTH_AMERICA"
12451	//   "SOUTH_AMERICA"
12452	Continent string `json:"continent,omitempty"`
12453
12454	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
12455	// format.
12456	CreationTimestamp string `json:"creationTimestamp,omitempty"`
12457
12458	// Description: [Output Only] An optional description of the resource.
12459	Description string `json:"description,omitempty"`
12460
12461	// FacilityProvider: [Output Only] The name of the provider for this
12462	// facility (e.g., EQUINIX).
12463	FacilityProvider string `json:"facilityProvider,omitempty"`
12464
12465	// FacilityProviderFacilityId: [Output Only] A provider-assigned
12466	// Identifier for this facility (e.g., Ashburn-DC1).
12467	FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"`
12468
12469	// Id: [Output Only] The unique identifier for the resource. This
12470	// identifier is defined by the server.
12471	Id uint64 `json:"id,omitempty,string"`
12472
12473	// Kind: [Output Only] Type of the resource. Always
12474	// compute#interconnectLocation for interconnect locations.
12475	Kind string `json:"kind,omitempty"`
12476
12477	// Name: [Output Only] Name of the resource.
12478	Name string `json:"name,omitempty"`
12479
12480	// PeeringdbFacilityId: [Output Only] The peeringdb identifier for this
12481	// facility (corresponding with a netfac type in peeringdb).
12482	PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"`
12483
12484	// RegionInfos: [Output Only] A list of InterconnectLocation.RegionInfo
12485	// objects, that describe parameters pertaining to the relation between
12486	// this InterconnectLocation and various Google Cloud regions.
12487	RegionInfos []*InterconnectLocationRegionInfo `json:"regionInfos,omitempty"`
12488
12489	// SelfLink: [Output Only] Server-defined URL for the resource.
12490	SelfLink string `json:"selfLink,omitempty"`
12491
12492	// ServerResponse contains the HTTP response code and headers from the
12493	// server.
12494	googleapi.ServerResponse `json:"-"`
12495
12496	// ForceSendFields is a list of field names (e.g. "Address") to
12497	// unconditionally include in API requests. By default, fields with
12498	// empty values are omitted from API requests. However, any non-pointer,
12499	// non-interface field appearing in ForceSendFields will be sent to the
12500	// server regardless of whether the field is empty or not. This may be
12501	// used to include empty fields in Patch requests.
12502	ForceSendFields []string `json:"-"`
12503
12504	// NullFields is a list of field names (e.g. "Address") to include in
12505	// API requests with the JSON null value. By default, fields with empty
12506	// values are omitted from API requests. However, any field with an
12507	// empty value appearing in NullFields will be sent to the server as
12508	// null. It is an error if a field in this list has a non-empty value.
12509	// This may be used to include null fields in Patch requests.
12510	NullFields []string `json:"-"`
12511}
12512
12513func (s *InterconnectLocation) MarshalJSON() ([]byte, error) {
12514	type NoMethod InterconnectLocation
12515	raw := NoMethod(*s)
12516	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12517}
12518
12519// InterconnectLocationList: Response to the list request, and contains
12520// a list of interconnect locations.
12521type InterconnectLocationList struct {
12522	// Id: [Output Only] Unique identifier for the resource; defined by the
12523	// server.
12524	Id string `json:"id,omitempty"`
12525
12526	// Items: A list of InterconnectLocation resources.
12527	Items []*InterconnectLocation `json:"items,omitempty"`
12528
12529	// Kind: [Output Only] Type of resource. Always
12530	// compute#interconnectLocationList for lists of interconnect locations.
12531	Kind string `json:"kind,omitempty"`
12532
12533	// NextPageToken: [Output Only] This token allows you to get the next
12534	// page of results for list requests. If the number of results is larger
12535	// than maxResults, use the nextPageToken as a value for the query
12536	// parameter pageToken in the next list request. Subsequent list
12537	// requests will have their own nextPageToken to continue paging through
12538	// the results.
12539	NextPageToken string `json:"nextPageToken,omitempty"`
12540
12541	// SelfLink: [Output Only] Server-defined URL for this resource.
12542	SelfLink string `json:"selfLink,omitempty"`
12543
12544	// Warning: [Output Only] Informational warning message.
12545	Warning *InterconnectLocationListWarning `json:"warning,omitempty"`
12546
12547	// ServerResponse contains the HTTP response code and headers from the
12548	// server.
12549	googleapi.ServerResponse `json:"-"`
12550
12551	// ForceSendFields is a list of field names (e.g. "Id") to
12552	// unconditionally include in API requests. By default, fields with
12553	// empty values are omitted from API requests. However, any non-pointer,
12554	// non-interface field appearing in ForceSendFields will be sent to the
12555	// server regardless of whether the field is empty or not. This may be
12556	// used to include empty fields in Patch requests.
12557	ForceSendFields []string `json:"-"`
12558
12559	// NullFields is a list of field names (e.g. "Id") to include in API
12560	// requests with the JSON null value. By default, fields with empty
12561	// values are omitted from API requests. However, any field with an
12562	// empty value appearing in NullFields will be sent to the server as
12563	// null. It is an error if a field in this list has a non-empty value.
12564	// This may be used to include null fields in Patch requests.
12565	NullFields []string `json:"-"`
12566}
12567
12568func (s *InterconnectLocationList) MarshalJSON() ([]byte, error) {
12569	type NoMethod InterconnectLocationList
12570	raw := NoMethod(*s)
12571	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12572}
12573
12574// InterconnectLocationListWarning: [Output Only] Informational warning
12575// message.
12576type InterconnectLocationListWarning struct {
12577	// Code: [Output Only] A warning code, if applicable. For example,
12578	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12579	// the response.
12580	//
12581	// Possible values:
12582	//   "CLEANUP_FAILED"
12583	//   "DEPRECATED_RESOURCE_USED"
12584	//   "DEPRECATED_TYPE_USED"
12585	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12586	//   "EXPERIMENTAL_TYPE_USED"
12587	//   "EXTERNAL_API_WARNING"
12588	//   "FIELD_VALUE_OVERRIDEN"
12589	//   "INJECTED_KERNELS_DEPRECATED"
12590	//   "MISSING_TYPE_DEPENDENCY"
12591	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12592	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12593	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12594	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12595	//   "NEXT_HOP_NOT_RUNNING"
12596	//   "NOT_CRITICAL_ERROR"
12597	//   "NO_RESULTS_ON_PAGE"
12598	//   "REQUIRED_TOS_AGREEMENT"
12599	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12600	//   "RESOURCE_NOT_DELETED"
12601	//   "SCHEMA_VALIDATION_IGNORED"
12602	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12603	//   "UNDECLARED_PROPERTIES"
12604	//   "UNREACHABLE"
12605	Code string `json:"code,omitempty"`
12606
12607	// Data: [Output Only] Metadata about this warning in key: value format.
12608	// For example:
12609	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12610	Data []*InterconnectLocationListWarningData `json:"data,omitempty"`
12611
12612	// Message: [Output Only] A human-readable description of the warning
12613	// code.
12614	Message string `json:"message,omitempty"`
12615
12616	// ForceSendFields is a list of field names (e.g. "Code") to
12617	// unconditionally include in API requests. By default, fields with
12618	// empty values are omitted from API requests. However, any non-pointer,
12619	// non-interface field appearing in ForceSendFields will be sent to the
12620	// server regardless of whether the field is empty or not. This may be
12621	// used to include empty fields in Patch requests.
12622	ForceSendFields []string `json:"-"`
12623
12624	// NullFields is a list of field names (e.g. "Code") to include in API
12625	// requests with the JSON null value. By default, fields with empty
12626	// values are omitted from API requests. However, any field with an
12627	// empty value appearing in NullFields will be sent to the server as
12628	// null. It is an error if a field in this list has a non-empty value.
12629	// This may be used to include null fields in Patch requests.
12630	NullFields []string `json:"-"`
12631}
12632
12633func (s *InterconnectLocationListWarning) MarshalJSON() ([]byte, error) {
12634	type NoMethod InterconnectLocationListWarning
12635	raw := NoMethod(*s)
12636	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12637}
12638
12639type InterconnectLocationListWarningData struct {
12640	// Key: [Output Only] A key that provides more detail on the warning
12641	// being returned. For example, for warnings where there are no results
12642	// in a list request for a particular zone, this key might be scope and
12643	// the key value might be the zone name. Other examples might be a key
12644	// indicating a deprecated resource and a suggested replacement, or a
12645	// warning about invalid network settings (for example, if an instance
12646	// attempts to perform IP forwarding but is not enabled for IP
12647	// forwarding).
12648	Key string `json:"key,omitempty"`
12649
12650	// Value: [Output Only] A warning data value corresponding to the key.
12651	Value string `json:"value,omitempty"`
12652
12653	// ForceSendFields is a list of field names (e.g. "Key") to
12654	// unconditionally include in API requests. By default, fields with
12655	// empty values are omitted from API requests. However, any non-pointer,
12656	// non-interface field appearing in ForceSendFields will be sent to the
12657	// server regardless of whether the field is empty or not. This may be
12658	// used to include empty fields in Patch requests.
12659	ForceSendFields []string `json:"-"`
12660
12661	// NullFields is a list of field names (e.g. "Key") to include in API
12662	// requests with the JSON null value. By default, fields with empty
12663	// values are omitted from API requests. However, any field with an
12664	// empty value appearing in NullFields will be sent to the server as
12665	// null. It is an error if a field in this list has a non-empty value.
12666	// This may be used to include null fields in Patch requests.
12667	NullFields []string `json:"-"`
12668}
12669
12670func (s *InterconnectLocationListWarningData) MarshalJSON() ([]byte, error) {
12671	type NoMethod InterconnectLocationListWarningData
12672	raw := NoMethod(*s)
12673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12674}
12675
12676// InterconnectLocationRegionInfo: Information about any potential
12677// InterconnectAttachments between an Interconnect at a specific
12678// InterconnectLocation, and a specific Cloud Region.
12679type InterconnectLocationRegionInfo struct {
12680	// ExpectedRttMs: Expected round-trip time in milliseconds, from this
12681	// InterconnectLocation to a VM in this region.
12682	ExpectedRttMs int64 `json:"expectedRttMs,omitempty,string"`
12683
12684	// LocationPresence: Identifies the network presence of this location.
12685	//
12686	// Possible values:
12687	//   "GLOBAL"
12688	//   "LOCAL_REGION"
12689	//   "LP_GLOBAL"
12690	//   "LP_LOCAL_REGION"
12691	LocationPresence string `json:"locationPresence,omitempty"`
12692
12693	// Region: URL for the region of this location.
12694	Region string `json:"region,omitempty"`
12695
12696	// ForceSendFields is a list of field names (e.g. "ExpectedRttMs") to
12697	// unconditionally include in API requests. By default, fields with
12698	// empty values are omitted from API requests. However, any non-pointer,
12699	// non-interface field appearing in ForceSendFields will be sent to the
12700	// server regardless of whether the field is empty or not. This may be
12701	// used to include empty fields in Patch requests.
12702	ForceSendFields []string `json:"-"`
12703
12704	// NullFields is a list of field names (e.g. "ExpectedRttMs") to include
12705	// in API requests with the JSON null value. By default, fields with
12706	// empty values are omitted from API requests. However, any field with
12707	// an empty value appearing in NullFields will be sent to the server as
12708	// null. It is an error if a field in this list has a non-empty value.
12709	// This may be used to include null fields in Patch requests.
12710	NullFields []string `json:"-"`
12711}
12712
12713func (s *InterconnectLocationRegionInfo) MarshalJSON() ([]byte, error) {
12714	type NoMethod InterconnectLocationRegionInfo
12715	raw := NoMethod(*s)
12716	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12717}
12718
12719// InterconnectOutageNotification: Description of a planned outage on
12720// this Interconnect. Next id: 9
12721type InterconnectOutageNotification struct {
12722	// AffectedCircuits: Iff issue_type is IT_PARTIAL_OUTAGE, a list of the
12723	// Google-side circuit IDs that will be affected.
12724	AffectedCircuits []string `json:"affectedCircuits,omitempty"`
12725
12726	// Description: A description about the purpose of the outage.
12727	Description string `json:"description,omitempty"`
12728
12729	// EndTime: Scheduled end time for the outage (milliseconds since Unix
12730	// epoch).
12731	EndTime int64 `json:"endTime,omitempty,string"`
12732
12733	// IssueType: Form this outage is expected to take. Note that the "IT_"
12734	// versions of this enum have been deprecated in favor of the unprefixed
12735	// values.
12736	//
12737	// Possible values:
12738	//   "IT_OUTAGE"
12739	//   "IT_PARTIAL_OUTAGE"
12740	//   "OUTAGE"
12741	//   "PARTIAL_OUTAGE"
12742	IssueType string `json:"issueType,omitempty"`
12743
12744	// Name: Unique identifier for this outage notification.
12745	Name string `json:"name,omitempty"`
12746
12747	// Source: The party that generated this notification. Note that
12748	// "NSRC_GOOGLE" has been deprecated in favor of "GOOGLE"
12749	//
12750	// Possible values:
12751	//   "GOOGLE"
12752	//   "NSRC_GOOGLE"
12753	Source string `json:"source,omitempty"`
12754
12755	// StartTime: Scheduled start time for the outage (milliseconds since
12756	// Unix epoch).
12757	StartTime int64 `json:"startTime,omitempty,string"`
12758
12759	// State: State of this notification. Note that the "NS_" versions of
12760	// this enum have been deprecated in favor of the unprefixed values.
12761	//
12762	// Possible values:
12763	//   "ACTIVE"
12764	//   "CANCELLED"
12765	//   "NS_ACTIVE"
12766	//   "NS_CANCELED"
12767	State string `json:"state,omitempty"`
12768
12769	// ForceSendFields is a list of field names (e.g. "AffectedCircuits") to
12770	// unconditionally include in API requests. By default, fields with
12771	// empty values are omitted from API requests. However, any non-pointer,
12772	// non-interface field appearing in ForceSendFields will be sent to the
12773	// server regardless of whether the field is empty or not. This may be
12774	// used to include empty fields in Patch requests.
12775	ForceSendFields []string `json:"-"`
12776
12777	// NullFields is a list of field names (e.g. "AffectedCircuits") to
12778	// include in API requests with the JSON null value. By default, fields
12779	// with empty values are omitted from API requests. However, any field
12780	// with an empty value appearing in NullFields will be sent to the
12781	// server as null. It is an error if a field in this list has a
12782	// non-empty value. This may be used to include null fields in Patch
12783	// requests.
12784	NullFields []string `json:"-"`
12785}
12786
12787func (s *InterconnectOutageNotification) MarshalJSON() ([]byte, error) {
12788	type NoMethod InterconnectOutageNotification
12789	raw := NoMethod(*s)
12790	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12791}
12792
12793// License: A license resource.
12794type License struct {
12795	// ChargesUseFee: [Output Only] Deprecated. This field no longer
12796	// reflects whether a license charges a usage fee.
12797	ChargesUseFee bool `json:"chargesUseFee,omitempty"`
12798
12799	// Kind: [Output Only] Type of resource. Always compute#license for
12800	// licenses.
12801	Kind string `json:"kind,omitempty"`
12802
12803	// Name: [Output Only] Name of the resource. The name is 1-63 characters
12804	// long and complies with RFC1035.
12805	Name string `json:"name,omitempty"`
12806
12807	// SelfLink: [Output Only] Server-defined URL for the resource.
12808	SelfLink string `json:"selfLink,omitempty"`
12809
12810	// ServerResponse contains the HTTP response code and headers from the
12811	// server.
12812	googleapi.ServerResponse `json:"-"`
12813
12814	// ForceSendFields is a list of field names (e.g. "ChargesUseFee") to
12815	// unconditionally include in API requests. By default, fields with
12816	// empty values are omitted from API requests. However, any non-pointer,
12817	// non-interface field appearing in ForceSendFields will be sent to the
12818	// server regardless of whether the field is empty or not. This may be
12819	// used to include empty fields in Patch requests.
12820	ForceSendFields []string `json:"-"`
12821
12822	// NullFields is a list of field names (e.g. "ChargesUseFee") to include
12823	// in API requests with the JSON null value. By default, fields with
12824	// empty values are omitted from API requests. However, any field with
12825	// an empty value appearing in NullFields will be sent to the server as
12826	// null. It is an error if a field in this list has a non-empty value.
12827	// This may be used to include null fields in Patch requests.
12828	NullFields []string `json:"-"`
12829}
12830
12831func (s *License) MarshalJSON() ([]byte, error) {
12832	type NoMethod License
12833	raw := NoMethod(*s)
12834	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12835}
12836
12837// MachineType: A Machine Type resource. (== resource_for
12838// v1.machineTypes ==) (== resource_for beta.machineTypes ==)
12839type MachineType struct {
12840	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
12841	// format.
12842	CreationTimestamp string `json:"creationTimestamp,omitempty"`
12843
12844	// Deprecated: [Output Only] The deprecation status associated with this
12845	// machine type.
12846	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
12847
12848	// Description: [Output Only] An optional textual description of the
12849	// resource.
12850	Description string `json:"description,omitempty"`
12851
12852	// GuestCpus: [Output Only] The number of virtual CPUs that are
12853	// available to the instance.
12854	GuestCpus int64 `json:"guestCpus,omitempty"`
12855
12856	// Id: [Output Only] The unique identifier for the resource. This
12857	// identifier is defined by the server.
12858	Id uint64 `json:"id,omitempty,string"`
12859
12860	// ImageSpaceGb: [Deprecated] This property is deprecated and will never
12861	// be populated with any relevant values.
12862	ImageSpaceGb int64 `json:"imageSpaceGb,omitempty"`
12863
12864	// IsSharedCpu: [Output Only] Whether this machine type has a shared
12865	// CPU. See Shared-core machine types for more information.
12866	IsSharedCpu bool `json:"isSharedCpu,omitempty"`
12867
12868	// Kind: [Output Only] The type of the resource. Always
12869	// compute#machineType for machine types.
12870	Kind string `json:"kind,omitempty"`
12871
12872	// MaximumPersistentDisks: [Output Only] Maximum persistent disks
12873	// allowed.
12874	MaximumPersistentDisks int64 `json:"maximumPersistentDisks,omitempty"`
12875
12876	// MaximumPersistentDisksSizeGb: [Output Only] Maximum total persistent
12877	// disks size (GB) allowed.
12878	MaximumPersistentDisksSizeGb int64 `json:"maximumPersistentDisksSizeGb,omitempty,string"`
12879
12880	// MemoryMb: [Output Only] The amount of physical memory available to
12881	// the instance, defined in MB.
12882	MemoryMb int64 `json:"memoryMb,omitempty"`
12883
12884	// Name: [Output Only] Name of the resource.
12885	Name string `json:"name,omitempty"`
12886
12887	// ScratchDisks: [Output Only] List of extended scratch disks assigned
12888	// to the instance.
12889	ScratchDisks []*MachineTypeScratchDisks `json:"scratchDisks,omitempty"`
12890
12891	// SelfLink: [Output Only] Server-defined URL for the resource.
12892	SelfLink string `json:"selfLink,omitempty"`
12893
12894	// Zone: [Output Only] The name of the zone where the machine type
12895	// resides, such as us-central1-a.
12896	Zone string `json:"zone,omitempty"`
12897
12898	// ServerResponse contains the HTTP response code and headers from the
12899	// server.
12900	googleapi.ServerResponse `json:"-"`
12901
12902	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
12903	// to unconditionally include in API requests. By default, fields with
12904	// empty values are omitted from API requests. However, any non-pointer,
12905	// non-interface field appearing in ForceSendFields will be sent to the
12906	// server regardless of whether the field is empty or not. This may be
12907	// used to include empty fields in Patch requests.
12908	ForceSendFields []string `json:"-"`
12909
12910	// NullFields is a list of field names (e.g. "CreationTimestamp") to
12911	// include in API requests with the JSON null value. By default, fields
12912	// with empty values are omitted from API requests. However, any field
12913	// with an empty value appearing in NullFields will be sent to the
12914	// server as null. It is an error if a field in this list has a
12915	// non-empty value. This may be used to include null fields in Patch
12916	// requests.
12917	NullFields []string `json:"-"`
12918}
12919
12920func (s *MachineType) MarshalJSON() ([]byte, error) {
12921	type NoMethod MachineType
12922	raw := NoMethod(*s)
12923	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12924}
12925
12926type MachineTypeScratchDisks struct {
12927	// DiskGb: Size of the scratch disk, defined in GB.
12928	DiskGb int64 `json:"diskGb,omitempty"`
12929
12930	// ForceSendFields is a list of field names (e.g. "DiskGb") to
12931	// unconditionally include in API requests. By default, fields with
12932	// empty values are omitted from API requests. However, any non-pointer,
12933	// non-interface field appearing in ForceSendFields will be sent to the
12934	// server regardless of whether the field is empty or not. This may be
12935	// used to include empty fields in Patch requests.
12936	ForceSendFields []string `json:"-"`
12937
12938	// NullFields is a list of field names (e.g. "DiskGb") to include in API
12939	// requests with the JSON null value. By default, fields with empty
12940	// values are omitted from API requests. However, any field with an
12941	// empty value appearing in NullFields will be sent to the server as
12942	// null. It is an error if a field in this list has a non-empty value.
12943	// This may be used to include null fields in Patch requests.
12944	NullFields []string `json:"-"`
12945}
12946
12947func (s *MachineTypeScratchDisks) MarshalJSON() ([]byte, error) {
12948	type NoMethod MachineTypeScratchDisks
12949	raw := NoMethod(*s)
12950	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12951}
12952
12953type MachineTypeAggregatedList struct {
12954	// Id: [Output Only] Unique identifier for the resource; defined by the
12955	// server.
12956	Id string `json:"id,omitempty"`
12957
12958	// Items: A list of MachineTypesScopedList resources.
12959	Items map[string]MachineTypesScopedList `json:"items,omitempty"`
12960
12961	// Kind: [Output Only] Type of resource. Always
12962	// compute#machineTypeAggregatedList for aggregated lists of machine
12963	// types.
12964	Kind string `json:"kind,omitempty"`
12965
12966	// NextPageToken: [Output Only] This token allows you to get the next
12967	// page of results for list requests. If the number of results is larger
12968	// than maxResults, use the nextPageToken as a value for the query
12969	// parameter pageToken in the next list request. Subsequent list
12970	// requests will have their own nextPageToken to continue paging through
12971	// the results.
12972	NextPageToken string `json:"nextPageToken,omitempty"`
12973
12974	// SelfLink: [Output Only] Server-defined URL for this resource.
12975	SelfLink string `json:"selfLink,omitempty"`
12976
12977	// Warning: [Output Only] Informational warning message.
12978	Warning *MachineTypeAggregatedListWarning `json:"warning,omitempty"`
12979
12980	// ServerResponse contains the HTTP response code and headers from the
12981	// server.
12982	googleapi.ServerResponse `json:"-"`
12983
12984	// ForceSendFields is a list of field names (e.g. "Id") to
12985	// unconditionally include in API requests. By default, fields with
12986	// empty values are omitted from API requests. However, any non-pointer,
12987	// non-interface field appearing in ForceSendFields will be sent to the
12988	// server regardless of whether the field is empty or not. This may be
12989	// used to include empty fields in Patch requests.
12990	ForceSendFields []string `json:"-"`
12991
12992	// NullFields is a list of field names (e.g. "Id") to include in API
12993	// requests with the JSON null value. By default, fields with empty
12994	// values are omitted from API requests. However, any field with an
12995	// empty value appearing in NullFields will be sent to the server as
12996	// null. It is an error if a field in this list has a non-empty value.
12997	// This may be used to include null fields in Patch requests.
12998	NullFields []string `json:"-"`
12999}
13000
13001func (s *MachineTypeAggregatedList) MarshalJSON() ([]byte, error) {
13002	type NoMethod MachineTypeAggregatedList
13003	raw := NoMethod(*s)
13004	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13005}
13006
13007// MachineTypeAggregatedListWarning: [Output Only] Informational warning
13008// message.
13009type MachineTypeAggregatedListWarning struct {
13010	// Code: [Output Only] A warning code, if applicable. For example,
13011	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13012	// the response.
13013	//
13014	// Possible values:
13015	//   "CLEANUP_FAILED"
13016	//   "DEPRECATED_RESOURCE_USED"
13017	//   "DEPRECATED_TYPE_USED"
13018	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13019	//   "EXPERIMENTAL_TYPE_USED"
13020	//   "EXTERNAL_API_WARNING"
13021	//   "FIELD_VALUE_OVERRIDEN"
13022	//   "INJECTED_KERNELS_DEPRECATED"
13023	//   "MISSING_TYPE_DEPENDENCY"
13024	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13025	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13026	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13027	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13028	//   "NEXT_HOP_NOT_RUNNING"
13029	//   "NOT_CRITICAL_ERROR"
13030	//   "NO_RESULTS_ON_PAGE"
13031	//   "REQUIRED_TOS_AGREEMENT"
13032	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13033	//   "RESOURCE_NOT_DELETED"
13034	//   "SCHEMA_VALIDATION_IGNORED"
13035	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13036	//   "UNDECLARED_PROPERTIES"
13037	//   "UNREACHABLE"
13038	Code string `json:"code,omitempty"`
13039
13040	// Data: [Output Only] Metadata about this warning in key: value format.
13041	// For example:
13042	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13043	Data []*MachineTypeAggregatedListWarningData `json:"data,omitempty"`
13044
13045	// Message: [Output Only] A human-readable description of the warning
13046	// code.
13047	Message string `json:"message,omitempty"`
13048
13049	// ForceSendFields is a list of field names (e.g. "Code") to
13050	// unconditionally include in API requests. By default, fields with
13051	// empty values are omitted from API requests. However, any non-pointer,
13052	// non-interface field appearing in ForceSendFields will be sent to the
13053	// server regardless of whether the field is empty or not. This may be
13054	// used to include empty fields in Patch requests.
13055	ForceSendFields []string `json:"-"`
13056
13057	// NullFields is a list of field names (e.g. "Code") to include in API
13058	// requests with the JSON null value. By default, fields with empty
13059	// values are omitted from API requests. However, any field with an
13060	// empty value appearing in NullFields will be sent to the server as
13061	// null. It is an error if a field in this list has a non-empty value.
13062	// This may be used to include null fields in Patch requests.
13063	NullFields []string `json:"-"`
13064}
13065
13066func (s *MachineTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
13067	type NoMethod MachineTypeAggregatedListWarning
13068	raw := NoMethod(*s)
13069	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13070}
13071
13072type MachineTypeAggregatedListWarningData struct {
13073	// Key: [Output Only] A key that provides more detail on the warning
13074	// being returned. For example, for warnings where there are no results
13075	// in a list request for a particular zone, this key might be scope and
13076	// the key value might be the zone name. Other examples might be a key
13077	// indicating a deprecated resource and a suggested replacement, or a
13078	// warning about invalid network settings (for example, if an instance
13079	// attempts to perform IP forwarding but is not enabled for IP
13080	// forwarding).
13081	Key string `json:"key,omitempty"`
13082
13083	// Value: [Output Only] A warning data value corresponding to the key.
13084	Value string `json:"value,omitempty"`
13085
13086	// ForceSendFields is a list of field names (e.g. "Key") to
13087	// unconditionally include in API requests. By default, fields with
13088	// empty values are omitted from API requests. However, any non-pointer,
13089	// non-interface field appearing in ForceSendFields will be sent to the
13090	// server regardless of whether the field is empty or not. This may be
13091	// used to include empty fields in Patch requests.
13092	ForceSendFields []string `json:"-"`
13093
13094	// NullFields is a list of field names (e.g. "Key") to include in API
13095	// requests with the JSON null value. By default, fields with empty
13096	// values are omitted from API requests. However, any field with an
13097	// empty value appearing in NullFields will be sent to the server as
13098	// null. It is an error if a field in this list has a non-empty value.
13099	// This may be used to include null fields in Patch requests.
13100	NullFields []string `json:"-"`
13101}
13102
13103func (s *MachineTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
13104	type NoMethod MachineTypeAggregatedListWarningData
13105	raw := NoMethod(*s)
13106	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13107}
13108
13109// MachineTypeList: Contains a list of machine types.
13110type MachineTypeList struct {
13111	// Id: [Output Only] Unique identifier for the resource; defined by the
13112	// server.
13113	Id string `json:"id,omitempty"`
13114
13115	// Items: A list of MachineType resources.
13116	Items []*MachineType `json:"items,omitempty"`
13117
13118	// Kind: [Output Only] Type of resource. Always compute#machineTypeList
13119	// for lists of machine types.
13120	Kind string `json:"kind,omitempty"`
13121
13122	// NextPageToken: [Output Only] This token allows you to get the next
13123	// page of results for list requests. If the number of results is larger
13124	// than maxResults, use the nextPageToken as a value for the query
13125	// parameter pageToken in the next list request. Subsequent list
13126	// requests will have their own nextPageToken to continue paging through
13127	// the results.
13128	NextPageToken string `json:"nextPageToken,omitempty"`
13129
13130	// SelfLink: [Output Only] Server-defined URL for this resource.
13131	SelfLink string `json:"selfLink,omitempty"`
13132
13133	// Warning: [Output Only] Informational warning message.
13134	Warning *MachineTypeListWarning `json:"warning,omitempty"`
13135
13136	// ServerResponse contains the HTTP response code and headers from the
13137	// server.
13138	googleapi.ServerResponse `json:"-"`
13139
13140	// ForceSendFields is a list of field names (e.g. "Id") to
13141	// unconditionally include in API requests. By default, fields with
13142	// empty values are omitted from API requests. However, any non-pointer,
13143	// non-interface field appearing in ForceSendFields will be sent to the
13144	// server regardless of whether the field is empty or not. This may be
13145	// used to include empty fields in Patch requests.
13146	ForceSendFields []string `json:"-"`
13147
13148	// NullFields is a list of field names (e.g. "Id") to include in API
13149	// requests with the JSON null value. By default, fields with empty
13150	// values are omitted from API requests. However, any field with an
13151	// empty value appearing in NullFields will be sent to the server as
13152	// null. It is an error if a field in this list has a non-empty value.
13153	// This may be used to include null fields in Patch requests.
13154	NullFields []string `json:"-"`
13155}
13156
13157func (s *MachineTypeList) MarshalJSON() ([]byte, error) {
13158	type NoMethod MachineTypeList
13159	raw := NoMethod(*s)
13160	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13161}
13162
13163// MachineTypeListWarning: [Output Only] Informational warning message.
13164type MachineTypeListWarning struct {
13165	// Code: [Output Only] A warning code, if applicable. For example,
13166	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13167	// the response.
13168	//
13169	// Possible values:
13170	//   "CLEANUP_FAILED"
13171	//   "DEPRECATED_RESOURCE_USED"
13172	//   "DEPRECATED_TYPE_USED"
13173	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13174	//   "EXPERIMENTAL_TYPE_USED"
13175	//   "EXTERNAL_API_WARNING"
13176	//   "FIELD_VALUE_OVERRIDEN"
13177	//   "INJECTED_KERNELS_DEPRECATED"
13178	//   "MISSING_TYPE_DEPENDENCY"
13179	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13180	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13181	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13182	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13183	//   "NEXT_HOP_NOT_RUNNING"
13184	//   "NOT_CRITICAL_ERROR"
13185	//   "NO_RESULTS_ON_PAGE"
13186	//   "REQUIRED_TOS_AGREEMENT"
13187	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13188	//   "RESOURCE_NOT_DELETED"
13189	//   "SCHEMA_VALIDATION_IGNORED"
13190	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13191	//   "UNDECLARED_PROPERTIES"
13192	//   "UNREACHABLE"
13193	Code string `json:"code,omitempty"`
13194
13195	// Data: [Output Only] Metadata about this warning in key: value format.
13196	// For example:
13197	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13198	Data []*MachineTypeListWarningData `json:"data,omitempty"`
13199
13200	// Message: [Output Only] A human-readable description of the warning
13201	// code.
13202	Message string `json:"message,omitempty"`
13203
13204	// ForceSendFields is a list of field names (e.g. "Code") to
13205	// unconditionally include in API requests. By default, fields with
13206	// empty values are omitted from API requests. However, any non-pointer,
13207	// non-interface field appearing in ForceSendFields will be sent to the
13208	// server regardless of whether the field is empty or not. This may be
13209	// used to include empty fields in Patch requests.
13210	ForceSendFields []string `json:"-"`
13211
13212	// NullFields is a list of field names (e.g. "Code") to include in API
13213	// requests with the JSON null value. By default, fields with empty
13214	// values are omitted from API requests. However, any field with an
13215	// empty value appearing in NullFields will be sent to the server as
13216	// null. It is an error if a field in this list has a non-empty value.
13217	// This may be used to include null fields in Patch requests.
13218	NullFields []string `json:"-"`
13219}
13220
13221func (s *MachineTypeListWarning) MarshalJSON() ([]byte, error) {
13222	type NoMethod MachineTypeListWarning
13223	raw := NoMethod(*s)
13224	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13225}
13226
13227type MachineTypeListWarningData struct {
13228	// Key: [Output Only] A key that provides more detail on the warning
13229	// being returned. For example, for warnings where there are no results
13230	// in a list request for a particular zone, this key might be scope and
13231	// the key value might be the zone name. Other examples might be a key
13232	// indicating a deprecated resource and a suggested replacement, or a
13233	// warning about invalid network settings (for example, if an instance
13234	// attempts to perform IP forwarding but is not enabled for IP
13235	// forwarding).
13236	Key string `json:"key,omitempty"`
13237
13238	// Value: [Output Only] A warning data value corresponding to the key.
13239	Value string `json:"value,omitempty"`
13240
13241	// ForceSendFields is a list of field names (e.g. "Key") to
13242	// unconditionally include in API requests. By default, fields with
13243	// empty values are omitted from API requests. However, any non-pointer,
13244	// non-interface field appearing in ForceSendFields will be sent to the
13245	// server regardless of whether the field is empty or not. This may be
13246	// used to include empty fields in Patch requests.
13247	ForceSendFields []string `json:"-"`
13248
13249	// NullFields is a list of field names (e.g. "Key") to include in API
13250	// requests with the JSON null value. By default, fields with empty
13251	// values are omitted from API requests. However, any field with an
13252	// empty value appearing in NullFields will be sent to the server as
13253	// null. It is an error if a field in this list has a non-empty value.
13254	// This may be used to include null fields in Patch requests.
13255	NullFields []string `json:"-"`
13256}
13257
13258func (s *MachineTypeListWarningData) MarshalJSON() ([]byte, error) {
13259	type NoMethod MachineTypeListWarningData
13260	raw := NoMethod(*s)
13261	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13262}
13263
13264type MachineTypesScopedList struct {
13265	// MachineTypes: [Output Only] List of machine types contained in this
13266	// scope.
13267	MachineTypes []*MachineType `json:"machineTypes,omitempty"`
13268
13269	// Warning: [Output Only] An informational warning that appears when the
13270	// machine types list is empty.
13271	Warning *MachineTypesScopedListWarning `json:"warning,omitempty"`
13272
13273	// ForceSendFields is a list of field names (e.g. "MachineTypes") to
13274	// unconditionally include in API requests. By default, fields with
13275	// empty values are omitted from API requests. However, any non-pointer,
13276	// non-interface field appearing in ForceSendFields will be sent to the
13277	// server regardless of whether the field is empty or not. This may be
13278	// used to include empty fields in Patch requests.
13279	ForceSendFields []string `json:"-"`
13280
13281	// NullFields is a list of field names (e.g. "MachineTypes") to include
13282	// in API requests with the JSON null value. By default, fields with
13283	// empty values are omitted from API requests. However, any field with
13284	// an empty value appearing in NullFields will be sent to the server as
13285	// null. It is an error if a field in this list has a non-empty value.
13286	// This may be used to include null fields in Patch requests.
13287	NullFields []string `json:"-"`
13288}
13289
13290func (s *MachineTypesScopedList) MarshalJSON() ([]byte, error) {
13291	type NoMethod MachineTypesScopedList
13292	raw := NoMethod(*s)
13293	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13294}
13295
13296// MachineTypesScopedListWarning: [Output Only] An informational warning
13297// that appears when the machine types list is empty.
13298type MachineTypesScopedListWarning struct {
13299	// Code: [Output Only] A warning code, if applicable. For example,
13300	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13301	// the response.
13302	//
13303	// Possible values:
13304	//   "CLEANUP_FAILED"
13305	//   "DEPRECATED_RESOURCE_USED"
13306	//   "DEPRECATED_TYPE_USED"
13307	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13308	//   "EXPERIMENTAL_TYPE_USED"
13309	//   "EXTERNAL_API_WARNING"
13310	//   "FIELD_VALUE_OVERRIDEN"
13311	//   "INJECTED_KERNELS_DEPRECATED"
13312	//   "MISSING_TYPE_DEPENDENCY"
13313	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13314	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13315	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13316	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13317	//   "NEXT_HOP_NOT_RUNNING"
13318	//   "NOT_CRITICAL_ERROR"
13319	//   "NO_RESULTS_ON_PAGE"
13320	//   "REQUIRED_TOS_AGREEMENT"
13321	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13322	//   "RESOURCE_NOT_DELETED"
13323	//   "SCHEMA_VALIDATION_IGNORED"
13324	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13325	//   "UNDECLARED_PROPERTIES"
13326	//   "UNREACHABLE"
13327	Code string `json:"code,omitempty"`
13328
13329	// Data: [Output Only] Metadata about this warning in key: value format.
13330	// For example:
13331	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13332	Data []*MachineTypesScopedListWarningData `json:"data,omitempty"`
13333
13334	// Message: [Output Only] A human-readable description of the warning
13335	// code.
13336	Message string `json:"message,omitempty"`
13337
13338	// ForceSendFields is a list of field names (e.g. "Code") to
13339	// unconditionally include in API requests. By default, fields with
13340	// empty values are omitted from API requests. However, any non-pointer,
13341	// non-interface field appearing in ForceSendFields will be sent to the
13342	// server regardless of whether the field is empty or not. This may be
13343	// used to include empty fields in Patch requests.
13344	ForceSendFields []string `json:"-"`
13345
13346	// NullFields is a list of field names (e.g. "Code") to include in API
13347	// requests with the JSON null value. By default, fields with empty
13348	// values are omitted from API requests. However, any field with an
13349	// empty value appearing in NullFields will be sent to the server as
13350	// null. It is an error if a field in this list has a non-empty value.
13351	// This may be used to include null fields in Patch requests.
13352	NullFields []string `json:"-"`
13353}
13354
13355func (s *MachineTypesScopedListWarning) MarshalJSON() ([]byte, error) {
13356	type NoMethod MachineTypesScopedListWarning
13357	raw := NoMethod(*s)
13358	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13359}
13360
13361type MachineTypesScopedListWarningData struct {
13362	// Key: [Output Only] A key that provides more detail on the warning
13363	// being returned. For example, for warnings where there are no results
13364	// in a list request for a particular zone, this key might be scope and
13365	// the key value might be the zone name. Other examples might be a key
13366	// indicating a deprecated resource and a suggested replacement, or a
13367	// warning about invalid network settings (for example, if an instance
13368	// attempts to perform IP forwarding but is not enabled for IP
13369	// forwarding).
13370	Key string `json:"key,omitempty"`
13371
13372	// Value: [Output Only] A warning data value corresponding to the key.
13373	Value string `json:"value,omitempty"`
13374
13375	// ForceSendFields is a list of field names (e.g. "Key") to
13376	// unconditionally include in API requests. By default, fields with
13377	// empty values are omitted from API requests. However, any non-pointer,
13378	// non-interface field appearing in ForceSendFields will be sent to the
13379	// server regardless of whether the field is empty or not. This may be
13380	// used to include empty fields in Patch requests.
13381	ForceSendFields []string `json:"-"`
13382
13383	// NullFields is a list of field names (e.g. "Key") to include in API
13384	// requests with the JSON null value. By default, fields with empty
13385	// values are omitted from API requests. However, any field with an
13386	// empty value appearing in NullFields will be sent to the server as
13387	// null. It is an error if a field in this list has a non-empty value.
13388	// This may be used to include null fields in Patch requests.
13389	NullFields []string `json:"-"`
13390}
13391
13392func (s *MachineTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
13393	type NoMethod MachineTypesScopedListWarningData
13394	raw := NoMethod(*s)
13395	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13396}
13397
13398type ManagedInstance struct {
13399	// CurrentAction: [Output Only] The current action that the managed
13400	// instance group has scheduled for the instance. Possible values:
13401	// - NONE The instance is running, and the managed instance group does
13402	// not have any scheduled actions for this instance.
13403	// - CREATING The managed instance group is creating this instance. If
13404	// the group fails to create this instance, it will try again until it
13405	// is successful.
13406	// - CREATING_WITHOUT_RETRIES The managed instance group is attempting
13407	// to create this instance only once. If the group fails to create this
13408	// instance, it does not try again and the group's targetSize value is
13409	// decreased instead.
13410	// - RECREATING The managed instance group is recreating this instance.
13411	//
13412	// - DELETING The managed instance group is permanently deleting this
13413	// instance.
13414	// - ABANDONING The managed instance group is abandoning this instance.
13415	// The instance will be removed from the instance group and from any
13416	// target pools that are associated with this group.
13417	// - RESTARTING The managed instance group is restarting the instance.
13418	//
13419	// - REFRESHING The managed instance group is applying configuration
13420	// changes to the instance without stopping it. For example, the group
13421	// can update the target pool list for an instance without stopping that
13422	// instance.
13423	// - VERIFYING The managed instance group has created the instance and
13424	// it is in the process of being verified.
13425	//
13426	// Possible values:
13427	//   "ABANDONING"
13428	//   "CREATING"
13429	//   "CREATING_WITHOUT_RETRIES"
13430	//   "DELETING"
13431	//   "NONE"
13432	//   "RECREATING"
13433	//   "REFRESHING"
13434	//   "RESTARTING"
13435	CurrentAction string `json:"currentAction,omitempty"`
13436
13437	// Id: [Output only] The unique identifier for this resource. This field
13438	// is empty when instance does not exist.
13439	Id uint64 `json:"id,omitempty,string"`
13440
13441	// Instance: [Output Only] The URL of the instance. The URL can exist
13442	// even if the instance has not yet been created.
13443	Instance string `json:"instance,omitempty"`
13444
13445	// InstanceStatus: [Output Only] The status of the instance. This field
13446	// is empty when the instance does not exist.
13447	//
13448	// Possible values:
13449	//   "PROVISIONING"
13450	//   "RUNNING"
13451	//   "STAGING"
13452	//   "STOPPED"
13453	//   "STOPPING"
13454	//   "SUSPENDED"
13455	//   "SUSPENDING"
13456	//   "TERMINATED"
13457	InstanceStatus string `json:"instanceStatus,omitempty"`
13458
13459	// LastAttempt: [Output Only] Information about the last attempt to
13460	// create or delete the instance.
13461	LastAttempt *ManagedInstanceLastAttempt `json:"lastAttempt,omitempty"`
13462
13463	// ForceSendFields is a list of field names (e.g. "CurrentAction") to
13464	// unconditionally include in API requests. By default, fields with
13465	// empty values are omitted from API requests. However, any non-pointer,
13466	// non-interface field appearing in ForceSendFields will be sent to the
13467	// server regardless of whether the field is empty or not. This may be
13468	// used to include empty fields in Patch requests.
13469	ForceSendFields []string `json:"-"`
13470
13471	// NullFields is a list of field names (e.g. "CurrentAction") to include
13472	// in API requests with the JSON null value. By default, fields with
13473	// empty values are omitted from API requests. However, any field with
13474	// an empty value appearing in NullFields will be sent to the server as
13475	// null. It is an error if a field in this list has a non-empty value.
13476	// This may be used to include null fields in Patch requests.
13477	NullFields []string `json:"-"`
13478}
13479
13480func (s *ManagedInstance) MarshalJSON() ([]byte, error) {
13481	type NoMethod ManagedInstance
13482	raw := NoMethod(*s)
13483	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13484}
13485
13486type ManagedInstanceLastAttempt struct {
13487	// Errors: [Output Only] Encountered errors during the last attempt to
13488	// create or delete the instance.
13489	Errors *ManagedInstanceLastAttemptErrors `json:"errors,omitempty"`
13490
13491	// ForceSendFields is a list of field names (e.g. "Errors") to
13492	// unconditionally include in API requests. By default, fields with
13493	// empty values are omitted from API requests. However, any non-pointer,
13494	// non-interface field appearing in ForceSendFields will be sent to the
13495	// server regardless of whether the field is empty or not. This may be
13496	// used to include empty fields in Patch requests.
13497	ForceSendFields []string `json:"-"`
13498
13499	// NullFields is a list of field names (e.g. "Errors") to include in API
13500	// requests with the JSON null value. By default, fields with empty
13501	// values are omitted from API requests. However, any field with an
13502	// empty value appearing in NullFields will be sent to the server as
13503	// null. It is an error if a field in this list has a non-empty value.
13504	// This may be used to include null fields in Patch requests.
13505	NullFields []string `json:"-"`
13506}
13507
13508func (s *ManagedInstanceLastAttempt) MarshalJSON() ([]byte, error) {
13509	type NoMethod ManagedInstanceLastAttempt
13510	raw := NoMethod(*s)
13511	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13512}
13513
13514// ManagedInstanceLastAttemptErrors: [Output Only] Encountered errors
13515// during the last attempt to create or delete the instance.
13516type ManagedInstanceLastAttemptErrors struct {
13517	// Errors: [Output Only] The array of errors encountered while
13518	// processing this operation.
13519	Errors []*ManagedInstanceLastAttemptErrorsErrors `json:"errors,omitempty"`
13520
13521	// ForceSendFields is a list of field names (e.g. "Errors") to
13522	// unconditionally include in API requests. By default, fields with
13523	// empty values are omitted from API requests. However, any non-pointer,
13524	// non-interface field appearing in ForceSendFields will be sent to the
13525	// server regardless of whether the field is empty or not. This may be
13526	// used to include empty fields in Patch requests.
13527	ForceSendFields []string `json:"-"`
13528
13529	// NullFields is a list of field names (e.g. "Errors") to include in API
13530	// requests with the JSON null value. By default, fields with empty
13531	// values are omitted from API requests. However, any field with an
13532	// empty value appearing in NullFields will be sent to the server as
13533	// null. It is an error if a field in this list has a non-empty value.
13534	// This may be used to include null fields in Patch requests.
13535	NullFields []string `json:"-"`
13536}
13537
13538func (s *ManagedInstanceLastAttemptErrors) MarshalJSON() ([]byte, error) {
13539	type NoMethod ManagedInstanceLastAttemptErrors
13540	raw := NoMethod(*s)
13541	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13542}
13543
13544type ManagedInstanceLastAttemptErrorsErrors struct {
13545	// Code: [Output Only] The error type identifier for this error.
13546	Code string `json:"code,omitempty"`
13547
13548	// Location: [Output Only] Indicates the field in the request that
13549	// caused the error. This property is optional.
13550	Location string `json:"location,omitempty"`
13551
13552	// Message: [Output Only] An optional, human-readable error message.
13553	Message string `json:"message,omitempty"`
13554
13555	// ForceSendFields is a list of field names (e.g. "Code") to
13556	// unconditionally include in API requests. By default, fields with
13557	// empty values are omitted from API requests. However, any non-pointer,
13558	// non-interface field appearing in ForceSendFields will be sent to the
13559	// server regardless of whether the field is empty or not. This may be
13560	// used to include empty fields in Patch requests.
13561	ForceSendFields []string `json:"-"`
13562
13563	// NullFields is a list of field names (e.g. "Code") to include in API
13564	// requests with the JSON null value. By default, fields with empty
13565	// values are omitted from API requests. However, any field with an
13566	// empty value appearing in NullFields will be sent to the server as
13567	// null. It is an error if a field in this list has a non-empty value.
13568	// This may be used to include null fields in Patch requests.
13569	NullFields []string `json:"-"`
13570}
13571
13572func (s *ManagedInstanceLastAttemptErrorsErrors) MarshalJSON() ([]byte, error) {
13573	type NoMethod ManagedInstanceLastAttemptErrorsErrors
13574	raw := NoMethod(*s)
13575	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13576}
13577
13578// Metadata: A metadata key/value entry.
13579type Metadata struct {
13580	// Fingerprint: Specifies a fingerprint for this request, which is
13581	// essentially a hash of the metadata's contents and used for optimistic
13582	// locking. The fingerprint is initially generated by Compute Engine and
13583	// changes after every request to modify or update metadata. You must
13584	// always provide an up-to-date fingerprint hash in order to update or
13585	// change metadata.
13586	Fingerprint string `json:"fingerprint,omitempty"`
13587
13588	// Items: Array of key/value pairs. The total size of all keys and
13589	// values must be less than 512 KB.
13590	Items []*MetadataItems `json:"items,omitempty"`
13591
13592	// Kind: [Output Only] Type of the resource. Always compute#metadata for
13593	// metadata.
13594	Kind string `json:"kind,omitempty"`
13595
13596	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
13597	// unconditionally include in API requests. By default, fields with
13598	// empty values are omitted from API requests. However, any non-pointer,
13599	// non-interface field appearing in ForceSendFields will be sent to the
13600	// server regardless of whether the field is empty or not. This may be
13601	// used to include empty fields in Patch requests.
13602	ForceSendFields []string `json:"-"`
13603
13604	// NullFields is a list of field names (e.g. "Fingerprint") to include
13605	// in API requests with the JSON null value. By default, fields with
13606	// empty values are omitted from API requests. However, any field with
13607	// an empty value appearing in NullFields will be sent to the server as
13608	// null. It is an error if a field in this list has a non-empty value.
13609	// This may be used to include null fields in Patch requests.
13610	NullFields []string `json:"-"`
13611}
13612
13613func (s *Metadata) MarshalJSON() ([]byte, error) {
13614	type NoMethod Metadata
13615	raw := NoMethod(*s)
13616	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13617}
13618
13619type MetadataItems struct {
13620	// Key: Key for the metadata entry. Keys must conform to the following
13621	// regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is
13622	// reflected as part of a URL in the metadata server. Additionally, to
13623	// avoid ambiguity, keys must not conflict with any other metadata keys
13624	// for the project.
13625	Key string `json:"key,omitempty"`
13626
13627	// Value: Value for the metadata entry. These are free-form strings, and
13628	// only have meaning as interpreted by the image running in the
13629	// instance. The only restriction placed on values is that their size
13630	// must be less than or equal to 262144 bytes (256 KiB).
13631	Value *string `json:"value,omitempty"`
13632
13633	// ForceSendFields is a list of field names (e.g. "Key") to
13634	// unconditionally include in API requests. By default, fields with
13635	// empty values are omitted from API requests. However, any non-pointer,
13636	// non-interface field appearing in ForceSendFields will be sent to the
13637	// server regardless of whether the field is empty or not. This may be
13638	// used to include empty fields in Patch requests.
13639	ForceSendFields []string `json:"-"`
13640
13641	// NullFields is a list of field names (e.g. "Key") to include in API
13642	// requests with the JSON null value. By default, fields with empty
13643	// values are omitted from API requests. However, any field with an
13644	// empty value appearing in NullFields will be sent to the server as
13645	// null. It is an error if a field in this list has a non-empty value.
13646	// This may be used to include null fields in Patch requests.
13647	NullFields []string `json:"-"`
13648}
13649
13650func (s *MetadataItems) MarshalJSON() ([]byte, error) {
13651	type NoMethod MetadataItems
13652	raw := NoMethod(*s)
13653	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13654}
13655
13656// NamedPort: The named port. For example: .
13657type NamedPort struct {
13658	// Name: The name for this named port. The name must be 1-63 characters
13659	// long, and comply with RFC1035.
13660	Name string `json:"name,omitempty"`
13661
13662	// Port: The port number, which can be a value between 1 and 65535.
13663	Port int64 `json:"port,omitempty"`
13664
13665	// ForceSendFields is a list of field names (e.g. "Name") to
13666	// unconditionally include in API requests. By default, fields with
13667	// empty values are omitted from API requests. However, any non-pointer,
13668	// non-interface field appearing in ForceSendFields will be sent to the
13669	// server regardless of whether the field is empty or not. This may be
13670	// used to include empty fields in Patch requests.
13671	ForceSendFields []string `json:"-"`
13672
13673	// NullFields is a list of field names (e.g. "Name") to include in API
13674	// requests with the JSON null value. By default, fields with empty
13675	// values are omitted from API requests. However, any field with an
13676	// empty value appearing in NullFields will be sent to the server as
13677	// null. It is an error if a field in this list has a non-empty value.
13678	// This may be used to include null fields in Patch requests.
13679	NullFields []string `json:"-"`
13680}
13681
13682func (s *NamedPort) MarshalJSON() ([]byte, error) {
13683	type NoMethod NamedPort
13684	raw := NoMethod(*s)
13685	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13686}
13687
13688// Network: Represents a Network resource. Read Networks and Firewalls
13689// for more information. (== resource_for v1.networks ==) (==
13690// resource_for beta.networks ==)
13691type Network struct {
13692	// IPv4Range: The range of internal addresses that are legal on this
13693	// network. This range is a CIDR specification, for example:
13694	// 192.168.0.0/16. Provided by the client when the network is created.
13695	IPv4Range string `json:"IPv4Range,omitempty"`
13696
13697	// AutoCreateSubnetworks: When set to true, the network is created in
13698	// "auto subnet mode". When set to false, the network is in "custom
13699	// subnet mode".
13700	//
13701	// In "auto subnet mode", a newly created network is assigned the
13702	// default CIDR of 10.128.0.0/9 and it automatically creates one
13703	// subnetwork per region.
13704	AutoCreateSubnetworks bool `json:"autoCreateSubnetworks,omitempty"`
13705
13706	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
13707	// format.
13708	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13709
13710	// Description: An optional description of this resource. Provide this
13711	// property when you create the resource.
13712	Description string `json:"description,omitempty"`
13713
13714	// GatewayIPv4: A gateway address for default routing to other networks.
13715	// This value is read only and is selected by the Google Compute Engine,
13716	// typically as the first usable address in the IPv4Range.
13717	GatewayIPv4 string `json:"gatewayIPv4,omitempty"`
13718
13719	// Id: [Output Only] The unique identifier for the resource. This
13720	// identifier is defined by the server.
13721	Id uint64 `json:"id,omitempty,string"`
13722
13723	// Kind: [Output Only] Type of the resource. Always compute#network for
13724	// networks.
13725	Kind string `json:"kind,omitempty"`
13726
13727	// Name: Name of the resource. Provided by the client when the resource
13728	// is created. The name must be 1-63 characters long, and comply with
13729	// RFC1035. Specifically, the name must be 1-63 characters long and
13730	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
13731	// the first character must be a lowercase letter, and all following
13732	// characters must be a dash, lowercase letter, or digit, except the
13733	// last character, which cannot be a dash.
13734	Name string `json:"name,omitempty"`
13735
13736	// Peerings: [Output Only] List of network peerings for the resource.
13737	Peerings []*NetworkPeering `json:"peerings,omitempty"`
13738
13739	// RoutingConfig: The network-level routing configuration for this
13740	// network. Used by Cloud Router to determine what type of network-wide
13741	// routing behavior to enforce.
13742	RoutingConfig *NetworkRoutingConfig `json:"routingConfig,omitempty"`
13743
13744	// SelfLink: [Output Only] Server-defined URL for the resource.
13745	SelfLink string `json:"selfLink,omitempty"`
13746
13747	// Subnetworks: [Output Only] Server-defined fully-qualified URLs for
13748	// all subnetworks in this network.
13749	Subnetworks []string `json:"subnetworks,omitempty"`
13750
13751	// ServerResponse contains the HTTP response code and headers from the
13752	// server.
13753	googleapi.ServerResponse `json:"-"`
13754
13755	// ForceSendFields is a list of field names (e.g. "IPv4Range") to
13756	// unconditionally include in API requests. By default, fields with
13757	// empty values are omitted from API requests. However, any non-pointer,
13758	// non-interface field appearing in ForceSendFields will be sent to the
13759	// server regardless of whether the field is empty or not. This may be
13760	// used to include empty fields in Patch requests.
13761	ForceSendFields []string `json:"-"`
13762
13763	// NullFields is a list of field names (e.g. "IPv4Range") to include in
13764	// API requests with the JSON null value. By default, fields with empty
13765	// values are omitted from API requests. However, any field with an
13766	// empty value appearing in NullFields will be sent to the server as
13767	// null. It is an error if a field in this list has a non-empty value.
13768	// This may be used to include null fields in Patch requests.
13769	NullFields []string `json:"-"`
13770}
13771
13772func (s *Network) MarshalJSON() ([]byte, error) {
13773	type NoMethod Network
13774	raw := NoMethod(*s)
13775	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13776}
13777
13778// NetworkInterface: A network interface resource attached to an
13779// instance.
13780type NetworkInterface struct {
13781	// AccessConfigs: An array of configurations for this interface.
13782	// Currently, only one access config, ONE_TO_ONE_NAT, is supported. If
13783	// there are no accessConfigs specified, then this instance will have no
13784	// external internet access.
13785	AccessConfigs []*AccessConfig `json:"accessConfigs,omitempty"`
13786
13787	// AliasIpRanges: An array of alias IP ranges for this network
13788	// interface. Can only be specified for network interfaces on
13789	// subnet-mode networks.
13790	AliasIpRanges []*AliasIpRange `json:"aliasIpRanges,omitempty"`
13791
13792	// Kind: [Output Only] Type of the resource. Always
13793	// compute#networkInterface for network interfaces.
13794	Kind string `json:"kind,omitempty"`
13795
13796	// Name: [Output Only] The name of the network interface, generated by
13797	// the server. For network devices, these are eth0, eth1, etc.
13798	Name string `json:"name,omitempty"`
13799
13800	// Network: URL of the network resource for this instance. When creating
13801	// an instance, if neither the network nor the subnetwork is specified,
13802	// the default network global/networks/default is used; if the network
13803	// is not specified but the subnetwork is specified, the network is
13804	// inferred.
13805	//
13806	// This field is optional when creating a firewall rule. If not
13807	// specified when creating a firewall rule, the default network
13808	// global/networks/default is used.
13809	//
13810	// If you specify this property, you can specify the network as a full
13811	// or partial URL. For example, the following are all valid URLs:
13812	// -
13813	// https://www.googleapis.com/compute/v1/projects/project/global/networks/network
13814	// - projects/project/global/networks/network
13815	// - global/networks/default
13816	Network string `json:"network,omitempty"`
13817
13818	// NetworkIP: An IPv4 internal network address to assign to the instance
13819	// for this network interface. If not specified by the user, an unused
13820	// internal IP is assigned by the system.
13821	NetworkIP string `json:"networkIP,omitempty"`
13822
13823	// Subnetwork: The URL of the Subnetwork resource for this instance. If
13824	// the network resource is in legacy mode, do not provide this property.
13825	// If the network is in auto subnet mode, providing the subnetwork is
13826	// optional. If the network is in custom subnet mode, then this field
13827	// should be specified. If you specify this property, you can specify
13828	// the subnetwork as a full or partial URL. For example, the following
13829	// are all valid URLs:
13830	// -
13831	// https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
13832	// - regions/region/subnetworks/subnetwork
13833	Subnetwork string `json:"subnetwork,omitempty"`
13834
13835	// ForceSendFields is a list of field names (e.g. "AccessConfigs") to
13836	// unconditionally include in API requests. By default, fields with
13837	// empty values are omitted from API requests. However, any non-pointer,
13838	// non-interface field appearing in ForceSendFields will be sent to the
13839	// server regardless of whether the field is empty or not. This may be
13840	// used to include empty fields in Patch requests.
13841	ForceSendFields []string `json:"-"`
13842
13843	// NullFields is a list of field names (e.g. "AccessConfigs") to include
13844	// in API requests with the JSON null value. By default, fields with
13845	// empty values are omitted from API requests. However, any field with
13846	// an empty value appearing in NullFields will be sent to the server as
13847	// null. It is an error if a field in this list has a non-empty value.
13848	// This may be used to include null fields in Patch requests.
13849	NullFields []string `json:"-"`
13850}
13851
13852func (s *NetworkInterface) MarshalJSON() ([]byte, error) {
13853	type NoMethod NetworkInterface
13854	raw := NoMethod(*s)
13855	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13856}
13857
13858// NetworkList: Contains a list of networks.
13859type NetworkList struct {
13860	// Id: [Output Only] Unique identifier for the resource; defined by the
13861	// server.
13862	Id string `json:"id,omitempty"`
13863
13864	// Items: A list of Network resources.
13865	Items []*Network `json:"items,omitempty"`
13866
13867	// Kind: [Output Only] Type of resource. Always compute#networkList for
13868	// lists of networks.
13869	Kind string `json:"kind,omitempty"`
13870
13871	// NextPageToken: [Output Only] This token allows you to get the next
13872	// page of results for list requests. If the number of results is larger
13873	// than maxResults, use the nextPageToken as a value for the query
13874	// parameter pageToken in the next list request. Subsequent list
13875	// requests will have their own nextPageToken to continue paging through
13876	// the results.
13877	NextPageToken string `json:"nextPageToken,omitempty"`
13878
13879	// SelfLink: [Output Only] Server-defined URL for this resource.
13880	SelfLink string `json:"selfLink,omitempty"`
13881
13882	// Warning: [Output Only] Informational warning message.
13883	Warning *NetworkListWarning `json:"warning,omitempty"`
13884
13885	// ServerResponse contains the HTTP response code and headers from the
13886	// server.
13887	googleapi.ServerResponse `json:"-"`
13888
13889	// ForceSendFields is a list of field names (e.g. "Id") to
13890	// unconditionally include in API requests. By default, fields with
13891	// empty values are omitted from API requests. However, any non-pointer,
13892	// non-interface field appearing in ForceSendFields will be sent to the
13893	// server regardless of whether the field is empty or not. This may be
13894	// used to include empty fields in Patch requests.
13895	ForceSendFields []string `json:"-"`
13896
13897	// NullFields is a list of field names (e.g. "Id") to include in API
13898	// requests with the JSON null value. By default, fields with empty
13899	// values are omitted from API requests. However, any field with an
13900	// empty value appearing in NullFields will be sent to the server as
13901	// null. It is an error if a field in this list has a non-empty value.
13902	// This may be used to include null fields in Patch requests.
13903	NullFields []string `json:"-"`
13904}
13905
13906func (s *NetworkList) MarshalJSON() ([]byte, error) {
13907	type NoMethod NetworkList
13908	raw := NoMethod(*s)
13909	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13910}
13911
13912// NetworkListWarning: [Output Only] Informational warning message.
13913type NetworkListWarning struct {
13914	// Code: [Output Only] A warning code, if applicable. For example,
13915	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13916	// the response.
13917	//
13918	// Possible values:
13919	//   "CLEANUP_FAILED"
13920	//   "DEPRECATED_RESOURCE_USED"
13921	//   "DEPRECATED_TYPE_USED"
13922	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13923	//   "EXPERIMENTAL_TYPE_USED"
13924	//   "EXTERNAL_API_WARNING"
13925	//   "FIELD_VALUE_OVERRIDEN"
13926	//   "INJECTED_KERNELS_DEPRECATED"
13927	//   "MISSING_TYPE_DEPENDENCY"
13928	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13929	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13930	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13931	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13932	//   "NEXT_HOP_NOT_RUNNING"
13933	//   "NOT_CRITICAL_ERROR"
13934	//   "NO_RESULTS_ON_PAGE"
13935	//   "REQUIRED_TOS_AGREEMENT"
13936	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13937	//   "RESOURCE_NOT_DELETED"
13938	//   "SCHEMA_VALIDATION_IGNORED"
13939	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13940	//   "UNDECLARED_PROPERTIES"
13941	//   "UNREACHABLE"
13942	Code string `json:"code,omitempty"`
13943
13944	// Data: [Output Only] Metadata about this warning in key: value format.
13945	// For example:
13946	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13947	Data []*NetworkListWarningData `json:"data,omitempty"`
13948
13949	// Message: [Output Only] A human-readable description of the warning
13950	// code.
13951	Message string `json:"message,omitempty"`
13952
13953	// ForceSendFields is a list of field names (e.g. "Code") to
13954	// unconditionally include in API requests. By default, fields with
13955	// empty values are omitted from API requests. However, any non-pointer,
13956	// non-interface field appearing in ForceSendFields will be sent to the
13957	// server regardless of whether the field is empty or not. This may be
13958	// used to include empty fields in Patch requests.
13959	ForceSendFields []string `json:"-"`
13960
13961	// NullFields is a list of field names (e.g. "Code") to include in API
13962	// requests with the JSON null value. By default, fields with empty
13963	// values are omitted from API requests. However, any field with an
13964	// empty value appearing in NullFields will be sent to the server as
13965	// null. It is an error if a field in this list has a non-empty value.
13966	// This may be used to include null fields in Patch requests.
13967	NullFields []string `json:"-"`
13968}
13969
13970func (s *NetworkListWarning) MarshalJSON() ([]byte, error) {
13971	type NoMethod NetworkListWarning
13972	raw := NoMethod(*s)
13973	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13974}
13975
13976type NetworkListWarningData struct {
13977	// Key: [Output Only] A key that provides more detail on the warning
13978	// being returned. For example, for warnings where there are no results
13979	// in a list request for a particular zone, this key might be scope and
13980	// the key value might be the zone name. Other examples might be a key
13981	// indicating a deprecated resource and a suggested replacement, or a
13982	// warning about invalid network settings (for example, if an instance
13983	// attempts to perform IP forwarding but is not enabled for IP
13984	// forwarding).
13985	Key string `json:"key,omitempty"`
13986
13987	// Value: [Output Only] A warning data value corresponding to the key.
13988	Value string `json:"value,omitempty"`
13989
13990	// ForceSendFields is a list of field names (e.g. "Key") to
13991	// unconditionally include in API requests. By default, fields with
13992	// empty values are omitted from API requests. However, any non-pointer,
13993	// non-interface field appearing in ForceSendFields will be sent to the
13994	// server regardless of whether the field is empty or not. This may be
13995	// used to include empty fields in Patch requests.
13996	ForceSendFields []string `json:"-"`
13997
13998	// NullFields is a list of field names (e.g. "Key") to include in API
13999	// requests with the JSON null value. By default, fields with empty
14000	// values are omitted from API requests. However, any field with an
14001	// empty value appearing in NullFields will be sent to the server as
14002	// null. It is an error if a field in this list has a non-empty value.
14003	// This may be used to include null fields in Patch requests.
14004	NullFields []string `json:"-"`
14005}
14006
14007func (s *NetworkListWarningData) MarshalJSON() ([]byte, error) {
14008	type NoMethod NetworkListWarningData
14009	raw := NoMethod(*s)
14010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14011}
14012
14013// NetworkPeering: A network peering attached to a network resource. The
14014// message includes the peering name, peer network, peering state, and a
14015// flag indicating whether Google Compute Engine should automatically
14016// create routes for the peering.
14017type NetworkPeering struct {
14018	// AutoCreateRoutes: Whether full mesh connectivity is created and
14019	// managed automatically. When it is set to true, Google Compute Engine
14020	// will automatically create and manage the routes between two networks
14021	// when the state is ACTIVE. Otherwise, user needs to create routes
14022	// manually to route packets to peer network.
14023	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
14024
14025	// Name: Name of this peering. Provided by the client when the peering
14026	// is created. The name must comply with RFC1035. Specifically, the name
14027	// must be 1-63 characters long and match regular expression
14028	// [a-z]([-a-z0-9]*[a-z0-9])? which means the first character must be a
14029	// lowercase letter, and all the following characters must be a dash,
14030	// lowercase letter, or digit, except the last character, which cannot
14031	// be a dash.
14032	Name string `json:"name,omitempty"`
14033
14034	// Network: The URL of the peer network. It can be either full URL or
14035	// partial URL. The peer network may belong to a different project. If
14036	// the partial URL does not contain project, it is assumed that the peer
14037	// network is in the same project as the current network.
14038	Network string `json:"network,omitempty"`
14039
14040	// State: [Output Only] State for the peering.
14041	//
14042	// Possible values:
14043	//   "ACTIVE"
14044	//   "INACTIVE"
14045	State string `json:"state,omitempty"`
14046
14047	// StateDetails: [Output Only] Details about the current state of the
14048	// peering.
14049	StateDetails string `json:"stateDetails,omitempty"`
14050
14051	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
14052	// unconditionally include in API requests. By default, fields with
14053	// empty values are omitted from API requests. However, any non-pointer,
14054	// non-interface field appearing in ForceSendFields will be sent to the
14055	// server regardless of whether the field is empty or not. This may be
14056	// used to include empty fields in Patch requests.
14057	ForceSendFields []string `json:"-"`
14058
14059	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
14060	// include in API requests with the JSON null value. By default, fields
14061	// with empty values are omitted from API requests. However, any field
14062	// with an empty value appearing in NullFields will be sent to the
14063	// server as null. It is an error if a field in this list has a
14064	// non-empty value. This may be used to include null fields in Patch
14065	// requests.
14066	NullFields []string `json:"-"`
14067}
14068
14069func (s *NetworkPeering) MarshalJSON() ([]byte, error) {
14070	type NoMethod NetworkPeering
14071	raw := NoMethod(*s)
14072	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14073}
14074
14075// NetworkRoutingConfig: A routing configuration attached to a network
14076// resource. The message includes the list of routers associated with
14077// the network, and a flag indicating the type of routing behavior to
14078// enforce network-wide.
14079type NetworkRoutingConfig struct {
14080	// RoutingMode: The network-wide routing mode to use. If set to
14081	// REGIONAL, this network's cloud routers will only advertise routes
14082	// with subnetworks of this network in the same region as the router. If
14083	// set to GLOBAL, this network's cloud routers will advertise routes
14084	// with all subnetworks of this network, across regions.
14085	//
14086	// Possible values:
14087	//   "GLOBAL"
14088	//   "REGIONAL"
14089	RoutingMode string `json:"routingMode,omitempty"`
14090
14091	// ForceSendFields is a list of field names (e.g. "RoutingMode") to
14092	// unconditionally include in API requests. By default, fields with
14093	// empty values are omitted from API requests. However, any non-pointer,
14094	// non-interface field appearing in ForceSendFields will be sent to the
14095	// server regardless of whether the field is empty or not. This may be
14096	// used to include empty fields in Patch requests.
14097	ForceSendFields []string `json:"-"`
14098
14099	// NullFields is a list of field names (e.g. "RoutingMode") to include
14100	// in API requests with the JSON null value. By default, fields with
14101	// empty values are omitted from API requests. However, any field with
14102	// an empty value appearing in NullFields will be sent to the server as
14103	// null. It is an error if a field in this list has a non-empty value.
14104	// This may be used to include null fields in Patch requests.
14105	NullFields []string `json:"-"`
14106}
14107
14108func (s *NetworkRoutingConfig) MarshalJSON() ([]byte, error) {
14109	type NoMethod NetworkRoutingConfig
14110	raw := NoMethod(*s)
14111	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14112}
14113
14114type NetworksAddPeeringRequest struct {
14115	// AutoCreateRoutes: Whether Google Compute Engine manages the routes
14116	// automatically.
14117	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
14118
14119	// Name: Name of the peering, which should conform to RFC1035.
14120	Name string `json:"name,omitempty"`
14121
14122	// PeerNetwork: URL of the peer network. It can be either full URL or
14123	// partial URL. The peer network may belong to a different project. If
14124	// the partial URL does not contain project, it is assumed that the peer
14125	// network is in the same project as the current network.
14126	PeerNetwork string `json:"peerNetwork,omitempty"`
14127
14128	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
14129	// unconditionally include in API requests. By default, fields with
14130	// empty values are omitted from API requests. However, any non-pointer,
14131	// non-interface field appearing in ForceSendFields will be sent to the
14132	// server regardless of whether the field is empty or not. This may be
14133	// used to include empty fields in Patch requests.
14134	ForceSendFields []string `json:"-"`
14135
14136	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
14137	// include in API requests with the JSON null value. By default, fields
14138	// with empty values are omitted from API requests. However, any field
14139	// with an empty value appearing in NullFields will be sent to the
14140	// server as null. It is an error if a field in this list has a
14141	// non-empty value. This may be used to include null fields in Patch
14142	// requests.
14143	NullFields []string `json:"-"`
14144}
14145
14146func (s *NetworksAddPeeringRequest) MarshalJSON() ([]byte, error) {
14147	type NoMethod NetworksAddPeeringRequest
14148	raw := NoMethod(*s)
14149	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14150}
14151
14152type NetworksRemovePeeringRequest struct {
14153	// Name: Name of the peering, which should conform to RFC1035.
14154	Name string `json:"name,omitempty"`
14155
14156	// ForceSendFields is a list of field names (e.g. "Name") to
14157	// unconditionally include in API requests. By default, fields with
14158	// empty values are omitted from API requests. However, any non-pointer,
14159	// non-interface field appearing in ForceSendFields will be sent to the
14160	// server regardless of whether the field is empty or not. This may be
14161	// used to include empty fields in Patch requests.
14162	ForceSendFields []string `json:"-"`
14163
14164	// NullFields is a list of field names (e.g. "Name") to include in API
14165	// requests with the JSON null value. By default, fields with empty
14166	// values are omitted from API requests. However, any field with an
14167	// empty value appearing in NullFields will be sent to the server as
14168	// null. It is an error if a field in this list has a non-empty value.
14169	// This may be used to include null fields in Patch requests.
14170	NullFields []string `json:"-"`
14171}
14172
14173func (s *NetworksRemovePeeringRequest) MarshalJSON() ([]byte, error) {
14174	type NoMethod NetworksRemovePeeringRequest
14175	raw := NoMethod(*s)
14176	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14177}
14178
14179// Operation: An Operation resource, used to manage asynchronous API
14180// requests. (== resource_for v1.globalOperations ==) (== resource_for
14181// beta.globalOperations ==) (== resource_for v1.regionOperations ==)
14182// (== resource_for beta.regionOperations ==) (== resource_for
14183// v1.zoneOperations ==) (== resource_for beta.zoneOperations ==)
14184type Operation struct {
14185	// ClientOperationId: [Output Only] Reserved for future use.
14186	ClientOperationId string `json:"clientOperationId,omitempty"`
14187
14188	// CreationTimestamp: [Deprecated] This field is deprecated.
14189	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14190
14191	// Description: [Output Only] A textual description of the operation,
14192	// which is set when the operation is created.
14193	Description string `json:"description,omitempty"`
14194
14195	// EndTime: [Output Only] The time that this operation was completed.
14196	// This value is in RFC3339 text format.
14197	EndTime string `json:"endTime,omitempty"`
14198
14199	// Error: [Output Only] If errors are generated during processing of the
14200	// operation, this field will be populated.
14201	Error *OperationError `json:"error,omitempty"`
14202
14203	// HttpErrorMessage: [Output Only] If the operation fails, this field
14204	// contains the HTTP error message that was returned, such as NOT FOUND.
14205	HttpErrorMessage string `json:"httpErrorMessage,omitempty"`
14206
14207	// HttpErrorStatusCode: [Output Only] If the operation fails, this field
14208	// contains the HTTP error status code that was returned. For example, a
14209	// 404 means the resource was not found.
14210	HttpErrorStatusCode int64 `json:"httpErrorStatusCode,omitempty"`
14211
14212	// Id: [Output Only] The unique identifier for the resource. This
14213	// identifier is defined by the server.
14214	Id uint64 `json:"id,omitempty,string"`
14215
14216	// InsertTime: [Output Only] The time that this operation was requested.
14217	// This value is in RFC3339 text format.
14218	InsertTime string `json:"insertTime,omitempty"`
14219
14220	// Kind: [Output Only] Type of the resource. Always compute#operation
14221	// for Operation resources.
14222	Kind string `json:"kind,omitempty"`
14223
14224	// Name: [Output Only] Name of the resource.
14225	Name string `json:"name,omitempty"`
14226
14227	// OperationType: [Output Only] The type of operation, such as insert,
14228	// update, or delete, and so on.
14229	OperationType string `json:"operationType,omitempty"`
14230
14231	// Progress: [Output Only] An optional progress indicator that ranges
14232	// from 0 to 100. There is no requirement that this be linear or support
14233	// any granularity of operations. This should not be used to guess when
14234	// the operation will be complete. This number should monotonically
14235	// increase as the operation progresses.
14236	Progress int64 `json:"progress,omitempty"`
14237
14238	// Region: [Output Only] The URL of the region where the operation
14239	// resides. Only available when performing regional operations. You must
14240	// specify this field as part of the HTTP request URL. It is not
14241	// settable as a field in the request body.
14242	Region string `json:"region,omitempty"`
14243
14244	// SelfLink: [Output Only] Server-defined URL for the resource.
14245	SelfLink string `json:"selfLink,omitempty"`
14246
14247	// StartTime: [Output Only] The time that this operation was started by
14248	// the server. This value is in RFC3339 text format.
14249	StartTime string `json:"startTime,omitempty"`
14250
14251	// Status: [Output Only] The status of the operation, which can be one
14252	// of the following: PENDING, RUNNING, or DONE.
14253	//
14254	// Possible values:
14255	//   "DONE"
14256	//   "PENDING"
14257	//   "RUNNING"
14258	Status string `json:"status,omitempty"`
14259
14260	// StatusMessage: [Output Only] An optional textual description of the
14261	// current status of the operation.
14262	StatusMessage string `json:"statusMessage,omitempty"`
14263
14264	// TargetId: [Output Only] The unique target ID, which identifies a
14265	// specific incarnation of the target resource.
14266	TargetId uint64 `json:"targetId,omitempty,string"`
14267
14268	// TargetLink: [Output Only] The URL of the resource that the operation
14269	// modifies. For operations related to creating a snapshot, this points
14270	// to the persistent disk that the snapshot was created from.
14271	TargetLink string `json:"targetLink,omitempty"`
14272
14273	// User: [Output Only] User who requested the operation, for example:
14274	// user@example.com.
14275	User string `json:"user,omitempty"`
14276
14277	// Warnings: [Output Only] If warning messages are generated during
14278	// processing of the operation, this field will be populated.
14279	Warnings []*OperationWarnings `json:"warnings,omitempty"`
14280
14281	// Zone: [Output Only] The URL of the zone where the operation resides.
14282	// Only available when performing per-zone operations. You must specify
14283	// this field as part of the HTTP request URL. It is not settable as a
14284	// field in the request body.
14285	Zone string `json:"zone,omitempty"`
14286
14287	// ServerResponse contains the HTTP response code and headers from the
14288	// server.
14289	googleapi.ServerResponse `json:"-"`
14290
14291	// ForceSendFields is a list of field names (e.g. "ClientOperationId")
14292	// to unconditionally include in API requests. By default, fields with
14293	// empty values are omitted from API requests. However, any non-pointer,
14294	// non-interface field appearing in ForceSendFields will be sent to the
14295	// server regardless of whether the field is empty or not. This may be
14296	// used to include empty fields in Patch requests.
14297	ForceSendFields []string `json:"-"`
14298
14299	// NullFields is a list of field names (e.g. "ClientOperationId") to
14300	// include in API requests with the JSON null value. By default, fields
14301	// with empty values are omitted from API requests. However, any field
14302	// with an empty value appearing in NullFields will be sent to the
14303	// server as null. It is an error if a field in this list has a
14304	// non-empty value. This may be used to include null fields in Patch
14305	// requests.
14306	NullFields []string `json:"-"`
14307}
14308
14309func (s *Operation) MarshalJSON() ([]byte, error) {
14310	type NoMethod Operation
14311	raw := NoMethod(*s)
14312	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14313}
14314
14315// OperationError: [Output Only] If errors are generated during
14316// processing of the operation, this field will be populated.
14317type OperationError struct {
14318	// Errors: [Output Only] The array of errors encountered while
14319	// processing this operation.
14320	Errors []*OperationErrorErrors `json:"errors,omitempty"`
14321
14322	// ForceSendFields is a list of field names (e.g. "Errors") to
14323	// unconditionally include in API requests. By default, fields with
14324	// empty values are omitted from API requests. However, any non-pointer,
14325	// non-interface field appearing in ForceSendFields will be sent to the
14326	// server regardless of whether the field is empty or not. This may be
14327	// used to include empty fields in Patch requests.
14328	ForceSendFields []string `json:"-"`
14329
14330	// NullFields is a list of field names (e.g. "Errors") to include in API
14331	// requests with the JSON null value. By default, fields with empty
14332	// values are omitted from API requests. However, any field with an
14333	// empty value appearing in NullFields will be sent to the server as
14334	// null. It is an error if a field in this list has a non-empty value.
14335	// This may be used to include null fields in Patch requests.
14336	NullFields []string `json:"-"`
14337}
14338
14339func (s *OperationError) MarshalJSON() ([]byte, error) {
14340	type NoMethod OperationError
14341	raw := NoMethod(*s)
14342	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14343}
14344
14345type OperationErrorErrors struct {
14346	// Code: [Output Only] The error type identifier for this error.
14347	Code string `json:"code,omitempty"`
14348
14349	// Location: [Output Only] Indicates the field in the request that
14350	// caused the error. This property is optional.
14351	Location string `json:"location,omitempty"`
14352
14353	// Message: [Output Only] An optional, human-readable error message.
14354	Message string `json:"message,omitempty"`
14355
14356	// ForceSendFields is a list of field names (e.g. "Code") to
14357	// unconditionally include in API requests. By default, fields with
14358	// empty values are omitted from API requests. However, any non-pointer,
14359	// non-interface field appearing in ForceSendFields will be sent to the
14360	// server regardless of whether the field is empty or not. This may be
14361	// used to include empty fields in Patch requests.
14362	ForceSendFields []string `json:"-"`
14363
14364	// NullFields is a list of field names (e.g. "Code") to include in API
14365	// requests with the JSON null value. By default, fields with empty
14366	// values are omitted from API requests. However, any field with an
14367	// empty value appearing in NullFields will be sent to the server as
14368	// null. It is an error if a field in this list has a non-empty value.
14369	// This may be used to include null fields in Patch requests.
14370	NullFields []string `json:"-"`
14371}
14372
14373func (s *OperationErrorErrors) MarshalJSON() ([]byte, error) {
14374	type NoMethod OperationErrorErrors
14375	raw := NoMethod(*s)
14376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14377}
14378
14379type OperationWarnings struct {
14380	// Code: [Output Only] A warning code, if applicable. For example,
14381	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14382	// the response.
14383	//
14384	// Possible values:
14385	//   "CLEANUP_FAILED"
14386	//   "DEPRECATED_RESOURCE_USED"
14387	//   "DEPRECATED_TYPE_USED"
14388	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14389	//   "EXPERIMENTAL_TYPE_USED"
14390	//   "EXTERNAL_API_WARNING"
14391	//   "FIELD_VALUE_OVERRIDEN"
14392	//   "INJECTED_KERNELS_DEPRECATED"
14393	//   "MISSING_TYPE_DEPENDENCY"
14394	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14395	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14396	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14397	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14398	//   "NEXT_HOP_NOT_RUNNING"
14399	//   "NOT_CRITICAL_ERROR"
14400	//   "NO_RESULTS_ON_PAGE"
14401	//   "REQUIRED_TOS_AGREEMENT"
14402	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14403	//   "RESOURCE_NOT_DELETED"
14404	//   "SCHEMA_VALIDATION_IGNORED"
14405	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14406	//   "UNDECLARED_PROPERTIES"
14407	//   "UNREACHABLE"
14408	Code string `json:"code,omitempty"`
14409
14410	// Data: [Output Only] Metadata about this warning in key: value format.
14411	// For example:
14412	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14413	Data []*OperationWarningsData `json:"data,omitempty"`
14414
14415	// Message: [Output Only] A human-readable description of the warning
14416	// code.
14417	Message string `json:"message,omitempty"`
14418
14419	// ForceSendFields is a list of field names (e.g. "Code") to
14420	// unconditionally include in API requests. By default, fields with
14421	// empty values are omitted from API requests. However, any non-pointer,
14422	// non-interface field appearing in ForceSendFields will be sent to the
14423	// server regardless of whether the field is empty or not. This may be
14424	// used to include empty fields in Patch requests.
14425	ForceSendFields []string `json:"-"`
14426
14427	// NullFields is a list of field names (e.g. "Code") to include in API
14428	// requests with the JSON null value. By default, fields with empty
14429	// values are omitted from API requests. However, any field with an
14430	// empty value appearing in NullFields will be sent to the server as
14431	// null. It is an error if a field in this list has a non-empty value.
14432	// This may be used to include null fields in Patch requests.
14433	NullFields []string `json:"-"`
14434}
14435
14436func (s *OperationWarnings) MarshalJSON() ([]byte, error) {
14437	type NoMethod OperationWarnings
14438	raw := NoMethod(*s)
14439	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14440}
14441
14442type OperationWarningsData struct {
14443	// Key: [Output Only] A key that provides more detail on the warning
14444	// being returned. For example, for warnings where there are no results
14445	// in a list request for a particular zone, this key might be scope and
14446	// the key value might be the zone name. Other examples might be a key
14447	// indicating a deprecated resource and a suggested replacement, or a
14448	// warning about invalid network settings (for example, if an instance
14449	// attempts to perform IP forwarding but is not enabled for IP
14450	// forwarding).
14451	Key string `json:"key,omitempty"`
14452
14453	// Value: [Output Only] A warning data value corresponding to the key.
14454	Value string `json:"value,omitempty"`
14455
14456	// ForceSendFields is a list of field names (e.g. "Key") to
14457	// unconditionally include in API requests. By default, fields with
14458	// empty values are omitted from API requests. However, any non-pointer,
14459	// non-interface field appearing in ForceSendFields will be sent to the
14460	// server regardless of whether the field is empty or not. This may be
14461	// used to include empty fields in Patch requests.
14462	ForceSendFields []string `json:"-"`
14463
14464	// NullFields is a list of field names (e.g. "Key") to include in API
14465	// requests with the JSON null value. By default, fields with empty
14466	// values are omitted from API requests. However, any field with an
14467	// empty value appearing in NullFields will be sent to the server as
14468	// null. It is an error if a field in this list has a non-empty value.
14469	// This may be used to include null fields in Patch requests.
14470	NullFields []string `json:"-"`
14471}
14472
14473func (s *OperationWarningsData) MarshalJSON() ([]byte, error) {
14474	type NoMethod OperationWarningsData
14475	raw := NoMethod(*s)
14476	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14477}
14478
14479type OperationAggregatedList struct {
14480	// Id: [Output Only] The unique identifier for the resource. This
14481	// identifier is defined by the server.
14482	Id string `json:"id,omitempty"`
14483
14484	// Items: [Output Only] A map of scoped operation lists.
14485	Items map[string]OperationsScopedList `json:"items,omitempty"`
14486
14487	// Kind: [Output Only] Type of resource. Always
14488	// compute#operationAggregatedList for aggregated lists of operations.
14489	Kind string `json:"kind,omitempty"`
14490
14491	// NextPageToken: [Output Only] This token allows you to get the next
14492	// page of results for list requests. If the number of results is larger
14493	// than maxResults, use the nextPageToken as a value for the query
14494	// parameter pageToken in the next list request. Subsequent list
14495	// requests will have their own nextPageToken to continue paging through
14496	// the results.
14497	NextPageToken string `json:"nextPageToken,omitempty"`
14498
14499	// SelfLink: [Output Only] Server-defined URL for this resource.
14500	SelfLink string `json:"selfLink,omitempty"`
14501
14502	// Warning: [Output Only] Informational warning message.
14503	Warning *OperationAggregatedListWarning `json:"warning,omitempty"`
14504
14505	// ServerResponse contains the HTTP response code and headers from the
14506	// server.
14507	googleapi.ServerResponse `json:"-"`
14508
14509	// ForceSendFields is a list of field names (e.g. "Id") to
14510	// unconditionally include in API requests. By default, fields with
14511	// empty values are omitted from API requests. However, any non-pointer,
14512	// non-interface field appearing in ForceSendFields will be sent to the
14513	// server regardless of whether the field is empty or not. This may be
14514	// used to include empty fields in Patch requests.
14515	ForceSendFields []string `json:"-"`
14516
14517	// NullFields is a list of field names (e.g. "Id") to include in API
14518	// requests with the JSON null value. By default, fields with empty
14519	// values are omitted from API requests. However, any field with an
14520	// empty value appearing in NullFields will be sent to the server as
14521	// null. It is an error if a field in this list has a non-empty value.
14522	// This may be used to include null fields in Patch requests.
14523	NullFields []string `json:"-"`
14524}
14525
14526func (s *OperationAggregatedList) MarshalJSON() ([]byte, error) {
14527	type NoMethod OperationAggregatedList
14528	raw := NoMethod(*s)
14529	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14530}
14531
14532// OperationAggregatedListWarning: [Output Only] Informational warning
14533// message.
14534type OperationAggregatedListWarning struct {
14535	// Code: [Output Only] A warning code, if applicable. For example,
14536	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14537	// the response.
14538	//
14539	// Possible values:
14540	//   "CLEANUP_FAILED"
14541	//   "DEPRECATED_RESOURCE_USED"
14542	//   "DEPRECATED_TYPE_USED"
14543	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14544	//   "EXPERIMENTAL_TYPE_USED"
14545	//   "EXTERNAL_API_WARNING"
14546	//   "FIELD_VALUE_OVERRIDEN"
14547	//   "INJECTED_KERNELS_DEPRECATED"
14548	//   "MISSING_TYPE_DEPENDENCY"
14549	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14550	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14551	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14552	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14553	//   "NEXT_HOP_NOT_RUNNING"
14554	//   "NOT_CRITICAL_ERROR"
14555	//   "NO_RESULTS_ON_PAGE"
14556	//   "REQUIRED_TOS_AGREEMENT"
14557	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14558	//   "RESOURCE_NOT_DELETED"
14559	//   "SCHEMA_VALIDATION_IGNORED"
14560	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14561	//   "UNDECLARED_PROPERTIES"
14562	//   "UNREACHABLE"
14563	Code string `json:"code,omitempty"`
14564
14565	// Data: [Output Only] Metadata about this warning in key: value format.
14566	// For example:
14567	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14568	Data []*OperationAggregatedListWarningData `json:"data,omitempty"`
14569
14570	// Message: [Output Only] A human-readable description of the warning
14571	// code.
14572	Message string `json:"message,omitempty"`
14573
14574	// ForceSendFields is a list of field names (e.g. "Code") to
14575	// unconditionally include in API requests. By default, fields with
14576	// empty values are omitted from API requests. However, any non-pointer,
14577	// non-interface field appearing in ForceSendFields will be sent to the
14578	// server regardless of whether the field is empty or not. This may be
14579	// used to include empty fields in Patch requests.
14580	ForceSendFields []string `json:"-"`
14581
14582	// NullFields is a list of field names (e.g. "Code") to include in API
14583	// requests with the JSON null value. By default, fields with empty
14584	// values are omitted from API requests. However, any field with an
14585	// empty value appearing in NullFields will be sent to the server as
14586	// null. It is an error if a field in this list has a non-empty value.
14587	// This may be used to include null fields in Patch requests.
14588	NullFields []string `json:"-"`
14589}
14590
14591func (s *OperationAggregatedListWarning) MarshalJSON() ([]byte, error) {
14592	type NoMethod OperationAggregatedListWarning
14593	raw := NoMethod(*s)
14594	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14595}
14596
14597type OperationAggregatedListWarningData struct {
14598	// Key: [Output Only] A key that provides more detail on the warning
14599	// being returned. For example, for warnings where there are no results
14600	// in a list request for a particular zone, this key might be scope and
14601	// the key value might be the zone name. Other examples might be a key
14602	// indicating a deprecated resource and a suggested replacement, or a
14603	// warning about invalid network settings (for example, if an instance
14604	// attempts to perform IP forwarding but is not enabled for IP
14605	// forwarding).
14606	Key string `json:"key,omitempty"`
14607
14608	// Value: [Output Only] A warning data value corresponding to the key.
14609	Value string `json:"value,omitempty"`
14610
14611	// ForceSendFields is a list of field names (e.g. "Key") to
14612	// unconditionally include in API requests. By default, fields with
14613	// empty values are omitted from API requests. However, any non-pointer,
14614	// non-interface field appearing in ForceSendFields will be sent to the
14615	// server regardless of whether the field is empty or not. This may be
14616	// used to include empty fields in Patch requests.
14617	ForceSendFields []string `json:"-"`
14618
14619	// NullFields is a list of field names (e.g. "Key") to include in API
14620	// requests with the JSON null value. By default, fields with empty
14621	// values are omitted from API requests. However, any field with an
14622	// empty value appearing in NullFields will be sent to the server as
14623	// null. It is an error if a field in this list has a non-empty value.
14624	// This may be used to include null fields in Patch requests.
14625	NullFields []string `json:"-"`
14626}
14627
14628func (s *OperationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
14629	type NoMethod OperationAggregatedListWarningData
14630	raw := NoMethod(*s)
14631	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14632}
14633
14634// OperationList: Contains a list of Operation resources.
14635type OperationList struct {
14636	// Id: [Output Only] The unique identifier for the resource. This
14637	// identifier is defined by the server.
14638	Id string `json:"id,omitempty"`
14639
14640	// Items: [Output Only] A list of Operation resources.
14641	Items []*Operation `json:"items,omitempty"`
14642
14643	// Kind: [Output Only] Type of resource. Always compute#operations for
14644	// Operations resource.
14645	Kind string `json:"kind,omitempty"`
14646
14647	// NextPageToken: [Output Only] This token allows you to get the next
14648	// page of results for list requests. If the number of results is larger
14649	// than maxResults, use the nextPageToken as a value for the query
14650	// parameter pageToken in the next list request. Subsequent list
14651	// requests will have their own nextPageToken to continue paging through
14652	// the results.
14653	NextPageToken string `json:"nextPageToken,omitempty"`
14654
14655	// SelfLink: [Output Only] Server-defined URL for this resource.
14656	SelfLink string `json:"selfLink,omitempty"`
14657
14658	// Warning: [Output Only] Informational warning message.
14659	Warning *OperationListWarning `json:"warning,omitempty"`
14660
14661	// ServerResponse contains the HTTP response code and headers from the
14662	// server.
14663	googleapi.ServerResponse `json:"-"`
14664
14665	// ForceSendFields is a list of field names (e.g. "Id") to
14666	// unconditionally include in API requests. By default, fields with
14667	// empty values are omitted from API requests. However, any non-pointer,
14668	// non-interface field appearing in ForceSendFields will be sent to the
14669	// server regardless of whether the field is empty or not. This may be
14670	// used to include empty fields in Patch requests.
14671	ForceSendFields []string `json:"-"`
14672
14673	// NullFields is a list of field names (e.g. "Id") to include in API
14674	// requests with the JSON null value. By default, fields with empty
14675	// values are omitted from API requests. However, any field with an
14676	// empty value appearing in NullFields will be sent to the server as
14677	// null. It is an error if a field in this list has a non-empty value.
14678	// This may be used to include null fields in Patch requests.
14679	NullFields []string `json:"-"`
14680}
14681
14682func (s *OperationList) MarshalJSON() ([]byte, error) {
14683	type NoMethod OperationList
14684	raw := NoMethod(*s)
14685	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14686}
14687
14688// OperationListWarning: [Output Only] Informational warning message.
14689type OperationListWarning struct {
14690	// Code: [Output Only] A warning code, if applicable. For example,
14691	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14692	// the response.
14693	//
14694	// Possible values:
14695	//   "CLEANUP_FAILED"
14696	//   "DEPRECATED_RESOURCE_USED"
14697	//   "DEPRECATED_TYPE_USED"
14698	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14699	//   "EXPERIMENTAL_TYPE_USED"
14700	//   "EXTERNAL_API_WARNING"
14701	//   "FIELD_VALUE_OVERRIDEN"
14702	//   "INJECTED_KERNELS_DEPRECATED"
14703	//   "MISSING_TYPE_DEPENDENCY"
14704	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14705	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14706	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14707	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14708	//   "NEXT_HOP_NOT_RUNNING"
14709	//   "NOT_CRITICAL_ERROR"
14710	//   "NO_RESULTS_ON_PAGE"
14711	//   "REQUIRED_TOS_AGREEMENT"
14712	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14713	//   "RESOURCE_NOT_DELETED"
14714	//   "SCHEMA_VALIDATION_IGNORED"
14715	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14716	//   "UNDECLARED_PROPERTIES"
14717	//   "UNREACHABLE"
14718	Code string `json:"code,omitempty"`
14719
14720	// Data: [Output Only] Metadata about this warning in key: value format.
14721	// For example:
14722	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14723	Data []*OperationListWarningData `json:"data,omitempty"`
14724
14725	// Message: [Output Only] A human-readable description of the warning
14726	// code.
14727	Message string `json:"message,omitempty"`
14728
14729	// ForceSendFields is a list of field names (e.g. "Code") to
14730	// unconditionally include in API requests. By default, fields with
14731	// empty values are omitted from API requests. However, any non-pointer,
14732	// non-interface field appearing in ForceSendFields will be sent to the
14733	// server regardless of whether the field is empty or not. This may be
14734	// used to include empty fields in Patch requests.
14735	ForceSendFields []string `json:"-"`
14736
14737	// NullFields is a list of field names (e.g. "Code") to include in API
14738	// requests with the JSON null value. By default, fields with empty
14739	// values are omitted from API requests. However, any field with an
14740	// empty value appearing in NullFields will be sent to the server as
14741	// null. It is an error if a field in this list has a non-empty value.
14742	// This may be used to include null fields in Patch requests.
14743	NullFields []string `json:"-"`
14744}
14745
14746func (s *OperationListWarning) MarshalJSON() ([]byte, error) {
14747	type NoMethod OperationListWarning
14748	raw := NoMethod(*s)
14749	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14750}
14751
14752type OperationListWarningData struct {
14753	// Key: [Output Only] A key that provides more detail on the warning
14754	// being returned. For example, for warnings where there are no results
14755	// in a list request for a particular zone, this key might be scope and
14756	// the key value might be the zone name. Other examples might be a key
14757	// indicating a deprecated resource and a suggested replacement, or a
14758	// warning about invalid network settings (for example, if an instance
14759	// attempts to perform IP forwarding but is not enabled for IP
14760	// forwarding).
14761	Key string `json:"key,omitempty"`
14762
14763	// Value: [Output Only] A warning data value corresponding to the key.
14764	Value string `json:"value,omitempty"`
14765
14766	// ForceSendFields is a list of field names (e.g. "Key") to
14767	// unconditionally include in API requests. By default, fields with
14768	// empty values are omitted from API requests. However, any non-pointer,
14769	// non-interface field appearing in ForceSendFields will be sent to the
14770	// server regardless of whether the field is empty or not. This may be
14771	// used to include empty fields in Patch requests.
14772	ForceSendFields []string `json:"-"`
14773
14774	// NullFields is a list of field names (e.g. "Key") to include in API
14775	// requests with the JSON null value. By default, fields with empty
14776	// values are omitted from API requests. However, any field with an
14777	// empty value appearing in NullFields will be sent to the server as
14778	// null. It is an error if a field in this list has a non-empty value.
14779	// This may be used to include null fields in Patch requests.
14780	NullFields []string `json:"-"`
14781}
14782
14783func (s *OperationListWarningData) MarshalJSON() ([]byte, error) {
14784	type NoMethod OperationListWarningData
14785	raw := NoMethod(*s)
14786	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14787}
14788
14789type OperationsScopedList struct {
14790	// Operations: [Output Only] List of operations contained in this scope.
14791	Operations []*Operation `json:"operations,omitempty"`
14792
14793	// Warning: [Output Only] Informational warning which replaces the list
14794	// of operations when the list is empty.
14795	Warning *OperationsScopedListWarning `json:"warning,omitempty"`
14796
14797	// ForceSendFields is a list of field names (e.g. "Operations") to
14798	// unconditionally include in API requests. By default, fields with
14799	// empty values are omitted from API requests. However, any non-pointer,
14800	// non-interface field appearing in ForceSendFields will be sent to the
14801	// server regardless of whether the field is empty or not. This may be
14802	// used to include empty fields in Patch requests.
14803	ForceSendFields []string `json:"-"`
14804
14805	// NullFields is a list of field names (e.g. "Operations") to include in
14806	// API requests with the JSON null value. By default, fields with empty
14807	// values are omitted from API requests. However, any field with an
14808	// empty value appearing in NullFields will be sent to the server as
14809	// null. It is an error if a field in this list has a non-empty value.
14810	// This may be used to include null fields in Patch requests.
14811	NullFields []string `json:"-"`
14812}
14813
14814func (s *OperationsScopedList) MarshalJSON() ([]byte, error) {
14815	type NoMethod OperationsScopedList
14816	raw := NoMethod(*s)
14817	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14818}
14819
14820// OperationsScopedListWarning: [Output Only] Informational warning
14821// which replaces the list of operations when the list is empty.
14822type OperationsScopedListWarning struct {
14823	// Code: [Output Only] A warning code, if applicable. For example,
14824	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14825	// the response.
14826	//
14827	// Possible values:
14828	//   "CLEANUP_FAILED"
14829	//   "DEPRECATED_RESOURCE_USED"
14830	//   "DEPRECATED_TYPE_USED"
14831	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14832	//   "EXPERIMENTAL_TYPE_USED"
14833	//   "EXTERNAL_API_WARNING"
14834	//   "FIELD_VALUE_OVERRIDEN"
14835	//   "INJECTED_KERNELS_DEPRECATED"
14836	//   "MISSING_TYPE_DEPENDENCY"
14837	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14838	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14839	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14840	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14841	//   "NEXT_HOP_NOT_RUNNING"
14842	//   "NOT_CRITICAL_ERROR"
14843	//   "NO_RESULTS_ON_PAGE"
14844	//   "REQUIRED_TOS_AGREEMENT"
14845	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14846	//   "RESOURCE_NOT_DELETED"
14847	//   "SCHEMA_VALIDATION_IGNORED"
14848	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14849	//   "UNDECLARED_PROPERTIES"
14850	//   "UNREACHABLE"
14851	Code string `json:"code,omitempty"`
14852
14853	// Data: [Output Only] Metadata about this warning in key: value format.
14854	// For example:
14855	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14856	Data []*OperationsScopedListWarningData `json:"data,omitempty"`
14857
14858	// Message: [Output Only] A human-readable description of the warning
14859	// code.
14860	Message string `json:"message,omitempty"`
14861
14862	// ForceSendFields is a list of field names (e.g. "Code") to
14863	// unconditionally include in API requests. By default, fields with
14864	// empty values are omitted from API requests. However, any non-pointer,
14865	// non-interface field appearing in ForceSendFields will be sent to the
14866	// server regardless of whether the field is empty or not. This may be
14867	// used to include empty fields in Patch requests.
14868	ForceSendFields []string `json:"-"`
14869
14870	// NullFields is a list of field names (e.g. "Code") to include in API
14871	// requests with the JSON null value. By default, fields with empty
14872	// values are omitted from API requests. However, any field with an
14873	// empty value appearing in NullFields will be sent to the server as
14874	// null. It is an error if a field in this list has a non-empty value.
14875	// This may be used to include null fields in Patch requests.
14876	NullFields []string `json:"-"`
14877}
14878
14879func (s *OperationsScopedListWarning) MarshalJSON() ([]byte, error) {
14880	type NoMethod OperationsScopedListWarning
14881	raw := NoMethod(*s)
14882	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14883}
14884
14885type OperationsScopedListWarningData struct {
14886	// Key: [Output Only] A key that provides more detail on the warning
14887	// being returned. For example, for warnings where there are no results
14888	// in a list request for a particular zone, this key might be scope and
14889	// the key value might be the zone name. Other examples might be a key
14890	// indicating a deprecated resource and a suggested replacement, or a
14891	// warning about invalid network settings (for example, if an instance
14892	// attempts to perform IP forwarding but is not enabled for IP
14893	// forwarding).
14894	Key string `json:"key,omitempty"`
14895
14896	// Value: [Output Only] A warning data value corresponding to the key.
14897	Value string `json:"value,omitempty"`
14898
14899	// ForceSendFields is a list of field names (e.g. "Key") to
14900	// unconditionally include in API requests. By default, fields with
14901	// empty values are omitted from API requests. However, any non-pointer,
14902	// non-interface field appearing in ForceSendFields will be sent to the
14903	// server regardless of whether the field is empty or not. This may be
14904	// used to include empty fields in Patch requests.
14905	ForceSendFields []string `json:"-"`
14906
14907	// NullFields is a list of field names (e.g. "Key") to include in API
14908	// requests with the JSON null value. By default, fields with empty
14909	// values are omitted from API requests. However, any field with an
14910	// empty value appearing in NullFields will be sent to the server as
14911	// null. It is an error if a field in this list has a non-empty value.
14912	// This may be used to include null fields in Patch requests.
14913	NullFields []string `json:"-"`
14914}
14915
14916func (s *OperationsScopedListWarningData) MarshalJSON() ([]byte, error) {
14917	type NoMethod OperationsScopedListWarningData
14918	raw := NoMethod(*s)
14919	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14920}
14921
14922// PathMatcher: A matcher for the path portion of the URL. The
14923// BackendService from the longest-matched rule will serve the URL. If
14924// no rule was matched, the default service will be used.
14925type PathMatcher struct {
14926	// DefaultService: The full or partial URL to the BackendService
14927	// resource. This will be used if none of the pathRules defined by this
14928	// PathMatcher is matched by the URL's path portion. For example, the
14929	// following are all valid URLs to a BackendService resource:
14930	// -
14931	// https://www.googleapis.com/compute/v1/projects/project/global/backendServices/backendService
14932	// - compute/v1/projects/project/global/backendServices/backendService
14933	//
14934	// - global/backendServices/backendService
14935	DefaultService string `json:"defaultService,omitempty"`
14936
14937	// Description: An optional description of this resource. Provide this
14938	// property when you create the resource.
14939	Description string `json:"description,omitempty"`
14940
14941	// Name: The name to which this PathMatcher is referred by the HostRule.
14942	Name string `json:"name,omitempty"`
14943
14944	// PathRules: The list of path rules.
14945	PathRules []*PathRule `json:"pathRules,omitempty"`
14946
14947	// ForceSendFields is a list of field names (e.g. "DefaultService") to
14948	// unconditionally include in API requests. By default, fields with
14949	// empty values are omitted from API requests. However, any non-pointer,
14950	// non-interface field appearing in ForceSendFields will be sent to the
14951	// server regardless of whether the field is empty or not. This may be
14952	// used to include empty fields in Patch requests.
14953	ForceSendFields []string `json:"-"`
14954
14955	// NullFields is a list of field names (e.g. "DefaultService") to
14956	// include in API requests with the JSON null value. By default, fields
14957	// with empty values are omitted from API requests. However, any field
14958	// with an empty value appearing in NullFields will be sent to the
14959	// server as null. It is an error if a field in this list has a
14960	// non-empty value. This may be used to include null fields in Patch
14961	// requests.
14962	NullFields []string `json:"-"`
14963}
14964
14965func (s *PathMatcher) MarshalJSON() ([]byte, error) {
14966	type NoMethod PathMatcher
14967	raw := NoMethod(*s)
14968	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14969}
14970
14971// PathRule: A path-matching rule for a URL. If matched, will use the
14972// specified BackendService to handle the traffic arriving at this URL.
14973type PathRule struct {
14974	// Paths: The list of path patterns to match. Each must start with / and
14975	// the only place a * is allowed is at the end following a /. The string
14976	// fed to the path matcher does not include any text after the first ?
14977	// or #, and those chars are not allowed here.
14978	Paths []string `json:"paths,omitempty"`
14979
14980	// Service: The URL of the BackendService resource if this rule is
14981	// matched.
14982	Service string `json:"service,omitempty"`
14983
14984	// ForceSendFields is a list of field names (e.g. "Paths") to
14985	// unconditionally include in API requests. By default, fields with
14986	// empty values are omitted from API requests. However, any non-pointer,
14987	// non-interface field appearing in ForceSendFields will be sent to the
14988	// server regardless of whether the field is empty or not. This may be
14989	// used to include empty fields in Patch requests.
14990	ForceSendFields []string `json:"-"`
14991
14992	// NullFields is a list of field names (e.g. "Paths") to include in API
14993	// requests with the JSON null value. By default, fields with empty
14994	// values are omitted from API requests. However, any field with an
14995	// empty value appearing in NullFields will be sent to the server as
14996	// null. It is an error if a field in this list has a non-empty value.
14997	// This may be used to include null fields in Patch requests.
14998	NullFields []string `json:"-"`
14999}
15000
15001func (s *PathRule) MarshalJSON() ([]byte, error) {
15002	type NoMethod PathRule
15003	raw := NoMethod(*s)
15004	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15005}
15006
15007// Project: A Project resource. For an overview of projects, see  Cloud
15008// Platform Resource Hierarchy. (== resource_for v1.projects ==) (==
15009// resource_for beta.projects ==)
15010type Project struct {
15011	// CommonInstanceMetadata: Metadata key/value pairs available to all
15012	// instances contained in this project. See Custom metadata for more
15013	// information.
15014	CommonInstanceMetadata *Metadata `json:"commonInstanceMetadata,omitempty"`
15015
15016	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
15017	// format.
15018	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15019
15020	// DefaultServiceAccount: [Output Only] Default service account used by
15021	// VMs running in this project.
15022	DefaultServiceAccount string `json:"defaultServiceAccount,omitempty"`
15023
15024	// Description: An optional textual description of the resource.
15025	Description string `json:"description,omitempty"`
15026
15027	// EnabledFeatures: Restricted features enabled for use on this project.
15028	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
15029
15030	// Id: [Output Only] The unique identifier for the resource. This
15031	// identifier is defined by the server. This is not the project ID, and
15032	// is just a unique ID used by Compute Engine to identify resources.
15033	Id uint64 `json:"id,omitempty,string"`
15034
15035	// Kind: [Output Only] Type of the resource. Always compute#project for
15036	// projects.
15037	Kind string `json:"kind,omitempty"`
15038
15039	// Name: The project ID. For example: my-example-project. Use the
15040	// project ID to make requests to Compute Engine.
15041	Name string `json:"name,omitempty"`
15042
15043	// Quotas: [Output Only] Quotas assigned to this project.
15044	Quotas []*Quota `json:"quotas,omitempty"`
15045
15046	// SelfLink: [Output Only] Server-defined URL for the resource.
15047	SelfLink string `json:"selfLink,omitempty"`
15048
15049	// UsageExportLocation: The naming prefix for daily usage reports and
15050	// the Google Cloud Storage bucket where they are stored.
15051	UsageExportLocation *UsageExportLocation `json:"usageExportLocation,omitempty"`
15052
15053	// XpnProjectStatus: [Output Only] The role this project has in a shared
15054	// VPC configuration. Currently only HOST projects are differentiated.
15055	//
15056	// Possible values:
15057	//   "HOST"
15058	//   "UNSPECIFIED_XPN_PROJECT_STATUS"
15059	XpnProjectStatus string `json:"xpnProjectStatus,omitempty"`
15060
15061	// ServerResponse contains the HTTP response code and headers from the
15062	// server.
15063	googleapi.ServerResponse `json:"-"`
15064
15065	// ForceSendFields is a list of field names (e.g.
15066	// "CommonInstanceMetadata") to unconditionally include in API requests.
15067	// By default, fields with empty values are omitted from API requests.
15068	// However, any non-pointer, non-interface field appearing in
15069	// ForceSendFields will be sent to the server regardless of whether the
15070	// field is empty or not. This may be used to include empty fields in
15071	// Patch requests.
15072	ForceSendFields []string `json:"-"`
15073
15074	// NullFields is a list of field names (e.g. "CommonInstanceMetadata")
15075	// to include in API requests with the JSON null value. By default,
15076	// fields with empty values are omitted from API requests. However, any
15077	// field with an empty value appearing in NullFields will be sent to the
15078	// server as null. It is an error if a field in this list has a
15079	// non-empty value. This may be used to include null fields in Patch
15080	// requests.
15081	NullFields []string `json:"-"`
15082}
15083
15084func (s *Project) MarshalJSON() ([]byte, error) {
15085	type NoMethod Project
15086	raw := NoMethod(*s)
15087	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15088}
15089
15090type ProjectsDisableXpnResourceRequest struct {
15091	// XpnResource: Service resource (a.k.a service project) ID.
15092	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
15093
15094	// ForceSendFields is a list of field names (e.g. "XpnResource") to
15095	// unconditionally include in API requests. By default, fields with
15096	// empty values are omitted from API requests. However, any non-pointer,
15097	// non-interface field appearing in ForceSendFields will be sent to the
15098	// server regardless of whether the field is empty or not. This may be
15099	// used to include empty fields in Patch requests.
15100	ForceSendFields []string `json:"-"`
15101
15102	// NullFields is a list of field names (e.g. "XpnResource") to include
15103	// in API requests with the JSON null value. By default, fields with
15104	// empty values are omitted from API requests. However, any field with
15105	// an empty value appearing in NullFields will be sent to the server as
15106	// null. It is an error if a field in this list has a non-empty value.
15107	// This may be used to include null fields in Patch requests.
15108	NullFields []string `json:"-"`
15109}
15110
15111func (s *ProjectsDisableXpnResourceRequest) MarshalJSON() ([]byte, error) {
15112	type NoMethod ProjectsDisableXpnResourceRequest
15113	raw := NoMethod(*s)
15114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15115}
15116
15117type ProjectsEnableXpnResourceRequest struct {
15118	// XpnResource: Service resource (a.k.a service project) ID.
15119	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
15120
15121	// ForceSendFields is a list of field names (e.g. "XpnResource") to
15122	// unconditionally include in API requests. By default, fields with
15123	// empty values are omitted from API requests. However, any non-pointer,
15124	// non-interface field appearing in ForceSendFields will be sent to the
15125	// server regardless of whether the field is empty or not. This may be
15126	// used to include empty fields in Patch requests.
15127	ForceSendFields []string `json:"-"`
15128
15129	// NullFields is a list of field names (e.g. "XpnResource") to include
15130	// in API requests with the JSON null value. By default, fields with
15131	// empty values are omitted from API requests. However, any field with
15132	// an empty value appearing in NullFields will be sent to the server as
15133	// null. It is an error if a field in this list has a non-empty value.
15134	// This may be used to include null fields in Patch requests.
15135	NullFields []string `json:"-"`
15136}
15137
15138func (s *ProjectsEnableXpnResourceRequest) MarshalJSON() ([]byte, error) {
15139	type NoMethod ProjectsEnableXpnResourceRequest
15140	raw := NoMethod(*s)
15141	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15142}
15143
15144type ProjectsGetXpnResources struct {
15145	// Kind: [Output Only] Type of resource. Always
15146	// compute#projectsGetXpnResources for lists of service resources (a.k.a
15147	// service projects)
15148	Kind string `json:"kind,omitempty"`
15149
15150	// NextPageToken: [Output Only] This token allows you to get the next
15151	// page of results for list requests. If the number of results is larger
15152	// than maxResults, use the nextPageToken as a value for the query
15153	// parameter pageToken in the next list request. Subsequent list
15154	// requests will have their own nextPageToken to continue paging through
15155	// the results.
15156	NextPageToken string `json:"nextPageToken,omitempty"`
15157
15158	// Resources: Service resources (a.k.a service projects) attached to
15159	// this project as their shared VPC host.
15160	Resources []*XpnResourceId `json:"resources,omitempty"`
15161
15162	// ServerResponse contains the HTTP response code and headers from the
15163	// server.
15164	googleapi.ServerResponse `json:"-"`
15165
15166	// ForceSendFields is a list of field names (e.g. "Kind") to
15167	// unconditionally include in API requests. By default, fields with
15168	// empty values are omitted from API requests. However, any non-pointer,
15169	// non-interface field appearing in ForceSendFields will be sent to the
15170	// server regardless of whether the field is empty or not. This may be
15171	// used to include empty fields in Patch requests.
15172	ForceSendFields []string `json:"-"`
15173
15174	// NullFields is a list of field names (e.g. "Kind") to include in API
15175	// requests with the JSON null value. By default, fields with empty
15176	// values are omitted from API requests. However, any field with an
15177	// empty value appearing in NullFields will be sent to the server as
15178	// null. It is an error if a field in this list has a non-empty value.
15179	// This may be used to include null fields in Patch requests.
15180	NullFields []string `json:"-"`
15181}
15182
15183func (s *ProjectsGetXpnResources) MarshalJSON() ([]byte, error) {
15184	type NoMethod ProjectsGetXpnResources
15185	raw := NoMethod(*s)
15186	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15187}
15188
15189type ProjectsListXpnHostsRequest struct {
15190	// Organization: Optional organization ID managed by Cloud Resource
15191	// Manager, for which to list shared VPC host projects. If not
15192	// specified, the organization will be inferred from the project.
15193	Organization string `json:"organization,omitempty"`
15194
15195	// ForceSendFields is a list of field names (e.g. "Organization") to
15196	// unconditionally include in API requests. By default, fields with
15197	// empty values are omitted from API requests. However, any non-pointer,
15198	// non-interface field appearing in ForceSendFields will be sent to the
15199	// server regardless of whether the field is empty or not. This may be
15200	// used to include empty fields in Patch requests.
15201	ForceSendFields []string `json:"-"`
15202
15203	// NullFields is a list of field names (e.g. "Organization") to include
15204	// in API requests with the JSON null value. By default, fields with
15205	// empty values are omitted from API requests. However, any field with
15206	// an empty value appearing in NullFields will be sent to the server as
15207	// null. It is an error if a field in this list has a non-empty value.
15208	// This may be used to include null fields in Patch requests.
15209	NullFields []string `json:"-"`
15210}
15211
15212func (s *ProjectsListXpnHostsRequest) MarshalJSON() ([]byte, error) {
15213	type NoMethod ProjectsListXpnHostsRequest
15214	raw := NoMethod(*s)
15215	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15216}
15217
15218// Quota: A quotas entry.
15219type Quota struct {
15220	// Limit: [Output Only] Quota limit for this metric.
15221	Limit float64 `json:"limit,omitempty"`
15222
15223	// Metric: [Output Only] Name of the quota metric.
15224	//
15225	// Possible values:
15226	//   "AUTOSCALERS"
15227	//   "BACKEND_BUCKETS"
15228	//   "BACKEND_SERVICES"
15229	//   "COMMITMENTS"
15230	//   "CPUS"
15231	//   "CPUS_ALL_REGIONS"
15232	//   "DISKS_TOTAL_GB"
15233	//   "FIREWALLS"
15234	//   "FORWARDING_RULES"
15235	//   "HEALTH_CHECKS"
15236	//   "IMAGES"
15237	//   "INSTANCES"
15238	//   "INSTANCE_GROUPS"
15239	//   "INSTANCE_GROUP_MANAGERS"
15240	//   "INSTANCE_TEMPLATES"
15241	//   "INTERCONNECTS"
15242	//   "INTERNAL_ADDRESSES"
15243	//   "IN_USE_ADDRESSES"
15244	//   "LOCAL_SSD_TOTAL_GB"
15245	//   "NETWORKS"
15246	//   "NVIDIA_K80_GPUS"
15247	//   "NVIDIA_P100_GPUS"
15248	//   "PREEMPTIBLE_CPUS"
15249	//   "PREEMPTIBLE_LOCAL_SSD_GB"
15250	//   "PREEMPTIBLE_NVIDIA_K80_GPUS"
15251	//   "PREEMPTIBLE_NVIDIA_P100_GPUS"
15252	//   "REGIONAL_AUTOSCALERS"
15253	//   "REGIONAL_INSTANCE_GROUP_MANAGERS"
15254	//   "ROUTERS"
15255	//   "ROUTES"
15256	//   "SECURITY_POLICIES"
15257	//   "SECURITY_POLICY_RULES"
15258	//   "SNAPSHOTS"
15259	//   "SSD_TOTAL_GB"
15260	//   "SSL_CERTIFICATES"
15261	//   "STATIC_ADDRESSES"
15262	//   "SUBNETWORKS"
15263	//   "TARGET_HTTPS_PROXIES"
15264	//   "TARGET_HTTP_PROXIES"
15265	//   "TARGET_INSTANCES"
15266	//   "TARGET_POOLS"
15267	//   "TARGET_SSL_PROXIES"
15268	//   "TARGET_TCP_PROXIES"
15269	//   "TARGET_VPN_GATEWAYS"
15270	//   "URL_MAPS"
15271	//   "VPN_TUNNELS"
15272	Metric string `json:"metric,omitempty"`
15273
15274	// Usage: [Output Only] Current usage of this metric.
15275	Usage float64 `json:"usage,omitempty"`
15276
15277	// ForceSendFields is a list of field names (e.g. "Limit") to
15278	// unconditionally include in API requests. By default, fields with
15279	// empty values are omitted from API requests. However, any non-pointer,
15280	// non-interface field appearing in ForceSendFields will be sent to the
15281	// server regardless of whether the field is empty or not. This may be
15282	// used to include empty fields in Patch requests.
15283	ForceSendFields []string `json:"-"`
15284
15285	// NullFields is a list of field names (e.g. "Limit") to include in API
15286	// requests with the JSON null value. By default, fields with empty
15287	// values are omitted from API requests. However, any field with an
15288	// empty value appearing in NullFields will be sent to the server as
15289	// null. It is an error if a field in this list has a non-empty value.
15290	// This may be used to include null fields in Patch requests.
15291	NullFields []string `json:"-"`
15292}
15293
15294func (s *Quota) MarshalJSON() ([]byte, error) {
15295	type NoMethod Quota
15296	raw := NoMethod(*s)
15297	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15298}
15299
15300func (s *Quota) UnmarshalJSON(data []byte) error {
15301	type NoMethod Quota
15302	var s1 struct {
15303		Limit gensupport.JSONFloat64 `json:"limit"`
15304		Usage gensupport.JSONFloat64 `json:"usage"`
15305		*NoMethod
15306	}
15307	s1.NoMethod = (*NoMethod)(s)
15308	if err := json.Unmarshal(data, &s1); err != nil {
15309		return err
15310	}
15311	s.Limit = float64(s1.Limit)
15312	s.Usage = float64(s1.Usage)
15313	return nil
15314}
15315
15316// Reference: Represents a reference to a resource.
15317type Reference struct {
15318	// Kind: [Output Only] Type of the resource. Always compute#reference
15319	// for references.
15320	Kind string `json:"kind,omitempty"`
15321
15322	// ReferenceType: A description of the reference type with no implied
15323	// semantics. Possible values include:
15324	// - MEMBER_OF
15325	ReferenceType string `json:"referenceType,omitempty"`
15326
15327	// Referrer: URL of the resource which refers to the target.
15328	Referrer string `json:"referrer,omitempty"`
15329
15330	// Target: URL of the resource to which this reference points.
15331	Target string `json:"target,omitempty"`
15332
15333	// ForceSendFields is a list of field names (e.g. "Kind") to
15334	// unconditionally include in API requests. By default, fields with
15335	// empty values are omitted from API requests. However, any non-pointer,
15336	// non-interface field appearing in ForceSendFields will be sent to the
15337	// server regardless of whether the field is empty or not. This may be
15338	// used to include empty fields in Patch requests.
15339	ForceSendFields []string `json:"-"`
15340
15341	// NullFields is a list of field names (e.g. "Kind") to include in API
15342	// requests with the JSON null value. By default, fields with empty
15343	// values are omitted from API requests. However, any field with an
15344	// empty value appearing in NullFields will be sent to the server as
15345	// null. It is an error if a field in this list has a non-empty value.
15346	// This may be used to include null fields in Patch requests.
15347	NullFields []string `json:"-"`
15348}
15349
15350func (s *Reference) MarshalJSON() ([]byte, error) {
15351	type NoMethod Reference
15352	raw := NoMethod(*s)
15353	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15354}
15355
15356// Region: Region resource. (== resource_for beta.regions ==) (==
15357// resource_for v1.regions ==)
15358type Region struct {
15359	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
15360	// format.
15361	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15362
15363	// Deprecated: [Output Only] The deprecation status associated with this
15364	// region.
15365	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
15366
15367	// Description: [Output Only] Textual description of the resource.
15368	Description string `json:"description,omitempty"`
15369
15370	// Id: [Output Only] The unique identifier for the resource. This
15371	// identifier is defined by the server.
15372	Id uint64 `json:"id,omitempty,string"`
15373
15374	// Kind: [Output Only] Type of the resource. Always compute#region for
15375	// regions.
15376	Kind string `json:"kind,omitempty"`
15377
15378	// Name: [Output Only] Name of the resource.
15379	Name string `json:"name,omitempty"`
15380
15381	// Quotas: [Output Only] Quotas assigned to this region.
15382	Quotas []*Quota `json:"quotas,omitempty"`
15383
15384	// SelfLink: [Output Only] Server-defined URL for the resource.
15385	SelfLink string `json:"selfLink,omitempty"`
15386
15387	// Status: [Output Only] Status of the region, either UP or DOWN.
15388	//
15389	// Possible values:
15390	//   "DOWN"
15391	//   "UP"
15392	Status string `json:"status,omitempty"`
15393
15394	// Zones: [Output Only] A list of zones available in this region, in the
15395	// form of resource URLs.
15396	Zones []string `json:"zones,omitempty"`
15397
15398	// ServerResponse contains the HTTP response code and headers from the
15399	// server.
15400	googleapi.ServerResponse `json:"-"`
15401
15402	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
15403	// to unconditionally include in API requests. By default, fields with
15404	// empty values are omitted from API requests. However, any non-pointer,
15405	// non-interface field appearing in ForceSendFields will be sent to the
15406	// server regardless of whether the field is empty or not. This may be
15407	// used to include empty fields in Patch requests.
15408	ForceSendFields []string `json:"-"`
15409
15410	// NullFields is a list of field names (e.g. "CreationTimestamp") to
15411	// include in API requests with the JSON null value. By default, fields
15412	// with empty values are omitted from API requests. However, any field
15413	// with an empty value appearing in NullFields will be sent to the
15414	// server as null. It is an error if a field in this list has a
15415	// non-empty value. This may be used to include null fields in Patch
15416	// requests.
15417	NullFields []string `json:"-"`
15418}
15419
15420func (s *Region) MarshalJSON() ([]byte, error) {
15421	type NoMethod Region
15422	raw := NoMethod(*s)
15423	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15424}
15425
15426// RegionAutoscalerList: Contains a list of autoscalers.
15427type RegionAutoscalerList struct {
15428	// Id: [Output Only] Unique identifier for the resource; defined by the
15429	// server.
15430	Id string `json:"id,omitempty"`
15431
15432	// Items: A list of Autoscaler resources.
15433	Items []*Autoscaler `json:"items,omitempty"`
15434
15435	// Kind: Type of resource.
15436	Kind string `json:"kind,omitempty"`
15437
15438	// NextPageToken: [Output Only] This token allows you to get the next
15439	// page of results for list requests. If the number of results is larger
15440	// than maxResults, use the nextPageToken as a value for the query
15441	// parameter pageToken in the next list request. Subsequent list
15442	// requests will have their own nextPageToken to continue paging through
15443	// the results.
15444	NextPageToken string `json:"nextPageToken,omitempty"`
15445
15446	// SelfLink: [Output Only] Server-defined URL for this resource.
15447	SelfLink string `json:"selfLink,omitempty"`
15448
15449	// Warning: [Output Only] Informational warning message.
15450	Warning *RegionAutoscalerListWarning `json:"warning,omitempty"`
15451
15452	// ServerResponse contains the HTTP response code and headers from the
15453	// server.
15454	googleapi.ServerResponse `json:"-"`
15455
15456	// ForceSendFields is a list of field names (e.g. "Id") to
15457	// unconditionally include in API requests. By default, fields with
15458	// empty values are omitted from API requests. However, any non-pointer,
15459	// non-interface field appearing in ForceSendFields will be sent to the
15460	// server regardless of whether the field is empty or not. This may be
15461	// used to include empty fields in Patch requests.
15462	ForceSendFields []string `json:"-"`
15463
15464	// NullFields is a list of field names (e.g. "Id") to include in API
15465	// requests with the JSON null value. By default, fields with empty
15466	// values are omitted from API requests. However, any field with an
15467	// empty value appearing in NullFields will be sent to the server as
15468	// null. It is an error if a field in this list has a non-empty value.
15469	// This may be used to include null fields in Patch requests.
15470	NullFields []string `json:"-"`
15471}
15472
15473func (s *RegionAutoscalerList) MarshalJSON() ([]byte, error) {
15474	type NoMethod RegionAutoscalerList
15475	raw := NoMethod(*s)
15476	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15477}
15478
15479// RegionAutoscalerListWarning: [Output Only] Informational warning
15480// message.
15481type RegionAutoscalerListWarning struct {
15482	// Code: [Output Only] A warning code, if applicable. For example,
15483	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15484	// the response.
15485	//
15486	// Possible values:
15487	//   "CLEANUP_FAILED"
15488	//   "DEPRECATED_RESOURCE_USED"
15489	//   "DEPRECATED_TYPE_USED"
15490	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15491	//   "EXPERIMENTAL_TYPE_USED"
15492	//   "EXTERNAL_API_WARNING"
15493	//   "FIELD_VALUE_OVERRIDEN"
15494	//   "INJECTED_KERNELS_DEPRECATED"
15495	//   "MISSING_TYPE_DEPENDENCY"
15496	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15497	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15498	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15499	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15500	//   "NEXT_HOP_NOT_RUNNING"
15501	//   "NOT_CRITICAL_ERROR"
15502	//   "NO_RESULTS_ON_PAGE"
15503	//   "REQUIRED_TOS_AGREEMENT"
15504	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15505	//   "RESOURCE_NOT_DELETED"
15506	//   "SCHEMA_VALIDATION_IGNORED"
15507	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15508	//   "UNDECLARED_PROPERTIES"
15509	//   "UNREACHABLE"
15510	Code string `json:"code,omitempty"`
15511
15512	// Data: [Output Only] Metadata about this warning in key: value format.
15513	// For example:
15514	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15515	Data []*RegionAutoscalerListWarningData `json:"data,omitempty"`
15516
15517	// Message: [Output Only] A human-readable description of the warning
15518	// code.
15519	Message string `json:"message,omitempty"`
15520
15521	// ForceSendFields is a list of field names (e.g. "Code") to
15522	// unconditionally include in API requests. By default, fields with
15523	// empty values are omitted from API requests. However, any non-pointer,
15524	// non-interface field appearing in ForceSendFields will be sent to the
15525	// server regardless of whether the field is empty or not. This may be
15526	// used to include empty fields in Patch requests.
15527	ForceSendFields []string `json:"-"`
15528
15529	// NullFields is a list of field names (e.g. "Code") to include in API
15530	// requests with the JSON null value. By default, fields with empty
15531	// values are omitted from API requests. However, any field with an
15532	// empty value appearing in NullFields will be sent to the server as
15533	// null. It is an error if a field in this list has a non-empty value.
15534	// This may be used to include null fields in Patch requests.
15535	NullFields []string `json:"-"`
15536}
15537
15538func (s *RegionAutoscalerListWarning) MarshalJSON() ([]byte, error) {
15539	type NoMethod RegionAutoscalerListWarning
15540	raw := NoMethod(*s)
15541	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15542}
15543
15544type RegionAutoscalerListWarningData struct {
15545	// Key: [Output Only] A key that provides more detail on the warning
15546	// being returned. For example, for warnings where there are no results
15547	// in a list request for a particular zone, this key might be scope and
15548	// the key value might be the zone name. Other examples might be a key
15549	// indicating a deprecated resource and a suggested replacement, or a
15550	// warning about invalid network settings (for example, if an instance
15551	// attempts to perform IP forwarding but is not enabled for IP
15552	// forwarding).
15553	Key string `json:"key,omitempty"`
15554
15555	// Value: [Output Only] A warning data value corresponding to the key.
15556	Value string `json:"value,omitempty"`
15557
15558	// ForceSendFields is a list of field names (e.g. "Key") to
15559	// unconditionally include in API requests. By default, fields with
15560	// empty values are omitted from API requests. However, any non-pointer,
15561	// non-interface field appearing in ForceSendFields will be sent to the
15562	// server regardless of whether the field is empty or not. This may be
15563	// used to include empty fields in Patch requests.
15564	ForceSendFields []string `json:"-"`
15565
15566	// NullFields is a list of field names (e.g. "Key") to include in API
15567	// requests with the JSON null value. By default, fields with empty
15568	// values are omitted from API requests. However, any field with an
15569	// empty value appearing in NullFields will be sent to the server as
15570	// null. It is an error if a field in this list has a non-empty value.
15571	// This may be used to include null fields in Patch requests.
15572	NullFields []string `json:"-"`
15573}
15574
15575func (s *RegionAutoscalerListWarningData) MarshalJSON() ([]byte, error) {
15576	type NoMethod RegionAutoscalerListWarningData
15577	raw := NoMethod(*s)
15578	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15579}
15580
15581// RegionInstanceGroupList: Contains a list of InstanceGroup resources.
15582type RegionInstanceGroupList struct {
15583	// Id: [Output Only] Unique identifier for the resource; defined by the
15584	// server.
15585	Id string `json:"id,omitempty"`
15586
15587	// Items: A list of InstanceGroup resources.
15588	Items []*InstanceGroup `json:"items,omitempty"`
15589
15590	// Kind: The resource type.
15591	Kind string `json:"kind,omitempty"`
15592
15593	// NextPageToken: [Output Only] This token allows you to get the next
15594	// page of results for list requests. If the number of results is larger
15595	// than maxResults, use the nextPageToken as a value for the query
15596	// parameter pageToken in the next list request. Subsequent list
15597	// requests will have their own nextPageToken to continue paging through
15598	// the results.
15599	NextPageToken string `json:"nextPageToken,omitempty"`
15600
15601	// SelfLink: [Output Only] Server-defined URL for this resource.
15602	SelfLink string `json:"selfLink,omitempty"`
15603
15604	// Warning: [Output Only] Informational warning message.
15605	Warning *RegionInstanceGroupListWarning `json:"warning,omitempty"`
15606
15607	// ServerResponse contains the HTTP response code and headers from the
15608	// server.
15609	googleapi.ServerResponse `json:"-"`
15610
15611	// ForceSendFields is a list of field names (e.g. "Id") to
15612	// unconditionally include in API requests. By default, fields with
15613	// empty values are omitted from API requests. However, any non-pointer,
15614	// non-interface field appearing in ForceSendFields will be sent to the
15615	// server regardless of whether the field is empty or not. This may be
15616	// used to include empty fields in Patch requests.
15617	ForceSendFields []string `json:"-"`
15618
15619	// NullFields is a list of field names (e.g. "Id") to include in API
15620	// requests with the JSON null value. By default, fields with empty
15621	// values are omitted from API requests. However, any field with an
15622	// empty value appearing in NullFields will be sent to the server as
15623	// null. It is an error if a field in this list has a non-empty value.
15624	// This may be used to include null fields in Patch requests.
15625	NullFields []string `json:"-"`
15626}
15627
15628func (s *RegionInstanceGroupList) MarshalJSON() ([]byte, error) {
15629	type NoMethod RegionInstanceGroupList
15630	raw := NoMethod(*s)
15631	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15632}
15633
15634// RegionInstanceGroupListWarning: [Output Only] Informational warning
15635// message.
15636type RegionInstanceGroupListWarning struct {
15637	// Code: [Output Only] A warning code, if applicable. For example,
15638	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15639	// the response.
15640	//
15641	// Possible values:
15642	//   "CLEANUP_FAILED"
15643	//   "DEPRECATED_RESOURCE_USED"
15644	//   "DEPRECATED_TYPE_USED"
15645	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15646	//   "EXPERIMENTAL_TYPE_USED"
15647	//   "EXTERNAL_API_WARNING"
15648	//   "FIELD_VALUE_OVERRIDEN"
15649	//   "INJECTED_KERNELS_DEPRECATED"
15650	//   "MISSING_TYPE_DEPENDENCY"
15651	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15652	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15653	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15654	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15655	//   "NEXT_HOP_NOT_RUNNING"
15656	//   "NOT_CRITICAL_ERROR"
15657	//   "NO_RESULTS_ON_PAGE"
15658	//   "REQUIRED_TOS_AGREEMENT"
15659	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15660	//   "RESOURCE_NOT_DELETED"
15661	//   "SCHEMA_VALIDATION_IGNORED"
15662	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15663	//   "UNDECLARED_PROPERTIES"
15664	//   "UNREACHABLE"
15665	Code string `json:"code,omitempty"`
15666
15667	// Data: [Output Only] Metadata about this warning in key: value format.
15668	// For example:
15669	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15670	Data []*RegionInstanceGroupListWarningData `json:"data,omitempty"`
15671
15672	// Message: [Output Only] A human-readable description of the warning
15673	// code.
15674	Message string `json:"message,omitempty"`
15675
15676	// ForceSendFields is a list of field names (e.g. "Code") to
15677	// unconditionally include in API requests. By default, fields with
15678	// empty values are omitted from API requests. However, any non-pointer,
15679	// non-interface field appearing in ForceSendFields will be sent to the
15680	// server regardless of whether the field is empty or not. This may be
15681	// used to include empty fields in Patch requests.
15682	ForceSendFields []string `json:"-"`
15683
15684	// NullFields is a list of field names (e.g. "Code") to include in API
15685	// requests with the JSON null value. By default, fields with empty
15686	// values are omitted from API requests. However, any field with an
15687	// empty value appearing in NullFields will be sent to the server as
15688	// null. It is an error if a field in this list has a non-empty value.
15689	// This may be used to include null fields in Patch requests.
15690	NullFields []string `json:"-"`
15691}
15692
15693func (s *RegionInstanceGroupListWarning) MarshalJSON() ([]byte, error) {
15694	type NoMethod RegionInstanceGroupListWarning
15695	raw := NoMethod(*s)
15696	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15697}
15698
15699type RegionInstanceGroupListWarningData struct {
15700	// Key: [Output Only] A key that provides more detail on the warning
15701	// being returned. For example, for warnings where there are no results
15702	// in a list request for a particular zone, this key might be scope and
15703	// the key value might be the zone name. Other examples might be a key
15704	// indicating a deprecated resource and a suggested replacement, or a
15705	// warning about invalid network settings (for example, if an instance
15706	// attempts to perform IP forwarding but is not enabled for IP
15707	// forwarding).
15708	Key string `json:"key,omitempty"`
15709
15710	// Value: [Output Only] A warning data value corresponding to the key.
15711	Value string `json:"value,omitempty"`
15712
15713	// ForceSendFields is a list of field names (e.g. "Key") to
15714	// unconditionally include in API requests. By default, fields with
15715	// empty values are omitted from API requests. However, any non-pointer,
15716	// non-interface field appearing in ForceSendFields will be sent to the
15717	// server regardless of whether the field is empty or not. This may be
15718	// used to include empty fields in Patch requests.
15719	ForceSendFields []string `json:"-"`
15720
15721	// NullFields is a list of field names (e.g. "Key") to include in API
15722	// requests with the JSON null value. By default, fields with empty
15723	// values are omitted from API requests. However, any field with an
15724	// empty value appearing in NullFields will be sent to the server as
15725	// null. It is an error if a field in this list has a non-empty value.
15726	// This may be used to include null fields in Patch requests.
15727	NullFields []string `json:"-"`
15728}
15729
15730func (s *RegionInstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
15731	type NoMethod RegionInstanceGroupListWarningData
15732	raw := NoMethod(*s)
15733	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15734}
15735
15736// RegionInstanceGroupManagerList: Contains a list of managed instance
15737// groups.
15738type RegionInstanceGroupManagerList struct {
15739	// Id: [Output Only] Unique identifier for the resource; defined by the
15740	// server.
15741	Id string `json:"id,omitempty"`
15742
15743	// Items: A list of InstanceGroupManager resources.
15744	Items []*InstanceGroupManager `json:"items,omitempty"`
15745
15746	// Kind: [Output Only] The resource type, which is always
15747	// compute#instanceGroupManagerList for a list of managed instance
15748	// groups that exist in th regional scope.
15749	Kind string `json:"kind,omitempty"`
15750
15751	// NextPageToken: [Output Only] This token allows you to get the next
15752	// page of results for list requests. If the number of results is larger
15753	// than maxResults, use the nextPageToken as a value for the query
15754	// parameter pageToken in the next list request. Subsequent list
15755	// requests will have their own nextPageToken to continue paging through
15756	// the results.
15757	NextPageToken string `json:"nextPageToken,omitempty"`
15758
15759	// SelfLink: [Output Only] Server-defined URL for this resource.
15760	SelfLink string `json:"selfLink,omitempty"`
15761
15762	// Warning: [Output Only] Informational warning message.
15763	Warning *RegionInstanceGroupManagerListWarning `json:"warning,omitempty"`
15764
15765	// ServerResponse contains the HTTP response code and headers from the
15766	// server.
15767	googleapi.ServerResponse `json:"-"`
15768
15769	// ForceSendFields is a list of field names (e.g. "Id") to
15770	// unconditionally include in API requests. By default, fields with
15771	// empty values are omitted from API requests. However, any non-pointer,
15772	// non-interface field appearing in ForceSendFields will be sent to the
15773	// server regardless of whether the field is empty or not. This may be
15774	// used to include empty fields in Patch requests.
15775	ForceSendFields []string `json:"-"`
15776
15777	// NullFields is a list of field names (e.g. "Id") to include in API
15778	// requests with the JSON null value. By default, fields with empty
15779	// values are omitted from API requests. However, any field with an
15780	// empty value appearing in NullFields will be sent to the server as
15781	// null. It is an error if a field in this list has a non-empty value.
15782	// This may be used to include null fields in Patch requests.
15783	NullFields []string `json:"-"`
15784}
15785
15786func (s *RegionInstanceGroupManagerList) MarshalJSON() ([]byte, error) {
15787	type NoMethod RegionInstanceGroupManagerList
15788	raw := NoMethod(*s)
15789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15790}
15791
15792// RegionInstanceGroupManagerListWarning: [Output Only] Informational
15793// warning message.
15794type RegionInstanceGroupManagerListWarning struct {
15795	// Code: [Output Only] A warning code, if applicable. For example,
15796	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15797	// the response.
15798	//
15799	// Possible values:
15800	//   "CLEANUP_FAILED"
15801	//   "DEPRECATED_RESOURCE_USED"
15802	//   "DEPRECATED_TYPE_USED"
15803	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15804	//   "EXPERIMENTAL_TYPE_USED"
15805	//   "EXTERNAL_API_WARNING"
15806	//   "FIELD_VALUE_OVERRIDEN"
15807	//   "INJECTED_KERNELS_DEPRECATED"
15808	//   "MISSING_TYPE_DEPENDENCY"
15809	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15810	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15811	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15812	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15813	//   "NEXT_HOP_NOT_RUNNING"
15814	//   "NOT_CRITICAL_ERROR"
15815	//   "NO_RESULTS_ON_PAGE"
15816	//   "REQUIRED_TOS_AGREEMENT"
15817	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15818	//   "RESOURCE_NOT_DELETED"
15819	//   "SCHEMA_VALIDATION_IGNORED"
15820	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15821	//   "UNDECLARED_PROPERTIES"
15822	//   "UNREACHABLE"
15823	Code string `json:"code,omitempty"`
15824
15825	// Data: [Output Only] Metadata about this warning in key: value format.
15826	// For example:
15827	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15828	Data []*RegionInstanceGroupManagerListWarningData `json:"data,omitempty"`
15829
15830	// Message: [Output Only] A human-readable description of the warning
15831	// code.
15832	Message string `json:"message,omitempty"`
15833
15834	// ForceSendFields is a list of field names (e.g. "Code") to
15835	// unconditionally include in API requests. By default, fields with
15836	// empty values are omitted from API requests. However, any non-pointer,
15837	// non-interface field appearing in ForceSendFields will be sent to the
15838	// server regardless of whether the field is empty or not. This may be
15839	// used to include empty fields in Patch requests.
15840	ForceSendFields []string `json:"-"`
15841
15842	// NullFields is a list of field names (e.g. "Code") to include in API
15843	// requests with the JSON null value. By default, fields with empty
15844	// values are omitted from API requests. However, any field with an
15845	// empty value appearing in NullFields will be sent to the server as
15846	// null. It is an error if a field in this list has a non-empty value.
15847	// This may be used to include null fields in Patch requests.
15848	NullFields []string `json:"-"`
15849}
15850
15851func (s *RegionInstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
15852	type NoMethod RegionInstanceGroupManagerListWarning
15853	raw := NoMethod(*s)
15854	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15855}
15856
15857type RegionInstanceGroupManagerListWarningData struct {
15858	// Key: [Output Only] A key that provides more detail on the warning
15859	// being returned. For example, for warnings where there are no results
15860	// in a list request for a particular zone, this key might be scope and
15861	// the key value might be the zone name. Other examples might be a key
15862	// indicating a deprecated resource and a suggested replacement, or a
15863	// warning about invalid network settings (for example, if an instance
15864	// attempts to perform IP forwarding but is not enabled for IP
15865	// forwarding).
15866	Key string `json:"key,omitempty"`
15867
15868	// Value: [Output Only] A warning data value corresponding to the key.
15869	Value string `json:"value,omitempty"`
15870
15871	// ForceSendFields is a list of field names (e.g. "Key") to
15872	// unconditionally include in API requests. By default, fields with
15873	// empty values are omitted from API requests. However, any non-pointer,
15874	// non-interface field appearing in ForceSendFields will be sent to the
15875	// server regardless of whether the field is empty or not. This may be
15876	// used to include empty fields in Patch requests.
15877	ForceSendFields []string `json:"-"`
15878
15879	// NullFields is a list of field names (e.g. "Key") to include in API
15880	// requests with the JSON null value. By default, fields with empty
15881	// values are omitted from API requests. However, any field with an
15882	// empty value appearing in NullFields will be sent to the server as
15883	// null. It is an error if a field in this list has a non-empty value.
15884	// This may be used to include null fields in Patch requests.
15885	NullFields []string `json:"-"`
15886}
15887
15888func (s *RegionInstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
15889	type NoMethod RegionInstanceGroupManagerListWarningData
15890	raw := NoMethod(*s)
15891	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15892}
15893
15894type RegionInstanceGroupManagersAbandonInstancesRequest struct {
15895	// Instances: The URLs of one or more instances to abandon. This can be
15896	// a full URL or a partial URL, such as
15897	// zones/[ZONE]/instances/[INSTANCE_NAME].
15898	Instances []string `json:"instances,omitempty"`
15899
15900	// ForceSendFields is a list of field names (e.g. "Instances") to
15901	// unconditionally include in API requests. By default, fields with
15902	// empty values are omitted from API requests. However, any non-pointer,
15903	// non-interface field appearing in ForceSendFields will be sent to the
15904	// server regardless of whether the field is empty or not. This may be
15905	// used to include empty fields in Patch requests.
15906	ForceSendFields []string `json:"-"`
15907
15908	// NullFields is a list of field names (e.g. "Instances") to include in
15909	// API requests with the JSON null value. By default, fields with empty
15910	// values are omitted from API requests. However, any field with an
15911	// empty value appearing in NullFields will be sent to the server as
15912	// null. It is an error if a field in this list has a non-empty value.
15913	// This may be used to include null fields in Patch requests.
15914	NullFields []string `json:"-"`
15915}
15916
15917func (s *RegionInstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
15918	type NoMethod RegionInstanceGroupManagersAbandonInstancesRequest
15919	raw := NoMethod(*s)
15920	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15921}
15922
15923type RegionInstanceGroupManagersDeleteInstancesRequest struct {
15924	// Instances: The URLs of one or more instances to delete. This can be a
15925	// full URL or a partial URL, such as
15926	// zones/[ZONE]/instances/[INSTANCE_NAME].
15927	Instances []string `json:"instances,omitempty"`
15928
15929	// ForceSendFields is a list of field names (e.g. "Instances") to
15930	// unconditionally include in API requests. By default, fields with
15931	// empty values are omitted from API requests. However, any non-pointer,
15932	// non-interface field appearing in ForceSendFields will be sent to the
15933	// server regardless of whether the field is empty or not. This may be
15934	// used to include empty fields in Patch requests.
15935	ForceSendFields []string `json:"-"`
15936
15937	// NullFields is a list of field names (e.g. "Instances") to include in
15938	// API requests with the JSON null value. By default, fields with empty
15939	// values are omitted from API requests. However, any field with an
15940	// empty value appearing in NullFields will be sent to the server as
15941	// null. It is an error if a field in this list has a non-empty value.
15942	// This may be used to include null fields in Patch requests.
15943	NullFields []string `json:"-"`
15944}
15945
15946func (s *RegionInstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
15947	type NoMethod RegionInstanceGroupManagersDeleteInstancesRequest
15948	raw := NoMethod(*s)
15949	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15950}
15951
15952type RegionInstanceGroupManagersListInstancesResponse struct {
15953	// ManagedInstances: List of managed instances.
15954	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
15955
15956	// ServerResponse contains the HTTP response code and headers from the
15957	// server.
15958	googleapi.ServerResponse `json:"-"`
15959
15960	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
15961	// unconditionally include in API requests. By default, fields with
15962	// empty values are omitted from API requests. However, any non-pointer,
15963	// non-interface field appearing in ForceSendFields will be sent to the
15964	// server regardless of whether the field is empty or not. This may be
15965	// used to include empty fields in Patch requests.
15966	ForceSendFields []string `json:"-"`
15967
15968	// NullFields is a list of field names (e.g. "ManagedInstances") to
15969	// include in API requests with the JSON null value. By default, fields
15970	// with empty values are omitted from API requests. However, any field
15971	// with an empty value appearing in NullFields will be sent to the
15972	// server as null. It is an error if a field in this list has a
15973	// non-empty value. This may be used to include null fields in Patch
15974	// requests.
15975	NullFields []string `json:"-"`
15976}
15977
15978func (s *RegionInstanceGroupManagersListInstancesResponse) MarshalJSON() ([]byte, error) {
15979	type NoMethod RegionInstanceGroupManagersListInstancesResponse
15980	raw := NoMethod(*s)
15981	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15982}
15983
15984type RegionInstanceGroupManagersRecreateRequest struct {
15985	// Instances: The URLs of one or more instances to recreate. This can be
15986	// a full URL or a partial URL, such as
15987	// zones/[ZONE]/instances/[INSTANCE_NAME].
15988	Instances []string `json:"instances,omitempty"`
15989
15990	// ForceSendFields is a list of field names (e.g. "Instances") to
15991	// unconditionally include in API requests. By default, fields with
15992	// empty values are omitted from API requests. However, any non-pointer,
15993	// non-interface field appearing in ForceSendFields will be sent to the
15994	// server regardless of whether the field is empty or not. This may be
15995	// used to include empty fields in Patch requests.
15996	ForceSendFields []string `json:"-"`
15997
15998	// NullFields is a list of field names (e.g. "Instances") to include in
15999	// API requests with the JSON null value. By default, fields with empty
16000	// values are omitted from API requests. However, any field with an
16001	// empty value appearing in NullFields will be sent to the server as
16002	// null. It is an error if a field in this list has a non-empty value.
16003	// This may be used to include null fields in Patch requests.
16004	NullFields []string `json:"-"`
16005}
16006
16007func (s *RegionInstanceGroupManagersRecreateRequest) MarshalJSON() ([]byte, error) {
16008	type NoMethod RegionInstanceGroupManagersRecreateRequest
16009	raw := NoMethod(*s)
16010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16011}
16012
16013type RegionInstanceGroupManagersSetTargetPoolsRequest struct {
16014	// Fingerprint: Fingerprint of the target pools information, which is a
16015	// hash of the contents. This field is used for optimistic locking when
16016	// you update the target pool entries. This field is optional.
16017	Fingerprint string `json:"fingerprint,omitempty"`
16018
16019	// TargetPools: The URL of all TargetPool resources to which instances
16020	// in the instanceGroup field are added. The target pools automatically
16021	// apply to all of the instances in the managed instance group.
16022	TargetPools []string `json:"targetPools,omitempty"`
16023
16024	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
16025	// unconditionally include in API requests. By default, fields with
16026	// empty values are omitted from API requests. However, any non-pointer,
16027	// non-interface field appearing in ForceSendFields will be sent to the
16028	// server regardless of whether the field is empty or not. This may be
16029	// used to include empty fields in Patch requests.
16030	ForceSendFields []string `json:"-"`
16031
16032	// NullFields is a list of field names (e.g. "Fingerprint") to include
16033	// in API requests with the JSON null value. By default, fields with
16034	// empty values are omitted from API requests. However, any field with
16035	// an empty value appearing in NullFields will be sent to the server as
16036	// null. It is an error if a field in this list has a non-empty value.
16037	// This may be used to include null fields in Patch requests.
16038	NullFields []string `json:"-"`
16039}
16040
16041func (s *RegionInstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
16042	type NoMethod RegionInstanceGroupManagersSetTargetPoolsRequest
16043	raw := NoMethod(*s)
16044	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16045}
16046
16047type RegionInstanceGroupManagersSetTemplateRequest struct {
16048	// InstanceTemplate: URL of the InstanceTemplate resource from which all
16049	// new instances will be created.
16050	InstanceTemplate string `json:"instanceTemplate,omitempty"`
16051
16052	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
16053	// unconditionally include in API requests. By default, fields with
16054	// empty values are omitted from API requests. However, any non-pointer,
16055	// non-interface field appearing in ForceSendFields will be sent to the
16056	// server regardless of whether the field is empty or not. This may be
16057	// used to include empty fields in Patch requests.
16058	ForceSendFields []string `json:"-"`
16059
16060	// NullFields is a list of field names (e.g. "InstanceTemplate") to
16061	// include in API requests with the JSON null value. By default, fields
16062	// with empty values are omitted from API requests. However, any field
16063	// with an empty value appearing in NullFields will be sent to the
16064	// server as null. It is an error if a field in this list has a
16065	// non-empty value. This may be used to include null fields in Patch
16066	// requests.
16067	NullFields []string `json:"-"`
16068}
16069
16070func (s *RegionInstanceGroupManagersSetTemplateRequest) MarshalJSON() ([]byte, error) {
16071	type NoMethod RegionInstanceGroupManagersSetTemplateRequest
16072	raw := NoMethod(*s)
16073	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16074}
16075
16076type RegionInstanceGroupsListInstances struct {
16077	// Id: [Output Only] Unique identifier for the resource; defined by the
16078	// server.
16079	Id string `json:"id,omitempty"`
16080
16081	// Items: A list of InstanceWithNamedPorts resources.
16082	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
16083
16084	// Kind: The resource type.
16085	Kind string `json:"kind,omitempty"`
16086
16087	// NextPageToken: [Output Only] This token allows you to get the next
16088	// page of results for list requests. If the number of results is larger
16089	// than maxResults, use the nextPageToken as a value for the query
16090	// parameter pageToken in the next list request. Subsequent list
16091	// requests will have their own nextPageToken to continue paging through
16092	// the results.
16093	NextPageToken string `json:"nextPageToken,omitempty"`
16094
16095	// SelfLink: [Output Only] Server-defined URL for this resource.
16096	SelfLink string `json:"selfLink,omitempty"`
16097
16098	// Warning: [Output Only] Informational warning message.
16099	Warning *RegionInstanceGroupsListInstancesWarning `json:"warning,omitempty"`
16100
16101	// ServerResponse contains the HTTP response code and headers from the
16102	// server.
16103	googleapi.ServerResponse `json:"-"`
16104
16105	// ForceSendFields is a list of field names (e.g. "Id") to
16106	// unconditionally include in API requests. By default, fields with
16107	// empty values are omitted from API requests. However, any non-pointer,
16108	// non-interface field appearing in ForceSendFields will be sent to the
16109	// server regardless of whether the field is empty or not. This may be
16110	// used to include empty fields in Patch requests.
16111	ForceSendFields []string `json:"-"`
16112
16113	// NullFields is a list of field names (e.g. "Id") to include in API
16114	// requests with the JSON null value. By default, fields with empty
16115	// values are omitted from API requests. However, any field with an
16116	// empty value appearing in NullFields will be sent to the server as
16117	// null. It is an error if a field in this list has a non-empty value.
16118	// This may be used to include null fields in Patch requests.
16119	NullFields []string `json:"-"`
16120}
16121
16122func (s *RegionInstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
16123	type NoMethod RegionInstanceGroupsListInstances
16124	raw := NoMethod(*s)
16125	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16126}
16127
16128// RegionInstanceGroupsListInstancesWarning: [Output Only] Informational
16129// warning message.
16130type RegionInstanceGroupsListInstancesWarning struct {
16131	// Code: [Output Only] A warning code, if applicable. For example,
16132	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16133	// the response.
16134	//
16135	// Possible values:
16136	//   "CLEANUP_FAILED"
16137	//   "DEPRECATED_RESOURCE_USED"
16138	//   "DEPRECATED_TYPE_USED"
16139	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16140	//   "EXPERIMENTAL_TYPE_USED"
16141	//   "EXTERNAL_API_WARNING"
16142	//   "FIELD_VALUE_OVERRIDEN"
16143	//   "INJECTED_KERNELS_DEPRECATED"
16144	//   "MISSING_TYPE_DEPENDENCY"
16145	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16146	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16147	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16148	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16149	//   "NEXT_HOP_NOT_RUNNING"
16150	//   "NOT_CRITICAL_ERROR"
16151	//   "NO_RESULTS_ON_PAGE"
16152	//   "REQUIRED_TOS_AGREEMENT"
16153	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16154	//   "RESOURCE_NOT_DELETED"
16155	//   "SCHEMA_VALIDATION_IGNORED"
16156	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16157	//   "UNDECLARED_PROPERTIES"
16158	//   "UNREACHABLE"
16159	Code string `json:"code,omitempty"`
16160
16161	// Data: [Output Only] Metadata about this warning in key: value format.
16162	// For example:
16163	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16164	Data []*RegionInstanceGroupsListInstancesWarningData `json:"data,omitempty"`
16165
16166	// Message: [Output Only] A human-readable description of the warning
16167	// code.
16168	Message string `json:"message,omitempty"`
16169
16170	// ForceSendFields is a list of field names (e.g. "Code") to
16171	// unconditionally include in API requests. By default, fields with
16172	// empty values are omitted from API requests. However, any non-pointer,
16173	// non-interface field appearing in ForceSendFields will be sent to the
16174	// server regardless of whether the field is empty or not. This may be
16175	// used to include empty fields in Patch requests.
16176	ForceSendFields []string `json:"-"`
16177
16178	// NullFields is a list of field names (e.g. "Code") to include in API
16179	// requests with the JSON null value. By default, fields with empty
16180	// values are omitted from API requests. However, any field with an
16181	// empty value appearing in NullFields will be sent to the server as
16182	// null. It is an error if a field in this list has a non-empty value.
16183	// This may be used to include null fields in Patch requests.
16184	NullFields []string `json:"-"`
16185}
16186
16187func (s *RegionInstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
16188	type NoMethod RegionInstanceGroupsListInstancesWarning
16189	raw := NoMethod(*s)
16190	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16191}
16192
16193type RegionInstanceGroupsListInstancesWarningData struct {
16194	// Key: [Output Only] A key that provides more detail on the warning
16195	// being returned. For example, for warnings where there are no results
16196	// in a list request for a particular zone, this key might be scope and
16197	// the key value might be the zone name. Other examples might be a key
16198	// indicating a deprecated resource and a suggested replacement, or a
16199	// warning about invalid network settings (for example, if an instance
16200	// attempts to perform IP forwarding but is not enabled for IP
16201	// forwarding).
16202	Key string `json:"key,omitempty"`
16203
16204	// Value: [Output Only] A warning data value corresponding to the key.
16205	Value string `json:"value,omitempty"`
16206
16207	// ForceSendFields is a list of field names (e.g. "Key") to
16208	// unconditionally include in API requests. By default, fields with
16209	// empty values are omitted from API requests. However, any non-pointer,
16210	// non-interface field appearing in ForceSendFields will be sent to the
16211	// server regardless of whether the field is empty or not. This may be
16212	// used to include empty fields in Patch requests.
16213	ForceSendFields []string `json:"-"`
16214
16215	// NullFields is a list of field names (e.g. "Key") to include in API
16216	// requests with the JSON null value. By default, fields with empty
16217	// values are omitted from API requests. However, any field with an
16218	// empty value appearing in NullFields will be sent to the server as
16219	// null. It is an error if a field in this list has a non-empty value.
16220	// This may be used to include null fields in Patch requests.
16221	NullFields []string `json:"-"`
16222}
16223
16224func (s *RegionInstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
16225	type NoMethod RegionInstanceGroupsListInstancesWarningData
16226	raw := NoMethod(*s)
16227	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16228}
16229
16230type RegionInstanceGroupsListInstancesRequest struct {
16231	// InstanceState: Instances in which state should be returned. Valid
16232	// options are: 'ALL', 'RUNNING'. By default, it lists all instances.
16233	//
16234	// Possible values:
16235	//   "ALL"
16236	//   "RUNNING"
16237	InstanceState string `json:"instanceState,omitempty"`
16238
16239	// PortName: Name of port user is interested in. It is optional. If it
16240	// is set, only information about this ports will be returned. If it is
16241	// not set, all the named ports will be returned. Always lists all
16242	// instances.
16243	PortName string `json:"portName,omitempty"`
16244
16245	// ForceSendFields is a list of field names (e.g. "InstanceState") to
16246	// unconditionally include in API requests. By default, fields with
16247	// empty values are omitted from API requests. However, any non-pointer,
16248	// non-interface field appearing in ForceSendFields will be sent to the
16249	// server regardless of whether the field is empty or not. This may be
16250	// used to include empty fields in Patch requests.
16251	ForceSendFields []string `json:"-"`
16252
16253	// NullFields is a list of field names (e.g. "InstanceState") to include
16254	// in API requests with the JSON null value. By default, fields with
16255	// empty values are omitted from API requests. However, any field with
16256	// an empty value appearing in NullFields will be sent to the server as
16257	// null. It is an error if a field in this list has a non-empty value.
16258	// This may be used to include null fields in Patch requests.
16259	NullFields []string `json:"-"`
16260}
16261
16262func (s *RegionInstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
16263	type NoMethod RegionInstanceGroupsListInstancesRequest
16264	raw := NoMethod(*s)
16265	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16266}
16267
16268type RegionInstanceGroupsSetNamedPortsRequest struct {
16269	// Fingerprint: The fingerprint of the named ports information for this
16270	// instance group. Use this optional property to prevent conflicts when
16271	// multiple users change the named ports settings concurrently. Obtain
16272	// the fingerprint with the instanceGroups.get method. Then, include the
16273	// fingerprint in your request to ensure that you do not overwrite
16274	// changes that were applied from another concurrent request.
16275	Fingerprint string `json:"fingerprint,omitempty"`
16276
16277	// NamedPorts: The list of named ports to set for this instance group.
16278	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
16279
16280	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
16281	// unconditionally include in API requests. By default, fields with
16282	// empty values are omitted from API requests. However, any non-pointer,
16283	// non-interface field appearing in ForceSendFields will be sent to the
16284	// server regardless of whether the field is empty or not. This may be
16285	// used to include empty fields in Patch requests.
16286	ForceSendFields []string `json:"-"`
16287
16288	// NullFields is a list of field names (e.g. "Fingerprint") to include
16289	// in API requests with the JSON null value. By default, fields with
16290	// empty values are omitted from API requests. However, any field with
16291	// an empty value appearing in NullFields will be sent to the server as
16292	// null. It is an error if a field in this list has a non-empty value.
16293	// This may be used to include null fields in Patch requests.
16294	NullFields []string `json:"-"`
16295}
16296
16297func (s *RegionInstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
16298	type NoMethod RegionInstanceGroupsSetNamedPortsRequest
16299	raw := NoMethod(*s)
16300	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16301}
16302
16303// RegionList: Contains a list of region resources.
16304type RegionList struct {
16305	// Id: [Output Only] Unique identifier for the resource; defined by the
16306	// server.
16307	Id string `json:"id,omitempty"`
16308
16309	// Items: A list of Region resources.
16310	Items []*Region `json:"items,omitempty"`
16311
16312	// Kind: [Output Only] Type of resource. Always compute#regionList for
16313	// lists of regions.
16314	Kind string `json:"kind,omitempty"`
16315
16316	// NextPageToken: [Output Only] This token allows you to get the next
16317	// page of results for list requests. If the number of results is larger
16318	// than maxResults, use the nextPageToken as a value for the query
16319	// parameter pageToken in the next list request. Subsequent list
16320	// requests will have their own nextPageToken to continue paging through
16321	// the results.
16322	NextPageToken string `json:"nextPageToken,omitempty"`
16323
16324	// SelfLink: [Output Only] Server-defined URL for this resource.
16325	SelfLink string `json:"selfLink,omitempty"`
16326
16327	// Warning: [Output Only] Informational warning message.
16328	Warning *RegionListWarning `json:"warning,omitempty"`
16329
16330	// ServerResponse contains the HTTP response code and headers from the
16331	// server.
16332	googleapi.ServerResponse `json:"-"`
16333
16334	// ForceSendFields is a list of field names (e.g. "Id") to
16335	// unconditionally include in API requests. By default, fields with
16336	// empty values are omitted from API requests. However, any non-pointer,
16337	// non-interface field appearing in ForceSendFields will be sent to the
16338	// server regardless of whether the field is empty or not. This may be
16339	// used to include empty fields in Patch requests.
16340	ForceSendFields []string `json:"-"`
16341
16342	// NullFields is a list of field names (e.g. "Id") to include in API
16343	// requests with the JSON null value. By default, fields with empty
16344	// values are omitted from API requests. However, any field with an
16345	// empty value appearing in NullFields will be sent to the server as
16346	// null. It is an error if a field in this list has a non-empty value.
16347	// This may be used to include null fields in Patch requests.
16348	NullFields []string `json:"-"`
16349}
16350
16351func (s *RegionList) MarshalJSON() ([]byte, error) {
16352	type NoMethod RegionList
16353	raw := NoMethod(*s)
16354	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16355}
16356
16357// RegionListWarning: [Output Only] Informational warning message.
16358type RegionListWarning struct {
16359	// Code: [Output Only] A warning code, if applicable. For example,
16360	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16361	// the response.
16362	//
16363	// Possible values:
16364	//   "CLEANUP_FAILED"
16365	//   "DEPRECATED_RESOURCE_USED"
16366	//   "DEPRECATED_TYPE_USED"
16367	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16368	//   "EXPERIMENTAL_TYPE_USED"
16369	//   "EXTERNAL_API_WARNING"
16370	//   "FIELD_VALUE_OVERRIDEN"
16371	//   "INJECTED_KERNELS_DEPRECATED"
16372	//   "MISSING_TYPE_DEPENDENCY"
16373	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16374	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16375	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16376	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16377	//   "NEXT_HOP_NOT_RUNNING"
16378	//   "NOT_CRITICAL_ERROR"
16379	//   "NO_RESULTS_ON_PAGE"
16380	//   "REQUIRED_TOS_AGREEMENT"
16381	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16382	//   "RESOURCE_NOT_DELETED"
16383	//   "SCHEMA_VALIDATION_IGNORED"
16384	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16385	//   "UNDECLARED_PROPERTIES"
16386	//   "UNREACHABLE"
16387	Code string `json:"code,omitempty"`
16388
16389	// Data: [Output Only] Metadata about this warning in key: value format.
16390	// For example:
16391	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16392	Data []*RegionListWarningData `json:"data,omitempty"`
16393
16394	// Message: [Output Only] A human-readable description of the warning
16395	// code.
16396	Message string `json:"message,omitempty"`
16397
16398	// ForceSendFields is a list of field names (e.g. "Code") to
16399	// unconditionally include in API requests. By default, fields with
16400	// empty values are omitted from API requests. However, any non-pointer,
16401	// non-interface field appearing in ForceSendFields will be sent to the
16402	// server regardless of whether the field is empty or not. This may be
16403	// used to include empty fields in Patch requests.
16404	ForceSendFields []string `json:"-"`
16405
16406	// NullFields is a list of field names (e.g. "Code") to include in API
16407	// requests with the JSON null value. By default, fields with empty
16408	// values are omitted from API requests. However, any field with an
16409	// empty value appearing in NullFields will be sent to the server as
16410	// null. It is an error if a field in this list has a non-empty value.
16411	// This may be used to include null fields in Patch requests.
16412	NullFields []string `json:"-"`
16413}
16414
16415func (s *RegionListWarning) MarshalJSON() ([]byte, error) {
16416	type NoMethod RegionListWarning
16417	raw := NoMethod(*s)
16418	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16419}
16420
16421type RegionListWarningData struct {
16422	// Key: [Output Only] A key that provides more detail on the warning
16423	// being returned. For example, for warnings where there are no results
16424	// in a list request for a particular zone, this key might be scope and
16425	// the key value might be the zone name. Other examples might be a key
16426	// indicating a deprecated resource and a suggested replacement, or a
16427	// warning about invalid network settings (for example, if an instance
16428	// attempts to perform IP forwarding but is not enabled for IP
16429	// forwarding).
16430	Key string `json:"key,omitempty"`
16431
16432	// Value: [Output Only] A warning data value corresponding to the key.
16433	Value string `json:"value,omitempty"`
16434
16435	// ForceSendFields is a list of field names (e.g. "Key") to
16436	// unconditionally include in API requests. By default, fields with
16437	// empty values are omitted from API requests. However, any non-pointer,
16438	// non-interface field appearing in ForceSendFields will be sent to the
16439	// server regardless of whether the field is empty or not. This may be
16440	// used to include empty fields in Patch requests.
16441	ForceSendFields []string `json:"-"`
16442
16443	// NullFields is a list of field names (e.g. "Key") to include in API
16444	// requests with the JSON null value. By default, fields with empty
16445	// values are omitted from API requests. However, any field with an
16446	// empty value appearing in NullFields will be sent to the server as
16447	// null. It is an error if a field in this list has a non-empty value.
16448	// This may be used to include null fields in Patch requests.
16449	NullFields []string `json:"-"`
16450}
16451
16452func (s *RegionListWarningData) MarshalJSON() ([]byte, error) {
16453	type NoMethod RegionListWarningData
16454	raw := NoMethod(*s)
16455	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16456}
16457
16458// ResourceCommitment: Commitment for a particular resource (a
16459// Commitment is composed of one or more of these).
16460type ResourceCommitment struct {
16461	// Amount: The amount of the resource purchased (in a type-dependent
16462	// unit, such as bytes). For vCPUs, this can just be an integer. For
16463	// memory, this must be provided in MB. Memory must be a multiple of 256
16464	// MB, with up to 6.5GB of memory per every vCPU.
16465	Amount int64 `json:"amount,omitempty,string"`
16466
16467	// Type: Type of resource for which this commitment applies. Possible
16468	// values are VCPU and MEMORY
16469	//
16470	// Possible values:
16471	//   "MEMORY"
16472	//   "UNSPECIFIED"
16473	//   "VCPU"
16474	Type string `json:"type,omitempty"`
16475
16476	// ForceSendFields is a list of field names (e.g. "Amount") to
16477	// unconditionally include in API requests. By default, fields with
16478	// empty values are omitted from API requests. However, any non-pointer,
16479	// non-interface field appearing in ForceSendFields will be sent to the
16480	// server regardless of whether the field is empty or not. This may be
16481	// used to include empty fields in Patch requests.
16482	ForceSendFields []string `json:"-"`
16483
16484	// NullFields is a list of field names (e.g. "Amount") to include in API
16485	// requests with the JSON null value. By default, fields with empty
16486	// values are omitted from API requests. However, any field with an
16487	// empty value appearing in NullFields will be sent to the server as
16488	// null. It is an error if a field in this list has a non-empty value.
16489	// This may be used to include null fields in Patch requests.
16490	NullFields []string `json:"-"`
16491}
16492
16493func (s *ResourceCommitment) MarshalJSON() ([]byte, error) {
16494	type NoMethod ResourceCommitment
16495	raw := NoMethod(*s)
16496	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16497}
16498
16499type ResourceGroupReference struct {
16500	// Group: A URI referencing one of the instance groups listed in the
16501	// backend service.
16502	Group string `json:"group,omitempty"`
16503
16504	// ForceSendFields is a list of field names (e.g. "Group") to
16505	// unconditionally include in API requests. By default, fields with
16506	// empty values are omitted from API requests. However, any non-pointer,
16507	// non-interface field appearing in ForceSendFields will be sent to the
16508	// server regardless of whether the field is empty or not. This may be
16509	// used to include empty fields in Patch requests.
16510	ForceSendFields []string `json:"-"`
16511
16512	// NullFields is a list of field names (e.g. "Group") to include in API
16513	// requests with the JSON null value. By default, fields with empty
16514	// values are omitted from API requests. However, any field with an
16515	// empty value appearing in NullFields will be sent to the server as
16516	// null. It is an error if a field in this list has a non-empty value.
16517	// This may be used to include null fields in Patch requests.
16518	NullFields []string `json:"-"`
16519}
16520
16521func (s *ResourceGroupReference) MarshalJSON() ([]byte, error) {
16522	type NoMethod ResourceGroupReference
16523	raw := NoMethod(*s)
16524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16525}
16526
16527// Route: Represents a Route resource. A route specifies how certain
16528// packets should be handled by the network. Routes are associated with
16529// instances by tags and the set of routes for a particular instance is
16530// called its routing table.
16531//
16532// For each packet leaving an instance, the system searches that
16533// instance's routing table for a single best matching route. Routes
16534// match packets by destination IP address, preferring smaller or more
16535// specific ranges over larger ones. If there is a tie, the system
16536// selects the route with the smallest priority value. If there is still
16537// a tie, it uses the layer three and four packet headers to select just
16538// one of the remaining matching routes. The packet is then forwarded as
16539// specified by the nextHop field of the winning route - either to
16540// another instance destination, an instance gateway, or a Google
16541// Compute Engine-operated gateway.
16542//
16543// Packets that do not match any route in the sending instance's routing
16544// table are dropped. (== resource_for beta.routes ==) (== resource_for
16545// v1.routes ==)
16546type Route struct {
16547	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
16548	// format.
16549	CreationTimestamp string `json:"creationTimestamp,omitempty"`
16550
16551	// Description: An optional description of this resource. Provide this
16552	// property when you create the resource.
16553	Description string `json:"description,omitempty"`
16554
16555	// DestRange: The destination range of outgoing packets that this route
16556	// applies to. Only IPv4 is supported.
16557	DestRange string `json:"destRange,omitempty"`
16558
16559	// Id: [Output Only] The unique identifier for the resource. This
16560	// identifier is defined by the server.
16561	Id uint64 `json:"id,omitempty,string"`
16562
16563	// Kind: [Output Only] Type of this resource. Always compute#routes for
16564	// Route resources.
16565	Kind string `json:"kind,omitempty"`
16566
16567	// Name: Name of the resource. Provided by the client when the resource
16568	// is created. The name must be 1-63 characters long, and comply with
16569	// RFC1035. Specifically, the name must be 1-63 characters long and
16570	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
16571	// the first character must be a lowercase letter, and all following
16572	// characters must be a dash, lowercase letter, or digit, except the
16573	// last character, which cannot be a dash.
16574	Name string `json:"name,omitempty"`
16575
16576	// Network: Fully-qualified URL of the network that this route applies
16577	// to.
16578	Network string `json:"network,omitempty"`
16579
16580	// NextHopGateway: The URL to a gateway that should handle matching
16581	// packets. You can only specify the internet gateway using a full or
16582	// partial valid URL:
16583	// projects/<project-id>/global/gateways/default-internet-gateway
16584	NextHopGateway string `json:"nextHopGateway,omitempty"`
16585
16586	// NextHopInstance: The URL to an instance that should handle matching
16587	// packets. You can specify this as a full or partial URL. For
16588	// example:
16589	// https://www.googleapis.com/compute/v1/projects/project/zones/
16590	// zone/instances/
16591	NextHopInstance string `json:"nextHopInstance,omitempty"`
16592
16593	// NextHopIp: The network IP address of an instance that should handle
16594	// matching packets. Only IPv4 is supported.
16595	NextHopIp string `json:"nextHopIp,omitempty"`
16596
16597	// NextHopNetwork: The URL of the local network if it should handle
16598	// matching packets.
16599	NextHopNetwork string `json:"nextHopNetwork,omitempty"`
16600
16601	// NextHopPeering: [Output Only] The network peering name that should
16602	// handle matching packets, which should conform to RFC1035.
16603	NextHopPeering string `json:"nextHopPeering,omitempty"`
16604
16605	// NextHopVpnTunnel: The URL to a VpnTunnel that should handle matching
16606	// packets.
16607	NextHopVpnTunnel string `json:"nextHopVpnTunnel,omitempty"`
16608
16609	// Priority: The priority of this route. Priority is used to break ties
16610	// in cases where there is more than one matching route of equal prefix
16611	// length. In the case of two routes with equal prefix length, the one
16612	// with the lowest-numbered priority value wins. Default value is 1000.
16613	// Valid range is 0 through 65535.
16614	Priority int64 `json:"priority,omitempty"`
16615
16616	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
16617	// resource.
16618	SelfLink string `json:"selfLink,omitempty"`
16619
16620	// Tags: A list of instance tags to which this route applies.
16621	Tags []string `json:"tags,omitempty"`
16622
16623	// Warnings: [Output Only] If potential misconfigurations are detected
16624	// for this route, this field will be populated with warning messages.
16625	Warnings []*RouteWarnings `json:"warnings,omitempty"`
16626
16627	// ServerResponse contains the HTTP response code and headers from the
16628	// server.
16629	googleapi.ServerResponse `json:"-"`
16630
16631	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
16632	// to unconditionally include in API requests. By default, fields with
16633	// empty values are omitted from API requests. However, any non-pointer,
16634	// non-interface field appearing in ForceSendFields will be sent to the
16635	// server regardless of whether the field is empty or not. This may be
16636	// used to include empty fields in Patch requests.
16637	ForceSendFields []string `json:"-"`
16638
16639	// NullFields is a list of field names (e.g. "CreationTimestamp") to
16640	// include in API requests with the JSON null value. By default, fields
16641	// with empty values are omitted from API requests. However, any field
16642	// with an empty value appearing in NullFields will be sent to the
16643	// server as null. It is an error if a field in this list has a
16644	// non-empty value. This may be used to include null fields in Patch
16645	// requests.
16646	NullFields []string `json:"-"`
16647}
16648
16649func (s *Route) MarshalJSON() ([]byte, error) {
16650	type NoMethod Route
16651	raw := NoMethod(*s)
16652	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16653}
16654
16655type RouteWarnings struct {
16656	// Code: [Output Only] A warning code, if applicable. For example,
16657	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16658	// the response.
16659	//
16660	// Possible values:
16661	//   "CLEANUP_FAILED"
16662	//   "DEPRECATED_RESOURCE_USED"
16663	//   "DEPRECATED_TYPE_USED"
16664	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16665	//   "EXPERIMENTAL_TYPE_USED"
16666	//   "EXTERNAL_API_WARNING"
16667	//   "FIELD_VALUE_OVERRIDEN"
16668	//   "INJECTED_KERNELS_DEPRECATED"
16669	//   "MISSING_TYPE_DEPENDENCY"
16670	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16671	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16672	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16673	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16674	//   "NEXT_HOP_NOT_RUNNING"
16675	//   "NOT_CRITICAL_ERROR"
16676	//   "NO_RESULTS_ON_PAGE"
16677	//   "REQUIRED_TOS_AGREEMENT"
16678	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16679	//   "RESOURCE_NOT_DELETED"
16680	//   "SCHEMA_VALIDATION_IGNORED"
16681	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16682	//   "UNDECLARED_PROPERTIES"
16683	//   "UNREACHABLE"
16684	Code string `json:"code,omitempty"`
16685
16686	// Data: [Output Only] Metadata about this warning in key: value format.
16687	// For example:
16688	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16689	Data []*RouteWarningsData `json:"data,omitempty"`
16690
16691	// Message: [Output Only] A human-readable description of the warning
16692	// code.
16693	Message string `json:"message,omitempty"`
16694
16695	// ForceSendFields is a list of field names (e.g. "Code") to
16696	// unconditionally include in API requests. By default, fields with
16697	// empty values are omitted from API requests. However, any non-pointer,
16698	// non-interface field appearing in ForceSendFields will be sent to the
16699	// server regardless of whether the field is empty or not. This may be
16700	// used to include empty fields in Patch requests.
16701	ForceSendFields []string `json:"-"`
16702
16703	// NullFields is a list of field names (e.g. "Code") to include in API
16704	// requests with the JSON null value. By default, fields with empty
16705	// values are omitted from API requests. However, any field with an
16706	// empty value appearing in NullFields will be sent to the server as
16707	// null. It is an error if a field in this list has a non-empty value.
16708	// This may be used to include null fields in Patch requests.
16709	NullFields []string `json:"-"`
16710}
16711
16712func (s *RouteWarnings) MarshalJSON() ([]byte, error) {
16713	type NoMethod RouteWarnings
16714	raw := NoMethod(*s)
16715	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16716}
16717
16718type RouteWarningsData struct {
16719	// Key: [Output Only] A key that provides more detail on the warning
16720	// being returned. For example, for warnings where there are no results
16721	// in a list request for a particular zone, this key might be scope and
16722	// the key value might be the zone name. Other examples might be a key
16723	// indicating a deprecated resource and a suggested replacement, or a
16724	// warning about invalid network settings (for example, if an instance
16725	// attempts to perform IP forwarding but is not enabled for IP
16726	// forwarding).
16727	Key string `json:"key,omitempty"`
16728
16729	// Value: [Output Only] A warning data value corresponding to the key.
16730	Value string `json:"value,omitempty"`
16731
16732	// ForceSendFields is a list of field names (e.g. "Key") to
16733	// unconditionally include in API requests. By default, fields with
16734	// empty values are omitted from API requests. However, any non-pointer,
16735	// non-interface field appearing in ForceSendFields will be sent to the
16736	// server regardless of whether the field is empty or not. This may be
16737	// used to include empty fields in Patch requests.
16738	ForceSendFields []string `json:"-"`
16739
16740	// NullFields is a list of field names (e.g. "Key") to include in API
16741	// requests with the JSON null value. By default, fields with empty
16742	// values are omitted from API requests. However, any field with an
16743	// empty value appearing in NullFields will be sent to the server as
16744	// null. It is an error if a field in this list has a non-empty value.
16745	// This may be used to include null fields in Patch requests.
16746	NullFields []string `json:"-"`
16747}
16748
16749func (s *RouteWarningsData) MarshalJSON() ([]byte, error) {
16750	type NoMethod RouteWarningsData
16751	raw := NoMethod(*s)
16752	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16753}
16754
16755// RouteList: Contains a list of Route resources.
16756type RouteList struct {
16757	// Id: [Output Only] Unique identifier for the resource; defined by the
16758	// server.
16759	Id string `json:"id,omitempty"`
16760
16761	// Items: A list of Route resources.
16762	Items []*Route `json:"items,omitempty"`
16763
16764	// Kind: Type of resource.
16765	Kind string `json:"kind,omitempty"`
16766
16767	// NextPageToken: [Output Only] This token allows you to get the next
16768	// page of results for list requests. If the number of results is larger
16769	// than maxResults, use the nextPageToken as a value for the query
16770	// parameter pageToken in the next list request. Subsequent list
16771	// requests will have their own nextPageToken to continue paging through
16772	// the results.
16773	NextPageToken string `json:"nextPageToken,omitempty"`
16774
16775	// SelfLink: [Output Only] Server-defined URL for this resource.
16776	SelfLink string `json:"selfLink,omitempty"`
16777
16778	// Warning: [Output Only] Informational warning message.
16779	Warning *RouteListWarning `json:"warning,omitempty"`
16780
16781	// ServerResponse contains the HTTP response code and headers from the
16782	// server.
16783	googleapi.ServerResponse `json:"-"`
16784
16785	// ForceSendFields is a list of field names (e.g. "Id") to
16786	// unconditionally include in API requests. By default, fields with
16787	// empty values are omitted from API requests. However, any non-pointer,
16788	// non-interface field appearing in ForceSendFields will be sent to the
16789	// server regardless of whether the field is empty or not. This may be
16790	// used to include empty fields in Patch requests.
16791	ForceSendFields []string `json:"-"`
16792
16793	// NullFields is a list of field names (e.g. "Id") to include in API
16794	// requests with the JSON null value. By default, fields with empty
16795	// values are omitted from API requests. However, any field with an
16796	// empty value appearing in NullFields will be sent to the server as
16797	// null. It is an error if a field in this list has a non-empty value.
16798	// This may be used to include null fields in Patch requests.
16799	NullFields []string `json:"-"`
16800}
16801
16802func (s *RouteList) MarshalJSON() ([]byte, error) {
16803	type NoMethod RouteList
16804	raw := NoMethod(*s)
16805	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16806}
16807
16808// RouteListWarning: [Output Only] Informational warning message.
16809type RouteListWarning struct {
16810	// Code: [Output Only] A warning code, if applicable. For example,
16811	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16812	// the response.
16813	//
16814	// Possible values:
16815	//   "CLEANUP_FAILED"
16816	//   "DEPRECATED_RESOURCE_USED"
16817	//   "DEPRECATED_TYPE_USED"
16818	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16819	//   "EXPERIMENTAL_TYPE_USED"
16820	//   "EXTERNAL_API_WARNING"
16821	//   "FIELD_VALUE_OVERRIDEN"
16822	//   "INJECTED_KERNELS_DEPRECATED"
16823	//   "MISSING_TYPE_DEPENDENCY"
16824	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16825	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16826	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16827	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16828	//   "NEXT_HOP_NOT_RUNNING"
16829	//   "NOT_CRITICAL_ERROR"
16830	//   "NO_RESULTS_ON_PAGE"
16831	//   "REQUIRED_TOS_AGREEMENT"
16832	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16833	//   "RESOURCE_NOT_DELETED"
16834	//   "SCHEMA_VALIDATION_IGNORED"
16835	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16836	//   "UNDECLARED_PROPERTIES"
16837	//   "UNREACHABLE"
16838	Code string `json:"code,omitempty"`
16839
16840	// Data: [Output Only] Metadata about this warning in key: value format.
16841	// For example:
16842	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16843	Data []*RouteListWarningData `json:"data,omitempty"`
16844
16845	// Message: [Output Only] A human-readable description of the warning
16846	// code.
16847	Message string `json:"message,omitempty"`
16848
16849	// ForceSendFields is a list of field names (e.g. "Code") to
16850	// unconditionally include in API requests. By default, fields with
16851	// empty values are omitted from API requests. However, any non-pointer,
16852	// non-interface field appearing in ForceSendFields will be sent to the
16853	// server regardless of whether the field is empty or not. This may be
16854	// used to include empty fields in Patch requests.
16855	ForceSendFields []string `json:"-"`
16856
16857	// NullFields is a list of field names (e.g. "Code") to include in API
16858	// requests with the JSON null value. By default, fields with empty
16859	// values are omitted from API requests. However, any field with an
16860	// empty value appearing in NullFields will be sent to the server as
16861	// null. It is an error if a field in this list has a non-empty value.
16862	// This may be used to include null fields in Patch requests.
16863	NullFields []string `json:"-"`
16864}
16865
16866func (s *RouteListWarning) MarshalJSON() ([]byte, error) {
16867	type NoMethod RouteListWarning
16868	raw := NoMethod(*s)
16869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16870}
16871
16872type RouteListWarningData struct {
16873	// Key: [Output Only] A key that provides more detail on the warning
16874	// being returned. For example, for warnings where there are no results
16875	// in a list request for a particular zone, this key might be scope and
16876	// the key value might be the zone name. Other examples might be a key
16877	// indicating a deprecated resource and a suggested replacement, or a
16878	// warning about invalid network settings (for example, if an instance
16879	// attempts to perform IP forwarding but is not enabled for IP
16880	// forwarding).
16881	Key string `json:"key,omitempty"`
16882
16883	// Value: [Output Only] A warning data value corresponding to the key.
16884	Value string `json:"value,omitempty"`
16885
16886	// ForceSendFields is a list of field names (e.g. "Key") to
16887	// unconditionally include in API requests. By default, fields with
16888	// empty values are omitted from API requests. However, any non-pointer,
16889	// non-interface field appearing in ForceSendFields will be sent to the
16890	// server regardless of whether the field is empty or not. This may be
16891	// used to include empty fields in Patch requests.
16892	ForceSendFields []string `json:"-"`
16893
16894	// NullFields is a list of field names (e.g. "Key") to include in API
16895	// requests with the JSON null value. By default, fields with empty
16896	// values are omitted from API requests. However, any field with an
16897	// empty value appearing in NullFields will be sent to the server as
16898	// null. It is an error if a field in this list has a non-empty value.
16899	// This may be used to include null fields in Patch requests.
16900	NullFields []string `json:"-"`
16901}
16902
16903func (s *RouteListWarningData) MarshalJSON() ([]byte, error) {
16904	type NoMethod RouteListWarningData
16905	raw := NoMethod(*s)
16906	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16907}
16908
16909// Router: Router resource.
16910type Router struct {
16911	// Bgp: BGP information specific to this router.
16912	Bgp *RouterBgp `json:"bgp,omitempty"`
16913
16914	// BgpPeers: BGP information that needs to be configured into the
16915	// routing stack to establish the BGP peering. It must specify peer ASN
16916	// and either interface name, IP, or peer IP. Please refer to RFC4273.
16917	BgpPeers []*RouterBgpPeer `json:"bgpPeers,omitempty"`
16918
16919	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
16920	// format.
16921	CreationTimestamp string `json:"creationTimestamp,omitempty"`
16922
16923	// Description: An optional description of this resource. Provide this
16924	// property when you create the resource.
16925	Description string `json:"description,omitempty"`
16926
16927	// Id: [Output Only] The unique identifier for the resource. This
16928	// identifier is defined by the server.
16929	Id uint64 `json:"id,omitempty,string"`
16930
16931	// Interfaces: Router interfaces. Each interface requires either one
16932	// linked resource (e.g. linkedVpnTunnel), or IP address and IP address
16933	// range (e.g. ipRange), or both.
16934	Interfaces []*RouterInterface `json:"interfaces,omitempty"`
16935
16936	// Kind: [Output Only] Type of resource. Always compute#router for
16937	// routers.
16938	Kind string `json:"kind,omitempty"`
16939
16940	// Name: Name of the resource. Provided by the client when the resource
16941	// is created. The name must be 1-63 characters long, and comply with
16942	// RFC1035. Specifically, the name must be 1-63 characters long and
16943	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
16944	// the first character must be a lowercase letter, and all following
16945	// characters must be a dash, lowercase letter, or digit, except the
16946	// last character, which cannot be a dash.
16947	Name string `json:"name,omitempty"`
16948
16949	// Network: URI of the network to which this router belongs.
16950	Network string `json:"network,omitempty"`
16951
16952	// Region: [Output Only] URI of the region where the router resides. You
16953	// must specify this field as part of the HTTP request URL. It is not
16954	// settable as a field in the request body.
16955	Region string `json:"region,omitempty"`
16956
16957	// SelfLink: [Output Only] Server-defined URL for the resource.
16958	SelfLink string `json:"selfLink,omitempty"`
16959
16960	// ServerResponse contains the HTTP response code and headers from the
16961	// server.
16962	googleapi.ServerResponse `json:"-"`
16963
16964	// ForceSendFields is a list of field names (e.g. "Bgp") to
16965	// unconditionally include in API requests. By default, fields with
16966	// empty values are omitted from API requests. However, any non-pointer,
16967	// non-interface field appearing in ForceSendFields will be sent to the
16968	// server regardless of whether the field is empty or not. This may be
16969	// used to include empty fields in Patch requests.
16970	ForceSendFields []string `json:"-"`
16971
16972	// NullFields is a list of field names (e.g. "Bgp") to include in API
16973	// requests with the JSON null value. By default, fields with empty
16974	// values are omitted from API requests. However, any field with an
16975	// empty value appearing in NullFields will be sent to the server as
16976	// null. It is an error if a field in this list has a non-empty value.
16977	// This may be used to include null fields in Patch requests.
16978	NullFields []string `json:"-"`
16979}
16980
16981func (s *Router) MarshalJSON() ([]byte, error) {
16982	type NoMethod Router
16983	raw := NoMethod(*s)
16984	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16985}
16986
16987// RouterAggregatedList: Contains a list of routers.
16988type RouterAggregatedList struct {
16989	// Id: [Output Only] Unique identifier for the resource; defined by the
16990	// server.
16991	Id string `json:"id,omitempty"`
16992
16993	// Items: A list of Router resources.
16994	Items map[string]RoutersScopedList `json:"items,omitempty"`
16995
16996	// Kind: Type of resource.
16997	Kind string `json:"kind,omitempty"`
16998
16999	// NextPageToken: [Output Only] This token allows you to get the next
17000	// page of results for list requests. If the number of results is larger
17001	// than maxResults, use the nextPageToken as a value for the query
17002	// parameter pageToken in the next list request. Subsequent list
17003	// requests will have their own nextPageToken to continue paging through
17004	// the results.
17005	NextPageToken string `json:"nextPageToken,omitempty"`
17006
17007	// SelfLink: [Output Only] Server-defined URL for this resource.
17008	SelfLink string `json:"selfLink,omitempty"`
17009
17010	// Warning: [Output Only] Informational warning message.
17011	Warning *RouterAggregatedListWarning `json:"warning,omitempty"`
17012
17013	// ServerResponse contains the HTTP response code and headers from the
17014	// server.
17015	googleapi.ServerResponse `json:"-"`
17016
17017	// ForceSendFields is a list of field names (e.g. "Id") to
17018	// unconditionally include in API requests. By default, fields with
17019	// empty values are omitted from API requests. However, any non-pointer,
17020	// non-interface field appearing in ForceSendFields will be sent to the
17021	// server regardless of whether the field is empty or not. This may be
17022	// used to include empty fields in Patch requests.
17023	ForceSendFields []string `json:"-"`
17024
17025	// NullFields is a list of field names (e.g. "Id") to include in API
17026	// requests with the JSON null value. By default, fields with empty
17027	// values are omitted from API requests. However, any field with an
17028	// empty value appearing in NullFields will be sent to the server as
17029	// null. It is an error if a field in this list has a non-empty value.
17030	// This may be used to include null fields in Patch requests.
17031	NullFields []string `json:"-"`
17032}
17033
17034func (s *RouterAggregatedList) MarshalJSON() ([]byte, error) {
17035	type NoMethod RouterAggregatedList
17036	raw := NoMethod(*s)
17037	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17038}
17039
17040// RouterAggregatedListWarning: [Output Only] Informational warning
17041// message.
17042type RouterAggregatedListWarning struct {
17043	// Code: [Output Only] A warning code, if applicable. For example,
17044	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17045	// the response.
17046	//
17047	// Possible values:
17048	//   "CLEANUP_FAILED"
17049	//   "DEPRECATED_RESOURCE_USED"
17050	//   "DEPRECATED_TYPE_USED"
17051	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17052	//   "EXPERIMENTAL_TYPE_USED"
17053	//   "EXTERNAL_API_WARNING"
17054	//   "FIELD_VALUE_OVERRIDEN"
17055	//   "INJECTED_KERNELS_DEPRECATED"
17056	//   "MISSING_TYPE_DEPENDENCY"
17057	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17058	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17059	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17060	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17061	//   "NEXT_HOP_NOT_RUNNING"
17062	//   "NOT_CRITICAL_ERROR"
17063	//   "NO_RESULTS_ON_PAGE"
17064	//   "REQUIRED_TOS_AGREEMENT"
17065	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17066	//   "RESOURCE_NOT_DELETED"
17067	//   "SCHEMA_VALIDATION_IGNORED"
17068	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17069	//   "UNDECLARED_PROPERTIES"
17070	//   "UNREACHABLE"
17071	Code string `json:"code,omitempty"`
17072
17073	// Data: [Output Only] Metadata about this warning in key: value format.
17074	// For example:
17075	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17076	Data []*RouterAggregatedListWarningData `json:"data,omitempty"`
17077
17078	// Message: [Output Only] A human-readable description of the warning
17079	// code.
17080	Message string `json:"message,omitempty"`
17081
17082	// ForceSendFields is a list of field names (e.g. "Code") to
17083	// unconditionally include in API requests. By default, fields with
17084	// empty values are omitted from API requests. However, any non-pointer,
17085	// non-interface field appearing in ForceSendFields will be sent to the
17086	// server regardless of whether the field is empty or not. This may be
17087	// used to include empty fields in Patch requests.
17088	ForceSendFields []string `json:"-"`
17089
17090	// NullFields is a list of field names (e.g. "Code") to include in API
17091	// requests with the JSON null value. By default, fields with empty
17092	// values are omitted from API requests. However, any field with an
17093	// empty value appearing in NullFields will be sent to the server as
17094	// null. It is an error if a field in this list has a non-empty value.
17095	// This may be used to include null fields in Patch requests.
17096	NullFields []string `json:"-"`
17097}
17098
17099func (s *RouterAggregatedListWarning) MarshalJSON() ([]byte, error) {
17100	type NoMethod RouterAggregatedListWarning
17101	raw := NoMethod(*s)
17102	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17103}
17104
17105type RouterAggregatedListWarningData struct {
17106	// Key: [Output Only] A key that provides more detail on the warning
17107	// being returned. For example, for warnings where there are no results
17108	// in a list request for a particular zone, this key might be scope and
17109	// the key value might be the zone name. Other examples might be a key
17110	// indicating a deprecated resource and a suggested replacement, or a
17111	// warning about invalid network settings (for example, if an instance
17112	// attempts to perform IP forwarding but is not enabled for IP
17113	// forwarding).
17114	Key string `json:"key,omitempty"`
17115
17116	// Value: [Output Only] A warning data value corresponding to the key.
17117	Value string `json:"value,omitempty"`
17118
17119	// ForceSendFields is a list of field names (e.g. "Key") to
17120	// unconditionally include in API requests. By default, fields with
17121	// empty values are omitted from API requests. However, any non-pointer,
17122	// non-interface field appearing in ForceSendFields will be sent to the
17123	// server regardless of whether the field is empty or not. This may be
17124	// used to include empty fields in Patch requests.
17125	ForceSendFields []string `json:"-"`
17126
17127	// NullFields is a list of field names (e.g. "Key") to include in API
17128	// requests with the JSON null value. By default, fields with empty
17129	// values are omitted from API requests. However, any field with an
17130	// empty value appearing in NullFields will be sent to the server as
17131	// null. It is an error if a field in this list has a non-empty value.
17132	// This may be used to include null fields in Patch requests.
17133	NullFields []string `json:"-"`
17134}
17135
17136func (s *RouterAggregatedListWarningData) MarshalJSON() ([]byte, error) {
17137	type NoMethod RouterAggregatedListWarningData
17138	raw := NoMethod(*s)
17139	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17140}
17141
17142type RouterBgp struct {
17143	// Asn: Local BGP Autonomous System Number (ASN). Must be an RFC6996
17144	// private ASN, either 16-bit or 32-bit. The value will be fixed for
17145	// this router resource. All VPN tunnels that link to this router will
17146	// have the same local ASN.
17147	Asn int64 `json:"asn,omitempty"`
17148
17149	// ForceSendFields is a list of field names (e.g. "Asn") to
17150	// unconditionally include in API requests. By default, fields with
17151	// empty values are omitted from API requests. However, any non-pointer,
17152	// non-interface field appearing in ForceSendFields will be sent to the
17153	// server regardless of whether the field is empty or not. This may be
17154	// used to include empty fields in Patch requests.
17155	ForceSendFields []string `json:"-"`
17156
17157	// NullFields is a list of field names (e.g. "Asn") to include in API
17158	// requests with the JSON null value. By default, fields with empty
17159	// values are omitted from API requests. However, any field with an
17160	// empty value appearing in NullFields will be sent to the server as
17161	// null. It is an error if a field in this list has a non-empty value.
17162	// This may be used to include null fields in Patch requests.
17163	NullFields []string `json:"-"`
17164}
17165
17166func (s *RouterBgp) MarshalJSON() ([]byte, error) {
17167	type NoMethod RouterBgp
17168	raw := NoMethod(*s)
17169	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17170}
17171
17172type RouterBgpPeer struct {
17173	// AdvertisedRoutePriority: The priority of routes advertised to this
17174	// BGP peer. In the case where there is more than one matching route of
17175	// maximum length, the routes with lowest priority value win.
17176	AdvertisedRoutePriority int64 `json:"advertisedRoutePriority,omitempty"`
17177
17178	// InterfaceName: Name of the interface the BGP peer is associated with.
17179	InterfaceName string `json:"interfaceName,omitempty"`
17180
17181	// IpAddress: IP address of the interface inside Google Cloud Platform.
17182	// Only IPv4 is supported.
17183	IpAddress string `json:"ipAddress,omitempty"`
17184
17185	// Name: Name of this BGP peer. The name must be 1-63 characters long
17186	// and comply with RFC1035.
17187	Name string `json:"name,omitempty"`
17188
17189	// PeerAsn: Peer BGP Autonomous System Number (ASN). For VPN use case,
17190	// this value can be different for every tunnel.
17191	PeerAsn int64 `json:"peerAsn,omitempty"`
17192
17193	// PeerIpAddress: IP address of the BGP interface outside Google cloud.
17194	// Only IPv4 is supported.
17195	PeerIpAddress string `json:"peerIpAddress,omitempty"`
17196
17197	// ForceSendFields is a list of field names (e.g.
17198	// "AdvertisedRoutePriority") to unconditionally include in API
17199	// requests. By default, fields with empty values are omitted from API
17200	// requests. However, any non-pointer, non-interface field appearing in
17201	// ForceSendFields will be sent to the server regardless of whether the
17202	// field is empty or not. This may be used to include empty fields in
17203	// Patch requests.
17204	ForceSendFields []string `json:"-"`
17205
17206	// NullFields is a list of field names (e.g. "AdvertisedRoutePriority")
17207	// to include in API requests with the JSON null value. By default,
17208	// fields with empty values are omitted from API requests. However, any
17209	// field with an empty value appearing in NullFields will be sent to the
17210	// server as null. It is an error if a field in this list has a
17211	// non-empty value. This may be used to include null fields in Patch
17212	// requests.
17213	NullFields []string `json:"-"`
17214}
17215
17216func (s *RouterBgpPeer) MarshalJSON() ([]byte, error) {
17217	type NoMethod RouterBgpPeer
17218	raw := NoMethod(*s)
17219	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17220}
17221
17222type RouterInterface struct {
17223	// IpRange: IP address and range of the interface. The IP range must be
17224	// in the RFC3927 link-local IP space. The value must be a
17225	// CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not
17226	// truncate the address as it represents the IP address of the
17227	// interface.
17228	IpRange string `json:"ipRange,omitempty"`
17229
17230	// LinkedInterconnectAttachment: URI of the linked interconnect
17231	// attachment. It must be in the same region as the router. Each
17232	// interface can have at most one linked resource and it could either be
17233	// a VPN Tunnel or an interconnect attachment.
17234	LinkedInterconnectAttachment string `json:"linkedInterconnectAttachment,omitempty"`
17235
17236	// LinkedVpnTunnel: URI of the linked VPN tunnel. It must be in the same
17237	// region as the router. Each interface can have at most one linked
17238	// resource and it could either be a VPN Tunnel or an interconnect
17239	// attachment.
17240	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
17241
17242	// Name: Name of this interface entry. The name must be 1-63 characters
17243	// long and comply with RFC1035.
17244	Name string `json:"name,omitempty"`
17245
17246	// ForceSendFields is a list of field names (e.g. "IpRange") to
17247	// unconditionally include in API requests. By default, fields with
17248	// empty values are omitted from API requests. However, any non-pointer,
17249	// non-interface field appearing in ForceSendFields will be sent to the
17250	// server regardless of whether the field is empty or not. This may be
17251	// used to include empty fields in Patch requests.
17252	ForceSendFields []string `json:"-"`
17253
17254	// NullFields is a list of field names (e.g. "IpRange") to include in
17255	// API requests with the JSON null value. By default, fields with empty
17256	// values are omitted from API requests. However, any field with an
17257	// empty value appearing in NullFields will be sent to the server as
17258	// null. It is an error if a field in this list has a non-empty value.
17259	// This may be used to include null fields in Patch requests.
17260	NullFields []string `json:"-"`
17261}
17262
17263func (s *RouterInterface) MarshalJSON() ([]byte, error) {
17264	type NoMethod RouterInterface
17265	raw := NoMethod(*s)
17266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17267}
17268
17269// RouterList: Contains a list of Router resources.
17270type RouterList struct {
17271	// Id: [Output Only] Unique identifier for the resource; defined by the
17272	// server.
17273	Id string `json:"id,omitempty"`
17274
17275	// Items: A list of Router resources.
17276	Items []*Router `json:"items,omitempty"`
17277
17278	// Kind: [Output Only] Type of resource. Always compute#router for
17279	// routers.
17280	Kind string `json:"kind,omitempty"`
17281
17282	// NextPageToken: [Output Only] This token allows you to get the next
17283	// page of results for list requests. If the number of results is larger
17284	// than maxResults, use the nextPageToken as a value for the query
17285	// parameter pageToken in the next list request. Subsequent list
17286	// requests will have their own nextPageToken to continue paging through
17287	// the results.
17288	NextPageToken string `json:"nextPageToken,omitempty"`
17289
17290	// SelfLink: [Output Only] Server-defined URL for this resource.
17291	SelfLink string `json:"selfLink,omitempty"`
17292
17293	// Warning: [Output Only] Informational warning message.
17294	Warning *RouterListWarning `json:"warning,omitempty"`
17295
17296	// ServerResponse contains the HTTP response code and headers from the
17297	// server.
17298	googleapi.ServerResponse `json:"-"`
17299
17300	// ForceSendFields is a list of field names (e.g. "Id") to
17301	// unconditionally include in API requests. By default, fields with
17302	// empty values are omitted from API requests. However, any non-pointer,
17303	// non-interface field appearing in ForceSendFields will be sent to the
17304	// server regardless of whether the field is empty or not. This may be
17305	// used to include empty fields in Patch requests.
17306	ForceSendFields []string `json:"-"`
17307
17308	// NullFields is a list of field names (e.g. "Id") to include in API
17309	// requests with the JSON null value. By default, fields with empty
17310	// values are omitted from API requests. However, any field with an
17311	// empty value appearing in NullFields will be sent to the server as
17312	// null. It is an error if a field in this list has a non-empty value.
17313	// This may be used to include null fields in Patch requests.
17314	NullFields []string `json:"-"`
17315}
17316
17317func (s *RouterList) MarshalJSON() ([]byte, error) {
17318	type NoMethod RouterList
17319	raw := NoMethod(*s)
17320	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17321}
17322
17323// RouterListWarning: [Output Only] Informational warning message.
17324type RouterListWarning struct {
17325	// Code: [Output Only] A warning code, if applicable. For example,
17326	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17327	// the response.
17328	//
17329	// Possible values:
17330	//   "CLEANUP_FAILED"
17331	//   "DEPRECATED_RESOURCE_USED"
17332	//   "DEPRECATED_TYPE_USED"
17333	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17334	//   "EXPERIMENTAL_TYPE_USED"
17335	//   "EXTERNAL_API_WARNING"
17336	//   "FIELD_VALUE_OVERRIDEN"
17337	//   "INJECTED_KERNELS_DEPRECATED"
17338	//   "MISSING_TYPE_DEPENDENCY"
17339	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17340	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17341	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17342	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17343	//   "NEXT_HOP_NOT_RUNNING"
17344	//   "NOT_CRITICAL_ERROR"
17345	//   "NO_RESULTS_ON_PAGE"
17346	//   "REQUIRED_TOS_AGREEMENT"
17347	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17348	//   "RESOURCE_NOT_DELETED"
17349	//   "SCHEMA_VALIDATION_IGNORED"
17350	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17351	//   "UNDECLARED_PROPERTIES"
17352	//   "UNREACHABLE"
17353	Code string `json:"code,omitempty"`
17354
17355	// Data: [Output Only] Metadata about this warning in key: value format.
17356	// For example:
17357	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17358	Data []*RouterListWarningData `json:"data,omitempty"`
17359
17360	// Message: [Output Only] A human-readable description of the warning
17361	// code.
17362	Message string `json:"message,omitempty"`
17363
17364	// ForceSendFields is a list of field names (e.g. "Code") to
17365	// unconditionally include in API requests. By default, fields with
17366	// empty values are omitted from API requests. However, any non-pointer,
17367	// non-interface field appearing in ForceSendFields will be sent to the
17368	// server regardless of whether the field is empty or not. This may be
17369	// used to include empty fields in Patch requests.
17370	ForceSendFields []string `json:"-"`
17371
17372	// NullFields is a list of field names (e.g. "Code") to include in API
17373	// requests with the JSON null value. By default, fields with empty
17374	// values are omitted from API requests. However, any field with an
17375	// empty value appearing in NullFields will be sent to the server as
17376	// null. It is an error if a field in this list has a non-empty value.
17377	// This may be used to include null fields in Patch requests.
17378	NullFields []string `json:"-"`
17379}
17380
17381func (s *RouterListWarning) MarshalJSON() ([]byte, error) {
17382	type NoMethod RouterListWarning
17383	raw := NoMethod(*s)
17384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17385}
17386
17387type RouterListWarningData struct {
17388	// Key: [Output Only] A key that provides more detail on the warning
17389	// being returned. For example, for warnings where there are no results
17390	// in a list request for a particular zone, this key might be scope and
17391	// the key value might be the zone name. Other examples might be a key
17392	// indicating a deprecated resource and a suggested replacement, or a
17393	// warning about invalid network settings (for example, if an instance
17394	// attempts to perform IP forwarding but is not enabled for IP
17395	// forwarding).
17396	Key string `json:"key,omitempty"`
17397
17398	// Value: [Output Only] A warning data value corresponding to the key.
17399	Value string `json:"value,omitempty"`
17400
17401	// ForceSendFields is a list of field names (e.g. "Key") to
17402	// unconditionally include in API requests. By default, fields with
17403	// empty values are omitted from API requests. However, any non-pointer,
17404	// non-interface field appearing in ForceSendFields will be sent to the
17405	// server regardless of whether the field is empty or not. This may be
17406	// used to include empty fields in Patch requests.
17407	ForceSendFields []string `json:"-"`
17408
17409	// NullFields is a list of field names (e.g. "Key") to include in API
17410	// requests with the JSON null value. By default, fields with empty
17411	// values are omitted from API requests. However, any field with an
17412	// empty value appearing in NullFields will be sent to the server as
17413	// null. It is an error if a field in this list has a non-empty value.
17414	// This may be used to include null fields in Patch requests.
17415	NullFields []string `json:"-"`
17416}
17417
17418func (s *RouterListWarningData) MarshalJSON() ([]byte, error) {
17419	type NoMethod RouterListWarningData
17420	raw := NoMethod(*s)
17421	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17422}
17423
17424type RouterStatus struct {
17425	// BestRoutes: Best routes for this router's network.
17426	BestRoutes []*Route `json:"bestRoutes,omitempty"`
17427
17428	// BestRoutesForRouter: Best routes learned by this router.
17429	BestRoutesForRouter []*Route `json:"bestRoutesForRouter,omitempty"`
17430
17431	BgpPeerStatus []*RouterStatusBgpPeerStatus `json:"bgpPeerStatus,omitempty"`
17432
17433	// Network: URI of the network to which this router belongs.
17434	Network string `json:"network,omitempty"`
17435
17436	// ForceSendFields is a list of field names (e.g. "BestRoutes") to
17437	// unconditionally include in API requests. By default, fields with
17438	// empty values are omitted from API requests. However, any non-pointer,
17439	// non-interface field appearing in ForceSendFields will be sent to the
17440	// server regardless of whether the field is empty or not. This may be
17441	// used to include empty fields in Patch requests.
17442	ForceSendFields []string `json:"-"`
17443
17444	// NullFields is a list of field names (e.g. "BestRoutes") to include in
17445	// API requests with the JSON null value. By default, fields with empty
17446	// values are omitted from API requests. However, any field with an
17447	// empty value appearing in NullFields will be sent to the server as
17448	// null. It is an error if a field in this list has a non-empty value.
17449	// This may be used to include null fields in Patch requests.
17450	NullFields []string `json:"-"`
17451}
17452
17453func (s *RouterStatus) MarshalJSON() ([]byte, error) {
17454	type NoMethod RouterStatus
17455	raw := NoMethod(*s)
17456	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17457}
17458
17459type RouterStatusBgpPeerStatus struct {
17460	// AdvertisedRoutes: Routes that were advertised to the remote BGP peer
17461	AdvertisedRoutes []*Route `json:"advertisedRoutes,omitempty"`
17462
17463	// IpAddress: IP address of the local BGP interface.
17464	IpAddress string `json:"ipAddress,omitempty"`
17465
17466	// LinkedVpnTunnel: URL of the VPN tunnel that this BGP peer controls.
17467	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
17468
17469	// Name: Name of this BGP peer. Unique within the Routers resource.
17470	Name string `json:"name,omitempty"`
17471
17472	// NumLearnedRoutes: Number of routes learned from the remote BGP Peer.
17473	NumLearnedRoutes int64 `json:"numLearnedRoutes,omitempty"`
17474
17475	// PeerIpAddress: IP address of the remote BGP interface.
17476	PeerIpAddress string `json:"peerIpAddress,omitempty"`
17477
17478	// State: BGP state as specified in RFC1771.
17479	State string `json:"state,omitempty"`
17480
17481	// Status: Status of the BGP peer: {UP, DOWN}
17482	//
17483	// Possible values:
17484	//   "DOWN"
17485	//   "UNKNOWN"
17486	//   "UP"
17487	Status string `json:"status,omitempty"`
17488
17489	// Uptime: Time this session has been up. Format: 14 years, 51 weeks, 6
17490	// days, 23 hours, 59 minutes, 59 seconds
17491	Uptime string `json:"uptime,omitempty"`
17492
17493	// UptimeSeconds: Time this session has been up, in seconds. Format: 145
17494	UptimeSeconds string `json:"uptimeSeconds,omitempty"`
17495
17496	// ForceSendFields is a list of field names (e.g. "AdvertisedRoutes") to
17497	// unconditionally include in API requests. By default, fields with
17498	// empty values are omitted from API requests. However, any non-pointer,
17499	// non-interface field appearing in ForceSendFields will be sent to the
17500	// server regardless of whether the field is empty or not. This may be
17501	// used to include empty fields in Patch requests.
17502	ForceSendFields []string `json:"-"`
17503
17504	// NullFields is a list of field names (e.g. "AdvertisedRoutes") to
17505	// include in API requests with the JSON null value. By default, fields
17506	// with empty values are omitted from API requests. However, any field
17507	// with an empty value appearing in NullFields will be sent to the
17508	// server as null. It is an error if a field in this list has a
17509	// non-empty value. This may be used to include null fields in Patch
17510	// requests.
17511	NullFields []string `json:"-"`
17512}
17513
17514func (s *RouterStatusBgpPeerStatus) MarshalJSON() ([]byte, error) {
17515	type NoMethod RouterStatusBgpPeerStatus
17516	raw := NoMethod(*s)
17517	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17518}
17519
17520type RouterStatusResponse struct {
17521	// Kind: Type of resource.
17522	Kind string `json:"kind,omitempty"`
17523
17524	Result *RouterStatus `json:"result,omitempty"`
17525
17526	// ServerResponse contains the HTTP response code and headers from the
17527	// server.
17528	googleapi.ServerResponse `json:"-"`
17529
17530	// ForceSendFields is a list of field names (e.g. "Kind") to
17531	// unconditionally include in API requests. By default, fields with
17532	// empty values are omitted from API requests. However, any non-pointer,
17533	// non-interface field appearing in ForceSendFields will be sent to the
17534	// server regardless of whether the field is empty or not. This may be
17535	// used to include empty fields in Patch requests.
17536	ForceSendFields []string `json:"-"`
17537
17538	// NullFields is a list of field names (e.g. "Kind") to include in API
17539	// requests with the JSON null value. By default, fields with empty
17540	// values are omitted from API requests. However, any field with an
17541	// empty value appearing in NullFields will be sent to the server as
17542	// null. It is an error if a field in this list has a non-empty value.
17543	// This may be used to include null fields in Patch requests.
17544	NullFields []string `json:"-"`
17545}
17546
17547func (s *RouterStatusResponse) MarshalJSON() ([]byte, error) {
17548	type NoMethod RouterStatusResponse
17549	raw := NoMethod(*s)
17550	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17551}
17552
17553type RoutersPreviewResponse struct {
17554	// Resource: Preview of given router.
17555	Resource *Router `json:"resource,omitempty"`
17556
17557	// ServerResponse contains the HTTP response code and headers from the
17558	// server.
17559	googleapi.ServerResponse `json:"-"`
17560
17561	// ForceSendFields is a list of field names (e.g. "Resource") to
17562	// unconditionally include in API requests. By default, fields with
17563	// empty values are omitted from API requests. However, any non-pointer,
17564	// non-interface field appearing in ForceSendFields will be sent to the
17565	// server regardless of whether the field is empty or not. This may be
17566	// used to include empty fields in Patch requests.
17567	ForceSendFields []string `json:"-"`
17568
17569	// NullFields is a list of field names (e.g. "Resource") to include in
17570	// API requests with the JSON null value. By default, fields with empty
17571	// values are omitted from API requests. However, any field with an
17572	// empty value appearing in NullFields will be sent to the server as
17573	// null. It is an error if a field in this list has a non-empty value.
17574	// This may be used to include null fields in Patch requests.
17575	NullFields []string `json:"-"`
17576}
17577
17578func (s *RoutersPreviewResponse) MarshalJSON() ([]byte, error) {
17579	type NoMethod RoutersPreviewResponse
17580	raw := NoMethod(*s)
17581	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17582}
17583
17584type RoutersScopedList struct {
17585	// Routers: List of routers contained in this scope.
17586	Routers []*Router `json:"routers,omitempty"`
17587
17588	// Warning: Informational warning which replaces the list of routers
17589	// when the list is empty.
17590	Warning *RoutersScopedListWarning `json:"warning,omitempty"`
17591
17592	// ForceSendFields is a list of field names (e.g. "Routers") to
17593	// unconditionally include in API requests. By default, fields with
17594	// empty values are omitted from API requests. However, any non-pointer,
17595	// non-interface field appearing in ForceSendFields will be sent to the
17596	// server regardless of whether the field is empty or not. This may be
17597	// used to include empty fields in Patch requests.
17598	ForceSendFields []string `json:"-"`
17599
17600	// NullFields is a list of field names (e.g. "Routers") to include in
17601	// API requests with the JSON null value. By default, fields with empty
17602	// values are omitted from API requests. However, any field with an
17603	// empty value appearing in NullFields will be sent to the server as
17604	// null. It is an error if a field in this list has a non-empty value.
17605	// This may be used to include null fields in Patch requests.
17606	NullFields []string `json:"-"`
17607}
17608
17609func (s *RoutersScopedList) MarshalJSON() ([]byte, error) {
17610	type NoMethod RoutersScopedList
17611	raw := NoMethod(*s)
17612	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17613}
17614
17615// RoutersScopedListWarning: Informational warning which replaces the
17616// list of routers when the list is empty.
17617type RoutersScopedListWarning struct {
17618	// Code: [Output Only] A warning code, if applicable. For example,
17619	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17620	// the response.
17621	//
17622	// Possible values:
17623	//   "CLEANUP_FAILED"
17624	//   "DEPRECATED_RESOURCE_USED"
17625	//   "DEPRECATED_TYPE_USED"
17626	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17627	//   "EXPERIMENTAL_TYPE_USED"
17628	//   "EXTERNAL_API_WARNING"
17629	//   "FIELD_VALUE_OVERRIDEN"
17630	//   "INJECTED_KERNELS_DEPRECATED"
17631	//   "MISSING_TYPE_DEPENDENCY"
17632	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17633	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17634	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17635	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17636	//   "NEXT_HOP_NOT_RUNNING"
17637	//   "NOT_CRITICAL_ERROR"
17638	//   "NO_RESULTS_ON_PAGE"
17639	//   "REQUIRED_TOS_AGREEMENT"
17640	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17641	//   "RESOURCE_NOT_DELETED"
17642	//   "SCHEMA_VALIDATION_IGNORED"
17643	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17644	//   "UNDECLARED_PROPERTIES"
17645	//   "UNREACHABLE"
17646	Code string `json:"code,omitempty"`
17647
17648	// Data: [Output Only] Metadata about this warning in key: value format.
17649	// For example:
17650	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17651	Data []*RoutersScopedListWarningData `json:"data,omitempty"`
17652
17653	// Message: [Output Only] A human-readable description of the warning
17654	// code.
17655	Message string `json:"message,omitempty"`
17656
17657	// ForceSendFields is a list of field names (e.g. "Code") to
17658	// unconditionally include in API requests. By default, fields with
17659	// empty values are omitted from API requests. However, any non-pointer,
17660	// non-interface field appearing in ForceSendFields will be sent to the
17661	// server regardless of whether the field is empty or not. This may be
17662	// used to include empty fields in Patch requests.
17663	ForceSendFields []string `json:"-"`
17664
17665	// NullFields is a list of field names (e.g. "Code") to include in API
17666	// requests with the JSON null value. By default, fields with empty
17667	// values are omitted from API requests. However, any field with an
17668	// empty value appearing in NullFields will be sent to the server as
17669	// null. It is an error if a field in this list has a non-empty value.
17670	// This may be used to include null fields in Patch requests.
17671	NullFields []string `json:"-"`
17672}
17673
17674func (s *RoutersScopedListWarning) MarshalJSON() ([]byte, error) {
17675	type NoMethod RoutersScopedListWarning
17676	raw := NoMethod(*s)
17677	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17678}
17679
17680type RoutersScopedListWarningData struct {
17681	// Key: [Output Only] A key that provides more detail on the warning
17682	// being returned. For example, for warnings where there are no results
17683	// in a list request for a particular zone, this key might be scope and
17684	// the key value might be the zone name. Other examples might be a key
17685	// indicating a deprecated resource and a suggested replacement, or a
17686	// warning about invalid network settings (for example, if an instance
17687	// attempts to perform IP forwarding but is not enabled for IP
17688	// forwarding).
17689	Key string `json:"key,omitempty"`
17690
17691	// Value: [Output Only] A warning data value corresponding to the key.
17692	Value string `json:"value,omitempty"`
17693
17694	// ForceSendFields is a list of field names (e.g. "Key") to
17695	// unconditionally include in API requests. By default, fields with
17696	// empty values are omitted from API requests. However, any non-pointer,
17697	// non-interface field appearing in ForceSendFields will be sent to the
17698	// server regardless of whether the field is empty or not. This may be
17699	// used to include empty fields in Patch requests.
17700	ForceSendFields []string `json:"-"`
17701
17702	// NullFields is a list of field names (e.g. "Key") to include in API
17703	// requests with the JSON null value. By default, fields with empty
17704	// values are omitted from API requests. However, any field with an
17705	// empty value appearing in NullFields will be sent to the server as
17706	// null. It is an error if a field in this list has a non-empty value.
17707	// This may be used to include null fields in Patch requests.
17708	NullFields []string `json:"-"`
17709}
17710
17711func (s *RoutersScopedListWarningData) MarshalJSON() ([]byte, error) {
17712	type NoMethod RoutersScopedListWarningData
17713	raw := NoMethod(*s)
17714	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17715}
17716
17717type SSLHealthCheck struct {
17718	// Port: The TCP port number for the health check request. The default
17719	// value is 443. Valid values are 1 through 65535.
17720	Port int64 `json:"port,omitempty"`
17721
17722	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
17723	// both port and port_name are defined, port takes precedence.
17724	PortName string `json:"portName,omitempty"`
17725
17726	// ProxyHeader: Specifies the type of proxy header to append before
17727	// sending data to the backend, either NONE or PROXY_V1. The default is
17728	// NONE.
17729	//
17730	// Possible values:
17731	//   "NONE"
17732	//   "PROXY_V1"
17733	ProxyHeader string `json:"proxyHeader,omitempty"`
17734
17735	// Request: The application data to send once the SSL connection has
17736	// been established (default value is empty). If both request and
17737	// response are empty, the connection establishment alone will indicate
17738	// health. The request data can only be ASCII.
17739	Request string `json:"request,omitempty"`
17740
17741	// Response: The bytes to match against the beginning of the response
17742	// data. If left empty (the default value), any response will indicate
17743	// health. The response data can only be ASCII.
17744	Response string `json:"response,omitempty"`
17745
17746	// ForceSendFields is a list of field names (e.g. "Port") to
17747	// unconditionally include in API requests. By default, fields with
17748	// empty values are omitted from API requests. However, any non-pointer,
17749	// non-interface field appearing in ForceSendFields will be sent to the
17750	// server regardless of whether the field is empty or not. This may be
17751	// used to include empty fields in Patch requests.
17752	ForceSendFields []string `json:"-"`
17753
17754	// NullFields is a list of field names (e.g. "Port") to include in API
17755	// requests with the JSON null value. By default, fields with empty
17756	// values are omitted from API requests. However, any field with an
17757	// empty value appearing in NullFields will be sent to the server as
17758	// null. It is an error if a field in this list has a non-empty value.
17759	// This may be used to include null fields in Patch requests.
17760	NullFields []string `json:"-"`
17761}
17762
17763func (s *SSLHealthCheck) MarshalJSON() ([]byte, error) {
17764	type NoMethod SSLHealthCheck
17765	raw := NoMethod(*s)
17766	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17767}
17768
17769// Scheduling: Sets the scheduling options for an Instance.
17770type Scheduling struct {
17771	// AutomaticRestart: Specifies whether the instance should be
17772	// automatically restarted if it is terminated by Compute Engine (not
17773	// terminated by a user). You can only set the automatic restart option
17774	// for standard instances. Preemptible instances cannot be automatically
17775	// restarted.
17776	//
17777	// By default, this is set to true so an instance is automatically
17778	// restarted if it is terminated by Compute Engine.
17779	AutomaticRestart *bool `json:"automaticRestart,omitempty"`
17780
17781	// OnHostMaintenance: Defines the maintenance behavior for this
17782	// instance. For standard instances, the default behavior is MIGRATE.
17783	// For preemptible instances, the default and only possible behavior is
17784	// TERMINATE. For more information, see Setting Instance Scheduling
17785	// Options.
17786	//
17787	// Possible values:
17788	//   "MIGRATE"
17789	//   "TERMINATE"
17790	OnHostMaintenance string `json:"onHostMaintenance,omitempty"`
17791
17792	// Preemptible: Defines whether the instance is preemptible. This can
17793	// only be set during instance creation, it cannot be set or changed
17794	// after the instance has been created.
17795	Preemptible bool `json:"preemptible,omitempty"`
17796
17797	// ForceSendFields is a list of field names (e.g. "AutomaticRestart") to
17798	// unconditionally include in API requests. By default, fields with
17799	// empty values are omitted from API requests. However, any non-pointer,
17800	// non-interface field appearing in ForceSendFields will be sent to the
17801	// server regardless of whether the field is empty or not. This may be
17802	// used to include empty fields in Patch requests.
17803	ForceSendFields []string `json:"-"`
17804
17805	// NullFields is a list of field names (e.g. "AutomaticRestart") to
17806	// include in API requests with the JSON null value. By default, fields
17807	// with empty values are omitted from API requests. However, any field
17808	// with an empty value appearing in NullFields will be sent to the
17809	// server as null. It is an error if a field in this list has a
17810	// non-empty value. This may be used to include null fields in Patch
17811	// requests.
17812	NullFields []string `json:"-"`
17813}
17814
17815func (s *Scheduling) MarshalJSON() ([]byte, error) {
17816	type NoMethod Scheduling
17817	raw := NoMethod(*s)
17818	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17819}
17820
17821// SerialPortOutput: An instance's serial console output.
17822type SerialPortOutput struct {
17823	// Contents: [Output Only] The contents of the console output.
17824	Contents string `json:"contents,omitempty"`
17825
17826	// Kind: [Output Only] Type of the resource. Always
17827	// compute#serialPortOutput for serial port output.
17828	Kind string `json:"kind,omitempty"`
17829
17830	// Next: [Output Only] The position of the next byte of content from the
17831	// serial console output. Use this value in the next request as the
17832	// start parameter.
17833	Next int64 `json:"next,omitempty,string"`
17834
17835	// SelfLink: [Output Only] Server-defined URL for this resource.
17836	SelfLink string `json:"selfLink,omitempty"`
17837
17838	// Start: The starting byte position of the output that was returned.
17839	// This should match the start parameter sent with the request. If the
17840	// serial console output exceeds the size of the buffer, older output
17841	// will be overwritten by newer content and the start values will be
17842	// mismatched.
17843	Start int64 `json:"start,omitempty,string"`
17844
17845	// ServerResponse contains the HTTP response code and headers from the
17846	// server.
17847	googleapi.ServerResponse `json:"-"`
17848
17849	// ForceSendFields is a list of field names (e.g. "Contents") to
17850	// unconditionally include in API requests. By default, fields with
17851	// empty values are omitted from API requests. However, any non-pointer,
17852	// non-interface field appearing in ForceSendFields will be sent to the
17853	// server regardless of whether the field is empty or not. This may be
17854	// used to include empty fields in Patch requests.
17855	ForceSendFields []string `json:"-"`
17856
17857	// NullFields is a list of field names (e.g. "Contents") to include in
17858	// API requests with the JSON null value. By default, fields with empty
17859	// values are omitted from API requests. However, any field with an
17860	// empty value appearing in NullFields will be sent to the server as
17861	// null. It is an error if a field in this list has a non-empty value.
17862	// This may be used to include null fields in Patch requests.
17863	NullFields []string `json:"-"`
17864}
17865
17866func (s *SerialPortOutput) MarshalJSON() ([]byte, error) {
17867	type NoMethod SerialPortOutput
17868	raw := NoMethod(*s)
17869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17870}
17871
17872// ServiceAccount: A service account.
17873type ServiceAccount struct {
17874	// Email: Email address of the service account.
17875	Email string `json:"email,omitempty"`
17876
17877	// Scopes: The list of scopes to be made available for this service
17878	// account.
17879	Scopes []string `json:"scopes,omitempty"`
17880
17881	// ForceSendFields is a list of field names (e.g. "Email") to
17882	// unconditionally include in API requests. By default, fields with
17883	// empty values are omitted from API requests. However, any non-pointer,
17884	// non-interface field appearing in ForceSendFields will be sent to the
17885	// server regardless of whether the field is empty or not. This may be
17886	// used to include empty fields in Patch requests.
17887	ForceSendFields []string `json:"-"`
17888
17889	// NullFields is a list of field names (e.g. "Email") to include in API
17890	// requests with the JSON null value. By default, fields with empty
17891	// values are omitted from API requests. However, any field with an
17892	// empty value appearing in NullFields will be sent to the server as
17893	// null. It is an error if a field in this list has a non-empty value.
17894	// This may be used to include null fields in Patch requests.
17895	NullFields []string `json:"-"`
17896}
17897
17898func (s *ServiceAccount) MarshalJSON() ([]byte, error) {
17899	type NoMethod ServiceAccount
17900	raw := NoMethod(*s)
17901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17902}
17903
17904// Snapshot: A persistent disk snapshot resource. (== resource_for
17905// beta.snapshots ==) (== resource_for v1.snapshots ==)
17906type Snapshot struct {
17907	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
17908	// format.
17909	CreationTimestamp string `json:"creationTimestamp,omitempty"`
17910
17911	// Description: An optional description of this resource. Provide this
17912	// property when you create the resource.
17913	Description string `json:"description,omitempty"`
17914
17915	// DiskSizeGb: [Output Only] Size of the snapshot, specified in GB.
17916	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
17917
17918	// Id: [Output Only] The unique identifier for the resource. This
17919	// identifier is defined by the server.
17920	Id uint64 `json:"id,omitempty,string"`
17921
17922	// Kind: [Output Only] Type of the resource. Always compute#snapshot for
17923	// Snapshot resources.
17924	Kind string `json:"kind,omitempty"`
17925
17926	// LabelFingerprint: A fingerprint for the labels being applied to this
17927	// snapshot, which is essentially a hash of the labels set used for
17928	// optimistic locking. The fingerprint is initially generated by Compute
17929	// Engine and changes after every request to modify or update labels.
17930	// You must always provide an up-to-date fingerprint hash in order to
17931	// update or change labels.
17932	//
17933	// To see the latest fingerprint, make a get() request to retrieve a
17934	// snapshot.
17935	LabelFingerprint string `json:"labelFingerprint,omitempty"`
17936
17937	// Labels: Labels to apply to this snapshot. These can be later modified
17938	// by the setLabels method. Label values may be empty.
17939	Labels map[string]string `json:"labels,omitempty"`
17940
17941	// Licenses: [Output Only] A list of public visible licenses that apply
17942	// to this snapshot. This can be because the original image had licenses
17943	// attached (such as a Windows image).
17944	Licenses []string `json:"licenses,omitempty"`
17945
17946	// Name: Name of the resource; provided by the client when the resource
17947	// is created. The name must be 1-63 characters long, and comply with
17948	// RFC1035. Specifically, the name must be 1-63 characters long and
17949	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
17950	// the first character must be a lowercase letter, and all following
17951	// characters must be a dash, lowercase letter, or digit, except the
17952	// last character, which cannot be a dash.
17953	Name string `json:"name,omitempty"`
17954
17955	// SelfLink: [Output Only] Server-defined URL for the resource.
17956	SelfLink string `json:"selfLink,omitempty"`
17957
17958	// SnapshotEncryptionKey: Encrypts the snapshot using a
17959	// customer-supplied encryption key.
17960	//
17961	// After you encrypt a snapshot using a customer-supplied key, you must
17962	// provide the same key if you use the image later For example, you must
17963	// provide the encryption key when you create a disk from the encrypted
17964	// snapshot in a future request.
17965	//
17966	// Customer-supplied encryption keys do not protect access to metadata
17967	// of the disk.
17968	//
17969	// If you do not provide an encryption key when creating the snapshot,
17970	// then the snapshot will be encrypted using an automatically generated
17971	// key and you do not need to provide a key to use the snapshot later.
17972	SnapshotEncryptionKey *CustomerEncryptionKey `json:"snapshotEncryptionKey,omitempty"`
17973
17974	// SourceDisk: [Output Only] The source disk used to create this
17975	// snapshot.
17976	SourceDisk string `json:"sourceDisk,omitempty"`
17977
17978	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
17979	// source disk. Required if the source disk is protected by a
17980	// customer-supplied encryption key.
17981	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
17982
17983	// SourceDiskId: [Output Only] The ID value of the disk used to create
17984	// this snapshot. This value may be used to determine whether the
17985	// snapshot was taken from the current or a previous instance of a given
17986	// disk name.
17987	SourceDiskId string `json:"sourceDiskId,omitempty"`
17988
17989	// Status: [Output Only] The status of the snapshot. This can be
17990	// CREATING, DELETING, FAILED, READY, or UPLOADING.
17991	//
17992	// Possible values:
17993	//   "CREATING"
17994	//   "DELETING"
17995	//   "FAILED"
17996	//   "READY"
17997	//   "UPLOADING"
17998	Status string `json:"status,omitempty"`
17999
18000	// StorageBytes: [Output Only] A size of the storage used by the
18001	// snapshot. As snapshots share storage, this number is expected to
18002	// change with snapshot creation/deletion.
18003	StorageBytes int64 `json:"storageBytes,omitempty,string"`
18004
18005	// StorageBytesStatus: [Output Only] An indicator whether storageBytes
18006	// is in a stable state or it is being adjusted as a result of shared
18007	// storage reallocation. This status can either be UPDATING, meaning the
18008	// size of the snapshot is being updated, or UP_TO_DATE, meaning the
18009	// size of the snapshot is up-to-date.
18010	//
18011	// Possible values:
18012	//   "UPDATING"
18013	//   "UP_TO_DATE"
18014	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
18015
18016	// ServerResponse contains the HTTP response code and headers from the
18017	// server.
18018	googleapi.ServerResponse `json:"-"`
18019
18020	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
18021	// to unconditionally include in API requests. By default, fields with
18022	// empty values are omitted from API requests. However, any non-pointer,
18023	// non-interface field appearing in ForceSendFields will be sent to the
18024	// server regardless of whether the field is empty or not. This may be
18025	// used to include empty fields in Patch requests.
18026	ForceSendFields []string `json:"-"`
18027
18028	// NullFields is a list of field names (e.g. "CreationTimestamp") to
18029	// include in API requests with the JSON null value. By default, fields
18030	// with empty values are omitted from API requests. However, any field
18031	// with an empty value appearing in NullFields will be sent to the
18032	// server as null. It is an error if a field in this list has a
18033	// non-empty value. This may be used to include null fields in Patch
18034	// requests.
18035	NullFields []string `json:"-"`
18036}
18037
18038func (s *Snapshot) MarshalJSON() ([]byte, error) {
18039	type NoMethod Snapshot
18040	raw := NoMethod(*s)
18041	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18042}
18043
18044// SnapshotList: Contains a list of Snapshot resources.
18045type SnapshotList struct {
18046	// Id: [Output Only] Unique identifier for the resource; defined by the
18047	// server.
18048	Id string `json:"id,omitempty"`
18049
18050	// Items: A list of Snapshot resources.
18051	Items []*Snapshot `json:"items,omitempty"`
18052
18053	// Kind: Type of resource.
18054	Kind string `json:"kind,omitempty"`
18055
18056	// NextPageToken: [Output Only] This token allows you to get the next
18057	// page of results for list requests. If the number of results is larger
18058	// than maxResults, use the nextPageToken as a value for the query
18059	// parameter pageToken in the next list request. Subsequent list
18060	// requests will have their own nextPageToken to continue paging through
18061	// the results.
18062	NextPageToken string `json:"nextPageToken,omitempty"`
18063
18064	// SelfLink: [Output Only] Server-defined URL for this resource.
18065	SelfLink string `json:"selfLink,omitempty"`
18066
18067	// Warning: [Output Only] Informational warning message.
18068	Warning *SnapshotListWarning `json:"warning,omitempty"`
18069
18070	// ServerResponse contains the HTTP response code and headers from the
18071	// server.
18072	googleapi.ServerResponse `json:"-"`
18073
18074	// ForceSendFields is a list of field names (e.g. "Id") to
18075	// unconditionally include in API requests. By default, fields with
18076	// empty values are omitted from API requests. However, any non-pointer,
18077	// non-interface field appearing in ForceSendFields will be sent to the
18078	// server regardless of whether the field is empty or not. This may be
18079	// used to include empty fields in Patch requests.
18080	ForceSendFields []string `json:"-"`
18081
18082	// NullFields is a list of field names (e.g. "Id") to include in API
18083	// requests with the JSON null value. By default, fields with empty
18084	// values are omitted from API requests. However, any field with an
18085	// empty value appearing in NullFields will be sent to the server as
18086	// null. It is an error if a field in this list has a non-empty value.
18087	// This may be used to include null fields in Patch requests.
18088	NullFields []string `json:"-"`
18089}
18090
18091func (s *SnapshotList) MarshalJSON() ([]byte, error) {
18092	type NoMethod SnapshotList
18093	raw := NoMethod(*s)
18094	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18095}
18096
18097// SnapshotListWarning: [Output Only] Informational warning message.
18098type SnapshotListWarning struct {
18099	// Code: [Output Only] A warning code, if applicable. For example,
18100	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18101	// the response.
18102	//
18103	// Possible values:
18104	//   "CLEANUP_FAILED"
18105	//   "DEPRECATED_RESOURCE_USED"
18106	//   "DEPRECATED_TYPE_USED"
18107	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18108	//   "EXPERIMENTAL_TYPE_USED"
18109	//   "EXTERNAL_API_WARNING"
18110	//   "FIELD_VALUE_OVERRIDEN"
18111	//   "INJECTED_KERNELS_DEPRECATED"
18112	//   "MISSING_TYPE_DEPENDENCY"
18113	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18114	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18115	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18116	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18117	//   "NEXT_HOP_NOT_RUNNING"
18118	//   "NOT_CRITICAL_ERROR"
18119	//   "NO_RESULTS_ON_PAGE"
18120	//   "REQUIRED_TOS_AGREEMENT"
18121	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18122	//   "RESOURCE_NOT_DELETED"
18123	//   "SCHEMA_VALIDATION_IGNORED"
18124	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18125	//   "UNDECLARED_PROPERTIES"
18126	//   "UNREACHABLE"
18127	Code string `json:"code,omitempty"`
18128
18129	// Data: [Output Only] Metadata about this warning in key: value format.
18130	// For example:
18131	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18132	Data []*SnapshotListWarningData `json:"data,omitempty"`
18133
18134	// Message: [Output Only] A human-readable description of the warning
18135	// code.
18136	Message string `json:"message,omitempty"`
18137
18138	// ForceSendFields is a list of field names (e.g. "Code") to
18139	// unconditionally include in API requests. By default, fields with
18140	// empty values are omitted from API requests. However, any non-pointer,
18141	// non-interface field appearing in ForceSendFields will be sent to the
18142	// server regardless of whether the field is empty or not. This may be
18143	// used to include empty fields in Patch requests.
18144	ForceSendFields []string `json:"-"`
18145
18146	// NullFields is a list of field names (e.g. "Code") to include in API
18147	// requests with the JSON null value. By default, fields with empty
18148	// values are omitted from API requests. However, any field with an
18149	// empty value appearing in NullFields will be sent to the server as
18150	// null. It is an error if a field in this list has a non-empty value.
18151	// This may be used to include null fields in Patch requests.
18152	NullFields []string `json:"-"`
18153}
18154
18155func (s *SnapshotListWarning) MarshalJSON() ([]byte, error) {
18156	type NoMethod SnapshotListWarning
18157	raw := NoMethod(*s)
18158	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18159}
18160
18161type SnapshotListWarningData struct {
18162	// Key: [Output Only] A key that provides more detail on the warning
18163	// being returned. For example, for warnings where there are no results
18164	// in a list request for a particular zone, this key might be scope and
18165	// the key value might be the zone name. Other examples might be a key
18166	// indicating a deprecated resource and a suggested replacement, or a
18167	// warning about invalid network settings (for example, if an instance
18168	// attempts to perform IP forwarding but is not enabled for IP
18169	// forwarding).
18170	Key string `json:"key,omitempty"`
18171
18172	// Value: [Output Only] A warning data value corresponding to the key.
18173	Value string `json:"value,omitempty"`
18174
18175	// ForceSendFields is a list of field names (e.g. "Key") to
18176	// unconditionally include in API requests. By default, fields with
18177	// empty values are omitted from API requests. However, any non-pointer,
18178	// non-interface field appearing in ForceSendFields will be sent to the
18179	// server regardless of whether the field is empty or not. This may be
18180	// used to include empty fields in Patch requests.
18181	ForceSendFields []string `json:"-"`
18182
18183	// NullFields is a list of field names (e.g. "Key") to include in API
18184	// requests with the JSON null value. By default, fields with empty
18185	// values are omitted from API requests. However, any field with an
18186	// empty value appearing in NullFields will be sent to the server as
18187	// null. It is an error if a field in this list has a non-empty value.
18188	// This may be used to include null fields in Patch requests.
18189	NullFields []string `json:"-"`
18190}
18191
18192func (s *SnapshotListWarningData) MarshalJSON() ([]byte, error) {
18193	type NoMethod SnapshotListWarningData
18194	raw := NoMethod(*s)
18195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18196}
18197
18198// SslCertificate: An SslCertificate resource. This resource provides a
18199// mechanism to upload an SSL key and certificate to the load balancer
18200// to serve secure connections from the user. (== resource_for
18201// beta.sslCertificates ==) (== resource_for v1.sslCertificates ==)
18202type SslCertificate struct {
18203	// Certificate: A local certificate file. The certificate must be in PEM
18204	// format. The certificate chain must be no greater than 5 certs long.
18205	// The chain must include at least one intermediate cert.
18206	Certificate string `json:"certificate,omitempty"`
18207
18208	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
18209	// format.
18210	CreationTimestamp string `json:"creationTimestamp,omitempty"`
18211
18212	// Description: An optional description of this resource. Provide this
18213	// property when you create the resource.
18214	Description string `json:"description,omitempty"`
18215
18216	// Id: [Output Only] The unique identifier for the resource. This
18217	// identifier is defined by the server.
18218	Id uint64 `json:"id,omitempty,string"`
18219
18220	// Kind: [Output Only] Type of the resource. Always
18221	// compute#sslCertificate for SSL certificates.
18222	Kind string `json:"kind,omitempty"`
18223
18224	// Name: Name of the resource. Provided by the client when the resource
18225	// is created. The name must be 1-63 characters long, and comply with
18226	// RFC1035. Specifically, the name must be 1-63 characters long and
18227	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
18228	// the first character must be a lowercase letter, and all following
18229	// characters must be a dash, lowercase letter, or digit, except the
18230	// last character, which cannot be a dash.
18231	Name string `json:"name,omitempty"`
18232
18233	// PrivateKey: A write-only private key in PEM format. Only insert
18234	// requests will include this field.
18235	PrivateKey string `json:"privateKey,omitempty"`
18236
18237	// SelfLink: [Output only] Server-defined URL for the resource.
18238	SelfLink string `json:"selfLink,omitempty"`
18239
18240	// ServerResponse contains the HTTP response code and headers from the
18241	// server.
18242	googleapi.ServerResponse `json:"-"`
18243
18244	// ForceSendFields is a list of field names (e.g. "Certificate") to
18245	// unconditionally include in API requests. By default, fields with
18246	// empty values are omitted from API requests. However, any non-pointer,
18247	// non-interface field appearing in ForceSendFields will be sent to the
18248	// server regardless of whether the field is empty or not. This may be
18249	// used to include empty fields in Patch requests.
18250	ForceSendFields []string `json:"-"`
18251
18252	// NullFields is a list of field names (e.g. "Certificate") to include
18253	// in API requests with the JSON null value. By default, fields with
18254	// empty values are omitted from API requests. However, any field with
18255	// an empty value appearing in NullFields will be sent to the server as
18256	// null. It is an error if a field in this list has a non-empty value.
18257	// This may be used to include null fields in Patch requests.
18258	NullFields []string `json:"-"`
18259}
18260
18261func (s *SslCertificate) MarshalJSON() ([]byte, error) {
18262	type NoMethod SslCertificate
18263	raw := NoMethod(*s)
18264	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18265}
18266
18267// SslCertificateList: Contains a list of SslCertificate resources.
18268type SslCertificateList struct {
18269	// Id: [Output Only] Unique identifier for the resource; defined by the
18270	// server.
18271	Id string `json:"id,omitempty"`
18272
18273	// Items: A list of SslCertificate resources.
18274	Items []*SslCertificate `json:"items,omitempty"`
18275
18276	// Kind: Type of resource.
18277	Kind string `json:"kind,omitempty"`
18278
18279	// NextPageToken: [Output Only] This token allows you to get the next
18280	// page of results for list requests. If the number of results is larger
18281	// than maxResults, use the nextPageToken as a value for the query
18282	// parameter pageToken in the next list request. Subsequent list
18283	// requests will have their own nextPageToken to continue paging through
18284	// the results.
18285	NextPageToken string `json:"nextPageToken,omitempty"`
18286
18287	// SelfLink: [Output Only] Server-defined URL for this resource.
18288	SelfLink string `json:"selfLink,omitempty"`
18289
18290	// Warning: [Output Only] Informational warning message.
18291	Warning *SslCertificateListWarning `json:"warning,omitempty"`
18292
18293	// ServerResponse contains the HTTP response code and headers from the
18294	// server.
18295	googleapi.ServerResponse `json:"-"`
18296
18297	// ForceSendFields is a list of field names (e.g. "Id") to
18298	// unconditionally include in API requests. By default, fields with
18299	// empty values are omitted from API requests. However, any non-pointer,
18300	// non-interface field appearing in ForceSendFields will be sent to the
18301	// server regardless of whether the field is empty or not. This may be
18302	// used to include empty fields in Patch requests.
18303	ForceSendFields []string `json:"-"`
18304
18305	// NullFields is a list of field names (e.g. "Id") to include in API
18306	// requests with the JSON null value. By default, fields with empty
18307	// values are omitted from API requests. However, any field with an
18308	// empty value appearing in NullFields will be sent to the server as
18309	// null. It is an error if a field in this list has a non-empty value.
18310	// This may be used to include null fields in Patch requests.
18311	NullFields []string `json:"-"`
18312}
18313
18314func (s *SslCertificateList) MarshalJSON() ([]byte, error) {
18315	type NoMethod SslCertificateList
18316	raw := NoMethod(*s)
18317	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18318}
18319
18320// SslCertificateListWarning: [Output Only] Informational warning
18321// message.
18322type SslCertificateListWarning struct {
18323	// Code: [Output Only] A warning code, if applicable. For example,
18324	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18325	// the response.
18326	//
18327	// Possible values:
18328	//   "CLEANUP_FAILED"
18329	//   "DEPRECATED_RESOURCE_USED"
18330	//   "DEPRECATED_TYPE_USED"
18331	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18332	//   "EXPERIMENTAL_TYPE_USED"
18333	//   "EXTERNAL_API_WARNING"
18334	//   "FIELD_VALUE_OVERRIDEN"
18335	//   "INJECTED_KERNELS_DEPRECATED"
18336	//   "MISSING_TYPE_DEPENDENCY"
18337	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18338	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18339	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18340	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18341	//   "NEXT_HOP_NOT_RUNNING"
18342	//   "NOT_CRITICAL_ERROR"
18343	//   "NO_RESULTS_ON_PAGE"
18344	//   "REQUIRED_TOS_AGREEMENT"
18345	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18346	//   "RESOURCE_NOT_DELETED"
18347	//   "SCHEMA_VALIDATION_IGNORED"
18348	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18349	//   "UNDECLARED_PROPERTIES"
18350	//   "UNREACHABLE"
18351	Code string `json:"code,omitempty"`
18352
18353	// Data: [Output Only] Metadata about this warning in key: value format.
18354	// For example:
18355	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18356	Data []*SslCertificateListWarningData `json:"data,omitempty"`
18357
18358	// Message: [Output Only] A human-readable description of the warning
18359	// code.
18360	Message string `json:"message,omitempty"`
18361
18362	// ForceSendFields is a list of field names (e.g. "Code") to
18363	// unconditionally include in API requests. By default, fields with
18364	// empty values are omitted from API requests. However, any non-pointer,
18365	// non-interface field appearing in ForceSendFields will be sent to the
18366	// server regardless of whether the field is empty or not. This may be
18367	// used to include empty fields in Patch requests.
18368	ForceSendFields []string `json:"-"`
18369
18370	// NullFields is a list of field names (e.g. "Code") to include in API
18371	// requests with the JSON null value. By default, fields with empty
18372	// values are omitted from API requests. However, any field with an
18373	// empty value appearing in NullFields will be sent to the server as
18374	// null. It is an error if a field in this list has a non-empty value.
18375	// This may be used to include null fields in Patch requests.
18376	NullFields []string `json:"-"`
18377}
18378
18379func (s *SslCertificateListWarning) MarshalJSON() ([]byte, error) {
18380	type NoMethod SslCertificateListWarning
18381	raw := NoMethod(*s)
18382	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18383}
18384
18385type SslCertificateListWarningData struct {
18386	// Key: [Output Only] A key that provides more detail on the warning
18387	// being returned. For example, for warnings where there are no results
18388	// in a list request for a particular zone, this key might be scope and
18389	// the key value might be the zone name. Other examples might be a key
18390	// indicating a deprecated resource and a suggested replacement, or a
18391	// warning about invalid network settings (for example, if an instance
18392	// attempts to perform IP forwarding but is not enabled for IP
18393	// forwarding).
18394	Key string `json:"key,omitempty"`
18395
18396	// Value: [Output Only] A warning data value corresponding to the key.
18397	Value string `json:"value,omitempty"`
18398
18399	// ForceSendFields is a list of field names (e.g. "Key") to
18400	// unconditionally include in API requests. By default, fields with
18401	// empty values are omitted from API requests. However, any non-pointer,
18402	// non-interface field appearing in ForceSendFields will be sent to the
18403	// server regardless of whether the field is empty or not. This may be
18404	// used to include empty fields in Patch requests.
18405	ForceSendFields []string `json:"-"`
18406
18407	// NullFields is a list of field names (e.g. "Key") to include in API
18408	// requests with the JSON null value. By default, fields with empty
18409	// values are omitted from API requests. However, any field with an
18410	// empty value appearing in NullFields will be sent to the server as
18411	// null. It is an error if a field in this list has a non-empty value.
18412	// This may be used to include null fields in Patch requests.
18413	NullFields []string `json:"-"`
18414}
18415
18416func (s *SslCertificateListWarningData) MarshalJSON() ([]byte, error) {
18417	type NoMethod SslCertificateListWarningData
18418	raw := NoMethod(*s)
18419	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18420}
18421
18422// Subnetwork: A Subnetwork resource. (== resource_for beta.subnetworks
18423// ==) (== resource_for v1.subnetworks ==)
18424type Subnetwork struct {
18425	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
18426	// format.
18427	CreationTimestamp string `json:"creationTimestamp,omitempty"`
18428
18429	// Description: An optional description of this resource. Provide this
18430	// property when you create the resource. This field can be set only at
18431	// resource creation time.
18432	Description string `json:"description,omitempty"`
18433
18434	// GatewayAddress: [Output Only] The gateway address for default routes
18435	// to reach destination addresses outside this subnetwork.
18436	GatewayAddress string `json:"gatewayAddress,omitempty"`
18437
18438	// Id: [Output Only] The unique identifier for the resource. This
18439	// identifier is defined by the server.
18440	Id uint64 `json:"id,omitempty,string"`
18441
18442	// IpCidrRange: The range of internal addresses that are owned by this
18443	// subnetwork. Provide this property when you create the subnetwork. For
18444	// example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and
18445	// non-overlapping within a network. Only IPv4 is supported. This field
18446	// can be set only at resource creation time.
18447	IpCidrRange string `json:"ipCidrRange,omitempty"`
18448
18449	// Kind: [Output Only] Type of the resource. Always compute#subnetwork
18450	// for Subnetwork resources.
18451	Kind string `json:"kind,omitempty"`
18452
18453	// Name: The name of the resource, provided by the client when initially
18454	// creating the resource. The name must be 1-63 characters long, and
18455	// comply with RFC1035. Specifically, the name must be 1-63 characters
18456	// long and match the regular expression [a-z]([-a-z0-9]*[a-z0-9])?
18457	// which means the first character must be a lowercase letter, and all
18458	// following characters must be a dash, lowercase letter, or digit,
18459	// except the last character, which cannot be a dash.
18460	Name string `json:"name,omitempty"`
18461
18462	// Network: The URL of the network to which this subnetwork belongs,
18463	// provided by the client when initially creating the subnetwork. Only
18464	// networks that are in the distributed mode can have subnetworks. This
18465	// field can be set only at resource creation time.
18466	Network string `json:"network,omitempty"`
18467
18468	// PrivateIpGoogleAccess: Whether the VMs in this subnet can access
18469	// Google services without assigned external IP addresses. This field
18470	// can be both set at resource creation time and updated using
18471	// setPrivateIpGoogleAccess.
18472	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
18473
18474	// Region: URL of the region where the Subnetwork resides. This field
18475	// can be set only at resource creation time.
18476	Region string `json:"region,omitempty"`
18477
18478	// SecondaryIpRanges: An array of configurations for secondary IP ranges
18479	// for VM instances contained in this subnetwork. The primary IP of such
18480	// VM must belong to the primary ipCidrRange of the subnetwork. The
18481	// alias IPs may belong to either primary or secondary ranges.
18482	SecondaryIpRanges []*SubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
18483
18484	// SelfLink: [Output Only] Server-defined URL for the resource.
18485	SelfLink string `json:"selfLink,omitempty"`
18486
18487	// ServerResponse contains the HTTP response code and headers from the
18488	// server.
18489	googleapi.ServerResponse `json:"-"`
18490
18491	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
18492	// to unconditionally include in API requests. By default, fields with
18493	// empty values are omitted from API requests. However, any non-pointer,
18494	// non-interface field appearing in ForceSendFields will be sent to the
18495	// server regardless of whether the field is empty or not. This may be
18496	// used to include empty fields in Patch requests.
18497	ForceSendFields []string `json:"-"`
18498
18499	// NullFields is a list of field names (e.g. "CreationTimestamp") to
18500	// include in API requests with the JSON null value. By default, fields
18501	// with empty values are omitted from API requests. However, any field
18502	// with an empty value appearing in NullFields will be sent to the
18503	// server as null. It is an error if a field in this list has a
18504	// non-empty value. This may be used to include null fields in Patch
18505	// requests.
18506	NullFields []string `json:"-"`
18507}
18508
18509func (s *Subnetwork) MarshalJSON() ([]byte, error) {
18510	type NoMethod Subnetwork
18511	raw := NoMethod(*s)
18512	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18513}
18514
18515type SubnetworkAggregatedList struct {
18516	// Id: [Output Only] Unique identifier for the resource; defined by the
18517	// server.
18518	Id string `json:"id,omitempty"`
18519
18520	// Items: A list of SubnetworksScopedList resources.
18521	Items map[string]SubnetworksScopedList `json:"items,omitempty"`
18522
18523	// Kind: [Output Only] Type of resource. Always
18524	// compute#subnetworkAggregatedList for aggregated lists of subnetworks.
18525	Kind string `json:"kind,omitempty"`
18526
18527	// NextPageToken: [Output Only] This token allows you to get the next
18528	// page of results for list requests. If the number of results is larger
18529	// than maxResults, use the nextPageToken as a value for the query
18530	// parameter pageToken in the next list request. Subsequent list
18531	// requests will have their own nextPageToken to continue paging through
18532	// the results.
18533	NextPageToken string `json:"nextPageToken,omitempty"`
18534
18535	// SelfLink: [Output Only] Server-defined URL for this resource.
18536	SelfLink string `json:"selfLink,omitempty"`
18537
18538	// Warning: [Output Only] Informational warning message.
18539	Warning *SubnetworkAggregatedListWarning `json:"warning,omitempty"`
18540
18541	// ServerResponse contains the HTTP response code and headers from the
18542	// server.
18543	googleapi.ServerResponse `json:"-"`
18544
18545	// ForceSendFields is a list of field names (e.g. "Id") to
18546	// unconditionally include in API requests. By default, fields with
18547	// empty values are omitted from API requests. However, any non-pointer,
18548	// non-interface field appearing in ForceSendFields will be sent to the
18549	// server regardless of whether the field is empty or not. This may be
18550	// used to include empty fields in Patch requests.
18551	ForceSendFields []string `json:"-"`
18552
18553	// NullFields is a list of field names (e.g. "Id") to include in API
18554	// requests with the JSON null value. By default, fields with empty
18555	// values are omitted from API requests. However, any field with an
18556	// empty value appearing in NullFields will be sent to the server as
18557	// null. It is an error if a field in this list has a non-empty value.
18558	// This may be used to include null fields in Patch requests.
18559	NullFields []string `json:"-"`
18560}
18561
18562func (s *SubnetworkAggregatedList) MarshalJSON() ([]byte, error) {
18563	type NoMethod SubnetworkAggregatedList
18564	raw := NoMethod(*s)
18565	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18566}
18567
18568// SubnetworkAggregatedListWarning: [Output Only] Informational warning
18569// message.
18570type SubnetworkAggregatedListWarning struct {
18571	// Code: [Output Only] A warning code, if applicable. For example,
18572	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18573	// the response.
18574	//
18575	// Possible values:
18576	//   "CLEANUP_FAILED"
18577	//   "DEPRECATED_RESOURCE_USED"
18578	//   "DEPRECATED_TYPE_USED"
18579	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18580	//   "EXPERIMENTAL_TYPE_USED"
18581	//   "EXTERNAL_API_WARNING"
18582	//   "FIELD_VALUE_OVERRIDEN"
18583	//   "INJECTED_KERNELS_DEPRECATED"
18584	//   "MISSING_TYPE_DEPENDENCY"
18585	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18586	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18587	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18588	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18589	//   "NEXT_HOP_NOT_RUNNING"
18590	//   "NOT_CRITICAL_ERROR"
18591	//   "NO_RESULTS_ON_PAGE"
18592	//   "REQUIRED_TOS_AGREEMENT"
18593	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18594	//   "RESOURCE_NOT_DELETED"
18595	//   "SCHEMA_VALIDATION_IGNORED"
18596	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18597	//   "UNDECLARED_PROPERTIES"
18598	//   "UNREACHABLE"
18599	Code string `json:"code,omitempty"`
18600
18601	// Data: [Output Only] Metadata about this warning in key: value format.
18602	// For example:
18603	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18604	Data []*SubnetworkAggregatedListWarningData `json:"data,omitempty"`
18605
18606	// Message: [Output Only] A human-readable description of the warning
18607	// code.
18608	Message string `json:"message,omitempty"`
18609
18610	// ForceSendFields is a list of field names (e.g. "Code") to
18611	// unconditionally include in API requests. By default, fields with
18612	// empty values are omitted from API requests. However, any non-pointer,
18613	// non-interface field appearing in ForceSendFields will be sent to the
18614	// server regardless of whether the field is empty or not. This may be
18615	// used to include empty fields in Patch requests.
18616	ForceSendFields []string `json:"-"`
18617
18618	// NullFields is a list of field names (e.g. "Code") to include in API
18619	// requests with the JSON null value. By default, fields with empty
18620	// values are omitted from API requests. However, any field with an
18621	// empty value appearing in NullFields will be sent to the server as
18622	// null. It is an error if a field in this list has a non-empty value.
18623	// This may be used to include null fields in Patch requests.
18624	NullFields []string `json:"-"`
18625}
18626
18627func (s *SubnetworkAggregatedListWarning) MarshalJSON() ([]byte, error) {
18628	type NoMethod SubnetworkAggregatedListWarning
18629	raw := NoMethod(*s)
18630	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18631}
18632
18633type SubnetworkAggregatedListWarningData struct {
18634	// Key: [Output Only] A key that provides more detail on the warning
18635	// being returned. For example, for warnings where there are no results
18636	// in a list request for a particular zone, this key might be scope and
18637	// the key value might be the zone name. Other examples might be a key
18638	// indicating a deprecated resource and a suggested replacement, or a
18639	// warning about invalid network settings (for example, if an instance
18640	// attempts to perform IP forwarding but is not enabled for IP
18641	// forwarding).
18642	Key string `json:"key,omitempty"`
18643
18644	// Value: [Output Only] A warning data value corresponding to the key.
18645	Value string `json:"value,omitempty"`
18646
18647	// ForceSendFields is a list of field names (e.g. "Key") to
18648	// unconditionally include in API requests. By default, fields with
18649	// empty values are omitted from API requests. However, any non-pointer,
18650	// non-interface field appearing in ForceSendFields will be sent to the
18651	// server regardless of whether the field is empty or not. This may be
18652	// used to include empty fields in Patch requests.
18653	ForceSendFields []string `json:"-"`
18654
18655	// NullFields is a list of field names (e.g. "Key") to include in API
18656	// requests with the JSON null value. By default, fields with empty
18657	// values are omitted from API requests. However, any field with an
18658	// empty value appearing in NullFields will be sent to the server as
18659	// null. It is an error if a field in this list has a non-empty value.
18660	// This may be used to include null fields in Patch requests.
18661	NullFields []string `json:"-"`
18662}
18663
18664func (s *SubnetworkAggregatedListWarningData) MarshalJSON() ([]byte, error) {
18665	type NoMethod SubnetworkAggregatedListWarningData
18666	raw := NoMethod(*s)
18667	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18668}
18669
18670// SubnetworkList: Contains a list of Subnetwork resources.
18671type SubnetworkList struct {
18672	// Id: [Output Only] Unique identifier for the resource; defined by the
18673	// server.
18674	Id string `json:"id,omitempty"`
18675
18676	// Items: A list of Subnetwork resources.
18677	Items []*Subnetwork `json:"items,omitempty"`
18678
18679	// Kind: [Output Only] Type of resource. Always compute#subnetworkList
18680	// for lists of subnetworks.
18681	Kind string `json:"kind,omitempty"`
18682
18683	// NextPageToken: [Output Only] This token allows you to get the next
18684	// page of results for list requests. If the number of results is larger
18685	// than maxResults, use the nextPageToken as a value for the query
18686	// parameter pageToken in the next list request. Subsequent list
18687	// requests will have their own nextPageToken to continue paging through
18688	// the results.
18689	NextPageToken string `json:"nextPageToken,omitempty"`
18690
18691	// SelfLink: [Output Only] Server-defined URL for this resource.
18692	SelfLink string `json:"selfLink,omitempty"`
18693
18694	// Warning: [Output Only] Informational warning message.
18695	Warning *SubnetworkListWarning `json:"warning,omitempty"`
18696
18697	// ServerResponse contains the HTTP response code and headers from the
18698	// server.
18699	googleapi.ServerResponse `json:"-"`
18700
18701	// ForceSendFields is a list of field names (e.g. "Id") to
18702	// unconditionally include in API requests. By default, fields with
18703	// empty values are omitted from API requests. However, any non-pointer,
18704	// non-interface field appearing in ForceSendFields will be sent to the
18705	// server regardless of whether the field is empty or not. This may be
18706	// used to include empty fields in Patch requests.
18707	ForceSendFields []string `json:"-"`
18708
18709	// NullFields is a list of field names (e.g. "Id") to include in API
18710	// requests with the JSON null value. By default, fields with empty
18711	// values are omitted from API requests. However, any field with an
18712	// empty value appearing in NullFields will be sent to the server as
18713	// null. It is an error if a field in this list has a non-empty value.
18714	// This may be used to include null fields in Patch requests.
18715	NullFields []string `json:"-"`
18716}
18717
18718func (s *SubnetworkList) MarshalJSON() ([]byte, error) {
18719	type NoMethod SubnetworkList
18720	raw := NoMethod(*s)
18721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18722}
18723
18724// SubnetworkListWarning: [Output Only] Informational warning message.
18725type SubnetworkListWarning struct {
18726	// Code: [Output Only] A warning code, if applicable. For example,
18727	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18728	// the response.
18729	//
18730	// Possible values:
18731	//   "CLEANUP_FAILED"
18732	//   "DEPRECATED_RESOURCE_USED"
18733	//   "DEPRECATED_TYPE_USED"
18734	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18735	//   "EXPERIMENTAL_TYPE_USED"
18736	//   "EXTERNAL_API_WARNING"
18737	//   "FIELD_VALUE_OVERRIDEN"
18738	//   "INJECTED_KERNELS_DEPRECATED"
18739	//   "MISSING_TYPE_DEPENDENCY"
18740	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18741	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18742	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18743	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18744	//   "NEXT_HOP_NOT_RUNNING"
18745	//   "NOT_CRITICAL_ERROR"
18746	//   "NO_RESULTS_ON_PAGE"
18747	//   "REQUIRED_TOS_AGREEMENT"
18748	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18749	//   "RESOURCE_NOT_DELETED"
18750	//   "SCHEMA_VALIDATION_IGNORED"
18751	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18752	//   "UNDECLARED_PROPERTIES"
18753	//   "UNREACHABLE"
18754	Code string `json:"code,omitempty"`
18755
18756	// Data: [Output Only] Metadata about this warning in key: value format.
18757	// For example:
18758	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18759	Data []*SubnetworkListWarningData `json:"data,omitempty"`
18760
18761	// Message: [Output Only] A human-readable description of the warning
18762	// code.
18763	Message string `json:"message,omitempty"`
18764
18765	// ForceSendFields is a list of field names (e.g. "Code") to
18766	// unconditionally include in API requests. By default, fields with
18767	// empty values are omitted from API requests. However, any non-pointer,
18768	// non-interface field appearing in ForceSendFields will be sent to the
18769	// server regardless of whether the field is empty or not. This may be
18770	// used to include empty fields in Patch requests.
18771	ForceSendFields []string `json:"-"`
18772
18773	// NullFields is a list of field names (e.g. "Code") to include in API
18774	// requests with the JSON null value. By default, fields with empty
18775	// values are omitted from API requests. However, any field with an
18776	// empty value appearing in NullFields will be sent to the server as
18777	// null. It is an error if a field in this list has a non-empty value.
18778	// This may be used to include null fields in Patch requests.
18779	NullFields []string `json:"-"`
18780}
18781
18782func (s *SubnetworkListWarning) MarshalJSON() ([]byte, error) {
18783	type NoMethod SubnetworkListWarning
18784	raw := NoMethod(*s)
18785	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18786}
18787
18788type SubnetworkListWarningData struct {
18789	// Key: [Output Only] A key that provides more detail on the warning
18790	// being returned. For example, for warnings where there are no results
18791	// in a list request for a particular zone, this key might be scope and
18792	// the key value might be the zone name. Other examples might be a key
18793	// indicating a deprecated resource and a suggested replacement, or a
18794	// warning about invalid network settings (for example, if an instance
18795	// attempts to perform IP forwarding but is not enabled for IP
18796	// forwarding).
18797	Key string `json:"key,omitempty"`
18798
18799	// Value: [Output Only] A warning data value corresponding to the key.
18800	Value string `json:"value,omitempty"`
18801
18802	// ForceSendFields is a list of field names (e.g. "Key") to
18803	// unconditionally include in API requests. By default, fields with
18804	// empty values are omitted from API requests. However, any non-pointer,
18805	// non-interface field appearing in ForceSendFields will be sent to the
18806	// server regardless of whether the field is empty or not. This may be
18807	// used to include empty fields in Patch requests.
18808	ForceSendFields []string `json:"-"`
18809
18810	// NullFields is a list of field names (e.g. "Key") to include in API
18811	// requests with the JSON null value. By default, fields with empty
18812	// values are omitted from API requests. However, any field with an
18813	// empty value appearing in NullFields will be sent to the server as
18814	// null. It is an error if a field in this list has a non-empty value.
18815	// This may be used to include null fields in Patch requests.
18816	NullFields []string `json:"-"`
18817}
18818
18819func (s *SubnetworkListWarningData) MarshalJSON() ([]byte, error) {
18820	type NoMethod SubnetworkListWarningData
18821	raw := NoMethod(*s)
18822	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18823}
18824
18825// SubnetworkSecondaryRange: Represents a secondary IP range of a
18826// subnetwork.
18827type SubnetworkSecondaryRange struct {
18828	// IpCidrRange: The range of IP addresses belonging to this subnetwork
18829	// secondary range. Provide this property when you create the
18830	// subnetwork. Ranges must be unique and non-overlapping with all
18831	// primary and secondary IP ranges within a network. Only IPv4 is
18832	// supported.
18833	IpCidrRange string `json:"ipCidrRange,omitempty"`
18834
18835	// RangeName: The name associated with this subnetwork secondary range,
18836	// used when adding an alias IP range to a VM instance. The name must be
18837	// 1-63 characters long, and comply with RFC1035. The name must be
18838	// unique within the subnetwork.
18839	RangeName string `json:"rangeName,omitempty"`
18840
18841	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
18842	// unconditionally include in API requests. By default, fields with
18843	// empty values are omitted from API requests. However, any non-pointer,
18844	// non-interface field appearing in ForceSendFields will be sent to the
18845	// server regardless of whether the field is empty or not. This may be
18846	// used to include empty fields in Patch requests.
18847	ForceSendFields []string `json:"-"`
18848
18849	// NullFields is a list of field names (e.g. "IpCidrRange") to include
18850	// in API requests with the JSON null value. By default, fields with
18851	// empty values are omitted from API requests. However, any field with
18852	// an empty value appearing in NullFields will be sent to the server as
18853	// null. It is an error if a field in this list has a non-empty value.
18854	// This may be used to include null fields in Patch requests.
18855	NullFields []string `json:"-"`
18856}
18857
18858func (s *SubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
18859	type NoMethod SubnetworkSecondaryRange
18860	raw := NoMethod(*s)
18861	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18862}
18863
18864type SubnetworksExpandIpCidrRangeRequest struct {
18865	// IpCidrRange: The IP (in CIDR format or netmask) of internal addresses
18866	// that are legal on this Subnetwork. This range should be disjoint from
18867	// other subnetworks within this network. This range can only be larger
18868	// than (i.e. a superset of) the range previously defined before the
18869	// update.
18870	IpCidrRange string `json:"ipCidrRange,omitempty"`
18871
18872	// ForceSendFields is a list of field names (e.g. "IpCidrRange") 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. "IpCidrRange") to include
18881	// in API requests with the JSON null value. By default, fields with
18882	// empty values are omitted from API requests. However, any field with
18883	// an 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 *SubnetworksExpandIpCidrRangeRequest) MarshalJSON() ([]byte, error) {
18890	type NoMethod SubnetworksExpandIpCidrRangeRequest
18891	raw := NoMethod(*s)
18892	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18893}
18894
18895type SubnetworksScopedList struct {
18896	// Subnetworks: List of subnetworks contained in this scope.
18897	Subnetworks []*Subnetwork `json:"subnetworks,omitempty"`
18898
18899	// Warning: An informational warning that appears when the list of
18900	// addresses is empty.
18901	Warning *SubnetworksScopedListWarning `json:"warning,omitempty"`
18902
18903	// ForceSendFields is a list of field names (e.g. "Subnetworks") to
18904	// unconditionally include in API requests. By default, fields with
18905	// empty values are omitted from API requests. However, any non-pointer,
18906	// non-interface field appearing in ForceSendFields will be sent to the
18907	// server regardless of whether the field is empty or not. This may be
18908	// used to include empty fields in Patch requests.
18909	ForceSendFields []string `json:"-"`
18910
18911	// NullFields is a list of field names (e.g. "Subnetworks") to include
18912	// in API requests with the JSON null value. By default, fields with
18913	// empty values are omitted from API requests. However, any field with
18914	// an empty value appearing in NullFields will be sent to the server as
18915	// null. It is an error if a field in this list has a non-empty value.
18916	// This may be used to include null fields in Patch requests.
18917	NullFields []string `json:"-"`
18918}
18919
18920func (s *SubnetworksScopedList) MarshalJSON() ([]byte, error) {
18921	type NoMethod SubnetworksScopedList
18922	raw := NoMethod(*s)
18923	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18924}
18925
18926// SubnetworksScopedListWarning: An informational warning that appears
18927// when the list of addresses is empty.
18928type SubnetworksScopedListWarning struct {
18929	// Code: [Output Only] A warning code, if applicable. For example,
18930	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18931	// the response.
18932	//
18933	// Possible values:
18934	//   "CLEANUP_FAILED"
18935	//   "DEPRECATED_RESOURCE_USED"
18936	//   "DEPRECATED_TYPE_USED"
18937	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18938	//   "EXPERIMENTAL_TYPE_USED"
18939	//   "EXTERNAL_API_WARNING"
18940	//   "FIELD_VALUE_OVERRIDEN"
18941	//   "INJECTED_KERNELS_DEPRECATED"
18942	//   "MISSING_TYPE_DEPENDENCY"
18943	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18944	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18945	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18946	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18947	//   "NEXT_HOP_NOT_RUNNING"
18948	//   "NOT_CRITICAL_ERROR"
18949	//   "NO_RESULTS_ON_PAGE"
18950	//   "REQUIRED_TOS_AGREEMENT"
18951	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18952	//   "RESOURCE_NOT_DELETED"
18953	//   "SCHEMA_VALIDATION_IGNORED"
18954	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18955	//   "UNDECLARED_PROPERTIES"
18956	//   "UNREACHABLE"
18957	Code string `json:"code,omitempty"`
18958
18959	// Data: [Output Only] Metadata about this warning in key: value format.
18960	// For example:
18961	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18962	Data []*SubnetworksScopedListWarningData `json:"data,omitempty"`
18963
18964	// Message: [Output Only] A human-readable description of the warning
18965	// code.
18966	Message string `json:"message,omitempty"`
18967
18968	// ForceSendFields is a list of field names (e.g. "Code") to
18969	// unconditionally include in API requests. By default, fields with
18970	// empty values are omitted from API requests. However, any non-pointer,
18971	// non-interface field appearing in ForceSendFields will be sent to the
18972	// server regardless of whether the field is empty or not. This may be
18973	// used to include empty fields in Patch requests.
18974	ForceSendFields []string `json:"-"`
18975
18976	// NullFields is a list of field names (e.g. "Code") to include in API
18977	// requests with the JSON null value. By default, fields with empty
18978	// values are omitted from API requests. However, any field with an
18979	// empty value appearing in NullFields will be sent to the server as
18980	// null. It is an error if a field in this list has a non-empty value.
18981	// This may be used to include null fields in Patch requests.
18982	NullFields []string `json:"-"`
18983}
18984
18985func (s *SubnetworksScopedListWarning) MarshalJSON() ([]byte, error) {
18986	type NoMethod SubnetworksScopedListWarning
18987	raw := NoMethod(*s)
18988	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18989}
18990
18991type SubnetworksScopedListWarningData struct {
18992	// Key: [Output Only] A key that provides more detail on the warning
18993	// being returned. For example, for warnings where there are no results
18994	// in a list request for a particular zone, this key might be scope and
18995	// the key value might be the zone name. Other examples might be a key
18996	// indicating a deprecated resource and a suggested replacement, or a
18997	// warning about invalid network settings (for example, if an instance
18998	// attempts to perform IP forwarding but is not enabled for IP
18999	// forwarding).
19000	Key string `json:"key,omitempty"`
19001
19002	// Value: [Output Only] A warning data value corresponding to the key.
19003	Value string `json:"value,omitempty"`
19004
19005	// ForceSendFields is a list of field names (e.g. "Key") to
19006	// unconditionally include in API requests. By default, fields with
19007	// empty values are omitted from API requests. However, any non-pointer,
19008	// non-interface field appearing in ForceSendFields will be sent to the
19009	// server regardless of whether the field is empty or not. This may be
19010	// used to include empty fields in Patch requests.
19011	ForceSendFields []string `json:"-"`
19012
19013	// NullFields is a list of field names (e.g. "Key") to include in API
19014	// requests with the JSON null value. By default, fields with empty
19015	// values are omitted from API requests. However, any field with an
19016	// empty value appearing in NullFields will be sent to the server as
19017	// null. It is an error if a field in this list has a non-empty value.
19018	// This may be used to include null fields in Patch requests.
19019	NullFields []string `json:"-"`
19020}
19021
19022func (s *SubnetworksScopedListWarningData) MarshalJSON() ([]byte, error) {
19023	type NoMethod SubnetworksScopedListWarningData
19024	raw := NoMethod(*s)
19025	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19026}
19027
19028type SubnetworksSetPrivateIpGoogleAccessRequest struct {
19029	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
19030
19031	// ForceSendFields is a list of field names (e.g.
19032	// "PrivateIpGoogleAccess") to unconditionally include in API requests.
19033	// By default, fields with empty values are omitted from API requests.
19034	// However, any non-pointer, non-interface field appearing in
19035	// ForceSendFields will be sent to the server regardless of whether the
19036	// field is empty or not. This may be used to include empty fields in
19037	// Patch requests.
19038	ForceSendFields []string `json:"-"`
19039
19040	// NullFields is a list of field names (e.g. "PrivateIpGoogleAccess") to
19041	// include in API requests with the JSON null value. By default, fields
19042	// with empty values are omitted from API requests. However, any field
19043	// with an empty value appearing in NullFields will be sent to the
19044	// server as null. It is an error if a field in this list has a
19045	// non-empty value. This may be used to include null fields in Patch
19046	// requests.
19047	NullFields []string `json:"-"`
19048}
19049
19050func (s *SubnetworksSetPrivateIpGoogleAccessRequest) MarshalJSON() ([]byte, error) {
19051	type NoMethod SubnetworksSetPrivateIpGoogleAccessRequest
19052	raw := NoMethod(*s)
19053	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19054}
19055
19056type TCPHealthCheck struct {
19057	// Port: The TCP port number for the health check request. The default
19058	// value is 80. Valid values are 1 through 65535.
19059	Port int64 `json:"port,omitempty"`
19060
19061	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
19062	// both port and port_name are defined, port takes precedence.
19063	PortName string `json:"portName,omitempty"`
19064
19065	// ProxyHeader: Specifies the type of proxy header to append before
19066	// sending data to the backend, either NONE or PROXY_V1. The default is
19067	// NONE.
19068	//
19069	// Possible values:
19070	//   "NONE"
19071	//   "PROXY_V1"
19072	ProxyHeader string `json:"proxyHeader,omitempty"`
19073
19074	// Request: The application data to send once the TCP connection has
19075	// been established (default value is empty). If both request and
19076	// response are empty, the connection establishment alone will indicate
19077	// health. The request data can only be ASCII.
19078	Request string `json:"request,omitempty"`
19079
19080	// Response: The bytes to match against the beginning of the response
19081	// data. If left empty (the default value), any response will indicate
19082	// health. The response data can only be ASCII.
19083	Response string `json:"response,omitempty"`
19084
19085	// ForceSendFields is a list of field names (e.g. "Port") to
19086	// unconditionally include in API requests. By default, fields with
19087	// empty values are omitted from API requests. However, any non-pointer,
19088	// non-interface field appearing in ForceSendFields will be sent to the
19089	// server regardless of whether the field is empty or not. This may be
19090	// used to include empty fields in Patch requests.
19091	ForceSendFields []string `json:"-"`
19092
19093	// NullFields is a list of field names (e.g. "Port") to include in API
19094	// requests with the JSON null value. By default, fields with empty
19095	// values are omitted from API requests. However, any field with an
19096	// empty value appearing in NullFields will be sent to the server as
19097	// null. It is an error if a field in this list has a non-empty value.
19098	// This may be used to include null fields in Patch requests.
19099	NullFields []string `json:"-"`
19100}
19101
19102func (s *TCPHealthCheck) MarshalJSON() ([]byte, error) {
19103	type NoMethod TCPHealthCheck
19104	raw := NoMethod(*s)
19105	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19106}
19107
19108// Tags: A set of instance tags.
19109type Tags struct {
19110	// Fingerprint: Specifies a fingerprint for this request, which is
19111	// essentially a hash of the metadata's contents and used for optimistic
19112	// locking. The fingerprint is initially generated by Compute Engine and
19113	// changes after every request to modify or update metadata. You must
19114	// always provide an up-to-date fingerprint hash in order to update or
19115	// change metadata.
19116	//
19117	// To see the latest fingerprint, make get() request to the instance.
19118	Fingerprint string `json:"fingerprint,omitempty"`
19119
19120	// Items: An array of tags. Each tag must be 1-63 characters long, and
19121	// comply with RFC1035.
19122	Items []string `json:"items,omitempty"`
19123
19124	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
19125	// unconditionally include in API requests. By default, fields with
19126	// empty values are omitted from API requests. However, any non-pointer,
19127	// non-interface field appearing in ForceSendFields will be sent to the
19128	// server regardless of whether the field is empty or not. This may be
19129	// used to include empty fields in Patch requests.
19130	ForceSendFields []string `json:"-"`
19131
19132	// NullFields is a list of field names (e.g. "Fingerprint") to include
19133	// in API requests with the JSON null value. By default, fields with
19134	// empty values are omitted from API requests. However, any field with
19135	// an empty value appearing in NullFields will be sent to the server as
19136	// null. It is an error if a field in this list has a non-empty value.
19137	// This may be used to include null fields in Patch requests.
19138	NullFields []string `json:"-"`
19139}
19140
19141func (s *Tags) MarshalJSON() ([]byte, error) {
19142	type NoMethod Tags
19143	raw := NoMethod(*s)
19144	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19145}
19146
19147// TargetHttpProxy: A TargetHttpProxy resource. This resource defines an
19148// HTTP proxy. (== resource_for beta.targetHttpProxies ==) (==
19149// resource_for v1.targetHttpProxies ==)
19150type TargetHttpProxy struct {
19151	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
19152	// format.
19153	CreationTimestamp string `json:"creationTimestamp,omitempty"`
19154
19155	// Description: An optional description of this resource. Provide this
19156	// property when you create the resource.
19157	Description string `json:"description,omitempty"`
19158
19159	// Id: [Output Only] The unique identifier for the resource. This
19160	// identifier is defined by the server.
19161	Id uint64 `json:"id,omitempty,string"`
19162
19163	// Kind: [Output Only] Type of resource. Always compute#targetHttpProxy
19164	// for target HTTP proxies.
19165	Kind string `json:"kind,omitempty"`
19166
19167	// Name: Name of the resource. Provided by the client when the resource
19168	// is created. The name must be 1-63 characters long, and comply with
19169	// RFC1035. Specifically, the name must be 1-63 characters long and
19170	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
19171	// the first character must be a lowercase letter, and all following
19172	// characters must be a dash, lowercase letter, or digit, except the
19173	// last character, which cannot be a dash.
19174	Name string `json:"name,omitempty"`
19175
19176	// SelfLink: [Output Only] Server-defined URL for the resource.
19177	SelfLink string `json:"selfLink,omitempty"`
19178
19179	// UrlMap: URL to the UrlMap resource that defines the mapping from URL
19180	// to the BackendService.
19181	UrlMap string `json:"urlMap,omitempty"`
19182
19183	// ServerResponse contains the HTTP response code and headers from the
19184	// server.
19185	googleapi.ServerResponse `json:"-"`
19186
19187	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
19188	// to unconditionally include in API requests. By default, fields with
19189	// empty values are omitted from API requests. However, any non-pointer,
19190	// non-interface field appearing in ForceSendFields will be sent to the
19191	// server regardless of whether the field is empty or not. This may be
19192	// used to include empty fields in Patch requests.
19193	ForceSendFields []string `json:"-"`
19194
19195	// NullFields is a list of field names (e.g. "CreationTimestamp") to
19196	// include in API requests with the JSON null value. By default, fields
19197	// with empty values are omitted from API requests. However, any field
19198	// with an empty value appearing in NullFields will be sent to the
19199	// server as null. It is an error if a field in this list has a
19200	// non-empty value. This may be used to include null fields in Patch
19201	// requests.
19202	NullFields []string `json:"-"`
19203}
19204
19205func (s *TargetHttpProxy) MarshalJSON() ([]byte, error) {
19206	type NoMethod TargetHttpProxy
19207	raw := NoMethod(*s)
19208	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19209}
19210
19211// TargetHttpProxyList: A list of TargetHttpProxy resources.
19212type TargetHttpProxyList struct {
19213	// Id: [Output Only] Unique identifier for the resource; defined by the
19214	// server.
19215	Id string `json:"id,omitempty"`
19216
19217	// Items: A list of TargetHttpProxy resources.
19218	Items []*TargetHttpProxy `json:"items,omitempty"`
19219
19220	// Kind: Type of resource. Always compute#targetHttpProxyList for lists
19221	// of target HTTP proxies.
19222	Kind string `json:"kind,omitempty"`
19223
19224	// NextPageToken: [Output Only] This token allows you to get the next
19225	// page of results for list requests. If the number of results is larger
19226	// than maxResults, use the nextPageToken as a value for the query
19227	// parameter pageToken in the next list request. Subsequent list
19228	// requests will have their own nextPageToken to continue paging through
19229	// the results.
19230	NextPageToken string `json:"nextPageToken,omitempty"`
19231
19232	// SelfLink: [Output Only] Server-defined URL for this resource.
19233	SelfLink string `json:"selfLink,omitempty"`
19234
19235	// Warning: [Output Only] Informational warning message.
19236	Warning *TargetHttpProxyListWarning `json:"warning,omitempty"`
19237
19238	// ServerResponse contains the HTTP response code and headers from the
19239	// server.
19240	googleapi.ServerResponse `json:"-"`
19241
19242	// ForceSendFields is a list of field names (e.g. "Id") to
19243	// unconditionally include in API requests. By default, fields with
19244	// empty values are omitted from API requests. However, any non-pointer,
19245	// non-interface field appearing in ForceSendFields will be sent to the
19246	// server regardless of whether the field is empty or not. This may be
19247	// used to include empty fields in Patch requests.
19248	ForceSendFields []string `json:"-"`
19249
19250	// NullFields is a list of field names (e.g. "Id") to include in API
19251	// requests with the JSON null value. By default, fields with empty
19252	// values are omitted from API requests. However, any field with an
19253	// empty value appearing in NullFields will be sent to the server as
19254	// null. It is an error if a field in this list has a non-empty value.
19255	// This may be used to include null fields in Patch requests.
19256	NullFields []string `json:"-"`
19257}
19258
19259func (s *TargetHttpProxyList) MarshalJSON() ([]byte, error) {
19260	type NoMethod TargetHttpProxyList
19261	raw := NoMethod(*s)
19262	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19263}
19264
19265// TargetHttpProxyListWarning: [Output Only] Informational warning
19266// message.
19267type TargetHttpProxyListWarning struct {
19268	// Code: [Output Only] A warning code, if applicable. For example,
19269	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19270	// the response.
19271	//
19272	// Possible values:
19273	//   "CLEANUP_FAILED"
19274	//   "DEPRECATED_RESOURCE_USED"
19275	//   "DEPRECATED_TYPE_USED"
19276	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19277	//   "EXPERIMENTAL_TYPE_USED"
19278	//   "EXTERNAL_API_WARNING"
19279	//   "FIELD_VALUE_OVERRIDEN"
19280	//   "INJECTED_KERNELS_DEPRECATED"
19281	//   "MISSING_TYPE_DEPENDENCY"
19282	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19283	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19284	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19285	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19286	//   "NEXT_HOP_NOT_RUNNING"
19287	//   "NOT_CRITICAL_ERROR"
19288	//   "NO_RESULTS_ON_PAGE"
19289	//   "REQUIRED_TOS_AGREEMENT"
19290	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19291	//   "RESOURCE_NOT_DELETED"
19292	//   "SCHEMA_VALIDATION_IGNORED"
19293	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19294	//   "UNDECLARED_PROPERTIES"
19295	//   "UNREACHABLE"
19296	Code string `json:"code,omitempty"`
19297
19298	// Data: [Output Only] Metadata about this warning in key: value format.
19299	// For example:
19300	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19301	Data []*TargetHttpProxyListWarningData `json:"data,omitempty"`
19302
19303	// Message: [Output Only] A human-readable description of the warning
19304	// code.
19305	Message string `json:"message,omitempty"`
19306
19307	// ForceSendFields is a list of field names (e.g. "Code") to
19308	// unconditionally include in API requests. By default, fields with
19309	// empty values are omitted from API requests. However, any non-pointer,
19310	// non-interface field appearing in ForceSendFields will be sent to the
19311	// server regardless of whether the field is empty or not. This may be
19312	// used to include empty fields in Patch requests.
19313	ForceSendFields []string `json:"-"`
19314
19315	// NullFields is a list of field names (e.g. "Code") to include in API
19316	// requests with the JSON null value. By default, fields with empty
19317	// values are omitted from API requests. However, any field with an
19318	// empty value appearing in NullFields will be sent to the server as
19319	// null. It is an error if a field in this list has a non-empty value.
19320	// This may be used to include null fields in Patch requests.
19321	NullFields []string `json:"-"`
19322}
19323
19324func (s *TargetHttpProxyListWarning) MarshalJSON() ([]byte, error) {
19325	type NoMethod TargetHttpProxyListWarning
19326	raw := NoMethod(*s)
19327	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19328}
19329
19330type TargetHttpProxyListWarningData struct {
19331	// Key: [Output Only] A key that provides more detail on the warning
19332	// being returned. For example, for warnings where there are no results
19333	// in a list request for a particular zone, this key might be scope and
19334	// the key value might be the zone name. Other examples might be a key
19335	// indicating a deprecated resource and a suggested replacement, or a
19336	// warning about invalid network settings (for example, if an instance
19337	// attempts to perform IP forwarding but is not enabled for IP
19338	// forwarding).
19339	Key string `json:"key,omitempty"`
19340
19341	// Value: [Output Only] A warning data value corresponding to the key.
19342	Value string `json:"value,omitempty"`
19343
19344	// ForceSendFields is a list of field names (e.g. "Key") to
19345	// unconditionally include in API requests. By default, fields with
19346	// empty values are omitted from API requests. However, any non-pointer,
19347	// non-interface field appearing in ForceSendFields will be sent to the
19348	// server regardless of whether the field is empty or not. This may be
19349	// used to include empty fields in Patch requests.
19350	ForceSendFields []string `json:"-"`
19351
19352	// NullFields is a list of field names (e.g. "Key") to include in API
19353	// requests with the JSON null value. By default, fields with empty
19354	// values are omitted from API requests. However, any field with an
19355	// empty value appearing in NullFields will be sent to the server as
19356	// null. It is an error if a field in this list has a non-empty value.
19357	// This may be used to include null fields in Patch requests.
19358	NullFields []string `json:"-"`
19359}
19360
19361func (s *TargetHttpProxyListWarningData) MarshalJSON() ([]byte, error) {
19362	type NoMethod TargetHttpProxyListWarningData
19363	raw := NoMethod(*s)
19364	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19365}
19366
19367type TargetHttpsProxiesSetSslCertificatesRequest struct {
19368	// SslCertificates: New set of SslCertificate resources to associate
19369	// with this TargetHttpsProxy resource. Currently exactly one
19370	// SslCertificate resource must be specified.
19371	SslCertificates []string `json:"sslCertificates,omitempty"`
19372
19373	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
19374	// unconditionally include in API requests. By default, fields with
19375	// empty values are omitted from API requests. However, any non-pointer,
19376	// non-interface field appearing in ForceSendFields will be sent to the
19377	// server regardless of whether the field is empty or not. This may be
19378	// used to include empty fields in Patch requests.
19379	ForceSendFields []string `json:"-"`
19380
19381	// NullFields is a list of field names (e.g. "SslCertificates") to
19382	// include in API requests with the JSON null value. By default, fields
19383	// with empty values are omitted from API requests. However, any field
19384	// with an empty value appearing in NullFields will be sent to the
19385	// server as null. It is an error if a field in this list has a
19386	// non-empty value. This may be used to include null fields in Patch
19387	// requests.
19388	NullFields []string `json:"-"`
19389}
19390
19391func (s *TargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
19392	type NoMethod TargetHttpsProxiesSetSslCertificatesRequest
19393	raw := NoMethod(*s)
19394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19395}
19396
19397// TargetHttpsProxy: A TargetHttpsProxy resource. This resource defines
19398// an HTTPS proxy. (== resource_for beta.targetHttpsProxies ==) (==
19399// resource_for v1.targetHttpsProxies ==)
19400type TargetHttpsProxy struct {
19401	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
19402	// format.
19403	CreationTimestamp string `json:"creationTimestamp,omitempty"`
19404
19405	// Description: An optional description of this resource. Provide this
19406	// property when you create the resource.
19407	Description string `json:"description,omitempty"`
19408
19409	// Id: [Output Only] The unique identifier for the resource. This
19410	// identifier is defined by the server.
19411	Id uint64 `json:"id,omitempty,string"`
19412
19413	// Kind: [Output Only] Type of resource. Always compute#targetHttpsProxy
19414	// for target HTTPS proxies.
19415	Kind string `json:"kind,omitempty"`
19416
19417	// Name: Name of the resource. Provided by the client when the resource
19418	// is created. The name must be 1-63 characters long, and comply with
19419	// RFC1035. Specifically, the name must be 1-63 characters long and
19420	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
19421	// the first character must be a lowercase letter, and all following
19422	// characters must be a dash, lowercase letter, or digit, except the
19423	// last character, which cannot be a dash.
19424	Name string `json:"name,omitempty"`
19425
19426	// SelfLink: [Output Only] Server-defined URL for the resource.
19427	SelfLink string `json:"selfLink,omitempty"`
19428
19429	// SslCertificates: URLs to SslCertificate resources that are used to
19430	// authenticate connections between users and the load balancer.
19431	// Currently, exactly one SSL certificate must be specified.
19432	SslCertificates []string `json:"sslCertificates,omitempty"`
19433
19434	// UrlMap: A fully-qualified or valid partial URL to the UrlMap resource
19435	// that defines the mapping from URL to the BackendService. For example,
19436	// the following are all valid URLs for specifying a URL map:
19437	// -
19438	// https://www.googleapis.compute/v1/projects/project/global/urlMaps/url-map
19439	// - projects/project/global/urlMaps/url-map
19440	// - global/urlMaps/url-map
19441	UrlMap string `json:"urlMap,omitempty"`
19442
19443	// ServerResponse contains the HTTP response code and headers from the
19444	// server.
19445	googleapi.ServerResponse `json:"-"`
19446
19447	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
19448	// to unconditionally include in API requests. By default, fields with
19449	// empty values are omitted from API requests. However, any non-pointer,
19450	// non-interface field appearing in ForceSendFields will be sent to the
19451	// server regardless of whether the field is empty or not. This may be
19452	// used to include empty fields in Patch requests.
19453	ForceSendFields []string `json:"-"`
19454
19455	// NullFields is a list of field names (e.g. "CreationTimestamp") to
19456	// include in API requests with the JSON null value. By default, fields
19457	// with empty values are omitted from API requests. However, any field
19458	// with an empty value appearing in NullFields will be sent to the
19459	// server as null. It is an error if a field in this list has a
19460	// non-empty value. This may be used to include null fields in Patch
19461	// requests.
19462	NullFields []string `json:"-"`
19463}
19464
19465func (s *TargetHttpsProxy) MarshalJSON() ([]byte, error) {
19466	type NoMethod TargetHttpsProxy
19467	raw := NoMethod(*s)
19468	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19469}
19470
19471// TargetHttpsProxyList: Contains a list of TargetHttpsProxy resources.
19472type TargetHttpsProxyList struct {
19473	// Id: [Output Only] Unique identifier for the resource; defined by the
19474	// server.
19475	Id string `json:"id,omitempty"`
19476
19477	// Items: A list of TargetHttpsProxy resources.
19478	Items []*TargetHttpsProxy `json:"items,omitempty"`
19479
19480	// Kind: Type of resource. Always compute#targetHttpsProxyList for lists
19481	// of target HTTPS proxies.
19482	Kind string `json:"kind,omitempty"`
19483
19484	// NextPageToken: [Output Only] This token allows you to get the next
19485	// page of results for list requests. If the number of results is larger
19486	// than maxResults, use the nextPageToken as a value for the query
19487	// parameter pageToken in the next list request. Subsequent list
19488	// requests will have their own nextPageToken to continue paging through
19489	// the results.
19490	NextPageToken string `json:"nextPageToken,omitempty"`
19491
19492	// SelfLink: [Output Only] Server-defined URL for this resource.
19493	SelfLink string `json:"selfLink,omitempty"`
19494
19495	// Warning: [Output Only] Informational warning message.
19496	Warning *TargetHttpsProxyListWarning `json:"warning,omitempty"`
19497
19498	// ServerResponse contains the HTTP response code and headers from the
19499	// server.
19500	googleapi.ServerResponse `json:"-"`
19501
19502	// ForceSendFields is a list of field names (e.g. "Id") to
19503	// unconditionally include in API requests. By default, fields with
19504	// empty values are omitted from API requests. However, any non-pointer,
19505	// non-interface field appearing in ForceSendFields will be sent to the
19506	// server regardless of whether the field is empty or not. This may be
19507	// used to include empty fields in Patch requests.
19508	ForceSendFields []string `json:"-"`
19509
19510	// NullFields is a list of field names (e.g. "Id") to include in API
19511	// requests with the JSON null value. By default, fields with empty
19512	// values are omitted from API requests. However, any field with an
19513	// empty value appearing in NullFields will be sent to the server as
19514	// null. It is an error if a field in this list has a non-empty value.
19515	// This may be used to include null fields in Patch requests.
19516	NullFields []string `json:"-"`
19517}
19518
19519func (s *TargetHttpsProxyList) MarshalJSON() ([]byte, error) {
19520	type NoMethod TargetHttpsProxyList
19521	raw := NoMethod(*s)
19522	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19523}
19524
19525// TargetHttpsProxyListWarning: [Output Only] Informational warning
19526// message.
19527type TargetHttpsProxyListWarning struct {
19528	// Code: [Output Only] A warning code, if applicable. For example,
19529	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19530	// the response.
19531	//
19532	// Possible values:
19533	//   "CLEANUP_FAILED"
19534	//   "DEPRECATED_RESOURCE_USED"
19535	//   "DEPRECATED_TYPE_USED"
19536	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19537	//   "EXPERIMENTAL_TYPE_USED"
19538	//   "EXTERNAL_API_WARNING"
19539	//   "FIELD_VALUE_OVERRIDEN"
19540	//   "INJECTED_KERNELS_DEPRECATED"
19541	//   "MISSING_TYPE_DEPENDENCY"
19542	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19543	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19544	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19545	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19546	//   "NEXT_HOP_NOT_RUNNING"
19547	//   "NOT_CRITICAL_ERROR"
19548	//   "NO_RESULTS_ON_PAGE"
19549	//   "REQUIRED_TOS_AGREEMENT"
19550	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19551	//   "RESOURCE_NOT_DELETED"
19552	//   "SCHEMA_VALIDATION_IGNORED"
19553	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19554	//   "UNDECLARED_PROPERTIES"
19555	//   "UNREACHABLE"
19556	Code string `json:"code,omitempty"`
19557
19558	// Data: [Output Only] Metadata about this warning in key: value format.
19559	// For example:
19560	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19561	Data []*TargetHttpsProxyListWarningData `json:"data,omitempty"`
19562
19563	// Message: [Output Only] A human-readable description of the warning
19564	// code.
19565	Message string `json:"message,omitempty"`
19566
19567	// ForceSendFields is a list of field names (e.g. "Code") to
19568	// unconditionally include in API requests. By default, fields with
19569	// empty values are omitted from API requests. However, any non-pointer,
19570	// non-interface field appearing in ForceSendFields will be sent to the
19571	// server regardless of whether the field is empty or not. This may be
19572	// used to include empty fields in Patch requests.
19573	ForceSendFields []string `json:"-"`
19574
19575	// NullFields is a list of field names (e.g. "Code") to include in API
19576	// requests with the JSON null value. By default, fields with empty
19577	// values are omitted from API requests. However, any field with an
19578	// empty value appearing in NullFields will be sent to the server as
19579	// null. It is an error if a field in this list has a non-empty value.
19580	// This may be used to include null fields in Patch requests.
19581	NullFields []string `json:"-"`
19582}
19583
19584func (s *TargetHttpsProxyListWarning) MarshalJSON() ([]byte, error) {
19585	type NoMethod TargetHttpsProxyListWarning
19586	raw := NoMethod(*s)
19587	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19588}
19589
19590type TargetHttpsProxyListWarningData struct {
19591	// Key: [Output Only] A key that provides more detail on the warning
19592	// being returned. For example, for warnings where there are no results
19593	// in a list request for a particular zone, this key might be scope and
19594	// the key value might be the zone name. Other examples might be a key
19595	// indicating a deprecated resource and a suggested replacement, or a
19596	// warning about invalid network settings (for example, if an instance
19597	// attempts to perform IP forwarding but is not enabled for IP
19598	// forwarding).
19599	Key string `json:"key,omitempty"`
19600
19601	// Value: [Output Only] A warning data value corresponding to the key.
19602	Value string `json:"value,omitempty"`
19603
19604	// ForceSendFields is a list of field names (e.g. "Key") to
19605	// unconditionally include in API requests. By default, fields with
19606	// empty values are omitted from API requests. However, any non-pointer,
19607	// non-interface field appearing in ForceSendFields will be sent to the
19608	// server regardless of whether the field is empty or not. This may be
19609	// used to include empty fields in Patch requests.
19610	ForceSendFields []string `json:"-"`
19611
19612	// NullFields is a list of field names (e.g. "Key") to include in API
19613	// requests with the JSON null value. By default, fields with empty
19614	// values are omitted from API requests. However, any field with an
19615	// empty value appearing in NullFields will be sent to the server as
19616	// null. It is an error if a field in this list has a non-empty value.
19617	// This may be used to include null fields in Patch requests.
19618	NullFields []string `json:"-"`
19619}
19620
19621func (s *TargetHttpsProxyListWarningData) MarshalJSON() ([]byte, error) {
19622	type NoMethod TargetHttpsProxyListWarningData
19623	raw := NoMethod(*s)
19624	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19625}
19626
19627// TargetInstance: A TargetInstance resource. This resource defines an
19628// endpoint instance that terminates traffic of certain protocols. (==
19629// resource_for beta.targetInstances ==) (== resource_for
19630// v1.targetInstances ==)
19631type TargetInstance struct {
19632	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
19633	// format.
19634	CreationTimestamp string `json:"creationTimestamp,omitempty"`
19635
19636	// Description: An optional description of this resource. Provide this
19637	// property when you create the resource.
19638	Description string `json:"description,omitempty"`
19639
19640	// Id: [Output Only] The unique identifier for the resource. This
19641	// identifier is defined by the server.
19642	Id uint64 `json:"id,omitempty,string"`
19643
19644	// Instance: A URL to the virtual machine instance that handles traffic
19645	// for this target instance. When creating a target instance, you can
19646	// provide the fully-qualified URL or a valid partial URL to the desired
19647	// virtual machine. For example, the following are all valid URLs:
19648	// -
19649	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
19650	// - projects/project/zones/zone/instances/instance
19651	// - zones/zone/instances/instance
19652	Instance string `json:"instance,omitempty"`
19653
19654	// Kind: [Output Only] The type of the resource. Always
19655	// compute#targetInstance for target instances.
19656	Kind string `json:"kind,omitempty"`
19657
19658	// Name: Name of the resource. Provided by the client when the resource
19659	// is created. The name must be 1-63 characters long, and comply with
19660	// RFC1035. Specifically, the name must be 1-63 characters long and
19661	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
19662	// the first character must be a lowercase letter, and all following
19663	// characters must be a dash, lowercase letter, or digit, except the
19664	// last character, which cannot be a dash.
19665	Name string `json:"name,omitempty"`
19666
19667	// NatPolicy: NAT option controlling how IPs are NAT'ed to the instance.
19668	// Currently only NO_NAT (default value) is supported.
19669	//
19670	// Possible values:
19671	//   "NO_NAT"
19672	NatPolicy string `json:"natPolicy,omitempty"`
19673
19674	// SelfLink: [Output Only] Server-defined URL for the resource.
19675	SelfLink string `json:"selfLink,omitempty"`
19676
19677	// Zone: [Output Only] URL of the zone where the target instance
19678	// resides. You must specify this field as part of the HTTP request URL.
19679	// It is not settable as a field in the request body.
19680	Zone string `json:"zone,omitempty"`
19681
19682	// ServerResponse contains the HTTP response code and headers from the
19683	// server.
19684	googleapi.ServerResponse `json:"-"`
19685
19686	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
19687	// to unconditionally include in API requests. By default, fields with
19688	// empty values are omitted from API requests. However, any non-pointer,
19689	// non-interface field appearing in ForceSendFields will be sent to the
19690	// server regardless of whether the field is empty or not. This may be
19691	// used to include empty fields in Patch requests.
19692	ForceSendFields []string `json:"-"`
19693
19694	// NullFields is a list of field names (e.g. "CreationTimestamp") to
19695	// include in API requests with the JSON null value. By default, fields
19696	// with empty values are omitted from API requests. However, any field
19697	// with an empty value appearing in NullFields will be sent to the
19698	// server as null. It is an error if a field in this list has a
19699	// non-empty value. This may be used to include null fields in Patch
19700	// requests.
19701	NullFields []string `json:"-"`
19702}
19703
19704func (s *TargetInstance) MarshalJSON() ([]byte, error) {
19705	type NoMethod TargetInstance
19706	raw := NoMethod(*s)
19707	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19708}
19709
19710type TargetInstanceAggregatedList struct {
19711	// Id: [Output Only] Unique identifier for the resource; defined by the
19712	// server.
19713	Id string `json:"id,omitempty"`
19714
19715	// Items: A list of TargetInstance resources.
19716	Items map[string]TargetInstancesScopedList `json:"items,omitempty"`
19717
19718	// Kind: Type of resource.
19719	Kind string `json:"kind,omitempty"`
19720
19721	// NextPageToken: [Output Only] This token allows you to get the next
19722	// page of results for list requests. If the number of results is larger
19723	// than maxResults, use the nextPageToken as a value for the query
19724	// parameter pageToken in the next list request. Subsequent list
19725	// requests will have their own nextPageToken to continue paging through
19726	// the results.
19727	NextPageToken string `json:"nextPageToken,omitempty"`
19728
19729	// SelfLink: [Output Only] Server-defined URL for this resource.
19730	SelfLink string `json:"selfLink,omitempty"`
19731
19732	// Warning: [Output Only] Informational warning message.
19733	Warning *TargetInstanceAggregatedListWarning `json:"warning,omitempty"`
19734
19735	// ServerResponse contains the HTTP response code and headers from the
19736	// server.
19737	googleapi.ServerResponse `json:"-"`
19738
19739	// ForceSendFields is a list of field names (e.g. "Id") 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. "Id") to include in API
19748	// requests with the JSON null value. By default, fields with empty
19749	// values are omitted from API requests. However, any field with an
19750	// 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 *TargetInstanceAggregatedList) MarshalJSON() ([]byte, error) {
19757	type NoMethod TargetInstanceAggregatedList
19758	raw := NoMethod(*s)
19759	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19760}
19761
19762// TargetInstanceAggregatedListWarning: [Output Only] Informational
19763// warning message.
19764type TargetInstanceAggregatedListWarning struct {
19765	// Code: [Output Only] A warning code, if applicable. For example,
19766	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19767	// the response.
19768	//
19769	// Possible values:
19770	//   "CLEANUP_FAILED"
19771	//   "DEPRECATED_RESOURCE_USED"
19772	//   "DEPRECATED_TYPE_USED"
19773	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19774	//   "EXPERIMENTAL_TYPE_USED"
19775	//   "EXTERNAL_API_WARNING"
19776	//   "FIELD_VALUE_OVERRIDEN"
19777	//   "INJECTED_KERNELS_DEPRECATED"
19778	//   "MISSING_TYPE_DEPENDENCY"
19779	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19780	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19781	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19782	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19783	//   "NEXT_HOP_NOT_RUNNING"
19784	//   "NOT_CRITICAL_ERROR"
19785	//   "NO_RESULTS_ON_PAGE"
19786	//   "REQUIRED_TOS_AGREEMENT"
19787	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19788	//   "RESOURCE_NOT_DELETED"
19789	//   "SCHEMA_VALIDATION_IGNORED"
19790	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19791	//   "UNDECLARED_PROPERTIES"
19792	//   "UNREACHABLE"
19793	Code string `json:"code,omitempty"`
19794
19795	// Data: [Output Only] Metadata about this warning in key: value format.
19796	// For example:
19797	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19798	Data []*TargetInstanceAggregatedListWarningData `json:"data,omitempty"`
19799
19800	// Message: [Output Only] A human-readable description of the warning
19801	// code.
19802	Message string `json:"message,omitempty"`
19803
19804	// ForceSendFields is a list of field names (e.g. "Code") to
19805	// unconditionally include in API requests. By default, fields with
19806	// empty values are omitted from API requests. However, any non-pointer,
19807	// non-interface field appearing in ForceSendFields will be sent to the
19808	// server regardless of whether the field is empty or not. This may be
19809	// used to include empty fields in Patch requests.
19810	ForceSendFields []string `json:"-"`
19811
19812	// NullFields is a list of field names (e.g. "Code") to include in API
19813	// requests with the JSON null value. By default, fields with empty
19814	// values are omitted from API requests. However, any field with an
19815	// empty value appearing in NullFields will be sent to the server as
19816	// null. It is an error if a field in this list has a non-empty value.
19817	// This may be used to include null fields in Patch requests.
19818	NullFields []string `json:"-"`
19819}
19820
19821func (s *TargetInstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
19822	type NoMethod TargetInstanceAggregatedListWarning
19823	raw := NoMethod(*s)
19824	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19825}
19826
19827type TargetInstanceAggregatedListWarningData struct {
19828	// Key: [Output Only] A key that provides more detail on the warning
19829	// being returned. For example, for warnings where there are no results
19830	// in a list request for a particular zone, this key might be scope and
19831	// the key value might be the zone name. Other examples might be a key
19832	// indicating a deprecated resource and a suggested replacement, or a
19833	// warning about invalid network settings (for example, if an instance
19834	// attempts to perform IP forwarding but is not enabled for IP
19835	// forwarding).
19836	Key string `json:"key,omitempty"`
19837
19838	// Value: [Output Only] A warning data value corresponding to the key.
19839	Value string `json:"value,omitempty"`
19840
19841	// ForceSendFields is a list of field names (e.g. "Key") to
19842	// unconditionally include in API requests. By default, fields with
19843	// empty values are omitted from API requests. However, any non-pointer,
19844	// non-interface field appearing in ForceSendFields will be sent to the
19845	// server regardless of whether the field is empty or not. This may be
19846	// used to include empty fields in Patch requests.
19847	ForceSendFields []string `json:"-"`
19848
19849	// NullFields is a list of field names (e.g. "Key") to include in API
19850	// requests with the JSON null value. By default, fields with empty
19851	// values are omitted from API requests. However, any field with an
19852	// empty value appearing in NullFields will be sent to the server as
19853	// null. It is an error if a field in this list has a non-empty value.
19854	// This may be used to include null fields in Patch requests.
19855	NullFields []string `json:"-"`
19856}
19857
19858func (s *TargetInstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
19859	type NoMethod TargetInstanceAggregatedListWarningData
19860	raw := NoMethod(*s)
19861	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19862}
19863
19864// TargetInstanceList: Contains a list of TargetInstance resources.
19865type TargetInstanceList struct {
19866	// Id: [Output Only] Unique identifier for the resource; defined by the
19867	// server.
19868	Id string `json:"id,omitempty"`
19869
19870	// Items: A list of TargetInstance resources.
19871	Items []*TargetInstance `json:"items,omitempty"`
19872
19873	// Kind: Type of resource.
19874	Kind string `json:"kind,omitempty"`
19875
19876	// NextPageToken: [Output Only] This token allows you to get the next
19877	// page of results for list requests. If the number of results is larger
19878	// than maxResults, use the nextPageToken as a value for the query
19879	// parameter pageToken in the next list request. Subsequent list
19880	// requests will have their own nextPageToken to continue paging through
19881	// the results.
19882	NextPageToken string `json:"nextPageToken,omitempty"`
19883
19884	// SelfLink: [Output Only] Server-defined URL for this resource.
19885	SelfLink string `json:"selfLink,omitempty"`
19886
19887	// Warning: [Output Only] Informational warning message.
19888	Warning *TargetInstanceListWarning `json:"warning,omitempty"`
19889
19890	// ServerResponse contains the HTTP response code and headers from the
19891	// server.
19892	googleapi.ServerResponse `json:"-"`
19893
19894	// ForceSendFields is a list of field names (e.g. "Id") to
19895	// unconditionally include in API requests. By default, fields with
19896	// empty values are omitted from API requests. However, any non-pointer,
19897	// non-interface field appearing in ForceSendFields will be sent to the
19898	// server regardless of whether the field is empty or not. This may be
19899	// used to include empty fields in Patch requests.
19900	ForceSendFields []string `json:"-"`
19901
19902	// NullFields is a list of field names (e.g. "Id") to include in API
19903	// requests with the JSON null value. By default, fields with empty
19904	// values are omitted from API requests. However, any field with an
19905	// empty value appearing in NullFields will be sent to the server as
19906	// null. It is an error if a field in this list has a non-empty value.
19907	// This may be used to include null fields in Patch requests.
19908	NullFields []string `json:"-"`
19909}
19910
19911func (s *TargetInstanceList) MarshalJSON() ([]byte, error) {
19912	type NoMethod TargetInstanceList
19913	raw := NoMethod(*s)
19914	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19915}
19916
19917// TargetInstanceListWarning: [Output Only] Informational warning
19918// message.
19919type TargetInstanceListWarning struct {
19920	// Code: [Output Only] A warning code, if applicable. For example,
19921	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19922	// the response.
19923	//
19924	// Possible values:
19925	//   "CLEANUP_FAILED"
19926	//   "DEPRECATED_RESOURCE_USED"
19927	//   "DEPRECATED_TYPE_USED"
19928	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19929	//   "EXPERIMENTAL_TYPE_USED"
19930	//   "EXTERNAL_API_WARNING"
19931	//   "FIELD_VALUE_OVERRIDEN"
19932	//   "INJECTED_KERNELS_DEPRECATED"
19933	//   "MISSING_TYPE_DEPENDENCY"
19934	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19935	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19936	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19937	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19938	//   "NEXT_HOP_NOT_RUNNING"
19939	//   "NOT_CRITICAL_ERROR"
19940	//   "NO_RESULTS_ON_PAGE"
19941	//   "REQUIRED_TOS_AGREEMENT"
19942	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19943	//   "RESOURCE_NOT_DELETED"
19944	//   "SCHEMA_VALIDATION_IGNORED"
19945	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19946	//   "UNDECLARED_PROPERTIES"
19947	//   "UNREACHABLE"
19948	Code string `json:"code,omitempty"`
19949
19950	// Data: [Output Only] Metadata about this warning in key: value format.
19951	// For example:
19952	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19953	Data []*TargetInstanceListWarningData `json:"data,omitempty"`
19954
19955	// Message: [Output Only] A human-readable description of the warning
19956	// code.
19957	Message string `json:"message,omitempty"`
19958
19959	// ForceSendFields is a list of field names (e.g. "Code") to
19960	// unconditionally include in API requests. By default, fields with
19961	// empty values are omitted from API requests. However, any non-pointer,
19962	// non-interface field appearing in ForceSendFields will be sent to the
19963	// server regardless of whether the field is empty or not. This may be
19964	// used to include empty fields in Patch requests.
19965	ForceSendFields []string `json:"-"`
19966
19967	// NullFields is a list of field names (e.g. "Code") to include in API
19968	// requests with the JSON null value. By default, fields with empty
19969	// values are omitted from API requests. However, any field with an
19970	// empty value appearing in NullFields will be sent to the server as
19971	// null. It is an error if a field in this list has a non-empty value.
19972	// This may be used to include null fields in Patch requests.
19973	NullFields []string `json:"-"`
19974}
19975
19976func (s *TargetInstanceListWarning) MarshalJSON() ([]byte, error) {
19977	type NoMethod TargetInstanceListWarning
19978	raw := NoMethod(*s)
19979	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19980}
19981
19982type TargetInstanceListWarningData struct {
19983	// Key: [Output Only] A key that provides more detail on the warning
19984	// being returned. For example, for warnings where there are no results
19985	// in a list request for a particular zone, this key might be scope and
19986	// the key value might be the zone name. Other examples might be a key
19987	// indicating a deprecated resource and a suggested replacement, or a
19988	// warning about invalid network settings (for example, if an instance
19989	// attempts to perform IP forwarding but is not enabled for IP
19990	// forwarding).
19991	Key string `json:"key,omitempty"`
19992
19993	// Value: [Output Only] A warning data value corresponding to the key.
19994	Value string `json:"value,omitempty"`
19995
19996	// ForceSendFields is a list of field names (e.g. "Key") to
19997	// unconditionally include in API requests. By default, fields with
19998	// empty values are omitted from API requests. However, any non-pointer,
19999	// non-interface field appearing in ForceSendFields will be sent to the
20000	// server regardless of whether the field is empty or not. This may be
20001	// used to include empty fields in Patch requests.
20002	ForceSendFields []string `json:"-"`
20003
20004	// NullFields is a list of field names (e.g. "Key") to include in API
20005	// requests with the JSON null value. By default, fields with empty
20006	// values are omitted from API requests. However, any field with an
20007	// empty value appearing in NullFields will be sent to the server as
20008	// null. It is an error if a field in this list has a non-empty value.
20009	// This may be used to include null fields in Patch requests.
20010	NullFields []string `json:"-"`
20011}
20012
20013func (s *TargetInstanceListWarningData) MarshalJSON() ([]byte, error) {
20014	type NoMethod TargetInstanceListWarningData
20015	raw := NoMethod(*s)
20016	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20017}
20018
20019type TargetInstancesScopedList struct {
20020	// TargetInstances: List of target instances contained in this scope.
20021	TargetInstances []*TargetInstance `json:"targetInstances,omitempty"`
20022
20023	// Warning: Informational warning which replaces the list of addresses
20024	// when the list is empty.
20025	Warning *TargetInstancesScopedListWarning `json:"warning,omitempty"`
20026
20027	// ForceSendFields is a list of field names (e.g. "TargetInstances") to
20028	// unconditionally include in API requests. By default, fields with
20029	// empty values are omitted from API requests. However, any non-pointer,
20030	// non-interface field appearing in ForceSendFields will be sent to the
20031	// server regardless of whether the field is empty or not. This may be
20032	// used to include empty fields in Patch requests.
20033	ForceSendFields []string `json:"-"`
20034
20035	// NullFields is a list of field names (e.g. "TargetInstances") to
20036	// include in API requests with the JSON null value. By default, fields
20037	// with empty values are omitted from API requests. However, any field
20038	// with an empty value appearing in NullFields will be sent to the
20039	// server as null. It is an error if a field in this list has a
20040	// non-empty value. This may be used to include null fields in Patch
20041	// requests.
20042	NullFields []string `json:"-"`
20043}
20044
20045func (s *TargetInstancesScopedList) MarshalJSON() ([]byte, error) {
20046	type NoMethod TargetInstancesScopedList
20047	raw := NoMethod(*s)
20048	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20049}
20050
20051// TargetInstancesScopedListWarning: Informational warning which
20052// replaces the list of addresses when the list is empty.
20053type TargetInstancesScopedListWarning struct {
20054	// Code: [Output Only] A warning code, if applicable. For example,
20055	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20056	// the response.
20057	//
20058	// Possible values:
20059	//   "CLEANUP_FAILED"
20060	//   "DEPRECATED_RESOURCE_USED"
20061	//   "DEPRECATED_TYPE_USED"
20062	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20063	//   "EXPERIMENTAL_TYPE_USED"
20064	//   "EXTERNAL_API_WARNING"
20065	//   "FIELD_VALUE_OVERRIDEN"
20066	//   "INJECTED_KERNELS_DEPRECATED"
20067	//   "MISSING_TYPE_DEPENDENCY"
20068	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20069	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20070	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20071	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20072	//   "NEXT_HOP_NOT_RUNNING"
20073	//   "NOT_CRITICAL_ERROR"
20074	//   "NO_RESULTS_ON_PAGE"
20075	//   "REQUIRED_TOS_AGREEMENT"
20076	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20077	//   "RESOURCE_NOT_DELETED"
20078	//   "SCHEMA_VALIDATION_IGNORED"
20079	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20080	//   "UNDECLARED_PROPERTIES"
20081	//   "UNREACHABLE"
20082	Code string `json:"code,omitempty"`
20083
20084	// Data: [Output Only] Metadata about this warning in key: value format.
20085	// For example:
20086	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20087	Data []*TargetInstancesScopedListWarningData `json:"data,omitempty"`
20088
20089	// Message: [Output Only] A human-readable description of the warning
20090	// code.
20091	Message string `json:"message,omitempty"`
20092
20093	// ForceSendFields is a list of field names (e.g. "Code") to
20094	// unconditionally include in API requests. By default, fields with
20095	// empty values are omitted from API requests. However, any non-pointer,
20096	// non-interface field appearing in ForceSendFields will be sent to the
20097	// server regardless of whether the field is empty or not. This may be
20098	// used to include empty fields in Patch requests.
20099	ForceSendFields []string `json:"-"`
20100
20101	// NullFields is a list of field names (e.g. "Code") to include in API
20102	// requests with the JSON null value. By default, fields with empty
20103	// values are omitted from API requests. However, any field with an
20104	// empty value appearing in NullFields will be sent to the server as
20105	// null. It is an error if a field in this list has a non-empty value.
20106	// This may be used to include null fields in Patch requests.
20107	NullFields []string `json:"-"`
20108}
20109
20110func (s *TargetInstancesScopedListWarning) MarshalJSON() ([]byte, error) {
20111	type NoMethod TargetInstancesScopedListWarning
20112	raw := NoMethod(*s)
20113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20114}
20115
20116type TargetInstancesScopedListWarningData struct {
20117	// Key: [Output Only] A key that provides more detail on the warning
20118	// being returned. For example, for warnings where there are no results
20119	// in a list request for a particular zone, this key might be scope and
20120	// the key value might be the zone name. Other examples might be a key
20121	// indicating a deprecated resource and a suggested replacement, or a
20122	// warning about invalid network settings (for example, if an instance
20123	// attempts to perform IP forwarding but is not enabled for IP
20124	// forwarding).
20125	Key string `json:"key,omitempty"`
20126
20127	// Value: [Output Only] A warning data value corresponding to the key.
20128	Value string `json:"value,omitempty"`
20129
20130	// ForceSendFields is a list of field names (e.g. "Key") to
20131	// unconditionally include in API requests. By default, fields with
20132	// empty values are omitted from API requests. However, any non-pointer,
20133	// non-interface field appearing in ForceSendFields will be sent to the
20134	// server regardless of whether the field is empty or not. This may be
20135	// used to include empty fields in Patch requests.
20136	ForceSendFields []string `json:"-"`
20137
20138	// NullFields is a list of field names (e.g. "Key") to include in API
20139	// requests with the JSON null value. By default, fields with empty
20140	// values are omitted from API requests. However, any field with an
20141	// empty value appearing in NullFields will be sent to the server as
20142	// null. It is an error if a field in this list has a non-empty value.
20143	// This may be used to include null fields in Patch requests.
20144	NullFields []string `json:"-"`
20145}
20146
20147func (s *TargetInstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
20148	type NoMethod TargetInstancesScopedListWarningData
20149	raw := NoMethod(*s)
20150	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20151}
20152
20153// TargetPool: A TargetPool resource. This resource defines a pool of
20154// instances, an associated HttpHealthCheck resource, and the fallback
20155// target pool. (== resource_for beta.targetPools ==) (== resource_for
20156// v1.targetPools ==)
20157type TargetPool struct {
20158	// BackupPool: This field is applicable only when the containing target
20159	// pool is serving a forwarding rule as the primary pool, and its
20160	// failoverRatio field is properly set to a value between [0,
20161	// 1].
20162	//
20163	// backupPool and failoverRatio together define the fallback behavior of
20164	// the primary target pool: if the ratio of the healthy instances in the
20165	// primary pool is at or below failoverRatio, traffic arriving at the
20166	// load-balanced IP will be directed to the backup pool.
20167	//
20168	// In case where failoverRatio and backupPool are not set, or all the
20169	// instances in the backup pool are unhealthy, the traffic will be
20170	// directed back to the primary pool in the "force" mode, where traffic
20171	// will be spread to the healthy instances with the best effort, or to
20172	// all instances when no instance is healthy.
20173	BackupPool string `json:"backupPool,omitempty"`
20174
20175	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20176	// format.
20177	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20178
20179	// Description: An optional description of this resource. Provide this
20180	// property when you create the resource.
20181	Description string `json:"description,omitempty"`
20182
20183	// FailoverRatio: This field is applicable only when the containing
20184	// target pool is serving a forwarding rule as the primary pool (i.e.,
20185	// not as a backup pool to some other target pool). The value of the
20186	// field must be in [0, 1].
20187	//
20188	// If set, backupPool must also be set. They together define the
20189	// fallback behavior of the primary target pool: if the ratio of the
20190	// healthy instances in the primary pool is at or below this number,
20191	// traffic arriving at the load-balanced IP will be directed to the
20192	// backup pool.
20193	//
20194	// In case where failoverRatio is not set or all the instances in the
20195	// backup pool are unhealthy, the traffic will be directed back to the
20196	// primary pool in the "force" mode, where traffic will be spread to the
20197	// healthy instances with the best effort, or to all instances when no
20198	// instance is healthy.
20199	FailoverRatio float64 `json:"failoverRatio,omitempty"`
20200
20201	// HealthChecks: The URL of the HttpHealthCheck resource. A member
20202	// instance in this pool is considered healthy if and only if the health
20203	// checks pass. An empty list means all member instances will be
20204	// considered healthy at all times. Only HttpHealthChecks are supported.
20205	// Only one health check may be specified.
20206	HealthChecks []string `json:"healthChecks,omitempty"`
20207
20208	// Id: [Output Only] The unique identifier for the resource. This
20209	// identifier is defined by the server.
20210	Id uint64 `json:"id,omitempty,string"`
20211
20212	// Instances: A list of resource URLs to the virtual machine instances
20213	// serving this pool. They must live in zones contained in the same
20214	// region as this pool.
20215	Instances []string `json:"instances,omitempty"`
20216
20217	// Kind: [Output Only] Type of the resource. Always compute#targetPool
20218	// for target pools.
20219	Kind string `json:"kind,omitempty"`
20220
20221	// Name: Name of the resource. Provided by the client when the resource
20222	// is created. The name must be 1-63 characters long, and comply with
20223	// RFC1035. Specifically, the name must be 1-63 characters long and
20224	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
20225	// the first character must be a lowercase letter, and all following
20226	// characters must be a dash, lowercase letter, or digit, except the
20227	// last character, which cannot be a dash.
20228	Name string `json:"name,omitempty"`
20229
20230	// Region: [Output Only] URL of the region where the target pool
20231	// resides.
20232	Region string `json:"region,omitempty"`
20233
20234	// SelfLink: [Output Only] Server-defined URL for the resource.
20235	SelfLink string `json:"selfLink,omitempty"`
20236
20237	// SessionAffinity: Sesssion affinity option, must be one of the
20238	// following values:
20239	// NONE: Connections from the same client IP may go to any instance in
20240	// the pool.
20241	// CLIENT_IP: Connections from the same client IP will go to the same
20242	// instance in the pool while that instance remains
20243	// healthy.
20244	// CLIENT_IP_PROTO: Connections from the same client IP with the same IP
20245	// protocol will go to the same instance in the pool while that instance
20246	// remains healthy.
20247	//
20248	// Possible values:
20249	//   "CLIENT_IP"
20250	//   "CLIENT_IP_PORT_PROTO"
20251	//   "CLIENT_IP_PROTO"
20252	//   "GENERATED_COOKIE"
20253	//   "NONE"
20254	SessionAffinity string `json:"sessionAffinity,omitempty"`
20255
20256	// ServerResponse contains the HTTP response code and headers from the
20257	// server.
20258	googleapi.ServerResponse `json:"-"`
20259
20260	// ForceSendFields is a list of field names (e.g. "BackupPool") to
20261	// unconditionally include in API requests. By default, fields with
20262	// empty values are omitted from API requests. However, any non-pointer,
20263	// non-interface field appearing in ForceSendFields will be sent to the
20264	// server regardless of whether the field is empty or not. This may be
20265	// used to include empty fields in Patch requests.
20266	ForceSendFields []string `json:"-"`
20267
20268	// NullFields is a list of field names (e.g. "BackupPool") to include in
20269	// API requests with the JSON null value. By default, fields with empty
20270	// values are omitted from API requests. However, any field with an
20271	// empty value appearing in NullFields will be sent to the server as
20272	// null. It is an error if a field in this list has a non-empty value.
20273	// This may be used to include null fields in Patch requests.
20274	NullFields []string `json:"-"`
20275}
20276
20277func (s *TargetPool) MarshalJSON() ([]byte, error) {
20278	type NoMethod TargetPool
20279	raw := NoMethod(*s)
20280	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20281}
20282
20283func (s *TargetPool) UnmarshalJSON(data []byte) error {
20284	type NoMethod TargetPool
20285	var s1 struct {
20286		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
20287		*NoMethod
20288	}
20289	s1.NoMethod = (*NoMethod)(s)
20290	if err := json.Unmarshal(data, &s1); err != nil {
20291		return err
20292	}
20293	s.FailoverRatio = float64(s1.FailoverRatio)
20294	return nil
20295}
20296
20297type TargetPoolAggregatedList struct {
20298	// Id: [Output Only] Unique identifier for the resource; defined by the
20299	// server.
20300	Id string `json:"id,omitempty"`
20301
20302	// Items: A list of TargetPool resources.
20303	Items map[string]TargetPoolsScopedList `json:"items,omitempty"`
20304
20305	// Kind: [Output Only] Type of resource. Always
20306	// compute#targetPoolAggregatedList for aggregated lists of target
20307	// pools.
20308	Kind string `json:"kind,omitempty"`
20309
20310	// NextPageToken: [Output Only] This token allows you to get the next
20311	// page of results for list requests. If the number of results is larger
20312	// than maxResults, use the nextPageToken as a value for the query
20313	// parameter pageToken in the next list request. Subsequent list
20314	// requests will have their own nextPageToken to continue paging through
20315	// the results.
20316	NextPageToken string `json:"nextPageToken,omitempty"`
20317
20318	// SelfLink: [Output Only] Server-defined URL for this resource.
20319	SelfLink string `json:"selfLink,omitempty"`
20320
20321	// Warning: [Output Only] Informational warning message.
20322	Warning *TargetPoolAggregatedListWarning `json:"warning,omitempty"`
20323
20324	// ServerResponse contains the HTTP response code and headers from the
20325	// server.
20326	googleapi.ServerResponse `json:"-"`
20327
20328	// ForceSendFields is a list of field names (e.g. "Id") to
20329	// unconditionally include in API requests. By default, fields with
20330	// empty values are omitted from API requests. However, any non-pointer,
20331	// non-interface field appearing in ForceSendFields will be sent to the
20332	// server regardless of whether the field is empty or not. This may be
20333	// used to include empty fields in Patch requests.
20334	ForceSendFields []string `json:"-"`
20335
20336	// NullFields is a list of field names (e.g. "Id") to include in API
20337	// requests with the JSON null value. By default, fields with empty
20338	// values are omitted from API requests. However, any field with an
20339	// empty value appearing in NullFields will be sent to the server as
20340	// null. It is an error if a field in this list has a non-empty value.
20341	// This may be used to include null fields in Patch requests.
20342	NullFields []string `json:"-"`
20343}
20344
20345func (s *TargetPoolAggregatedList) MarshalJSON() ([]byte, error) {
20346	type NoMethod TargetPoolAggregatedList
20347	raw := NoMethod(*s)
20348	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20349}
20350
20351// TargetPoolAggregatedListWarning: [Output Only] Informational warning
20352// message.
20353type TargetPoolAggregatedListWarning struct {
20354	// Code: [Output Only] A warning code, if applicable. For example,
20355	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20356	// the response.
20357	//
20358	// Possible values:
20359	//   "CLEANUP_FAILED"
20360	//   "DEPRECATED_RESOURCE_USED"
20361	//   "DEPRECATED_TYPE_USED"
20362	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20363	//   "EXPERIMENTAL_TYPE_USED"
20364	//   "EXTERNAL_API_WARNING"
20365	//   "FIELD_VALUE_OVERRIDEN"
20366	//   "INJECTED_KERNELS_DEPRECATED"
20367	//   "MISSING_TYPE_DEPENDENCY"
20368	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20369	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20370	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20371	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20372	//   "NEXT_HOP_NOT_RUNNING"
20373	//   "NOT_CRITICAL_ERROR"
20374	//   "NO_RESULTS_ON_PAGE"
20375	//   "REQUIRED_TOS_AGREEMENT"
20376	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20377	//   "RESOURCE_NOT_DELETED"
20378	//   "SCHEMA_VALIDATION_IGNORED"
20379	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20380	//   "UNDECLARED_PROPERTIES"
20381	//   "UNREACHABLE"
20382	Code string `json:"code,omitempty"`
20383
20384	// Data: [Output Only] Metadata about this warning in key: value format.
20385	// For example:
20386	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20387	Data []*TargetPoolAggregatedListWarningData `json:"data,omitempty"`
20388
20389	// Message: [Output Only] A human-readable description of the warning
20390	// code.
20391	Message string `json:"message,omitempty"`
20392
20393	// ForceSendFields is a list of field names (e.g. "Code") to
20394	// unconditionally include in API requests. By default, fields with
20395	// empty values are omitted from API requests. However, any non-pointer,
20396	// non-interface field appearing in ForceSendFields will be sent to the
20397	// server regardless of whether the field is empty or not. This may be
20398	// used to include empty fields in Patch requests.
20399	ForceSendFields []string `json:"-"`
20400
20401	// NullFields is a list of field names (e.g. "Code") to include in API
20402	// requests with the JSON null value. By default, fields with empty
20403	// values are omitted from API requests. However, any field with an
20404	// empty value appearing in NullFields will be sent to the server as
20405	// null. It is an error if a field in this list has a non-empty value.
20406	// This may be used to include null fields in Patch requests.
20407	NullFields []string `json:"-"`
20408}
20409
20410func (s *TargetPoolAggregatedListWarning) MarshalJSON() ([]byte, error) {
20411	type NoMethod TargetPoolAggregatedListWarning
20412	raw := NoMethod(*s)
20413	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20414}
20415
20416type TargetPoolAggregatedListWarningData struct {
20417	// Key: [Output Only] A key that provides more detail on the warning
20418	// being returned. For example, for warnings where there are no results
20419	// in a list request for a particular zone, this key might be scope and
20420	// the key value might be the zone name. Other examples might be a key
20421	// indicating a deprecated resource and a suggested replacement, or a
20422	// warning about invalid network settings (for example, if an instance
20423	// attempts to perform IP forwarding but is not enabled for IP
20424	// forwarding).
20425	Key string `json:"key,omitempty"`
20426
20427	// Value: [Output Only] A warning data value corresponding to the key.
20428	Value string `json:"value,omitempty"`
20429
20430	// ForceSendFields is a list of field names (e.g. "Key") to
20431	// unconditionally include in API requests. By default, fields with
20432	// empty values are omitted from API requests. However, any non-pointer,
20433	// non-interface field appearing in ForceSendFields will be sent to the
20434	// server regardless of whether the field is empty or not. This may be
20435	// used to include empty fields in Patch requests.
20436	ForceSendFields []string `json:"-"`
20437
20438	// NullFields is a list of field names (e.g. "Key") to include in API
20439	// requests with the JSON null value. By default, fields with empty
20440	// values are omitted from API requests. However, any field with an
20441	// empty value appearing in NullFields will be sent to the server as
20442	// null. It is an error if a field in this list has a non-empty value.
20443	// This may be used to include null fields in Patch requests.
20444	NullFields []string `json:"-"`
20445}
20446
20447func (s *TargetPoolAggregatedListWarningData) MarshalJSON() ([]byte, error) {
20448	type NoMethod TargetPoolAggregatedListWarningData
20449	raw := NoMethod(*s)
20450	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20451}
20452
20453type TargetPoolInstanceHealth struct {
20454	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
20455
20456	// Kind: [Output Only] Type of resource. Always
20457	// compute#targetPoolInstanceHealth when checking the health of an
20458	// instance.
20459	Kind string `json:"kind,omitempty"`
20460
20461	// ServerResponse contains the HTTP response code and headers from the
20462	// server.
20463	googleapi.ServerResponse `json:"-"`
20464
20465	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
20466	// unconditionally include in API requests. By default, fields with
20467	// empty values are omitted from API requests. However, any non-pointer,
20468	// non-interface field appearing in ForceSendFields will be sent to the
20469	// server regardless of whether the field is empty or not. This may be
20470	// used to include empty fields in Patch requests.
20471	ForceSendFields []string `json:"-"`
20472
20473	// NullFields is a list of field names (e.g. "HealthStatus") to include
20474	// in API requests with the JSON null value. By default, fields with
20475	// empty values are omitted from API requests. However, any field with
20476	// an empty value appearing in NullFields will be sent to the server as
20477	// null. It is an error if a field in this list has a non-empty value.
20478	// This may be used to include null fields in Patch requests.
20479	NullFields []string `json:"-"`
20480}
20481
20482func (s *TargetPoolInstanceHealth) MarshalJSON() ([]byte, error) {
20483	type NoMethod TargetPoolInstanceHealth
20484	raw := NoMethod(*s)
20485	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20486}
20487
20488// TargetPoolList: Contains a list of TargetPool resources.
20489type TargetPoolList struct {
20490	// Id: [Output Only] Unique identifier for the resource; defined by the
20491	// server.
20492	Id string `json:"id,omitempty"`
20493
20494	// Items: A list of TargetPool resources.
20495	Items []*TargetPool `json:"items,omitempty"`
20496
20497	// Kind: [Output Only] Type of resource. Always compute#targetPoolList
20498	// for lists of target pools.
20499	Kind string `json:"kind,omitempty"`
20500
20501	// NextPageToken: [Output Only] This token allows you to get the next
20502	// page of results for list requests. If the number of results is larger
20503	// than maxResults, use the nextPageToken as a value for the query
20504	// parameter pageToken in the next list request. Subsequent list
20505	// requests will have their own nextPageToken to continue paging through
20506	// the results.
20507	NextPageToken string `json:"nextPageToken,omitempty"`
20508
20509	// SelfLink: [Output Only] Server-defined URL for this resource.
20510	SelfLink string `json:"selfLink,omitempty"`
20511
20512	// Warning: [Output Only] Informational warning message.
20513	Warning *TargetPoolListWarning `json:"warning,omitempty"`
20514
20515	// ServerResponse contains the HTTP response code and headers from the
20516	// server.
20517	googleapi.ServerResponse `json:"-"`
20518
20519	// ForceSendFields is a list of field names (e.g. "Id") to
20520	// unconditionally include in API requests. By default, fields with
20521	// empty values are omitted from API requests. However, any non-pointer,
20522	// non-interface field appearing in ForceSendFields will be sent to the
20523	// server regardless of whether the field is empty or not. This may be
20524	// used to include empty fields in Patch requests.
20525	ForceSendFields []string `json:"-"`
20526
20527	// NullFields is a list of field names (e.g. "Id") to include in API
20528	// requests with the JSON null value. By default, fields with empty
20529	// values are omitted from API requests. However, any field with an
20530	// empty value appearing in NullFields will be sent to the server as
20531	// null. It is an error if a field in this list has a non-empty value.
20532	// This may be used to include null fields in Patch requests.
20533	NullFields []string `json:"-"`
20534}
20535
20536func (s *TargetPoolList) MarshalJSON() ([]byte, error) {
20537	type NoMethod TargetPoolList
20538	raw := NoMethod(*s)
20539	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20540}
20541
20542// TargetPoolListWarning: [Output Only] Informational warning message.
20543type TargetPoolListWarning struct {
20544	// Code: [Output Only] A warning code, if applicable. For example,
20545	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20546	// the response.
20547	//
20548	// Possible values:
20549	//   "CLEANUP_FAILED"
20550	//   "DEPRECATED_RESOURCE_USED"
20551	//   "DEPRECATED_TYPE_USED"
20552	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20553	//   "EXPERIMENTAL_TYPE_USED"
20554	//   "EXTERNAL_API_WARNING"
20555	//   "FIELD_VALUE_OVERRIDEN"
20556	//   "INJECTED_KERNELS_DEPRECATED"
20557	//   "MISSING_TYPE_DEPENDENCY"
20558	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20559	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20560	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20561	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20562	//   "NEXT_HOP_NOT_RUNNING"
20563	//   "NOT_CRITICAL_ERROR"
20564	//   "NO_RESULTS_ON_PAGE"
20565	//   "REQUIRED_TOS_AGREEMENT"
20566	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20567	//   "RESOURCE_NOT_DELETED"
20568	//   "SCHEMA_VALIDATION_IGNORED"
20569	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20570	//   "UNDECLARED_PROPERTIES"
20571	//   "UNREACHABLE"
20572	Code string `json:"code,omitempty"`
20573
20574	// Data: [Output Only] Metadata about this warning in key: value format.
20575	// For example:
20576	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20577	Data []*TargetPoolListWarningData `json:"data,omitempty"`
20578
20579	// Message: [Output Only] A human-readable description of the warning
20580	// code.
20581	Message string `json:"message,omitempty"`
20582
20583	// ForceSendFields is a list of field names (e.g. "Code") to
20584	// unconditionally include in API requests. By default, fields with
20585	// empty values are omitted from API requests. However, any non-pointer,
20586	// non-interface field appearing in ForceSendFields will be sent to the
20587	// server regardless of whether the field is empty or not. This may be
20588	// used to include empty fields in Patch requests.
20589	ForceSendFields []string `json:"-"`
20590
20591	// NullFields is a list of field names (e.g. "Code") to include in API
20592	// requests with the JSON null value. By default, fields with empty
20593	// values are omitted from API requests. However, any field with an
20594	// empty value appearing in NullFields will be sent to the server as
20595	// null. It is an error if a field in this list has a non-empty value.
20596	// This may be used to include null fields in Patch requests.
20597	NullFields []string `json:"-"`
20598}
20599
20600func (s *TargetPoolListWarning) MarshalJSON() ([]byte, error) {
20601	type NoMethod TargetPoolListWarning
20602	raw := NoMethod(*s)
20603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20604}
20605
20606type TargetPoolListWarningData struct {
20607	// Key: [Output Only] A key that provides more detail on the warning
20608	// being returned. For example, for warnings where there are no results
20609	// in a list request for a particular zone, this key might be scope and
20610	// the key value might be the zone name. Other examples might be a key
20611	// indicating a deprecated resource and a suggested replacement, or a
20612	// warning about invalid network settings (for example, if an instance
20613	// attempts to perform IP forwarding but is not enabled for IP
20614	// forwarding).
20615	Key string `json:"key,omitempty"`
20616
20617	// Value: [Output Only] A warning data value corresponding to the key.
20618	Value string `json:"value,omitempty"`
20619
20620	// ForceSendFields is a list of field names (e.g. "Key") to
20621	// unconditionally include in API requests. By default, fields with
20622	// empty values are omitted from API requests. However, any non-pointer,
20623	// non-interface field appearing in ForceSendFields will be sent to the
20624	// server regardless of whether the field is empty or not. This may be
20625	// used to include empty fields in Patch requests.
20626	ForceSendFields []string `json:"-"`
20627
20628	// NullFields is a list of field names (e.g. "Key") to include in API
20629	// requests with the JSON null value. By default, fields with empty
20630	// values are omitted from API requests. However, any field with an
20631	// empty value appearing in NullFields will be sent to the server as
20632	// null. It is an error if a field in this list has a non-empty value.
20633	// This may be used to include null fields in Patch requests.
20634	NullFields []string `json:"-"`
20635}
20636
20637func (s *TargetPoolListWarningData) MarshalJSON() ([]byte, error) {
20638	type NoMethod TargetPoolListWarningData
20639	raw := NoMethod(*s)
20640	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20641}
20642
20643type TargetPoolsAddHealthCheckRequest struct {
20644	// HealthChecks: The HttpHealthCheck to add to the target pool.
20645	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
20646
20647	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
20648	// unconditionally include in API requests. By default, fields with
20649	// empty values are omitted from API requests. However, any non-pointer,
20650	// non-interface field appearing in ForceSendFields will be sent to the
20651	// server regardless of whether the field is empty or not. This may be
20652	// used to include empty fields in Patch requests.
20653	ForceSendFields []string `json:"-"`
20654
20655	// NullFields is a list of field names (e.g. "HealthChecks") to include
20656	// in API requests with the JSON null value. By default, fields with
20657	// empty values are omitted from API requests. However, any field with
20658	// an empty value appearing in NullFields will be sent to the server as
20659	// null. It is an error if a field in this list has a non-empty value.
20660	// This may be used to include null fields in Patch requests.
20661	NullFields []string `json:"-"`
20662}
20663
20664func (s *TargetPoolsAddHealthCheckRequest) MarshalJSON() ([]byte, error) {
20665	type NoMethod TargetPoolsAddHealthCheckRequest
20666	raw := NoMethod(*s)
20667	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20668}
20669
20670type TargetPoolsAddInstanceRequest struct {
20671	// Instances: A full or partial URL to an instance to add to this target
20672	// pool. This can be a full or partial URL. For example, the following
20673	// are valid URLs:
20674	// -
20675	// https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name
20676	// - projects/project-id/zones/zone/instances/instance-name
20677	// - zones/zone/instances/instance-name
20678	Instances []*InstanceReference `json:"instances,omitempty"`
20679
20680	// ForceSendFields is a list of field names (e.g. "Instances") to
20681	// unconditionally include in API requests. By default, fields with
20682	// empty values are omitted from API requests. However, any non-pointer,
20683	// non-interface field appearing in ForceSendFields will be sent to the
20684	// server regardless of whether the field is empty or not. This may be
20685	// used to include empty fields in Patch requests.
20686	ForceSendFields []string `json:"-"`
20687
20688	// NullFields is a list of field names (e.g. "Instances") to include in
20689	// API requests with the JSON null value. By default, fields with empty
20690	// values are omitted from API requests. However, any field with an
20691	// empty value appearing in NullFields will be sent to the server as
20692	// null. It is an error if a field in this list has a non-empty value.
20693	// This may be used to include null fields in Patch requests.
20694	NullFields []string `json:"-"`
20695}
20696
20697func (s *TargetPoolsAddInstanceRequest) MarshalJSON() ([]byte, error) {
20698	type NoMethod TargetPoolsAddInstanceRequest
20699	raw := NoMethod(*s)
20700	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20701}
20702
20703type TargetPoolsRemoveHealthCheckRequest struct {
20704	// HealthChecks: Health check URL to be removed. This can be a full or
20705	// valid partial URL. For example, the following are valid URLs:
20706	// -
20707	// https://www.googleapis.com/compute/beta/projects/project/global/httpHealthChecks/health-check
20708	// - projects/project/global/httpHealthChecks/health-check
20709	// - global/httpHealthChecks/health-check
20710	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
20711
20712	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
20713	// unconditionally include in API requests. By default, fields with
20714	// empty values are omitted from API requests. However, any non-pointer,
20715	// non-interface field appearing in ForceSendFields will be sent to the
20716	// server regardless of whether the field is empty or not. This may be
20717	// used to include empty fields in Patch requests.
20718	ForceSendFields []string `json:"-"`
20719
20720	// NullFields is a list of field names (e.g. "HealthChecks") to include
20721	// in API requests with the JSON null value. By default, fields with
20722	// empty values are omitted from API requests. However, any field with
20723	// an empty value appearing in NullFields will be sent to the server as
20724	// null. It is an error if a field in this list has a non-empty value.
20725	// This may be used to include null fields in Patch requests.
20726	NullFields []string `json:"-"`
20727}
20728
20729func (s *TargetPoolsRemoveHealthCheckRequest) MarshalJSON() ([]byte, error) {
20730	type NoMethod TargetPoolsRemoveHealthCheckRequest
20731	raw := NoMethod(*s)
20732	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20733}
20734
20735type TargetPoolsRemoveInstanceRequest struct {
20736	// Instances: URLs of the instances to be removed from target pool.
20737	Instances []*InstanceReference `json:"instances,omitempty"`
20738
20739	// ForceSendFields is a list of field names (e.g. "Instances") to
20740	// unconditionally include in API requests. By default, fields with
20741	// empty values are omitted from API requests. However, any non-pointer,
20742	// non-interface field appearing in ForceSendFields will be sent to the
20743	// server regardless of whether the field is empty or not. This may be
20744	// used to include empty fields in Patch requests.
20745	ForceSendFields []string `json:"-"`
20746
20747	// NullFields is a list of field names (e.g. "Instances") to include in
20748	// API requests with the JSON null value. By default, fields with empty
20749	// values are omitted from API requests. However, any field with an
20750	// empty value appearing in NullFields will be sent to the server as
20751	// null. It is an error if a field in this list has a non-empty value.
20752	// This may be used to include null fields in Patch requests.
20753	NullFields []string `json:"-"`
20754}
20755
20756func (s *TargetPoolsRemoveInstanceRequest) MarshalJSON() ([]byte, error) {
20757	type NoMethod TargetPoolsRemoveInstanceRequest
20758	raw := NoMethod(*s)
20759	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20760}
20761
20762type TargetPoolsScopedList struct {
20763	// TargetPools: List of target pools contained in this scope.
20764	TargetPools []*TargetPool `json:"targetPools,omitempty"`
20765
20766	// Warning: Informational warning which replaces the list of addresses
20767	// when the list is empty.
20768	Warning *TargetPoolsScopedListWarning `json:"warning,omitempty"`
20769
20770	// ForceSendFields is a list of field names (e.g. "TargetPools") to
20771	// unconditionally include in API requests. By default, fields with
20772	// empty values are omitted from API requests. However, any non-pointer,
20773	// non-interface field appearing in ForceSendFields will be sent to the
20774	// server regardless of whether the field is empty or not. This may be
20775	// used to include empty fields in Patch requests.
20776	ForceSendFields []string `json:"-"`
20777
20778	// NullFields is a list of field names (e.g. "TargetPools") to include
20779	// in API requests with the JSON null value. By default, fields with
20780	// empty values are omitted from API requests. However, any field with
20781	// an empty value appearing in NullFields will be sent to the server as
20782	// null. It is an error if a field in this list has a non-empty value.
20783	// This may be used to include null fields in Patch requests.
20784	NullFields []string `json:"-"`
20785}
20786
20787func (s *TargetPoolsScopedList) MarshalJSON() ([]byte, error) {
20788	type NoMethod TargetPoolsScopedList
20789	raw := NoMethod(*s)
20790	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20791}
20792
20793// TargetPoolsScopedListWarning: Informational warning which replaces
20794// the list of addresses when the list is empty.
20795type TargetPoolsScopedListWarning struct {
20796	// Code: [Output Only] A warning code, if applicable. For example,
20797	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20798	// the response.
20799	//
20800	// Possible values:
20801	//   "CLEANUP_FAILED"
20802	//   "DEPRECATED_RESOURCE_USED"
20803	//   "DEPRECATED_TYPE_USED"
20804	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20805	//   "EXPERIMENTAL_TYPE_USED"
20806	//   "EXTERNAL_API_WARNING"
20807	//   "FIELD_VALUE_OVERRIDEN"
20808	//   "INJECTED_KERNELS_DEPRECATED"
20809	//   "MISSING_TYPE_DEPENDENCY"
20810	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20811	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20812	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20813	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20814	//   "NEXT_HOP_NOT_RUNNING"
20815	//   "NOT_CRITICAL_ERROR"
20816	//   "NO_RESULTS_ON_PAGE"
20817	//   "REQUIRED_TOS_AGREEMENT"
20818	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20819	//   "RESOURCE_NOT_DELETED"
20820	//   "SCHEMA_VALIDATION_IGNORED"
20821	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20822	//   "UNDECLARED_PROPERTIES"
20823	//   "UNREACHABLE"
20824	Code string `json:"code,omitempty"`
20825
20826	// Data: [Output Only] Metadata about this warning in key: value format.
20827	// For example:
20828	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20829	Data []*TargetPoolsScopedListWarningData `json:"data,omitempty"`
20830
20831	// Message: [Output Only] A human-readable description of the warning
20832	// code.
20833	Message string `json:"message,omitempty"`
20834
20835	// ForceSendFields is a list of field names (e.g. "Code") to
20836	// unconditionally include in API requests. By default, fields with
20837	// empty values are omitted from API requests. However, any non-pointer,
20838	// non-interface field appearing in ForceSendFields will be sent to the
20839	// server regardless of whether the field is empty or not. This may be
20840	// used to include empty fields in Patch requests.
20841	ForceSendFields []string `json:"-"`
20842
20843	// NullFields is a list of field names (e.g. "Code") to include in API
20844	// requests with the JSON null value. By default, fields with empty
20845	// values are omitted from API requests. However, any field with an
20846	// empty value appearing in NullFields will be sent to the server as
20847	// null. It is an error if a field in this list has a non-empty value.
20848	// This may be used to include null fields in Patch requests.
20849	NullFields []string `json:"-"`
20850}
20851
20852func (s *TargetPoolsScopedListWarning) MarshalJSON() ([]byte, error) {
20853	type NoMethod TargetPoolsScopedListWarning
20854	raw := NoMethod(*s)
20855	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20856}
20857
20858type TargetPoolsScopedListWarningData struct {
20859	// Key: [Output Only] A key that provides more detail on the warning
20860	// being returned. For example, for warnings where there are no results
20861	// in a list request for a particular zone, this key might be scope and
20862	// the key value might be the zone name. Other examples might be a key
20863	// indicating a deprecated resource and a suggested replacement, or a
20864	// warning about invalid network settings (for example, if an instance
20865	// attempts to perform IP forwarding but is not enabled for IP
20866	// forwarding).
20867	Key string `json:"key,omitempty"`
20868
20869	// Value: [Output Only] A warning data value corresponding to the key.
20870	Value string `json:"value,omitempty"`
20871
20872	// ForceSendFields is a list of field names (e.g. "Key") to
20873	// unconditionally include in API requests. By default, fields with
20874	// empty values are omitted from API requests. However, any non-pointer,
20875	// non-interface field appearing in ForceSendFields will be sent to the
20876	// server regardless of whether the field is empty or not. This may be
20877	// used to include empty fields in Patch requests.
20878	ForceSendFields []string `json:"-"`
20879
20880	// NullFields is a list of field names (e.g. "Key") to include in API
20881	// requests with the JSON null value. By default, fields with empty
20882	// values are omitted from API requests. However, any field with an
20883	// empty value appearing in NullFields will be sent to the server as
20884	// null. It is an error if a field in this list has a non-empty value.
20885	// This may be used to include null fields in Patch requests.
20886	NullFields []string `json:"-"`
20887}
20888
20889func (s *TargetPoolsScopedListWarningData) MarshalJSON() ([]byte, error) {
20890	type NoMethod TargetPoolsScopedListWarningData
20891	raw := NoMethod(*s)
20892	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20893}
20894
20895type TargetReference struct {
20896	Target string `json:"target,omitempty"`
20897
20898	// ForceSendFields is a list of field names (e.g. "Target") to
20899	// unconditionally include in API requests. By default, fields with
20900	// empty values are omitted from API requests. However, any non-pointer,
20901	// non-interface field appearing in ForceSendFields will be sent to the
20902	// server regardless of whether the field is empty or not. This may be
20903	// used to include empty fields in Patch requests.
20904	ForceSendFields []string `json:"-"`
20905
20906	// NullFields is a list of field names (e.g. "Target") to include in API
20907	// requests with the JSON null value. By default, fields with empty
20908	// values are omitted from API requests. However, any field with an
20909	// empty value appearing in NullFields will be sent to the server as
20910	// null. It is an error if a field in this list has a non-empty value.
20911	// This may be used to include null fields in Patch requests.
20912	NullFields []string `json:"-"`
20913}
20914
20915func (s *TargetReference) MarshalJSON() ([]byte, error) {
20916	type NoMethod TargetReference
20917	raw := NoMethod(*s)
20918	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20919}
20920
20921type TargetSslProxiesSetBackendServiceRequest struct {
20922	// Service: The URL of the new BackendService resource for the
20923	// targetSslProxy.
20924	Service string `json:"service,omitempty"`
20925
20926	// ForceSendFields is a list of field names (e.g. "Service") to
20927	// unconditionally include in API requests. By default, fields with
20928	// empty values are omitted from API requests. However, any non-pointer,
20929	// non-interface field appearing in ForceSendFields will be sent to the
20930	// server regardless of whether the field is empty or not. This may be
20931	// used to include empty fields in Patch requests.
20932	ForceSendFields []string `json:"-"`
20933
20934	// NullFields is a list of field names (e.g. "Service") to include in
20935	// API requests with the JSON null value. By default, fields with empty
20936	// values are omitted from API requests. However, any field with an
20937	// empty value appearing in NullFields will be sent to the server as
20938	// null. It is an error if a field in this list has a non-empty value.
20939	// This may be used to include null fields in Patch requests.
20940	NullFields []string `json:"-"`
20941}
20942
20943func (s *TargetSslProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
20944	type NoMethod TargetSslProxiesSetBackendServiceRequest
20945	raw := NoMethod(*s)
20946	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20947}
20948
20949type TargetSslProxiesSetProxyHeaderRequest struct {
20950	// ProxyHeader: The new type of proxy header to append before sending
20951	// data to the backend. NONE or PROXY_V1 are allowed.
20952	//
20953	// Possible values:
20954	//   "NONE"
20955	//   "PROXY_V1"
20956	ProxyHeader string `json:"proxyHeader,omitempty"`
20957
20958	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
20959	// unconditionally include in API requests. By default, fields with
20960	// empty values are omitted from API requests. However, any non-pointer,
20961	// non-interface field appearing in ForceSendFields will be sent to the
20962	// server regardless of whether the field is empty or not. This may be
20963	// used to include empty fields in Patch requests.
20964	ForceSendFields []string `json:"-"`
20965
20966	// NullFields is a list of field names (e.g. "ProxyHeader") to include
20967	// in API requests with the JSON null value. By default, fields with
20968	// empty values are omitted from API requests. However, any field with
20969	// an empty value appearing in NullFields will be sent to the server as
20970	// null. It is an error if a field in this list has a non-empty value.
20971	// This may be used to include null fields in Patch requests.
20972	NullFields []string `json:"-"`
20973}
20974
20975func (s *TargetSslProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
20976	type NoMethod TargetSslProxiesSetProxyHeaderRequest
20977	raw := NoMethod(*s)
20978	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20979}
20980
20981type TargetSslProxiesSetSslCertificatesRequest struct {
20982	// SslCertificates: New set of URLs to SslCertificate resources to
20983	// associate with this TargetSslProxy. Currently exactly one ssl
20984	// certificate must be specified.
20985	SslCertificates []string `json:"sslCertificates,omitempty"`
20986
20987	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
20988	// unconditionally include in API requests. By default, fields with
20989	// empty values are omitted from API requests. However, any non-pointer,
20990	// non-interface field appearing in ForceSendFields will be sent to the
20991	// server regardless of whether the field is empty or not. This may be
20992	// used to include empty fields in Patch requests.
20993	ForceSendFields []string `json:"-"`
20994
20995	// NullFields is a list of field names (e.g. "SslCertificates") to
20996	// include in API requests with the JSON null value. By default, fields
20997	// with empty values are omitted from API requests. However, any field
20998	// with an empty value appearing in NullFields will be sent to the
20999	// server as null. It is an error if a field in this list has a
21000	// non-empty value. This may be used to include null fields in Patch
21001	// requests.
21002	NullFields []string `json:"-"`
21003}
21004
21005func (s *TargetSslProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
21006	type NoMethod TargetSslProxiesSetSslCertificatesRequest
21007	raw := NoMethod(*s)
21008	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21009}
21010
21011// TargetSslProxy: A TargetSslProxy resource. This resource defines an
21012// SSL proxy. (== resource_for beta.targetSslProxies ==) (==
21013// resource_for v1.targetSslProxies ==)
21014type TargetSslProxy struct {
21015	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21016	// format.
21017	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21018
21019	// Description: An optional description of this resource. Provide this
21020	// property when you create the resource.
21021	Description string `json:"description,omitempty"`
21022
21023	// Id: [Output Only] The unique identifier for the resource. This
21024	// identifier is defined by the server.
21025	Id uint64 `json:"id,omitempty,string"`
21026
21027	// Kind: [Output Only] Type of the resource. Always
21028	// compute#targetSslProxy for target SSL proxies.
21029	Kind string `json:"kind,omitempty"`
21030
21031	// Name: Name of the resource. Provided by the client when the resource
21032	// is created. The name must be 1-63 characters long, and comply with
21033	// RFC1035. Specifically, the name must be 1-63 characters long and
21034	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
21035	// the first character must be a lowercase letter, and all following
21036	// characters must be a dash, lowercase letter, or digit, except the
21037	// last character, which cannot be a dash.
21038	Name string `json:"name,omitempty"`
21039
21040	// ProxyHeader: Specifies the type of proxy header to append before
21041	// sending data to the backend, either NONE or PROXY_V1. The default is
21042	// NONE.
21043	//
21044	// Possible values:
21045	//   "NONE"
21046	//   "PROXY_V1"
21047	ProxyHeader string `json:"proxyHeader,omitempty"`
21048
21049	// SelfLink: [Output Only] Server-defined URL for the resource.
21050	SelfLink string `json:"selfLink,omitempty"`
21051
21052	// Service: URL to the BackendService resource.
21053	Service string `json:"service,omitempty"`
21054
21055	// SslCertificates: URLs to SslCertificate resources that are used to
21056	// authenticate connections to Backends. Currently exactly one SSL
21057	// certificate must be specified.
21058	SslCertificates []string `json:"sslCertificates,omitempty"`
21059
21060	// ServerResponse contains the HTTP response code and headers from the
21061	// server.
21062	googleapi.ServerResponse `json:"-"`
21063
21064	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
21065	// to unconditionally include in API requests. By default, fields with
21066	// empty values are omitted from API requests. However, any non-pointer,
21067	// non-interface field appearing in ForceSendFields will be sent to the
21068	// server regardless of whether the field is empty or not. This may be
21069	// used to include empty fields in Patch requests.
21070	ForceSendFields []string `json:"-"`
21071
21072	// NullFields is a list of field names (e.g. "CreationTimestamp") to
21073	// include in API requests with the JSON null value. By default, fields
21074	// with empty values are omitted from API requests. However, any field
21075	// with an empty value appearing in NullFields will be sent to the
21076	// server as null. It is an error if a field in this list has a
21077	// non-empty value. This may be used to include null fields in Patch
21078	// requests.
21079	NullFields []string `json:"-"`
21080}
21081
21082func (s *TargetSslProxy) MarshalJSON() ([]byte, error) {
21083	type NoMethod TargetSslProxy
21084	raw := NoMethod(*s)
21085	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21086}
21087
21088// TargetSslProxyList: Contains a list of TargetSslProxy resources.
21089type TargetSslProxyList struct {
21090	// Id: [Output Only] Unique identifier for the resource; defined by the
21091	// server.
21092	Id string `json:"id,omitempty"`
21093
21094	// Items: A list of TargetSslProxy resources.
21095	Items []*TargetSslProxy `json:"items,omitempty"`
21096
21097	// Kind: Type of resource.
21098	Kind string `json:"kind,omitempty"`
21099
21100	// NextPageToken: [Output Only] This token allows you to get the next
21101	// page of results for list requests. If the number of results is larger
21102	// than maxResults, use the nextPageToken as a value for the query
21103	// parameter pageToken in the next list request. Subsequent list
21104	// requests will have their own nextPageToken to continue paging through
21105	// the results.
21106	NextPageToken string `json:"nextPageToken,omitempty"`
21107
21108	// SelfLink: [Output Only] Server-defined URL for this resource.
21109	SelfLink string `json:"selfLink,omitempty"`
21110
21111	// Warning: [Output Only] Informational warning message.
21112	Warning *TargetSslProxyListWarning `json:"warning,omitempty"`
21113
21114	// ServerResponse contains the HTTP response code and headers from the
21115	// server.
21116	googleapi.ServerResponse `json:"-"`
21117
21118	// ForceSendFields is a list of field names (e.g. "Id") to
21119	// unconditionally include in API requests. By default, fields with
21120	// empty values are omitted from API requests. However, any non-pointer,
21121	// non-interface field appearing in ForceSendFields will be sent to the
21122	// server regardless of whether the field is empty or not. This may be
21123	// used to include empty fields in Patch requests.
21124	ForceSendFields []string `json:"-"`
21125
21126	// NullFields is a list of field names (e.g. "Id") to include in API
21127	// requests with the JSON null value. By default, fields with empty
21128	// values are omitted from API requests. However, any field with an
21129	// empty value appearing in NullFields will be sent to the server as
21130	// null. It is an error if a field in this list has a non-empty value.
21131	// This may be used to include null fields in Patch requests.
21132	NullFields []string `json:"-"`
21133}
21134
21135func (s *TargetSslProxyList) MarshalJSON() ([]byte, error) {
21136	type NoMethod TargetSslProxyList
21137	raw := NoMethod(*s)
21138	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21139}
21140
21141// TargetSslProxyListWarning: [Output Only] Informational warning
21142// message.
21143type TargetSslProxyListWarning struct {
21144	// Code: [Output Only] A warning code, if applicable. For example,
21145	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21146	// the response.
21147	//
21148	// Possible values:
21149	//   "CLEANUP_FAILED"
21150	//   "DEPRECATED_RESOURCE_USED"
21151	//   "DEPRECATED_TYPE_USED"
21152	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21153	//   "EXPERIMENTAL_TYPE_USED"
21154	//   "EXTERNAL_API_WARNING"
21155	//   "FIELD_VALUE_OVERRIDEN"
21156	//   "INJECTED_KERNELS_DEPRECATED"
21157	//   "MISSING_TYPE_DEPENDENCY"
21158	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21159	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21160	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21161	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21162	//   "NEXT_HOP_NOT_RUNNING"
21163	//   "NOT_CRITICAL_ERROR"
21164	//   "NO_RESULTS_ON_PAGE"
21165	//   "REQUIRED_TOS_AGREEMENT"
21166	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21167	//   "RESOURCE_NOT_DELETED"
21168	//   "SCHEMA_VALIDATION_IGNORED"
21169	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21170	//   "UNDECLARED_PROPERTIES"
21171	//   "UNREACHABLE"
21172	Code string `json:"code,omitempty"`
21173
21174	// Data: [Output Only] Metadata about this warning in key: value format.
21175	// For example:
21176	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21177	Data []*TargetSslProxyListWarningData `json:"data,omitempty"`
21178
21179	// Message: [Output Only] A human-readable description of the warning
21180	// code.
21181	Message string `json:"message,omitempty"`
21182
21183	// ForceSendFields is a list of field names (e.g. "Code") to
21184	// unconditionally include in API requests. By default, fields with
21185	// empty values are omitted from API requests. However, any non-pointer,
21186	// non-interface field appearing in ForceSendFields will be sent to the
21187	// server regardless of whether the field is empty or not. This may be
21188	// used to include empty fields in Patch requests.
21189	ForceSendFields []string `json:"-"`
21190
21191	// NullFields is a list of field names (e.g. "Code") to include in API
21192	// requests with the JSON null value. By default, fields with empty
21193	// values are omitted from API requests. However, any field with an
21194	// empty value appearing in NullFields will be sent to the server as
21195	// null. It is an error if a field in this list has a non-empty value.
21196	// This may be used to include null fields in Patch requests.
21197	NullFields []string `json:"-"`
21198}
21199
21200func (s *TargetSslProxyListWarning) MarshalJSON() ([]byte, error) {
21201	type NoMethod TargetSslProxyListWarning
21202	raw := NoMethod(*s)
21203	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21204}
21205
21206type TargetSslProxyListWarningData struct {
21207	// Key: [Output Only] A key that provides more detail on the warning
21208	// being returned. For example, for warnings where there are no results
21209	// in a list request for a particular zone, this key might be scope and
21210	// the key value might be the zone name. Other examples might be a key
21211	// indicating a deprecated resource and a suggested replacement, or a
21212	// warning about invalid network settings (for example, if an instance
21213	// attempts to perform IP forwarding but is not enabled for IP
21214	// forwarding).
21215	Key string `json:"key,omitempty"`
21216
21217	// Value: [Output Only] A warning data value corresponding to the key.
21218	Value string `json:"value,omitempty"`
21219
21220	// ForceSendFields is a list of field names (e.g. "Key") to
21221	// unconditionally include in API requests. By default, fields with
21222	// empty values are omitted from API requests. However, any non-pointer,
21223	// non-interface field appearing in ForceSendFields will be sent to the
21224	// server regardless of whether the field is empty or not. This may be
21225	// used to include empty fields in Patch requests.
21226	ForceSendFields []string `json:"-"`
21227
21228	// NullFields is a list of field names (e.g. "Key") to include in API
21229	// requests with the JSON null value. By default, fields with empty
21230	// values are omitted from API requests. However, any field with an
21231	// empty value appearing in NullFields will be sent to the server as
21232	// null. It is an error if a field in this list has a non-empty value.
21233	// This may be used to include null fields in Patch requests.
21234	NullFields []string `json:"-"`
21235}
21236
21237func (s *TargetSslProxyListWarningData) MarshalJSON() ([]byte, error) {
21238	type NoMethod TargetSslProxyListWarningData
21239	raw := NoMethod(*s)
21240	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21241}
21242
21243type TargetTcpProxiesSetBackendServiceRequest struct {
21244	// Service: The URL of the new BackendService resource for the
21245	// targetTcpProxy.
21246	Service string `json:"service,omitempty"`
21247
21248	// ForceSendFields is a list of field names (e.g. "Service") to
21249	// unconditionally include in API requests. By default, fields with
21250	// empty values are omitted from API requests. However, any non-pointer,
21251	// non-interface field appearing in ForceSendFields will be sent to the
21252	// server regardless of whether the field is empty or not. This may be
21253	// used to include empty fields in Patch requests.
21254	ForceSendFields []string `json:"-"`
21255
21256	// NullFields is a list of field names (e.g. "Service") to include in
21257	// API requests with the JSON null value. By default, fields with empty
21258	// values are omitted from API requests. However, any field with an
21259	// empty value appearing in NullFields will be sent to the server as
21260	// null. It is an error if a field in this list has a non-empty value.
21261	// This may be used to include null fields in Patch requests.
21262	NullFields []string `json:"-"`
21263}
21264
21265func (s *TargetTcpProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
21266	type NoMethod TargetTcpProxiesSetBackendServiceRequest
21267	raw := NoMethod(*s)
21268	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21269}
21270
21271type TargetTcpProxiesSetProxyHeaderRequest struct {
21272	// ProxyHeader: The new type of proxy header to append before sending
21273	// data to the backend. NONE or PROXY_V1 are allowed.
21274	//
21275	// Possible values:
21276	//   "NONE"
21277	//   "PROXY_V1"
21278	ProxyHeader string `json:"proxyHeader,omitempty"`
21279
21280	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
21281	// unconditionally include in API requests. By default, fields with
21282	// empty values are omitted from API requests. However, any non-pointer,
21283	// non-interface field appearing in ForceSendFields will be sent to the
21284	// server regardless of whether the field is empty or not. This may be
21285	// used to include empty fields in Patch requests.
21286	ForceSendFields []string `json:"-"`
21287
21288	// NullFields is a list of field names (e.g. "ProxyHeader") to include
21289	// in API requests with the JSON null value. By default, fields with
21290	// empty values are omitted from API requests. However, any field with
21291	// an empty value appearing in NullFields will be sent to the server as
21292	// null. It is an error if a field in this list has a non-empty value.
21293	// This may be used to include null fields in Patch requests.
21294	NullFields []string `json:"-"`
21295}
21296
21297func (s *TargetTcpProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
21298	type NoMethod TargetTcpProxiesSetProxyHeaderRequest
21299	raw := NoMethod(*s)
21300	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21301}
21302
21303// TargetTcpProxy: A TargetTcpProxy resource. This resource defines a
21304// TCP proxy. (== resource_for beta.targetTcpProxies ==) (==
21305// resource_for v1.targetTcpProxies ==)
21306type TargetTcpProxy struct {
21307	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21308	// format.
21309	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21310
21311	// Description: An optional description of this resource. Provide this
21312	// property when you create the resource.
21313	Description string `json:"description,omitempty"`
21314
21315	// Id: [Output Only] The unique identifier for the resource. This
21316	// identifier is defined by the server.
21317	Id uint64 `json:"id,omitempty,string"`
21318
21319	// Kind: [Output Only] Type of the resource. Always
21320	// compute#targetTcpProxy for target TCP proxies.
21321	Kind string `json:"kind,omitempty"`
21322
21323	// Name: Name of the resource. Provided by the client when the resource
21324	// is created. The name must be 1-63 characters long, and comply with
21325	// RFC1035. Specifically, the name must be 1-63 characters long and
21326	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
21327	// the first character must be a lowercase letter, and all following
21328	// characters must be a dash, lowercase letter, or digit, except the
21329	// last character, which cannot be a dash.
21330	Name string `json:"name,omitempty"`
21331
21332	// ProxyHeader: Specifies the type of proxy header to append before
21333	// sending data to the backend, either NONE or PROXY_V1. The default is
21334	// NONE.
21335	//
21336	// Possible values:
21337	//   "NONE"
21338	//   "PROXY_V1"
21339	ProxyHeader string `json:"proxyHeader,omitempty"`
21340
21341	// SelfLink: [Output Only] Server-defined URL for the resource.
21342	SelfLink string `json:"selfLink,omitempty"`
21343
21344	// Service: URL to the BackendService resource.
21345	Service string `json:"service,omitempty"`
21346
21347	// ServerResponse contains the HTTP response code and headers from the
21348	// server.
21349	googleapi.ServerResponse `json:"-"`
21350
21351	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
21352	// to unconditionally include in API requests. By default, fields with
21353	// empty values are omitted from API requests. However, any non-pointer,
21354	// non-interface field appearing in ForceSendFields will be sent to the
21355	// server regardless of whether the field is empty or not. This may be
21356	// used to include empty fields in Patch requests.
21357	ForceSendFields []string `json:"-"`
21358
21359	// NullFields is a list of field names (e.g. "CreationTimestamp") to
21360	// include in API requests with the JSON null value. By default, fields
21361	// with empty values are omitted from API requests. However, any field
21362	// with an empty value appearing in NullFields will be sent to the
21363	// server as null. It is an error if a field in this list has a
21364	// non-empty value. This may be used to include null fields in Patch
21365	// requests.
21366	NullFields []string `json:"-"`
21367}
21368
21369func (s *TargetTcpProxy) MarshalJSON() ([]byte, error) {
21370	type NoMethod TargetTcpProxy
21371	raw := NoMethod(*s)
21372	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21373}
21374
21375// TargetTcpProxyList: Contains a list of TargetTcpProxy resources.
21376type TargetTcpProxyList struct {
21377	// Id: [Output Only] Unique identifier for the resource; defined by the
21378	// server.
21379	Id string `json:"id,omitempty"`
21380
21381	// Items: A list of TargetTcpProxy resources.
21382	Items []*TargetTcpProxy `json:"items,omitempty"`
21383
21384	// Kind: Type of resource.
21385	Kind string `json:"kind,omitempty"`
21386
21387	// NextPageToken: [Output Only] This token allows you to get the next
21388	// page of results for list requests. If the number of results is larger
21389	// than maxResults, use the nextPageToken as a value for the query
21390	// parameter pageToken in the next list request. Subsequent list
21391	// requests will have their own nextPageToken to continue paging through
21392	// the results.
21393	NextPageToken string `json:"nextPageToken,omitempty"`
21394
21395	// SelfLink: [Output Only] Server-defined URL for this resource.
21396	SelfLink string `json:"selfLink,omitempty"`
21397
21398	// Warning: [Output Only] Informational warning message.
21399	Warning *TargetTcpProxyListWarning `json:"warning,omitempty"`
21400
21401	// ServerResponse contains the HTTP response code and headers from the
21402	// server.
21403	googleapi.ServerResponse `json:"-"`
21404
21405	// ForceSendFields is a list of field names (e.g. "Id") to
21406	// unconditionally include in API requests. By default, fields with
21407	// empty values are omitted from API requests. However, any non-pointer,
21408	// non-interface field appearing in ForceSendFields will be sent to the
21409	// server regardless of whether the field is empty or not. This may be
21410	// used to include empty fields in Patch requests.
21411	ForceSendFields []string `json:"-"`
21412
21413	// NullFields is a list of field names (e.g. "Id") to include in API
21414	// requests with the JSON null value. By default, fields with empty
21415	// values are omitted from API requests. However, any field with an
21416	// empty value appearing in NullFields will be sent to the server as
21417	// null. It is an error if a field in this list has a non-empty value.
21418	// This may be used to include null fields in Patch requests.
21419	NullFields []string `json:"-"`
21420}
21421
21422func (s *TargetTcpProxyList) MarshalJSON() ([]byte, error) {
21423	type NoMethod TargetTcpProxyList
21424	raw := NoMethod(*s)
21425	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21426}
21427
21428// TargetTcpProxyListWarning: [Output Only] Informational warning
21429// message.
21430type TargetTcpProxyListWarning struct {
21431	// Code: [Output Only] A warning code, if applicable. For example,
21432	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21433	// the response.
21434	//
21435	// Possible values:
21436	//   "CLEANUP_FAILED"
21437	//   "DEPRECATED_RESOURCE_USED"
21438	//   "DEPRECATED_TYPE_USED"
21439	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21440	//   "EXPERIMENTAL_TYPE_USED"
21441	//   "EXTERNAL_API_WARNING"
21442	//   "FIELD_VALUE_OVERRIDEN"
21443	//   "INJECTED_KERNELS_DEPRECATED"
21444	//   "MISSING_TYPE_DEPENDENCY"
21445	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21446	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21447	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21448	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21449	//   "NEXT_HOP_NOT_RUNNING"
21450	//   "NOT_CRITICAL_ERROR"
21451	//   "NO_RESULTS_ON_PAGE"
21452	//   "REQUIRED_TOS_AGREEMENT"
21453	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21454	//   "RESOURCE_NOT_DELETED"
21455	//   "SCHEMA_VALIDATION_IGNORED"
21456	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21457	//   "UNDECLARED_PROPERTIES"
21458	//   "UNREACHABLE"
21459	Code string `json:"code,omitempty"`
21460
21461	// Data: [Output Only] Metadata about this warning in key: value format.
21462	// For example:
21463	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21464	Data []*TargetTcpProxyListWarningData `json:"data,omitempty"`
21465
21466	// Message: [Output Only] A human-readable description of the warning
21467	// code.
21468	Message string `json:"message,omitempty"`
21469
21470	// ForceSendFields is a list of field names (e.g. "Code") to
21471	// unconditionally include in API requests. By default, fields with
21472	// empty values are omitted from API requests. However, any non-pointer,
21473	// non-interface field appearing in ForceSendFields will be sent to the
21474	// server regardless of whether the field is empty or not. This may be
21475	// used to include empty fields in Patch requests.
21476	ForceSendFields []string `json:"-"`
21477
21478	// NullFields is a list of field names (e.g. "Code") to include in API
21479	// requests with the JSON null value. By default, fields with empty
21480	// values are omitted from API requests. However, any field with an
21481	// empty value appearing in NullFields will be sent to the server as
21482	// null. It is an error if a field in this list has a non-empty value.
21483	// This may be used to include null fields in Patch requests.
21484	NullFields []string `json:"-"`
21485}
21486
21487func (s *TargetTcpProxyListWarning) MarshalJSON() ([]byte, error) {
21488	type NoMethod TargetTcpProxyListWarning
21489	raw := NoMethod(*s)
21490	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21491}
21492
21493type TargetTcpProxyListWarningData struct {
21494	// Key: [Output Only] A key that provides more detail on the warning
21495	// being returned. For example, for warnings where there are no results
21496	// in a list request for a particular zone, this key might be scope and
21497	// the key value might be the zone name. Other examples might be a key
21498	// indicating a deprecated resource and a suggested replacement, or a
21499	// warning about invalid network settings (for example, if an instance
21500	// attempts to perform IP forwarding but is not enabled for IP
21501	// forwarding).
21502	Key string `json:"key,omitempty"`
21503
21504	// Value: [Output Only] A warning data value corresponding to the key.
21505	Value string `json:"value,omitempty"`
21506
21507	// ForceSendFields is a list of field names (e.g. "Key") to
21508	// unconditionally include in API requests. By default, fields with
21509	// empty values are omitted from API requests. However, any non-pointer,
21510	// non-interface field appearing in ForceSendFields will be sent to the
21511	// server regardless of whether the field is empty or not. This may be
21512	// used to include empty fields in Patch requests.
21513	ForceSendFields []string `json:"-"`
21514
21515	// NullFields is a list of field names (e.g. "Key") to include in API
21516	// requests with the JSON null value. By default, fields with empty
21517	// values are omitted from API requests. However, any field with an
21518	// empty value appearing in NullFields will be sent to the server as
21519	// null. It is an error if a field in this list has a non-empty value.
21520	// This may be used to include null fields in Patch requests.
21521	NullFields []string `json:"-"`
21522}
21523
21524func (s *TargetTcpProxyListWarningData) MarshalJSON() ([]byte, error) {
21525	type NoMethod TargetTcpProxyListWarningData
21526	raw := NoMethod(*s)
21527	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21528}
21529
21530// TargetVpnGateway: Represents a Target VPN gateway resource. (==
21531// resource_for beta.targetVpnGateways ==) (== resource_for
21532// v1.targetVpnGateways ==)
21533type TargetVpnGateway struct {
21534	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21535	// format.
21536	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21537
21538	// Description: An optional description of this resource. Provide this
21539	// property when you create the resource.
21540	Description string `json:"description,omitempty"`
21541
21542	// ForwardingRules: [Output Only] A list of URLs to the ForwardingRule
21543	// resources. ForwardingRules are created using
21544	// compute.forwardingRules.insert and associated to a VPN gateway.
21545	ForwardingRules []string `json:"forwardingRules,omitempty"`
21546
21547	// Id: [Output Only] The unique identifier for the resource. This
21548	// identifier is defined by the server.
21549	Id uint64 `json:"id,omitempty,string"`
21550
21551	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
21552	// for target VPN gateways.
21553	Kind string `json:"kind,omitempty"`
21554
21555	// Name: Name of the resource. Provided by the client when the resource
21556	// is created. The name must be 1-63 characters long, and comply with
21557	// RFC1035. Specifically, the name must be 1-63 characters long and
21558	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
21559	// the first character must be a lowercase letter, and all following
21560	// characters must be a dash, lowercase letter, or digit, except the
21561	// last character, which cannot be a dash.
21562	Name string `json:"name,omitempty"`
21563
21564	// Network: URL of the network to which this VPN gateway is attached.
21565	// Provided by the client when the VPN gateway is created.
21566	Network string `json:"network,omitempty"`
21567
21568	// Region: [Output Only] URL of the region where the target VPN gateway
21569	// resides. You must specify this field as part of the HTTP request URL.
21570	// It is not settable as a field in the request body.
21571	Region string `json:"region,omitempty"`
21572
21573	// SelfLink: [Output Only] Server-defined URL for the resource.
21574	SelfLink string `json:"selfLink,omitempty"`
21575
21576	// Status: [Output Only] The status of the VPN gateway.
21577	//
21578	// Possible values:
21579	//   "CREATING"
21580	//   "DELETING"
21581	//   "FAILED"
21582	//   "READY"
21583	Status string `json:"status,omitempty"`
21584
21585	// Tunnels: [Output Only] A list of URLs to VpnTunnel resources.
21586	// VpnTunnels are created using compute.vpntunnels.insert method and
21587	// associated to a VPN gateway.
21588	Tunnels []string `json:"tunnels,omitempty"`
21589
21590	// ServerResponse contains the HTTP response code and headers from the
21591	// server.
21592	googleapi.ServerResponse `json:"-"`
21593
21594	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
21595	// to unconditionally include in API requests. By default, fields with
21596	// empty values are omitted from API requests. However, any non-pointer,
21597	// non-interface field appearing in ForceSendFields will be sent to the
21598	// server regardless of whether the field is empty or not. This may be
21599	// used to include empty fields in Patch requests.
21600	ForceSendFields []string `json:"-"`
21601
21602	// NullFields is a list of field names (e.g. "CreationTimestamp") to
21603	// include in API requests with the JSON null value. By default, fields
21604	// with empty values are omitted from API requests. However, any field
21605	// with an empty value appearing in NullFields will be sent to the
21606	// server as null. It is an error if a field in this list has a
21607	// non-empty value. This may be used to include null fields in Patch
21608	// requests.
21609	NullFields []string `json:"-"`
21610}
21611
21612func (s *TargetVpnGateway) MarshalJSON() ([]byte, error) {
21613	type NoMethod TargetVpnGateway
21614	raw := NoMethod(*s)
21615	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21616}
21617
21618type TargetVpnGatewayAggregatedList struct {
21619	// Id: [Output Only] Unique identifier for the resource; defined by the
21620	// server.
21621	Id string `json:"id,omitempty"`
21622
21623	// Items: A list of TargetVpnGateway resources.
21624	Items map[string]TargetVpnGatewaysScopedList `json:"items,omitempty"`
21625
21626	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
21627	// for target VPN gateways.
21628	Kind string `json:"kind,omitempty"`
21629
21630	// NextPageToken: [Output Only] This token allows you to get the next
21631	// page of results for list requests. If the number of results is larger
21632	// than maxResults, use the nextPageToken as a value for the query
21633	// parameter pageToken in the next list request. Subsequent list
21634	// requests will have their own nextPageToken to continue paging through
21635	// the results.
21636	NextPageToken string `json:"nextPageToken,omitempty"`
21637
21638	// SelfLink: [Output Only] Server-defined URL for this resource.
21639	SelfLink string `json:"selfLink,omitempty"`
21640
21641	// Warning: [Output Only] Informational warning message.
21642	Warning *TargetVpnGatewayAggregatedListWarning `json:"warning,omitempty"`
21643
21644	// ServerResponse contains the HTTP response code and headers from the
21645	// server.
21646	googleapi.ServerResponse `json:"-"`
21647
21648	// ForceSendFields is a list of field names (e.g. "Id") to
21649	// unconditionally include in API requests. By default, fields with
21650	// empty values are omitted from API requests. However, any non-pointer,
21651	// non-interface field appearing in ForceSendFields will be sent to the
21652	// server regardless of whether the field is empty or not. This may be
21653	// used to include empty fields in Patch requests.
21654	ForceSendFields []string `json:"-"`
21655
21656	// NullFields is a list of field names (e.g. "Id") to include in API
21657	// requests with the JSON null value. By default, fields with empty
21658	// values are omitted from API requests. However, any field with an
21659	// empty value appearing in NullFields will be sent to the server as
21660	// null. It is an error if a field in this list has a non-empty value.
21661	// This may be used to include null fields in Patch requests.
21662	NullFields []string `json:"-"`
21663}
21664
21665func (s *TargetVpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
21666	type NoMethod TargetVpnGatewayAggregatedList
21667	raw := NoMethod(*s)
21668	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21669}
21670
21671// TargetVpnGatewayAggregatedListWarning: [Output Only] Informational
21672// warning message.
21673type TargetVpnGatewayAggregatedListWarning struct {
21674	// Code: [Output Only] A warning code, if applicable. For example,
21675	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21676	// the response.
21677	//
21678	// Possible values:
21679	//   "CLEANUP_FAILED"
21680	//   "DEPRECATED_RESOURCE_USED"
21681	//   "DEPRECATED_TYPE_USED"
21682	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21683	//   "EXPERIMENTAL_TYPE_USED"
21684	//   "EXTERNAL_API_WARNING"
21685	//   "FIELD_VALUE_OVERRIDEN"
21686	//   "INJECTED_KERNELS_DEPRECATED"
21687	//   "MISSING_TYPE_DEPENDENCY"
21688	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21689	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21690	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21691	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21692	//   "NEXT_HOP_NOT_RUNNING"
21693	//   "NOT_CRITICAL_ERROR"
21694	//   "NO_RESULTS_ON_PAGE"
21695	//   "REQUIRED_TOS_AGREEMENT"
21696	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21697	//   "RESOURCE_NOT_DELETED"
21698	//   "SCHEMA_VALIDATION_IGNORED"
21699	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21700	//   "UNDECLARED_PROPERTIES"
21701	//   "UNREACHABLE"
21702	Code string `json:"code,omitempty"`
21703
21704	// Data: [Output Only] Metadata about this warning in key: value format.
21705	// For example:
21706	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21707	Data []*TargetVpnGatewayAggregatedListWarningData `json:"data,omitempty"`
21708
21709	// Message: [Output Only] A human-readable description of the warning
21710	// code.
21711	Message string `json:"message,omitempty"`
21712
21713	// ForceSendFields is a list of field names (e.g. "Code") to
21714	// unconditionally include in API requests. By default, fields with
21715	// empty values are omitted from API requests. However, any non-pointer,
21716	// non-interface field appearing in ForceSendFields will be sent to the
21717	// server regardless of whether the field is empty or not. This may be
21718	// used to include empty fields in Patch requests.
21719	ForceSendFields []string `json:"-"`
21720
21721	// NullFields is a list of field names (e.g. "Code") to include in API
21722	// requests with the JSON null value. By default, fields with empty
21723	// values are omitted from API requests. However, any field with an
21724	// empty value appearing in NullFields will be sent to the server as
21725	// null. It is an error if a field in this list has a non-empty value.
21726	// This may be used to include null fields in Patch requests.
21727	NullFields []string `json:"-"`
21728}
21729
21730func (s *TargetVpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
21731	type NoMethod TargetVpnGatewayAggregatedListWarning
21732	raw := NoMethod(*s)
21733	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21734}
21735
21736type TargetVpnGatewayAggregatedListWarningData struct {
21737	// Key: [Output Only] A key that provides more detail on the warning
21738	// being returned. For example, for warnings where there are no results
21739	// in a list request for a particular zone, this key might be scope and
21740	// the key value might be the zone name. Other examples might be a key
21741	// indicating a deprecated resource and a suggested replacement, or a
21742	// warning about invalid network settings (for example, if an instance
21743	// attempts to perform IP forwarding but is not enabled for IP
21744	// forwarding).
21745	Key string `json:"key,omitempty"`
21746
21747	// Value: [Output Only] A warning data value corresponding to the key.
21748	Value string `json:"value,omitempty"`
21749
21750	// ForceSendFields is a list of field names (e.g. "Key") to
21751	// unconditionally include in API requests. By default, fields with
21752	// empty values are omitted from API requests. However, any non-pointer,
21753	// non-interface field appearing in ForceSendFields will be sent to the
21754	// server regardless of whether the field is empty or not. This may be
21755	// used to include empty fields in Patch requests.
21756	ForceSendFields []string `json:"-"`
21757
21758	// NullFields is a list of field names (e.g. "Key") to include in API
21759	// requests with the JSON null value. By default, fields with empty
21760	// values are omitted from API requests. However, any field with an
21761	// empty value appearing in NullFields will be sent to the server as
21762	// null. It is an error if a field in this list has a non-empty value.
21763	// This may be used to include null fields in Patch requests.
21764	NullFields []string `json:"-"`
21765}
21766
21767func (s *TargetVpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
21768	type NoMethod TargetVpnGatewayAggregatedListWarningData
21769	raw := NoMethod(*s)
21770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21771}
21772
21773// TargetVpnGatewayList: Contains a list of TargetVpnGateway resources.
21774type TargetVpnGatewayList struct {
21775	// Id: [Output Only] Unique identifier for the resource; defined by the
21776	// server.
21777	Id string `json:"id,omitempty"`
21778
21779	// Items: A list of TargetVpnGateway resources.
21780	Items []*TargetVpnGateway `json:"items,omitempty"`
21781
21782	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
21783	// for target VPN gateways.
21784	Kind string `json:"kind,omitempty"`
21785
21786	// NextPageToken: [Output Only] This token allows you to get the next
21787	// page of results for list requests. If the number of results is larger
21788	// than maxResults, use the nextPageToken as a value for the query
21789	// parameter pageToken in the next list request. Subsequent list
21790	// requests will have their own nextPageToken to continue paging through
21791	// the results.
21792	NextPageToken string `json:"nextPageToken,omitempty"`
21793
21794	// SelfLink: [Output Only] Server-defined URL for this resource.
21795	SelfLink string `json:"selfLink,omitempty"`
21796
21797	// Warning: [Output Only] Informational warning message.
21798	Warning *TargetVpnGatewayListWarning `json:"warning,omitempty"`
21799
21800	// ServerResponse contains the HTTP response code and headers from the
21801	// server.
21802	googleapi.ServerResponse `json:"-"`
21803
21804	// ForceSendFields is a list of field names (e.g. "Id") to
21805	// unconditionally include in API requests. By default, fields with
21806	// empty values are omitted from API requests. However, any non-pointer,
21807	// non-interface field appearing in ForceSendFields will be sent to the
21808	// server regardless of whether the field is empty or not. This may be
21809	// used to include empty fields in Patch requests.
21810	ForceSendFields []string `json:"-"`
21811
21812	// NullFields is a list of field names (e.g. "Id") to include in API
21813	// requests with the JSON null value. By default, fields with empty
21814	// values are omitted from API requests. However, any field with an
21815	// empty value appearing in NullFields will be sent to the server as
21816	// null. It is an error if a field in this list has a non-empty value.
21817	// This may be used to include null fields in Patch requests.
21818	NullFields []string `json:"-"`
21819}
21820
21821func (s *TargetVpnGatewayList) MarshalJSON() ([]byte, error) {
21822	type NoMethod TargetVpnGatewayList
21823	raw := NoMethod(*s)
21824	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21825}
21826
21827// TargetVpnGatewayListWarning: [Output Only] Informational warning
21828// message.
21829type TargetVpnGatewayListWarning struct {
21830	// Code: [Output Only] A warning code, if applicable. For example,
21831	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21832	// the response.
21833	//
21834	// Possible values:
21835	//   "CLEANUP_FAILED"
21836	//   "DEPRECATED_RESOURCE_USED"
21837	//   "DEPRECATED_TYPE_USED"
21838	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21839	//   "EXPERIMENTAL_TYPE_USED"
21840	//   "EXTERNAL_API_WARNING"
21841	//   "FIELD_VALUE_OVERRIDEN"
21842	//   "INJECTED_KERNELS_DEPRECATED"
21843	//   "MISSING_TYPE_DEPENDENCY"
21844	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21845	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21846	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21847	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21848	//   "NEXT_HOP_NOT_RUNNING"
21849	//   "NOT_CRITICAL_ERROR"
21850	//   "NO_RESULTS_ON_PAGE"
21851	//   "REQUIRED_TOS_AGREEMENT"
21852	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21853	//   "RESOURCE_NOT_DELETED"
21854	//   "SCHEMA_VALIDATION_IGNORED"
21855	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21856	//   "UNDECLARED_PROPERTIES"
21857	//   "UNREACHABLE"
21858	Code string `json:"code,omitempty"`
21859
21860	// Data: [Output Only] Metadata about this warning in key: value format.
21861	// For example:
21862	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21863	Data []*TargetVpnGatewayListWarningData `json:"data,omitempty"`
21864
21865	// Message: [Output Only] A human-readable description of the warning
21866	// code.
21867	Message string `json:"message,omitempty"`
21868
21869	// ForceSendFields is a list of field names (e.g. "Code") to
21870	// unconditionally include in API requests. By default, fields with
21871	// empty values are omitted from API requests. However, any non-pointer,
21872	// non-interface field appearing in ForceSendFields will be sent to the
21873	// server regardless of whether the field is empty or not. This may be
21874	// used to include empty fields in Patch requests.
21875	ForceSendFields []string `json:"-"`
21876
21877	// NullFields is a list of field names (e.g. "Code") to include in API
21878	// requests with the JSON null value. By default, fields with empty
21879	// values are omitted from API requests. However, any field with an
21880	// empty value appearing in NullFields will be sent to the server as
21881	// null. It is an error if a field in this list has a non-empty value.
21882	// This may be used to include null fields in Patch requests.
21883	NullFields []string `json:"-"`
21884}
21885
21886func (s *TargetVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
21887	type NoMethod TargetVpnGatewayListWarning
21888	raw := NoMethod(*s)
21889	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21890}
21891
21892type TargetVpnGatewayListWarningData struct {
21893	// Key: [Output Only] A key that provides more detail on the warning
21894	// being returned. For example, for warnings where there are no results
21895	// in a list request for a particular zone, this key might be scope and
21896	// the key value might be the zone name. Other examples might be a key
21897	// indicating a deprecated resource and a suggested replacement, or a
21898	// warning about invalid network settings (for example, if an instance
21899	// attempts to perform IP forwarding but is not enabled for IP
21900	// forwarding).
21901	Key string `json:"key,omitempty"`
21902
21903	// Value: [Output Only] A warning data value corresponding to the key.
21904	Value string `json:"value,omitempty"`
21905
21906	// ForceSendFields is a list of field names (e.g. "Key") to
21907	// unconditionally include in API requests. By default, fields with
21908	// empty values are omitted from API requests. However, any non-pointer,
21909	// non-interface field appearing in ForceSendFields will be sent to the
21910	// server regardless of whether the field is empty or not. This may be
21911	// used to include empty fields in Patch requests.
21912	ForceSendFields []string `json:"-"`
21913
21914	// NullFields is a list of field names (e.g. "Key") to include in API
21915	// requests with the JSON null value. By default, fields with empty
21916	// values are omitted from API requests. However, any field with an
21917	// empty value appearing in NullFields will be sent to the server as
21918	// null. It is an error if a field in this list has a non-empty value.
21919	// This may be used to include null fields in Patch requests.
21920	NullFields []string `json:"-"`
21921}
21922
21923func (s *TargetVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
21924	type NoMethod TargetVpnGatewayListWarningData
21925	raw := NoMethod(*s)
21926	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21927}
21928
21929type TargetVpnGatewaysScopedList struct {
21930	// TargetVpnGateways: [Output Only] List of target vpn gateways
21931	// contained in this scope.
21932	TargetVpnGateways []*TargetVpnGateway `json:"targetVpnGateways,omitempty"`
21933
21934	// Warning: [Output Only] Informational warning which replaces the list
21935	// of addresses when the list is empty.
21936	Warning *TargetVpnGatewaysScopedListWarning `json:"warning,omitempty"`
21937
21938	// ForceSendFields is a list of field names (e.g. "TargetVpnGateways")
21939	// to unconditionally include in API requests. By default, fields with
21940	// empty values are omitted from API requests. However, any non-pointer,
21941	// non-interface field appearing in ForceSendFields will be sent to the
21942	// server regardless of whether the field is empty or not. This may be
21943	// used to include empty fields in Patch requests.
21944	ForceSendFields []string `json:"-"`
21945
21946	// NullFields is a list of field names (e.g. "TargetVpnGateways") to
21947	// include in API requests with the JSON null value. By default, fields
21948	// with empty values are omitted from API requests. However, any field
21949	// with an empty value appearing in NullFields will be sent to the
21950	// server as null. It is an error if a field in this list has a
21951	// non-empty value. This may be used to include null fields in Patch
21952	// requests.
21953	NullFields []string `json:"-"`
21954}
21955
21956func (s *TargetVpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
21957	type NoMethod TargetVpnGatewaysScopedList
21958	raw := NoMethod(*s)
21959	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21960}
21961
21962// TargetVpnGatewaysScopedListWarning: [Output Only] Informational
21963// warning which replaces the list of addresses when the list is empty.
21964type TargetVpnGatewaysScopedListWarning struct {
21965	// Code: [Output Only] A warning code, if applicable. For example,
21966	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21967	// the response.
21968	//
21969	// Possible values:
21970	//   "CLEANUP_FAILED"
21971	//   "DEPRECATED_RESOURCE_USED"
21972	//   "DEPRECATED_TYPE_USED"
21973	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21974	//   "EXPERIMENTAL_TYPE_USED"
21975	//   "EXTERNAL_API_WARNING"
21976	//   "FIELD_VALUE_OVERRIDEN"
21977	//   "INJECTED_KERNELS_DEPRECATED"
21978	//   "MISSING_TYPE_DEPENDENCY"
21979	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21980	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21981	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21982	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21983	//   "NEXT_HOP_NOT_RUNNING"
21984	//   "NOT_CRITICAL_ERROR"
21985	//   "NO_RESULTS_ON_PAGE"
21986	//   "REQUIRED_TOS_AGREEMENT"
21987	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21988	//   "RESOURCE_NOT_DELETED"
21989	//   "SCHEMA_VALIDATION_IGNORED"
21990	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21991	//   "UNDECLARED_PROPERTIES"
21992	//   "UNREACHABLE"
21993	Code string `json:"code,omitempty"`
21994
21995	// Data: [Output Only] Metadata about this warning in key: value format.
21996	// For example:
21997	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21998	Data []*TargetVpnGatewaysScopedListWarningData `json:"data,omitempty"`
21999
22000	// Message: [Output Only] A human-readable description of the warning
22001	// code.
22002	Message string `json:"message,omitempty"`
22003
22004	// ForceSendFields is a list of field names (e.g. "Code") to
22005	// unconditionally include in API requests. By default, fields with
22006	// empty values are omitted from API requests. However, any non-pointer,
22007	// non-interface field appearing in ForceSendFields will be sent to the
22008	// server regardless of whether the field is empty or not. This may be
22009	// used to include empty fields in Patch requests.
22010	ForceSendFields []string `json:"-"`
22011
22012	// NullFields is a list of field names (e.g. "Code") to include in API
22013	// requests with the JSON null value. By default, fields with empty
22014	// values are omitted from API requests. However, any field with an
22015	// empty value appearing in NullFields will be sent to the server as
22016	// null. It is an error if a field in this list has a non-empty value.
22017	// This may be used to include null fields in Patch requests.
22018	NullFields []string `json:"-"`
22019}
22020
22021func (s *TargetVpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
22022	type NoMethod TargetVpnGatewaysScopedListWarning
22023	raw := NoMethod(*s)
22024	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22025}
22026
22027type TargetVpnGatewaysScopedListWarningData struct {
22028	// Key: [Output Only] A key that provides more detail on the warning
22029	// being returned. For example, for warnings where there are no results
22030	// in a list request for a particular zone, this key might be scope and
22031	// the key value might be the zone name. Other examples might be a key
22032	// indicating a deprecated resource and a suggested replacement, or a
22033	// warning about invalid network settings (for example, if an instance
22034	// attempts to perform IP forwarding but is not enabled for IP
22035	// forwarding).
22036	Key string `json:"key,omitempty"`
22037
22038	// Value: [Output Only] A warning data value corresponding to the key.
22039	Value string `json:"value,omitempty"`
22040
22041	// ForceSendFields is a list of field names (e.g. "Key") to
22042	// unconditionally include in API requests. By default, fields with
22043	// empty values are omitted from API requests. However, any non-pointer,
22044	// non-interface field appearing in ForceSendFields will be sent to the
22045	// server regardless of whether the field is empty or not. This may be
22046	// used to include empty fields in Patch requests.
22047	ForceSendFields []string `json:"-"`
22048
22049	// NullFields is a list of field names (e.g. "Key") to include in API
22050	// requests with the JSON null value. By default, fields with empty
22051	// values are omitted from API requests. However, any field with an
22052	// empty value appearing in NullFields will be sent to the server as
22053	// null. It is an error if a field in this list has a non-empty value.
22054	// This may be used to include null fields in Patch requests.
22055	NullFields []string `json:"-"`
22056}
22057
22058func (s *TargetVpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
22059	type NoMethod TargetVpnGatewaysScopedListWarningData
22060	raw := NoMethod(*s)
22061	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22062}
22063
22064type TestFailure struct {
22065	ActualService string `json:"actualService,omitempty"`
22066
22067	ExpectedService string `json:"expectedService,omitempty"`
22068
22069	Host string `json:"host,omitempty"`
22070
22071	Path string `json:"path,omitempty"`
22072
22073	// ForceSendFields is a list of field names (e.g. "ActualService") to
22074	// unconditionally include in API requests. By default, fields with
22075	// empty values are omitted from API requests. However, any non-pointer,
22076	// non-interface field appearing in ForceSendFields will be sent to the
22077	// server regardless of whether the field is empty or not. This may be
22078	// used to include empty fields in Patch requests.
22079	ForceSendFields []string `json:"-"`
22080
22081	// NullFields is a list of field names (e.g. "ActualService") to include
22082	// in API requests with the JSON null value. By default, fields with
22083	// empty values are omitted from API requests. However, any field with
22084	// an empty value appearing in NullFields will be sent to the server as
22085	// null. It is an error if a field in this list has a non-empty value.
22086	// This may be used to include null fields in Patch requests.
22087	NullFields []string `json:"-"`
22088}
22089
22090func (s *TestFailure) MarshalJSON() ([]byte, error) {
22091	type NoMethod TestFailure
22092	raw := NoMethod(*s)
22093	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22094}
22095
22096// UrlMap: A UrlMap resource. This resource defines the mapping from URL
22097// to the BackendService resource, based on the "longest-match" of the
22098// URL's host and path.
22099type UrlMap struct {
22100	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
22101	// format.
22102	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22103
22104	// DefaultService: The URL of the BackendService resource if none of the
22105	// hostRules match.
22106	DefaultService string `json:"defaultService,omitempty"`
22107
22108	// Description: An optional description of this resource. Provide this
22109	// property when you create the resource.
22110	Description string `json:"description,omitempty"`
22111
22112	// Fingerprint: Fingerprint of this resource. A hash of the contents
22113	// stored in this object. This field is used in optimistic locking. This
22114	// field will be ignored when inserting a UrlMap. An up-to-date
22115	// fingerprint must be provided in order to update the UrlMap.
22116	Fingerprint string `json:"fingerprint,omitempty"`
22117
22118	// HostRules: The list of HostRules to use against the URL.
22119	HostRules []*HostRule `json:"hostRules,omitempty"`
22120
22121	// Id: [Output Only] The unique identifier for the resource. This
22122	// identifier is defined by the server.
22123	Id uint64 `json:"id,omitempty,string"`
22124
22125	// Kind: [Output Only] Type of the resource. Always compute#urlMaps for
22126	// url maps.
22127	Kind string `json:"kind,omitempty"`
22128
22129	// Name: Name of the resource. Provided by the client when the resource
22130	// is created. The name must be 1-63 characters long, and comply with
22131	// RFC1035. Specifically, the name must be 1-63 characters long and
22132	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
22133	// the first character must be a lowercase letter, and all following
22134	// characters must be a dash, lowercase letter, or digit, except the
22135	// last character, which cannot be a dash.
22136	Name string `json:"name,omitempty"`
22137
22138	// PathMatchers: The list of named PathMatchers to use against the URL.
22139	PathMatchers []*PathMatcher `json:"pathMatchers,omitempty"`
22140
22141	// SelfLink: [Output Only] Server-defined URL for the resource.
22142	SelfLink string `json:"selfLink,omitempty"`
22143
22144	// Tests: The list of expected URL mapping tests. Request to update this
22145	// UrlMap will succeed only if all of the test cases pass. You can
22146	// specify a maximum of 100 tests per UrlMap.
22147	Tests []*UrlMapTest `json:"tests,omitempty"`
22148
22149	// ServerResponse contains the HTTP response code and headers from the
22150	// server.
22151	googleapi.ServerResponse `json:"-"`
22152
22153	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
22154	// to unconditionally include in API requests. By default, fields with
22155	// empty values are omitted from API requests. However, any non-pointer,
22156	// non-interface field appearing in ForceSendFields will be sent to the
22157	// server regardless of whether the field is empty or not. This may be
22158	// used to include empty fields in Patch requests.
22159	ForceSendFields []string `json:"-"`
22160
22161	// NullFields is a list of field names (e.g. "CreationTimestamp") to
22162	// include in API requests with the JSON null value. By default, fields
22163	// with empty values are omitted from API requests. However, any field
22164	// with an empty value appearing in NullFields will be sent to the
22165	// server as null. It is an error if a field in this list has a
22166	// non-empty value. This may be used to include null fields in Patch
22167	// requests.
22168	NullFields []string `json:"-"`
22169}
22170
22171func (s *UrlMap) MarshalJSON() ([]byte, error) {
22172	type NoMethod UrlMap
22173	raw := NoMethod(*s)
22174	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22175}
22176
22177// UrlMapList: Contains a list of UrlMap resources.
22178type UrlMapList struct {
22179	// Id: [Output Only] Unique identifier for the resource; defined by the
22180	// server.
22181	Id string `json:"id,omitempty"`
22182
22183	// Items: A list of UrlMap resources.
22184	Items []*UrlMap `json:"items,omitempty"`
22185
22186	// Kind: Type of resource.
22187	Kind string `json:"kind,omitempty"`
22188
22189	// NextPageToken: [Output Only] This token allows you to get the next
22190	// page of results for list requests. If the number of results is larger
22191	// than maxResults, use the nextPageToken as a value for the query
22192	// parameter pageToken in the next list request. Subsequent list
22193	// requests will have their own nextPageToken to continue paging through
22194	// the results.
22195	NextPageToken string `json:"nextPageToken,omitempty"`
22196
22197	// SelfLink: [Output Only] Server-defined URL for this resource.
22198	SelfLink string `json:"selfLink,omitempty"`
22199
22200	// Warning: [Output Only] Informational warning message.
22201	Warning *UrlMapListWarning `json:"warning,omitempty"`
22202
22203	// ServerResponse contains the HTTP response code and headers from the
22204	// server.
22205	googleapi.ServerResponse `json:"-"`
22206
22207	// ForceSendFields is a list of field names (e.g. "Id") to
22208	// unconditionally include in API requests. By default, fields with
22209	// empty values are omitted from API requests. However, any non-pointer,
22210	// non-interface field appearing in ForceSendFields will be sent to the
22211	// server regardless of whether the field is empty or not. This may be
22212	// used to include empty fields in Patch requests.
22213	ForceSendFields []string `json:"-"`
22214
22215	// NullFields is a list of field names (e.g. "Id") to include in API
22216	// requests with the JSON null value. By default, fields with empty
22217	// values are omitted from API requests. However, any field with an
22218	// empty value appearing in NullFields will be sent to the server as
22219	// null. It is an error if a field in this list has a non-empty value.
22220	// This may be used to include null fields in Patch requests.
22221	NullFields []string `json:"-"`
22222}
22223
22224func (s *UrlMapList) MarshalJSON() ([]byte, error) {
22225	type NoMethod UrlMapList
22226	raw := NoMethod(*s)
22227	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22228}
22229
22230// UrlMapListWarning: [Output Only] Informational warning message.
22231type UrlMapListWarning struct {
22232	// Code: [Output Only] A warning code, if applicable. For example,
22233	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22234	// the response.
22235	//
22236	// Possible values:
22237	//   "CLEANUP_FAILED"
22238	//   "DEPRECATED_RESOURCE_USED"
22239	//   "DEPRECATED_TYPE_USED"
22240	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22241	//   "EXPERIMENTAL_TYPE_USED"
22242	//   "EXTERNAL_API_WARNING"
22243	//   "FIELD_VALUE_OVERRIDEN"
22244	//   "INJECTED_KERNELS_DEPRECATED"
22245	//   "MISSING_TYPE_DEPENDENCY"
22246	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22247	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22248	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22249	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22250	//   "NEXT_HOP_NOT_RUNNING"
22251	//   "NOT_CRITICAL_ERROR"
22252	//   "NO_RESULTS_ON_PAGE"
22253	//   "REQUIRED_TOS_AGREEMENT"
22254	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22255	//   "RESOURCE_NOT_DELETED"
22256	//   "SCHEMA_VALIDATION_IGNORED"
22257	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22258	//   "UNDECLARED_PROPERTIES"
22259	//   "UNREACHABLE"
22260	Code string `json:"code,omitempty"`
22261
22262	// Data: [Output Only] Metadata about this warning in key: value format.
22263	// For example:
22264	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22265	Data []*UrlMapListWarningData `json:"data,omitempty"`
22266
22267	// Message: [Output Only] A human-readable description of the warning
22268	// code.
22269	Message string `json:"message,omitempty"`
22270
22271	// ForceSendFields is a list of field names (e.g. "Code") to
22272	// unconditionally include in API requests. By default, fields with
22273	// empty values are omitted from API requests. However, any non-pointer,
22274	// non-interface field appearing in ForceSendFields will be sent to the
22275	// server regardless of whether the field is empty or not. This may be
22276	// used to include empty fields in Patch requests.
22277	ForceSendFields []string `json:"-"`
22278
22279	// NullFields is a list of field names (e.g. "Code") to include in API
22280	// requests with the JSON null value. By default, fields with empty
22281	// values are omitted from API requests. However, any field with an
22282	// empty value appearing in NullFields will be sent to the server as
22283	// null. It is an error if a field in this list has a non-empty value.
22284	// This may be used to include null fields in Patch requests.
22285	NullFields []string `json:"-"`
22286}
22287
22288func (s *UrlMapListWarning) MarshalJSON() ([]byte, error) {
22289	type NoMethod UrlMapListWarning
22290	raw := NoMethod(*s)
22291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22292}
22293
22294type UrlMapListWarningData struct {
22295	// Key: [Output Only] A key that provides more detail on the warning
22296	// being returned. For example, for warnings where there are no results
22297	// in a list request for a particular zone, this key might be scope and
22298	// the key value might be the zone name. Other examples might be a key
22299	// indicating a deprecated resource and a suggested replacement, or a
22300	// warning about invalid network settings (for example, if an instance
22301	// attempts to perform IP forwarding but is not enabled for IP
22302	// forwarding).
22303	Key string `json:"key,omitempty"`
22304
22305	// Value: [Output Only] A warning data value corresponding to the key.
22306	Value string `json:"value,omitempty"`
22307
22308	// ForceSendFields is a list of field names (e.g. "Key") to
22309	// unconditionally include in API requests. By default, fields with
22310	// empty values are omitted from API requests. However, any non-pointer,
22311	// non-interface field appearing in ForceSendFields will be sent to the
22312	// server regardless of whether the field is empty or not. This may be
22313	// used to include empty fields in Patch requests.
22314	ForceSendFields []string `json:"-"`
22315
22316	// NullFields is a list of field names (e.g. "Key") to include in API
22317	// requests with the JSON null value. By default, fields with empty
22318	// values are omitted from API requests. However, any field with an
22319	// empty value appearing in NullFields will be sent to the server as
22320	// null. It is an error if a field in this list has a non-empty value.
22321	// This may be used to include null fields in Patch requests.
22322	NullFields []string `json:"-"`
22323}
22324
22325func (s *UrlMapListWarningData) MarshalJSON() ([]byte, error) {
22326	type NoMethod UrlMapListWarningData
22327	raw := NoMethod(*s)
22328	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22329}
22330
22331type UrlMapReference struct {
22332	UrlMap string `json:"urlMap,omitempty"`
22333
22334	// ForceSendFields is a list of field names (e.g. "UrlMap") to
22335	// unconditionally include in API requests. By default, fields with
22336	// empty values are omitted from API requests. However, any non-pointer,
22337	// non-interface field appearing in ForceSendFields will be sent to the
22338	// server regardless of whether the field is empty or not. This may be
22339	// used to include empty fields in Patch requests.
22340	ForceSendFields []string `json:"-"`
22341
22342	// NullFields is a list of field names (e.g. "UrlMap") to include in API
22343	// requests with the JSON null value. By default, fields with empty
22344	// values are omitted from API requests. However, any field with an
22345	// empty value appearing in NullFields will be sent to the server as
22346	// null. It is an error if a field in this list has a non-empty value.
22347	// This may be used to include null fields in Patch requests.
22348	NullFields []string `json:"-"`
22349}
22350
22351func (s *UrlMapReference) MarshalJSON() ([]byte, error) {
22352	type NoMethod UrlMapReference
22353	raw := NoMethod(*s)
22354	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22355}
22356
22357// UrlMapTest: Message for the expected URL mappings.
22358type UrlMapTest struct {
22359	// Description: Description of this test case.
22360	Description string `json:"description,omitempty"`
22361
22362	// Host: Host portion of the URL.
22363	Host string `json:"host,omitempty"`
22364
22365	// Path: Path portion of the URL.
22366	Path string `json:"path,omitempty"`
22367
22368	// Service: Expected BackendService resource the given URL should be
22369	// mapped to.
22370	Service string `json:"service,omitempty"`
22371
22372	// ForceSendFields is a list of field names (e.g. "Description") to
22373	// unconditionally include in API requests. By default, fields with
22374	// empty values are omitted from API requests. However, any non-pointer,
22375	// non-interface field appearing in ForceSendFields will be sent to the
22376	// server regardless of whether the field is empty or not. This may be
22377	// used to include empty fields in Patch requests.
22378	ForceSendFields []string `json:"-"`
22379
22380	// NullFields is a list of field names (e.g. "Description") to include
22381	// in API requests with the JSON null value. By default, fields with
22382	// empty values are omitted from API requests. However, any field with
22383	// an empty value appearing in NullFields will be sent to the server as
22384	// null. It is an error if a field in this list has a non-empty value.
22385	// This may be used to include null fields in Patch requests.
22386	NullFields []string `json:"-"`
22387}
22388
22389func (s *UrlMapTest) MarshalJSON() ([]byte, error) {
22390	type NoMethod UrlMapTest
22391	raw := NoMethod(*s)
22392	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22393}
22394
22395// UrlMapValidationResult: Message representing the validation result
22396// for a UrlMap.
22397type UrlMapValidationResult struct {
22398	LoadErrors []string `json:"loadErrors,omitempty"`
22399
22400	// LoadSucceeded: Whether the given UrlMap can be successfully loaded.
22401	// If false, 'loadErrors' indicates the reasons.
22402	LoadSucceeded bool `json:"loadSucceeded,omitempty"`
22403
22404	TestFailures []*TestFailure `json:"testFailures,omitempty"`
22405
22406	// TestPassed: If successfully loaded, this field indicates whether the
22407	// test passed. If false, 'testFailures's indicate the reason of
22408	// failure.
22409	TestPassed bool `json:"testPassed,omitempty"`
22410
22411	// ForceSendFields is a list of field names (e.g. "LoadErrors") to
22412	// unconditionally include in API requests. By default, fields with
22413	// empty values are omitted from API requests. However, any non-pointer,
22414	// non-interface field appearing in ForceSendFields will be sent to the
22415	// server regardless of whether the field is empty or not. This may be
22416	// used to include empty fields in Patch requests.
22417	ForceSendFields []string `json:"-"`
22418
22419	// NullFields is a list of field names (e.g. "LoadErrors") to include in
22420	// API requests with the JSON null value. By default, fields with empty
22421	// values are omitted from API requests. However, any field with an
22422	// empty value appearing in NullFields will be sent to the server as
22423	// null. It is an error if a field in this list has a non-empty value.
22424	// This may be used to include null fields in Patch requests.
22425	NullFields []string `json:"-"`
22426}
22427
22428func (s *UrlMapValidationResult) MarshalJSON() ([]byte, error) {
22429	type NoMethod UrlMapValidationResult
22430	raw := NoMethod(*s)
22431	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22432}
22433
22434type UrlMapsValidateRequest struct {
22435	// Resource: Content of the UrlMap to be validated.
22436	Resource *UrlMap `json:"resource,omitempty"`
22437
22438	// ForceSendFields is a list of field names (e.g. "Resource") to
22439	// unconditionally include in API requests. By default, fields with
22440	// empty values are omitted from API requests. However, any non-pointer,
22441	// non-interface field appearing in ForceSendFields will be sent to the
22442	// server regardless of whether the field is empty or not. This may be
22443	// used to include empty fields in Patch requests.
22444	ForceSendFields []string `json:"-"`
22445
22446	// NullFields is a list of field names (e.g. "Resource") to include in
22447	// API requests with the JSON null value. By default, fields with empty
22448	// values are omitted from API requests. However, any field with an
22449	// empty value appearing in NullFields will be sent to the server as
22450	// null. It is an error if a field in this list has a non-empty value.
22451	// This may be used to include null fields in Patch requests.
22452	NullFields []string `json:"-"`
22453}
22454
22455func (s *UrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
22456	type NoMethod UrlMapsValidateRequest
22457	raw := NoMethod(*s)
22458	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22459}
22460
22461type UrlMapsValidateResponse struct {
22462	Result *UrlMapValidationResult `json:"result,omitempty"`
22463
22464	// ServerResponse contains the HTTP response code and headers from the
22465	// server.
22466	googleapi.ServerResponse `json:"-"`
22467
22468	// ForceSendFields is a list of field names (e.g. "Result") to
22469	// unconditionally include in API requests. By default, fields with
22470	// empty values are omitted from API requests. However, any non-pointer,
22471	// non-interface field appearing in ForceSendFields will be sent to the
22472	// server regardless of whether the field is empty or not. This may be
22473	// used to include empty fields in Patch requests.
22474	ForceSendFields []string `json:"-"`
22475
22476	// NullFields is a list of field names (e.g. "Result") to include in API
22477	// requests with the JSON null value. By default, fields with empty
22478	// values are omitted from API requests. However, any field with an
22479	// empty value appearing in NullFields will be sent to the server as
22480	// null. It is an error if a field in this list has a non-empty value.
22481	// This may be used to include null fields in Patch requests.
22482	NullFields []string `json:"-"`
22483}
22484
22485func (s *UrlMapsValidateResponse) MarshalJSON() ([]byte, error) {
22486	type NoMethod UrlMapsValidateResponse
22487	raw := NoMethod(*s)
22488	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22489}
22490
22491// UsageExportLocation: The location in Cloud Storage and naming method
22492// of the daily usage report. Contains bucket_name and report_name
22493// prefix.
22494type UsageExportLocation struct {
22495	// BucketName: The name of an existing bucket in Cloud Storage where the
22496	// usage report object is stored. The Google Service Account is granted
22497	// write access to this bucket. This can either be the bucket name by
22498	// itself, such as example-bucket, or the bucket name with gs:// or
22499	// https://storage.googleapis.com/ in front of it, such as
22500	// gs://example-bucket.
22501	BucketName string `json:"bucketName,omitempty"`
22502
22503	// ReportNamePrefix: An optional prefix for the name of the usage report
22504	// object stored in bucketName. If not supplied, defaults to usage. The
22505	// report is stored as a CSV file named
22506	// report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the
22507	// usage according to Pacific Time. If you supply a prefix, it should
22508	// conform to Cloud Storage object naming conventions.
22509	ReportNamePrefix string `json:"reportNamePrefix,omitempty"`
22510
22511	// ForceSendFields is a list of field names (e.g. "BucketName") to
22512	// unconditionally include in API requests. By default, fields with
22513	// empty values are omitted from API requests. However, any non-pointer,
22514	// non-interface field appearing in ForceSendFields will be sent to the
22515	// server regardless of whether the field is empty or not. This may be
22516	// used to include empty fields in Patch requests.
22517	ForceSendFields []string `json:"-"`
22518
22519	// NullFields is a list of field names (e.g. "BucketName") to include in
22520	// API requests with the JSON null value. By default, fields with empty
22521	// values are omitted from API requests. However, any field with an
22522	// empty value appearing in NullFields will be sent to the server as
22523	// null. It is an error if a field in this list has a non-empty value.
22524	// This may be used to include null fields in Patch requests.
22525	NullFields []string `json:"-"`
22526}
22527
22528func (s *UsageExportLocation) MarshalJSON() ([]byte, error) {
22529	type NoMethod UsageExportLocation
22530	raw := NoMethod(*s)
22531	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22532}
22533
22534// VpnTunnel: VPN tunnel resource. (== resource_for beta.vpnTunnels ==)
22535// (== resource_for v1.vpnTunnels ==)
22536type VpnTunnel struct {
22537	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
22538	// format.
22539	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22540
22541	// Description: An optional description of this resource. Provide this
22542	// property when you create the resource.
22543	Description string `json:"description,omitempty"`
22544
22545	// DetailedStatus: [Output Only] Detailed status message for the VPN
22546	// tunnel.
22547	DetailedStatus string `json:"detailedStatus,omitempty"`
22548
22549	// Id: [Output Only] The unique identifier for the resource. This
22550	// identifier is defined by the server.
22551	Id uint64 `json:"id,omitempty,string"`
22552
22553	// IkeVersion: IKE protocol version to use when establishing the VPN
22554	// tunnel with peer VPN gateway. Acceptable IKE versions are 1 or 2.
22555	// Default version is 2.
22556	IkeVersion int64 `json:"ikeVersion,omitempty"`
22557
22558	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
22559	// VPN tunnels.
22560	Kind string `json:"kind,omitempty"`
22561
22562	// LocalTrafficSelector: Local traffic selector to use when establishing
22563	// the VPN tunnel with peer VPN gateway. The value should be a CIDR
22564	// formatted string, for example: 192.168.0.0/16. The ranges should be
22565	// disjoint. Only IPv4 is supported.
22566	LocalTrafficSelector []string `json:"localTrafficSelector,omitempty"`
22567
22568	// Name: Name of the resource. Provided by the client when the resource
22569	// is created. The name must be 1-63 characters long, and comply with
22570	// RFC1035. Specifically, the name must be 1-63 characters long and
22571	// match the regular expression [a-z]([-a-z0-9]*[a-z0-9])? which means
22572	// the first character must be a lowercase letter, and all following
22573	// characters must be a dash, lowercase letter, or digit, except the
22574	// last character, which cannot be a dash.
22575	Name string `json:"name,omitempty"`
22576
22577	// PeerIp: IP address of the peer VPN gateway. Only IPv4 is supported.
22578	PeerIp string `json:"peerIp,omitempty"`
22579
22580	// Region: [Output Only] URL of the region where the VPN tunnel resides.
22581	// You must specify this field as part of the HTTP request URL. It is
22582	// not settable as a field in the request body.
22583	Region string `json:"region,omitempty"`
22584
22585	// RemoteTrafficSelector: Remote traffic selectors to use when
22586	// establishing the VPN tunnel with peer VPN gateway. The value should
22587	// be a CIDR formatted string, for example: 192.168.0.0/16. The ranges
22588	// should be disjoint. Only IPv4 is supported.
22589	RemoteTrafficSelector []string `json:"remoteTrafficSelector,omitempty"`
22590
22591	// Router: URL of router resource to be used for dynamic routing.
22592	Router string `json:"router,omitempty"`
22593
22594	// SelfLink: [Output Only] Server-defined URL for the resource.
22595	SelfLink string `json:"selfLink,omitempty"`
22596
22597	// SharedSecret: Shared secret used to set the secure session between
22598	// the Cloud VPN gateway and the peer VPN gateway.
22599	SharedSecret string `json:"sharedSecret,omitempty"`
22600
22601	// SharedSecretHash: Hash of the shared secret.
22602	SharedSecretHash string `json:"sharedSecretHash,omitempty"`
22603
22604	// Status: [Output Only] The status of the VPN tunnel.
22605	//
22606	// Possible values:
22607	//   "ALLOCATING_RESOURCES"
22608	//   "AUTHORIZATION_ERROR"
22609	//   "DEPROVISIONING"
22610	//   "ESTABLISHED"
22611	//   "FAILED"
22612	//   "FIRST_HANDSHAKE"
22613	//   "NEGOTIATION_FAILURE"
22614	//   "NETWORK_ERROR"
22615	//   "NO_INCOMING_PACKETS"
22616	//   "PROVISIONING"
22617	//   "REJECTED"
22618	//   "WAITING_FOR_FULL_CONFIG"
22619	Status string `json:"status,omitempty"`
22620
22621	// TargetVpnGateway: URL of the Target VPN gateway with which this VPN
22622	// tunnel is associated. Provided by the client when the VPN tunnel is
22623	// created.
22624	TargetVpnGateway string `json:"targetVpnGateway,omitempty"`
22625
22626	// ServerResponse contains the HTTP response code and headers from the
22627	// server.
22628	googleapi.ServerResponse `json:"-"`
22629
22630	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
22631	// to unconditionally include in API requests. By default, fields with
22632	// empty values are omitted from API requests. However, any non-pointer,
22633	// non-interface field appearing in ForceSendFields will be sent to the
22634	// server regardless of whether the field is empty or not. This may be
22635	// used to include empty fields in Patch requests.
22636	ForceSendFields []string `json:"-"`
22637
22638	// NullFields is a list of field names (e.g. "CreationTimestamp") to
22639	// include in API requests with the JSON null value. By default, fields
22640	// with empty values are omitted from API requests. However, any field
22641	// with an empty value appearing in NullFields will be sent to the
22642	// server as null. It is an error if a field in this list has a
22643	// non-empty value. This may be used to include null fields in Patch
22644	// requests.
22645	NullFields []string `json:"-"`
22646}
22647
22648func (s *VpnTunnel) MarshalJSON() ([]byte, error) {
22649	type NoMethod VpnTunnel
22650	raw := NoMethod(*s)
22651	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22652}
22653
22654type VpnTunnelAggregatedList struct {
22655	// Id: [Output Only] Unique identifier for the resource; defined by the
22656	// server.
22657	Id string `json:"id,omitempty"`
22658
22659	// Items: A list of VpnTunnelsScopedList resources.
22660	Items map[string]VpnTunnelsScopedList `json:"items,omitempty"`
22661
22662	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
22663	// VPN tunnels.
22664	Kind string `json:"kind,omitempty"`
22665
22666	// NextPageToken: [Output Only] This token allows you to get the next
22667	// page of results for list requests. If the number of results is larger
22668	// than maxResults, use the nextPageToken as a value for the query
22669	// parameter pageToken in the next list request. Subsequent list
22670	// requests will have their own nextPageToken to continue paging through
22671	// the results.
22672	NextPageToken string `json:"nextPageToken,omitempty"`
22673
22674	// SelfLink: [Output Only] Server-defined URL for this resource.
22675	SelfLink string `json:"selfLink,omitempty"`
22676
22677	// Warning: [Output Only] Informational warning message.
22678	Warning *VpnTunnelAggregatedListWarning `json:"warning,omitempty"`
22679
22680	// ServerResponse contains the HTTP response code and headers from the
22681	// server.
22682	googleapi.ServerResponse `json:"-"`
22683
22684	// ForceSendFields is a list of field names (e.g. "Id") to
22685	// unconditionally include in API requests. By default, fields with
22686	// empty values are omitted from API requests. However, any non-pointer,
22687	// non-interface field appearing in ForceSendFields will be sent to the
22688	// server regardless of whether the field is empty or not. This may be
22689	// used to include empty fields in Patch requests.
22690	ForceSendFields []string `json:"-"`
22691
22692	// NullFields is a list of field names (e.g. "Id") to include in API
22693	// requests with the JSON null value. By default, fields with empty
22694	// values are omitted from API requests. However, any field with an
22695	// empty value appearing in NullFields will be sent to the server as
22696	// null. It is an error if a field in this list has a non-empty value.
22697	// This may be used to include null fields in Patch requests.
22698	NullFields []string `json:"-"`
22699}
22700
22701func (s *VpnTunnelAggregatedList) MarshalJSON() ([]byte, error) {
22702	type NoMethod VpnTunnelAggregatedList
22703	raw := NoMethod(*s)
22704	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22705}
22706
22707// VpnTunnelAggregatedListWarning: [Output Only] Informational warning
22708// message.
22709type VpnTunnelAggregatedListWarning struct {
22710	// Code: [Output Only] A warning code, if applicable. For example,
22711	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22712	// the response.
22713	//
22714	// Possible values:
22715	//   "CLEANUP_FAILED"
22716	//   "DEPRECATED_RESOURCE_USED"
22717	//   "DEPRECATED_TYPE_USED"
22718	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22719	//   "EXPERIMENTAL_TYPE_USED"
22720	//   "EXTERNAL_API_WARNING"
22721	//   "FIELD_VALUE_OVERRIDEN"
22722	//   "INJECTED_KERNELS_DEPRECATED"
22723	//   "MISSING_TYPE_DEPENDENCY"
22724	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22725	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22726	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22727	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22728	//   "NEXT_HOP_NOT_RUNNING"
22729	//   "NOT_CRITICAL_ERROR"
22730	//   "NO_RESULTS_ON_PAGE"
22731	//   "REQUIRED_TOS_AGREEMENT"
22732	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22733	//   "RESOURCE_NOT_DELETED"
22734	//   "SCHEMA_VALIDATION_IGNORED"
22735	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22736	//   "UNDECLARED_PROPERTIES"
22737	//   "UNREACHABLE"
22738	Code string `json:"code,omitempty"`
22739
22740	// Data: [Output Only] Metadata about this warning in key: value format.
22741	// For example:
22742	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22743	Data []*VpnTunnelAggregatedListWarningData `json:"data,omitempty"`
22744
22745	// Message: [Output Only] A human-readable description of the warning
22746	// code.
22747	Message string `json:"message,omitempty"`
22748
22749	// ForceSendFields is a list of field names (e.g. "Code") to
22750	// unconditionally include in API requests. By default, fields with
22751	// empty values are omitted from API requests. However, any non-pointer,
22752	// non-interface field appearing in ForceSendFields will be sent to the
22753	// server regardless of whether the field is empty or not. This may be
22754	// used to include empty fields in Patch requests.
22755	ForceSendFields []string `json:"-"`
22756
22757	// NullFields is a list of field names (e.g. "Code") to include in API
22758	// requests with the JSON null value. By default, fields with empty
22759	// values are omitted from API requests. However, any field with an
22760	// empty value appearing in NullFields will be sent to the server as
22761	// null. It is an error if a field in this list has a non-empty value.
22762	// This may be used to include null fields in Patch requests.
22763	NullFields []string `json:"-"`
22764}
22765
22766func (s *VpnTunnelAggregatedListWarning) MarshalJSON() ([]byte, error) {
22767	type NoMethod VpnTunnelAggregatedListWarning
22768	raw := NoMethod(*s)
22769	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22770}
22771
22772type VpnTunnelAggregatedListWarningData struct {
22773	// Key: [Output Only] A key that provides more detail on the warning
22774	// being returned. For example, for warnings where there are no results
22775	// in a list request for a particular zone, this key might be scope and
22776	// the key value might be the zone name. Other examples might be a key
22777	// indicating a deprecated resource and a suggested replacement, or a
22778	// warning about invalid network settings (for example, if an instance
22779	// attempts to perform IP forwarding but is not enabled for IP
22780	// forwarding).
22781	Key string `json:"key,omitempty"`
22782
22783	// Value: [Output Only] A warning data value corresponding to the key.
22784	Value string `json:"value,omitempty"`
22785
22786	// ForceSendFields is a list of field names (e.g. "Key") to
22787	// unconditionally include in API requests. By default, fields with
22788	// empty values are omitted from API requests. However, any non-pointer,
22789	// non-interface field appearing in ForceSendFields will be sent to the
22790	// server regardless of whether the field is empty or not. This may be
22791	// used to include empty fields in Patch requests.
22792	ForceSendFields []string `json:"-"`
22793
22794	// NullFields is a list of field names (e.g. "Key") to include in API
22795	// requests with the JSON null value. By default, fields with empty
22796	// values are omitted from API requests. However, any field with an
22797	// empty value appearing in NullFields will be sent to the server as
22798	// null. It is an error if a field in this list has a non-empty value.
22799	// This may be used to include null fields in Patch requests.
22800	NullFields []string `json:"-"`
22801}
22802
22803func (s *VpnTunnelAggregatedListWarningData) MarshalJSON() ([]byte, error) {
22804	type NoMethod VpnTunnelAggregatedListWarningData
22805	raw := NoMethod(*s)
22806	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22807}
22808
22809// VpnTunnelList: Contains a list of VpnTunnel resources.
22810type VpnTunnelList struct {
22811	// Id: [Output Only] Unique identifier for the resource; defined by the
22812	// server.
22813	Id string `json:"id,omitempty"`
22814
22815	// Items: A list of VpnTunnel resources.
22816	Items []*VpnTunnel `json:"items,omitempty"`
22817
22818	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
22819	// VPN tunnels.
22820	Kind string `json:"kind,omitempty"`
22821
22822	// NextPageToken: [Output Only] This token allows you to get the next
22823	// page of results for list requests. If the number of results is larger
22824	// than maxResults, use the nextPageToken as a value for the query
22825	// parameter pageToken in the next list request. Subsequent list
22826	// requests will have their own nextPageToken to continue paging through
22827	// the results.
22828	NextPageToken string `json:"nextPageToken,omitempty"`
22829
22830	// SelfLink: [Output Only] Server-defined URL for this resource.
22831	SelfLink string `json:"selfLink,omitempty"`
22832
22833	// Warning: [Output Only] Informational warning message.
22834	Warning *VpnTunnelListWarning `json:"warning,omitempty"`
22835
22836	// ServerResponse contains the HTTP response code and headers from the
22837	// server.
22838	googleapi.ServerResponse `json:"-"`
22839
22840	// ForceSendFields is a list of field names (e.g. "Id") to
22841	// unconditionally include in API requests. By default, fields with
22842	// empty values are omitted from API requests. However, any non-pointer,
22843	// non-interface field appearing in ForceSendFields will be sent to the
22844	// server regardless of whether the field is empty or not. This may be
22845	// used to include empty fields in Patch requests.
22846	ForceSendFields []string `json:"-"`
22847
22848	// NullFields is a list of field names (e.g. "Id") to include in API
22849	// requests with the JSON null value. By default, fields with empty
22850	// values are omitted from API requests. However, any field with an
22851	// empty value appearing in NullFields will be sent to the server as
22852	// null. It is an error if a field in this list has a non-empty value.
22853	// This may be used to include null fields in Patch requests.
22854	NullFields []string `json:"-"`
22855}
22856
22857func (s *VpnTunnelList) MarshalJSON() ([]byte, error) {
22858	type NoMethod VpnTunnelList
22859	raw := NoMethod(*s)
22860	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22861}
22862
22863// VpnTunnelListWarning: [Output Only] Informational warning message.
22864type VpnTunnelListWarning struct {
22865	// Code: [Output Only] A warning code, if applicable. For example,
22866	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22867	// the response.
22868	//
22869	// Possible values:
22870	//   "CLEANUP_FAILED"
22871	//   "DEPRECATED_RESOURCE_USED"
22872	//   "DEPRECATED_TYPE_USED"
22873	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22874	//   "EXPERIMENTAL_TYPE_USED"
22875	//   "EXTERNAL_API_WARNING"
22876	//   "FIELD_VALUE_OVERRIDEN"
22877	//   "INJECTED_KERNELS_DEPRECATED"
22878	//   "MISSING_TYPE_DEPENDENCY"
22879	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22880	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22881	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22882	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22883	//   "NEXT_HOP_NOT_RUNNING"
22884	//   "NOT_CRITICAL_ERROR"
22885	//   "NO_RESULTS_ON_PAGE"
22886	//   "REQUIRED_TOS_AGREEMENT"
22887	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22888	//   "RESOURCE_NOT_DELETED"
22889	//   "SCHEMA_VALIDATION_IGNORED"
22890	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22891	//   "UNDECLARED_PROPERTIES"
22892	//   "UNREACHABLE"
22893	Code string `json:"code,omitempty"`
22894
22895	// Data: [Output Only] Metadata about this warning in key: value format.
22896	// For example:
22897	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22898	Data []*VpnTunnelListWarningData `json:"data,omitempty"`
22899
22900	// Message: [Output Only] A human-readable description of the warning
22901	// code.
22902	Message string `json:"message,omitempty"`
22903
22904	// ForceSendFields is a list of field names (e.g. "Code") to
22905	// unconditionally include in API requests. By default, fields with
22906	// empty values are omitted from API requests. However, any non-pointer,
22907	// non-interface field appearing in ForceSendFields will be sent to the
22908	// server regardless of whether the field is empty or not. This may be
22909	// used to include empty fields in Patch requests.
22910	ForceSendFields []string `json:"-"`
22911
22912	// NullFields is a list of field names (e.g. "Code") to include in API
22913	// requests with the JSON null value. By default, fields with empty
22914	// values are omitted from API requests. However, any field with an
22915	// empty value appearing in NullFields will be sent to the server as
22916	// null. It is an error if a field in this list has a non-empty value.
22917	// This may be used to include null fields in Patch requests.
22918	NullFields []string `json:"-"`
22919}
22920
22921func (s *VpnTunnelListWarning) MarshalJSON() ([]byte, error) {
22922	type NoMethod VpnTunnelListWarning
22923	raw := NoMethod(*s)
22924	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22925}
22926
22927type VpnTunnelListWarningData struct {
22928	// Key: [Output Only] A key that provides more detail on the warning
22929	// being returned. For example, for warnings where there are no results
22930	// in a list request for a particular zone, this key might be scope and
22931	// the key value might be the zone name. Other examples might be a key
22932	// indicating a deprecated resource and a suggested replacement, or a
22933	// warning about invalid network settings (for example, if an instance
22934	// attempts to perform IP forwarding but is not enabled for IP
22935	// forwarding).
22936	Key string `json:"key,omitempty"`
22937
22938	// Value: [Output Only] A warning data value corresponding to the key.
22939	Value string `json:"value,omitempty"`
22940
22941	// ForceSendFields is a list of field names (e.g. "Key") to
22942	// unconditionally include in API requests. By default, fields with
22943	// empty values are omitted from API requests. However, any non-pointer,
22944	// non-interface field appearing in ForceSendFields will be sent to the
22945	// server regardless of whether the field is empty or not. This may be
22946	// used to include empty fields in Patch requests.
22947	ForceSendFields []string `json:"-"`
22948
22949	// NullFields is a list of field names (e.g. "Key") to include in API
22950	// requests with the JSON null value. By default, fields with empty
22951	// values are omitted from API requests. However, any field with an
22952	// empty value appearing in NullFields will be sent to the server as
22953	// null. It is an error if a field in this list has a non-empty value.
22954	// This may be used to include null fields in Patch requests.
22955	NullFields []string `json:"-"`
22956}
22957
22958func (s *VpnTunnelListWarningData) MarshalJSON() ([]byte, error) {
22959	type NoMethod VpnTunnelListWarningData
22960	raw := NoMethod(*s)
22961	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22962}
22963
22964type VpnTunnelsScopedList struct {
22965	// VpnTunnels: List of vpn tunnels contained in this scope.
22966	VpnTunnels []*VpnTunnel `json:"vpnTunnels,omitempty"`
22967
22968	// Warning: Informational warning which replaces the list of addresses
22969	// when the list is empty.
22970	Warning *VpnTunnelsScopedListWarning `json:"warning,omitempty"`
22971
22972	// ForceSendFields is a list of field names (e.g. "VpnTunnels") to
22973	// unconditionally include in API requests. By default, fields with
22974	// empty values are omitted from API requests. However, any non-pointer,
22975	// non-interface field appearing in ForceSendFields will be sent to the
22976	// server regardless of whether the field is empty or not. This may be
22977	// used to include empty fields in Patch requests.
22978	ForceSendFields []string `json:"-"`
22979
22980	// NullFields is a list of field names (e.g. "VpnTunnels") to include in
22981	// API requests with the JSON null value. By default, fields with empty
22982	// values are omitted from API requests. However, any field with an
22983	// empty value appearing in NullFields will be sent to the server as
22984	// null. It is an error if a field in this list has a non-empty value.
22985	// This may be used to include null fields in Patch requests.
22986	NullFields []string `json:"-"`
22987}
22988
22989func (s *VpnTunnelsScopedList) MarshalJSON() ([]byte, error) {
22990	type NoMethod VpnTunnelsScopedList
22991	raw := NoMethod(*s)
22992	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22993}
22994
22995// VpnTunnelsScopedListWarning: Informational warning which replaces the
22996// list of addresses when the list is empty.
22997type VpnTunnelsScopedListWarning struct {
22998	// Code: [Output Only] A warning code, if applicable. For example,
22999	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23000	// the response.
23001	//
23002	// Possible values:
23003	//   "CLEANUP_FAILED"
23004	//   "DEPRECATED_RESOURCE_USED"
23005	//   "DEPRECATED_TYPE_USED"
23006	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23007	//   "EXPERIMENTAL_TYPE_USED"
23008	//   "EXTERNAL_API_WARNING"
23009	//   "FIELD_VALUE_OVERRIDEN"
23010	//   "INJECTED_KERNELS_DEPRECATED"
23011	//   "MISSING_TYPE_DEPENDENCY"
23012	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23013	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23014	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23015	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23016	//   "NEXT_HOP_NOT_RUNNING"
23017	//   "NOT_CRITICAL_ERROR"
23018	//   "NO_RESULTS_ON_PAGE"
23019	//   "REQUIRED_TOS_AGREEMENT"
23020	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23021	//   "RESOURCE_NOT_DELETED"
23022	//   "SCHEMA_VALIDATION_IGNORED"
23023	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23024	//   "UNDECLARED_PROPERTIES"
23025	//   "UNREACHABLE"
23026	Code string `json:"code,omitempty"`
23027
23028	// Data: [Output Only] Metadata about this warning in key: value format.
23029	// For example:
23030	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23031	Data []*VpnTunnelsScopedListWarningData `json:"data,omitempty"`
23032
23033	// Message: [Output Only] A human-readable description of the warning
23034	// code.
23035	Message string `json:"message,omitempty"`
23036
23037	// ForceSendFields is a list of field names (e.g. "Code") to
23038	// unconditionally include in API requests. By default, fields with
23039	// empty values are omitted from API requests. However, any non-pointer,
23040	// non-interface field appearing in ForceSendFields will be sent to the
23041	// server regardless of whether the field is empty or not. This may be
23042	// used to include empty fields in Patch requests.
23043	ForceSendFields []string `json:"-"`
23044
23045	// NullFields is a list of field names (e.g. "Code") to include in API
23046	// requests with the JSON null value. By default, fields with empty
23047	// values are omitted from API requests. However, any field with an
23048	// empty value appearing in NullFields will be sent to the server as
23049	// null. It is an error if a field in this list has a non-empty value.
23050	// This may be used to include null fields in Patch requests.
23051	NullFields []string `json:"-"`
23052}
23053
23054func (s *VpnTunnelsScopedListWarning) MarshalJSON() ([]byte, error) {
23055	type NoMethod VpnTunnelsScopedListWarning
23056	raw := NoMethod(*s)
23057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23058}
23059
23060type VpnTunnelsScopedListWarningData struct {
23061	// Key: [Output Only] A key that provides more detail on the warning
23062	// being returned. For example, for warnings where there are no results
23063	// in a list request for a particular zone, this key might be scope and
23064	// the key value might be the zone name. Other examples might be a key
23065	// indicating a deprecated resource and a suggested replacement, or a
23066	// warning about invalid network settings (for example, if an instance
23067	// attempts to perform IP forwarding but is not enabled for IP
23068	// forwarding).
23069	Key string `json:"key,omitempty"`
23070
23071	// Value: [Output Only] A warning data value corresponding to the key.
23072	Value string `json:"value,omitempty"`
23073
23074	// ForceSendFields is a list of field names (e.g. "Key") to
23075	// unconditionally include in API requests. By default, fields with
23076	// empty values are omitted from API requests. However, any non-pointer,
23077	// non-interface field appearing in ForceSendFields will be sent to the
23078	// server regardless of whether the field is empty or not. This may be
23079	// used to include empty fields in Patch requests.
23080	ForceSendFields []string `json:"-"`
23081
23082	// NullFields is a list of field names (e.g. "Key") to include in API
23083	// requests with the JSON null value. By default, fields with empty
23084	// values are omitted from API requests. However, any field with an
23085	// empty value appearing in NullFields will be sent to the server as
23086	// null. It is an error if a field in this list has a non-empty value.
23087	// This may be used to include null fields in Patch requests.
23088	NullFields []string `json:"-"`
23089}
23090
23091func (s *VpnTunnelsScopedListWarningData) MarshalJSON() ([]byte, error) {
23092	type NoMethod VpnTunnelsScopedListWarningData
23093	raw := NoMethod(*s)
23094	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23095}
23096
23097type XpnHostList struct {
23098	// Id: [Output Only] Unique identifier for the resource; defined by the
23099	// server.
23100	Id string `json:"id,omitempty"`
23101
23102	// Items: [Output Only] A list of shared VPC host project URLs.
23103	Items []*Project `json:"items,omitempty"`
23104
23105	// Kind: [Output Only] Type of resource. Always compute#xpnHostList for
23106	// lists of shared VPC hosts.
23107	Kind string `json:"kind,omitempty"`
23108
23109	// NextPageToken: [Output Only] This token allows you to get the next
23110	// page of results for list requests. If the number of results is larger
23111	// than maxResults, use the nextPageToken as a value for the query
23112	// parameter pageToken in the next list request. Subsequent list
23113	// requests will have their own nextPageToken to continue paging through
23114	// the results.
23115	NextPageToken string `json:"nextPageToken,omitempty"`
23116
23117	// SelfLink: [Output Only] Server-defined URL for this resource.
23118	SelfLink string `json:"selfLink,omitempty"`
23119
23120	// Warning: [Output Only] Informational warning message.
23121	Warning *XpnHostListWarning `json:"warning,omitempty"`
23122
23123	// ServerResponse contains the HTTP response code and headers from the
23124	// server.
23125	googleapi.ServerResponse `json:"-"`
23126
23127	// ForceSendFields is a list of field names (e.g. "Id") to
23128	// unconditionally include in API requests. By default, fields with
23129	// empty values are omitted from API requests. However, any non-pointer,
23130	// non-interface field appearing in ForceSendFields will be sent to the
23131	// server regardless of whether the field is empty or not. This may be
23132	// used to include empty fields in Patch requests.
23133	ForceSendFields []string `json:"-"`
23134
23135	// NullFields is a list of field names (e.g. "Id") to include in API
23136	// requests with the JSON null value. By default, fields with empty
23137	// values are omitted from API requests. However, any field with an
23138	// empty value appearing in NullFields will be sent to the server as
23139	// null. It is an error if a field in this list has a non-empty value.
23140	// This may be used to include null fields in Patch requests.
23141	NullFields []string `json:"-"`
23142}
23143
23144func (s *XpnHostList) MarshalJSON() ([]byte, error) {
23145	type NoMethod XpnHostList
23146	raw := NoMethod(*s)
23147	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23148}
23149
23150// XpnHostListWarning: [Output Only] Informational warning message.
23151type XpnHostListWarning struct {
23152	// Code: [Output Only] A warning code, if applicable. For example,
23153	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23154	// the response.
23155	//
23156	// Possible values:
23157	//   "CLEANUP_FAILED"
23158	//   "DEPRECATED_RESOURCE_USED"
23159	//   "DEPRECATED_TYPE_USED"
23160	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23161	//   "EXPERIMENTAL_TYPE_USED"
23162	//   "EXTERNAL_API_WARNING"
23163	//   "FIELD_VALUE_OVERRIDEN"
23164	//   "INJECTED_KERNELS_DEPRECATED"
23165	//   "MISSING_TYPE_DEPENDENCY"
23166	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23167	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23168	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23169	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23170	//   "NEXT_HOP_NOT_RUNNING"
23171	//   "NOT_CRITICAL_ERROR"
23172	//   "NO_RESULTS_ON_PAGE"
23173	//   "REQUIRED_TOS_AGREEMENT"
23174	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23175	//   "RESOURCE_NOT_DELETED"
23176	//   "SCHEMA_VALIDATION_IGNORED"
23177	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23178	//   "UNDECLARED_PROPERTIES"
23179	//   "UNREACHABLE"
23180	Code string `json:"code,omitempty"`
23181
23182	// Data: [Output Only] Metadata about this warning in key: value format.
23183	// For example:
23184	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23185	Data []*XpnHostListWarningData `json:"data,omitempty"`
23186
23187	// Message: [Output Only] A human-readable description of the warning
23188	// code.
23189	Message string `json:"message,omitempty"`
23190
23191	// ForceSendFields is a list of field names (e.g. "Code") to
23192	// unconditionally include in API requests. By default, fields with
23193	// empty values are omitted from API requests. However, any non-pointer,
23194	// non-interface field appearing in ForceSendFields will be sent to the
23195	// server regardless of whether the field is empty or not. This may be
23196	// used to include empty fields in Patch requests.
23197	ForceSendFields []string `json:"-"`
23198
23199	// NullFields is a list of field names (e.g. "Code") to include in API
23200	// requests with the JSON null value. By default, fields with empty
23201	// values are omitted from API requests. However, any field with an
23202	// empty value appearing in NullFields will be sent to the server as
23203	// null. It is an error if a field in this list has a non-empty value.
23204	// This may be used to include null fields in Patch requests.
23205	NullFields []string `json:"-"`
23206}
23207
23208func (s *XpnHostListWarning) MarshalJSON() ([]byte, error) {
23209	type NoMethod XpnHostListWarning
23210	raw := NoMethod(*s)
23211	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23212}
23213
23214type XpnHostListWarningData struct {
23215	// Key: [Output Only] A key that provides more detail on the warning
23216	// being returned. For example, for warnings where there are no results
23217	// in a list request for a particular zone, this key might be scope and
23218	// the key value might be the zone name. Other examples might be a key
23219	// indicating a deprecated resource and a suggested replacement, or a
23220	// warning about invalid network settings (for example, if an instance
23221	// attempts to perform IP forwarding but is not enabled for IP
23222	// forwarding).
23223	Key string `json:"key,omitempty"`
23224
23225	// Value: [Output Only] A warning data value corresponding to the key.
23226	Value string `json:"value,omitempty"`
23227
23228	// ForceSendFields is a list of field names (e.g. "Key") to
23229	// unconditionally include in API requests. By default, fields with
23230	// empty values are omitted from API requests. However, any non-pointer,
23231	// non-interface field appearing in ForceSendFields will be sent to the
23232	// server regardless of whether the field is empty or not. This may be
23233	// used to include empty fields in Patch requests.
23234	ForceSendFields []string `json:"-"`
23235
23236	// NullFields is a list of field names (e.g. "Key") to include in API
23237	// requests with the JSON null value. By default, fields with empty
23238	// values are omitted from API requests. However, any field with an
23239	// empty value appearing in NullFields will be sent to the server as
23240	// null. It is an error if a field in this list has a non-empty value.
23241	// This may be used to include null fields in Patch requests.
23242	NullFields []string `json:"-"`
23243}
23244
23245func (s *XpnHostListWarningData) MarshalJSON() ([]byte, error) {
23246	type NoMethod XpnHostListWarningData
23247	raw := NoMethod(*s)
23248	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23249}
23250
23251// XpnResourceId: Service resource (a.k.a service project) ID.
23252type XpnResourceId struct {
23253	// Id: The ID of the service resource. In the case of projects, this
23254	// field matches the project ID (e.g., my-project), not the project
23255	// number (e.g., 12345678).
23256	Id string `json:"id,omitempty"`
23257
23258	// Type: The type of the service resource.
23259	//
23260	// Possible values:
23261	//   "PROJECT"
23262	//   "XPN_RESOURCE_TYPE_UNSPECIFIED"
23263	Type string `json:"type,omitempty"`
23264
23265	// ForceSendFields is a list of field names (e.g. "Id") to
23266	// unconditionally include in API requests. By default, fields with
23267	// empty values are omitted from API requests. However, any non-pointer,
23268	// non-interface field appearing in ForceSendFields will be sent to the
23269	// server regardless of whether the field is empty or not. This may be
23270	// used to include empty fields in Patch requests.
23271	ForceSendFields []string `json:"-"`
23272
23273	// NullFields is a list of field names (e.g. "Id") to include in API
23274	// requests with the JSON null value. By default, fields with empty
23275	// values are omitted from API requests. However, any field with an
23276	// empty value appearing in NullFields will be sent to the server as
23277	// null. It is an error if a field in this list has a non-empty value.
23278	// This may be used to include null fields in Patch requests.
23279	NullFields []string `json:"-"`
23280}
23281
23282func (s *XpnResourceId) MarshalJSON() ([]byte, error) {
23283	type NoMethod XpnResourceId
23284	raw := NoMethod(*s)
23285	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23286}
23287
23288// Zone: A Zone resource. (== resource_for beta.zones ==) (==
23289// resource_for v1.zones ==)
23290type Zone struct {
23291	// AvailableCpuPlatforms: [Output Only] Available cpu/platform
23292	// selections for the zone.
23293	AvailableCpuPlatforms []string `json:"availableCpuPlatforms,omitempty"`
23294
23295	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
23296	// format.
23297	CreationTimestamp string `json:"creationTimestamp,omitempty"`
23298
23299	// Deprecated: [Output Only] The deprecation status associated with this
23300	// zone.
23301	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
23302
23303	// Description: [Output Only] Textual description of the resource.
23304	Description string `json:"description,omitempty"`
23305
23306	// Id: [Output Only] The unique identifier for the resource. This
23307	// identifier is defined by the server.
23308	Id uint64 `json:"id,omitempty,string"`
23309
23310	// Kind: [Output Only] Type of the resource. Always compute#zone for
23311	// zones.
23312	Kind string `json:"kind,omitempty"`
23313
23314	// Name: [Output Only] Name of the resource.
23315	Name string `json:"name,omitempty"`
23316
23317	// Region: [Output Only] Full URL reference to the region which hosts
23318	// the zone.
23319	Region string `json:"region,omitempty"`
23320
23321	// SelfLink: [Output Only] Server-defined URL for the resource.
23322	SelfLink string `json:"selfLink,omitempty"`
23323
23324	// Status: [Output Only] Status of the zone, either UP or DOWN.
23325	//
23326	// Possible values:
23327	//   "DOWN"
23328	//   "UP"
23329	Status string `json:"status,omitempty"`
23330
23331	// ServerResponse contains the HTTP response code and headers from the
23332	// server.
23333	googleapi.ServerResponse `json:"-"`
23334
23335	// ForceSendFields is a list of field names (e.g.
23336	// "AvailableCpuPlatforms") to unconditionally include in API requests.
23337	// By default, fields with empty values are omitted from API requests.
23338	// However, any non-pointer, non-interface field appearing in
23339	// ForceSendFields will be sent to the server regardless of whether the
23340	// field is empty or not. This may be used to include empty fields in
23341	// Patch requests.
23342	ForceSendFields []string `json:"-"`
23343
23344	// NullFields is a list of field names (e.g. "AvailableCpuPlatforms") to
23345	// include in API requests with the JSON null value. By default, fields
23346	// with empty values are omitted from API requests. However, any field
23347	// with an empty value appearing in NullFields will be sent to the
23348	// server as null. It is an error if a field in this list has a
23349	// non-empty value. This may be used to include null fields in Patch
23350	// requests.
23351	NullFields []string `json:"-"`
23352}
23353
23354func (s *Zone) MarshalJSON() ([]byte, error) {
23355	type NoMethod Zone
23356	raw := NoMethod(*s)
23357	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23358}
23359
23360// ZoneList: Contains a list of zone resources.
23361type ZoneList struct {
23362	// Id: [Output Only] Unique identifier for the resource; defined by the
23363	// server.
23364	Id string `json:"id,omitempty"`
23365
23366	// Items: A list of Zone resources.
23367	Items []*Zone `json:"items,omitempty"`
23368
23369	// Kind: Type of resource.
23370	Kind string `json:"kind,omitempty"`
23371
23372	// NextPageToken: [Output Only] This token allows you to get the next
23373	// page of results for list requests. If the number of results is larger
23374	// than maxResults, use the nextPageToken as a value for the query
23375	// parameter pageToken in the next list request. Subsequent list
23376	// requests will have their own nextPageToken to continue paging through
23377	// the results.
23378	NextPageToken string `json:"nextPageToken,omitempty"`
23379
23380	// SelfLink: [Output Only] Server-defined URL for this resource.
23381	SelfLink string `json:"selfLink,omitempty"`
23382
23383	// Warning: [Output Only] Informational warning message.
23384	Warning *ZoneListWarning `json:"warning,omitempty"`
23385
23386	// ServerResponse contains the HTTP response code and headers from the
23387	// server.
23388	googleapi.ServerResponse `json:"-"`
23389
23390	// ForceSendFields is a list of field names (e.g. "Id") to
23391	// unconditionally include in API requests. By default, fields with
23392	// empty values are omitted from API requests. However, any non-pointer,
23393	// non-interface field appearing in ForceSendFields will be sent to the
23394	// server regardless of whether the field is empty or not. This may be
23395	// used to include empty fields in Patch requests.
23396	ForceSendFields []string `json:"-"`
23397
23398	// NullFields is a list of field names (e.g. "Id") to include in API
23399	// requests with the JSON null value. By default, fields with empty
23400	// values are omitted from API requests. However, any field with an
23401	// empty value appearing in NullFields will be sent to the server as
23402	// null. It is an error if a field in this list has a non-empty value.
23403	// This may be used to include null fields in Patch requests.
23404	NullFields []string `json:"-"`
23405}
23406
23407func (s *ZoneList) MarshalJSON() ([]byte, error) {
23408	type NoMethod ZoneList
23409	raw := NoMethod(*s)
23410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23411}
23412
23413// ZoneListWarning: [Output Only] Informational warning message.
23414type ZoneListWarning struct {
23415	// Code: [Output Only] A warning code, if applicable. For example,
23416	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23417	// the response.
23418	//
23419	// Possible values:
23420	//   "CLEANUP_FAILED"
23421	//   "DEPRECATED_RESOURCE_USED"
23422	//   "DEPRECATED_TYPE_USED"
23423	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23424	//   "EXPERIMENTAL_TYPE_USED"
23425	//   "EXTERNAL_API_WARNING"
23426	//   "FIELD_VALUE_OVERRIDEN"
23427	//   "INJECTED_KERNELS_DEPRECATED"
23428	//   "MISSING_TYPE_DEPENDENCY"
23429	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23430	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23431	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23432	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23433	//   "NEXT_HOP_NOT_RUNNING"
23434	//   "NOT_CRITICAL_ERROR"
23435	//   "NO_RESULTS_ON_PAGE"
23436	//   "REQUIRED_TOS_AGREEMENT"
23437	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23438	//   "RESOURCE_NOT_DELETED"
23439	//   "SCHEMA_VALIDATION_IGNORED"
23440	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23441	//   "UNDECLARED_PROPERTIES"
23442	//   "UNREACHABLE"
23443	Code string `json:"code,omitempty"`
23444
23445	// Data: [Output Only] Metadata about this warning in key: value format.
23446	// For example:
23447	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23448	Data []*ZoneListWarningData `json:"data,omitempty"`
23449
23450	// Message: [Output Only] A human-readable description of the warning
23451	// code.
23452	Message string `json:"message,omitempty"`
23453
23454	// ForceSendFields is a list of field names (e.g. "Code") to
23455	// unconditionally include in API requests. By default, fields with
23456	// empty values are omitted from API requests. However, any non-pointer,
23457	// non-interface field appearing in ForceSendFields will be sent to the
23458	// server regardless of whether the field is empty or not. This may be
23459	// used to include empty fields in Patch requests.
23460	ForceSendFields []string `json:"-"`
23461
23462	// NullFields is a list of field names (e.g. "Code") to include in API
23463	// requests with the JSON null value. By default, fields with empty
23464	// values are omitted from API requests. However, any field with an
23465	// empty value appearing in NullFields will be sent to the server as
23466	// null. It is an error if a field in this list has a non-empty value.
23467	// This may be used to include null fields in Patch requests.
23468	NullFields []string `json:"-"`
23469}
23470
23471func (s *ZoneListWarning) MarshalJSON() ([]byte, error) {
23472	type NoMethod ZoneListWarning
23473	raw := NoMethod(*s)
23474	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23475}
23476
23477type ZoneListWarningData struct {
23478	// Key: [Output Only] A key that provides more detail on the warning
23479	// being returned. For example, for warnings where there are no results
23480	// in a list request for a particular zone, this key might be scope and
23481	// the key value might be the zone name. Other examples might be a key
23482	// indicating a deprecated resource and a suggested replacement, or a
23483	// warning about invalid network settings (for example, if an instance
23484	// attempts to perform IP forwarding but is not enabled for IP
23485	// forwarding).
23486	Key string `json:"key,omitempty"`
23487
23488	// Value: [Output Only] A warning data value corresponding to the key.
23489	Value string `json:"value,omitempty"`
23490
23491	// ForceSendFields is a list of field names (e.g. "Key") to
23492	// unconditionally include in API requests. By default, fields with
23493	// empty values are omitted from API requests. However, any non-pointer,
23494	// non-interface field appearing in ForceSendFields will be sent to the
23495	// server regardless of whether the field is empty or not. This may be
23496	// used to include empty fields in Patch requests.
23497	ForceSendFields []string `json:"-"`
23498
23499	// NullFields is a list of field names (e.g. "Key") to include in API
23500	// requests with the JSON null value. By default, fields with empty
23501	// values are omitted from API requests. However, any field with an
23502	// empty value appearing in NullFields will be sent to the server as
23503	// null. It is an error if a field in this list has a non-empty value.
23504	// This may be used to include null fields in Patch requests.
23505	NullFields []string `json:"-"`
23506}
23507
23508func (s *ZoneListWarningData) MarshalJSON() ([]byte, error) {
23509	type NoMethod ZoneListWarningData
23510	raw := NoMethod(*s)
23511	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23512}
23513
23514type ZoneSetLabelsRequest struct {
23515	// LabelFingerprint: The fingerprint of the previous set of labels for
23516	// this resource, used to detect conflicts. The fingerprint is initially
23517	// generated by Compute Engine and changes after every request to modify
23518	// or update labels. You must always provide an up-to-date fingerprint
23519	// hash in order to update or change labels. Make a get() request to the
23520	// resource to get the latest fingerprint.
23521	LabelFingerprint string `json:"labelFingerprint,omitempty"`
23522
23523	// Labels: The labels to set for this resource.
23524	Labels map[string]string `json:"labels,omitempty"`
23525
23526	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
23527	// unconditionally include in API requests. By default, fields with
23528	// empty values are omitted from API requests. However, any non-pointer,
23529	// non-interface field appearing in ForceSendFields will be sent to the
23530	// server regardless of whether the field is empty or not. This may be
23531	// used to include empty fields in Patch requests.
23532	ForceSendFields []string `json:"-"`
23533
23534	// NullFields is a list of field names (e.g. "LabelFingerprint") to
23535	// include in API requests with the JSON null value. By default, fields
23536	// with empty values are omitted from API requests. However, any field
23537	// with an empty value appearing in NullFields will be sent to the
23538	// server as null. It is an error if a field in this list has a
23539	// non-empty value. This may be used to include null fields in Patch
23540	// requests.
23541	NullFields []string `json:"-"`
23542}
23543
23544func (s *ZoneSetLabelsRequest) MarshalJSON() ([]byte, error) {
23545	type NoMethod ZoneSetLabelsRequest
23546	raw := NoMethod(*s)
23547	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23548}
23549
23550// method id "compute.acceleratorTypes.aggregatedList":
23551
23552type AcceleratorTypesAggregatedListCall struct {
23553	s            *Service
23554	project      string
23555	urlParams_   gensupport.URLParams
23556	ifNoneMatch_ string
23557	ctx_         context.Context
23558	header_      http.Header
23559}
23560
23561// AggregatedList: Retrieves an aggregated list of accelerator types.
23562func (r *AcceleratorTypesService) AggregatedList(project string) *AcceleratorTypesAggregatedListCall {
23563	c := &AcceleratorTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
23564	c.project = project
23565	return c
23566}
23567
23568// Filter sets the optional parameter "filter": Sets a filter
23569// {expression} for filtering listed resources. Your {expression} must
23570// be in the format: field_name comparison_string literal_string.
23571//
23572// The field_name is the name of the field you want to compare. Only
23573// atomic field types are supported (string, number, boolean). The
23574// comparison_string must be either eq (equals) or ne (not equals). The
23575// literal_string is the string value to filter to. The literal value
23576// must be valid for the type of field you are filtering by (string,
23577// number, boolean). For string fields, the literal value is interpreted
23578// as a regular expression using RE2 syntax. The literal value must
23579// match the entire field.
23580//
23581// For example, to filter for instances that do not have a name of
23582// example-instance, you would use name ne example-instance.
23583//
23584// You can filter on nested fields. For example, you could filter on
23585// instances that have set the scheduling.automaticRestart field to
23586// true. Use filtering on nested fields to take advantage of labels to
23587// organize and search for results based on label values.
23588//
23589// To filter on multiple expressions, provide each separate expression
23590// within parentheses. For example, (scheduling.automaticRestart eq
23591// true) (zone eq us-central1-f). Multiple expressions are treated as
23592// AND expressions, meaning that resources must match all expressions to
23593// pass the filters.
23594func (c *AcceleratorTypesAggregatedListCall) Filter(filter string) *AcceleratorTypesAggregatedListCall {
23595	c.urlParams_.Set("filter", filter)
23596	return c
23597}
23598
23599// MaxResults sets the optional parameter "maxResults": The maximum
23600// number of results per page that should be returned. If the number of
23601// available results is larger than maxResults, Compute Engine returns a
23602// nextPageToken that can be used to get the next page of results in
23603// subsequent list requests. Acceptable values are 0 to 500, inclusive.
23604// (Default: 500)
23605func (c *AcceleratorTypesAggregatedListCall) MaxResults(maxResults int64) *AcceleratorTypesAggregatedListCall {
23606	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
23607	return c
23608}
23609
23610// OrderBy sets the optional parameter "orderBy": Sorts list results by
23611// a certain order. By default, results are returned in alphanumerical
23612// order based on the resource name.
23613//
23614// You can also sort results in descending order based on the creation
23615// timestamp using orderBy="creationTimestamp desc". This sorts results
23616// based on the creationTimestamp field in reverse chronological order
23617// (newest result first). Use this to sort resources like operations so
23618// that the newest operation is returned first.
23619//
23620// Currently, only sorting by name or creationTimestamp desc is
23621// supported.
23622func (c *AcceleratorTypesAggregatedListCall) OrderBy(orderBy string) *AcceleratorTypesAggregatedListCall {
23623	c.urlParams_.Set("orderBy", orderBy)
23624	return c
23625}
23626
23627// PageToken sets the optional parameter "pageToken": Specifies a page
23628// token to use. Set pageToken to the nextPageToken returned by a
23629// previous list request to get the next page of results.
23630func (c *AcceleratorTypesAggregatedListCall) PageToken(pageToken string) *AcceleratorTypesAggregatedListCall {
23631	c.urlParams_.Set("pageToken", pageToken)
23632	return c
23633}
23634
23635// Fields allows partial responses to be retrieved. See
23636// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
23637// for more information.
23638func (c *AcceleratorTypesAggregatedListCall) Fields(s ...googleapi.Field) *AcceleratorTypesAggregatedListCall {
23639	c.urlParams_.Set("fields", googleapi.CombineFields(s))
23640	return c
23641}
23642
23643// IfNoneMatch sets the optional parameter which makes the operation
23644// fail if the object's ETag matches the given value. This is useful for
23645// getting updates only after the object has changed since the last
23646// request. Use googleapi.IsNotModified to check whether the response
23647// error from Do is the result of In-None-Match.
23648func (c *AcceleratorTypesAggregatedListCall) IfNoneMatch(entityTag string) *AcceleratorTypesAggregatedListCall {
23649	c.ifNoneMatch_ = entityTag
23650	return c
23651}
23652
23653// Context sets the context to be used in this call's Do method. Any
23654// pending HTTP request will be aborted if the provided context is
23655// canceled.
23656func (c *AcceleratorTypesAggregatedListCall) Context(ctx context.Context) *AcceleratorTypesAggregatedListCall {
23657	c.ctx_ = ctx
23658	return c
23659}
23660
23661// Header returns an http.Header that can be modified by the caller to
23662// add HTTP headers to the request.
23663func (c *AcceleratorTypesAggregatedListCall) Header() http.Header {
23664	if c.header_ == nil {
23665		c.header_ = make(http.Header)
23666	}
23667	return c.header_
23668}
23669
23670func (c *AcceleratorTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
23671	reqHeaders := make(http.Header)
23672	for k, v := range c.header_ {
23673		reqHeaders[k] = v
23674	}
23675	reqHeaders.Set("User-Agent", c.s.userAgent())
23676	if c.ifNoneMatch_ != "" {
23677		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
23678	}
23679	var body io.Reader = nil
23680	c.urlParams_.Set("alt", alt)
23681	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/acceleratorTypes")
23682	urls += "?" + c.urlParams_.Encode()
23683	req, _ := http.NewRequest("GET", urls, body)
23684	req.Header = reqHeaders
23685	googleapi.Expand(req.URL, map[string]string{
23686		"project": c.project,
23687	})
23688	return gensupport.SendRequest(c.ctx_, c.s.client, req)
23689}
23690
23691// Do executes the "compute.acceleratorTypes.aggregatedList" call.
23692// Exactly one of *AcceleratorTypeAggregatedList or error will be
23693// non-nil. Any non-2xx status code is an error. Response headers are in
23694// either *AcceleratorTypeAggregatedList.ServerResponse.Header or (if a
23695// response was returned at all) in error.(*googleapi.Error).Header. Use
23696// googleapi.IsNotModified to check whether the returned error was
23697// because http.StatusNotModified was returned.
23698func (c *AcceleratorTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeAggregatedList, error) {
23699	gensupport.SetOptions(c.urlParams_, opts...)
23700	res, err := c.doRequest("json")
23701	if res != nil && res.StatusCode == http.StatusNotModified {
23702		if res.Body != nil {
23703			res.Body.Close()
23704		}
23705		return nil, &googleapi.Error{
23706			Code:   res.StatusCode,
23707			Header: res.Header,
23708		}
23709	}
23710	if err != nil {
23711		return nil, err
23712	}
23713	defer googleapi.CloseBody(res)
23714	if err := googleapi.CheckResponse(res); err != nil {
23715		return nil, err
23716	}
23717	ret := &AcceleratorTypeAggregatedList{
23718		ServerResponse: googleapi.ServerResponse{
23719			Header:         res.Header,
23720			HTTPStatusCode: res.StatusCode,
23721		},
23722	}
23723	target := &ret
23724	if err := gensupport.DecodeResponse(target, res); err != nil {
23725		return nil, err
23726	}
23727	return ret, nil
23728	// {
23729	//   "description": "Retrieves an aggregated list of accelerator types.",
23730	//   "httpMethod": "GET",
23731	//   "id": "compute.acceleratorTypes.aggregatedList",
23732	//   "parameterOrder": [
23733	//     "project"
23734	//   ],
23735	//   "parameters": {
23736	//     "filter": {
23737	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
23738	//       "location": "query",
23739	//       "type": "string"
23740	//     },
23741	//     "maxResults": {
23742	//       "default": "500",
23743	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
23744	//       "format": "uint32",
23745	//       "location": "query",
23746	//       "minimum": "0",
23747	//       "type": "integer"
23748	//     },
23749	//     "orderBy": {
23750	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
23751	//       "location": "query",
23752	//       "type": "string"
23753	//     },
23754	//     "pageToken": {
23755	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
23756	//       "location": "query",
23757	//       "type": "string"
23758	//     },
23759	//     "project": {
23760	//       "description": "Project ID for this request.",
23761	//       "location": "path",
23762	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
23763	//       "required": true,
23764	//       "type": "string"
23765	//     }
23766	//   },
23767	//   "path": "{project}/aggregated/acceleratorTypes",
23768	//   "response": {
23769	//     "$ref": "AcceleratorTypeAggregatedList"
23770	//   },
23771	//   "scopes": [
23772	//     "https://www.googleapis.com/auth/cloud-platform",
23773	//     "https://www.googleapis.com/auth/compute",
23774	//     "https://www.googleapis.com/auth/compute.readonly"
23775	//   ]
23776	// }
23777
23778}
23779
23780// Pages invokes f for each page of results.
23781// A non-nil error returned from f will halt the iteration.
23782// The provided context supersedes any context provided to the Context method.
23783func (c *AcceleratorTypesAggregatedListCall) Pages(ctx context.Context, f func(*AcceleratorTypeAggregatedList) error) error {
23784	c.ctx_ = ctx
23785	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
23786	for {
23787		x, err := c.Do()
23788		if err != nil {
23789			return err
23790		}
23791		if err := f(x); err != nil {
23792			return err
23793		}
23794		if x.NextPageToken == "" {
23795			return nil
23796		}
23797		c.PageToken(x.NextPageToken)
23798	}
23799}
23800
23801// method id "compute.acceleratorTypes.get":
23802
23803type AcceleratorTypesGetCall struct {
23804	s               *Service
23805	project         string
23806	zone            string
23807	acceleratorType string
23808	urlParams_      gensupport.URLParams
23809	ifNoneMatch_    string
23810	ctx_            context.Context
23811	header_         http.Header
23812}
23813
23814// Get: Returns the specified accelerator type. Get a list of available
23815// accelerator types by making a list() request.
23816func (r *AcceleratorTypesService) Get(project string, zone string, acceleratorType string) *AcceleratorTypesGetCall {
23817	c := &AcceleratorTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
23818	c.project = project
23819	c.zone = zone
23820	c.acceleratorType = acceleratorType
23821	return c
23822}
23823
23824// Fields allows partial responses to be retrieved. See
23825// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
23826// for more information.
23827func (c *AcceleratorTypesGetCall) Fields(s ...googleapi.Field) *AcceleratorTypesGetCall {
23828	c.urlParams_.Set("fields", googleapi.CombineFields(s))
23829	return c
23830}
23831
23832// IfNoneMatch sets the optional parameter which makes the operation
23833// fail if the object's ETag matches the given value. This is useful for
23834// getting updates only after the object has changed since the last
23835// request. Use googleapi.IsNotModified to check whether the response
23836// error from Do is the result of In-None-Match.
23837func (c *AcceleratorTypesGetCall) IfNoneMatch(entityTag string) *AcceleratorTypesGetCall {
23838	c.ifNoneMatch_ = entityTag
23839	return c
23840}
23841
23842// Context sets the context to be used in this call's Do method. Any
23843// pending HTTP request will be aborted if the provided context is
23844// canceled.
23845func (c *AcceleratorTypesGetCall) Context(ctx context.Context) *AcceleratorTypesGetCall {
23846	c.ctx_ = ctx
23847	return c
23848}
23849
23850// Header returns an http.Header that can be modified by the caller to
23851// add HTTP headers to the request.
23852func (c *AcceleratorTypesGetCall) Header() http.Header {
23853	if c.header_ == nil {
23854		c.header_ = make(http.Header)
23855	}
23856	return c.header_
23857}
23858
23859func (c *AcceleratorTypesGetCall) doRequest(alt string) (*http.Response, error) {
23860	reqHeaders := make(http.Header)
23861	for k, v := range c.header_ {
23862		reqHeaders[k] = v
23863	}
23864	reqHeaders.Set("User-Agent", c.s.userAgent())
23865	if c.ifNoneMatch_ != "" {
23866		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
23867	}
23868	var body io.Reader = nil
23869	c.urlParams_.Set("alt", alt)
23870	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/acceleratorTypes/{acceleratorType}")
23871	urls += "?" + c.urlParams_.Encode()
23872	req, _ := http.NewRequest("GET", urls, body)
23873	req.Header = reqHeaders
23874	googleapi.Expand(req.URL, map[string]string{
23875		"project":         c.project,
23876		"zone":            c.zone,
23877		"acceleratorType": c.acceleratorType,
23878	})
23879	return gensupport.SendRequest(c.ctx_, c.s.client, req)
23880}
23881
23882// Do executes the "compute.acceleratorTypes.get" call.
23883// Exactly one of *AcceleratorType or error will be non-nil. Any non-2xx
23884// status code is an error. Response headers are in either
23885// *AcceleratorType.ServerResponse.Header or (if a response was returned
23886// at all) in error.(*googleapi.Error).Header. Use
23887// googleapi.IsNotModified to check whether the returned error was
23888// because http.StatusNotModified was returned.
23889func (c *AcceleratorTypesGetCall) Do(opts ...googleapi.CallOption) (*AcceleratorType, error) {
23890	gensupport.SetOptions(c.urlParams_, opts...)
23891	res, err := c.doRequest("json")
23892	if res != nil && res.StatusCode == http.StatusNotModified {
23893		if res.Body != nil {
23894			res.Body.Close()
23895		}
23896		return nil, &googleapi.Error{
23897			Code:   res.StatusCode,
23898			Header: res.Header,
23899		}
23900	}
23901	if err != nil {
23902		return nil, err
23903	}
23904	defer googleapi.CloseBody(res)
23905	if err := googleapi.CheckResponse(res); err != nil {
23906		return nil, err
23907	}
23908	ret := &AcceleratorType{
23909		ServerResponse: googleapi.ServerResponse{
23910			Header:         res.Header,
23911			HTTPStatusCode: res.StatusCode,
23912		},
23913	}
23914	target := &ret
23915	if err := gensupport.DecodeResponse(target, res); err != nil {
23916		return nil, err
23917	}
23918	return ret, nil
23919	// {
23920	//   "description": "Returns the specified accelerator type. Get a list of available accelerator types by making a list() request.",
23921	//   "httpMethod": "GET",
23922	//   "id": "compute.acceleratorTypes.get",
23923	//   "parameterOrder": [
23924	//     "project",
23925	//     "zone",
23926	//     "acceleratorType"
23927	//   ],
23928	//   "parameters": {
23929	//     "acceleratorType": {
23930	//       "description": "Name of the accelerator type to return.",
23931	//       "location": "path",
23932	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
23933	//       "required": true,
23934	//       "type": "string"
23935	//     },
23936	//     "project": {
23937	//       "description": "Project ID for this request.",
23938	//       "location": "path",
23939	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
23940	//       "required": true,
23941	//       "type": "string"
23942	//     },
23943	//     "zone": {
23944	//       "description": "The name of the zone for this request.",
23945	//       "location": "path",
23946	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
23947	//       "required": true,
23948	//       "type": "string"
23949	//     }
23950	//   },
23951	//   "path": "{project}/zones/{zone}/acceleratorTypes/{acceleratorType}",
23952	//   "response": {
23953	//     "$ref": "AcceleratorType"
23954	//   },
23955	//   "scopes": [
23956	//     "https://www.googleapis.com/auth/cloud-platform",
23957	//     "https://www.googleapis.com/auth/compute",
23958	//     "https://www.googleapis.com/auth/compute.readonly"
23959	//   ]
23960	// }
23961
23962}
23963
23964// method id "compute.acceleratorTypes.list":
23965
23966type AcceleratorTypesListCall struct {
23967	s            *Service
23968	project      string
23969	zone         string
23970	urlParams_   gensupport.URLParams
23971	ifNoneMatch_ string
23972	ctx_         context.Context
23973	header_      http.Header
23974}
23975
23976// List: Retrieves a list of accelerator types available to the
23977// specified project.
23978func (r *AcceleratorTypesService) List(project string, zone string) *AcceleratorTypesListCall {
23979	c := &AcceleratorTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
23980	c.project = project
23981	c.zone = zone
23982	return c
23983}
23984
23985// Filter sets the optional parameter "filter": Sets a filter
23986// {expression} for filtering listed resources. Your {expression} must
23987// be in the format: field_name comparison_string literal_string.
23988//
23989// The field_name is the name of the field you want to compare. Only
23990// atomic field types are supported (string, number, boolean). The
23991// comparison_string must be either eq (equals) or ne (not equals). The
23992// literal_string is the string value to filter to. The literal value
23993// must be valid for the type of field you are filtering by (string,
23994// number, boolean). For string fields, the literal value is interpreted
23995// as a regular expression using RE2 syntax. The literal value must
23996// match the entire field.
23997//
23998// For example, to filter for instances that do not have a name of
23999// example-instance, you would use name ne example-instance.
24000//
24001// You can filter on nested fields. For example, you could filter on
24002// instances that have set the scheduling.automaticRestart field to
24003// true. Use filtering on nested fields to take advantage of labels to
24004// organize and search for results based on label values.
24005//
24006// To filter on multiple expressions, provide each separate expression
24007// within parentheses. For example, (scheduling.automaticRestart eq
24008// true) (zone eq us-central1-f). Multiple expressions are treated as
24009// AND expressions, meaning that resources must match all expressions to
24010// pass the filters.
24011func (c *AcceleratorTypesListCall) Filter(filter string) *AcceleratorTypesListCall {
24012	c.urlParams_.Set("filter", filter)
24013	return c
24014}
24015
24016// MaxResults sets the optional parameter "maxResults": The maximum
24017// number of results per page that should be returned. If the number of
24018// available results is larger than maxResults, Compute Engine returns a
24019// nextPageToken that can be used to get the next page of results in
24020// subsequent list requests. Acceptable values are 0 to 500, inclusive.
24021// (Default: 500)
24022func (c *AcceleratorTypesListCall) MaxResults(maxResults int64) *AcceleratorTypesListCall {
24023	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
24024	return c
24025}
24026
24027// OrderBy sets the optional parameter "orderBy": Sorts list results by
24028// a certain order. By default, results are returned in alphanumerical
24029// order based on the resource name.
24030//
24031// You can also sort results in descending order based on the creation
24032// timestamp using orderBy="creationTimestamp desc". This sorts results
24033// based on the creationTimestamp field in reverse chronological order
24034// (newest result first). Use this to sort resources like operations so
24035// that the newest operation is returned first.
24036//
24037// Currently, only sorting by name or creationTimestamp desc is
24038// supported.
24039func (c *AcceleratorTypesListCall) OrderBy(orderBy string) *AcceleratorTypesListCall {
24040	c.urlParams_.Set("orderBy", orderBy)
24041	return c
24042}
24043
24044// PageToken sets the optional parameter "pageToken": Specifies a page
24045// token to use. Set pageToken to the nextPageToken returned by a
24046// previous list request to get the next page of results.
24047func (c *AcceleratorTypesListCall) PageToken(pageToken string) *AcceleratorTypesListCall {
24048	c.urlParams_.Set("pageToken", pageToken)
24049	return c
24050}
24051
24052// Fields allows partial responses to be retrieved. See
24053// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
24054// for more information.
24055func (c *AcceleratorTypesListCall) Fields(s ...googleapi.Field) *AcceleratorTypesListCall {
24056	c.urlParams_.Set("fields", googleapi.CombineFields(s))
24057	return c
24058}
24059
24060// IfNoneMatch sets the optional parameter which makes the operation
24061// fail if the object's ETag matches the given value. This is useful for
24062// getting updates only after the object has changed since the last
24063// request. Use googleapi.IsNotModified to check whether the response
24064// error from Do is the result of In-None-Match.
24065func (c *AcceleratorTypesListCall) IfNoneMatch(entityTag string) *AcceleratorTypesListCall {
24066	c.ifNoneMatch_ = entityTag
24067	return c
24068}
24069
24070// Context sets the context to be used in this call's Do method. Any
24071// pending HTTP request will be aborted if the provided context is
24072// canceled.
24073func (c *AcceleratorTypesListCall) Context(ctx context.Context) *AcceleratorTypesListCall {
24074	c.ctx_ = ctx
24075	return c
24076}
24077
24078// Header returns an http.Header that can be modified by the caller to
24079// add HTTP headers to the request.
24080func (c *AcceleratorTypesListCall) Header() http.Header {
24081	if c.header_ == nil {
24082		c.header_ = make(http.Header)
24083	}
24084	return c.header_
24085}
24086
24087func (c *AcceleratorTypesListCall) doRequest(alt string) (*http.Response, error) {
24088	reqHeaders := make(http.Header)
24089	for k, v := range c.header_ {
24090		reqHeaders[k] = v
24091	}
24092	reqHeaders.Set("User-Agent", c.s.userAgent())
24093	if c.ifNoneMatch_ != "" {
24094		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
24095	}
24096	var body io.Reader = nil
24097	c.urlParams_.Set("alt", alt)
24098	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/acceleratorTypes")
24099	urls += "?" + c.urlParams_.Encode()
24100	req, _ := http.NewRequest("GET", urls, body)
24101	req.Header = reqHeaders
24102	googleapi.Expand(req.URL, map[string]string{
24103		"project": c.project,
24104		"zone":    c.zone,
24105	})
24106	return gensupport.SendRequest(c.ctx_, c.s.client, req)
24107}
24108
24109// Do executes the "compute.acceleratorTypes.list" call.
24110// Exactly one of *AcceleratorTypeList or error will be non-nil. Any
24111// non-2xx status code is an error. Response headers are in either
24112// *AcceleratorTypeList.ServerResponse.Header or (if a response was
24113// returned at all) in error.(*googleapi.Error).Header. Use
24114// googleapi.IsNotModified to check whether the returned error was
24115// because http.StatusNotModified was returned.
24116func (c *AcceleratorTypesListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeList, error) {
24117	gensupport.SetOptions(c.urlParams_, opts...)
24118	res, err := c.doRequest("json")
24119	if res != nil && res.StatusCode == http.StatusNotModified {
24120		if res.Body != nil {
24121			res.Body.Close()
24122		}
24123		return nil, &googleapi.Error{
24124			Code:   res.StatusCode,
24125			Header: res.Header,
24126		}
24127	}
24128	if err != nil {
24129		return nil, err
24130	}
24131	defer googleapi.CloseBody(res)
24132	if err := googleapi.CheckResponse(res); err != nil {
24133		return nil, err
24134	}
24135	ret := &AcceleratorTypeList{
24136		ServerResponse: googleapi.ServerResponse{
24137			Header:         res.Header,
24138			HTTPStatusCode: res.StatusCode,
24139		},
24140	}
24141	target := &ret
24142	if err := gensupport.DecodeResponse(target, res); err != nil {
24143		return nil, err
24144	}
24145	return ret, nil
24146	// {
24147	//   "description": "Retrieves a list of accelerator types available to the specified project.",
24148	//   "httpMethod": "GET",
24149	//   "id": "compute.acceleratorTypes.list",
24150	//   "parameterOrder": [
24151	//     "project",
24152	//     "zone"
24153	//   ],
24154	//   "parameters": {
24155	//     "filter": {
24156	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
24157	//       "location": "query",
24158	//       "type": "string"
24159	//     },
24160	//     "maxResults": {
24161	//       "default": "500",
24162	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
24163	//       "format": "uint32",
24164	//       "location": "query",
24165	//       "minimum": "0",
24166	//       "type": "integer"
24167	//     },
24168	//     "orderBy": {
24169	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
24170	//       "location": "query",
24171	//       "type": "string"
24172	//     },
24173	//     "pageToken": {
24174	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
24175	//       "location": "query",
24176	//       "type": "string"
24177	//     },
24178	//     "project": {
24179	//       "description": "Project ID for this request.",
24180	//       "location": "path",
24181	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
24182	//       "required": true,
24183	//       "type": "string"
24184	//     },
24185	//     "zone": {
24186	//       "description": "The name of the zone for this request.",
24187	//       "location": "path",
24188	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
24189	//       "required": true,
24190	//       "type": "string"
24191	//     }
24192	//   },
24193	//   "path": "{project}/zones/{zone}/acceleratorTypes",
24194	//   "response": {
24195	//     "$ref": "AcceleratorTypeList"
24196	//   },
24197	//   "scopes": [
24198	//     "https://www.googleapis.com/auth/cloud-platform",
24199	//     "https://www.googleapis.com/auth/compute",
24200	//     "https://www.googleapis.com/auth/compute.readonly"
24201	//   ]
24202	// }
24203
24204}
24205
24206// Pages invokes f for each page of results.
24207// A non-nil error returned from f will halt the iteration.
24208// The provided context supersedes any context provided to the Context method.
24209func (c *AcceleratorTypesListCall) Pages(ctx context.Context, f func(*AcceleratorTypeList) error) error {
24210	c.ctx_ = ctx
24211	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
24212	for {
24213		x, err := c.Do()
24214		if err != nil {
24215			return err
24216		}
24217		if err := f(x); err != nil {
24218			return err
24219		}
24220		if x.NextPageToken == "" {
24221			return nil
24222		}
24223		c.PageToken(x.NextPageToken)
24224	}
24225}
24226
24227// method id "compute.addresses.aggregatedList":
24228
24229type AddressesAggregatedListCall struct {
24230	s            *Service
24231	project      string
24232	urlParams_   gensupport.URLParams
24233	ifNoneMatch_ string
24234	ctx_         context.Context
24235	header_      http.Header
24236}
24237
24238// AggregatedList: Retrieves an aggregated list of addresses.
24239// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/aggregatedList
24240func (r *AddressesService) AggregatedList(project string) *AddressesAggregatedListCall {
24241	c := &AddressesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
24242	c.project = project
24243	return c
24244}
24245
24246// Filter sets the optional parameter "filter": Sets a filter
24247// {expression} for filtering listed resources. Your {expression} must
24248// be in the format: field_name comparison_string literal_string.
24249//
24250// The field_name is the name of the field you want to compare. Only
24251// atomic field types are supported (string, number, boolean). The
24252// comparison_string must be either eq (equals) or ne (not equals). The
24253// literal_string is the string value to filter to. The literal value
24254// must be valid for the type of field you are filtering by (string,
24255// number, boolean). For string fields, the literal value is interpreted
24256// as a regular expression using RE2 syntax. The literal value must
24257// match the entire field.
24258//
24259// For example, to filter for instances that do not have a name of
24260// example-instance, you would use name ne example-instance.
24261//
24262// You can filter on nested fields. For example, you could filter on
24263// instances that have set the scheduling.automaticRestart field to
24264// true. Use filtering on nested fields to take advantage of labels to
24265// organize and search for results based on label values.
24266//
24267// To filter on multiple expressions, provide each separate expression
24268// within parentheses. For example, (scheduling.automaticRestart eq
24269// true) (zone eq us-central1-f). Multiple expressions are treated as
24270// AND expressions, meaning that resources must match all expressions to
24271// pass the filters.
24272func (c *AddressesAggregatedListCall) Filter(filter string) *AddressesAggregatedListCall {
24273	c.urlParams_.Set("filter", filter)
24274	return c
24275}
24276
24277// MaxResults sets the optional parameter "maxResults": The maximum
24278// number of results per page that should be returned. If the number of
24279// available results is larger than maxResults, Compute Engine returns a
24280// nextPageToken that can be used to get the next page of results in
24281// subsequent list requests. Acceptable values are 0 to 500, inclusive.
24282// (Default: 500)
24283func (c *AddressesAggregatedListCall) MaxResults(maxResults int64) *AddressesAggregatedListCall {
24284	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
24285	return c
24286}
24287
24288// OrderBy sets the optional parameter "orderBy": Sorts list results by
24289// a certain order. By default, results are returned in alphanumerical
24290// order based on the resource name.
24291//
24292// You can also sort results in descending order based on the creation
24293// timestamp using orderBy="creationTimestamp desc". This sorts results
24294// based on the creationTimestamp field in reverse chronological order
24295// (newest result first). Use this to sort resources like operations so
24296// that the newest operation is returned first.
24297//
24298// Currently, only sorting by name or creationTimestamp desc is
24299// supported.
24300func (c *AddressesAggregatedListCall) OrderBy(orderBy string) *AddressesAggregatedListCall {
24301	c.urlParams_.Set("orderBy", orderBy)
24302	return c
24303}
24304
24305// PageToken sets the optional parameter "pageToken": Specifies a page
24306// token to use. Set pageToken to the nextPageToken returned by a
24307// previous list request to get the next page of results.
24308func (c *AddressesAggregatedListCall) PageToken(pageToken string) *AddressesAggregatedListCall {
24309	c.urlParams_.Set("pageToken", pageToken)
24310	return c
24311}
24312
24313// Fields allows partial responses to be retrieved. See
24314// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
24315// for more information.
24316func (c *AddressesAggregatedListCall) Fields(s ...googleapi.Field) *AddressesAggregatedListCall {
24317	c.urlParams_.Set("fields", googleapi.CombineFields(s))
24318	return c
24319}
24320
24321// IfNoneMatch sets the optional parameter which makes the operation
24322// fail if the object's ETag matches the given value. This is useful for
24323// getting updates only after the object has changed since the last
24324// request. Use googleapi.IsNotModified to check whether the response
24325// error from Do is the result of In-None-Match.
24326func (c *AddressesAggregatedListCall) IfNoneMatch(entityTag string) *AddressesAggregatedListCall {
24327	c.ifNoneMatch_ = entityTag
24328	return c
24329}
24330
24331// Context sets the context to be used in this call's Do method. Any
24332// pending HTTP request will be aborted if the provided context is
24333// canceled.
24334func (c *AddressesAggregatedListCall) Context(ctx context.Context) *AddressesAggregatedListCall {
24335	c.ctx_ = ctx
24336	return c
24337}
24338
24339// Header returns an http.Header that can be modified by the caller to
24340// add HTTP headers to the request.
24341func (c *AddressesAggregatedListCall) Header() http.Header {
24342	if c.header_ == nil {
24343		c.header_ = make(http.Header)
24344	}
24345	return c.header_
24346}
24347
24348func (c *AddressesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
24349	reqHeaders := make(http.Header)
24350	for k, v := range c.header_ {
24351		reqHeaders[k] = v
24352	}
24353	reqHeaders.Set("User-Agent", c.s.userAgent())
24354	if c.ifNoneMatch_ != "" {
24355		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
24356	}
24357	var body io.Reader = nil
24358	c.urlParams_.Set("alt", alt)
24359	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/addresses")
24360	urls += "?" + c.urlParams_.Encode()
24361	req, _ := http.NewRequest("GET", urls, body)
24362	req.Header = reqHeaders
24363	googleapi.Expand(req.URL, map[string]string{
24364		"project": c.project,
24365	})
24366	return gensupport.SendRequest(c.ctx_, c.s.client, req)
24367}
24368
24369// Do executes the "compute.addresses.aggregatedList" call.
24370// Exactly one of *AddressAggregatedList or error will be non-nil. Any
24371// non-2xx status code is an error. Response headers are in either
24372// *AddressAggregatedList.ServerResponse.Header or (if a response was
24373// returned at all) in error.(*googleapi.Error).Header. Use
24374// googleapi.IsNotModified to check whether the returned error was
24375// because http.StatusNotModified was returned.
24376func (c *AddressesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AddressAggregatedList, error) {
24377	gensupport.SetOptions(c.urlParams_, opts...)
24378	res, err := c.doRequest("json")
24379	if res != nil && res.StatusCode == http.StatusNotModified {
24380		if res.Body != nil {
24381			res.Body.Close()
24382		}
24383		return nil, &googleapi.Error{
24384			Code:   res.StatusCode,
24385			Header: res.Header,
24386		}
24387	}
24388	if err != nil {
24389		return nil, err
24390	}
24391	defer googleapi.CloseBody(res)
24392	if err := googleapi.CheckResponse(res); err != nil {
24393		return nil, err
24394	}
24395	ret := &AddressAggregatedList{
24396		ServerResponse: googleapi.ServerResponse{
24397			Header:         res.Header,
24398			HTTPStatusCode: res.StatusCode,
24399		},
24400	}
24401	target := &ret
24402	if err := gensupport.DecodeResponse(target, res); err != nil {
24403		return nil, err
24404	}
24405	return ret, nil
24406	// {
24407	//   "description": "Retrieves an aggregated list of addresses.",
24408	//   "httpMethod": "GET",
24409	//   "id": "compute.addresses.aggregatedList",
24410	//   "parameterOrder": [
24411	//     "project"
24412	//   ],
24413	//   "parameters": {
24414	//     "filter": {
24415	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
24416	//       "location": "query",
24417	//       "type": "string"
24418	//     },
24419	//     "maxResults": {
24420	//       "default": "500",
24421	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
24422	//       "format": "uint32",
24423	//       "location": "query",
24424	//       "minimum": "0",
24425	//       "type": "integer"
24426	//     },
24427	//     "orderBy": {
24428	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
24429	//       "location": "query",
24430	//       "type": "string"
24431	//     },
24432	//     "pageToken": {
24433	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
24434	//       "location": "query",
24435	//       "type": "string"
24436	//     },
24437	//     "project": {
24438	//       "description": "Project ID for this request.",
24439	//       "location": "path",
24440	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
24441	//       "required": true,
24442	//       "type": "string"
24443	//     }
24444	//   },
24445	//   "path": "{project}/aggregated/addresses",
24446	//   "response": {
24447	//     "$ref": "AddressAggregatedList"
24448	//   },
24449	//   "scopes": [
24450	//     "https://www.googleapis.com/auth/cloud-platform",
24451	//     "https://www.googleapis.com/auth/compute",
24452	//     "https://www.googleapis.com/auth/compute.readonly"
24453	//   ]
24454	// }
24455
24456}
24457
24458// Pages invokes f for each page of results.
24459// A non-nil error returned from f will halt the iteration.
24460// The provided context supersedes any context provided to the Context method.
24461func (c *AddressesAggregatedListCall) Pages(ctx context.Context, f func(*AddressAggregatedList) error) error {
24462	c.ctx_ = ctx
24463	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
24464	for {
24465		x, err := c.Do()
24466		if err != nil {
24467			return err
24468		}
24469		if err := f(x); err != nil {
24470			return err
24471		}
24472		if x.NextPageToken == "" {
24473			return nil
24474		}
24475		c.PageToken(x.NextPageToken)
24476	}
24477}
24478
24479// method id "compute.addresses.delete":
24480
24481type AddressesDeleteCall struct {
24482	s          *Service
24483	project    string
24484	region     string
24485	address    string
24486	urlParams_ gensupport.URLParams
24487	ctx_       context.Context
24488	header_    http.Header
24489}
24490
24491// Delete: Deletes the specified address resource.
24492// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/delete
24493func (r *AddressesService) Delete(project string, region string, address string) *AddressesDeleteCall {
24494	c := &AddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
24495	c.project = project
24496	c.region = region
24497	c.address = address
24498	return c
24499}
24500
24501// RequestId sets the optional parameter "requestId": An optional
24502// request ID to identify requests. Specify a unique request ID so that
24503// if you must retry your request, the server will know to ignore the
24504// request if it has already been completed.
24505//
24506// For example, consider a situation where you make an initial request
24507// and the request times out. If you make the request again with the
24508// same request ID, the server can check if original operation with the
24509// same request ID was received, and if so, will ignore the second
24510// request. This prevents clients from accidentally creating duplicate
24511// commitments.
24512//
24513// The request ID must be a valid UUID with the exception that zero UUID
24514// is not supported (00000000-0000-0000-0000-000000000000).
24515func (c *AddressesDeleteCall) RequestId(requestId string) *AddressesDeleteCall {
24516	c.urlParams_.Set("requestId", requestId)
24517	return c
24518}
24519
24520// Fields allows partial responses to be retrieved. See
24521// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
24522// for more information.
24523func (c *AddressesDeleteCall) Fields(s ...googleapi.Field) *AddressesDeleteCall {
24524	c.urlParams_.Set("fields", googleapi.CombineFields(s))
24525	return c
24526}
24527
24528// Context sets the context to be used in this call's Do method. Any
24529// pending HTTP request will be aborted if the provided context is
24530// canceled.
24531func (c *AddressesDeleteCall) Context(ctx context.Context) *AddressesDeleteCall {
24532	c.ctx_ = ctx
24533	return c
24534}
24535
24536// Header returns an http.Header that can be modified by the caller to
24537// add HTTP headers to the request.
24538func (c *AddressesDeleteCall) Header() http.Header {
24539	if c.header_ == nil {
24540		c.header_ = make(http.Header)
24541	}
24542	return c.header_
24543}
24544
24545func (c *AddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
24546	reqHeaders := make(http.Header)
24547	for k, v := range c.header_ {
24548		reqHeaders[k] = v
24549	}
24550	reqHeaders.Set("User-Agent", c.s.userAgent())
24551	var body io.Reader = nil
24552	c.urlParams_.Set("alt", alt)
24553	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{address}")
24554	urls += "?" + c.urlParams_.Encode()
24555	req, _ := http.NewRequest("DELETE", urls, body)
24556	req.Header = reqHeaders
24557	googleapi.Expand(req.URL, map[string]string{
24558		"project": c.project,
24559		"region":  c.region,
24560		"address": c.address,
24561	})
24562	return gensupport.SendRequest(c.ctx_, c.s.client, req)
24563}
24564
24565// Do executes the "compute.addresses.delete" call.
24566// Exactly one of *Operation or error will be non-nil. Any non-2xx
24567// status code is an error. Response headers are in either
24568// *Operation.ServerResponse.Header or (if a response was returned at
24569// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
24570// to check whether the returned error was because
24571// http.StatusNotModified was returned.
24572func (c *AddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
24573	gensupport.SetOptions(c.urlParams_, opts...)
24574	res, err := c.doRequest("json")
24575	if res != nil && res.StatusCode == http.StatusNotModified {
24576		if res.Body != nil {
24577			res.Body.Close()
24578		}
24579		return nil, &googleapi.Error{
24580			Code:   res.StatusCode,
24581			Header: res.Header,
24582		}
24583	}
24584	if err != nil {
24585		return nil, err
24586	}
24587	defer googleapi.CloseBody(res)
24588	if err := googleapi.CheckResponse(res); err != nil {
24589		return nil, err
24590	}
24591	ret := &Operation{
24592		ServerResponse: googleapi.ServerResponse{
24593			Header:         res.Header,
24594			HTTPStatusCode: res.StatusCode,
24595		},
24596	}
24597	target := &ret
24598	if err := gensupport.DecodeResponse(target, res); err != nil {
24599		return nil, err
24600	}
24601	return ret, nil
24602	// {
24603	//   "description": "Deletes the specified address resource.",
24604	//   "httpMethod": "DELETE",
24605	//   "id": "compute.addresses.delete",
24606	//   "parameterOrder": [
24607	//     "project",
24608	//     "region",
24609	//     "address"
24610	//   ],
24611	//   "parameters": {
24612	//     "address": {
24613	//       "description": "Name of the address resource to delete.",
24614	//       "location": "path",
24615	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
24616	//       "required": true,
24617	//       "type": "string"
24618	//     },
24619	//     "project": {
24620	//       "description": "Project ID for this request.",
24621	//       "location": "path",
24622	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
24623	//       "required": true,
24624	//       "type": "string"
24625	//     },
24626	//     "region": {
24627	//       "description": "Name of the region for this request.",
24628	//       "location": "path",
24629	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
24630	//       "required": true,
24631	//       "type": "string"
24632	//     },
24633	//     "requestId": {
24634	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
24635	//       "location": "query",
24636	//       "type": "string"
24637	//     }
24638	//   },
24639	//   "path": "{project}/regions/{region}/addresses/{address}",
24640	//   "response": {
24641	//     "$ref": "Operation"
24642	//   },
24643	//   "scopes": [
24644	//     "https://www.googleapis.com/auth/cloud-platform",
24645	//     "https://www.googleapis.com/auth/compute"
24646	//   ]
24647	// }
24648
24649}
24650
24651// method id "compute.addresses.get":
24652
24653type AddressesGetCall struct {
24654	s            *Service
24655	project      string
24656	region       string
24657	address      string
24658	urlParams_   gensupport.URLParams
24659	ifNoneMatch_ string
24660	ctx_         context.Context
24661	header_      http.Header
24662}
24663
24664// Get: Returns the specified address resource.
24665// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/get
24666func (r *AddressesService) Get(project string, region string, address string) *AddressesGetCall {
24667	c := &AddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
24668	c.project = project
24669	c.region = region
24670	c.address = address
24671	return c
24672}
24673
24674// Fields allows partial responses to be retrieved. See
24675// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
24676// for more information.
24677func (c *AddressesGetCall) Fields(s ...googleapi.Field) *AddressesGetCall {
24678	c.urlParams_.Set("fields", googleapi.CombineFields(s))
24679	return c
24680}
24681
24682// IfNoneMatch sets the optional parameter which makes the operation
24683// fail if the object's ETag matches the given value. This is useful for
24684// getting updates only after the object has changed since the last
24685// request. Use googleapi.IsNotModified to check whether the response
24686// error from Do is the result of In-None-Match.
24687func (c *AddressesGetCall) IfNoneMatch(entityTag string) *AddressesGetCall {
24688	c.ifNoneMatch_ = entityTag
24689	return c
24690}
24691
24692// Context sets the context to be used in this call's Do method. Any
24693// pending HTTP request will be aborted if the provided context is
24694// canceled.
24695func (c *AddressesGetCall) Context(ctx context.Context) *AddressesGetCall {
24696	c.ctx_ = ctx
24697	return c
24698}
24699
24700// Header returns an http.Header that can be modified by the caller to
24701// add HTTP headers to the request.
24702func (c *AddressesGetCall) Header() http.Header {
24703	if c.header_ == nil {
24704		c.header_ = make(http.Header)
24705	}
24706	return c.header_
24707}
24708
24709func (c *AddressesGetCall) doRequest(alt string) (*http.Response, error) {
24710	reqHeaders := make(http.Header)
24711	for k, v := range c.header_ {
24712		reqHeaders[k] = v
24713	}
24714	reqHeaders.Set("User-Agent", c.s.userAgent())
24715	if c.ifNoneMatch_ != "" {
24716		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
24717	}
24718	var body io.Reader = nil
24719	c.urlParams_.Set("alt", alt)
24720	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{address}")
24721	urls += "?" + c.urlParams_.Encode()
24722	req, _ := http.NewRequest("GET", urls, body)
24723	req.Header = reqHeaders
24724	googleapi.Expand(req.URL, map[string]string{
24725		"project": c.project,
24726		"region":  c.region,
24727		"address": c.address,
24728	})
24729	return gensupport.SendRequest(c.ctx_, c.s.client, req)
24730}
24731
24732// Do executes the "compute.addresses.get" call.
24733// Exactly one of *Address or error will be non-nil. Any non-2xx status
24734// code is an error. Response headers are in either
24735// *Address.ServerResponse.Header or (if a response was returned at all)
24736// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
24737// check whether the returned error was because http.StatusNotModified
24738// was returned.
24739func (c *AddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
24740	gensupport.SetOptions(c.urlParams_, opts...)
24741	res, err := c.doRequest("json")
24742	if res != nil && res.StatusCode == http.StatusNotModified {
24743		if res.Body != nil {
24744			res.Body.Close()
24745		}
24746		return nil, &googleapi.Error{
24747			Code:   res.StatusCode,
24748			Header: res.Header,
24749		}
24750	}
24751	if err != nil {
24752		return nil, err
24753	}
24754	defer googleapi.CloseBody(res)
24755	if err := googleapi.CheckResponse(res); err != nil {
24756		return nil, err
24757	}
24758	ret := &Address{
24759		ServerResponse: googleapi.ServerResponse{
24760			Header:         res.Header,
24761			HTTPStatusCode: res.StatusCode,
24762		},
24763	}
24764	target := &ret
24765	if err := gensupport.DecodeResponse(target, res); err != nil {
24766		return nil, err
24767	}
24768	return ret, nil
24769	// {
24770	//   "description": "Returns the specified address resource.",
24771	//   "httpMethod": "GET",
24772	//   "id": "compute.addresses.get",
24773	//   "parameterOrder": [
24774	//     "project",
24775	//     "region",
24776	//     "address"
24777	//   ],
24778	//   "parameters": {
24779	//     "address": {
24780	//       "description": "Name of the address resource to return.",
24781	//       "location": "path",
24782	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
24783	//       "required": true,
24784	//       "type": "string"
24785	//     },
24786	//     "project": {
24787	//       "description": "Project ID for this request.",
24788	//       "location": "path",
24789	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
24790	//       "required": true,
24791	//       "type": "string"
24792	//     },
24793	//     "region": {
24794	//       "description": "Name of the region for this request.",
24795	//       "location": "path",
24796	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
24797	//       "required": true,
24798	//       "type": "string"
24799	//     }
24800	//   },
24801	//   "path": "{project}/regions/{region}/addresses/{address}",
24802	//   "response": {
24803	//     "$ref": "Address"
24804	//   },
24805	//   "scopes": [
24806	//     "https://www.googleapis.com/auth/cloud-platform",
24807	//     "https://www.googleapis.com/auth/compute",
24808	//     "https://www.googleapis.com/auth/compute.readonly"
24809	//   ]
24810	// }
24811
24812}
24813
24814// method id "compute.addresses.insert":
24815
24816type AddressesInsertCall struct {
24817	s          *Service
24818	project    string
24819	region     string
24820	address    *Address
24821	urlParams_ gensupport.URLParams
24822	ctx_       context.Context
24823	header_    http.Header
24824}
24825
24826// Insert: Creates an address resource in the specified project using
24827// the data included in the request.
24828// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/insert
24829func (r *AddressesService) Insert(project string, region string, address *Address) *AddressesInsertCall {
24830	c := &AddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
24831	c.project = project
24832	c.region = region
24833	c.address = address
24834	return c
24835}
24836
24837// RequestId sets the optional parameter "requestId": An optional
24838// request ID to identify requests. Specify a unique request ID so that
24839// if you must retry your request, the server will know to ignore the
24840// request if it has already been completed.
24841//
24842// For example, consider a situation where you make an initial request
24843// and the request times out. If you make the request again with the
24844// same request ID, the server can check if original operation with the
24845// same request ID was received, and if so, will ignore the second
24846// request. This prevents clients from accidentally creating duplicate
24847// commitments.
24848//
24849// The request ID must be a valid UUID with the exception that zero UUID
24850// is not supported (00000000-0000-0000-0000-000000000000).
24851func (c *AddressesInsertCall) RequestId(requestId string) *AddressesInsertCall {
24852	c.urlParams_.Set("requestId", requestId)
24853	return c
24854}
24855
24856// Fields allows partial responses to be retrieved. See
24857// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
24858// for more information.
24859func (c *AddressesInsertCall) Fields(s ...googleapi.Field) *AddressesInsertCall {
24860	c.urlParams_.Set("fields", googleapi.CombineFields(s))
24861	return c
24862}
24863
24864// Context sets the context to be used in this call's Do method. Any
24865// pending HTTP request will be aborted if the provided context is
24866// canceled.
24867func (c *AddressesInsertCall) Context(ctx context.Context) *AddressesInsertCall {
24868	c.ctx_ = ctx
24869	return c
24870}
24871
24872// Header returns an http.Header that can be modified by the caller to
24873// add HTTP headers to the request.
24874func (c *AddressesInsertCall) Header() http.Header {
24875	if c.header_ == nil {
24876		c.header_ = make(http.Header)
24877	}
24878	return c.header_
24879}
24880
24881func (c *AddressesInsertCall) doRequest(alt string) (*http.Response, error) {
24882	reqHeaders := make(http.Header)
24883	for k, v := range c.header_ {
24884		reqHeaders[k] = v
24885	}
24886	reqHeaders.Set("User-Agent", c.s.userAgent())
24887	var body io.Reader = nil
24888	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
24889	if err != nil {
24890		return nil, err
24891	}
24892	reqHeaders.Set("Content-Type", "application/json")
24893	c.urlParams_.Set("alt", alt)
24894	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses")
24895	urls += "?" + c.urlParams_.Encode()
24896	req, _ := http.NewRequest("POST", urls, body)
24897	req.Header = reqHeaders
24898	googleapi.Expand(req.URL, map[string]string{
24899		"project": c.project,
24900		"region":  c.region,
24901	})
24902	return gensupport.SendRequest(c.ctx_, c.s.client, req)
24903}
24904
24905// Do executes the "compute.addresses.insert" call.
24906// Exactly one of *Operation or error will be non-nil. Any non-2xx
24907// status code is an error. Response headers are in either
24908// *Operation.ServerResponse.Header or (if a response was returned at
24909// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
24910// to check whether the returned error was because
24911// http.StatusNotModified was returned.
24912func (c *AddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
24913	gensupport.SetOptions(c.urlParams_, opts...)
24914	res, err := c.doRequest("json")
24915	if res != nil && res.StatusCode == http.StatusNotModified {
24916		if res.Body != nil {
24917			res.Body.Close()
24918		}
24919		return nil, &googleapi.Error{
24920			Code:   res.StatusCode,
24921			Header: res.Header,
24922		}
24923	}
24924	if err != nil {
24925		return nil, err
24926	}
24927	defer googleapi.CloseBody(res)
24928	if err := googleapi.CheckResponse(res); err != nil {
24929		return nil, err
24930	}
24931	ret := &Operation{
24932		ServerResponse: googleapi.ServerResponse{
24933			Header:         res.Header,
24934			HTTPStatusCode: res.StatusCode,
24935		},
24936	}
24937	target := &ret
24938	if err := gensupport.DecodeResponse(target, res); err != nil {
24939		return nil, err
24940	}
24941	return ret, nil
24942	// {
24943	//   "description": "Creates an address resource in the specified project using the data included in the request.",
24944	//   "httpMethod": "POST",
24945	//   "id": "compute.addresses.insert",
24946	//   "parameterOrder": [
24947	//     "project",
24948	//     "region"
24949	//   ],
24950	//   "parameters": {
24951	//     "project": {
24952	//       "description": "Project ID for this request.",
24953	//       "location": "path",
24954	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
24955	//       "required": true,
24956	//       "type": "string"
24957	//     },
24958	//     "region": {
24959	//       "description": "Name of the region for this request.",
24960	//       "location": "path",
24961	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
24962	//       "required": true,
24963	//       "type": "string"
24964	//     },
24965	//     "requestId": {
24966	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
24967	//       "location": "query",
24968	//       "type": "string"
24969	//     }
24970	//   },
24971	//   "path": "{project}/regions/{region}/addresses",
24972	//   "request": {
24973	//     "$ref": "Address"
24974	//   },
24975	//   "response": {
24976	//     "$ref": "Operation"
24977	//   },
24978	//   "scopes": [
24979	//     "https://www.googleapis.com/auth/cloud-platform",
24980	//     "https://www.googleapis.com/auth/compute"
24981	//   ]
24982	// }
24983
24984}
24985
24986// method id "compute.addresses.list":
24987
24988type AddressesListCall struct {
24989	s            *Service
24990	project      string
24991	region       string
24992	urlParams_   gensupport.URLParams
24993	ifNoneMatch_ string
24994	ctx_         context.Context
24995	header_      http.Header
24996}
24997
24998// List: Retrieves a list of addresses contained within the specified
24999// region.
25000// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/list
25001func (r *AddressesService) List(project string, region string) *AddressesListCall {
25002	c := &AddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
25003	c.project = project
25004	c.region = region
25005	return c
25006}
25007
25008// Filter sets the optional parameter "filter": Sets a filter
25009// {expression} for filtering listed resources. Your {expression} must
25010// be in the format: field_name comparison_string literal_string.
25011//
25012// The field_name is the name of the field you want to compare. Only
25013// atomic field types are supported (string, number, boolean). The
25014// comparison_string must be either eq (equals) or ne (not equals). The
25015// literal_string is the string value to filter to. The literal value
25016// must be valid for the type of field you are filtering by (string,
25017// number, boolean). For string fields, the literal value is interpreted
25018// as a regular expression using RE2 syntax. The literal value must
25019// match the entire field.
25020//
25021// For example, to filter for instances that do not have a name of
25022// example-instance, you would use name ne example-instance.
25023//
25024// You can filter on nested fields. For example, you could filter on
25025// instances that have set the scheduling.automaticRestart field to
25026// true. Use filtering on nested fields to take advantage of labels to
25027// organize and search for results based on label values.
25028//
25029// To filter on multiple expressions, provide each separate expression
25030// within parentheses. For example, (scheduling.automaticRestart eq
25031// true) (zone eq us-central1-f). Multiple expressions are treated as
25032// AND expressions, meaning that resources must match all expressions to
25033// pass the filters.
25034func (c *AddressesListCall) Filter(filter string) *AddressesListCall {
25035	c.urlParams_.Set("filter", filter)
25036	return c
25037}
25038
25039// MaxResults sets the optional parameter "maxResults": The maximum
25040// number of results per page that should be returned. If the number of
25041// available results is larger than maxResults, Compute Engine returns a
25042// nextPageToken that can be used to get the next page of results in
25043// subsequent list requests. Acceptable values are 0 to 500, inclusive.
25044// (Default: 500)
25045func (c *AddressesListCall) MaxResults(maxResults int64) *AddressesListCall {
25046	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
25047	return c
25048}
25049
25050// OrderBy sets the optional parameter "orderBy": Sorts list results by
25051// a certain order. By default, results are returned in alphanumerical
25052// order based on the resource name.
25053//
25054// You can also sort results in descending order based on the creation
25055// timestamp using orderBy="creationTimestamp desc". This sorts results
25056// based on the creationTimestamp field in reverse chronological order
25057// (newest result first). Use this to sort resources like operations so
25058// that the newest operation is returned first.
25059//
25060// Currently, only sorting by name or creationTimestamp desc is
25061// supported.
25062func (c *AddressesListCall) OrderBy(orderBy string) *AddressesListCall {
25063	c.urlParams_.Set("orderBy", orderBy)
25064	return c
25065}
25066
25067// PageToken sets the optional parameter "pageToken": Specifies a page
25068// token to use. Set pageToken to the nextPageToken returned by a
25069// previous list request to get the next page of results.
25070func (c *AddressesListCall) PageToken(pageToken string) *AddressesListCall {
25071	c.urlParams_.Set("pageToken", pageToken)
25072	return c
25073}
25074
25075// Fields allows partial responses to be retrieved. See
25076// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
25077// for more information.
25078func (c *AddressesListCall) Fields(s ...googleapi.Field) *AddressesListCall {
25079	c.urlParams_.Set("fields", googleapi.CombineFields(s))
25080	return c
25081}
25082
25083// IfNoneMatch sets the optional parameter which makes the operation
25084// fail if the object's ETag matches the given value. This is useful for
25085// getting updates only after the object has changed since the last
25086// request. Use googleapi.IsNotModified to check whether the response
25087// error from Do is the result of In-None-Match.
25088func (c *AddressesListCall) IfNoneMatch(entityTag string) *AddressesListCall {
25089	c.ifNoneMatch_ = entityTag
25090	return c
25091}
25092
25093// Context sets the context to be used in this call's Do method. Any
25094// pending HTTP request will be aborted if the provided context is
25095// canceled.
25096func (c *AddressesListCall) Context(ctx context.Context) *AddressesListCall {
25097	c.ctx_ = ctx
25098	return c
25099}
25100
25101// Header returns an http.Header that can be modified by the caller to
25102// add HTTP headers to the request.
25103func (c *AddressesListCall) Header() http.Header {
25104	if c.header_ == nil {
25105		c.header_ = make(http.Header)
25106	}
25107	return c.header_
25108}
25109
25110func (c *AddressesListCall) doRequest(alt string) (*http.Response, error) {
25111	reqHeaders := make(http.Header)
25112	for k, v := range c.header_ {
25113		reqHeaders[k] = v
25114	}
25115	reqHeaders.Set("User-Agent", c.s.userAgent())
25116	if c.ifNoneMatch_ != "" {
25117		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
25118	}
25119	var body io.Reader = nil
25120	c.urlParams_.Set("alt", alt)
25121	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses")
25122	urls += "?" + c.urlParams_.Encode()
25123	req, _ := http.NewRequest("GET", urls, body)
25124	req.Header = reqHeaders
25125	googleapi.Expand(req.URL, map[string]string{
25126		"project": c.project,
25127		"region":  c.region,
25128	})
25129	return gensupport.SendRequest(c.ctx_, c.s.client, req)
25130}
25131
25132// Do executes the "compute.addresses.list" call.
25133// Exactly one of *AddressList or error will be non-nil. Any non-2xx
25134// status code is an error. Response headers are in either
25135// *AddressList.ServerResponse.Header or (if a response was returned at
25136// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
25137// to check whether the returned error was because
25138// http.StatusNotModified was returned.
25139func (c *AddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
25140	gensupport.SetOptions(c.urlParams_, opts...)
25141	res, err := c.doRequest("json")
25142	if res != nil && res.StatusCode == http.StatusNotModified {
25143		if res.Body != nil {
25144			res.Body.Close()
25145		}
25146		return nil, &googleapi.Error{
25147			Code:   res.StatusCode,
25148			Header: res.Header,
25149		}
25150	}
25151	if err != nil {
25152		return nil, err
25153	}
25154	defer googleapi.CloseBody(res)
25155	if err := googleapi.CheckResponse(res); err != nil {
25156		return nil, err
25157	}
25158	ret := &AddressList{
25159		ServerResponse: googleapi.ServerResponse{
25160			Header:         res.Header,
25161			HTTPStatusCode: res.StatusCode,
25162		},
25163	}
25164	target := &ret
25165	if err := gensupport.DecodeResponse(target, res); err != nil {
25166		return nil, err
25167	}
25168	return ret, nil
25169	// {
25170	//   "description": "Retrieves a list of addresses contained within the specified region.",
25171	//   "httpMethod": "GET",
25172	//   "id": "compute.addresses.list",
25173	//   "parameterOrder": [
25174	//     "project",
25175	//     "region"
25176	//   ],
25177	//   "parameters": {
25178	//     "filter": {
25179	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
25180	//       "location": "query",
25181	//       "type": "string"
25182	//     },
25183	//     "maxResults": {
25184	//       "default": "500",
25185	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
25186	//       "format": "uint32",
25187	//       "location": "query",
25188	//       "minimum": "0",
25189	//       "type": "integer"
25190	//     },
25191	//     "orderBy": {
25192	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
25193	//       "location": "query",
25194	//       "type": "string"
25195	//     },
25196	//     "pageToken": {
25197	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
25198	//       "location": "query",
25199	//       "type": "string"
25200	//     },
25201	//     "project": {
25202	//       "description": "Project ID for this request.",
25203	//       "location": "path",
25204	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
25205	//       "required": true,
25206	//       "type": "string"
25207	//     },
25208	//     "region": {
25209	//       "description": "Name of the region for this request.",
25210	//       "location": "path",
25211	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
25212	//       "required": true,
25213	//       "type": "string"
25214	//     }
25215	//   },
25216	//   "path": "{project}/regions/{region}/addresses",
25217	//   "response": {
25218	//     "$ref": "AddressList"
25219	//   },
25220	//   "scopes": [
25221	//     "https://www.googleapis.com/auth/cloud-platform",
25222	//     "https://www.googleapis.com/auth/compute",
25223	//     "https://www.googleapis.com/auth/compute.readonly"
25224	//   ]
25225	// }
25226
25227}
25228
25229// Pages invokes f for each page of results.
25230// A non-nil error returned from f will halt the iteration.
25231// The provided context supersedes any context provided to the Context method.
25232func (c *AddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
25233	c.ctx_ = ctx
25234	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
25235	for {
25236		x, err := c.Do()
25237		if err != nil {
25238			return err
25239		}
25240		if err := f(x); err != nil {
25241			return err
25242		}
25243		if x.NextPageToken == "" {
25244			return nil
25245		}
25246		c.PageToken(x.NextPageToken)
25247	}
25248}
25249
25250// method id "compute.autoscalers.aggregatedList":
25251
25252type AutoscalersAggregatedListCall struct {
25253	s            *Service
25254	project      string
25255	urlParams_   gensupport.URLParams
25256	ifNoneMatch_ string
25257	ctx_         context.Context
25258	header_      http.Header
25259}
25260
25261// AggregatedList: Retrieves an aggregated list of autoscalers.
25262func (r *AutoscalersService) AggregatedList(project string) *AutoscalersAggregatedListCall {
25263	c := &AutoscalersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
25264	c.project = project
25265	return c
25266}
25267
25268// Filter sets the optional parameter "filter": Sets a filter
25269// {expression} for filtering listed resources. Your {expression} must
25270// be in the format: field_name comparison_string literal_string.
25271//
25272// The field_name is the name of the field you want to compare. Only
25273// atomic field types are supported (string, number, boolean). The
25274// comparison_string must be either eq (equals) or ne (not equals). The
25275// literal_string is the string value to filter to. The literal value
25276// must be valid for the type of field you are filtering by (string,
25277// number, boolean). For string fields, the literal value is interpreted
25278// as a regular expression using RE2 syntax. The literal value must
25279// match the entire field.
25280//
25281// For example, to filter for instances that do not have a name of
25282// example-instance, you would use name ne example-instance.
25283//
25284// You can filter on nested fields. For example, you could filter on
25285// instances that have set the scheduling.automaticRestart field to
25286// true. Use filtering on nested fields to take advantage of labels to
25287// organize and search for results based on label values.
25288//
25289// To filter on multiple expressions, provide each separate expression
25290// within parentheses. For example, (scheduling.automaticRestart eq
25291// true) (zone eq us-central1-f). Multiple expressions are treated as
25292// AND expressions, meaning that resources must match all expressions to
25293// pass the filters.
25294func (c *AutoscalersAggregatedListCall) Filter(filter string) *AutoscalersAggregatedListCall {
25295	c.urlParams_.Set("filter", filter)
25296	return c
25297}
25298
25299// MaxResults sets the optional parameter "maxResults": The maximum
25300// number of results per page that should be returned. If the number of
25301// available results is larger than maxResults, Compute Engine returns a
25302// nextPageToken that can be used to get the next page of results in
25303// subsequent list requests. Acceptable values are 0 to 500, inclusive.
25304// (Default: 500)
25305func (c *AutoscalersAggregatedListCall) MaxResults(maxResults int64) *AutoscalersAggregatedListCall {
25306	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
25307	return c
25308}
25309
25310// OrderBy sets the optional parameter "orderBy": Sorts list results by
25311// a certain order. By default, results are returned in alphanumerical
25312// order based on the resource name.
25313//
25314// You can also sort results in descending order based on the creation
25315// timestamp using orderBy="creationTimestamp desc". This sorts results
25316// based on the creationTimestamp field in reverse chronological order
25317// (newest result first). Use this to sort resources like operations so
25318// that the newest operation is returned first.
25319//
25320// Currently, only sorting by name or creationTimestamp desc is
25321// supported.
25322func (c *AutoscalersAggregatedListCall) OrderBy(orderBy string) *AutoscalersAggregatedListCall {
25323	c.urlParams_.Set("orderBy", orderBy)
25324	return c
25325}
25326
25327// PageToken sets the optional parameter "pageToken": Specifies a page
25328// token to use. Set pageToken to the nextPageToken returned by a
25329// previous list request to get the next page of results.
25330func (c *AutoscalersAggregatedListCall) PageToken(pageToken string) *AutoscalersAggregatedListCall {
25331	c.urlParams_.Set("pageToken", pageToken)
25332	return c
25333}
25334
25335// Fields allows partial responses to be retrieved. See
25336// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
25337// for more information.
25338func (c *AutoscalersAggregatedListCall) Fields(s ...googleapi.Field) *AutoscalersAggregatedListCall {
25339	c.urlParams_.Set("fields", googleapi.CombineFields(s))
25340	return c
25341}
25342
25343// IfNoneMatch sets the optional parameter which makes the operation
25344// fail if the object's ETag matches the given value. This is useful for
25345// getting updates only after the object has changed since the last
25346// request. Use googleapi.IsNotModified to check whether the response
25347// error from Do is the result of In-None-Match.
25348func (c *AutoscalersAggregatedListCall) IfNoneMatch(entityTag string) *AutoscalersAggregatedListCall {
25349	c.ifNoneMatch_ = entityTag
25350	return c
25351}
25352
25353// Context sets the context to be used in this call's Do method. Any
25354// pending HTTP request will be aborted if the provided context is
25355// canceled.
25356func (c *AutoscalersAggregatedListCall) Context(ctx context.Context) *AutoscalersAggregatedListCall {
25357	c.ctx_ = ctx
25358	return c
25359}
25360
25361// Header returns an http.Header that can be modified by the caller to
25362// add HTTP headers to the request.
25363func (c *AutoscalersAggregatedListCall) Header() http.Header {
25364	if c.header_ == nil {
25365		c.header_ = make(http.Header)
25366	}
25367	return c.header_
25368}
25369
25370func (c *AutoscalersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
25371	reqHeaders := make(http.Header)
25372	for k, v := range c.header_ {
25373		reqHeaders[k] = v
25374	}
25375	reqHeaders.Set("User-Agent", c.s.userAgent())
25376	if c.ifNoneMatch_ != "" {
25377		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
25378	}
25379	var body io.Reader = nil
25380	c.urlParams_.Set("alt", alt)
25381	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/autoscalers")
25382	urls += "?" + c.urlParams_.Encode()
25383	req, _ := http.NewRequest("GET", urls, body)
25384	req.Header = reqHeaders
25385	googleapi.Expand(req.URL, map[string]string{
25386		"project": c.project,
25387	})
25388	return gensupport.SendRequest(c.ctx_, c.s.client, req)
25389}
25390
25391// Do executes the "compute.autoscalers.aggregatedList" call.
25392// Exactly one of *AutoscalerAggregatedList or error will be non-nil.
25393// Any non-2xx status code is an error. Response headers are in either
25394// *AutoscalerAggregatedList.ServerResponse.Header or (if a response was
25395// returned at all) in error.(*googleapi.Error).Header. Use
25396// googleapi.IsNotModified to check whether the returned error was
25397// because http.StatusNotModified was returned.
25398func (c *AutoscalersAggregatedListCall) Do(opts ...googleapi.CallOption) (*AutoscalerAggregatedList, error) {
25399	gensupport.SetOptions(c.urlParams_, opts...)
25400	res, err := c.doRequest("json")
25401	if res != nil && res.StatusCode == http.StatusNotModified {
25402		if res.Body != nil {
25403			res.Body.Close()
25404		}
25405		return nil, &googleapi.Error{
25406			Code:   res.StatusCode,
25407			Header: res.Header,
25408		}
25409	}
25410	if err != nil {
25411		return nil, err
25412	}
25413	defer googleapi.CloseBody(res)
25414	if err := googleapi.CheckResponse(res); err != nil {
25415		return nil, err
25416	}
25417	ret := &AutoscalerAggregatedList{
25418		ServerResponse: googleapi.ServerResponse{
25419			Header:         res.Header,
25420			HTTPStatusCode: res.StatusCode,
25421		},
25422	}
25423	target := &ret
25424	if err := gensupport.DecodeResponse(target, res); err != nil {
25425		return nil, err
25426	}
25427	return ret, nil
25428	// {
25429	//   "description": "Retrieves an aggregated list of autoscalers.",
25430	//   "httpMethod": "GET",
25431	//   "id": "compute.autoscalers.aggregatedList",
25432	//   "parameterOrder": [
25433	//     "project"
25434	//   ],
25435	//   "parameters": {
25436	//     "filter": {
25437	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
25438	//       "location": "query",
25439	//       "type": "string"
25440	//     },
25441	//     "maxResults": {
25442	//       "default": "500",
25443	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
25444	//       "format": "uint32",
25445	//       "location": "query",
25446	//       "minimum": "0",
25447	//       "type": "integer"
25448	//     },
25449	//     "orderBy": {
25450	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
25451	//       "location": "query",
25452	//       "type": "string"
25453	//     },
25454	//     "pageToken": {
25455	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
25456	//       "location": "query",
25457	//       "type": "string"
25458	//     },
25459	//     "project": {
25460	//       "description": "Project ID for this request.",
25461	//       "location": "path",
25462	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
25463	//       "required": true,
25464	//       "type": "string"
25465	//     }
25466	//   },
25467	//   "path": "{project}/aggregated/autoscalers",
25468	//   "response": {
25469	//     "$ref": "AutoscalerAggregatedList"
25470	//   },
25471	//   "scopes": [
25472	//     "https://www.googleapis.com/auth/cloud-platform",
25473	//     "https://www.googleapis.com/auth/compute",
25474	//     "https://www.googleapis.com/auth/compute.readonly"
25475	//   ]
25476	// }
25477
25478}
25479
25480// Pages invokes f for each page of results.
25481// A non-nil error returned from f will halt the iteration.
25482// The provided context supersedes any context provided to the Context method.
25483func (c *AutoscalersAggregatedListCall) Pages(ctx context.Context, f func(*AutoscalerAggregatedList) error) error {
25484	c.ctx_ = ctx
25485	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
25486	for {
25487		x, err := c.Do()
25488		if err != nil {
25489			return err
25490		}
25491		if err := f(x); err != nil {
25492			return err
25493		}
25494		if x.NextPageToken == "" {
25495			return nil
25496		}
25497		c.PageToken(x.NextPageToken)
25498	}
25499}
25500
25501// method id "compute.autoscalers.delete":
25502
25503type AutoscalersDeleteCall struct {
25504	s          *Service
25505	project    string
25506	zone       string
25507	autoscaler string
25508	urlParams_ gensupport.URLParams
25509	ctx_       context.Context
25510	header_    http.Header
25511}
25512
25513// Delete: Deletes the specified autoscaler.
25514func (r *AutoscalersService) Delete(project string, zone string, autoscaler string) *AutoscalersDeleteCall {
25515	c := &AutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
25516	c.project = project
25517	c.zone = zone
25518	c.autoscaler = autoscaler
25519	return c
25520}
25521
25522// RequestId sets the optional parameter "requestId": An optional
25523// request ID to identify requests. Specify a unique request ID so that
25524// if you must retry your request, the server will know to ignore the
25525// request if it has already been completed.
25526//
25527// For example, consider a situation where you make an initial request
25528// and the request times out. If you make the request again with the
25529// same request ID, the server can check if original operation with the
25530// same request ID was received, and if so, will ignore the second
25531// request. This prevents clients from accidentally creating duplicate
25532// commitments.
25533//
25534// The request ID must be a valid UUID with the exception that zero UUID
25535// is not supported (00000000-0000-0000-0000-000000000000).
25536func (c *AutoscalersDeleteCall) RequestId(requestId string) *AutoscalersDeleteCall {
25537	c.urlParams_.Set("requestId", requestId)
25538	return c
25539}
25540
25541// Fields allows partial responses to be retrieved. See
25542// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
25543// for more information.
25544func (c *AutoscalersDeleteCall) Fields(s ...googleapi.Field) *AutoscalersDeleteCall {
25545	c.urlParams_.Set("fields", googleapi.CombineFields(s))
25546	return c
25547}
25548
25549// Context sets the context to be used in this call's Do method. Any
25550// pending HTTP request will be aborted if the provided context is
25551// canceled.
25552func (c *AutoscalersDeleteCall) Context(ctx context.Context) *AutoscalersDeleteCall {
25553	c.ctx_ = ctx
25554	return c
25555}
25556
25557// Header returns an http.Header that can be modified by the caller to
25558// add HTTP headers to the request.
25559func (c *AutoscalersDeleteCall) Header() http.Header {
25560	if c.header_ == nil {
25561		c.header_ = make(http.Header)
25562	}
25563	return c.header_
25564}
25565
25566func (c *AutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
25567	reqHeaders := make(http.Header)
25568	for k, v := range c.header_ {
25569		reqHeaders[k] = v
25570	}
25571	reqHeaders.Set("User-Agent", c.s.userAgent())
25572	var body io.Reader = nil
25573	c.urlParams_.Set("alt", alt)
25574	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{autoscaler}")
25575	urls += "?" + c.urlParams_.Encode()
25576	req, _ := http.NewRequest("DELETE", urls, body)
25577	req.Header = reqHeaders
25578	googleapi.Expand(req.URL, map[string]string{
25579		"project":    c.project,
25580		"zone":       c.zone,
25581		"autoscaler": c.autoscaler,
25582	})
25583	return gensupport.SendRequest(c.ctx_, c.s.client, req)
25584}
25585
25586// Do executes the "compute.autoscalers.delete" call.
25587// Exactly one of *Operation or error will be non-nil. Any non-2xx
25588// status code is an error. Response headers are in either
25589// *Operation.ServerResponse.Header or (if a response was returned at
25590// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
25591// to check whether the returned error was because
25592// http.StatusNotModified was returned.
25593func (c *AutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
25594	gensupport.SetOptions(c.urlParams_, opts...)
25595	res, err := c.doRequest("json")
25596	if res != nil && res.StatusCode == http.StatusNotModified {
25597		if res.Body != nil {
25598			res.Body.Close()
25599		}
25600		return nil, &googleapi.Error{
25601			Code:   res.StatusCode,
25602			Header: res.Header,
25603		}
25604	}
25605	if err != nil {
25606		return nil, err
25607	}
25608	defer googleapi.CloseBody(res)
25609	if err := googleapi.CheckResponse(res); err != nil {
25610		return nil, err
25611	}
25612	ret := &Operation{
25613		ServerResponse: googleapi.ServerResponse{
25614			Header:         res.Header,
25615			HTTPStatusCode: res.StatusCode,
25616		},
25617	}
25618	target := &ret
25619	if err := gensupport.DecodeResponse(target, res); err != nil {
25620		return nil, err
25621	}
25622	return ret, nil
25623	// {
25624	//   "description": "Deletes the specified autoscaler.",
25625	//   "httpMethod": "DELETE",
25626	//   "id": "compute.autoscalers.delete",
25627	//   "parameterOrder": [
25628	//     "project",
25629	//     "zone",
25630	//     "autoscaler"
25631	//   ],
25632	//   "parameters": {
25633	//     "autoscaler": {
25634	//       "description": "Name of the autoscaler to delete.",
25635	//       "location": "path",
25636	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
25637	//       "required": true,
25638	//       "type": "string"
25639	//     },
25640	//     "project": {
25641	//       "description": "Project ID for this request.",
25642	//       "location": "path",
25643	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
25644	//       "required": true,
25645	//       "type": "string"
25646	//     },
25647	//     "requestId": {
25648	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
25649	//       "location": "query",
25650	//       "type": "string"
25651	//     },
25652	//     "zone": {
25653	//       "description": "Name of the zone for this request.",
25654	//       "location": "path",
25655	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
25656	//       "required": true,
25657	//       "type": "string"
25658	//     }
25659	//   },
25660	//   "path": "{project}/zones/{zone}/autoscalers/{autoscaler}",
25661	//   "response": {
25662	//     "$ref": "Operation"
25663	//   },
25664	//   "scopes": [
25665	//     "https://www.googleapis.com/auth/cloud-platform",
25666	//     "https://www.googleapis.com/auth/compute"
25667	//   ]
25668	// }
25669
25670}
25671
25672// method id "compute.autoscalers.get":
25673
25674type AutoscalersGetCall struct {
25675	s            *Service
25676	project      string
25677	zone         string
25678	autoscaler   string
25679	urlParams_   gensupport.URLParams
25680	ifNoneMatch_ string
25681	ctx_         context.Context
25682	header_      http.Header
25683}
25684
25685// Get: Returns the specified autoscaler resource. Get a list of
25686// available autoscalers by making a list() request.
25687func (r *AutoscalersService) Get(project string, zone string, autoscaler string) *AutoscalersGetCall {
25688	c := &AutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
25689	c.project = project
25690	c.zone = zone
25691	c.autoscaler = autoscaler
25692	return c
25693}
25694
25695// Fields allows partial responses to be retrieved. See
25696// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
25697// for more information.
25698func (c *AutoscalersGetCall) Fields(s ...googleapi.Field) *AutoscalersGetCall {
25699	c.urlParams_.Set("fields", googleapi.CombineFields(s))
25700	return c
25701}
25702
25703// IfNoneMatch sets the optional parameter which makes the operation
25704// fail if the object's ETag matches the given value. This is useful for
25705// getting updates only after the object has changed since the last
25706// request. Use googleapi.IsNotModified to check whether the response
25707// error from Do is the result of In-None-Match.
25708func (c *AutoscalersGetCall) IfNoneMatch(entityTag string) *AutoscalersGetCall {
25709	c.ifNoneMatch_ = entityTag
25710	return c
25711}
25712
25713// Context sets the context to be used in this call's Do method. Any
25714// pending HTTP request will be aborted if the provided context is
25715// canceled.
25716func (c *AutoscalersGetCall) Context(ctx context.Context) *AutoscalersGetCall {
25717	c.ctx_ = ctx
25718	return c
25719}
25720
25721// Header returns an http.Header that can be modified by the caller to
25722// add HTTP headers to the request.
25723func (c *AutoscalersGetCall) Header() http.Header {
25724	if c.header_ == nil {
25725		c.header_ = make(http.Header)
25726	}
25727	return c.header_
25728}
25729
25730func (c *AutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
25731	reqHeaders := make(http.Header)
25732	for k, v := range c.header_ {
25733		reqHeaders[k] = v
25734	}
25735	reqHeaders.Set("User-Agent", c.s.userAgent())
25736	if c.ifNoneMatch_ != "" {
25737		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
25738	}
25739	var body io.Reader = nil
25740	c.urlParams_.Set("alt", alt)
25741	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{autoscaler}")
25742	urls += "?" + c.urlParams_.Encode()
25743	req, _ := http.NewRequest("GET", urls, body)
25744	req.Header = reqHeaders
25745	googleapi.Expand(req.URL, map[string]string{
25746		"project":    c.project,
25747		"zone":       c.zone,
25748		"autoscaler": c.autoscaler,
25749	})
25750	return gensupport.SendRequest(c.ctx_, c.s.client, req)
25751}
25752
25753// Do executes the "compute.autoscalers.get" call.
25754// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
25755// status code is an error. Response headers are in either
25756// *Autoscaler.ServerResponse.Header or (if a response was returned at
25757// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
25758// to check whether the returned error was because
25759// http.StatusNotModified was returned.
25760func (c *AutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
25761	gensupport.SetOptions(c.urlParams_, opts...)
25762	res, err := c.doRequest("json")
25763	if res != nil && res.StatusCode == http.StatusNotModified {
25764		if res.Body != nil {
25765			res.Body.Close()
25766		}
25767		return nil, &googleapi.Error{
25768			Code:   res.StatusCode,
25769			Header: res.Header,
25770		}
25771	}
25772	if err != nil {
25773		return nil, err
25774	}
25775	defer googleapi.CloseBody(res)
25776	if err := googleapi.CheckResponse(res); err != nil {
25777		return nil, err
25778	}
25779	ret := &Autoscaler{
25780		ServerResponse: googleapi.ServerResponse{
25781			Header:         res.Header,
25782			HTTPStatusCode: res.StatusCode,
25783		},
25784	}
25785	target := &ret
25786	if err := gensupport.DecodeResponse(target, res); err != nil {
25787		return nil, err
25788	}
25789	return ret, nil
25790	// {
25791	//   "description": "Returns the specified autoscaler resource. Get a list of available autoscalers by making a list() request.",
25792	//   "httpMethod": "GET",
25793	//   "id": "compute.autoscalers.get",
25794	//   "parameterOrder": [
25795	//     "project",
25796	//     "zone",
25797	//     "autoscaler"
25798	//   ],
25799	//   "parameters": {
25800	//     "autoscaler": {
25801	//       "description": "Name of the autoscaler to return.",
25802	//       "location": "path",
25803	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
25804	//       "required": true,
25805	//       "type": "string"
25806	//     },
25807	//     "project": {
25808	//       "description": "Project ID for this request.",
25809	//       "location": "path",
25810	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
25811	//       "required": true,
25812	//       "type": "string"
25813	//     },
25814	//     "zone": {
25815	//       "description": "Name of the zone for this request.",
25816	//       "location": "path",
25817	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
25818	//       "required": true,
25819	//       "type": "string"
25820	//     }
25821	//   },
25822	//   "path": "{project}/zones/{zone}/autoscalers/{autoscaler}",
25823	//   "response": {
25824	//     "$ref": "Autoscaler"
25825	//   },
25826	//   "scopes": [
25827	//     "https://www.googleapis.com/auth/cloud-platform",
25828	//     "https://www.googleapis.com/auth/compute",
25829	//     "https://www.googleapis.com/auth/compute.readonly"
25830	//   ]
25831	// }
25832
25833}
25834
25835// method id "compute.autoscalers.insert":
25836
25837type AutoscalersInsertCall struct {
25838	s          *Service
25839	project    string
25840	zone       string
25841	autoscaler *Autoscaler
25842	urlParams_ gensupport.URLParams
25843	ctx_       context.Context
25844	header_    http.Header
25845}
25846
25847// Insert: Creates an autoscaler in the specified project using the data
25848// included in the request.
25849func (r *AutoscalersService) Insert(project string, zone string, autoscaler *Autoscaler) *AutoscalersInsertCall {
25850	c := &AutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
25851	c.project = project
25852	c.zone = zone
25853	c.autoscaler = autoscaler
25854	return c
25855}
25856
25857// RequestId sets the optional parameter "requestId": An optional
25858// request ID to identify requests. Specify a unique request ID so that
25859// if you must retry your request, the server will know to ignore the
25860// request if it has already been completed.
25861//
25862// For example, consider a situation where you make an initial request
25863// and the request times out. If you make the request again with the
25864// same request ID, the server can check if original operation with the
25865// same request ID was received, and if so, will ignore the second
25866// request. This prevents clients from accidentally creating duplicate
25867// commitments.
25868//
25869// The request ID must be a valid UUID with the exception that zero UUID
25870// is not supported (00000000-0000-0000-0000-000000000000).
25871func (c *AutoscalersInsertCall) RequestId(requestId string) *AutoscalersInsertCall {
25872	c.urlParams_.Set("requestId", requestId)
25873	return c
25874}
25875
25876// Fields allows partial responses to be retrieved. See
25877// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
25878// for more information.
25879func (c *AutoscalersInsertCall) Fields(s ...googleapi.Field) *AutoscalersInsertCall {
25880	c.urlParams_.Set("fields", googleapi.CombineFields(s))
25881	return c
25882}
25883
25884// Context sets the context to be used in this call's Do method. Any
25885// pending HTTP request will be aborted if the provided context is
25886// canceled.
25887func (c *AutoscalersInsertCall) Context(ctx context.Context) *AutoscalersInsertCall {
25888	c.ctx_ = ctx
25889	return c
25890}
25891
25892// Header returns an http.Header that can be modified by the caller to
25893// add HTTP headers to the request.
25894func (c *AutoscalersInsertCall) Header() http.Header {
25895	if c.header_ == nil {
25896		c.header_ = make(http.Header)
25897	}
25898	return c.header_
25899}
25900
25901func (c *AutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
25902	reqHeaders := make(http.Header)
25903	for k, v := range c.header_ {
25904		reqHeaders[k] = v
25905	}
25906	reqHeaders.Set("User-Agent", c.s.userAgent())
25907	var body io.Reader = nil
25908	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
25909	if err != nil {
25910		return nil, err
25911	}
25912	reqHeaders.Set("Content-Type", "application/json")
25913	c.urlParams_.Set("alt", alt)
25914	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
25915	urls += "?" + c.urlParams_.Encode()
25916	req, _ := http.NewRequest("POST", urls, body)
25917	req.Header = reqHeaders
25918	googleapi.Expand(req.URL, map[string]string{
25919		"project": c.project,
25920		"zone":    c.zone,
25921	})
25922	return gensupport.SendRequest(c.ctx_, c.s.client, req)
25923}
25924
25925// Do executes the "compute.autoscalers.insert" call.
25926// Exactly one of *Operation or error will be non-nil. Any non-2xx
25927// status code is an error. Response headers are in either
25928// *Operation.ServerResponse.Header or (if a response was returned at
25929// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
25930// to check whether the returned error was because
25931// http.StatusNotModified was returned.
25932func (c *AutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
25933	gensupport.SetOptions(c.urlParams_, opts...)
25934	res, err := c.doRequest("json")
25935	if res != nil && res.StatusCode == http.StatusNotModified {
25936		if res.Body != nil {
25937			res.Body.Close()
25938		}
25939		return nil, &googleapi.Error{
25940			Code:   res.StatusCode,
25941			Header: res.Header,
25942		}
25943	}
25944	if err != nil {
25945		return nil, err
25946	}
25947	defer googleapi.CloseBody(res)
25948	if err := googleapi.CheckResponse(res); err != nil {
25949		return nil, err
25950	}
25951	ret := &Operation{
25952		ServerResponse: googleapi.ServerResponse{
25953			Header:         res.Header,
25954			HTTPStatusCode: res.StatusCode,
25955		},
25956	}
25957	target := &ret
25958	if err := gensupport.DecodeResponse(target, res); err != nil {
25959		return nil, err
25960	}
25961	return ret, nil
25962	// {
25963	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
25964	//   "httpMethod": "POST",
25965	//   "id": "compute.autoscalers.insert",
25966	//   "parameterOrder": [
25967	//     "project",
25968	//     "zone"
25969	//   ],
25970	//   "parameters": {
25971	//     "project": {
25972	//       "description": "Project ID for this request.",
25973	//       "location": "path",
25974	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
25975	//       "required": true,
25976	//       "type": "string"
25977	//     },
25978	//     "requestId": {
25979	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
25980	//       "location": "query",
25981	//       "type": "string"
25982	//     },
25983	//     "zone": {
25984	//       "description": "Name of the zone for this request.",
25985	//       "location": "path",
25986	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
25987	//       "required": true,
25988	//       "type": "string"
25989	//     }
25990	//   },
25991	//   "path": "{project}/zones/{zone}/autoscalers",
25992	//   "request": {
25993	//     "$ref": "Autoscaler"
25994	//   },
25995	//   "response": {
25996	//     "$ref": "Operation"
25997	//   },
25998	//   "scopes": [
25999	//     "https://www.googleapis.com/auth/cloud-platform",
26000	//     "https://www.googleapis.com/auth/compute"
26001	//   ]
26002	// }
26003
26004}
26005
26006// method id "compute.autoscalers.list":
26007
26008type AutoscalersListCall struct {
26009	s            *Service
26010	project      string
26011	zone         string
26012	urlParams_   gensupport.URLParams
26013	ifNoneMatch_ string
26014	ctx_         context.Context
26015	header_      http.Header
26016}
26017
26018// List: Retrieves a list of autoscalers contained within the specified
26019// zone.
26020func (r *AutoscalersService) List(project string, zone string) *AutoscalersListCall {
26021	c := &AutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26022	c.project = project
26023	c.zone = zone
26024	return c
26025}
26026
26027// Filter sets the optional parameter "filter": Sets a filter
26028// {expression} for filtering listed resources. Your {expression} must
26029// be in the format: field_name comparison_string literal_string.
26030//
26031// The field_name is the name of the field you want to compare. Only
26032// atomic field types are supported (string, number, boolean). The
26033// comparison_string must be either eq (equals) or ne (not equals). The
26034// literal_string is the string value to filter to. The literal value
26035// must be valid for the type of field you are filtering by (string,
26036// number, boolean). For string fields, the literal value is interpreted
26037// as a regular expression using RE2 syntax. The literal value must
26038// match the entire field.
26039//
26040// For example, to filter for instances that do not have a name of
26041// example-instance, you would use name ne example-instance.
26042//
26043// You can filter on nested fields. For example, you could filter on
26044// instances that have set the scheduling.automaticRestart field to
26045// true. Use filtering on nested fields to take advantage of labels to
26046// organize and search for results based on label values.
26047//
26048// To filter on multiple expressions, provide each separate expression
26049// within parentheses. For example, (scheduling.automaticRestart eq
26050// true) (zone eq us-central1-f). Multiple expressions are treated as
26051// AND expressions, meaning that resources must match all expressions to
26052// pass the filters.
26053func (c *AutoscalersListCall) Filter(filter string) *AutoscalersListCall {
26054	c.urlParams_.Set("filter", filter)
26055	return c
26056}
26057
26058// MaxResults sets the optional parameter "maxResults": The maximum
26059// number of results per page that should be returned. If the number of
26060// available results is larger than maxResults, Compute Engine returns a
26061// nextPageToken that can be used to get the next page of results in
26062// subsequent list requests. Acceptable values are 0 to 500, inclusive.
26063// (Default: 500)
26064func (c *AutoscalersListCall) MaxResults(maxResults int64) *AutoscalersListCall {
26065	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
26066	return c
26067}
26068
26069// OrderBy sets the optional parameter "orderBy": Sorts list results by
26070// a certain order. By default, results are returned in alphanumerical
26071// order based on the resource name.
26072//
26073// You can also sort results in descending order based on the creation
26074// timestamp using orderBy="creationTimestamp desc". This sorts results
26075// based on the creationTimestamp field in reverse chronological order
26076// (newest result first). Use this to sort resources like operations so
26077// that the newest operation is returned first.
26078//
26079// Currently, only sorting by name or creationTimestamp desc is
26080// supported.
26081func (c *AutoscalersListCall) OrderBy(orderBy string) *AutoscalersListCall {
26082	c.urlParams_.Set("orderBy", orderBy)
26083	return c
26084}
26085
26086// PageToken sets the optional parameter "pageToken": Specifies a page
26087// token to use. Set pageToken to the nextPageToken returned by a
26088// previous list request to get the next page of results.
26089func (c *AutoscalersListCall) PageToken(pageToken string) *AutoscalersListCall {
26090	c.urlParams_.Set("pageToken", pageToken)
26091	return c
26092}
26093
26094// Fields allows partial responses to be retrieved. See
26095// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26096// for more information.
26097func (c *AutoscalersListCall) Fields(s ...googleapi.Field) *AutoscalersListCall {
26098	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26099	return c
26100}
26101
26102// IfNoneMatch sets the optional parameter which makes the operation
26103// fail if the object's ETag matches the given value. This is useful for
26104// getting updates only after the object has changed since the last
26105// request. Use googleapi.IsNotModified to check whether the response
26106// error from Do is the result of In-None-Match.
26107func (c *AutoscalersListCall) IfNoneMatch(entityTag string) *AutoscalersListCall {
26108	c.ifNoneMatch_ = entityTag
26109	return c
26110}
26111
26112// Context sets the context to be used in this call's Do method. Any
26113// pending HTTP request will be aborted if the provided context is
26114// canceled.
26115func (c *AutoscalersListCall) Context(ctx context.Context) *AutoscalersListCall {
26116	c.ctx_ = ctx
26117	return c
26118}
26119
26120// Header returns an http.Header that can be modified by the caller to
26121// add HTTP headers to the request.
26122func (c *AutoscalersListCall) Header() http.Header {
26123	if c.header_ == nil {
26124		c.header_ = make(http.Header)
26125	}
26126	return c.header_
26127}
26128
26129func (c *AutoscalersListCall) doRequest(alt string) (*http.Response, error) {
26130	reqHeaders := make(http.Header)
26131	for k, v := range c.header_ {
26132		reqHeaders[k] = v
26133	}
26134	reqHeaders.Set("User-Agent", c.s.userAgent())
26135	if c.ifNoneMatch_ != "" {
26136		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
26137	}
26138	var body io.Reader = nil
26139	c.urlParams_.Set("alt", alt)
26140	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
26141	urls += "?" + c.urlParams_.Encode()
26142	req, _ := http.NewRequest("GET", urls, body)
26143	req.Header = reqHeaders
26144	googleapi.Expand(req.URL, map[string]string{
26145		"project": c.project,
26146		"zone":    c.zone,
26147	})
26148	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26149}
26150
26151// Do executes the "compute.autoscalers.list" call.
26152// Exactly one of *AutoscalerList or error will be non-nil. Any non-2xx
26153// status code is an error. Response headers are in either
26154// *AutoscalerList.ServerResponse.Header or (if a response was returned
26155// at all) in error.(*googleapi.Error).Header. Use
26156// googleapi.IsNotModified to check whether the returned error was
26157// because http.StatusNotModified was returned.
26158func (c *AutoscalersListCall) Do(opts ...googleapi.CallOption) (*AutoscalerList, error) {
26159	gensupport.SetOptions(c.urlParams_, opts...)
26160	res, err := c.doRequest("json")
26161	if res != nil && res.StatusCode == http.StatusNotModified {
26162		if res.Body != nil {
26163			res.Body.Close()
26164		}
26165		return nil, &googleapi.Error{
26166			Code:   res.StatusCode,
26167			Header: res.Header,
26168		}
26169	}
26170	if err != nil {
26171		return nil, err
26172	}
26173	defer googleapi.CloseBody(res)
26174	if err := googleapi.CheckResponse(res); err != nil {
26175		return nil, err
26176	}
26177	ret := &AutoscalerList{
26178		ServerResponse: googleapi.ServerResponse{
26179			Header:         res.Header,
26180			HTTPStatusCode: res.StatusCode,
26181		},
26182	}
26183	target := &ret
26184	if err := gensupport.DecodeResponse(target, res); err != nil {
26185		return nil, err
26186	}
26187	return ret, nil
26188	// {
26189	//   "description": "Retrieves a list of autoscalers contained within the specified zone.",
26190	//   "httpMethod": "GET",
26191	//   "id": "compute.autoscalers.list",
26192	//   "parameterOrder": [
26193	//     "project",
26194	//     "zone"
26195	//   ],
26196	//   "parameters": {
26197	//     "filter": {
26198	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
26199	//       "location": "query",
26200	//       "type": "string"
26201	//     },
26202	//     "maxResults": {
26203	//       "default": "500",
26204	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
26205	//       "format": "uint32",
26206	//       "location": "query",
26207	//       "minimum": "0",
26208	//       "type": "integer"
26209	//     },
26210	//     "orderBy": {
26211	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
26212	//       "location": "query",
26213	//       "type": "string"
26214	//     },
26215	//     "pageToken": {
26216	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
26217	//       "location": "query",
26218	//       "type": "string"
26219	//     },
26220	//     "project": {
26221	//       "description": "Project ID for this request.",
26222	//       "location": "path",
26223	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
26224	//       "required": true,
26225	//       "type": "string"
26226	//     },
26227	//     "zone": {
26228	//       "description": "Name of the zone for this request.",
26229	//       "location": "path",
26230	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
26231	//       "required": true,
26232	//       "type": "string"
26233	//     }
26234	//   },
26235	//   "path": "{project}/zones/{zone}/autoscalers",
26236	//   "response": {
26237	//     "$ref": "AutoscalerList"
26238	//   },
26239	//   "scopes": [
26240	//     "https://www.googleapis.com/auth/cloud-platform",
26241	//     "https://www.googleapis.com/auth/compute",
26242	//     "https://www.googleapis.com/auth/compute.readonly"
26243	//   ]
26244	// }
26245
26246}
26247
26248// Pages invokes f for each page of results.
26249// A non-nil error returned from f will halt the iteration.
26250// The provided context supersedes any context provided to the Context method.
26251func (c *AutoscalersListCall) Pages(ctx context.Context, f func(*AutoscalerList) error) error {
26252	c.ctx_ = ctx
26253	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
26254	for {
26255		x, err := c.Do()
26256		if err != nil {
26257			return err
26258		}
26259		if err := f(x); err != nil {
26260			return err
26261		}
26262		if x.NextPageToken == "" {
26263			return nil
26264		}
26265		c.PageToken(x.NextPageToken)
26266	}
26267}
26268
26269// method id "compute.autoscalers.patch":
26270
26271type AutoscalersPatchCall struct {
26272	s          *Service
26273	project    string
26274	zone       string
26275	autoscaler *Autoscaler
26276	urlParams_ gensupport.URLParams
26277	ctx_       context.Context
26278	header_    http.Header
26279}
26280
26281// Patch: Updates an autoscaler in the specified project using the data
26282// included in the request. This method supports PATCH semantics and
26283// uses the JSON merge patch format and processing rules.
26284func (r *AutoscalersService) Patch(project string, zone string, autoscaler *Autoscaler) *AutoscalersPatchCall {
26285	c := &AutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26286	c.project = project
26287	c.zone = zone
26288	c.autoscaler = autoscaler
26289	return c
26290}
26291
26292// Autoscaler sets the optional parameter "autoscaler": Name of the
26293// autoscaler to patch.
26294func (c *AutoscalersPatchCall) Autoscaler(autoscaler string) *AutoscalersPatchCall {
26295	c.urlParams_.Set("autoscaler", autoscaler)
26296	return c
26297}
26298
26299// RequestId sets the optional parameter "requestId": An optional
26300// request ID to identify requests. Specify a unique request ID so that
26301// if you must retry your request, the server will know to ignore the
26302// request if it has already been completed.
26303//
26304// For example, consider a situation where you make an initial request
26305// and the request times out. If you make the request again with the
26306// same request ID, the server can check if original operation with the
26307// same request ID was received, and if so, will ignore the second
26308// request. This prevents clients from accidentally creating duplicate
26309// commitments.
26310//
26311// The request ID must be a valid UUID with the exception that zero UUID
26312// is not supported (00000000-0000-0000-0000-000000000000).
26313func (c *AutoscalersPatchCall) RequestId(requestId string) *AutoscalersPatchCall {
26314	c.urlParams_.Set("requestId", requestId)
26315	return c
26316}
26317
26318// Fields allows partial responses to be retrieved. See
26319// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26320// for more information.
26321func (c *AutoscalersPatchCall) Fields(s ...googleapi.Field) *AutoscalersPatchCall {
26322	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26323	return c
26324}
26325
26326// Context sets the context to be used in this call's Do method. Any
26327// pending HTTP request will be aborted if the provided context is
26328// canceled.
26329func (c *AutoscalersPatchCall) Context(ctx context.Context) *AutoscalersPatchCall {
26330	c.ctx_ = ctx
26331	return c
26332}
26333
26334// Header returns an http.Header that can be modified by the caller to
26335// add HTTP headers to the request.
26336func (c *AutoscalersPatchCall) Header() http.Header {
26337	if c.header_ == nil {
26338		c.header_ = make(http.Header)
26339	}
26340	return c.header_
26341}
26342
26343func (c *AutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
26344	reqHeaders := make(http.Header)
26345	for k, v := range c.header_ {
26346		reqHeaders[k] = v
26347	}
26348	reqHeaders.Set("User-Agent", c.s.userAgent())
26349	var body io.Reader = nil
26350	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
26351	if err != nil {
26352		return nil, err
26353	}
26354	reqHeaders.Set("Content-Type", "application/json")
26355	c.urlParams_.Set("alt", alt)
26356	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
26357	urls += "?" + c.urlParams_.Encode()
26358	req, _ := http.NewRequest("PATCH", urls, body)
26359	req.Header = reqHeaders
26360	googleapi.Expand(req.URL, map[string]string{
26361		"project": c.project,
26362		"zone":    c.zone,
26363	})
26364	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26365}
26366
26367// Do executes the "compute.autoscalers.patch" call.
26368// Exactly one of *Operation or error will be non-nil. Any non-2xx
26369// status code is an error. Response headers are in either
26370// *Operation.ServerResponse.Header or (if a response was returned at
26371// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
26372// to check whether the returned error was because
26373// http.StatusNotModified was returned.
26374func (c *AutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
26375	gensupport.SetOptions(c.urlParams_, opts...)
26376	res, err := c.doRequest("json")
26377	if res != nil && res.StatusCode == http.StatusNotModified {
26378		if res.Body != nil {
26379			res.Body.Close()
26380		}
26381		return nil, &googleapi.Error{
26382			Code:   res.StatusCode,
26383			Header: res.Header,
26384		}
26385	}
26386	if err != nil {
26387		return nil, err
26388	}
26389	defer googleapi.CloseBody(res)
26390	if err := googleapi.CheckResponse(res); err != nil {
26391		return nil, err
26392	}
26393	ret := &Operation{
26394		ServerResponse: googleapi.ServerResponse{
26395			Header:         res.Header,
26396			HTTPStatusCode: res.StatusCode,
26397		},
26398	}
26399	target := &ret
26400	if err := gensupport.DecodeResponse(target, res); err != nil {
26401		return nil, err
26402	}
26403	return ret, nil
26404	// {
26405	//   "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.",
26406	//   "httpMethod": "PATCH",
26407	//   "id": "compute.autoscalers.patch",
26408	//   "parameterOrder": [
26409	//     "project",
26410	//     "zone"
26411	//   ],
26412	//   "parameters": {
26413	//     "autoscaler": {
26414	//       "description": "Name of the autoscaler to patch.",
26415	//       "location": "query",
26416	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
26417	//       "type": "string"
26418	//     },
26419	//     "project": {
26420	//       "description": "Project ID for this request.",
26421	//       "location": "path",
26422	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
26423	//       "required": true,
26424	//       "type": "string"
26425	//     },
26426	//     "requestId": {
26427	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
26428	//       "location": "query",
26429	//       "type": "string"
26430	//     },
26431	//     "zone": {
26432	//       "description": "Name of the zone for this request.",
26433	//       "location": "path",
26434	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
26435	//       "required": true,
26436	//       "type": "string"
26437	//     }
26438	//   },
26439	//   "path": "{project}/zones/{zone}/autoscalers",
26440	//   "request": {
26441	//     "$ref": "Autoscaler"
26442	//   },
26443	//   "response": {
26444	//     "$ref": "Operation"
26445	//   },
26446	//   "scopes": [
26447	//     "https://www.googleapis.com/auth/cloud-platform",
26448	//     "https://www.googleapis.com/auth/compute"
26449	//   ]
26450	// }
26451
26452}
26453
26454// method id "compute.autoscalers.update":
26455
26456type AutoscalersUpdateCall struct {
26457	s          *Service
26458	project    string
26459	zone       string
26460	autoscaler *Autoscaler
26461	urlParams_ gensupport.URLParams
26462	ctx_       context.Context
26463	header_    http.Header
26464}
26465
26466// Update: Updates an autoscaler in the specified project using the data
26467// included in the request.
26468func (r *AutoscalersService) Update(project string, zone string, autoscaler *Autoscaler) *AutoscalersUpdateCall {
26469	c := &AutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26470	c.project = project
26471	c.zone = zone
26472	c.autoscaler = autoscaler
26473	return c
26474}
26475
26476// Autoscaler sets the optional parameter "autoscaler": Name of the
26477// autoscaler to update.
26478func (c *AutoscalersUpdateCall) Autoscaler(autoscaler string) *AutoscalersUpdateCall {
26479	c.urlParams_.Set("autoscaler", autoscaler)
26480	return c
26481}
26482
26483// RequestId sets the optional parameter "requestId": An optional
26484// request ID to identify requests. Specify a unique request ID so that
26485// if you must retry your request, the server will know to ignore the
26486// request if it has already been completed.
26487//
26488// For example, consider a situation where you make an initial request
26489// and the request times out. If you make the request again with the
26490// same request ID, the server can check if original operation with the
26491// same request ID was received, and if so, will ignore the second
26492// request. This prevents clients from accidentally creating duplicate
26493// commitments.
26494//
26495// The request ID must be a valid UUID with the exception that zero UUID
26496// is not supported (00000000-0000-0000-0000-000000000000).
26497func (c *AutoscalersUpdateCall) RequestId(requestId string) *AutoscalersUpdateCall {
26498	c.urlParams_.Set("requestId", requestId)
26499	return c
26500}
26501
26502// Fields allows partial responses to be retrieved. See
26503// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26504// for more information.
26505func (c *AutoscalersUpdateCall) Fields(s ...googleapi.Field) *AutoscalersUpdateCall {
26506	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26507	return c
26508}
26509
26510// Context sets the context to be used in this call's Do method. Any
26511// pending HTTP request will be aborted if the provided context is
26512// canceled.
26513func (c *AutoscalersUpdateCall) Context(ctx context.Context) *AutoscalersUpdateCall {
26514	c.ctx_ = ctx
26515	return c
26516}
26517
26518// Header returns an http.Header that can be modified by the caller to
26519// add HTTP headers to the request.
26520func (c *AutoscalersUpdateCall) Header() http.Header {
26521	if c.header_ == nil {
26522		c.header_ = make(http.Header)
26523	}
26524	return c.header_
26525}
26526
26527func (c *AutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
26528	reqHeaders := make(http.Header)
26529	for k, v := range c.header_ {
26530		reqHeaders[k] = v
26531	}
26532	reqHeaders.Set("User-Agent", c.s.userAgent())
26533	var body io.Reader = nil
26534	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
26535	if err != nil {
26536		return nil, err
26537	}
26538	reqHeaders.Set("Content-Type", "application/json")
26539	c.urlParams_.Set("alt", alt)
26540	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
26541	urls += "?" + c.urlParams_.Encode()
26542	req, _ := http.NewRequest("PUT", urls, body)
26543	req.Header = reqHeaders
26544	googleapi.Expand(req.URL, map[string]string{
26545		"project": c.project,
26546		"zone":    c.zone,
26547	})
26548	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26549}
26550
26551// Do executes the "compute.autoscalers.update" call.
26552// Exactly one of *Operation or error will be non-nil. Any non-2xx
26553// status code is an error. Response headers are in either
26554// *Operation.ServerResponse.Header or (if a response was returned at
26555// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
26556// to check whether the returned error was because
26557// http.StatusNotModified was returned.
26558func (c *AutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
26559	gensupport.SetOptions(c.urlParams_, opts...)
26560	res, err := c.doRequest("json")
26561	if res != nil && res.StatusCode == http.StatusNotModified {
26562		if res.Body != nil {
26563			res.Body.Close()
26564		}
26565		return nil, &googleapi.Error{
26566			Code:   res.StatusCode,
26567			Header: res.Header,
26568		}
26569	}
26570	if err != nil {
26571		return nil, err
26572	}
26573	defer googleapi.CloseBody(res)
26574	if err := googleapi.CheckResponse(res); err != nil {
26575		return nil, err
26576	}
26577	ret := &Operation{
26578		ServerResponse: googleapi.ServerResponse{
26579			Header:         res.Header,
26580			HTTPStatusCode: res.StatusCode,
26581		},
26582	}
26583	target := &ret
26584	if err := gensupport.DecodeResponse(target, res); err != nil {
26585		return nil, err
26586	}
26587	return ret, nil
26588	// {
26589	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
26590	//   "httpMethod": "PUT",
26591	//   "id": "compute.autoscalers.update",
26592	//   "parameterOrder": [
26593	//     "project",
26594	//     "zone"
26595	//   ],
26596	//   "parameters": {
26597	//     "autoscaler": {
26598	//       "description": "Name of the autoscaler to update.",
26599	//       "location": "query",
26600	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
26601	//       "type": "string"
26602	//     },
26603	//     "project": {
26604	//       "description": "Project ID for this request.",
26605	//       "location": "path",
26606	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
26607	//       "required": true,
26608	//       "type": "string"
26609	//     },
26610	//     "requestId": {
26611	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
26612	//       "location": "query",
26613	//       "type": "string"
26614	//     },
26615	//     "zone": {
26616	//       "description": "Name of the zone for this request.",
26617	//       "location": "path",
26618	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
26619	//       "required": true,
26620	//       "type": "string"
26621	//     }
26622	//   },
26623	//   "path": "{project}/zones/{zone}/autoscalers",
26624	//   "request": {
26625	//     "$ref": "Autoscaler"
26626	//   },
26627	//   "response": {
26628	//     "$ref": "Operation"
26629	//   },
26630	//   "scopes": [
26631	//     "https://www.googleapis.com/auth/cloud-platform",
26632	//     "https://www.googleapis.com/auth/compute"
26633	//   ]
26634	// }
26635
26636}
26637
26638// method id "compute.backendBuckets.delete":
26639
26640type BackendBucketsDeleteCall struct {
26641	s             *Service
26642	project       string
26643	backendBucket string
26644	urlParams_    gensupport.URLParams
26645	ctx_          context.Context
26646	header_       http.Header
26647}
26648
26649// Delete: Deletes the specified BackendBucket resource.
26650func (r *BackendBucketsService) Delete(project string, backendBucket string) *BackendBucketsDeleteCall {
26651	c := &BackendBucketsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26652	c.project = project
26653	c.backendBucket = backendBucket
26654	return c
26655}
26656
26657// RequestId sets the optional parameter "requestId": An optional
26658// request ID to identify requests. Specify a unique request ID so that
26659// if you must retry your request, the server will know to ignore the
26660// request if it has already been completed.
26661//
26662// For example, consider a situation where you make an initial request
26663// and the request times out. If you make the request again with the
26664// same request ID, the server can check if original operation with the
26665// same request ID was received, and if so, will ignore the second
26666// request. This prevents clients from accidentally creating duplicate
26667// commitments.
26668//
26669// The request ID must be a valid UUID with the exception that zero UUID
26670// is not supported (00000000-0000-0000-0000-000000000000).
26671func (c *BackendBucketsDeleteCall) RequestId(requestId string) *BackendBucketsDeleteCall {
26672	c.urlParams_.Set("requestId", requestId)
26673	return c
26674}
26675
26676// Fields allows partial responses to be retrieved. See
26677// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26678// for more information.
26679func (c *BackendBucketsDeleteCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteCall {
26680	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26681	return c
26682}
26683
26684// Context sets the context to be used in this call's Do method. Any
26685// pending HTTP request will be aborted if the provided context is
26686// canceled.
26687func (c *BackendBucketsDeleteCall) Context(ctx context.Context) *BackendBucketsDeleteCall {
26688	c.ctx_ = ctx
26689	return c
26690}
26691
26692// Header returns an http.Header that can be modified by the caller to
26693// add HTTP headers to the request.
26694func (c *BackendBucketsDeleteCall) Header() http.Header {
26695	if c.header_ == nil {
26696		c.header_ = make(http.Header)
26697	}
26698	return c.header_
26699}
26700
26701func (c *BackendBucketsDeleteCall) doRequest(alt string) (*http.Response, error) {
26702	reqHeaders := make(http.Header)
26703	for k, v := range c.header_ {
26704		reqHeaders[k] = v
26705	}
26706	reqHeaders.Set("User-Agent", c.s.userAgent())
26707	var body io.Reader = nil
26708	c.urlParams_.Set("alt", alt)
26709	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
26710	urls += "?" + c.urlParams_.Encode()
26711	req, _ := http.NewRequest("DELETE", urls, body)
26712	req.Header = reqHeaders
26713	googleapi.Expand(req.URL, map[string]string{
26714		"project":       c.project,
26715		"backendBucket": c.backendBucket,
26716	})
26717	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26718}
26719
26720// Do executes the "compute.backendBuckets.delete" call.
26721// Exactly one of *Operation or error will be non-nil. Any non-2xx
26722// status code is an error. Response headers are in either
26723// *Operation.ServerResponse.Header or (if a response was returned at
26724// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
26725// to check whether the returned error was because
26726// http.StatusNotModified was returned.
26727func (c *BackendBucketsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
26728	gensupport.SetOptions(c.urlParams_, opts...)
26729	res, err := c.doRequest("json")
26730	if res != nil && res.StatusCode == http.StatusNotModified {
26731		if res.Body != nil {
26732			res.Body.Close()
26733		}
26734		return nil, &googleapi.Error{
26735			Code:   res.StatusCode,
26736			Header: res.Header,
26737		}
26738	}
26739	if err != nil {
26740		return nil, err
26741	}
26742	defer googleapi.CloseBody(res)
26743	if err := googleapi.CheckResponse(res); err != nil {
26744		return nil, err
26745	}
26746	ret := &Operation{
26747		ServerResponse: googleapi.ServerResponse{
26748			Header:         res.Header,
26749			HTTPStatusCode: res.StatusCode,
26750		},
26751	}
26752	target := &ret
26753	if err := gensupport.DecodeResponse(target, res); err != nil {
26754		return nil, err
26755	}
26756	return ret, nil
26757	// {
26758	//   "description": "Deletes the specified BackendBucket resource.",
26759	//   "httpMethod": "DELETE",
26760	//   "id": "compute.backendBuckets.delete",
26761	//   "parameterOrder": [
26762	//     "project",
26763	//     "backendBucket"
26764	//   ],
26765	//   "parameters": {
26766	//     "backendBucket": {
26767	//       "description": "Name of the BackendBucket resource to delete.",
26768	//       "location": "path",
26769	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
26770	//       "required": true,
26771	//       "type": "string"
26772	//     },
26773	//     "project": {
26774	//       "description": "Project ID for this request.",
26775	//       "location": "path",
26776	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
26777	//       "required": true,
26778	//       "type": "string"
26779	//     },
26780	//     "requestId": {
26781	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
26782	//       "location": "query",
26783	//       "type": "string"
26784	//     }
26785	//   },
26786	//   "path": "{project}/global/backendBuckets/{backendBucket}",
26787	//   "response": {
26788	//     "$ref": "Operation"
26789	//   },
26790	//   "scopes": [
26791	//     "https://www.googleapis.com/auth/cloud-platform",
26792	//     "https://www.googleapis.com/auth/compute"
26793	//   ]
26794	// }
26795
26796}
26797
26798// method id "compute.backendBuckets.get":
26799
26800type BackendBucketsGetCall struct {
26801	s             *Service
26802	project       string
26803	backendBucket string
26804	urlParams_    gensupport.URLParams
26805	ifNoneMatch_  string
26806	ctx_          context.Context
26807	header_       http.Header
26808}
26809
26810// Get: Returns the specified BackendBucket resource. Get a list of
26811// available backend buckets by making a list() request.
26812func (r *BackendBucketsService) Get(project string, backendBucket string) *BackendBucketsGetCall {
26813	c := &BackendBucketsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26814	c.project = project
26815	c.backendBucket = backendBucket
26816	return c
26817}
26818
26819// Fields allows partial responses to be retrieved. See
26820// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26821// for more information.
26822func (c *BackendBucketsGetCall) Fields(s ...googleapi.Field) *BackendBucketsGetCall {
26823	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26824	return c
26825}
26826
26827// IfNoneMatch sets the optional parameter which makes the operation
26828// fail if the object's ETag matches the given value. This is useful for
26829// getting updates only after the object has changed since the last
26830// request. Use googleapi.IsNotModified to check whether the response
26831// error from Do is the result of In-None-Match.
26832func (c *BackendBucketsGetCall) IfNoneMatch(entityTag string) *BackendBucketsGetCall {
26833	c.ifNoneMatch_ = entityTag
26834	return c
26835}
26836
26837// Context sets the context to be used in this call's Do method. Any
26838// pending HTTP request will be aborted if the provided context is
26839// canceled.
26840func (c *BackendBucketsGetCall) Context(ctx context.Context) *BackendBucketsGetCall {
26841	c.ctx_ = ctx
26842	return c
26843}
26844
26845// Header returns an http.Header that can be modified by the caller to
26846// add HTTP headers to the request.
26847func (c *BackendBucketsGetCall) Header() http.Header {
26848	if c.header_ == nil {
26849		c.header_ = make(http.Header)
26850	}
26851	return c.header_
26852}
26853
26854func (c *BackendBucketsGetCall) doRequest(alt string) (*http.Response, error) {
26855	reqHeaders := make(http.Header)
26856	for k, v := range c.header_ {
26857		reqHeaders[k] = v
26858	}
26859	reqHeaders.Set("User-Agent", c.s.userAgent())
26860	if c.ifNoneMatch_ != "" {
26861		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
26862	}
26863	var body io.Reader = nil
26864	c.urlParams_.Set("alt", alt)
26865	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
26866	urls += "?" + c.urlParams_.Encode()
26867	req, _ := http.NewRequest("GET", urls, body)
26868	req.Header = reqHeaders
26869	googleapi.Expand(req.URL, map[string]string{
26870		"project":       c.project,
26871		"backendBucket": c.backendBucket,
26872	})
26873	return gensupport.SendRequest(c.ctx_, c.s.client, req)
26874}
26875
26876// Do executes the "compute.backendBuckets.get" call.
26877// Exactly one of *BackendBucket or error will be non-nil. Any non-2xx
26878// status code is an error. Response headers are in either
26879// *BackendBucket.ServerResponse.Header or (if a response was returned
26880// at all) in error.(*googleapi.Error).Header. Use
26881// googleapi.IsNotModified to check whether the returned error was
26882// because http.StatusNotModified was returned.
26883func (c *BackendBucketsGetCall) Do(opts ...googleapi.CallOption) (*BackendBucket, error) {
26884	gensupport.SetOptions(c.urlParams_, opts...)
26885	res, err := c.doRequest("json")
26886	if res != nil && res.StatusCode == http.StatusNotModified {
26887		if res.Body != nil {
26888			res.Body.Close()
26889		}
26890		return nil, &googleapi.Error{
26891			Code:   res.StatusCode,
26892			Header: res.Header,
26893		}
26894	}
26895	if err != nil {
26896		return nil, err
26897	}
26898	defer googleapi.CloseBody(res)
26899	if err := googleapi.CheckResponse(res); err != nil {
26900		return nil, err
26901	}
26902	ret := &BackendBucket{
26903		ServerResponse: googleapi.ServerResponse{
26904			Header:         res.Header,
26905			HTTPStatusCode: res.StatusCode,
26906		},
26907	}
26908	target := &ret
26909	if err := gensupport.DecodeResponse(target, res); err != nil {
26910		return nil, err
26911	}
26912	return ret, nil
26913	// {
26914	//   "description": "Returns the specified BackendBucket resource. Get a list of available backend buckets by making a list() request.",
26915	//   "httpMethod": "GET",
26916	//   "id": "compute.backendBuckets.get",
26917	//   "parameterOrder": [
26918	//     "project",
26919	//     "backendBucket"
26920	//   ],
26921	//   "parameters": {
26922	//     "backendBucket": {
26923	//       "description": "Name of the BackendBucket resource to return.",
26924	//       "location": "path",
26925	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
26926	//       "required": true,
26927	//       "type": "string"
26928	//     },
26929	//     "project": {
26930	//       "description": "Project ID for this request.",
26931	//       "location": "path",
26932	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
26933	//       "required": true,
26934	//       "type": "string"
26935	//     }
26936	//   },
26937	//   "path": "{project}/global/backendBuckets/{backendBucket}",
26938	//   "response": {
26939	//     "$ref": "BackendBucket"
26940	//   },
26941	//   "scopes": [
26942	//     "https://www.googleapis.com/auth/cloud-platform",
26943	//     "https://www.googleapis.com/auth/compute",
26944	//     "https://www.googleapis.com/auth/compute.readonly"
26945	//   ]
26946	// }
26947
26948}
26949
26950// method id "compute.backendBuckets.insert":
26951
26952type BackendBucketsInsertCall struct {
26953	s             *Service
26954	project       string
26955	backendbucket *BackendBucket
26956	urlParams_    gensupport.URLParams
26957	ctx_          context.Context
26958	header_       http.Header
26959}
26960
26961// Insert: Creates a BackendBucket resource in the specified project
26962// using the data included in the request.
26963func (r *BackendBucketsService) Insert(project string, backendbucket *BackendBucket) *BackendBucketsInsertCall {
26964	c := &BackendBucketsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
26965	c.project = project
26966	c.backendbucket = backendbucket
26967	return c
26968}
26969
26970// RequestId sets the optional parameter "requestId": An optional
26971// request ID to identify requests. Specify a unique request ID so that
26972// if you must retry your request, the server will know to ignore the
26973// request if it has already been completed.
26974//
26975// For example, consider a situation where you make an initial request
26976// and the request times out. If you make the request again with the
26977// same request ID, the server can check if original operation with the
26978// same request ID was received, and if so, will ignore the second
26979// request. This prevents clients from accidentally creating duplicate
26980// commitments.
26981//
26982// The request ID must be a valid UUID with the exception that zero UUID
26983// is not supported (00000000-0000-0000-0000-000000000000).
26984func (c *BackendBucketsInsertCall) RequestId(requestId string) *BackendBucketsInsertCall {
26985	c.urlParams_.Set("requestId", requestId)
26986	return c
26987}
26988
26989// Fields allows partial responses to be retrieved. See
26990// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
26991// for more information.
26992func (c *BackendBucketsInsertCall) Fields(s ...googleapi.Field) *BackendBucketsInsertCall {
26993	c.urlParams_.Set("fields", googleapi.CombineFields(s))
26994	return c
26995}
26996
26997// Context sets the context to be used in this call's Do method. Any
26998// pending HTTP request will be aborted if the provided context is
26999// canceled.
27000func (c *BackendBucketsInsertCall) Context(ctx context.Context) *BackendBucketsInsertCall {
27001	c.ctx_ = ctx
27002	return c
27003}
27004
27005// Header returns an http.Header that can be modified by the caller to
27006// add HTTP headers to the request.
27007func (c *BackendBucketsInsertCall) Header() http.Header {
27008	if c.header_ == nil {
27009		c.header_ = make(http.Header)
27010	}
27011	return c.header_
27012}
27013
27014func (c *BackendBucketsInsertCall) doRequest(alt string) (*http.Response, error) {
27015	reqHeaders := make(http.Header)
27016	for k, v := range c.header_ {
27017		reqHeaders[k] = v
27018	}
27019	reqHeaders.Set("User-Agent", c.s.userAgent())
27020	var body io.Reader = nil
27021	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
27022	if err != nil {
27023		return nil, err
27024	}
27025	reqHeaders.Set("Content-Type", "application/json")
27026	c.urlParams_.Set("alt", alt)
27027	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets")
27028	urls += "?" + c.urlParams_.Encode()
27029	req, _ := http.NewRequest("POST", urls, body)
27030	req.Header = reqHeaders
27031	googleapi.Expand(req.URL, map[string]string{
27032		"project": c.project,
27033	})
27034	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27035}
27036
27037// Do executes the "compute.backendBuckets.insert" call.
27038// Exactly one of *Operation or error will be non-nil. Any non-2xx
27039// status code is an error. Response headers are in either
27040// *Operation.ServerResponse.Header or (if a response was returned at
27041// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
27042// to check whether the returned error was because
27043// http.StatusNotModified was returned.
27044func (c *BackendBucketsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
27045	gensupport.SetOptions(c.urlParams_, opts...)
27046	res, err := c.doRequest("json")
27047	if res != nil && res.StatusCode == http.StatusNotModified {
27048		if res.Body != nil {
27049			res.Body.Close()
27050		}
27051		return nil, &googleapi.Error{
27052			Code:   res.StatusCode,
27053			Header: res.Header,
27054		}
27055	}
27056	if err != nil {
27057		return nil, err
27058	}
27059	defer googleapi.CloseBody(res)
27060	if err := googleapi.CheckResponse(res); err != nil {
27061		return nil, err
27062	}
27063	ret := &Operation{
27064		ServerResponse: googleapi.ServerResponse{
27065			Header:         res.Header,
27066			HTTPStatusCode: res.StatusCode,
27067		},
27068	}
27069	target := &ret
27070	if err := gensupport.DecodeResponse(target, res); err != nil {
27071		return nil, err
27072	}
27073	return ret, nil
27074	// {
27075	//   "description": "Creates a BackendBucket resource in the specified project using the data included in the request.",
27076	//   "httpMethod": "POST",
27077	//   "id": "compute.backendBuckets.insert",
27078	//   "parameterOrder": [
27079	//     "project"
27080	//   ],
27081	//   "parameters": {
27082	//     "project": {
27083	//       "description": "Project ID for this request.",
27084	//       "location": "path",
27085	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
27086	//       "required": true,
27087	//       "type": "string"
27088	//     },
27089	//     "requestId": {
27090	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
27091	//       "location": "query",
27092	//       "type": "string"
27093	//     }
27094	//   },
27095	//   "path": "{project}/global/backendBuckets",
27096	//   "request": {
27097	//     "$ref": "BackendBucket"
27098	//   },
27099	//   "response": {
27100	//     "$ref": "Operation"
27101	//   },
27102	//   "scopes": [
27103	//     "https://www.googleapis.com/auth/cloud-platform",
27104	//     "https://www.googleapis.com/auth/compute"
27105	//   ]
27106	// }
27107
27108}
27109
27110// method id "compute.backendBuckets.list":
27111
27112type BackendBucketsListCall struct {
27113	s            *Service
27114	project      string
27115	urlParams_   gensupport.URLParams
27116	ifNoneMatch_ string
27117	ctx_         context.Context
27118	header_      http.Header
27119}
27120
27121// List: Retrieves the list of BackendBucket resources available to the
27122// specified project.
27123func (r *BackendBucketsService) List(project string) *BackendBucketsListCall {
27124	c := &BackendBucketsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27125	c.project = project
27126	return c
27127}
27128
27129// Filter sets the optional parameter "filter": Sets a filter
27130// {expression} for filtering listed resources. Your {expression} must
27131// be in the format: field_name comparison_string literal_string.
27132//
27133// The field_name is the name of the field you want to compare. Only
27134// atomic field types are supported (string, number, boolean). The
27135// comparison_string must be either eq (equals) or ne (not equals). The
27136// literal_string is the string value to filter to. The literal value
27137// must be valid for the type of field you are filtering by (string,
27138// number, boolean). For string fields, the literal value is interpreted
27139// as a regular expression using RE2 syntax. The literal value must
27140// match the entire field.
27141//
27142// For example, to filter for instances that do not have a name of
27143// example-instance, you would use name ne example-instance.
27144//
27145// You can filter on nested fields. For example, you could filter on
27146// instances that have set the scheduling.automaticRestart field to
27147// true. Use filtering on nested fields to take advantage of labels to
27148// organize and search for results based on label values.
27149//
27150// To filter on multiple expressions, provide each separate expression
27151// within parentheses. For example, (scheduling.automaticRestart eq
27152// true) (zone eq us-central1-f). Multiple expressions are treated as
27153// AND expressions, meaning that resources must match all expressions to
27154// pass the filters.
27155func (c *BackendBucketsListCall) Filter(filter string) *BackendBucketsListCall {
27156	c.urlParams_.Set("filter", filter)
27157	return c
27158}
27159
27160// MaxResults sets the optional parameter "maxResults": The maximum
27161// number of results per page that should be returned. If the number of
27162// available results is larger than maxResults, Compute Engine returns a
27163// nextPageToken that can be used to get the next page of results in
27164// subsequent list requests. Acceptable values are 0 to 500, inclusive.
27165// (Default: 500)
27166func (c *BackendBucketsListCall) MaxResults(maxResults int64) *BackendBucketsListCall {
27167	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
27168	return c
27169}
27170
27171// OrderBy sets the optional parameter "orderBy": Sorts list results by
27172// a certain order. By default, results are returned in alphanumerical
27173// order based on the resource name.
27174//
27175// You can also sort results in descending order based on the creation
27176// timestamp using orderBy="creationTimestamp desc". This sorts results
27177// based on the creationTimestamp field in reverse chronological order
27178// (newest result first). Use this to sort resources like operations so
27179// that the newest operation is returned first.
27180//
27181// Currently, only sorting by name or creationTimestamp desc is
27182// supported.
27183func (c *BackendBucketsListCall) OrderBy(orderBy string) *BackendBucketsListCall {
27184	c.urlParams_.Set("orderBy", orderBy)
27185	return c
27186}
27187
27188// PageToken sets the optional parameter "pageToken": Specifies a page
27189// token to use. Set pageToken to the nextPageToken returned by a
27190// previous list request to get the next page of results.
27191func (c *BackendBucketsListCall) PageToken(pageToken string) *BackendBucketsListCall {
27192	c.urlParams_.Set("pageToken", pageToken)
27193	return c
27194}
27195
27196// Fields allows partial responses to be retrieved. See
27197// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27198// for more information.
27199func (c *BackendBucketsListCall) Fields(s ...googleapi.Field) *BackendBucketsListCall {
27200	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27201	return c
27202}
27203
27204// IfNoneMatch sets the optional parameter which makes the operation
27205// fail if the object's ETag matches the given value. This is useful for
27206// getting updates only after the object has changed since the last
27207// request. Use googleapi.IsNotModified to check whether the response
27208// error from Do is the result of In-None-Match.
27209func (c *BackendBucketsListCall) IfNoneMatch(entityTag string) *BackendBucketsListCall {
27210	c.ifNoneMatch_ = entityTag
27211	return c
27212}
27213
27214// Context sets the context to be used in this call's Do method. Any
27215// pending HTTP request will be aborted if the provided context is
27216// canceled.
27217func (c *BackendBucketsListCall) Context(ctx context.Context) *BackendBucketsListCall {
27218	c.ctx_ = ctx
27219	return c
27220}
27221
27222// Header returns an http.Header that can be modified by the caller to
27223// add HTTP headers to the request.
27224func (c *BackendBucketsListCall) Header() http.Header {
27225	if c.header_ == nil {
27226		c.header_ = make(http.Header)
27227	}
27228	return c.header_
27229}
27230
27231func (c *BackendBucketsListCall) doRequest(alt string) (*http.Response, error) {
27232	reqHeaders := make(http.Header)
27233	for k, v := range c.header_ {
27234		reqHeaders[k] = v
27235	}
27236	reqHeaders.Set("User-Agent", c.s.userAgent())
27237	if c.ifNoneMatch_ != "" {
27238		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
27239	}
27240	var body io.Reader = nil
27241	c.urlParams_.Set("alt", alt)
27242	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets")
27243	urls += "?" + c.urlParams_.Encode()
27244	req, _ := http.NewRequest("GET", urls, body)
27245	req.Header = reqHeaders
27246	googleapi.Expand(req.URL, map[string]string{
27247		"project": c.project,
27248	})
27249	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27250}
27251
27252// Do executes the "compute.backendBuckets.list" call.
27253// Exactly one of *BackendBucketList or error will be non-nil. Any
27254// non-2xx status code is an error. Response headers are in either
27255// *BackendBucketList.ServerResponse.Header or (if a response was
27256// returned at all) in error.(*googleapi.Error).Header. Use
27257// googleapi.IsNotModified to check whether the returned error was
27258// because http.StatusNotModified was returned.
27259func (c *BackendBucketsListCall) Do(opts ...googleapi.CallOption) (*BackendBucketList, error) {
27260	gensupport.SetOptions(c.urlParams_, opts...)
27261	res, err := c.doRequest("json")
27262	if res != nil && res.StatusCode == http.StatusNotModified {
27263		if res.Body != nil {
27264			res.Body.Close()
27265		}
27266		return nil, &googleapi.Error{
27267			Code:   res.StatusCode,
27268			Header: res.Header,
27269		}
27270	}
27271	if err != nil {
27272		return nil, err
27273	}
27274	defer googleapi.CloseBody(res)
27275	if err := googleapi.CheckResponse(res); err != nil {
27276		return nil, err
27277	}
27278	ret := &BackendBucketList{
27279		ServerResponse: googleapi.ServerResponse{
27280			Header:         res.Header,
27281			HTTPStatusCode: res.StatusCode,
27282		},
27283	}
27284	target := &ret
27285	if err := gensupport.DecodeResponse(target, res); err != nil {
27286		return nil, err
27287	}
27288	return ret, nil
27289	// {
27290	//   "description": "Retrieves the list of BackendBucket resources available to the specified project.",
27291	//   "httpMethod": "GET",
27292	//   "id": "compute.backendBuckets.list",
27293	//   "parameterOrder": [
27294	//     "project"
27295	//   ],
27296	//   "parameters": {
27297	//     "filter": {
27298	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
27299	//       "location": "query",
27300	//       "type": "string"
27301	//     },
27302	//     "maxResults": {
27303	//       "default": "500",
27304	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
27305	//       "format": "uint32",
27306	//       "location": "query",
27307	//       "minimum": "0",
27308	//       "type": "integer"
27309	//     },
27310	//     "orderBy": {
27311	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
27312	//       "location": "query",
27313	//       "type": "string"
27314	//     },
27315	//     "pageToken": {
27316	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
27317	//       "location": "query",
27318	//       "type": "string"
27319	//     },
27320	//     "project": {
27321	//       "description": "Project ID for this request.",
27322	//       "location": "path",
27323	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
27324	//       "required": true,
27325	//       "type": "string"
27326	//     }
27327	//   },
27328	//   "path": "{project}/global/backendBuckets",
27329	//   "response": {
27330	//     "$ref": "BackendBucketList"
27331	//   },
27332	//   "scopes": [
27333	//     "https://www.googleapis.com/auth/cloud-platform",
27334	//     "https://www.googleapis.com/auth/compute",
27335	//     "https://www.googleapis.com/auth/compute.readonly"
27336	//   ]
27337	// }
27338
27339}
27340
27341// Pages invokes f for each page of results.
27342// A non-nil error returned from f will halt the iteration.
27343// The provided context supersedes any context provided to the Context method.
27344func (c *BackendBucketsListCall) Pages(ctx context.Context, f func(*BackendBucketList) error) error {
27345	c.ctx_ = ctx
27346	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
27347	for {
27348		x, err := c.Do()
27349		if err != nil {
27350			return err
27351		}
27352		if err := f(x); err != nil {
27353			return err
27354		}
27355		if x.NextPageToken == "" {
27356			return nil
27357		}
27358		c.PageToken(x.NextPageToken)
27359	}
27360}
27361
27362// method id "compute.backendBuckets.patch":
27363
27364type BackendBucketsPatchCall struct {
27365	s             *Service
27366	project       string
27367	backendBucket string
27368	backendbucket *BackendBucket
27369	urlParams_    gensupport.URLParams
27370	ctx_          context.Context
27371	header_       http.Header
27372}
27373
27374// Patch: Updates the specified BackendBucket resource with the data
27375// included in the request. This method supports PATCH semantics and
27376// uses the JSON merge patch format and processing rules.
27377func (r *BackendBucketsService) Patch(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsPatchCall {
27378	c := &BackendBucketsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27379	c.project = project
27380	c.backendBucket = backendBucket
27381	c.backendbucket = backendbucket
27382	return c
27383}
27384
27385// RequestId sets the optional parameter "requestId": An optional
27386// request ID to identify requests. Specify a unique request ID so that
27387// if you must retry your request, the server will know to ignore the
27388// request if it has already been completed.
27389//
27390// For example, consider a situation where you make an initial request
27391// and the request times out. If you make the request again with the
27392// same request ID, the server can check if original operation with the
27393// same request ID was received, and if so, will ignore the second
27394// request. This prevents clients from accidentally creating duplicate
27395// commitments.
27396//
27397// The request ID must be a valid UUID with the exception that zero UUID
27398// is not supported (00000000-0000-0000-0000-000000000000).
27399func (c *BackendBucketsPatchCall) RequestId(requestId string) *BackendBucketsPatchCall {
27400	c.urlParams_.Set("requestId", requestId)
27401	return c
27402}
27403
27404// Fields allows partial responses to be retrieved. See
27405// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27406// for more information.
27407func (c *BackendBucketsPatchCall) Fields(s ...googleapi.Field) *BackendBucketsPatchCall {
27408	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27409	return c
27410}
27411
27412// Context sets the context to be used in this call's Do method. Any
27413// pending HTTP request will be aborted if the provided context is
27414// canceled.
27415func (c *BackendBucketsPatchCall) Context(ctx context.Context) *BackendBucketsPatchCall {
27416	c.ctx_ = ctx
27417	return c
27418}
27419
27420// Header returns an http.Header that can be modified by the caller to
27421// add HTTP headers to the request.
27422func (c *BackendBucketsPatchCall) Header() http.Header {
27423	if c.header_ == nil {
27424		c.header_ = make(http.Header)
27425	}
27426	return c.header_
27427}
27428
27429func (c *BackendBucketsPatchCall) doRequest(alt string) (*http.Response, error) {
27430	reqHeaders := make(http.Header)
27431	for k, v := range c.header_ {
27432		reqHeaders[k] = v
27433	}
27434	reqHeaders.Set("User-Agent", c.s.userAgent())
27435	var body io.Reader = nil
27436	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
27437	if err != nil {
27438		return nil, err
27439	}
27440	reqHeaders.Set("Content-Type", "application/json")
27441	c.urlParams_.Set("alt", alt)
27442	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
27443	urls += "?" + c.urlParams_.Encode()
27444	req, _ := http.NewRequest("PATCH", urls, body)
27445	req.Header = reqHeaders
27446	googleapi.Expand(req.URL, map[string]string{
27447		"project":       c.project,
27448		"backendBucket": c.backendBucket,
27449	})
27450	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27451}
27452
27453// Do executes the "compute.backendBuckets.patch" call.
27454// Exactly one of *Operation or error will be non-nil. Any non-2xx
27455// status code is an error. Response headers are in either
27456// *Operation.ServerResponse.Header or (if a response was returned at
27457// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
27458// to check whether the returned error was because
27459// http.StatusNotModified was returned.
27460func (c *BackendBucketsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
27461	gensupport.SetOptions(c.urlParams_, opts...)
27462	res, err := c.doRequest("json")
27463	if res != nil && res.StatusCode == http.StatusNotModified {
27464		if res.Body != nil {
27465			res.Body.Close()
27466		}
27467		return nil, &googleapi.Error{
27468			Code:   res.StatusCode,
27469			Header: res.Header,
27470		}
27471	}
27472	if err != nil {
27473		return nil, err
27474	}
27475	defer googleapi.CloseBody(res)
27476	if err := googleapi.CheckResponse(res); err != nil {
27477		return nil, err
27478	}
27479	ret := &Operation{
27480		ServerResponse: googleapi.ServerResponse{
27481			Header:         res.Header,
27482			HTTPStatusCode: res.StatusCode,
27483		},
27484	}
27485	target := &ret
27486	if err := gensupport.DecodeResponse(target, res); err != nil {
27487		return nil, err
27488	}
27489	return ret, nil
27490	// {
27491	//   "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.",
27492	//   "httpMethod": "PATCH",
27493	//   "id": "compute.backendBuckets.patch",
27494	//   "parameterOrder": [
27495	//     "project",
27496	//     "backendBucket"
27497	//   ],
27498	//   "parameters": {
27499	//     "backendBucket": {
27500	//       "description": "Name of the BackendBucket resource to patch.",
27501	//       "location": "path",
27502	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
27503	//       "required": true,
27504	//       "type": "string"
27505	//     },
27506	//     "project": {
27507	//       "description": "Project ID for this request.",
27508	//       "location": "path",
27509	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
27510	//       "required": true,
27511	//       "type": "string"
27512	//     },
27513	//     "requestId": {
27514	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
27515	//       "location": "query",
27516	//       "type": "string"
27517	//     }
27518	//   },
27519	//   "path": "{project}/global/backendBuckets/{backendBucket}",
27520	//   "request": {
27521	//     "$ref": "BackendBucket"
27522	//   },
27523	//   "response": {
27524	//     "$ref": "Operation"
27525	//   },
27526	//   "scopes": [
27527	//     "https://www.googleapis.com/auth/cloud-platform",
27528	//     "https://www.googleapis.com/auth/compute"
27529	//   ]
27530	// }
27531
27532}
27533
27534// method id "compute.backendBuckets.update":
27535
27536type BackendBucketsUpdateCall struct {
27537	s             *Service
27538	project       string
27539	backendBucket string
27540	backendbucket *BackendBucket
27541	urlParams_    gensupport.URLParams
27542	ctx_          context.Context
27543	header_       http.Header
27544}
27545
27546// Update: Updates the specified BackendBucket resource with the data
27547// included in the request.
27548func (r *BackendBucketsService) Update(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsUpdateCall {
27549	c := &BackendBucketsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27550	c.project = project
27551	c.backendBucket = backendBucket
27552	c.backendbucket = backendbucket
27553	return c
27554}
27555
27556// RequestId sets the optional parameter "requestId": An optional
27557// request ID to identify requests. Specify a unique request ID so that
27558// if you must retry your request, the server will know to ignore the
27559// request if it has already been completed.
27560//
27561// For example, consider a situation where you make an initial request
27562// and the request times out. If you make the request again with the
27563// same request ID, the server can check if original operation with the
27564// same request ID was received, and if so, will ignore the second
27565// request. This prevents clients from accidentally creating duplicate
27566// commitments.
27567//
27568// The request ID must be a valid UUID with the exception that zero UUID
27569// is not supported (00000000-0000-0000-0000-000000000000).
27570func (c *BackendBucketsUpdateCall) RequestId(requestId string) *BackendBucketsUpdateCall {
27571	c.urlParams_.Set("requestId", requestId)
27572	return c
27573}
27574
27575// Fields allows partial responses to be retrieved. See
27576// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27577// for more information.
27578func (c *BackendBucketsUpdateCall) Fields(s ...googleapi.Field) *BackendBucketsUpdateCall {
27579	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27580	return c
27581}
27582
27583// Context sets the context to be used in this call's Do method. Any
27584// pending HTTP request will be aborted if the provided context is
27585// canceled.
27586func (c *BackendBucketsUpdateCall) Context(ctx context.Context) *BackendBucketsUpdateCall {
27587	c.ctx_ = ctx
27588	return c
27589}
27590
27591// Header returns an http.Header that can be modified by the caller to
27592// add HTTP headers to the request.
27593func (c *BackendBucketsUpdateCall) Header() http.Header {
27594	if c.header_ == nil {
27595		c.header_ = make(http.Header)
27596	}
27597	return c.header_
27598}
27599
27600func (c *BackendBucketsUpdateCall) doRequest(alt string) (*http.Response, error) {
27601	reqHeaders := make(http.Header)
27602	for k, v := range c.header_ {
27603		reqHeaders[k] = v
27604	}
27605	reqHeaders.Set("User-Agent", c.s.userAgent())
27606	var body io.Reader = nil
27607	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
27608	if err != nil {
27609		return nil, err
27610	}
27611	reqHeaders.Set("Content-Type", "application/json")
27612	c.urlParams_.Set("alt", alt)
27613	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
27614	urls += "?" + c.urlParams_.Encode()
27615	req, _ := http.NewRequest("PUT", urls, body)
27616	req.Header = reqHeaders
27617	googleapi.Expand(req.URL, map[string]string{
27618		"project":       c.project,
27619		"backendBucket": c.backendBucket,
27620	})
27621	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27622}
27623
27624// Do executes the "compute.backendBuckets.update" call.
27625// Exactly one of *Operation or error will be non-nil. Any non-2xx
27626// status code is an error. Response headers are in either
27627// *Operation.ServerResponse.Header or (if a response was returned at
27628// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
27629// to check whether the returned error was because
27630// http.StatusNotModified was returned.
27631func (c *BackendBucketsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
27632	gensupport.SetOptions(c.urlParams_, opts...)
27633	res, err := c.doRequest("json")
27634	if res != nil && res.StatusCode == http.StatusNotModified {
27635		if res.Body != nil {
27636			res.Body.Close()
27637		}
27638		return nil, &googleapi.Error{
27639			Code:   res.StatusCode,
27640			Header: res.Header,
27641		}
27642	}
27643	if err != nil {
27644		return nil, err
27645	}
27646	defer googleapi.CloseBody(res)
27647	if err := googleapi.CheckResponse(res); err != nil {
27648		return nil, err
27649	}
27650	ret := &Operation{
27651		ServerResponse: googleapi.ServerResponse{
27652			Header:         res.Header,
27653			HTTPStatusCode: res.StatusCode,
27654		},
27655	}
27656	target := &ret
27657	if err := gensupport.DecodeResponse(target, res); err != nil {
27658		return nil, err
27659	}
27660	return ret, nil
27661	// {
27662	//   "description": "Updates the specified BackendBucket resource with the data included in the request.",
27663	//   "httpMethod": "PUT",
27664	//   "id": "compute.backendBuckets.update",
27665	//   "parameterOrder": [
27666	//     "project",
27667	//     "backendBucket"
27668	//   ],
27669	//   "parameters": {
27670	//     "backendBucket": {
27671	//       "description": "Name of the BackendBucket resource to update.",
27672	//       "location": "path",
27673	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
27674	//       "required": true,
27675	//       "type": "string"
27676	//     },
27677	//     "project": {
27678	//       "description": "Project ID for this request.",
27679	//       "location": "path",
27680	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
27681	//       "required": true,
27682	//       "type": "string"
27683	//     },
27684	//     "requestId": {
27685	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
27686	//       "location": "query",
27687	//       "type": "string"
27688	//     }
27689	//   },
27690	//   "path": "{project}/global/backendBuckets/{backendBucket}",
27691	//   "request": {
27692	//     "$ref": "BackendBucket"
27693	//   },
27694	//   "response": {
27695	//     "$ref": "Operation"
27696	//   },
27697	//   "scopes": [
27698	//     "https://www.googleapis.com/auth/cloud-platform",
27699	//     "https://www.googleapis.com/auth/compute"
27700	//   ]
27701	// }
27702
27703}
27704
27705// method id "compute.backendServices.aggregatedList":
27706
27707type BackendServicesAggregatedListCall struct {
27708	s            *Service
27709	project      string
27710	urlParams_   gensupport.URLParams
27711	ifNoneMatch_ string
27712	ctx_         context.Context
27713	header_      http.Header
27714}
27715
27716// AggregatedList: Retrieves the list of all BackendService resources,
27717// regional and global, available to the specified project.
27718func (r *BackendServicesService) AggregatedList(project string) *BackendServicesAggregatedListCall {
27719	c := &BackendServicesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27720	c.project = project
27721	return c
27722}
27723
27724// Filter sets the optional parameter "filter": Sets a filter
27725// {expression} for filtering listed resources. Your {expression} must
27726// be in the format: field_name comparison_string literal_string.
27727//
27728// The field_name is the name of the field you want to compare. Only
27729// atomic field types are supported (string, number, boolean). The
27730// comparison_string must be either eq (equals) or ne (not equals). The
27731// literal_string is the string value to filter to. The literal value
27732// must be valid for the type of field you are filtering by (string,
27733// number, boolean). For string fields, the literal value is interpreted
27734// as a regular expression using RE2 syntax. The literal value must
27735// match the entire field.
27736//
27737// For example, to filter for instances that do not have a name of
27738// example-instance, you would use name ne example-instance.
27739//
27740// You can filter on nested fields. For example, you could filter on
27741// instances that have set the scheduling.automaticRestart field to
27742// true. Use filtering on nested fields to take advantage of labels to
27743// organize and search for results based on label values.
27744//
27745// To filter on multiple expressions, provide each separate expression
27746// within parentheses. For example, (scheduling.automaticRestart eq
27747// true) (zone eq us-central1-f). Multiple expressions are treated as
27748// AND expressions, meaning that resources must match all expressions to
27749// pass the filters.
27750func (c *BackendServicesAggregatedListCall) Filter(filter string) *BackendServicesAggregatedListCall {
27751	c.urlParams_.Set("filter", filter)
27752	return c
27753}
27754
27755// MaxResults sets the optional parameter "maxResults": The maximum
27756// number of results per page that should be returned. If the number of
27757// available results is larger than maxResults, Compute Engine returns a
27758// nextPageToken that can be used to get the next page of results in
27759// subsequent list requests. Acceptable values are 0 to 500, inclusive.
27760// (Default: 500)
27761func (c *BackendServicesAggregatedListCall) MaxResults(maxResults int64) *BackendServicesAggregatedListCall {
27762	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
27763	return c
27764}
27765
27766// OrderBy sets the optional parameter "orderBy": Sorts list results by
27767// a certain order. By default, results are returned in alphanumerical
27768// order based on the resource name.
27769//
27770// You can also sort results in descending order based on the creation
27771// timestamp using orderBy="creationTimestamp desc". This sorts results
27772// based on the creationTimestamp field in reverse chronological order
27773// (newest result first). Use this to sort resources like operations so
27774// that the newest operation is returned first.
27775//
27776// Currently, only sorting by name or creationTimestamp desc is
27777// supported.
27778func (c *BackendServicesAggregatedListCall) OrderBy(orderBy string) *BackendServicesAggregatedListCall {
27779	c.urlParams_.Set("orderBy", orderBy)
27780	return c
27781}
27782
27783// PageToken sets the optional parameter "pageToken": Specifies a page
27784// token to use. Set pageToken to the nextPageToken returned by a
27785// previous list request to get the next page of results.
27786func (c *BackendServicesAggregatedListCall) PageToken(pageToken string) *BackendServicesAggregatedListCall {
27787	c.urlParams_.Set("pageToken", pageToken)
27788	return c
27789}
27790
27791// Fields allows partial responses to be retrieved. See
27792// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27793// for more information.
27794func (c *BackendServicesAggregatedListCall) Fields(s ...googleapi.Field) *BackendServicesAggregatedListCall {
27795	c.urlParams_.Set("fields", googleapi.CombineFields(s))
27796	return c
27797}
27798
27799// IfNoneMatch sets the optional parameter which makes the operation
27800// fail if the object's ETag matches the given value. This is useful for
27801// getting updates only after the object has changed since the last
27802// request. Use googleapi.IsNotModified to check whether the response
27803// error from Do is the result of In-None-Match.
27804func (c *BackendServicesAggregatedListCall) IfNoneMatch(entityTag string) *BackendServicesAggregatedListCall {
27805	c.ifNoneMatch_ = entityTag
27806	return c
27807}
27808
27809// Context sets the context to be used in this call's Do method. Any
27810// pending HTTP request will be aborted if the provided context is
27811// canceled.
27812func (c *BackendServicesAggregatedListCall) Context(ctx context.Context) *BackendServicesAggregatedListCall {
27813	c.ctx_ = ctx
27814	return c
27815}
27816
27817// Header returns an http.Header that can be modified by the caller to
27818// add HTTP headers to the request.
27819func (c *BackendServicesAggregatedListCall) Header() http.Header {
27820	if c.header_ == nil {
27821		c.header_ = make(http.Header)
27822	}
27823	return c.header_
27824}
27825
27826func (c *BackendServicesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
27827	reqHeaders := make(http.Header)
27828	for k, v := range c.header_ {
27829		reqHeaders[k] = v
27830	}
27831	reqHeaders.Set("User-Agent", c.s.userAgent())
27832	if c.ifNoneMatch_ != "" {
27833		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
27834	}
27835	var body io.Reader = nil
27836	c.urlParams_.Set("alt", alt)
27837	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/backendServices")
27838	urls += "?" + c.urlParams_.Encode()
27839	req, _ := http.NewRequest("GET", urls, body)
27840	req.Header = reqHeaders
27841	googleapi.Expand(req.URL, map[string]string{
27842		"project": c.project,
27843	})
27844	return gensupport.SendRequest(c.ctx_, c.s.client, req)
27845}
27846
27847// Do executes the "compute.backendServices.aggregatedList" call.
27848// Exactly one of *BackendServiceAggregatedList or error will be
27849// non-nil. Any non-2xx status code is an error. Response headers are in
27850// either *BackendServiceAggregatedList.ServerResponse.Header or (if a
27851// response was returned at all) in error.(*googleapi.Error).Header. Use
27852// googleapi.IsNotModified to check whether the returned error was
27853// because http.StatusNotModified was returned.
27854func (c *BackendServicesAggregatedListCall) Do(opts ...googleapi.CallOption) (*BackendServiceAggregatedList, error) {
27855	gensupport.SetOptions(c.urlParams_, opts...)
27856	res, err := c.doRequest("json")
27857	if res != nil && res.StatusCode == http.StatusNotModified {
27858		if res.Body != nil {
27859			res.Body.Close()
27860		}
27861		return nil, &googleapi.Error{
27862			Code:   res.StatusCode,
27863			Header: res.Header,
27864		}
27865	}
27866	if err != nil {
27867		return nil, err
27868	}
27869	defer googleapi.CloseBody(res)
27870	if err := googleapi.CheckResponse(res); err != nil {
27871		return nil, err
27872	}
27873	ret := &BackendServiceAggregatedList{
27874		ServerResponse: googleapi.ServerResponse{
27875			Header:         res.Header,
27876			HTTPStatusCode: res.StatusCode,
27877		},
27878	}
27879	target := &ret
27880	if err := gensupport.DecodeResponse(target, res); err != nil {
27881		return nil, err
27882	}
27883	return ret, nil
27884	// {
27885	//   "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project.",
27886	//   "httpMethod": "GET",
27887	//   "id": "compute.backendServices.aggregatedList",
27888	//   "parameterOrder": [
27889	//     "project"
27890	//   ],
27891	//   "parameters": {
27892	//     "filter": {
27893	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
27894	//       "location": "query",
27895	//       "type": "string"
27896	//     },
27897	//     "maxResults": {
27898	//       "default": "500",
27899	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
27900	//       "format": "uint32",
27901	//       "location": "query",
27902	//       "minimum": "0",
27903	//       "type": "integer"
27904	//     },
27905	//     "orderBy": {
27906	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
27907	//       "location": "query",
27908	//       "type": "string"
27909	//     },
27910	//     "pageToken": {
27911	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
27912	//       "location": "query",
27913	//       "type": "string"
27914	//     },
27915	//     "project": {
27916	//       "description": "Name of the project scoping this request.",
27917	//       "location": "path",
27918	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
27919	//       "required": true,
27920	//       "type": "string"
27921	//     }
27922	//   },
27923	//   "path": "{project}/aggregated/backendServices",
27924	//   "response": {
27925	//     "$ref": "BackendServiceAggregatedList"
27926	//   },
27927	//   "scopes": [
27928	//     "https://www.googleapis.com/auth/cloud-platform",
27929	//     "https://www.googleapis.com/auth/compute",
27930	//     "https://www.googleapis.com/auth/compute.readonly"
27931	//   ]
27932	// }
27933
27934}
27935
27936// Pages invokes f for each page of results.
27937// A non-nil error returned from f will halt the iteration.
27938// The provided context supersedes any context provided to the Context method.
27939func (c *BackendServicesAggregatedListCall) Pages(ctx context.Context, f func(*BackendServiceAggregatedList) error) error {
27940	c.ctx_ = ctx
27941	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
27942	for {
27943		x, err := c.Do()
27944		if err != nil {
27945			return err
27946		}
27947		if err := f(x); err != nil {
27948			return err
27949		}
27950		if x.NextPageToken == "" {
27951			return nil
27952		}
27953		c.PageToken(x.NextPageToken)
27954	}
27955}
27956
27957// method id "compute.backendServices.delete":
27958
27959type BackendServicesDeleteCall struct {
27960	s              *Service
27961	project        string
27962	backendService string
27963	urlParams_     gensupport.URLParams
27964	ctx_           context.Context
27965	header_        http.Header
27966}
27967
27968// Delete: Deletes the specified BackendService resource.
27969// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/delete
27970func (r *BackendServicesService) Delete(project string, backendService string) *BackendServicesDeleteCall {
27971	c := &BackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
27972	c.project = project
27973	c.backendService = backendService
27974	return c
27975}
27976
27977// RequestId sets the optional parameter "requestId": An optional
27978// request ID to identify requests. Specify a unique request ID so that
27979// if you must retry your request, the server will know to ignore the
27980// request if it has already been completed.
27981//
27982// For example, consider a situation where you make an initial request
27983// and the request times out. If you make the request again with the
27984// same request ID, the server can check if original operation with the
27985// same request ID was received, and if so, will ignore the second
27986// request. This prevents clients from accidentally creating duplicate
27987// commitments.
27988//
27989// The request ID must be a valid UUID with the exception that zero UUID
27990// is not supported (00000000-0000-0000-0000-000000000000).
27991func (c *BackendServicesDeleteCall) RequestId(requestId string) *BackendServicesDeleteCall {
27992	c.urlParams_.Set("requestId", requestId)
27993	return c
27994}
27995
27996// Fields allows partial responses to be retrieved. See
27997// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
27998// for more information.
27999func (c *BackendServicesDeleteCall) Fields(s ...googleapi.Field) *BackendServicesDeleteCall {
28000	c.urlParams_.Set("fields", googleapi.CombineFields(s))
28001	return c
28002}
28003
28004// Context sets the context to be used in this call's Do method. Any
28005// pending HTTP request will be aborted if the provided context is
28006// canceled.
28007func (c *BackendServicesDeleteCall) Context(ctx context.Context) *BackendServicesDeleteCall {
28008	c.ctx_ = ctx
28009	return c
28010}
28011
28012// Header returns an http.Header that can be modified by the caller to
28013// add HTTP headers to the request.
28014func (c *BackendServicesDeleteCall) Header() http.Header {
28015	if c.header_ == nil {
28016		c.header_ = make(http.Header)
28017	}
28018	return c.header_
28019}
28020
28021func (c *BackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
28022	reqHeaders := make(http.Header)
28023	for k, v := range c.header_ {
28024		reqHeaders[k] = v
28025	}
28026	reqHeaders.Set("User-Agent", c.s.userAgent())
28027	var body io.Reader = nil
28028	c.urlParams_.Set("alt", alt)
28029	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
28030	urls += "?" + c.urlParams_.Encode()
28031	req, _ := http.NewRequest("DELETE", urls, body)
28032	req.Header = reqHeaders
28033	googleapi.Expand(req.URL, map[string]string{
28034		"project":        c.project,
28035		"backendService": c.backendService,
28036	})
28037	return gensupport.SendRequest(c.ctx_, c.s.client, req)
28038}
28039
28040// Do executes the "compute.backendServices.delete" call.
28041// Exactly one of *Operation or error will be non-nil. Any non-2xx
28042// status code is an error. Response headers are in either
28043// *Operation.ServerResponse.Header or (if a response was returned at
28044// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
28045// to check whether the returned error was because
28046// http.StatusNotModified was returned.
28047func (c *BackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
28048	gensupport.SetOptions(c.urlParams_, opts...)
28049	res, err := c.doRequest("json")
28050	if res != nil && res.StatusCode == http.StatusNotModified {
28051		if res.Body != nil {
28052			res.Body.Close()
28053		}
28054		return nil, &googleapi.Error{
28055			Code:   res.StatusCode,
28056			Header: res.Header,
28057		}
28058	}
28059	if err != nil {
28060		return nil, err
28061	}
28062	defer googleapi.CloseBody(res)
28063	if err := googleapi.CheckResponse(res); err != nil {
28064		return nil, err
28065	}
28066	ret := &Operation{
28067		ServerResponse: googleapi.ServerResponse{
28068			Header:         res.Header,
28069			HTTPStatusCode: res.StatusCode,
28070		},
28071	}
28072	target := &ret
28073	if err := gensupport.DecodeResponse(target, res); err != nil {
28074		return nil, err
28075	}
28076	return ret, nil
28077	// {
28078	//   "description": "Deletes the specified BackendService resource.",
28079	//   "httpMethod": "DELETE",
28080	//   "id": "compute.backendServices.delete",
28081	//   "parameterOrder": [
28082	//     "project",
28083	//     "backendService"
28084	//   ],
28085	//   "parameters": {
28086	//     "backendService": {
28087	//       "description": "Name of the BackendService resource to delete.",
28088	//       "location": "path",
28089	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
28090	//       "required": true,
28091	//       "type": "string"
28092	//     },
28093	//     "project": {
28094	//       "description": "Project ID for this request.",
28095	//       "location": "path",
28096	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
28097	//       "required": true,
28098	//       "type": "string"
28099	//     },
28100	//     "requestId": {
28101	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
28102	//       "location": "query",
28103	//       "type": "string"
28104	//     }
28105	//   },
28106	//   "path": "{project}/global/backendServices/{backendService}",
28107	//   "response": {
28108	//     "$ref": "Operation"
28109	//   },
28110	//   "scopes": [
28111	//     "https://www.googleapis.com/auth/cloud-platform",
28112	//     "https://www.googleapis.com/auth/compute"
28113	//   ]
28114	// }
28115
28116}
28117
28118// method id "compute.backendServices.get":
28119
28120type BackendServicesGetCall struct {
28121	s              *Service
28122	project        string
28123	backendService string
28124	urlParams_     gensupport.URLParams
28125	ifNoneMatch_   string
28126	ctx_           context.Context
28127	header_        http.Header
28128}
28129
28130// Get: Returns the specified BackendService resource. Get a list of
28131// available backend services by making a list() request.
28132// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/get
28133func (r *BackendServicesService) Get(project string, backendService string) *BackendServicesGetCall {
28134	c := &BackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
28135	c.project = project
28136	c.backendService = backendService
28137	return c
28138}
28139
28140// Fields allows partial responses to be retrieved. See
28141// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
28142// for more information.
28143func (c *BackendServicesGetCall) Fields(s ...googleapi.Field) *BackendServicesGetCall {
28144	c.urlParams_.Set("fields", googleapi.CombineFields(s))
28145	return c
28146}
28147
28148// IfNoneMatch sets the optional parameter which makes the operation
28149// fail if the object's ETag matches the given value. This is useful for
28150// getting updates only after the object has changed since the last
28151// request. Use googleapi.IsNotModified to check whether the response
28152// error from Do is the result of In-None-Match.
28153func (c *BackendServicesGetCall) IfNoneMatch(entityTag string) *BackendServicesGetCall {
28154	c.ifNoneMatch_ = entityTag
28155	return c
28156}
28157
28158// Context sets the context to be used in this call's Do method. Any
28159// pending HTTP request will be aborted if the provided context is
28160// canceled.
28161func (c *BackendServicesGetCall) Context(ctx context.Context) *BackendServicesGetCall {
28162	c.ctx_ = ctx
28163	return c
28164}
28165
28166// Header returns an http.Header that can be modified by the caller to
28167// add HTTP headers to the request.
28168func (c *BackendServicesGetCall) Header() http.Header {
28169	if c.header_ == nil {
28170		c.header_ = make(http.Header)
28171	}
28172	return c.header_
28173}
28174
28175func (c *BackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
28176	reqHeaders := make(http.Header)
28177	for k, v := range c.header_ {
28178		reqHeaders[k] = v
28179	}
28180	reqHeaders.Set("User-Agent", c.s.userAgent())
28181	if c.ifNoneMatch_ != "" {
28182		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
28183	}
28184	var body io.Reader = nil
28185	c.urlParams_.Set("alt", alt)
28186	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
28187	urls += "?" + c.urlParams_.Encode()
28188	req, _ := http.NewRequest("GET", urls, body)
28189	req.Header = reqHeaders
28190	googleapi.Expand(req.URL, map[string]string{
28191		"project":        c.project,
28192		"backendService": c.backendService,
28193	})
28194	return gensupport.SendRequest(c.ctx_, c.s.client, req)
28195}
28196
28197// Do executes the "compute.backendServices.get" call.
28198// Exactly one of *BackendService or error will be non-nil. Any non-2xx
28199// status code is an error. Response headers are in either
28200// *BackendService.ServerResponse.Header or (if a response was returned
28201// at all) in error.(*googleapi.Error).Header. Use
28202// googleapi.IsNotModified to check whether the returned error was
28203// because http.StatusNotModified was returned.
28204func (c *BackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
28205	gensupport.SetOptions(c.urlParams_, opts...)
28206	res, err := c.doRequest("json")
28207	if res != nil && res.StatusCode == http.StatusNotModified {
28208		if res.Body != nil {
28209			res.Body.Close()
28210		}
28211		return nil, &googleapi.Error{
28212			Code:   res.StatusCode,
28213			Header: res.Header,
28214		}
28215	}
28216	if err != nil {
28217		return nil, err
28218	}
28219	defer googleapi.CloseBody(res)
28220	if err := googleapi.CheckResponse(res); err != nil {
28221		return nil, err
28222	}
28223	ret := &BackendService{
28224		ServerResponse: googleapi.ServerResponse{
28225			Header:         res.Header,
28226			HTTPStatusCode: res.StatusCode,
28227		},
28228	}
28229	target := &ret
28230	if err := gensupport.DecodeResponse(target, res); err != nil {
28231		return nil, err
28232	}
28233	return ret, nil
28234	// {
28235	//   "description": "Returns the specified BackendService resource. Get a list of available backend services by making a list() request.",
28236	//   "httpMethod": "GET",
28237	//   "id": "compute.backendServices.get",
28238	//   "parameterOrder": [
28239	//     "project",
28240	//     "backendService"
28241	//   ],
28242	//   "parameters": {
28243	//     "backendService": {
28244	//       "description": "Name of the BackendService resource to return.",
28245	//       "location": "path",
28246	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
28247	//       "required": true,
28248	//       "type": "string"
28249	//     },
28250	//     "project": {
28251	//       "description": "Project ID for this request.",
28252	//       "location": "path",
28253	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
28254	//       "required": true,
28255	//       "type": "string"
28256	//     }
28257	//   },
28258	//   "path": "{project}/global/backendServices/{backendService}",
28259	//   "response": {
28260	//     "$ref": "BackendService"
28261	//   },
28262	//   "scopes": [
28263	//     "https://www.googleapis.com/auth/cloud-platform",
28264	//     "https://www.googleapis.com/auth/compute",
28265	//     "https://www.googleapis.com/auth/compute.readonly"
28266	//   ]
28267	// }
28268
28269}
28270
28271// method id "compute.backendServices.getHealth":
28272
28273type BackendServicesGetHealthCall struct {
28274	s                      *Service
28275	project                string
28276	backendService         string
28277	resourcegroupreference *ResourceGroupReference
28278	urlParams_             gensupport.URLParams
28279	ctx_                   context.Context
28280	header_                http.Header
28281}
28282
28283// GetHealth: Gets the most recent health check results for this
28284// BackendService.
28285// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/getHealth
28286func (r *BackendServicesService) GetHealth(project string, backendService string, resourcegroupreference *ResourceGroupReference) *BackendServicesGetHealthCall {
28287	c := &BackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
28288	c.project = project
28289	c.backendService = backendService
28290	c.resourcegroupreference = resourcegroupreference
28291	return c
28292}
28293
28294// Fields allows partial responses to be retrieved. See
28295// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
28296// for more information.
28297func (c *BackendServicesGetHealthCall) Fields(s ...googleapi.Field) *BackendServicesGetHealthCall {
28298	c.urlParams_.Set("fields", googleapi.CombineFields(s))
28299	return c
28300}
28301
28302// Context sets the context to be used in this call's Do method. Any
28303// pending HTTP request will be aborted if the provided context is
28304// canceled.
28305func (c *BackendServicesGetHealthCall) Context(ctx context.Context) *BackendServicesGetHealthCall {
28306	c.ctx_ = ctx
28307	return c
28308}
28309
28310// Header returns an http.Header that can be modified by the caller to
28311// add HTTP headers to the request.
28312func (c *BackendServicesGetHealthCall) Header() http.Header {
28313	if c.header_ == nil {
28314		c.header_ = make(http.Header)
28315	}
28316	return c.header_
28317}
28318
28319func (c *BackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
28320	reqHeaders := make(http.Header)
28321	for k, v := range c.header_ {
28322		reqHeaders[k] = v
28323	}
28324	reqHeaders.Set("User-Agent", c.s.userAgent())
28325	var body io.Reader = nil
28326	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
28327	if err != nil {
28328		return nil, err
28329	}
28330	reqHeaders.Set("Content-Type", "application/json")
28331	c.urlParams_.Set("alt", alt)
28332	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/getHealth")
28333	urls += "?" + c.urlParams_.Encode()
28334	req, _ := http.NewRequest("POST", urls, body)
28335	req.Header = reqHeaders
28336	googleapi.Expand(req.URL, map[string]string{
28337		"project":        c.project,
28338		"backendService": c.backendService,
28339	})
28340	return gensupport.SendRequest(c.ctx_, c.s.client, req)
28341}
28342
28343// Do executes the "compute.backendServices.getHealth" call.
28344// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
28345// Any non-2xx status code is an error. Response headers are in either
28346// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
28347// was returned at all) in error.(*googleapi.Error).Header. Use
28348// googleapi.IsNotModified to check whether the returned error was
28349// because http.StatusNotModified was returned.
28350func (c *BackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
28351	gensupport.SetOptions(c.urlParams_, opts...)
28352	res, err := c.doRequest("json")
28353	if res != nil && res.StatusCode == http.StatusNotModified {
28354		if res.Body != nil {
28355			res.Body.Close()
28356		}
28357		return nil, &googleapi.Error{
28358			Code:   res.StatusCode,
28359			Header: res.Header,
28360		}
28361	}
28362	if err != nil {
28363		return nil, err
28364	}
28365	defer googleapi.CloseBody(res)
28366	if err := googleapi.CheckResponse(res); err != nil {
28367		return nil, err
28368	}
28369	ret := &BackendServiceGroupHealth{
28370		ServerResponse: googleapi.ServerResponse{
28371			Header:         res.Header,
28372			HTTPStatusCode: res.StatusCode,
28373		},
28374	}
28375	target := &ret
28376	if err := gensupport.DecodeResponse(target, res); err != nil {
28377		return nil, err
28378	}
28379	return ret, nil
28380	// {
28381	//   "description": "Gets the most recent health check results for this BackendService.",
28382	//   "httpMethod": "POST",
28383	//   "id": "compute.backendServices.getHealth",
28384	//   "parameterOrder": [
28385	//     "project",
28386	//     "backendService"
28387	//   ],
28388	//   "parameters": {
28389	//     "backendService": {
28390	//       "description": "Name of the BackendService resource to which the queried instance belongs.",
28391	//       "location": "path",
28392	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
28393	//       "required": true,
28394	//       "type": "string"
28395	//     },
28396	//     "project": {
28397	//       "location": "path",
28398	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
28399	//       "required": true,
28400	//       "type": "string"
28401	//     }
28402	//   },
28403	//   "path": "{project}/global/backendServices/{backendService}/getHealth",
28404	//   "request": {
28405	//     "$ref": "ResourceGroupReference"
28406	//   },
28407	//   "response": {
28408	//     "$ref": "BackendServiceGroupHealth"
28409	//   },
28410	//   "scopes": [
28411	//     "https://www.googleapis.com/auth/cloud-platform",
28412	//     "https://www.googleapis.com/auth/compute",
28413	//     "https://www.googleapis.com/auth/compute.readonly"
28414	//   ]
28415	// }
28416
28417}
28418
28419// method id "compute.backendServices.insert":
28420
28421type BackendServicesInsertCall struct {
28422	s              *Service
28423	project        string
28424	backendservice *BackendService
28425	urlParams_     gensupport.URLParams
28426	ctx_           context.Context
28427	header_        http.Header
28428}
28429
28430// Insert: Creates a BackendService resource in the specified project
28431// using the data included in the request. There are several
28432// restrictions and guidelines to keep in mind when creating a backend
28433// service. Read  Restrictions and Guidelines for more information.
28434// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/insert
28435func (r *BackendServicesService) Insert(project string, backendservice *BackendService) *BackendServicesInsertCall {
28436	c := &BackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
28437	c.project = project
28438	c.backendservice = backendservice
28439	return c
28440}
28441
28442// RequestId sets the optional parameter "requestId": An optional
28443// request ID to identify requests. Specify a unique request ID so that
28444// if you must retry your request, the server will know to ignore the
28445// request if it has already been completed.
28446//
28447// For example, consider a situation where you make an initial request
28448// and the request times out. If you make the request again with the
28449// same request ID, the server can check if original operation with the
28450// same request ID was received, and if so, will ignore the second
28451// request. This prevents clients from accidentally creating duplicate
28452// commitments.
28453//
28454// The request ID must be a valid UUID with the exception that zero UUID
28455// is not supported (00000000-0000-0000-0000-000000000000).
28456func (c *BackendServicesInsertCall) RequestId(requestId string) *BackendServicesInsertCall {
28457	c.urlParams_.Set("requestId", requestId)
28458	return c
28459}
28460
28461// Fields allows partial responses to be retrieved. See
28462// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
28463// for more information.
28464func (c *BackendServicesInsertCall) Fields(s ...googleapi.Field) *BackendServicesInsertCall {
28465	c.urlParams_.Set("fields", googleapi.CombineFields(s))
28466	return c
28467}
28468
28469// Context sets the context to be used in this call's Do method. Any
28470// pending HTTP request will be aborted if the provided context is
28471// canceled.
28472func (c *BackendServicesInsertCall) Context(ctx context.Context) *BackendServicesInsertCall {
28473	c.ctx_ = ctx
28474	return c
28475}
28476
28477// Header returns an http.Header that can be modified by the caller to
28478// add HTTP headers to the request.
28479func (c *BackendServicesInsertCall) Header() http.Header {
28480	if c.header_ == nil {
28481		c.header_ = make(http.Header)
28482	}
28483	return c.header_
28484}
28485
28486func (c *BackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
28487	reqHeaders := make(http.Header)
28488	for k, v := range c.header_ {
28489		reqHeaders[k] = v
28490	}
28491	reqHeaders.Set("User-Agent", c.s.userAgent())
28492	var body io.Reader = nil
28493	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
28494	if err != nil {
28495		return nil, err
28496	}
28497	reqHeaders.Set("Content-Type", "application/json")
28498	c.urlParams_.Set("alt", alt)
28499	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices")
28500	urls += "?" + c.urlParams_.Encode()
28501	req, _ := http.NewRequest("POST", urls, body)
28502	req.Header = reqHeaders
28503	googleapi.Expand(req.URL, map[string]string{
28504		"project": c.project,
28505	})
28506	return gensupport.SendRequest(c.ctx_, c.s.client, req)
28507}
28508
28509// Do executes the "compute.backendServices.insert" call.
28510// Exactly one of *Operation or error will be non-nil. Any non-2xx
28511// status code is an error. Response headers are in either
28512// *Operation.ServerResponse.Header or (if a response was returned at
28513// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
28514// to check whether the returned error was because
28515// http.StatusNotModified was returned.
28516func (c *BackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
28517	gensupport.SetOptions(c.urlParams_, opts...)
28518	res, err := c.doRequest("json")
28519	if res != nil && res.StatusCode == http.StatusNotModified {
28520		if res.Body != nil {
28521			res.Body.Close()
28522		}
28523		return nil, &googleapi.Error{
28524			Code:   res.StatusCode,
28525			Header: res.Header,
28526		}
28527	}
28528	if err != nil {
28529		return nil, err
28530	}
28531	defer googleapi.CloseBody(res)
28532	if err := googleapi.CheckResponse(res); err != nil {
28533		return nil, err
28534	}
28535	ret := &Operation{
28536		ServerResponse: googleapi.ServerResponse{
28537			Header:         res.Header,
28538			HTTPStatusCode: res.StatusCode,
28539		},
28540	}
28541	target := &ret
28542	if err := gensupport.DecodeResponse(target, res); err != nil {
28543		return nil, err
28544	}
28545	return ret, nil
28546	// {
28547	//   "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.",
28548	//   "httpMethod": "POST",
28549	//   "id": "compute.backendServices.insert",
28550	//   "parameterOrder": [
28551	//     "project"
28552	//   ],
28553	//   "parameters": {
28554	//     "project": {
28555	//       "description": "Project ID for this request.",
28556	//       "location": "path",
28557	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
28558	//       "required": true,
28559	//       "type": "string"
28560	//     },
28561	//     "requestId": {
28562	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
28563	//       "location": "query",
28564	//       "type": "string"
28565	//     }
28566	//   },
28567	//   "path": "{project}/global/backendServices",
28568	//   "request": {
28569	//     "$ref": "BackendService"
28570	//   },
28571	//   "response": {
28572	//     "$ref": "Operation"
28573	//   },
28574	//   "scopes": [
28575	//     "https://www.googleapis.com/auth/cloud-platform",
28576	//     "https://www.googleapis.com/auth/compute"
28577	//   ]
28578	// }
28579
28580}
28581
28582// method id "compute.backendServices.list":
28583
28584type BackendServicesListCall struct {
28585	s            *Service
28586	project      string
28587	urlParams_   gensupport.URLParams
28588	ifNoneMatch_ string
28589	ctx_         context.Context
28590	header_      http.Header
28591}
28592
28593// List: Retrieves the list of BackendService resources available to the
28594// specified project.
28595// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/list
28596func (r *BackendServicesService) List(project string) *BackendServicesListCall {
28597	c := &BackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
28598	c.project = project
28599	return c
28600}
28601
28602// Filter sets the optional parameter "filter": Sets a filter
28603// {expression} for filtering listed resources. Your {expression} must
28604// be in the format: field_name comparison_string literal_string.
28605//
28606// The field_name is the name of the field you want to compare. Only
28607// atomic field types are supported (string, number, boolean). The
28608// comparison_string must be either eq (equals) or ne (not equals). The
28609// literal_string is the string value to filter to. The literal value
28610// must be valid for the type of field you are filtering by (string,
28611// number, boolean). For string fields, the literal value is interpreted
28612// as a regular expression using RE2 syntax. The literal value must
28613// match the entire field.
28614//
28615// For example, to filter for instances that do not have a name of
28616// example-instance, you would use name ne example-instance.
28617//
28618// You can filter on nested fields. For example, you could filter on
28619// instances that have set the scheduling.automaticRestart field to
28620// true. Use filtering on nested fields to take advantage of labels to
28621// organize and search for results based on label values.
28622//
28623// To filter on multiple expressions, provide each separate expression
28624// within parentheses. For example, (scheduling.automaticRestart eq
28625// true) (zone eq us-central1-f). Multiple expressions are treated as
28626// AND expressions, meaning that resources must match all expressions to
28627// pass the filters.
28628func (c *BackendServicesListCall) Filter(filter string) *BackendServicesListCall {
28629	c.urlParams_.Set("filter", filter)
28630	return c
28631}
28632
28633// MaxResults sets the optional parameter "maxResults": The maximum
28634// number of results per page that should be returned. If the number of
28635// available results is larger than maxResults, Compute Engine returns a
28636// nextPageToken that can be used to get the next page of results in
28637// subsequent list requests. Acceptable values are 0 to 500, inclusive.
28638// (Default: 500)
28639func (c *BackendServicesListCall) MaxResults(maxResults int64) *BackendServicesListCall {
28640	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
28641	return c
28642}
28643
28644// OrderBy sets the optional parameter "orderBy": Sorts list results by
28645// a certain order. By default, results are returned in alphanumerical
28646// order based on the resource name.
28647//
28648// You can also sort results in descending order based on the creation
28649// timestamp using orderBy="creationTimestamp desc". This sorts results
28650// based on the creationTimestamp field in reverse chronological order
28651// (newest result first). Use this to sort resources like operations so
28652// that the newest operation is returned first.
28653//
28654// Currently, only sorting by name or creationTimestamp desc is
28655// supported.
28656func (c *BackendServicesListCall) OrderBy(orderBy string) *BackendServicesListCall {
28657	c.urlParams_.Set("orderBy", orderBy)
28658	return c
28659}
28660
28661// PageToken sets the optional parameter "pageToken": Specifies a page
28662// token to use. Set pageToken to the nextPageToken returned by a
28663// previous list request to get the next page of results.
28664func (c *BackendServicesListCall) PageToken(pageToken string) *BackendServicesListCall {
28665	c.urlParams_.Set("pageToken", pageToken)
28666	return c
28667}
28668
28669// Fields allows partial responses to be retrieved. See
28670// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
28671// for more information.
28672func (c *BackendServicesListCall) Fields(s ...googleapi.Field) *BackendServicesListCall {
28673	c.urlParams_.Set("fields", googleapi.CombineFields(s))
28674	return c
28675}
28676
28677// IfNoneMatch sets the optional parameter which makes the operation
28678// fail if the object's ETag matches the given value. This is useful for
28679// getting updates only after the object has changed since the last
28680// request. Use googleapi.IsNotModified to check whether the response
28681// error from Do is the result of In-None-Match.
28682func (c *BackendServicesListCall) IfNoneMatch(entityTag string) *BackendServicesListCall {
28683	c.ifNoneMatch_ = entityTag
28684	return c
28685}
28686
28687// Context sets the context to be used in this call's Do method. Any
28688// pending HTTP request will be aborted if the provided context is
28689// canceled.
28690func (c *BackendServicesListCall) Context(ctx context.Context) *BackendServicesListCall {
28691	c.ctx_ = ctx
28692	return c
28693}
28694
28695// Header returns an http.Header that can be modified by the caller to
28696// add HTTP headers to the request.
28697func (c *BackendServicesListCall) Header() http.Header {
28698	if c.header_ == nil {
28699		c.header_ = make(http.Header)
28700	}
28701	return c.header_
28702}
28703
28704func (c *BackendServicesListCall) doRequest(alt string) (*http.Response, error) {
28705	reqHeaders := make(http.Header)
28706	for k, v := range c.header_ {
28707		reqHeaders[k] = v
28708	}
28709	reqHeaders.Set("User-Agent", c.s.userAgent())
28710	if c.ifNoneMatch_ != "" {
28711		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
28712	}
28713	var body io.Reader = nil
28714	c.urlParams_.Set("alt", alt)
28715	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices")
28716	urls += "?" + c.urlParams_.Encode()
28717	req, _ := http.NewRequest("GET", urls, body)
28718	req.Header = reqHeaders
28719	googleapi.Expand(req.URL, map[string]string{
28720		"project": c.project,
28721	})
28722	return gensupport.SendRequest(c.ctx_, c.s.client, req)
28723}
28724
28725// Do executes the "compute.backendServices.list" call.
28726// Exactly one of *BackendServiceList or error will be non-nil. Any
28727// non-2xx status code is an error. Response headers are in either
28728// *BackendServiceList.ServerResponse.Header or (if a response was
28729// returned at all) in error.(*googleapi.Error).Header. Use
28730// googleapi.IsNotModified to check whether the returned error was
28731// because http.StatusNotModified was returned.
28732func (c *BackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
28733	gensupport.SetOptions(c.urlParams_, opts...)
28734	res, err := c.doRequest("json")
28735	if res != nil && res.StatusCode == http.StatusNotModified {
28736		if res.Body != nil {
28737			res.Body.Close()
28738		}
28739		return nil, &googleapi.Error{
28740			Code:   res.StatusCode,
28741			Header: res.Header,
28742		}
28743	}
28744	if err != nil {
28745		return nil, err
28746	}
28747	defer googleapi.CloseBody(res)
28748	if err := googleapi.CheckResponse(res); err != nil {
28749		return nil, err
28750	}
28751	ret := &BackendServiceList{
28752		ServerResponse: googleapi.ServerResponse{
28753			Header:         res.Header,
28754			HTTPStatusCode: res.StatusCode,
28755		},
28756	}
28757	target := &ret
28758	if err := gensupport.DecodeResponse(target, res); err != nil {
28759		return nil, err
28760	}
28761	return ret, nil
28762	// {
28763	//   "description": "Retrieves the list of BackendService resources available to the specified project.",
28764	//   "httpMethod": "GET",
28765	//   "id": "compute.backendServices.list",
28766	//   "parameterOrder": [
28767	//     "project"
28768	//   ],
28769	//   "parameters": {
28770	//     "filter": {
28771	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
28772	//       "location": "query",
28773	//       "type": "string"
28774	//     },
28775	//     "maxResults": {
28776	//       "default": "500",
28777	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
28778	//       "format": "uint32",
28779	//       "location": "query",
28780	//       "minimum": "0",
28781	//       "type": "integer"
28782	//     },
28783	//     "orderBy": {
28784	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
28785	//       "location": "query",
28786	//       "type": "string"
28787	//     },
28788	//     "pageToken": {
28789	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
28790	//       "location": "query",
28791	//       "type": "string"
28792	//     },
28793	//     "project": {
28794	//       "description": "Project ID for this request.",
28795	//       "location": "path",
28796	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
28797	//       "required": true,
28798	//       "type": "string"
28799	//     }
28800	//   },
28801	//   "path": "{project}/global/backendServices",
28802	//   "response": {
28803	//     "$ref": "BackendServiceList"
28804	//   },
28805	//   "scopes": [
28806	//     "https://www.googleapis.com/auth/cloud-platform",
28807	//     "https://www.googleapis.com/auth/compute",
28808	//     "https://www.googleapis.com/auth/compute.readonly"
28809	//   ]
28810	// }
28811
28812}
28813
28814// Pages invokes f for each page of results.
28815// A non-nil error returned from f will halt the iteration.
28816// The provided context supersedes any context provided to the Context method.
28817func (c *BackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
28818	c.ctx_ = ctx
28819	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
28820	for {
28821		x, err := c.Do()
28822		if err != nil {
28823			return err
28824		}
28825		if err := f(x); err != nil {
28826			return err
28827		}
28828		if x.NextPageToken == "" {
28829			return nil
28830		}
28831		c.PageToken(x.NextPageToken)
28832	}
28833}
28834
28835// method id "compute.backendServices.patch":
28836
28837type BackendServicesPatchCall struct {
28838	s              *Service
28839	project        string
28840	backendService string
28841	backendservice *BackendService
28842	urlParams_     gensupport.URLParams
28843	ctx_           context.Context
28844	header_        http.Header
28845}
28846
28847// Patch: Patches the specified BackendService resource with the data
28848// included in the request. There are several restrictions and
28849// guidelines to keep in mind when updating a backend service. Read
28850// Restrictions and Guidelines for more information. This method
28851// supports PATCH semantics and uses the JSON merge patch format and
28852// processing rules.
28853// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/patch
28854func (r *BackendServicesService) Patch(project string, backendService string, backendservice *BackendService) *BackendServicesPatchCall {
28855	c := &BackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
28856	c.project = project
28857	c.backendService = backendService
28858	c.backendservice = backendservice
28859	return c
28860}
28861
28862// RequestId sets the optional parameter "requestId": An optional
28863// request ID to identify requests. Specify a unique request ID so that
28864// if you must retry your request, the server will know to ignore the
28865// request if it has already been completed.
28866//
28867// For example, consider a situation where you make an initial request
28868// and the request times out. If you make the request again with the
28869// same request ID, the server can check if original operation with the
28870// same request ID was received, and if so, will ignore the second
28871// request. This prevents clients from accidentally creating duplicate
28872// commitments.
28873//
28874// The request ID must be a valid UUID with the exception that zero UUID
28875// is not supported (00000000-0000-0000-0000-000000000000).
28876func (c *BackendServicesPatchCall) RequestId(requestId string) *BackendServicesPatchCall {
28877	c.urlParams_.Set("requestId", requestId)
28878	return c
28879}
28880
28881// Fields allows partial responses to be retrieved. See
28882// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
28883// for more information.
28884func (c *BackendServicesPatchCall) Fields(s ...googleapi.Field) *BackendServicesPatchCall {
28885	c.urlParams_.Set("fields", googleapi.CombineFields(s))
28886	return c
28887}
28888
28889// Context sets the context to be used in this call's Do method. Any
28890// pending HTTP request will be aborted if the provided context is
28891// canceled.
28892func (c *BackendServicesPatchCall) Context(ctx context.Context) *BackendServicesPatchCall {
28893	c.ctx_ = ctx
28894	return c
28895}
28896
28897// Header returns an http.Header that can be modified by the caller to
28898// add HTTP headers to the request.
28899func (c *BackendServicesPatchCall) Header() http.Header {
28900	if c.header_ == nil {
28901		c.header_ = make(http.Header)
28902	}
28903	return c.header_
28904}
28905
28906func (c *BackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
28907	reqHeaders := make(http.Header)
28908	for k, v := range c.header_ {
28909		reqHeaders[k] = v
28910	}
28911	reqHeaders.Set("User-Agent", c.s.userAgent())
28912	var body io.Reader = nil
28913	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
28914	if err != nil {
28915		return nil, err
28916	}
28917	reqHeaders.Set("Content-Type", "application/json")
28918	c.urlParams_.Set("alt", alt)
28919	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
28920	urls += "?" + c.urlParams_.Encode()
28921	req, _ := http.NewRequest("PATCH", urls, body)
28922	req.Header = reqHeaders
28923	googleapi.Expand(req.URL, map[string]string{
28924		"project":        c.project,
28925		"backendService": c.backendService,
28926	})
28927	return gensupport.SendRequest(c.ctx_, c.s.client, req)
28928}
28929
28930// Do executes the "compute.backendServices.patch" call.
28931// Exactly one of *Operation or error will be non-nil. Any non-2xx
28932// status code is an error. Response headers are in either
28933// *Operation.ServerResponse.Header or (if a response was returned at
28934// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
28935// to check whether the returned error was because
28936// http.StatusNotModified was returned.
28937func (c *BackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
28938	gensupport.SetOptions(c.urlParams_, opts...)
28939	res, err := c.doRequest("json")
28940	if res != nil && res.StatusCode == http.StatusNotModified {
28941		if res.Body != nil {
28942			res.Body.Close()
28943		}
28944		return nil, &googleapi.Error{
28945			Code:   res.StatusCode,
28946			Header: res.Header,
28947		}
28948	}
28949	if err != nil {
28950		return nil, err
28951	}
28952	defer googleapi.CloseBody(res)
28953	if err := googleapi.CheckResponse(res); err != nil {
28954		return nil, err
28955	}
28956	ret := &Operation{
28957		ServerResponse: googleapi.ServerResponse{
28958			Header:         res.Header,
28959			HTTPStatusCode: res.StatusCode,
28960		},
28961	}
28962	target := &ret
28963	if err := gensupport.DecodeResponse(target, res); err != nil {
28964		return nil, err
28965	}
28966	return ret, nil
28967	// {
28968	//   "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.",
28969	//   "httpMethod": "PATCH",
28970	//   "id": "compute.backendServices.patch",
28971	//   "parameterOrder": [
28972	//     "project",
28973	//     "backendService"
28974	//   ],
28975	//   "parameters": {
28976	//     "backendService": {
28977	//       "description": "Name of the BackendService resource to patch.",
28978	//       "location": "path",
28979	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
28980	//       "required": true,
28981	//       "type": "string"
28982	//     },
28983	//     "project": {
28984	//       "description": "Project ID for this request.",
28985	//       "location": "path",
28986	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
28987	//       "required": true,
28988	//       "type": "string"
28989	//     },
28990	//     "requestId": {
28991	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
28992	//       "location": "query",
28993	//       "type": "string"
28994	//     }
28995	//   },
28996	//   "path": "{project}/global/backendServices/{backendService}",
28997	//   "request": {
28998	//     "$ref": "BackendService"
28999	//   },
29000	//   "response": {
29001	//     "$ref": "Operation"
29002	//   },
29003	//   "scopes": [
29004	//     "https://www.googleapis.com/auth/cloud-platform",
29005	//     "https://www.googleapis.com/auth/compute"
29006	//   ]
29007	// }
29008
29009}
29010
29011// method id "compute.backendServices.update":
29012
29013type BackendServicesUpdateCall struct {
29014	s              *Service
29015	project        string
29016	backendService string
29017	backendservice *BackendService
29018	urlParams_     gensupport.URLParams
29019	ctx_           context.Context
29020	header_        http.Header
29021}
29022
29023// Update: Updates the specified BackendService resource with the data
29024// included in the request. There are several restrictions and
29025// guidelines to keep in mind when updating a backend service. Read
29026// Restrictions and Guidelines for more information.
29027// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/update
29028func (r *BackendServicesService) Update(project string, backendService string, backendservice *BackendService) *BackendServicesUpdateCall {
29029	c := &BackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
29030	c.project = project
29031	c.backendService = backendService
29032	c.backendservice = backendservice
29033	return c
29034}
29035
29036// RequestId sets the optional parameter "requestId": An optional
29037// request ID to identify requests. Specify a unique request ID so that
29038// if you must retry your request, the server will know to ignore the
29039// request if it has already been completed.
29040//
29041// For example, consider a situation where you make an initial request
29042// and the request times out. If you make the request again with the
29043// same request ID, the server can check if original operation with the
29044// same request ID was received, and if so, will ignore the second
29045// request. This prevents clients from accidentally creating duplicate
29046// commitments.
29047//
29048// The request ID must be a valid UUID with the exception that zero UUID
29049// is not supported (00000000-0000-0000-0000-000000000000).
29050func (c *BackendServicesUpdateCall) RequestId(requestId string) *BackendServicesUpdateCall {
29051	c.urlParams_.Set("requestId", requestId)
29052	return c
29053}
29054
29055// Fields allows partial responses to be retrieved. See
29056// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
29057// for more information.
29058func (c *BackendServicesUpdateCall) Fields(s ...googleapi.Field) *BackendServicesUpdateCall {
29059	c.urlParams_.Set("fields", googleapi.CombineFields(s))
29060	return c
29061}
29062
29063// Context sets the context to be used in this call's Do method. Any
29064// pending HTTP request will be aborted if the provided context is
29065// canceled.
29066func (c *BackendServicesUpdateCall) Context(ctx context.Context) *BackendServicesUpdateCall {
29067	c.ctx_ = ctx
29068	return c
29069}
29070
29071// Header returns an http.Header that can be modified by the caller to
29072// add HTTP headers to the request.
29073func (c *BackendServicesUpdateCall) Header() http.Header {
29074	if c.header_ == nil {
29075		c.header_ = make(http.Header)
29076	}
29077	return c.header_
29078}
29079
29080func (c *BackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
29081	reqHeaders := make(http.Header)
29082	for k, v := range c.header_ {
29083		reqHeaders[k] = v
29084	}
29085	reqHeaders.Set("User-Agent", c.s.userAgent())
29086	var body io.Reader = nil
29087	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
29088	if err != nil {
29089		return nil, err
29090	}
29091	reqHeaders.Set("Content-Type", "application/json")
29092	c.urlParams_.Set("alt", alt)
29093	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
29094	urls += "?" + c.urlParams_.Encode()
29095	req, _ := http.NewRequest("PUT", urls, body)
29096	req.Header = reqHeaders
29097	googleapi.Expand(req.URL, map[string]string{
29098		"project":        c.project,
29099		"backendService": c.backendService,
29100	})
29101	return gensupport.SendRequest(c.ctx_, c.s.client, req)
29102}
29103
29104// Do executes the "compute.backendServices.update" call.
29105// Exactly one of *Operation or error will be non-nil. Any non-2xx
29106// status code is an error. Response headers are in either
29107// *Operation.ServerResponse.Header or (if a response was returned at
29108// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
29109// to check whether the returned error was because
29110// http.StatusNotModified was returned.
29111func (c *BackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
29112	gensupport.SetOptions(c.urlParams_, opts...)
29113	res, err := c.doRequest("json")
29114	if res != nil && res.StatusCode == http.StatusNotModified {
29115		if res.Body != nil {
29116			res.Body.Close()
29117		}
29118		return nil, &googleapi.Error{
29119			Code:   res.StatusCode,
29120			Header: res.Header,
29121		}
29122	}
29123	if err != nil {
29124		return nil, err
29125	}
29126	defer googleapi.CloseBody(res)
29127	if err := googleapi.CheckResponse(res); err != nil {
29128		return nil, err
29129	}
29130	ret := &Operation{
29131		ServerResponse: googleapi.ServerResponse{
29132			Header:         res.Header,
29133			HTTPStatusCode: res.StatusCode,
29134		},
29135	}
29136	target := &ret
29137	if err := gensupport.DecodeResponse(target, res); err != nil {
29138		return nil, err
29139	}
29140	return ret, nil
29141	// {
29142	//   "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.",
29143	//   "httpMethod": "PUT",
29144	//   "id": "compute.backendServices.update",
29145	//   "parameterOrder": [
29146	//     "project",
29147	//     "backendService"
29148	//   ],
29149	//   "parameters": {
29150	//     "backendService": {
29151	//       "description": "Name of the BackendService resource to update.",
29152	//       "location": "path",
29153	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
29154	//       "required": true,
29155	//       "type": "string"
29156	//     },
29157	//     "project": {
29158	//       "description": "Project ID for this request.",
29159	//       "location": "path",
29160	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
29161	//       "required": true,
29162	//       "type": "string"
29163	//     },
29164	//     "requestId": {
29165	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
29166	//       "location": "query",
29167	//       "type": "string"
29168	//     }
29169	//   },
29170	//   "path": "{project}/global/backendServices/{backendService}",
29171	//   "request": {
29172	//     "$ref": "BackendService"
29173	//   },
29174	//   "response": {
29175	//     "$ref": "Operation"
29176	//   },
29177	//   "scopes": [
29178	//     "https://www.googleapis.com/auth/cloud-platform",
29179	//     "https://www.googleapis.com/auth/compute"
29180	//   ]
29181	// }
29182
29183}
29184
29185// method id "compute.diskTypes.aggregatedList":
29186
29187type DiskTypesAggregatedListCall struct {
29188	s            *Service
29189	project      string
29190	urlParams_   gensupport.URLParams
29191	ifNoneMatch_ string
29192	ctx_         context.Context
29193	header_      http.Header
29194}
29195
29196// AggregatedList: Retrieves an aggregated list of disk types.
29197// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/aggregatedList
29198func (r *DiskTypesService) AggregatedList(project string) *DiskTypesAggregatedListCall {
29199	c := &DiskTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
29200	c.project = project
29201	return c
29202}
29203
29204// Filter sets the optional parameter "filter": Sets a filter
29205// {expression} for filtering listed resources. Your {expression} must
29206// be in the format: field_name comparison_string literal_string.
29207//
29208// The field_name is the name of the field you want to compare. Only
29209// atomic field types are supported (string, number, boolean). The
29210// comparison_string must be either eq (equals) or ne (not equals). The
29211// literal_string is the string value to filter to. The literal value
29212// must be valid for the type of field you are filtering by (string,
29213// number, boolean). For string fields, the literal value is interpreted
29214// as a regular expression using RE2 syntax. The literal value must
29215// match the entire field.
29216//
29217// For example, to filter for instances that do not have a name of
29218// example-instance, you would use name ne example-instance.
29219//
29220// You can filter on nested fields. For example, you could filter on
29221// instances that have set the scheduling.automaticRestart field to
29222// true. Use filtering on nested fields to take advantage of labels to
29223// organize and search for results based on label values.
29224//
29225// To filter on multiple expressions, provide each separate expression
29226// within parentheses. For example, (scheduling.automaticRestart eq
29227// true) (zone eq us-central1-f). Multiple expressions are treated as
29228// AND expressions, meaning that resources must match all expressions to
29229// pass the filters.
29230func (c *DiskTypesAggregatedListCall) Filter(filter string) *DiskTypesAggregatedListCall {
29231	c.urlParams_.Set("filter", filter)
29232	return c
29233}
29234
29235// MaxResults sets the optional parameter "maxResults": The maximum
29236// number of results per page that should be returned. If the number of
29237// available results is larger than maxResults, Compute Engine returns a
29238// nextPageToken that can be used to get the next page of results in
29239// subsequent list requests. Acceptable values are 0 to 500, inclusive.
29240// (Default: 500)
29241func (c *DiskTypesAggregatedListCall) MaxResults(maxResults int64) *DiskTypesAggregatedListCall {
29242	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
29243	return c
29244}
29245
29246// OrderBy sets the optional parameter "orderBy": Sorts list results by
29247// a certain order. By default, results are returned in alphanumerical
29248// order based on the resource name.
29249//
29250// You can also sort results in descending order based on the creation
29251// timestamp using orderBy="creationTimestamp desc". This sorts results
29252// based on the creationTimestamp field in reverse chronological order
29253// (newest result first). Use this to sort resources like operations so
29254// that the newest operation is returned first.
29255//
29256// Currently, only sorting by name or creationTimestamp desc is
29257// supported.
29258func (c *DiskTypesAggregatedListCall) OrderBy(orderBy string) *DiskTypesAggregatedListCall {
29259	c.urlParams_.Set("orderBy", orderBy)
29260	return c
29261}
29262
29263// PageToken sets the optional parameter "pageToken": Specifies a page
29264// token to use. Set pageToken to the nextPageToken returned by a
29265// previous list request to get the next page of results.
29266func (c *DiskTypesAggregatedListCall) PageToken(pageToken string) *DiskTypesAggregatedListCall {
29267	c.urlParams_.Set("pageToken", pageToken)
29268	return c
29269}
29270
29271// Fields allows partial responses to be retrieved. See
29272// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
29273// for more information.
29274func (c *DiskTypesAggregatedListCall) Fields(s ...googleapi.Field) *DiskTypesAggregatedListCall {
29275	c.urlParams_.Set("fields", googleapi.CombineFields(s))
29276	return c
29277}
29278
29279// IfNoneMatch sets the optional parameter which makes the operation
29280// fail if the object's ETag matches the given value. This is useful for
29281// getting updates only after the object has changed since the last
29282// request. Use googleapi.IsNotModified to check whether the response
29283// error from Do is the result of In-None-Match.
29284func (c *DiskTypesAggregatedListCall) IfNoneMatch(entityTag string) *DiskTypesAggregatedListCall {
29285	c.ifNoneMatch_ = entityTag
29286	return c
29287}
29288
29289// Context sets the context to be used in this call's Do method. Any
29290// pending HTTP request will be aborted if the provided context is
29291// canceled.
29292func (c *DiskTypesAggregatedListCall) Context(ctx context.Context) *DiskTypesAggregatedListCall {
29293	c.ctx_ = ctx
29294	return c
29295}
29296
29297// Header returns an http.Header that can be modified by the caller to
29298// add HTTP headers to the request.
29299func (c *DiskTypesAggregatedListCall) Header() http.Header {
29300	if c.header_ == nil {
29301		c.header_ = make(http.Header)
29302	}
29303	return c.header_
29304}
29305
29306func (c *DiskTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
29307	reqHeaders := make(http.Header)
29308	for k, v := range c.header_ {
29309		reqHeaders[k] = v
29310	}
29311	reqHeaders.Set("User-Agent", c.s.userAgent())
29312	if c.ifNoneMatch_ != "" {
29313		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
29314	}
29315	var body io.Reader = nil
29316	c.urlParams_.Set("alt", alt)
29317	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/diskTypes")
29318	urls += "?" + c.urlParams_.Encode()
29319	req, _ := http.NewRequest("GET", urls, body)
29320	req.Header = reqHeaders
29321	googleapi.Expand(req.URL, map[string]string{
29322		"project": c.project,
29323	})
29324	return gensupport.SendRequest(c.ctx_, c.s.client, req)
29325}
29326
29327// Do executes the "compute.diskTypes.aggregatedList" call.
29328// Exactly one of *DiskTypeAggregatedList or error will be non-nil. Any
29329// non-2xx status code is an error. Response headers are in either
29330// *DiskTypeAggregatedList.ServerResponse.Header or (if a response was
29331// returned at all) in error.(*googleapi.Error).Header. Use
29332// googleapi.IsNotModified to check whether the returned error was
29333// because http.StatusNotModified was returned.
29334func (c *DiskTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskTypeAggregatedList, error) {
29335	gensupport.SetOptions(c.urlParams_, opts...)
29336	res, err := c.doRequest("json")
29337	if res != nil && res.StatusCode == http.StatusNotModified {
29338		if res.Body != nil {
29339			res.Body.Close()
29340		}
29341		return nil, &googleapi.Error{
29342			Code:   res.StatusCode,
29343			Header: res.Header,
29344		}
29345	}
29346	if err != nil {
29347		return nil, err
29348	}
29349	defer googleapi.CloseBody(res)
29350	if err := googleapi.CheckResponse(res); err != nil {
29351		return nil, err
29352	}
29353	ret := &DiskTypeAggregatedList{
29354		ServerResponse: googleapi.ServerResponse{
29355			Header:         res.Header,
29356			HTTPStatusCode: res.StatusCode,
29357		},
29358	}
29359	target := &ret
29360	if err := gensupport.DecodeResponse(target, res); err != nil {
29361		return nil, err
29362	}
29363	return ret, nil
29364	// {
29365	//   "description": "Retrieves an aggregated list of disk types.",
29366	//   "httpMethod": "GET",
29367	//   "id": "compute.diskTypes.aggregatedList",
29368	//   "parameterOrder": [
29369	//     "project"
29370	//   ],
29371	//   "parameters": {
29372	//     "filter": {
29373	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
29374	//       "location": "query",
29375	//       "type": "string"
29376	//     },
29377	//     "maxResults": {
29378	//       "default": "500",
29379	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
29380	//       "format": "uint32",
29381	//       "location": "query",
29382	//       "minimum": "0",
29383	//       "type": "integer"
29384	//     },
29385	//     "orderBy": {
29386	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
29387	//       "location": "query",
29388	//       "type": "string"
29389	//     },
29390	//     "pageToken": {
29391	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
29392	//       "location": "query",
29393	//       "type": "string"
29394	//     },
29395	//     "project": {
29396	//       "description": "Project ID for this request.",
29397	//       "location": "path",
29398	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
29399	//       "required": true,
29400	//       "type": "string"
29401	//     }
29402	//   },
29403	//   "path": "{project}/aggregated/diskTypes",
29404	//   "response": {
29405	//     "$ref": "DiskTypeAggregatedList"
29406	//   },
29407	//   "scopes": [
29408	//     "https://www.googleapis.com/auth/cloud-platform",
29409	//     "https://www.googleapis.com/auth/compute",
29410	//     "https://www.googleapis.com/auth/compute.readonly"
29411	//   ]
29412	// }
29413
29414}
29415
29416// Pages invokes f for each page of results.
29417// A non-nil error returned from f will halt the iteration.
29418// The provided context supersedes any context provided to the Context method.
29419func (c *DiskTypesAggregatedListCall) Pages(ctx context.Context, f func(*DiskTypeAggregatedList) error) error {
29420	c.ctx_ = ctx
29421	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
29422	for {
29423		x, err := c.Do()
29424		if err != nil {
29425			return err
29426		}
29427		if err := f(x); err != nil {
29428			return err
29429		}
29430		if x.NextPageToken == "" {
29431			return nil
29432		}
29433		c.PageToken(x.NextPageToken)
29434	}
29435}
29436
29437// method id "compute.diskTypes.get":
29438
29439type DiskTypesGetCall struct {
29440	s            *Service
29441	project      string
29442	zone         string
29443	diskType     string
29444	urlParams_   gensupport.URLParams
29445	ifNoneMatch_ string
29446	ctx_         context.Context
29447	header_      http.Header
29448}
29449
29450// Get: Returns the specified disk type. Get a list of available disk
29451// types by making a list() request.
29452// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/get
29453func (r *DiskTypesService) Get(project string, zone string, diskType string) *DiskTypesGetCall {
29454	c := &DiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
29455	c.project = project
29456	c.zone = zone
29457	c.diskType = diskType
29458	return c
29459}
29460
29461// Fields allows partial responses to be retrieved. See
29462// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
29463// for more information.
29464func (c *DiskTypesGetCall) Fields(s ...googleapi.Field) *DiskTypesGetCall {
29465	c.urlParams_.Set("fields", googleapi.CombineFields(s))
29466	return c
29467}
29468
29469// IfNoneMatch sets the optional parameter which makes the operation
29470// fail if the object's ETag matches the given value. This is useful for
29471// getting updates only after the object has changed since the last
29472// request. Use googleapi.IsNotModified to check whether the response
29473// error from Do is the result of In-None-Match.
29474func (c *DiskTypesGetCall) IfNoneMatch(entityTag string) *DiskTypesGetCall {
29475	c.ifNoneMatch_ = entityTag
29476	return c
29477}
29478
29479// Context sets the context to be used in this call's Do method. Any
29480// pending HTTP request will be aborted if the provided context is
29481// canceled.
29482func (c *DiskTypesGetCall) Context(ctx context.Context) *DiskTypesGetCall {
29483	c.ctx_ = ctx
29484	return c
29485}
29486
29487// Header returns an http.Header that can be modified by the caller to
29488// add HTTP headers to the request.
29489func (c *DiskTypesGetCall) Header() http.Header {
29490	if c.header_ == nil {
29491		c.header_ = make(http.Header)
29492	}
29493	return c.header_
29494}
29495
29496func (c *DiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
29497	reqHeaders := make(http.Header)
29498	for k, v := range c.header_ {
29499		reqHeaders[k] = v
29500	}
29501	reqHeaders.Set("User-Agent", c.s.userAgent())
29502	if c.ifNoneMatch_ != "" {
29503		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
29504	}
29505	var body io.Reader = nil
29506	c.urlParams_.Set("alt", alt)
29507	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/diskTypes/{diskType}")
29508	urls += "?" + c.urlParams_.Encode()
29509	req, _ := http.NewRequest("GET", urls, body)
29510	req.Header = reqHeaders
29511	googleapi.Expand(req.URL, map[string]string{
29512		"project":  c.project,
29513		"zone":     c.zone,
29514		"diskType": c.diskType,
29515	})
29516	return gensupport.SendRequest(c.ctx_, c.s.client, req)
29517}
29518
29519// Do executes the "compute.diskTypes.get" call.
29520// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
29521// code is an error. Response headers are in either
29522// *DiskType.ServerResponse.Header or (if a response was returned at
29523// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
29524// to check whether the returned error was because
29525// http.StatusNotModified was returned.
29526func (c *DiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
29527	gensupport.SetOptions(c.urlParams_, opts...)
29528	res, err := c.doRequest("json")
29529	if res != nil && res.StatusCode == http.StatusNotModified {
29530		if res.Body != nil {
29531			res.Body.Close()
29532		}
29533		return nil, &googleapi.Error{
29534			Code:   res.StatusCode,
29535			Header: res.Header,
29536		}
29537	}
29538	if err != nil {
29539		return nil, err
29540	}
29541	defer googleapi.CloseBody(res)
29542	if err := googleapi.CheckResponse(res); err != nil {
29543		return nil, err
29544	}
29545	ret := &DiskType{
29546		ServerResponse: googleapi.ServerResponse{
29547			Header:         res.Header,
29548			HTTPStatusCode: res.StatusCode,
29549		},
29550	}
29551	target := &ret
29552	if err := gensupport.DecodeResponse(target, res); err != nil {
29553		return nil, err
29554	}
29555	return ret, nil
29556	// {
29557	//   "description": "Returns the specified disk type. Get a list of available disk types by making a list() request.",
29558	//   "httpMethod": "GET",
29559	//   "id": "compute.diskTypes.get",
29560	//   "parameterOrder": [
29561	//     "project",
29562	//     "zone",
29563	//     "diskType"
29564	//   ],
29565	//   "parameters": {
29566	//     "diskType": {
29567	//       "description": "Name of the disk type to return.",
29568	//       "location": "path",
29569	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
29570	//       "required": true,
29571	//       "type": "string"
29572	//     },
29573	//     "project": {
29574	//       "description": "Project ID for this request.",
29575	//       "location": "path",
29576	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
29577	//       "required": true,
29578	//       "type": "string"
29579	//     },
29580	//     "zone": {
29581	//       "description": "The name of the zone for this request.",
29582	//       "location": "path",
29583	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
29584	//       "required": true,
29585	//       "type": "string"
29586	//     }
29587	//   },
29588	//   "path": "{project}/zones/{zone}/diskTypes/{diskType}",
29589	//   "response": {
29590	//     "$ref": "DiskType"
29591	//   },
29592	//   "scopes": [
29593	//     "https://www.googleapis.com/auth/cloud-platform",
29594	//     "https://www.googleapis.com/auth/compute",
29595	//     "https://www.googleapis.com/auth/compute.readonly"
29596	//   ]
29597	// }
29598
29599}
29600
29601// method id "compute.diskTypes.list":
29602
29603type DiskTypesListCall struct {
29604	s            *Service
29605	project      string
29606	zone         string
29607	urlParams_   gensupport.URLParams
29608	ifNoneMatch_ string
29609	ctx_         context.Context
29610	header_      http.Header
29611}
29612
29613// List: Retrieves a list of disk types available to the specified
29614// project.
29615// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/list
29616func (r *DiskTypesService) List(project string, zone string) *DiskTypesListCall {
29617	c := &DiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
29618	c.project = project
29619	c.zone = zone
29620	return c
29621}
29622
29623// Filter sets the optional parameter "filter": Sets a filter
29624// {expression} for filtering listed resources. Your {expression} must
29625// be in the format: field_name comparison_string literal_string.
29626//
29627// The field_name is the name of the field you want to compare. Only
29628// atomic field types are supported (string, number, boolean). The
29629// comparison_string must be either eq (equals) or ne (not equals). The
29630// literal_string is the string value to filter to. The literal value
29631// must be valid for the type of field you are filtering by (string,
29632// number, boolean). For string fields, the literal value is interpreted
29633// as a regular expression using RE2 syntax. The literal value must
29634// match the entire field.
29635//
29636// For example, to filter for instances that do not have a name of
29637// example-instance, you would use name ne example-instance.
29638//
29639// You can filter on nested fields. For example, you could filter on
29640// instances that have set the scheduling.automaticRestart field to
29641// true. Use filtering on nested fields to take advantage of labels to
29642// organize and search for results based on label values.
29643//
29644// To filter on multiple expressions, provide each separate expression
29645// within parentheses. For example, (scheduling.automaticRestart eq
29646// true) (zone eq us-central1-f). Multiple expressions are treated as
29647// AND expressions, meaning that resources must match all expressions to
29648// pass the filters.
29649func (c *DiskTypesListCall) Filter(filter string) *DiskTypesListCall {
29650	c.urlParams_.Set("filter", filter)
29651	return c
29652}
29653
29654// MaxResults sets the optional parameter "maxResults": The maximum
29655// number of results per page that should be returned. If the number of
29656// available results is larger than maxResults, Compute Engine returns a
29657// nextPageToken that can be used to get the next page of results in
29658// subsequent list requests. Acceptable values are 0 to 500, inclusive.
29659// (Default: 500)
29660func (c *DiskTypesListCall) MaxResults(maxResults int64) *DiskTypesListCall {
29661	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
29662	return c
29663}
29664
29665// OrderBy sets the optional parameter "orderBy": Sorts list results by
29666// a certain order. By default, results are returned in alphanumerical
29667// order based on the resource name.
29668//
29669// You can also sort results in descending order based on the creation
29670// timestamp using orderBy="creationTimestamp desc". This sorts results
29671// based on the creationTimestamp field in reverse chronological order
29672// (newest result first). Use this to sort resources like operations so
29673// that the newest operation is returned first.
29674//
29675// Currently, only sorting by name or creationTimestamp desc is
29676// supported.
29677func (c *DiskTypesListCall) OrderBy(orderBy string) *DiskTypesListCall {
29678	c.urlParams_.Set("orderBy", orderBy)
29679	return c
29680}
29681
29682// PageToken sets the optional parameter "pageToken": Specifies a page
29683// token to use. Set pageToken to the nextPageToken returned by a
29684// previous list request to get the next page of results.
29685func (c *DiskTypesListCall) PageToken(pageToken string) *DiskTypesListCall {
29686	c.urlParams_.Set("pageToken", pageToken)
29687	return c
29688}
29689
29690// Fields allows partial responses to be retrieved. See
29691// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
29692// for more information.
29693func (c *DiskTypesListCall) Fields(s ...googleapi.Field) *DiskTypesListCall {
29694	c.urlParams_.Set("fields", googleapi.CombineFields(s))
29695	return c
29696}
29697
29698// IfNoneMatch sets the optional parameter which makes the operation
29699// fail if the object's ETag matches the given value. This is useful for
29700// getting updates only after the object has changed since the last
29701// request. Use googleapi.IsNotModified to check whether the response
29702// error from Do is the result of In-None-Match.
29703func (c *DiskTypesListCall) IfNoneMatch(entityTag string) *DiskTypesListCall {
29704	c.ifNoneMatch_ = entityTag
29705	return c
29706}
29707
29708// Context sets the context to be used in this call's Do method. Any
29709// pending HTTP request will be aborted if the provided context is
29710// canceled.
29711func (c *DiskTypesListCall) Context(ctx context.Context) *DiskTypesListCall {
29712	c.ctx_ = ctx
29713	return c
29714}
29715
29716// Header returns an http.Header that can be modified by the caller to
29717// add HTTP headers to the request.
29718func (c *DiskTypesListCall) Header() http.Header {
29719	if c.header_ == nil {
29720		c.header_ = make(http.Header)
29721	}
29722	return c.header_
29723}
29724
29725func (c *DiskTypesListCall) doRequest(alt string) (*http.Response, error) {
29726	reqHeaders := make(http.Header)
29727	for k, v := range c.header_ {
29728		reqHeaders[k] = v
29729	}
29730	reqHeaders.Set("User-Agent", c.s.userAgent())
29731	if c.ifNoneMatch_ != "" {
29732		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
29733	}
29734	var body io.Reader = nil
29735	c.urlParams_.Set("alt", alt)
29736	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/diskTypes")
29737	urls += "?" + c.urlParams_.Encode()
29738	req, _ := http.NewRequest("GET", urls, body)
29739	req.Header = reqHeaders
29740	googleapi.Expand(req.URL, map[string]string{
29741		"project": c.project,
29742		"zone":    c.zone,
29743	})
29744	return gensupport.SendRequest(c.ctx_, c.s.client, req)
29745}
29746
29747// Do executes the "compute.diskTypes.list" call.
29748// Exactly one of *DiskTypeList or error will be non-nil. Any non-2xx
29749// status code is an error. Response headers are in either
29750// *DiskTypeList.ServerResponse.Header or (if a response was returned at
29751// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
29752// to check whether the returned error was because
29753// http.StatusNotModified was returned.
29754func (c *DiskTypesListCall) Do(opts ...googleapi.CallOption) (*DiskTypeList, error) {
29755	gensupport.SetOptions(c.urlParams_, opts...)
29756	res, err := c.doRequest("json")
29757	if res != nil && res.StatusCode == http.StatusNotModified {
29758		if res.Body != nil {
29759			res.Body.Close()
29760		}
29761		return nil, &googleapi.Error{
29762			Code:   res.StatusCode,
29763			Header: res.Header,
29764		}
29765	}
29766	if err != nil {
29767		return nil, err
29768	}
29769	defer googleapi.CloseBody(res)
29770	if err := googleapi.CheckResponse(res); err != nil {
29771		return nil, err
29772	}
29773	ret := &DiskTypeList{
29774		ServerResponse: googleapi.ServerResponse{
29775			Header:         res.Header,
29776			HTTPStatusCode: res.StatusCode,
29777		},
29778	}
29779	target := &ret
29780	if err := gensupport.DecodeResponse(target, res); err != nil {
29781		return nil, err
29782	}
29783	return ret, nil
29784	// {
29785	//   "description": "Retrieves a list of disk types available to the specified project.",
29786	//   "httpMethod": "GET",
29787	//   "id": "compute.diskTypes.list",
29788	//   "parameterOrder": [
29789	//     "project",
29790	//     "zone"
29791	//   ],
29792	//   "parameters": {
29793	//     "filter": {
29794	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
29795	//       "location": "query",
29796	//       "type": "string"
29797	//     },
29798	//     "maxResults": {
29799	//       "default": "500",
29800	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
29801	//       "format": "uint32",
29802	//       "location": "query",
29803	//       "minimum": "0",
29804	//       "type": "integer"
29805	//     },
29806	//     "orderBy": {
29807	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
29808	//       "location": "query",
29809	//       "type": "string"
29810	//     },
29811	//     "pageToken": {
29812	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
29813	//       "location": "query",
29814	//       "type": "string"
29815	//     },
29816	//     "project": {
29817	//       "description": "Project ID for this request.",
29818	//       "location": "path",
29819	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
29820	//       "required": true,
29821	//       "type": "string"
29822	//     },
29823	//     "zone": {
29824	//       "description": "The name of the zone for this request.",
29825	//       "location": "path",
29826	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
29827	//       "required": true,
29828	//       "type": "string"
29829	//     }
29830	//   },
29831	//   "path": "{project}/zones/{zone}/diskTypes",
29832	//   "response": {
29833	//     "$ref": "DiskTypeList"
29834	//   },
29835	//   "scopes": [
29836	//     "https://www.googleapis.com/auth/cloud-platform",
29837	//     "https://www.googleapis.com/auth/compute",
29838	//     "https://www.googleapis.com/auth/compute.readonly"
29839	//   ]
29840	// }
29841
29842}
29843
29844// Pages invokes f for each page of results.
29845// A non-nil error returned from f will halt the iteration.
29846// The provided context supersedes any context provided to the Context method.
29847func (c *DiskTypesListCall) Pages(ctx context.Context, f func(*DiskTypeList) error) error {
29848	c.ctx_ = ctx
29849	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
29850	for {
29851		x, err := c.Do()
29852		if err != nil {
29853			return err
29854		}
29855		if err := f(x); err != nil {
29856			return err
29857		}
29858		if x.NextPageToken == "" {
29859			return nil
29860		}
29861		c.PageToken(x.NextPageToken)
29862	}
29863}
29864
29865// method id "compute.disks.aggregatedList":
29866
29867type DisksAggregatedListCall struct {
29868	s            *Service
29869	project      string
29870	urlParams_   gensupport.URLParams
29871	ifNoneMatch_ string
29872	ctx_         context.Context
29873	header_      http.Header
29874}
29875
29876// AggregatedList: Retrieves an aggregated list of persistent disks.
29877// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/aggregatedList
29878func (r *DisksService) AggregatedList(project string) *DisksAggregatedListCall {
29879	c := &DisksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
29880	c.project = project
29881	return c
29882}
29883
29884// Filter sets the optional parameter "filter": Sets a filter
29885// {expression} for filtering listed resources. Your {expression} must
29886// be in the format: field_name comparison_string literal_string.
29887//
29888// The field_name is the name of the field you want to compare. Only
29889// atomic field types are supported (string, number, boolean). The
29890// comparison_string must be either eq (equals) or ne (not equals). The
29891// literal_string is the string value to filter to. The literal value
29892// must be valid for the type of field you are filtering by (string,
29893// number, boolean). For string fields, the literal value is interpreted
29894// as a regular expression using RE2 syntax. The literal value must
29895// match the entire field.
29896//
29897// For example, to filter for instances that do not have a name of
29898// example-instance, you would use name ne example-instance.
29899//
29900// You can filter on nested fields. For example, you could filter on
29901// instances that have set the scheduling.automaticRestart field to
29902// true. Use filtering on nested fields to take advantage of labels to
29903// organize and search for results based on label values.
29904//
29905// To filter on multiple expressions, provide each separate expression
29906// within parentheses. For example, (scheduling.automaticRestart eq
29907// true) (zone eq us-central1-f). Multiple expressions are treated as
29908// AND expressions, meaning that resources must match all expressions to
29909// pass the filters.
29910func (c *DisksAggregatedListCall) Filter(filter string) *DisksAggregatedListCall {
29911	c.urlParams_.Set("filter", filter)
29912	return c
29913}
29914
29915// MaxResults sets the optional parameter "maxResults": The maximum
29916// number of results per page that should be returned. If the number of
29917// available results is larger than maxResults, Compute Engine returns a
29918// nextPageToken that can be used to get the next page of results in
29919// subsequent list requests. Acceptable values are 0 to 500, inclusive.
29920// (Default: 500)
29921func (c *DisksAggregatedListCall) MaxResults(maxResults int64) *DisksAggregatedListCall {
29922	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
29923	return c
29924}
29925
29926// OrderBy sets the optional parameter "orderBy": Sorts list results by
29927// a certain order. By default, results are returned in alphanumerical
29928// order based on the resource name.
29929//
29930// You can also sort results in descending order based on the creation
29931// timestamp using orderBy="creationTimestamp desc". This sorts results
29932// based on the creationTimestamp field in reverse chronological order
29933// (newest result first). Use this to sort resources like operations so
29934// that the newest operation is returned first.
29935//
29936// Currently, only sorting by name or creationTimestamp desc is
29937// supported.
29938func (c *DisksAggregatedListCall) OrderBy(orderBy string) *DisksAggregatedListCall {
29939	c.urlParams_.Set("orderBy", orderBy)
29940	return c
29941}
29942
29943// PageToken sets the optional parameter "pageToken": Specifies a page
29944// token to use. Set pageToken to the nextPageToken returned by a
29945// previous list request to get the next page of results.
29946func (c *DisksAggregatedListCall) PageToken(pageToken string) *DisksAggregatedListCall {
29947	c.urlParams_.Set("pageToken", pageToken)
29948	return c
29949}
29950
29951// Fields allows partial responses to be retrieved. See
29952// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
29953// for more information.
29954func (c *DisksAggregatedListCall) Fields(s ...googleapi.Field) *DisksAggregatedListCall {
29955	c.urlParams_.Set("fields", googleapi.CombineFields(s))
29956	return c
29957}
29958
29959// IfNoneMatch sets the optional parameter which makes the operation
29960// fail if the object's ETag matches the given value. This is useful for
29961// getting updates only after the object has changed since the last
29962// request. Use googleapi.IsNotModified to check whether the response
29963// error from Do is the result of In-None-Match.
29964func (c *DisksAggregatedListCall) IfNoneMatch(entityTag string) *DisksAggregatedListCall {
29965	c.ifNoneMatch_ = entityTag
29966	return c
29967}
29968
29969// Context sets the context to be used in this call's Do method. Any
29970// pending HTTP request will be aborted if the provided context is
29971// canceled.
29972func (c *DisksAggregatedListCall) Context(ctx context.Context) *DisksAggregatedListCall {
29973	c.ctx_ = ctx
29974	return c
29975}
29976
29977// Header returns an http.Header that can be modified by the caller to
29978// add HTTP headers to the request.
29979func (c *DisksAggregatedListCall) Header() http.Header {
29980	if c.header_ == nil {
29981		c.header_ = make(http.Header)
29982	}
29983	return c.header_
29984}
29985
29986func (c *DisksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
29987	reqHeaders := make(http.Header)
29988	for k, v := range c.header_ {
29989		reqHeaders[k] = v
29990	}
29991	reqHeaders.Set("User-Agent", c.s.userAgent())
29992	if c.ifNoneMatch_ != "" {
29993		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
29994	}
29995	var body io.Reader = nil
29996	c.urlParams_.Set("alt", alt)
29997	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/disks")
29998	urls += "?" + c.urlParams_.Encode()
29999	req, _ := http.NewRequest("GET", urls, body)
30000	req.Header = reqHeaders
30001	googleapi.Expand(req.URL, map[string]string{
30002		"project": c.project,
30003	})
30004	return gensupport.SendRequest(c.ctx_, c.s.client, req)
30005}
30006
30007// Do executes the "compute.disks.aggregatedList" call.
30008// Exactly one of *DiskAggregatedList or error will be non-nil. Any
30009// non-2xx status code is an error. Response headers are in either
30010// *DiskAggregatedList.ServerResponse.Header or (if a response was
30011// returned at all) in error.(*googleapi.Error).Header. Use
30012// googleapi.IsNotModified to check whether the returned error was
30013// because http.StatusNotModified was returned.
30014func (c *DisksAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskAggregatedList, error) {
30015	gensupport.SetOptions(c.urlParams_, opts...)
30016	res, err := c.doRequest("json")
30017	if res != nil && res.StatusCode == http.StatusNotModified {
30018		if res.Body != nil {
30019			res.Body.Close()
30020		}
30021		return nil, &googleapi.Error{
30022			Code:   res.StatusCode,
30023			Header: res.Header,
30024		}
30025	}
30026	if err != nil {
30027		return nil, err
30028	}
30029	defer googleapi.CloseBody(res)
30030	if err := googleapi.CheckResponse(res); err != nil {
30031		return nil, err
30032	}
30033	ret := &DiskAggregatedList{
30034		ServerResponse: googleapi.ServerResponse{
30035			Header:         res.Header,
30036			HTTPStatusCode: res.StatusCode,
30037		},
30038	}
30039	target := &ret
30040	if err := gensupport.DecodeResponse(target, res); err != nil {
30041		return nil, err
30042	}
30043	return ret, nil
30044	// {
30045	//   "description": "Retrieves an aggregated list of persistent disks.",
30046	//   "httpMethod": "GET",
30047	//   "id": "compute.disks.aggregatedList",
30048	//   "parameterOrder": [
30049	//     "project"
30050	//   ],
30051	//   "parameters": {
30052	//     "filter": {
30053	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
30054	//       "location": "query",
30055	//       "type": "string"
30056	//     },
30057	//     "maxResults": {
30058	//       "default": "500",
30059	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
30060	//       "format": "uint32",
30061	//       "location": "query",
30062	//       "minimum": "0",
30063	//       "type": "integer"
30064	//     },
30065	//     "orderBy": {
30066	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
30067	//       "location": "query",
30068	//       "type": "string"
30069	//     },
30070	//     "pageToken": {
30071	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
30072	//       "location": "query",
30073	//       "type": "string"
30074	//     },
30075	//     "project": {
30076	//       "description": "Project ID for this request.",
30077	//       "location": "path",
30078	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
30079	//       "required": true,
30080	//       "type": "string"
30081	//     }
30082	//   },
30083	//   "path": "{project}/aggregated/disks",
30084	//   "response": {
30085	//     "$ref": "DiskAggregatedList"
30086	//   },
30087	//   "scopes": [
30088	//     "https://www.googleapis.com/auth/cloud-platform",
30089	//     "https://www.googleapis.com/auth/compute",
30090	//     "https://www.googleapis.com/auth/compute.readonly"
30091	//   ]
30092	// }
30093
30094}
30095
30096// Pages invokes f for each page of results.
30097// A non-nil error returned from f will halt the iteration.
30098// The provided context supersedes any context provided to the Context method.
30099func (c *DisksAggregatedListCall) Pages(ctx context.Context, f func(*DiskAggregatedList) error) error {
30100	c.ctx_ = ctx
30101	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
30102	for {
30103		x, err := c.Do()
30104		if err != nil {
30105			return err
30106		}
30107		if err := f(x); err != nil {
30108			return err
30109		}
30110		if x.NextPageToken == "" {
30111			return nil
30112		}
30113		c.PageToken(x.NextPageToken)
30114	}
30115}
30116
30117// method id "compute.disks.createSnapshot":
30118
30119type DisksCreateSnapshotCall struct {
30120	s          *Service
30121	project    string
30122	zone       string
30123	disk       string
30124	snapshot   *Snapshot
30125	urlParams_ gensupport.URLParams
30126	ctx_       context.Context
30127	header_    http.Header
30128}
30129
30130// CreateSnapshot: Creates a snapshot of a specified persistent disk.
30131// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/createSnapshot
30132func (r *DisksService) CreateSnapshot(project string, zone string, disk string, snapshot *Snapshot) *DisksCreateSnapshotCall {
30133	c := &DisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
30134	c.project = project
30135	c.zone = zone
30136	c.disk = disk
30137	c.snapshot = snapshot
30138	return c
30139}
30140
30141// GuestFlush sets the optional parameter "guestFlush":
30142func (c *DisksCreateSnapshotCall) GuestFlush(guestFlush bool) *DisksCreateSnapshotCall {
30143	c.urlParams_.Set("guestFlush", fmt.Sprint(guestFlush))
30144	return c
30145}
30146
30147// RequestId sets the optional parameter "requestId": An optional
30148// request ID to identify requests. Specify a unique request ID so that
30149// if you must retry your request, the server will know to ignore the
30150// request if it has already been completed.
30151//
30152// For example, consider a situation where you make an initial request
30153// and the request times out. If you make the request again with the
30154// same request ID, the server can check if original operation with the
30155// same request ID was received, and if so, will ignore the second
30156// request. This prevents clients from accidentally creating duplicate
30157// commitments.
30158//
30159// The request ID must be a valid UUID with the exception that zero UUID
30160// is not supported (00000000-0000-0000-0000-000000000000).
30161func (c *DisksCreateSnapshotCall) RequestId(requestId string) *DisksCreateSnapshotCall {
30162	c.urlParams_.Set("requestId", requestId)
30163	return c
30164}
30165
30166// Fields allows partial responses to be retrieved. See
30167// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
30168// for more information.
30169func (c *DisksCreateSnapshotCall) Fields(s ...googleapi.Field) *DisksCreateSnapshotCall {
30170	c.urlParams_.Set("fields", googleapi.CombineFields(s))
30171	return c
30172}
30173
30174// Context sets the context to be used in this call's Do method. Any
30175// pending HTTP request will be aborted if the provided context is
30176// canceled.
30177func (c *DisksCreateSnapshotCall) Context(ctx context.Context) *DisksCreateSnapshotCall {
30178	c.ctx_ = ctx
30179	return c
30180}
30181
30182// Header returns an http.Header that can be modified by the caller to
30183// add HTTP headers to the request.
30184func (c *DisksCreateSnapshotCall) Header() http.Header {
30185	if c.header_ == nil {
30186		c.header_ = make(http.Header)
30187	}
30188	return c.header_
30189}
30190
30191func (c *DisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
30192	reqHeaders := make(http.Header)
30193	for k, v := range c.header_ {
30194		reqHeaders[k] = v
30195	}
30196	reqHeaders.Set("User-Agent", c.s.userAgent())
30197	var body io.Reader = nil
30198	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
30199	if err != nil {
30200		return nil, err
30201	}
30202	reqHeaders.Set("Content-Type", "application/json")
30203	c.urlParams_.Set("alt", alt)
30204	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/createSnapshot")
30205	urls += "?" + c.urlParams_.Encode()
30206	req, _ := http.NewRequest("POST", urls, body)
30207	req.Header = reqHeaders
30208	googleapi.Expand(req.URL, map[string]string{
30209		"project": c.project,
30210		"zone":    c.zone,
30211		"disk":    c.disk,
30212	})
30213	return gensupport.SendRequest(c.ctx_, c.s.client, req)
30214}
30215
30216// Do executes the "compute.disks.createSnapshot" call.
30217// Exactly one of *Operation or error will be non-nil. Any non-2xx
30218// status code is an error. Response headers are in either
30219// *Operation.ServerResponse.Header or (if a response was returned at
30220// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
30221// to check whether the returned error was because
30222// http.StatusNotModified was returned.
30223func (c *DisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
30224	gensupport.SetOptions(c.urlParams_, opts...)
30225	res, err := c.doRequest("json")
30226	if res != nil && res.StatusCode == http.StatusNotModified {
30227		if res.Body != nil {
30228			res.Body.Close()
30229		}
30230		return nil, &googleapi.Error{
30231			Code:   res.StatusCode,
30232			Header: res.Header,
30233		}
30234	}
30235	if err != nil {
30236		return nil, err
30237	}
30238	defer googleapi.CloseBody(res)
30239	if err := googleapi.CheckResponse(res); err != nil {
30240		return nil, err
30241	}
30242	ret := &Operation{
30243		ServerResponse: googleapi.ServerResponse{
30244			Header:         res.Header,
30245			HTTPStatusCode: res.StatusCode,
30246		},
30247	}
30248	target := &ret
30249	if err := gensupport.DecodeResponse(target, res); err != nil {
30250		return nil, err
30251	}
30252	return ret, nil
30253	// {
30254	//   "description": "Creates a snapshot of a specified persistent disk.",
30255	//   "httpMethod": "POST",
30256	//   "id": "compute.disks.createSnapshot",
30257	//   "parameterOrder": [
30258	//     "project",
30259	//     "zone",
30260	//     "disk"
30261	//   ],
30262	//   "parameters": {
30263	//     "disk": {
30264	//       "description": "Name of the persistent disk to snapshot.",
30265	//       "location": "path",
30266	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
30267	//       "required": true,
30268	//       "type": "string"
30269	//     },
30270	//     "guestFlush": {
30271	//       "location": "query",
30272	//       "type": "boolean"
30273	//     },
30274	//     "project": {
30275	//       "description": "Project ID for this request.",
30276	//       "location": "path",
30277	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
30278	//       "required": true,
30279	//       "type": "string"
30280	//     },
30281	//     "requestId": {
30282	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
30283	//       "location": "query",
30284	//       "type": "string"
30285	//     },
30286	//     "zone": {
30287	//       "description": "The name of the zone for this request.",
30288	//       "location": "path",
30289	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
30290	//       "required": true,
30291	//       "type": "string"
30292	//     }
30293	//   },
30294	//   "path": "{project}/zones/{zone}/disks/{disk}/createSnapshot",
30295	//   "request": {
30296	//     "$ref": "Snapshot"
30297	//   },
30298	//   "response": {
30299	//     "$ref": "Operation"
30300	//   },
30301	//   "scopes": [
30302	//     "https://www.googleapis.com/auth/cloud-platform",
30303	//     "https://www.googleapis.com/auth/compute"
30304	//   ]
30305	// }
30306
30307}
30308
30309// method id "compute.disks.delete":
30310
30311type DisksDeleteCall struct {
30312	s          *Service
30313	project    string
30314	zone       string
30315	disk       string
30316	urlParams_ gensupport.URLParams
30317	ctx_       context.Context
30318	header_    http.Header
30319}
30320
30321// Delete: Deletes the specified persistent disk. Deleting a disk
30322// removes its data permanently and is irreversible. However, deleting a
30323// disk does not delete any snapshots previously made from the disk. You
30324// must separately delete snapshots.
30325// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/delete
30326func (r *DisksService) Delete(project string, zone string, disk string) *DisksDeleteCall {
30327	c := &DisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
30328	c.project = project
30329	c.zone = zone
30330	c.disk = disk
30331	return c
30332}
30333
30334// RequestId sets the optional parameter "requestId": An optional
30335// request ID to identify requests. Specify a unique request ID so that
30336// if you must retry your request, the server will know to ignore the
30337// request if it has already been completed.
30338//
30339// For example, consider a situation where you make an initial request
30340// and the request times out. If you make the request again with the
30341// same request ID, the server can check if original operation with the
30342// same request ID was received, and if so, will ignore the second
30343// request. This prevents clients from accidentally creating duplicate
30344// commitments.
30345//
30346// The request ID must be a valid UUID with the exception that zero UUID
30347// is not supported (00000000-0000-0000-0000-000000000000).
30348func (c *DisksDeleteCall) RequestId(requestId string) *DisksDeleteCall {
30349	c.urlParams_.Set("requestId", requestId)
30350	return c
30351}
30352
30353// Fields allows partial responses to be retrieved. See
30354// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
30355// for more information.
30356func (c *DisksDeleteCall) Fields(s ...googleapi.Field) *DisksDeleteCall {
30357	c.urlParams_.Set("fields", googleapi.CombineFields(s))
30358	return c
30359}
30360
30361// Context sets the context to be used in this call's Do method. Any
30362// pending HTTP request will be aborted if the provided context is
30363// canceled.
30364func (c *DisksDeleteCall) Context(ctx context.Context) *DisksDeleteCall {
30365	c.ctx_ = ctx
30366	return c
30367}
30368
30369// Header returns an http.Header that can be modified by the caller to
30370// add HTTP headers to the request.
30371func (c *DisksDeleteCall) Header() http.Header {
30372	if c.header_ == nil {
30373		c.header_ = make(http.Header)
30374	}
30375	return c.header_
30376}
30377
30378func (c *DisksDeleteCall) doRequest(alt string) (*http.Response, error) {
30379	reqHeaders := make(http.Header)
30380	for k, v := range c.header_ {
30381		reqHeaders[k] = v
30382	}
30383	reqHeaders.Set("User-Agent", c.s.userAgent())
30384	var body io.Reader = nil
30385	c.urlParams_.Set("alt", alt)
30386	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}")
30387	urls += "?" + c.urlParams_.Encode()
30388	req, _ := http.NewRequest("DELETE", urls, body)
30389	req.Header = reqHeaders
30390	googleapi.Expand(req.URL, map[string]string{
30391		"project": c.project,
30392		"zone":    c.zone,
30393		"disk":    c.disk,
30394	})
30395	return gensupport.SendRequest(c.ctx_, c.s.client, req)
30396}
30397
30398// Do executes the "compute.disks.delete" call.
30399// Exactly one of *Operation or error will be non-nil. Any non-2xx
30400// status code is an error. Response headers are in either
30401// *Operation.ServerResponse.Header or (if a response was returned at
30402// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
30403// to check whether the returned error was because
30404// http.StatusNotModified was returned.
30405func (c *DisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
30406	gensupport.SetOptions(c.urlParams_, opts...)
30407	res, err := c.doRequest("json")
30408	if res != nil && res.StatusCode == http.StatusNotModified {
30409		if res.Body != nil {
30410			res.Body.Close()
30411		}
30412		return nil, &googleapi.Error{
30413			Code:   res.StatusCode,
30414			Header: res.Header,
30415		}
30416	}
30417	if err != nil {
30418		return nil, err
30419	}
30420	defer googleapi.CloseBody(res)
30421	if err := googleapi.CheckResponse(res); err != nil {
30422		return nil, err
30423	}
30424	ret := &Operation{
30425		ServerResponse: googleapi.ServerResponse{
30426			Header:         res.Header,
30427			HTTPStatusCode: res.StatusCode,
30428		},
30429	}
30430	target := &ret
30431	if err := gensupport.DecodeResponse(target, res); err != nil {
30432		return nil, err
30433	}
30434	return ret, nil
30435	// {
30436	//   "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.",
30437	//   "httpMethod": "DELETE",
30438	//   "id": "compute.disks.delete",
30439	//   "parameterOrder": [
30440	//     "project",
30441	//     "zone",
30442	//     "disk"
30443	//   ],
30444	//   "parameters": {
30445	//     "disk": {
30446	//       "description": "Name of the persistent disk to delete.",
30447	//       "location": "path",
30448	//       "required": true,
30449	//       "type": "string"
30450	//     },
30451	//     "project": {
30452	//       "description": "Project ID for this request.",
30453	//       "location": "path",
30454	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
30455	//       "required": true,
30456	//       "type": "string"
30457	//     },
30458	//     "requestId": {
30459	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
30460	//       "location": "query",
30461	//       "type": "string"
30462	//     },
30463	//     "zone": {
30464	//       "description": "The name of the zone for this request.",
30465	//       "location": "path",
30466	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
30467	//       "required": true,
30468	//       "type": "string"
30469	//     }
30470	//   },
30471	//   "path": "{project}/zones/{zone}/disks/{disk}",
30472	//   "response": {
30473	//     "$ref": "Operation"
30474	//   },
30475	//   "scopes": [
30476	//     "https://www.googleapis.com/auth/cloud-platform",
30477	//     "https://www.googleapis.com/auth/compute"
30478	//   ]
30479	// }
30480
30481}
30482
30483// method id "compute.disks.get":
30484
30485type DisksGetCall struct {
30486	s            *Service
30487	project      string
30488	zone         string
30489	disk         string
30490	urlParams_   gensupport.URLParams
30491	ifNoneMatch_ string
30492	ctx_         context.Context
30493	header_      http.Header
30494}
30495
30496// Get: Returns a specified persistent disk. Get a list of available
30497// persistent disks by making a list() request.
30498// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/get
30499func (r *DisksService) Get(project string, zone string, disk string) *DisksGetCall {
30500	c := &DisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
30501	c.project = project
30502	c.zone = zone
30503	c.disk = disk
30504	return c
30505}
30506
30507// Fields allows partial responses to be retrieved. See
30508// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
30509// for more information.
30510func (c *DisksGetCall) Fields(s ...googleapi.Field) *DisksGetCall {
30511	c.urlParams_.Set("fields", googleapi.CombineFields(s))
30512	return c
30513}
30514
30515// IfNoneMatch sets the optional parameter which makes the operation
30516// fail if the object's ETag matches the given value. This is useful for
30517// getting updates only after the object has changed since the last
30518// request. Use googleapi.IsNotModified to check whether the response
30519// error from Do is the result of In-None-Match.
30520func (c *DisksGetCall) IfNoneMatch(entityTag string) *DisksGetCall {
30521	c.ifNoneMatch_ = entityTag
30522	return c
30523}
30524
30525// Context sets the context to be used in this call's Do method. Any
30526// pending HTTP request will be aborted if the provided context is
30527// canceled.
30528func (c *DisksGetCall) Context(ctx context.Context) *DisksGetCall {
30529	c.ctx_ = ctx
30530	return c
30531}
30532
30533// Header returns an http.Header that can be modified by the caller to
30534// add HTTP headers to the request.
30535func (c *DisksGetCall) Header() http.Header {
30536	if c.header_ == nil {
30537		c.header_ = make(http.Header)
30538	}
30539	return c.header_
30540}
30541
30542func (c *DisksGetCall) doRequest(alt string) (*http.Response, error) {
30543	reqHeaders := make(http.Header)
30544	for k, v := range c.header_ {
30545		reqHeaders[k] = v
30546	}
30547	reqHeaders.Set("User-Agent", c.s.userAgent())
30548	if c.ifNoneMatch_ != "" {
30549		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
30550	}
30551	var body io.Reader = nil
30552	c.urlParams_.Set("alt", alt)
30553	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}")
30554	urls += "?" + c.urlParams_.Encode()
30555	req, _ := http.NewRequest("GET", urls, body)
30556	req.Header = reqHeaders
30557	googleapi.Expand(req.URL, map[string]string{
30558		"project": c.project,
30559		"zone":    c.zone,
30560		"disk":    c.disk,
30561	})
30562	return gensupport.SendRequest(c.ctx_, c.s.client, req)
30563}
30564
30565// Do executes the "compute.disks.get" call.
30566// Exactly one of *Disk or error will be non-nil. Any non-2xx status
30567// code is an error. Response headers are in either
30568// *Disk.ServerResponse.Header or (if a response was returned at all) in
30569// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
30570// whether the returned error was because http.StatusNotModified was
30571// returned.
30572func (c *DisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
30573	gensupport.SetOptions(c.urlParams_, opts...)
30574	res, err := c.doRequest("json")
30575	if res != nil && res.StatusCode == http.StatusNotModified {
30576		if res.Body != nil {
30577			res.Body.Close()
30578		}
30579		return nil, &googleapi.Error{
30580			Code:   res.StatusCode,
30581			Header: res.Header,
30582		}
30583	}
30584	if err != nil {
30585		return nil, err
30586	}
30587	defer googleapi.CloseBody(res)
30588	if err := googleapi.CheckResponse(res); err != nil {
30589		return nil, err
30590	}
30591	ret := &Disk{
30592		ServerResponse: googleapi.ServerResponse{
30593			Header:         res.Header,
30594			HTTPStatusCode: res.StatusCode,
30595		},
30596	}
30597	target := &ret
30598	if err := gensupport.DecodeResponse(target, res); err != nil {
30599		return nil, err
30600	}
30601	return ret, nil
30602	// {
30603	//   "description": "Returns a specified persistent disk. Get a list of available persistent disks by making a list() request.",
30604	//   "httpMethod": "GET",
30605	//   "id": "compute.disks.get",
30606	//   "parameterOrder": [
30607	//     "project",
30608	//     "zone",
30609	//     "disk"
30610	//   ],
30611	//   "parameters": {
30612	//     "disk": {
30613	//       "description": "Name of the persistent disk to return.",
30614	//       "location": "path",
30615	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
30616	//       "required": true,
30617	//       "type": "string"
30618	//     },
30619	//     "project": {
30620	//       "description": "Project ID for this request.",
30621	//       "location": "path",
30622	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
30623	//       "required": true,
30624	//       "type": "string"
30625	//     },
30626	//     "zone": {
30627	//       "description": "The name of the zone for this request.",
30628	//       "location": "path",
30629	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
30630	//       "required": true,
30631	//       "type": "string"
30632	//     }
30633	//   },
30634	//   "path": "{project}/zones/{zone}/disks/{disk}",
30635	//   "response": {
30636	//     "$ref": "Disk"
30637	//   },
30638	//   "scopes": [
30639	//     "https://www.googleapis.com/auth/cloud-platform",
30640	//     "https://www.googleapis.com/auth/compute",
30641	//     "https://www.googleapis.com/auth/compute.readonly"
30642	//   ]
30643	// }
30644
30645}
30646
30647// method id "compute.disks.insert":
30648
30649type DisksInsertCall struct {
30650	s          *Service
30651	project    string
30652	zone       string
30653	disk       *Disk
30654	urlParams_ gensupport.URLParams
30655	ctx_       context.Context
30656	header_    http.Header
30657}
30658
30659// Insert: Creates a persistent disk in the specified project using the
30660// data in the request. You can create a disk with a sourceImage, a
30661// sourceSnapshot, or create an empty 500 GB data disk by omitting all
30662// properties. You can also create a disk that is larger than the
30663// default size by specifying the sizeGb property.
30664// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/insert
30665func (r *DisksService) Insert(project string, zone string, disk *Disk) *DisksInsertCall {
30666	c := &DisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
30667	c.project = project
30668	c.zone = zone
30669	c.disk = disk
30670	return c
30671}
30672
30673// RequestId sets the optional parameter "requestId": An optional
30674// request ID to identify requests. Specify a unique request ID so that
30675// if you must retry your request, the server will know to ignore the
30676// request if it has already been completed.
30677//
30678// For example, consider a situation where you make an initial request
30679// and the request times out. If you make the request again with the
30680// same request ID, the server can check if original operation with the
30681// same request ID was received, and if so, will ignore the second
30682// request. This prevents clients from accidentally creating duplicate
30683// commitments.
30684//
30685// The request ID must be a valid UUID with the exception that zero UUID
30686// is not supported (00000000-0000-0000-0000-000000000000).
30687func (c *DisksInsertCall) RequestId(requestId string) *DisksInsertCall {
30688	c.urlParams_.Set("requestId", requestId)
30689	return c
30690}
30691
30692// SourceImage sets the optional parameter "sourceImage": Source image
30693// to restore onto a disk.
30694func (c *DisksInsertCall) SourceImage(sourceImage string) *DisksInsertCall {
30695	c.urlParams_.Set("sourceImage", sourceImage)
30696	return c
30697}
30698
30699// Fields allows partial responses to be retrieved. See
30700// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
30701// for more information.
30702func (c *DisksInsertCall) Fields(s ...googleapi.Field) *DisksInsertCall {
30703	c.urlParams_.Set("fields", googleapi.CombineFields(s))
30704	return c
30705}
30706
30707// Context sets the context to be used in this call's Do method. Any
30708// pending HTTP request will be aborted if the provided context is
30709// canceled.
30710func (c *DisksInsertCall) Context(ctx context.Context) *DisksInsertCall {
30711	c.ctx_ = ctx
30712	return c
30713}
30714
30715// Header returns an http.Header that can be modified by the caller to
30716// add HTTP headers to the request.
30717func (c *DisksInsertCall) Header() http.Header {
30718	if c.header_ == nil {
30719		c.header_ = make(http.Header)
30720	}
30721	return c.header_
30722}
30723
30724func (c *DisksInsertCall) doRequest(alt string) (*http.Response, error) {
30725	reqHeaders := make(http.Header)
30726	for k, v := range c.header_ {
30727		reqHeaders[k] = v
30728	}
30729	reqHeaders.Set("User-Agent", c.s.userAgent())
30730	var body io.Reader = nil
30731	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
30732	if err != nil {
30733		return nil, err
30734	}
30735	reqHeaders.Set("Content-Type", "application/json")
30736	c.urlParams_.Set("alt", alt)
30737	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks")
30738	urls += "?" + c.urlParams_.Encode()
30739	req, _ := http.NewRequest("POST", urls, body)
30740	req.Header = reqHeaders
30741	googleapi.Expand(req.URL, map[string]string{
30742		"project": c.project,
30743		"zone":    c.zone,
30744	})
30745	return gensupport.SendRequest(c.ctx_, c.s.client, req)
30746}
30747
30748// Do executes the "compute.disks.insert" call.
30749// Exactly one of *Operation or error will be non-nil. Any non-2xx
30750// status code is an error. Response headers are in either
30751// *Operation.ServerResponse.Header or (if a response was returned at
30752// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
30753// to check whether the returned error was because
30754// http.StatusNotModified was returned.
30755func (c *DisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
30756	gensupport.SetOptions(c.urlParams_, opts...)
30757	res, err := c.doRequest("json")
30758	if res != nil && res.StatusCode == http.StatusNotModified {
30759		if res.Body != nil {
30760			res.Body.Close()
30761		}
30762		return nil, &googleapi.Error{
30763			Code:   res.StatusCode,
30764			Header: res.Header,
30765		}
30766	}
30767	if err != nil {
30768		return nil, err
30769	}
30770	defer googleapi.CloseBody(res)
30771	if err := googleapi.CheckResponse(res); err != nil {
30772		return nil, err
30773	}
30774	ret := &Operation{
30775		ServerResponse: googleapi.ServerResponse{
30776			Header:         res.Header,
30777			HTTPStatusCode: res.StatusCode,
30778		},
30779	}
30780	target := &ret
30781	if err := gensupport.DecodeResponse(target, res); err != nil {
30782		return nil, err
30783	}
30784	return ret, nil
30785	// {
30786	//   "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.",
30787	//   "httpMethod": "POST",
30788	//   "id": "compute.disks.insert",
30789	//   "parameterOrder": [
30790	//     "project",
30791	//     "zone"
30792	//   ],
30793	//   "parameters": {
30794	//     "project": {
30795	//       "description": "Project ID for this request.",
30796	//       "location": "path",
30797	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
30798	//       "required": true,
30799	//       "type": "string"
30800	//     },
30801	//     "requestId": {
30802	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
30803	//       "location": "query",
30804	//       "type": "string"
30805	//     },
30806	//     "sourceImage": {
30807	//       "description": "Optional. Source image to restore onto a disk.",
30808	//       "location": "query",
30809	//       "type": "string"
30810	//     },
30811	//     "zone": {
30812	//       "description": "The name of the zone for this request.",
30813	//       "location": "path",
30814	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
30815	//       "required": true,
30816	//       "type": "string"
30817	//     }
30818	//   },
30819	//   "path": "{project}/zones/{zone}/disks",
30820	//   "request": {
30821	//     "$ref": "Disk"
30822	//   },
30823	//   "response": {
30824	//     "$ref": "Operation"
30825	//   },
30826	//   "scopes": [
30827	//     "https://www.googleapis.com/auth/cloud-platform",
30828	//     "https://www.googleapis.com/auth/compute"
30829	//   ]
30830	// }
30831
30832}
30833
30834// method id "compute.disks.list":
30835
30836type DisksListCall struct {
30837	s            *Service
30838	project      string
30839	zone         string
30840	urlParams_   gensupport.URLParams
30841	ifNoneMatch_ string
30842	ctx_         context.Context
30843	header_      http.Header
30844}
30845
30846// List: Retrieves a list of persistent disks contained within the
30847// specified zone.
30848// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/list
30849func (r *DisksService) List(project string, zone string) *DisksListCall {
30850	c := &DisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
30851	c.project = project
30852	c.zone = zone
30853	return c
30854}
30855
30856// Filter sets the optional parameter "filter": Sets a filter
30857// {expression} for filtering listed resources. Your {expression} must
30858// be in the format: field_name comparison_string literal_string.
30859//
30860// The field_name is the name of the field you want to compare. Only
30861// atomic field types are supported (string, number, boolean). The
30862// comparison_string must be either eq (equals) or ne (not equals). The
30863// literal_string is the string value to filter to. The literal value
30864// must be valid for the type of field you are filtering by (string,
30865// number, boolean). For string fields, the literal value is interpreted
30866// as a regular expression using RE2 syntax. The literal value must
30867// match the entire field.
30868//
30869// For example, to filter for instances that do not have a name of
30870// example-instance, you would use name ne example-instance.
30871//
30872// You can filter on nested fields. For example, you could filter on
30873// instances that have set the scheduling.automaticRestart field to
30874// true. Use filtering on nested fields to take advantage of labels to
30875// organize and search for results based on label values.
30876//
30877// To filter on multiple expressions, provide each separate expression
30878// within parentheses. For example, (scheduling.automaticRestart eq
30879// true) (zone eq us-central1-f). Multiple expressions are treated as
30880// AND expressions, meaning that resources must match all expressions to
30881// pass the filters.
30882func (c *DisksListCall) Filter(filter string) *DisksListCall {
30883	c.urlParams_.Set("filter", filter)
30884	return c
30885}
30886
30887// MaxResults sets the optional parameter "maxResults": The maximum
30888// number of results per page that should be returned. If the number of
30889// available results is larger than maxResults, Compute Engine returns a
30890// nextPageToken that can be used to get the next page of results in
30891// subsequent list requests. Acceptable values are 0 to 500, inclusive.
30892// (Default: 500)
30893func (c *DisksListCall) MaxResults(maxResults int64) *DisksListCall {
30894	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
30895	return c
30896}
30897
30898// OrderBy sets the optional parameter "orderBy": Sorts list results by
30899// a certain order. By default, results are returned in alphanumerical
30900// order based on the resource name.
30901//
30902// You can also sort results in descending order based on the creation
30903// timestamp using orderBy="creationTimestamp desc". This sorts results
30904// based on the creationTimestamp field in reverse chronological order
30905// (newest result first). Use this to sort resources like operations so
30906// that the newest operation is returned first.
30907//
30908// Currently, only sorting by name or creationTimestamp desc is
30909// supported.
30910func (c *DisksListCall) OrderBy(orderBy string) *DisksListCall {
30911	c.urlParams_.Set("orderBy", orderBy)
30912	return c
30913}
30914
30915// PageToken sets the optional parameter "pageToken": Specifies a page
30916// token to use. Set pageToken to the nextPageToken returned by a
30917// previous list request to get the next page of results.
30918func (c *DisksListCall) PageToken(pageToken string) *DisksListCall {
30919	c.urlParams_.Set("pageToken", pageToken)
30920	return c
30921}
30922
30923// Fields allows partial responses to be retrieved. See
30924// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
30925// for more information.
30926func (c *DisksListCall) Fields(s ...googleapi.Field) *DisksListCall {
30927	c.urlParams_.Set("fields", googleapi.CombineFields(s))
30928	return c
30929}
30930
30931// IfNoneMatch sets the optional parameter which makes the operation
30932// fail if the object's ETag matches the given value. This is useful for
30933// getting updates only after the object has changed since the last
30934// request. Use googleapi.IsNotModified to check whether the response
30935// error from Do is the result of In-None-Match.
30936func (c *DisksListCall) IfNoneMatch(entityTag string) *DisksListCall {
30937	c.ifNoneMatch_ = entityTag
30938	return c
30939}
30940
30941// Context sets the context to be used in this call's Do method. Any
30942// pending HTTP request will be aborted if the provided context is
30943// canceled.
30944func (c *DisksListCall) Context(ctx context.Context) *DisksListCall {
30945	c.ctx_ = ctx
30946	return c
30947}
30948
30949// Header returns an http.Header that can be modified by the caller to
30950// add HTTP headers to the request.
30951func (c *DisksListCall) Header() http.Header {
30952	if c.header_ == nil {
30953		c.header_ = make(http.Header)
30954	}
30955	return c.header_
30956}
30957
30958func (c *DisksListCall) doRequest(alt string) (*http.Response, error) {
30959	reqHeaders := make(http.Header)
30960	for k, v := range c.header_ {
30961		reqHeaders[k] = v
30962	}
30963	reqHeaders.Set("User-Agent", c.s.userAgent())
30964	if c.ifNoneMatch_ != "" {
30965		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
30966	}
30967	var body io.Reader = nil
30968	c.urlParams_.Set("alt", alt)
30969	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks")
30970	urls += "?" + c.urlParams_.Encode()
30971	req, _ := http.NewRequest("GET", urls, body)
30972	req.Header = reqHeaders
30973	googleapi.Expand(req.URL, map[string]string{
30974		"project": c.project,
30975		"zone":    c.zone,
30976	})
30977	return gensupport.SendRequest(c.ctx_, c.s.client, req)
30978}
30979
30980// Do executes the "compute.disks.list" call.
30981// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
30982// code is an error. Response headers are in either
30983// *DiskList.ServerResponse.Header or (if a response was returned at
30984// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
30985// to check whether the returned error was because
30986// http.StatusNotModified was returned.
30987func (c *DisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
30988	gensupport.SetOptions(c.urlParams_, opts...)
30989	res, err := c.doRequest("json")
30990	if res != nil && res.StatusCode == http.StatusNotModified {
30991		if res.Body != nil {
30992			res.Body.Close()
30993		}
30994		return nil, &googleapi.Error{
30995			Code:   res.StatusCode,
30996			Header: res.Header,
30997		}
30998	}
30999	if err != nil {
31000		return nil, err
31001	}
31002	defer googleapi.CloseBody(res)
31003	if err := googleapi.CheckResponse(res); err != nil {
31004		return nil, err
31005	}
31006	ret := &DiskList{
31007		ServerResponse: googleapi.ServerResponse{
31008			Header:         res.Header,
31009			HTTPStatusCode: res.StatusCode,
31010		},
31011	}
31012	target := &ret
31013	if err := gensupport.DecodeResponse(target, res); err != nil {
31014		return nil, err
31015	}
31016	return ret, nil
31017	// {
31018	//   "description": "Retrieves a list of persistent disks contained within the specified zone.",
31019	//   "httpMethod": "GET",
31020	//   "id": "compute.disks.list",
31021	//   "parameterOrder": [
31022	//     "project",
31023	//     "zone"
31024	//   ],
31025	//   "parameters": {
31026	//     "filter": {
31027	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
31028	//       "location": "query",
31029	//       "type": "string"
31030	//     },
31031	//     "maxResults": {
31032	//       "default": "500",
31033	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
31034	//       "format": "uint32",
31035	//       "location": "query",
31036	//       "minimum": "0",
31037	//       "type": "integer"
31038	//     },
31039	//     "orderBy": {
31040	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
31041	//       "location": "query",
31042	//       "type": "string"
31043	//     },
31044	//     "pageToken": {
31045	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
31046	//       "location": "query",
31047	//       "type": "string"
31048	//     },
31049	//     "project": {
31050	//       "description": "Project ID for this request.",
31051	//       "location": "path",
31052	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
31053	//       "required": true,
31054	//       "type": "string"
31055	//     },
31056	//     "zone": {
31057	//       "description": "The name of the zone for this request.",
31058	//       "location": "path",
31059	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
31060	//       "required": true,
31061	//       "type": "string"
31062	//     }
31063	//   },
31064	//   "path": "{project}/zones/{zone}/disks",
31065	//   "response": {
31066	//     "$ref": "DiskList"
31067	//   },
31068	//   "scopes": [
31069	//     "https://www.googleapis.com/auth/cloud-platform",
31070	//     "https://www.googleapis.com/auth/compute",
31071	//     "https://www.googleapis.com/auth/compute.readonly"
31072	//   ]
31073	// }
31074
31075}
31076
31077// Pages invokes f for each page of results.
31078// A non-nil error returned from f will halt the iteration.
31079// The provided context supersedes any context provided to the Context method.
31080func (c *DisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
31081	c.ctx_ = ctx
31082	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
31083	for {
31084		x, err := c.Do()
31085		if err != nil {
31086			return err
31087		}
31088		if err := f(x); err != nil {
31089			return err
31090		}
31091		if x.NextPageToken == "" {
31092			return nil
31093		}
31094		c.PageToken(x.NextPageToken)
31095	}
31096}
31097
31098// method id "compute.disks.resize":
31099
31100type DisksResizeCall struct {
31101	s                  *Service
31102	project            string
31103	zone               string
31104	disk               string
31105	disksresizerequest *DisksResizeRequest
31106	urlParams_         gensupport.URLParams
31107	ctx_               context.Context
31108	header_            http.Header
31109}
31110
31111// Resize: Resizes the specified persistent disk. You can only increase
31112// the size of the disk.
31113func (r *DisksService) Resize(project string, zone string, disk string, disksresizerequest *DisksResizeRequest) *DisksResizeCall {
31114	c := &DisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31115	c.project = project
31116	c.zone = zone
31117	c.disk = disk
31118	c.disksresizerequest = disksresizerequest
31119	return c
31120}
31121
31122// RequestId sets the optional parameter "requestId": An optional
31123// request ID to identify requests. Specify a unique request ID so that
31124// if you must retry your request, the server will know to ignore the
31125// request if it has already been completed.
31126//
31127// For example, consider a situation where you make an initial request
31128// and the request times out. If you make the request again with the
31129// same request ID, the server can check if original operation with the
31130// same request ID was received, and if so, will ignore the second
31131// request. This prevents clients from accidentally creating duplicate
31132// commitments.
31133//
31134// The request ID must be a valid UUID with the exception that zero UUID
31135// is not supported (00000000-0000-0000-0000-000000000000).
31136func (c *DisksResizeCall) RequestId(requestId string) *DisksResizeCall {
31137	c.urlParams_.Set("requestId", requestId)
31138	return c
31139}
31140
31141// Fields allows partial responses to be retrieved. See
31142// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31143// for more information.
31144func (c *DisksResizeCall) Fields(s ...googleapi.Field) *DisksResizeCall {
31145	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31146	return c
31147}
31148
31149// Context sets the context to be used in this call's Do method. Any
31150// pending HTTP request will be aborted if the provided context is
31151// canceled.
31152func (c *DisksResizeCall) Context(ctx context.Context) *DisksResizeCall {
31153	c.ctx_ = ctx
31154	return c
31155}
31156
31157// Header returns an http.Header that can be modified by the caller to
31158// add HTTP headers to the request.
31159func (c *DisksResizeCall) Header() http.Header {
31160	if c.header_ == nil {
31161		c.header_ = make(http.Header)
31162	}
31163	return c.header_
31164}
31165
31166func (c *DisksResizeCall) doRequest(alt string) (*http.Response, error) {
31167	reqHeaders := make(http.Header)
31168	for k, v := range c.header_ {
31169		reqHeaders[k] = v
31170	}
31171	reqHeaders.Set("User-Agent", c.s.userAgent())
31172	var body io.Reader = nil
31173	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksresizerequest)
31174	if err != nil {
31175		return nil, err
31176	}
31177	reqHeaders.Set("Content-Type", "application/json")
31178	c.urlParams_.Set("alt", alt)
31179	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/resize")
31180	urls += "?" + c.urlParams_.Encode()
31181	req, _ := http.NewRequest("POST", urls, body)
31182	req.Header = reqHeaders
31183	googleapi.Expand(req.URL, map[string]string{
31184		"project": c.project,
31185		"zone":    c.zone,
31186		"disk":    c.disk,
31187	})
31188	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31189}
31190
31191// Do executes the "compute.disks.resize" call.
31192// Exactly one of *Operation or error will be non-nil. Any non-2xx
31193// status code is an error. Response headers are in either
31194// *Operation.ServerResponse.Header or (if a response was returned at
31195// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
31196// to check whether the returned error was because
31197// http.StatusNotModified was returned.
31198func (c *DisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
31199	gensupport.SetOptions(c.urlParams_, opts...)
31200	res, err := c.doRequest("json")
31201	if res != nil && res.StatusCode == http.StatusNotModified {
31202		if res.Body != nil {
31203			res.Body.Close()
31204		}
31205		return nil, &googleapi.Error{
31206			Code:   res.StatusCode,
31207			Header: res.Header,
31208		}
31209	}
31210	if err != nil {
31211		return nil, err
31212	}
31213	defer googleapi.CloseBody(res)
31214	if err := googleapi.CheckResponse(res); err != nil {
31215		return nil, err
31216	}
31217	ret := &Operation{
31218		ServerResponse: googleapi.ServerResponse{
31219			Header:         res.Header,
31220			HTTPStatusCode: res.StatusCode,
31221		},
31222	}
31223	target := &ret
31224	if err := gensupport.DecodeResponse(target, res); err != nil {
31225		return nil, err
31226	}
31227	return ret, nil
31228	// {
31229	//   "description": "Resizes the specified persistent disk. You can only increase the size of the disk.",
31230	//   "httpMethod": "POST",
31231	//   "id": "compute.disks.resize",
31232	//   "parameterOrder": [
31233	//     "project",
31234	//     "zone",
31235	//     "disk"
31236	//   ],
31237	//   "parameters": {
31238	//     "disk": {
31239	//       "description": "The name of the persistent disk.",
31240	//       "location": "path",
31241	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
31242	//       "required": true,
31243	//       "type": "string"
31244	//     },
31245	//     "project": {
31246	//       "description": "Project ID for this request.",
31247	//       "location": "path",
31248	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
31249	//       "required": true,
31250	//       "type": "string"
31251	//     },
31252	//     "requestId": {
31253	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
31254	//       "location": "query",
31255	//       "type": "string"
31256	//     },
31257	//     "zone": {
31258	//       "description": "The name of the zone for this request.",
31259	//       "location": "path",
31260	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
31261	//       "required": true,
31262	//       "type": "string"
31263	//     }
31264	//   },
31265	//   "path": "{project}/zones/{zone}/disks/{disk}/resize",
31266	//   "request": {
31267	//     "$ref": "DisksResizeRequest"
31268	//   },
31269	//   "response": {
31270	//     "$ref": "Operation"
31271	//   },
31272	//   "scopes": [
31273	//     "https://www.googleapis.com/auth/cloud-platform",
31274	//     "https://www.googleapis.com/auth/compute"
31275	//   ]
31276	// }
31277
31278}
31279
31280// method id "compute.disks.setLabels":
31281
31282type DisksSetLabelsCall struct {
31283	s                    *Service
31284	project              string
31285	zone                 string
31286	resource             string
31287	zonesetlabelsrequest *ZoneSetLabelsRequest
31288	urlParams_           gensupport.URLParams
31289	ctx_                 context.Context
31290	header_              http.Header
31291}
31292
31293// SetLabels: Sets the labels on a disk. To learn more about labels,
31294// read the Labeling Resources documentation.
31295func (r *DisksService) SetLabels(project string, zone string, resource string, zonesetlabelsrequest *ZoneSetLabelsRequest) *DisksSetLabelsCall {
31296	c := &DisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31297	c.project = project
31298	c.zone = zone
31299	c.resource = resource
31300	c.zonesetlabelsrequest = zonesetlabelsrequest
31301	return c
31302}
31303
31304// RequestId sets the optional parameter "requestId": An optional
31305// request ID to identify requests. Specify a unique request ID so that
31306// if you must retry your request, the server will know to ignore the
31307// request if it has already been completed.
31308//
31309// For example, consider a situation where you make an initial request
31310// and the request times out. If you make the request again with the
31311// same request ID, the server can check if original operation with the
31312// same request ID was received, and if so, will ignore the second
31313// request. This prevents clients from accidentally creating duplicate
31314// commitments.
31315//
31316// The request ID must be a valid UUID with the exception that zero UUID
31317// is not supported (00000000-0000-0000-0000-000000000000).
31318func (c *DisksSetLabelsCall) RequestId(requestId string) *DisksSetLabelsCall {
31319	c.urlParams_.Set("requestId", requestId)
31320	return c
31321}
31322
31323// Fields allows partial responses to be retrieved. See
31324// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31325// for more information.
31326func (c *DisksSetLabelsCall) Fields(s ...googleapi.Field) *DisksSetLabelsCall {
31327	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31328	return c
31329}
31330
31331// Context sets the context to be used in this call's Do method. Any
31332// pending HTTP request will be aborted if the provided context is
31333// canceled.
31334func (c *DisksSetLabelsCall) Context(ctx context.Context) *DisksSetLabelsCall {
31335	c.ctx_ = ctx
31336	return c
31337}
31338
31339// Header returns an http.Header that can be modified by the caller to
31340// add HTTP headers to the request.
31341func (c *DisksSetLabelsCall) Header() http.Header {
31342	if c.header_ == nil {
31343		c.header_ = make(http.Header)
31344	}
31345	return c.header_
31346}
31347
31348func (c *DisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
31349	reqHeaders := make(http.Header)
31350	for k, v := range c.header_ {
31351		reqHeaders[k] = v
31352	}
31353	reqHeaders.Set("User-Agent", c.s.userAgent())
31354	var body io.Reader = nil
31355	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetlabelsrequest)
31356	if err != nil {
31357		return nil, err
31358	}
31359	reqHeaders.Set("Content-Type", "application/json")
31360	c.urlParams_.Set("alt", alt)
31361	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/setLabels")
31362	urls += "?" + c.urlParams_.Encode()
31363	req, _ := http.NewRequest("POST", urls, body)
31364	req.Header = reqHeaders
31365	googleapi.Expand(req.URL, map[string]string{
31366		"project":  c.project,
31367		"zone":     c.zone,
31368		"resource": c.resource,
31369	})
31370	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31371}
31372
31373// Do executes the "compute.disks.setLabels" call.
31374// Exactly one of *Operation or error will be non-nil. Any non-2xx
31375// status code is an error. Response headers are in either
31376// *Operation.ServerResponse.Header or (if a response was returned at
31377// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
31378// to check whether the returned error was because
31379// http.StatusNotModified was returned.
31380func (c *DisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
31381	gensupport.SetOptions(c.urlParams_, opts...)
31382	res, err := c.doRequest("json")
31383	if res != nil && res.StatusCode == http.StatusNotModified {
31384		if res.Body != nil {
31385			res.Body.Close()
31386		}
31387		return nil, &googleapi.Error{
31388			Code:   res.StatusCode,
31389			Header: res.Header,
31390		}
31391	}
31392	if err != nil {
31393		return nil, err
31394	}
31395	defer googleapi.CloseBody(res)
31396	if err := googleapi.CheckResponse(res); err != nil {
31397		return nil, err
31398	}
31399	ret := &Operation{
31400		ServerResponse: googleapi.ServerResponse{
31401			Header:         res.Header,
31402			HTTPStatusCode: res.StatusCode,
31403		},
31404	}
31405	target := &ret
31406	if err := gensupport.DecodeResponse(target, res); err != nil {
31407		return nil, err
31408	}
31409	return ret, nil
31410	// {
31411	//   "description": "Sets the labels on a disk. To learn more about labels, read the Labeling Resources documentation.",
31412	//   "httpMethod": "POST",
31413	//   "id": "compute.disks.setLabels",
31414	//   "parameterOrder": [
31415	//     "project",
31416	//     "zone",
31417	//     "resource"
31418	//   ],
31419	//   "parameters": {
31420	//     "project": {
31421	//       "description": "Project ID for this request.",
31422	//       "location": "path",
31423	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
31424	//       "required": true,
31425	//       "type": "string"
31426	//     },
31427	//     "requestId": {
31428	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
31429	//       "location": "query",
31430	//       "type": "string"
31431	//     },
31432	//     "resource": {
31433	//       "description": "Name of the resource for this request.",
31434	//       "location": "path",
31435	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
31436	//       "required": true,
31437	//       "type": "string"
31438	//     },
31439	//     "zone": {
31440	//       "description": "The name of the zone for this request.",
31441	//       "location": "path",
31442	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
31443	//       "required": true,
31444	//       "type": "string"
31445	//     }
31446	//   },
31447	//   "path": "{project}/zones/{zone}/disks/{resource}/setLabels",
31448	//   "request": {
31449	//     "$ref": "ZoneSetLabelsRequest"
31450	//   },
31451	//   "response": {
31452	//     "$ref": "Operation"
31453	//   },
31454	//   "scopes": [
31455	//     "https://www.googleapis.com/auth/cloud-platform",
31456	//     "https://www.googleapis.com/auth/compute"
31457	//   ]
31458	// }
31459
31460}
31461
31462// method id "compute.firewalls.delete":
31463
31464type FirewallsDeleteCall struct {
31465	s          *Service
31466	project    string
31467	firewall   string
31468	urlParams_ gensupport.URLParams
31469	ctx_       context.Context
31470	header_    http.Header
31471}
31472
31473// Delete: Deletes the specified firewall.
31474// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/delete
31475func (r *FirewallsService) Delete(project string, firewall string) *FirewallsDeleteCall {
31476	c := &FirewallsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31477	c.project = project
31478	c.firewall = firewall
31479	return c
31480}
31481
31482// RequestId sets the optional parameter "requestId": An optional
31483// request ID to identify requests. Specify a unique request ID so that
31484// if you must retry your request, the server will know to ignore the
31485// request if it has already been completed.
31486//
31487// For example, consider a situation where you make an initial request
31488// and the request times out. If you make the request again with the
31489// same request ID, the server can check if original operation with the
31490// same request ID was received, and if so, will ignore the second
31491// request. This prevents clients from accidentally creating duplicate
31492// commitments.
31493//
31494// The request ID must be a valid UUID with the exception that zero UUID
31495// is not supported (00000000-0000-0000-0000-000000000000).
31496func (c *FirewallsDeleteCall) RequestId(requestId string) *FirewallsDeleteCall {
31497	c.urlParams_.Set("requestId", requestId)
31498	return c
31499}
31500
31501// Fields allows partial responses to be retrieved. See
31502// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31503// for more information.
31504func (c *FirewallsDeleteCall) Fields(s ...googleapi.Field) *FirewallsDeleteCall {
31505	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31506	return c
31507}
31508
31509// Context sets the context to be used in this call's Do method. Any
31510// pending HTTP request will be aborted if the provided context is
31511// canceled.
31512func (c *FirewallsDeleteCall) Context(ctx context.Context) *FirewallsDeleteCall {
31513	c.ctx_ = ctx
31514	return c
31515}
31516
31517// Header returns an http.Header that can be modified by the caller to
31518// add HTTP headers to the request.
31519func (c *FirewallsDeleteCall) Header() http.Header {
31520	if c.header_ == nil {
31521		c.header_ = make(http.Header)
31522	}
31523	return c.header_
31524}
31525
31526func (c *FirewallsDeleteCall) doRequest(alt string) (*http.Response, error) {
31527	reqHeaders := make(http.Header)
31528	for k, v := range c.header_ {
31529		reqHeaders[k] = v
31530	}
31531	reqHeaders.Set("User-Agent", c.s.userAgent())
31532	var body io.Reader = nil
31533	c.urlParams_.Set("alt", alt)
31534	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
31535	urls += "?" + c.urlParams_.Encode()
31536	req, _ := http.NewRequest("DELETE", urls, body)
31537	req.Header = reqHeaders
31538	googleapi.Expand(req.URL, map[string]string{
31539		"project":  c.project,
31540		"firewall": c.firewall,
31541	})
31542	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31543}
31544
31545// Do executes the "compute.firewalls.delete" call.
31546// Exactly one of *Operation or error will be non-nil. Any non-2xx
31547// status code is an error. Response headers are in either
31548// *Operation.ServerResponse.Header or (if a response was returned at
31549// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
31550// to check whether the returned error was because
31551// http.StatusNotModified was returned.
31552func (c *FirewallsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
31553	gensupport.SetOptions(c.urlParams_, opts...)
31554	res, err := c.doRequest("json")
31555	if res != nil && res.StatusCode == http.StatusNotModified {
31556		if res.Body != nil {
31557			res.Body.Close()
31558		}
31559		return nil, &googleapi.Error{
31560			Code:   res.StatusCode,
31561			Header: res.Header,
31562		}
31563	}
31564	if err != nil {
31565		return nil, err
31566	}
31567	defer googleapi.CloseBody(res)
31568	if err := googleapi.CheckResponse(res); err != nil {
31569		return nil, err
31570	}
31571	ret := &Operation{
31572		ServerResponse: googleapi.ServerResponse{
31573			Header:         res.Header,
31574			HTTPStatusCode: res.StatusCode,
31575		},
31576	}
31577	target := &ret
31578	if err := gensupport.DecodeResponse(target, res); err != nil {
31579		return nil, err
31580	}
31581	return ret, nil
31582	// {
31583	//   "description": "Deletes the specified firewall.",
31584	//   "httpMethod": "DELETE",
31585	//   "id": "compute.firewalls.delete",
31586	//   "parameterOrder": [
31587	//     "project",
31588	//     "firewall"
31589	//   ],
31590	//   "parameters": {
31591	//     "firewall": {
31592	//       "description": "Name of the firewall rule to delete.",
31593	//       "location": "path",
31594	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
31595	//       "required": true,
31596	//       "type": "string"
31597	//     },
31598	//     "project": {
31599	//       "description": "Project ID for this request.",
31600	//       "location": "path",
31601	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
31602	//       "required": true,
31603	//       "type": "string"
31604	//     },
31605	//     "requestId": {
31606	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
31607	//       "location": "query",
31608	//       "type": "string"
31609	//     }
31610	//   },
31611	//   "path": "{project}/global/firewalls/{firewall}",
31612	//   "response": {
31613	//     "$ref": "Operation"
31614	//   },
31615	//   "scopes": [
31616	//     "https://www.googleapis.com/auth/cloud-platform",
31617	//     "https://www.googleapis.com/auth/compute"
31618	//   ]
31619	// }
31620
31621}
31622
31623// method id "compute.firewalls.get":
31624
31625type FirewallsGetCall struct {
31626	s            *Service
31627	project      string
31628	firewall     string
31629	urlParams_   gensupport.URLParams
31630	ifNoneMatch_ string
31631	ctx_         context.Context
31632	header_      http.Header
31633}
31634
31635// Get: Returns the specified firewall.
31636// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/get
31637func (r *FirewallsService) Get(project string, firewall string) *FirewallsGetCall {
31638	c := &FirewallsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31639	c.project = project
31640	c.firewall = firewall
31641	return c
31642}
31643
31644// Fields allows partial responses to be retrieved. See
31645// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31646// for more information.
31647func (c *FirewallsGetCall) Fields(s ...googleapi.Field) *FirewallsGetCall {
31648	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31649	return c
31650}
31651
31652// IfNoneMatch sets the optional parameter which makes the operation
31653// fail if the object's ETag matches the given value. This is useful for
31654// getting updates only after the object has changed since the last
31655// request. Use googleapi.IsNotModified to check whether the response
31656// error from Do is the result of In-None-Match.
31657func (c *FirewallsGetCall) IfNoneMatch(entityTag string) *FirewallsGetCall {
31658	c.ifNoneMatch_ = entityTag
31659	return c
31660}
31661
31662// Context sets the context to be used in this call's Do method. Any
31663// pending HTTP request will be aborted if the provided context is
31664// canceled.
31665func (c *FirewallsGetCall) Context(ctx context.Context) *FirewallsGetCall {
31666	c.ctx_ = ctx
31667	return c
31668}
31669
31670// Header returns an http.Header that can be modified by the caller to
31671// add HTTP headers to the request.
31672func (c *FirewallsGetCall) Header() http.Header {
31673	if c.header_ == nil {
31674		c.header_ = make(http.Header)
31675	}
31676	return c.header_
31677}
31678
31679func (c *FirewallsGetCall) doRequest(alt string) (*http.Response, error) {
31680	reqHeaders := make(http.Header)
31681	for k, v := range c.header_ {
31682		reqHeaders[k] = v
31683	}
31684	reqHeaders.Set("User-Agent", c.s.userAgent())
31685	if c.ifNoneMatch_ != "" {
31686		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
31687	}
31688	var body io.Reader = nil
31689	c.urlParams_.Set("alt", alt)
31690	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
31691	urls += "?" + c.urlParams_.Encode()
31692	req, _ := http.NewRequest("GET", urls, body)
31693	req.Header = reqHeaders
31694	googleapi.Expand(req.URL, map[string]string{
31695		"project":  c.project,
31696		"firewall": c.firewall,
31697	})
31698	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31699}
31700
31701// Do executes the "compute.firewalls.get" call.
31702// Exactly one of *Firewall or error will be non-nil. Any non-2xx status
31703// code is an error. Response headers are in either
31704// *Firewall.ServerResponse.Header or (if a response was returned at
31705// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
31706// to check whether the returned error was because
31707// http.StatusNotModified was returned.
31708func (c *FirewallsGetCall) Do(opts ...googleapi.CallOption) (*Firewall, error) {
31709	gensupport.SetOptions(c.urlParams_, opts...)
31710	res, err := c.doRequest("json")
31711	if res != nil && res.StatusCode == http.StatusNotModified {
31712		if res.Body != nil {
31713			res.Body.Close()
31714		}
31715		return nil, &googleapi.Error{
31716			Code:   res.StatusCode,
31717			Header: res.Header,
31718		}
31719	}
31720	if err != nil {
31721		return nil, err
31722	}
31723	defer googleapi.CloseBody(res)
31724	if err := googleapi.CheckResponse(res); err != nil {
31725		return nil, err
31726	}
31727	ret := &Firewall{
31728		ServerResponse: googleapi.ServerResponse{
31729			Header:         res.Header,
31730			HTTPStatusCode: res.StatusCode,
31731		},
31732	}
31733	target := &ret
31734	if err := gensupport.DecodeResponse(target, res); err != nil {
31735		return nil, err
31736	}
31737	return ret, nil
31738	// {
31739	//   "description": "Returns the specified firewall.",
31740	//   "httpMethod": "GET",
31741	//   "id": "compute.firewalls.get",
31742	//   "parameterOrder": [
31743	//     "project",
31744	//     "firewall"
31745	//   ],
31746	//   "parameters": {
31747	//     "firewall": {
31748	//       "description": "Name of the firewall rule to return.",
31749	//       "location": "path",
31750	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
31751	//       "required": true,
31752	//       "type": "string"
31753	//     },
31754	//     "project": {
31755	//       "description": "Project ID for this request.",
31756	//       "location": "path",
31757	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
31758	//       "required": true,
31759	//       "type": "string"
31760	//     }
31761	//   },
31762	//   "path": "{project}/global/firewalls/{firewall}",
31763	//   "response": {
31764	//     "$ref": "Firewall"
31765	//   },
31766	//   "scopes": [
31767	//     "https://www.googleapis.com/auth/cloud-platform",
31768	//     "https://www.googleapis.com/auth/compute",
31769	//     "https://www.googleapis.com/auth/compute.readonly"
31770	//   ]
31771	// }
31772
31773}
31774
31775// method id "compute.firewalls.insert":
31776
31777type FirewallsInsertCall struct {
31778	s          *Service
31779	project    string
31780	firewall   *Firewall
31781	urlParams_ gensupport.URLParams
31782	ctx_       context.Context
31783	header_    http.Header
31784}
31785
31786// Insert: Creates a firewall rule in the specified project using the
31787// data included in the request.
31788// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/insert
31789func (r *FirewallsService) Insert(project string, firewall *Firewall) *FirewallsInsertCall {
31790	c := &FirewallsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31791	c.project = project
31792	c.firewall = firewall
31793	return c
31794}
31795
31796// RequestId sets the optional parameter "requestId": An optional
31797// request ID to identify requests. Specify a unique request ID so that
31798// if you must retry your request, the server will know to ignore the
31799// request if it has already been completed.
31800//
31801// For example, consider a situation where you make an initial request
31802// and the request times out. If you make the request again with the
31803// same request ID, the server can check if original operation with the
31804// same request ID was received, and if so, will ignore the second
31805// request. This prevents clients from accidentally creating duplicate
31806// commitments.
31807//
31808// The request ID must be a valid UUID with the exception that zero UUID
31809// is not supported (00000000-0000-0000-0000-000000000000).
31810func (c *FirewallsInsertCall) RequestId(requestId string) *FirewallsInsertCall {
31811	c.urlParams_.Set("requestId", requestId)
31812	return c
31813}
31814
31815// Fields allows partial responses to be retrieved. See
31816// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
31817// for more information.
31818func (c *FirewallsInsertCall) Fields(s ...googleapi.Field) *FirewallsInsertCall {
31819	c.urlParams_.Set("fields", googleapi.CombineFields(s))
31820	return c
31821}
31822
31823// Context sets the context to be used in this call's Do method. Any
31824// pending HTTP request will be aborted if the provided context is
31825// canceled.
31826func (c *FirewallsInsertCall) Context(ctx context.Context) *FirewallsInsertCall {
31827	c.ctx_ = ctx
31828	return c
31829}
31830
31831// Header returns an http.Header that can be modified by the caller to
31832// add HTTP headers to the request.
31833func (c *FirewallsInsertCall) Header() http.Header {
31834	if c.header_ == nil {
31835		c.header_ = make(http.Header)
31836	}
31837	return c.header_
31838}
31839
31840func (c *FirewallsInsertCall) doRequest(alt string) (*http.Response, error) {
31841	reqHeaders := make(http.Header)
31842	for k, v := range c.header_ {
31843		reqHeaders[k] = v
31844	}
31845	reqHeaders.Set("User-Agent", c.s.userAgent())
31846	var body io.Reader = nil
31847	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall)
31848	if err != nil {
31849		return nil, err
31850	}
31851	reqHeaders.Set("Content-Type", "application/json")
31852	c.urlParams_.Set("alt", alt)
31853	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls")
31854	urls += "?" + c.urlParams_.Encode()
31855	req, _ := http.NewRequest("POST", urls, body)
31856	req.Header = reqHeaders
31857	googleapi.Expand(req.URL, map[string]string{
31858		"project": c.project,
31859	})
31860	return gensupport.SendRequest(c.ctx_, c.s.client, req)
31861}
31862
31863// Do executes the "compute.firewalls.insert" call.
31864// Exactly one of *Operation or error will be non-nil. Any non-2xx
31865// status code is an error. Response headers are in either
31866// *Operation.ServerResponse.Header or (if a response was returned at
31867// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
31868// to check whether the returned error was because
31869// http.StatusNotModified was returned.
31870func (c *FirewallsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
31871	gensupport.SetOptions(c.urlParams_, opts...)
31872	res, err := c.doRequest("json")
31873	if res != nil && res.StatusCode == http.StatusNotModified {
31874		if res.Body != nil {
31875			res.Body.Close()
31876		}
31877		return nil, &googleapi.Error{
31878			Code:   res.StatusCode,
31879			Header: res.Header,
31880		}
31881	}
31882	if err != nil {
31883		return nil, err
31884	}
31885	defer googleapi.CloseBody(res)
31886	if err := googleapi.CheckResponse(res); err != nil {
31887		return nil, err
31888	}
31889	ret := &Operation{
31890		ServerResponse: googleapi.ServerResponse{
31891			Header:         res.Header,
31892			HTTPStatusCode: res.StatusCode,
31893		},
31894	}
31895	target := &ret
31896	if err := gensupport.DecodeResponse(target, res); err != nil {
31897		return nil, err
31898	}
31899	return ret, nil
31900	// {
31901	//   "description": "Creates a firewall rule in the specified project using the data included in the request.",
31902	//   "httpMethod": "POST",
31903	//   "id": "compute.firewalls.insert",
31904	//   "parameterOrder": [
31905	//     "project"
31906	//   ],
31907	//   "parameters": {
31908	//     "project": {
31909	//       "description": "Project ID for this request.",
31910	//       "location": "path",
31911	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
31912	//       "required": true,
31913	//       "type": "string"
31914	//     },
31915	//     "requestId": {
31916	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
31917	//       "location": "query",
31918	//       "type": "string"
31919	//     }
31920	//   },
31921	//   "path": "{project}/global/firewalls",
31922	//   "request": {
31923	//     "$ref": "Firewall"
31924	//   },
31925	//   "response": {
31926	//     "$ref": "Operation"
31927	//   },
31928	//   "scopes": [
31929	//     "https://www.googleapis.com/auth/cloud-platform",
31930	//     "https://www.googleapis.com/auth/compute"
31931	//   ]
31932	// }
31933
31934}
31935
31936// method id "compute.firewalls.list":
31937
31938type FirewallsListCall struct {
31939	s            *Service
31940	project      string
31941	urlParams_   gensupport.URLParams
31942	ifNoneMatch_ string
31943	ctx_         context.Context
31944	header_      http.Header
31945}
31946
31947// List: Retrieves the list of firewall rules available to the specified
31948// project.
31949// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/list
31950func (r *FirewallsService) List(project string) *FirewallsListCall {
31951	c := &FirewallsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
31952	c.project = project
31953	return c
31954}
31955
31956// Filter sets the optional parameter "filter": Sets a filter
31957// {expression} for filtering listed resources. Your {expression} must
31958// be in the format: field_name comparison_string literal_string.
31959//
31960// The field_name is the name of the field you want to compare. Only
31961// atomic field types are supported (string, number, boolean). The
31962// comparison_string must be either eq (equals) or ne (not equals). The
31963// literal_string is the string value to filter to. The literal value
31964// must be valid for the type of field you are filtering by (string,
31965// number, boolean). For string fields, the literal value is interpreted
31966// as a regular expression using RE2 syntax. The literal value must
31967// match the entire field.
31968//
31969// For example, to filter for instances that do not have a name of
31970// example-instance, you would use name ne example-instance.
31971//
31972// You can filter on nested fields. For example, you could filter on
31973// instances that have set the scheduling.automaticRestart field to
31974// true. Use filtering on nested fields to take advantage of labels to
31975// organize and search for results based on label values.
31976//
31977// To filter on multiple expressions, provide each separate expression
31978// within parentheses. For example, (scheduling.automaticRestart eq
31979// true) (zone eq us-central1-f). Multiple expressions are treated as
31980// AND expressions, meaning that resources must match all expressions to
31981// pass the filters.
31982func (c *FirewallsListCall) Filter(filter string) *FirewallsListCall {
31983	c.urlParams_.Set("filter", filter)
31984	return c
31985}
31986
31987// MaxResults sets the optional parameter "maxResults": The maximum
31988// number of results per page that should be returned. If the number of
31989// available results is larger than maxResults, Compute Engine returns a
31990// nextPageToken that can be used to get the next page of results in
31991// subsequent list requests. Acceptable values are 0 to 500, inclusive.
31992// (Default: 500)
31993func (c *FirewallsListCall) MaxResults(maxResults int64) *FirewallsListCall {
31994	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
31995	return c
31996}
31997
31998// OrderBy sets the optional parameter "orderBy": Sorts list results by
31999// a certain order. By default, results are returned in alphanumerical
32000// order based on the resource name.
32001//
32002// You can also sort results in descending order based on the creation
32003// timestamp using orderBy="creationTimestamp desc". This sorts results
32004// based on the creationTimestamp field in reverse chronological order
32005// (newest result first). Use this to sort resources like operations so
32006// that the newest operation is returned first.
32007//
32008// Currently, only sorting by name or creationTimestamp desc is
32009// supported.
32010func (c *FirewallsListCall) OrderBy(orderBy string) *FirewallsListCall {
32011	c.urlParams_.Set("orderBy", orderBy)
32012	return c
32013}
32014
32015// PageToken sets the optional parameter "pageToken": Specifies a page
32016// token to use. Set pageToken to the nextPageToken returned by a
32017// previous list request to get the next page of results.
32018func (c *FirewallsListCall) PageToken(pageToken string) *FirewallsListCall {
32019	c.urlParams_.Set("pageToken", pageToken)
32020	return c
32021}
32022
32023// Fields allows partial responses to be retrieved. See
32024// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32025// for more information.
32026func (c *FirewallsListCall) Fields(s ...googleapi.Field) *FirewallsListCall {
32027	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32028	return c
32029}
32030
32031// IfNoneMatch sets the optional parameter which makes the operation
32032// fail if the object's ETag matches the given value. This is useful for
32033// getting updates only after the object has changed since the last
32034// request. Use googleapi.IsNotModified to check whether the response
32035// error from Do is the result of In-None-Match.
32036func (c *FirewallsListCall) IfNoneMatch(entityTag string) *FirewallsListCall {
32037	c.ifNoneMatch_ = entityTag
32038	return c
32039}
32040
32041// Context sets the context to be used in this call's Do method. Any
32042// pending HTTP request will be aborted if the provided context is
32043// canceled.
32044func (c *FirewallsListCall) Context(ctx context.Context) *FirewallsListCall {
32045	c.ctx_ = ctx
32046	return c
32047}
32048
32049// Header returns an http.Header that can be modified by the caller to
32050// add HTTP headers to the request.
32051func (c *FirewallsListCall) Header() http.Header {
32052	if c.header_ == nil {
32053		c.header_ = make(http.Header)
32054	}
32055	return c.header_
32056}
32057
32058func (c *FirewallsListCall) doRequest(alt string) (*http.Response, error) {
32059	reqHeaders := make(http.Header)
32060	for k, v := range c.header_ {
32061		reqHeaders[k] = v
32062	}
32063	reqHeaders.Set("User-Agent", c.s.userAgent())
32064	if c.ifNoneMatch_ != "" {
32065		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
32066	}
32067	var body io.Reader = nil
32068	c.urlParams_.Set("alt", alt)
32069	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls")
32070	urls += "?" + c.urlParams_.Encode()
32071	req, _ := http.NewRequest("GET", urls, body)
32072	req.Header = reqHeaders
32073	googleapi.Expand(req.URL, map[string]string{
32074		"project": c.project,
32075	})
32076	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32077}
32078
32079// Do executes the "compute.firewalls.list" call.
32080// Exactly one of *FirewallList or error will be non-nil. Any non-2xx
32081// status code is an error. Response headers are in either
32082// *FirewallList.ServerResponse.Header or (if a response was returned at
32083// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
32084// to check whether the returned error was because
32085// http.StatusNotModified was returned.
32086func (c *FirewallsListCall) Do(opts ...googleapi.CallOption) (*FirewallList, error) {
32087	gensupport.SetOptions(c.urlParams_, opts...)
32088	res, err := c.doRequest("json")
32089	if res != nil && res.StatusCode == http.StatusNotModified {
32090		if res.Body != nil {
32091			res.Body.Close()
32092		}
32093		return nil, &googleapi.Error{
32094			Code:   res.StatusCode,
32095			Header: res.Header,
32096		}
32097	}
32098	if err != nil {
32099		return nil, err
32100	}
32101	defer googleapi.CloseBody(res)
32102	if err := googleapi.CheckResponse(res); err != nil {
32103		return nil, err
32104	}
32105	ret := &FirewallList{
32106		ServerResponse: googleapi.ServerResponse{
32107			Header:         res.Header,
32108			HTTPStatusCode: res.StatusCode,
32109		},
32110	}
32111	target := &ret
32112	if err := gensupport.DecodeResponse(target, res); err != nil {
32113		return nil, err
32114	}
32115	return ret, nil
32116	// {
32117	//   "description": "Retrieves the list of firewall rules available to the specified project.",
32118	//   "httpMethod": "GET",
32119	//   "id": "compute.firewalls.list",
32120	//   "parameterOrder": [
32121	//     "project"
32122	//   ],
32123	//   "parameters": {
32124	//     "filter": {
32125	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
32126	//       "location": "query",
32127	//       "type": "string"
32128	//     },
32129	//     "maxResults": {
32130	//       "default": "500",
32131	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
32132	//       "format": "uint32",
32133	//       "location": "query",
32134	//       "minimum": "0",
32135	//       "type": "integer"
32136	//     },
32137	//     "orderBy": {
32138	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
32139	//       "location": "query",
32140	//       "type": "string"
32141	//     },
32142	//     "pageToken": {
32143	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
32144	//       "location": "query",
32145	//       "type": "string"
32146	//     },
32147	//     "project": {
32148	//       "description": "Project ID for this request.",
32149	//       "location": "path",
32150	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
32151	//       "required": true,
32152	//       "type": "string"
32153	//     }
32154	//   },
32155	//   "path": "{project}/global/firewalls",
32156	//   "response": {
32157	//     "$ref": "FirewallList"
32158	//   },
32159	//   "scopes": [
32160	//     "https://www.googleapis.com/auth/cloud-platform",
32161	//     "https://www.googleapis.com/auth/compute",
32162	//     "https://www.googleapis.com/auth/compute.readonly"
32163	//   ]
32164	// }
32165
32166}
32167
32168// Pages invokes f for each page of results.
32169// A non-nil error returned from f will halt the iteration.
32170// The provided context supersedes any context provided to the Context method.
32171func (c *FirewallsListCall) Pages(ctx context.Context, f func(*FirewallList) error) error {
32172	c.ctx_ = ctx
32173	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
32174	for {
32175		x, err := c.Do()
32176		if err != nil {
32177			return err
32178		}
32179		if err := f(x); err != nil {
32180			return err
32181		}
32182		if x.NextPageToken == "" {
32183			return nil
32184		}
32185		c.PageToken(x.NextPageToken)
32186	}
32187}
32188
32189// method id "compute.firewalls.patch":
32190
32191type FirewallsPatchCall struct {
32192	s          *Service
32193	project    string
32194	firewall   string
32195	firewall2  *Firewall
32196	urlParams_ gensupport.URLParams
32197	ctx_       context.Context
32198	header_    http.Header
32199}
32200
32201// Patch: Updates the specified firewall rule with the data included in
32202// the request. This method supports PATCH semantics and uses the JSON
32203// merge patch format and processing rules.
32204// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/patch
32205func (r *FirewallsService) Patch(project string, firewall string, firewall2 *Firewall) *FirewallsPatchCall {
32206	c := &FirewallsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32207	c.project = project
32208	c.firewall = firewall
32209	c.firewall2 = firewall2
32210	return c
32211}
32212
32213// RequestId sets the optional parameter "requestId": An optional
32214// request ID to identify requests. Specify a unique request ID so that
32215// if you must retry your request, the server will know to ignore the
32216// request if it has already been completed.
32217//
32218// For example, consider a situation where you make an initial request
32219// and the request times out. If you make the request again with the
32220// same request ID, the server can check if original operation with the
32221// same request ID was received, and if so, will ignore the second
32222// request. This prevents clients from accidentally creating duplicate
32223// commitments.
32224//
32225// The request ID must be a valid UUID with the exception that zero UUID
32226// is not supported (00000000-0000-0000-0000-000000000000).
32227func (c *FirewallsPatchCall) RequestId(requestId string) *FirewallsPatchCall {
32228	c.urlParams_.Set("requestId", requestId)
32229	return c
32230}
32231
32232// Fields allows partial responses to be retrieved. See
32233// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32234// for more information.
32235func (c *FirewallsPatchCall) Fields(s ...googleapi.Field) *FirewallsPatchCall {
32236	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32237	return c
32238}
32239
32240// Context sets the context to be used in this call's Do method. Any
32241// pending HTTP request will be aborted if the provided context is
32242// canceled.
32243func (c *FirewallsPatchCall) Context(ctx context.Context) *FirewallsPatchCall {
32244	c.ctx_ = ctx
32245	return c
32246}
32247
32248// Header returns an http.Header that can be modified by the caller to
32249// add HTTP headers to the request.
32250func (c *FirewallsPatchCall) Header() http.Header {
32251	if c.header_ == nil {
32252		c.header_ = make(http.Header)
32253	}
32254	return c.header_
32255}
32256
32257func (c *FirewallsPatchCall) doRequest(alt string) (*http.Response, error) {
32258	reqHeaders := make(http.Header)
32259	for k, v := range c.header_ {
32260		reqHeaders[k] = v
32261	}
32262	reqHeaders.Set("User-Agent", c.s.userAgent())
32263	var body io.Reader = nil
32264	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
32265	if err != nil {
32266		return nil, err
32267	}
32268	reqHeaders.Set("Content-Type", "application/json")
32269	c.urlParams_.Set("alt", alt)
32270	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
32271	urls += "?" + c.urlParams_.Encode()
32272	req, _ := http.NewRequest("PATCH", urls, body)
32273	req.Header = reqHeaders
32274	googleapi.Expand(req.URL, map[string]string{
32275		"project":  c.project,
32276		"firewall": c.firewall,
32277	})
32278	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32279}
32280
32281// Do executes the "compute.firewalls.patch" call.
32282// Exactly one of *Operation or error will be non-nil. Any non-2xx
32283// status code is an error. Response headers are in either
32284// *Operation.ServerResponse.Header or (if a response was returned at
32285// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
32286// to check whether the returned error was because
32287// http.StatusNotModified was returned.
32288func (c *FirewallsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
32289	gensupport.SetOptions(c.urlParams_, opts...)
32290	res, err := c.doRequest("json")
32291	if res != nil && res.StatusCode == http.StatusNotModified {
32292		if res.Body != nil {
32293			res.Body.Close()
32294		}
32295		return nil, &googleapi.Error{
32296			Code:   res.StatusCode,
32297			Header: res.Header,
32298		}
32299	}
32300	if err != nil {
32301		return nil, err
32302	}
32303	defer googleapi.CloseBody(res)
32304	if err := googleapi.CheckResponse(res); err != nil {
32305		return nil, err
32306	}
32307	ret := &Operation{
32308		ServerResponse: googleapi.ServerResponse{
32309			Header:         res.Header,
32310			HTTPStatusCode: res.StatusCode,
32311		},
32312	}
32313	target := &ret
32314	if err := gensupport.DecodeResponse(target, res); err != nil {
32315		return nil, err
32316	}
32317	return ret, nil
32318	// {
32319	//   "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.",
32320	//   "httpMethod": "PATCH",
32321	//   "id": "compute.firewalls.patch",
32322	//   "parameterOrder": [
32323	//     "project",
32324	//     "firewall"
32325	//   ],
32326	//   "parameters": {
32327	//     "firewall": {
32328	//       "description": "Name of the firewall rule to patch.",
32329	//       "location": "path",
32330	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
32331	//       "required": true,
32332	//       "type": "string"
32333	//     },
32334	//     "project": {
32335	//       "description": "Project ID for this request.",
32336	//       "location": "path",
32337	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
32338	//       "required": true,
32339	//       "type": "string"
32340	//     },
32341	//     "requestId": {
32342	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
32343	//       "location": "query",
32344	//       "type": "string"
32345	//     }
32346	//   },
32347	//   "path": "{project}/global/firewalls/{firewall}",
32348	//   "request": {
32349	//     "$ref": "Firewall"
32350	//   },
32351	//   "response": {
32352	//     "$ref": "Operation"
32353	//   },
32354	//   "scopes": [
32355	//     "https://www.googleapis.com/auth/cloud-platform",
32356	//     "https://www.googleapis.com/auth/compute"
32357	//   ]
32358	// }
32359
32360}
32361
32362// method id "compute.firewalls.update":
32363
32364type FirewallsUpdateCall struct {
32365	s          *Service
32366	project    string
32367	firewall   string
32368	firewall2  *Firewall
32369	urlParams_ gensupport.URLParams
32370	ctx_       context.Context
32371	header_    http.Header
32372}
32373
32374// Update: Updates the specified firewall rule with the data included in
32375// the request. The PUT method can only update the following fields of
32376// firewall rule: allowed, description, sourceRanges, sourceTags,
32377// targetTags.
32378// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/update
32379func (r *FirewallsService) Update(project string, firewall string, firewall2 *Firewall) *FirewallsUpdateCall {
32380	c := &FirewallsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32381	c.project = project
32382	c.firewall = firewall
32383	c.firewall2 = firewall2
32384	return c
32385}
32386
32387// RequestId sets the optional parameter "requestId": An optional
32388// request ID to identify requests. Specify a unique request ID so that
32389// if you must retry your request, the server will know to ignore the
32390// request if it has already been completed.
32391//
32392// For example, consider a situation where you make an initial request
32393// and the request times out. If you make the request again with the
32394// same request ID, the server can check if original operation with the
32395// same request ID was received, and if so, will ignore the second
32396// request. This prevents clients from accidentally creating duplicate
32397// commitments.
32398//
32399// The request ID must be a valid UUID with the exception that zero UUID
32400// is not supported (00000000-0000-0000-0000-000000000000).
32401func (c *FirewallsUpdateCall) RequestId(requestId string) *FirewallsUpdateCall {
32402	c.urlParams_.Set("requestId", requestId)
32403	return c
32404}
32405
32406// Fields allows partial responses to be retrieved. See
32407// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32408// for more information.
32409func (c *FirewallsUpdateCall) Fields(s ...googleapi.Field) *FirewallsUpdateCall {
32410	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32411	return c
32412}
32413
32414// Context sets the context to be used in this call's Do method. Any
32415// pending HTTP request will be aborted if the provided context is
32416// canceled.
32417func (c *FirewallsUpdateCall) Context(ctx context.Context) *FirewallsUpdateCall {
32418	c.ctx_ = ctx
32419	return c
32420}
32421
32422// Header returns an http.Header that can be modified by the caller to
32423// add HTTP headers to the request.
32424func (c *FirewallsUpdateCall) Header() http.Header {
32425	if c.header_ == nil {
32426		c.header_ = make(http.Header)
32427	}
32428	return c.header_
32429}
32430
32431func (c *FirewallsUpdateCall) doRequest(alt string) (*http.Response, error) {
32432	reqHeaders := make(http.Header)
32433	for k, v := range c.header_ {
32434		reqHeaders[k] = v
32435	}
32436	reqHeaders.Set("User-Agent", c.s.userAgent())
32437	var body io.Reader = nil
32438	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
32439	if err != nil {
32440		return nil, err
32441	}
32442	reqHeaders.Set("Content-Type", "application/json")
32443	c.urlParams_.Set("alt", alt)
32444	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
32445	urls += "?" + c.urlParams_.Encode()
32446	req, _ := http.NewRequest("PUT", urls, body)
32447	req.Header = reqHeaders
32448	googleapi.Expand(req.URL, map[string]string{
32449		"project":  c.project,
32450		"firewall": c.firewall,
32451	})
32452	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32453}
32454
32455// Do executes the "compute.firewalls.update" call.
32456// Exactly one of *Operation or error will be non-nil. Any non-2xx
32457// status code is an error. Response headers are in either
32458// *Operation.ServerResponse.Header or (if a response was returned at
32459// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
32460// to check whether the returned error was because
32461// http.StatusNotModified was returned.
32462func (c *FirewallsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
32463	gensupport.SetOptions(c.urlParams_, opts...)
32464	res, err := c.doRequest("json")
32465	if res != nil && res.StatusCode == http.StatusNotModified {
32466		if res.Body != nil {
32467			res.Body.Close()
32468		}
32469		return nil, &googleapi.Error{
32470			Code:   res.StatusCode,
32471			Header: res.Header,
32472		}
32473	}
32474	if err != nil {
32475		return nil, err
32476	}
32477	defer googleapi.CloseBody(res)
32478	if err := googleapi.CheckResponse(res); err != nil {
32479		return nil, err
32480	}
32481	ret := &Operation{
32482		ServerResponse: googleapi.ServerResponse{
32483			Header:         res.Header,
32484			HTTPStatusCode: res.StatusCode,
32485		},
32486	}
32487	target := &ret
32488	if err := gensupport.DecodeResponse(target, res); err != nil {
32489		return nil, err
32490	}
32491	return ret, nil
32492	// {
32493	//   "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.",
32494	//   "httpMethod": "PUT",
32495	//   "id": "compute.firewalls.update",
32496	//   "parameterOrder": [
32497	//     "project",
32498	//     "firewall"
32499	//   ],
32500	//   "parameters": {
32501	//     "firewall": {
32502	//       "description": "Name of the firewall rule to update.",
32503	//       "location": "path",
32504	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
32505	//       "required": true,
32506	//       "type": "string"
32507	//     },
32508	//     "project": {
32509	//       "description": "Project ID for this request.",
32510	//       "location": "path",
32511	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
32512	//       "required": true,
32513	//       "type": "string"
32514	//     },
32515	//     "requestId": {
32516	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
32517	//       "location": "query",
32518	//       "type": "string"
32519	//     }
32520	//   },
32521	//   "path": "{project}/global/firewalls/{firewall}",
32522	//   "request": {
32523	//     "$ref": "Firewall"
32524	//   },
32525	//   "response": {
32526	//     "$ref": "Operation"
32527	//   },
32528	//   "scopes": [
32529	//     "https://www.googleapis.com/auth/cloud-platform",
32530	//     "https://www.googleapis.com/auth/compute"
32531	//   ]
32532	// }
32533
32534}
32535
32536// method id "compute.forwardingRules.aggregatedList":
32537
32538type ForwardingRulesAggregatedListCall struct {
32539	s            *Service
32540	project      string
32541	urlParams_   gensupport.URLParams
32542	ifNoneMatch_ string
32543	ctx_         context.Context
32544	header_      http.Header
32545}
32546
32547// AggregatedList: Retrieves an aggregated list of forwarding rules.
32548// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/aggregatedList
32549func (r *ForwardingRulesService) AggregatedList(project string) *ForwardingRulesAggregatedListCall {
32550	c := &ForwardingRulesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32551	c.project = project
32552	return c
32553}
32554
32555// Filter sets the optional parameter "filter": Sets a filter
32556// {expression} for filtering listed resources. Your {expression} must
32557// be in the format: field_name comparison_string literal_string.
32558//
32559// The field_name is the name of the field you want to compare. Only
32560// atomic field types are supported (string, number, boolean). The
32561// comparison_string must be either eq (equals) or ne (not equals). The
32562// literal_string is the string value to filter to. The literal value
32563// must be valid for the type of field you are filtering by (string,
32564// number, boolean). For string fields, the literal value is interpreted
32565// as a regular expression using RE2 syntax. The literal value must
32566// match the entire field.
32567//
32568// For example, to filter for instances that do not have a name of
32569// example-instance, you would use name ne example-instance.
32570//
32571// You can filter on nested fields. For example, you could filter on
32572// instances that have set the scheduling.automaticRestart field to
32573// true. Use filtering on nested fields to take advantage of labels to
32574// organize and search for results based on label values.
32575//
32576// To filter on multiple expressions, provide each separate expression
32577// within parentheses. For example, (scheduling.automaticRestart eq
32578// true) (zone eq us-central1-f). Multiple expressions are treated as
32579// AND expressions, meaning that resources must match all expressions to
32580// pass the filters.
32581func (c *ForwardingRulesAggregatedListCall) Filter(filter string) *ForwardingRulesAggregatedListCall {
32582	c.urlParams_.Set("filter", filter)
32583	return c
32584}
32585
32586// MaxResults sets the optional parameter "maxResults": The maximum
32587// number of results per page that should be returned. If the number of
32588// available results is larger than maxResults, Compute Engine returns a
32589// nextPageToken that can be used to get the next page of results in
32590// subsequent list requests. Acceptable values are 0 to 500, inclusive.
32591// (Default: 500)
32592func (c *ForwardingRulesAggregatedListCall) MaxResults(maxResults int64) *ForwardingRulesAggregatedListCall {
32593	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
32594	return c
32595}
32596
32597// OrderBy sets the optional parameter "orderBy": Sorts list results by
32598// a certain order. By default, results are returned in alphanumerical
32599// order based on the resource name.
32600//
32601// You can also sort results in descending order based on the creation
32602// timestamp using orderBy="creationTimestamp desc". This sorts results
32603// based on the creationTimestamp field in reverse chronological order
32604// (newest result first). Use this to sort resources like operations so
32605// that the newest operation is returned first.
32606//
32607// Currently, only sorting by name or creationTimestamp desc is
32608// supported.
32609func (c *ForwardingRulesAggregatedListCall) OrderBy(orderBy string) *ForwardingRulesAggregatedListCall {
32610	c.urlParams_.Set("orderBy", orderBy)
32611	return c
32612}
32613
32614// PageToken sets the optional parameter "pageToken": Specifies a page
32615// token to use. Set pageToken to the nextPageToken returned by a
32616// previous list request to get the next page of results.
32617func (c *ForwardingRulesAggregatedListCall) PageToken(pageToken string) *ForwardingRulesAggregatedListCall {
32618	c.urlParams_.Set("pageToken", pageToken)
32619	return c
32620}
32621
32622// Fields allows partial responses to be retrieved. See
32623// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32624// for more information.
32625func (c *ForwardingRulesAggregatedListCall) Fields(s ...googleapi.Field) *ForwardingRulesAggregatedListCall {
32626	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32627	return c
32628}
32629
32630// IfNoneMatch sets the optional parameter which makes the operation
32631// fail if the object's ETag matches the given value. This is useful for
32632// getting updates only after the object has changed since the last
32633// request. Use googleapi.IsNotModified to check whether the response
32634// error from Do is the result of In-None-Match.
32635func (c *ForwardingRulesAggregatedListCall) IfNoneMatch(entityTag string) *ForwardingRulesAggregatedListCall {
32636	c.ifNoneMatch_ = entityTag
32637	return c
32638}
32639
32640// Context sets the context to be used in this call's Do method. Any
32641// pending HTTP request will be aborted if the provided context is
32642// canceled.
32643func (c *ForwardingRulesAggregatedListCall) Context(ctx context.Context) *ForwardingRulesAggregatedListCall {
32644	c.ctx_ = ctx
32645	return c
32646}
32647
32648// Header returns an http.Header that can be modified by the caller to
32649// add HTTP headers to the request.
32650func (c *ForwardingRulesAggregatedListCall) Header() http.Header {
32651	if c.header_ == nil {
32652		c.header_ = make(http.Header)
32653	}
32654	return c.header_
32655}
32656
32657func (c *ForwardingRulesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
32658	reqHeaders := make(http.Header)
32659	for k, v := range c.header_ {
32660		reqHeaders[k] = v
32661	}
32662	reqHeaders.Set("User-Agent", c.s.userAgent())
32663	if c.ifNoneMatch_ != "" {
32664		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
32665	}
32666	var body io.Reader = nil
32667	c.urlParams_.Set("alt", alt)
32668	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/forwardingRules")
32669	urls += "?" + c.urlParams_.Encode()
32670	req, _ := http.NewRequest("GET", urls, body)
32671	req.Header = reqHeaders
32672	googleapi.Expand(req.URL, map[string]string{
32673		"project": c.project,
32674	})
32675	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32676}
32677
32678// Do executes the "compute.forwardingRules.aggregatedList" call.
32679// Exactly one of *ForwardingRuleAggregatedList or error will be
32680// non-nil. Any non-2xx status code is an error. Response headers are in
32681// either *ForwardingRuleAggregatedList.ServerResponse.Header or (if a
32682// response was returned at all) in error.(*googleapi.Error).Header. Use
32683// googleapi.IsNotModified to check whether the returned error was
32684// because http.StatusNotModified was returned.
32685func (c *ForwardingRulesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleAggregatedList, error) {
32686	gensupport.SetOptions(c.urlParams_, opts...)
32687	res, err := c.doRequest("json")
32688	if res != nil && res.StatusCode == http.StatusNotModified {
32689		if res.Body != nil {
32690			res.Body.Close()
32691		}
32692		return nil, &googleapi.Error{
32693			Code:   res.StatusCode,
32694			Header: res.Header,
32695		}
32696	}
32697	if err != nil {
32698		return nil, err
32699	}
32700	defer googleapi.CloseBody(res)
32701	if err := googleapi.CheckResponse(res); err != nil {
32702		return nil, err
32703	}
32704	ret := &ForwardingRuleAggregatedList{
32705		ServerResponse: googleapi.ServerResponse{
32706			Header:         res.Header,
32707			HTTPStatusCode: res.StatusCode,
32708		},
32709	}
32710	target := &ret
32711	if err := gensupport.DecodeResponse(target, res); err != nil {
32712		return nil, err
32713	}
32714	return ret, nil
32715	// {
32716	//   "description": "Retrieves an aggregated list of forwarding rules.",
32717	//   "httpMethod": "GET",
32718	//   "id": "compute.forwardingRules.aggregatedList",
32719	//   "parameterOrder": [
32720	//     "project"
32721	//   ],
32722	//   "parameters": {
32723	//     "filter": {
32724	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
32725	//       "location": "query",
32726	//       "type": "string"
32727	//     },
32728	//     "maxResults": {
32729	//       "default": "500",
32730	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
32731	//       "format": "uint32",
32732	//       "location": "query",
32733	//       "minimum": "0",
32734	//       "type": "integer"
32735	//     },
32736	//     "orderBy": {
32737	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
32738	//       "location": "query",
32739	//       "type": "string"
32740	//     },
32741	//     "pageToken": {
32742	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
32743	//       "location": "query",
32744	//       "type": "string"
32745	//     },
32746	//     "project": {
32747	//       "description": "Project ID for this request.",
32748	//       "location": "path",
32749	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
32750	//       "required": true,
32751	//       "type": "string"
32752	//     }
32753	//   },
32754	//   "path": "{project}/aggregated/forwardingRules",
32755	//   "response": {
32756	//     "$ref": "ForwardingRuleAggregatedList"
32757	//   },
32758	//   "scopes": [
32759	//     "https://www.googleapis.com/auth/cloud-platform",
32760	//     "https://www.googleapis.com/auth/compute",
32761	//     "https://www.googleapis.com/auth/compute.readonly"
32762	//   ]
32763	// }
32764
32765}
32766
32767// Pages invokes f for each page of results.
32768// A non-nil error returned from f will halt the iteration.
32769// The provided context supersedes any context provided to the Context method.
32770func (c *ForwardingRulesAggregatedListCall) Pages(ctx context.Context, f func(*ForwardingRuleAggregatedList) error) error {
32771	c.ctx_ = ctx
32772	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
32773	for {
32774		x, err := c.Do()
32775		if err != nil {
32776			return err
32777		}
32778		if err := f(x); err != nil {
32779			return err
32780		}
32781		if x.NextPageToken == "" {
32782			return nil
32783		}
32784		c.PageToken(x.NextPageToken)
32785	}
32786}
32787
32788// method id "compute.forwardingRules.delete":
32789
32790type ForwardingRulesDeleteCall struct {
32791	s              *Service
32792	project        string
32793	region         string
32794	forwardingRule string
32795	urlParams_     gensupport.URLParams
32796	ctx_           context.Context
32797	header_        http.Header
32798}
32799
32800// Delete: Deletes the specified ForwardingRule resource.
32801// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/delete
32802func (r *ForwardingRulesService) Delete(project string, region string, forwardingRule string) *ForwardingRulesDeleteCall {
32803	c := &ForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32804	c.project = project
32805	c.region = region
32806	c.forwardingRule = forwardingRule
32807	return c
32808}
32809
32810// RequestId sets the optional parameter "requestId": An optional
32811// request ID to identify requests. Specify a unique request ID so that
32812// if you must retry your request, the server will know to ignore the
32813// request if it has already been completed.
32814//
32815// For example, consider a situation where you make an initial request
32816// and the request times out. If you make the request again with the
32817// same request ID, the server can check if original operation with the
32818// same request ID was received, and if so, will ignore the second
32819// request. This prevents clients from accidentally creating duplicate
32820// commitments.
32821//
32822// The request ID must be a valid UUID with the exception that zero UUID
32823// is not supported (00000000-0000-0000-0000-000000000000).
32824func (c *ForwardingRulesDeleteCall) RequestId(requestId string) *ForwardingRulesDeleteCall {
32825	c.urlParams_.Set("requestId", requestId)
32826	return c
32827}
32828
32829// Fields allows partial responses to be retrieved. See
32830// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32831// for more information.
32832func (c *ForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *ForwardingRulesDeleteCall {
32833	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32834	return c
32835}
32836
32837// Context sets the context to be used in this call's Do method. Any
32838// pending HTTP request will be aborted if the provided context is
32839// canceled.
32840func (c *ForwardingRulesDeleteCall) Context(ctx context.Context) *ForwardingRulesDeleteCall {
32841	c.ctx_ = ctx
32842	return c
32843}
32844
32845// Header returns an http.Header that can be modified by the caller to
32846// add HTTP headers to the request.
32847func (c *ForwardingRulesDeleteCall) Header() http.Header {
32848	if c.header_ == nil {
32849		c.header_ = make(http.Header)
32850	}
32851	return c.header_
32852}
32853
32854func (c *ForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
32855	reqHeaders := make(http.Header)
32856	for k, v := range c.header_ {
32857		reqHeaders[k] = v
32858	}
32859	reqHeaders.Set("User-Agent", c.s.userAgent())
32860	var body io.Reader = nil
32861	c.urlParams_.Set("alt", alt)
32862	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
32863	urls += "?" + c.urlParams_.Encode()
32864	req, _ := http.NewRequest("DELETE", urls, body)
32865	req.Header = reqHeaders
32866	googleapi.Expand(req.URL, map[string]string{
32867		"project":        c.project,
32868		"region":         c.region,
32869		"forwardingRule": c.forwardingRule,
32870	})
32871	return gensupport.SendRequest(c.ctx_, c.s.client, req)
32872}
32873
32874// Do executes the "compute.forwardingRules.delete" call.
32875// Exactly one of *Operation or error will be non-nil. Any non-2xx
32876// status code is an error. Response headers are in either
32877// *Operation.ServerResponse.Header or (if a response was returned at
32878// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
32879// to check whether the returned error was because
32880// http.StatusNotModified was returned.
32881func (c *ForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
32882	gensupport.SetOptions(c.urlParams_, opts...)
32883	res, err := c.doRequest("json")
32884	if res != nil && res.StatusCode == http.StatusNotModified {
32885		if res.Body != nil {
32886			res.Body.Close()
32887		}
32888		return nil, &googleapi.Error{
32889			Code:   res.StatusCode,
32890			Header: res.Header,
32891		}
32892	}
32893	if err != nil {
32894		return nil, err
32895	}
32896	defer googleapi.CloseBody(res)
32897	if err := googleapi.CheckResponse(res); err != nil {
32898		return nil, err
32899	}
32900	ret := &Operation{
32901		ServerResponse: googleapi.ServerResponse{
32902			Header:         res.Header,
32903			HTTPStatusCode: res.StatusCode,
32904		},
32905	}
32906	target := &ret
32907	if err := gensupport.DecodeResponse(target, res); err != nil {
32908		return nil, err
32909	}
32910	return ret, nil
32911	// {
32912	//   "description": "Deletes the specified ForwardingRule resource.",
32913	//   "httpMethod": "DELETE",
32914	//   "id": "compute.forwardingRules.delete",
32915	//   "parameterOrder": [
32916	//     "project",
32917	//     "region",
32918	//     "forwardingRule"
32919	//   ],
32920	//   "parameters": {
32921	//     "forwardingRule": {
32922	//       "description": "Name of the ForwardingRule resource to delete.",
32923	//       "location": "path",
32924	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
32925	//       "required": true,
32926	//       "type": "string"
32927	//     },
32928	//     "project": {
32929	//       "description": "Project ID for this request.",
32930	//       "location": "path",
32931	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
32932	//       "required": true,
32933	//       "type": "string"
32934	//     },
32935	//     "region": {
32936	//       "description": "Name of the region scoping this request.",
32937	//       "location": "path",
32938	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
32939	//       "required": true,
32940	//       "type": "string"
32941	//     },
32942	//     "requestId": {
32943	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
32944	//       "location": "query",
32945	//       "type": "string"
32946	//     }
32947	//   },
32948	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
32949	//   "response": {
32950	//     "$ref": "Operation"
32951	//   },
32952	//   "scopes": [
32953	//     "https://www.googleapis.com/auth/cloud-platform",
32954	//     "https://www.googleapis.com/auth/compute"
32955	//   ]
32956	// }
32957
32958}
32959
32960// method id "compute.forwardingRules.get":
32961
32962type ForwardingRulesGetCall struct {
32963	s              *Service
32964	project        string
32965	region         string
32966	forwardingRule string
32967	urlParams_     gensupport.URLParams
32968	ifNoneMatch_   string
32969	ctx_           context.Context
32970	header_        http.Header
32971}
32972
32973// Get: Returns the specified ForwardingRule resource.
32974// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/get
32975func (r *ForwardingRulesService) Get(project string, region string, forwardingRule string) *ForwardingRulesGetCall {
32976	c := &ForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
32977	c.project = project
32978	c.region = region
32979	c.forwardingRule = forwardingRule
32980	return c
32981}
32982
32983// Fields allows partial responses to be retrieved. See
32984// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
32985// for more information.
32986func (c *ForwardingRulesGetCall) Fields(s ...googleapi.Field) *ForwardingRulesGetCall {
32987	c.urlParams_.Set("fields", googleapi.CombineFields(s))
32988	return c
32989}
32990
32991// IfNoneMatch sets the optional parameter which makes the operation
32992// fail if the object's ETag matches the given value. This is useful for
32993// getting updates only after the object has changed since the last
32994// request. Use googleapi.IsNotModified to check whether the response
32995// error from Do is the result of In-None-Match.
32996func (c *ForwardingRulesGetCall) IfNoneMatch(entityTag string) *ForwardingRulesGetCall {
32997	c.ifNoneMatch_ = entityTag
32998	return c
32999}
33000
33001// Context sets the context to be used in this call's Do method. Any
33002// pending HTTP request will be aborted if the provided context is
33003// canceled.
33004func (c *ForwardingRulesGetCall) Context(ctx context.Context) *ForwardingRulesGetCall {
33005	c.ctx_ = ctx
33006	return c
33007}
33008
33009// Header returns an http.Header that can be modified by the caller to
33010// add HTTP headers to the request.
33011func (c *ForwardingRulesGetCall) Header() http.Header {
33012	if c.header_ == nil {
33013		c.header_ = make(http.Header)
33014	}
33015	return c.header_
33016}
33017
33018func (c *ForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
33019	reqHeaders := make(http.Header)
33020	for k, v := range c.header_ {
33021		reqHeaders[k] = v
33022	}
33023	reqHeaders.Set("User-Agent", c.s.userAgent())
33024	if c.ifNoneMatch_ != "" {
33025		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
33026	}
33027	var body io.Reader = nil
33028	c.urlParams_.Set("alt", alt)
33029	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
33030	urls += "?" + c.urlParams_.Encode()
33031	req, _ := http.NewRequest("GET", urls, body)
33032	req.Header = reqHeaders
33033	googleapi.Expand(req.URL, map[string]string{
33034		"project":        c.project,
33035		"region":         c.region,
33036		"forwardingRule": c.forwardingRule,
33037	})
33038	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33039}
33040
33041// Do executes the "compute.forwardingRules.get" call.
33042// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
33043// status code is an error. Response headers are in either
33044// *ForwardingRule.ServerResponse.Header or (if a response was returned
33045// at all) in error.(*googleapi.Error).Header. Use
33046// googleapi.IsNotModified to check whether the returned error was
33047// because http.StatusNotModified was returned.
33048func (c *ForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
33049	gensupport.SetOptions(c.urlParams_, opts...)
33050	res, err := c.doRequest("json")
33051	if res != nil && res.StatusCode == http.StatusNotModified {
33052		if res.Body != nil {
33053			res.Body.Close()
33054		}
33055		return nil, &googleapi.Error{
33056			Code:   res.StatusCode,
33057			Header: res.Header,
33058		}
33059	}
33060	if err != nil {
33061		return nil, err
33062	}
33063	defer googleapi.CloseBody(res)
33064	if err := googleapi.CheckResponse(res); err != nil {
33065		return nil, err
33066	}
33067	ret := &ForwardingRule{
33068		ServerResponse: googleapi.ServerResponse{
33069			Header:         res.Header,
33070			HTTPStatusCode: res.StatusCode,
33071		},
33072	}
33073	target := &ret
33074	if err := gensupport.DecodeResponse(target, res); err != nil {
33075		return nil, err
33076	}
33077	return ret, nil
33078	// {
33079	//   "description": "Returns the specified ForwardingRule resource.",
33080	//   "httpMethod": "GET",
33081	//   "id": "compute.forwardingRules.get",
33082	//   "parameterOrder": [
33083	//     "project",
33084	//     "region",
33085	//     "forwardingRule"
33086	//   ],
33087	//   "parameters": {
33088	//     "forwardingRule": {
33089	//       "description": "Name of the ForwardingRule resource to return.",
33090	//       "location": "path",
33091	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
33092	//       "required": true,
33093	//       "type": "string"
33094	//     },
33095	//     "project": {
33096	//       "description": "Project ID for this request.",
33097	//       "location": "path",
33098	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
33099	//       "required": true,
33100	//       "type": "string"
33101	//     },
33102	//     "region": {
33103	//       "description": "Name of the region scoping this request.",
33104	//       "location": "path",
33105	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
33106	//       "required": true,
33107	//       "type": "string"
33108	//     }
33109	//   },
33110	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
33111	//   "response": {
33112	//     "$ref": "ForwardingRule"
33113	//   },
33114	//   "scopes": [
33115	//     "https://www.googleapis.com/auth/cloud-platform",
33116	//     "https://www.googleapis.com/auth/compute",
33117	//     "https://www.googleapis.com/auth/compute.readonly"
33118	//   ]
33119	// }
33120
33121}
33122
33123// method id "compute.forwardingRules.insert":
33124
33125type ForwardingRulesInsertCall struct {
33126	s              *Service
33127	project        string
33128	region         string
33129	forwardingrule *ForwardingRule
33130	urlParams_     gensupport.URLParams
33131	ctx_           context.Context
33132	header_        http.Header
33133}
33134
33135// Insert: Creates a ForwardingRule resource in the specified project
33136// and region using the data included in the request.
33137// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/insert
33138func (r *ForwardingRulesService) Insert(project string, region string, forwardingrule *ForwardingRule) *ForwardingRulesInsertCall {
33139	c := &ForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33140	c.project = project
33141	c.region = region
33142	c.forwardingrule = forwardingrule
33143	return c
33144}
33145
33146// RequestId sets the optional parameter "requestId": An optional
33147// request ID to identify requests. Specify a unique request ID so that
33148// if you must retry your request, the server will know to ignore the
33149// request if it has already been completed.
33150//
33151// For example, consider a situation where you make an initial request
33152// and the request times out. If you make the request again with the
33153// same request ID, the server can check if original operation with the
33154// same request ID was received, and if so, will ignore the second
33155// request. This prevents clients from accidentally creating duplicate
33156// commitments.
33157//
33158// The request ID must be a valid UUID with the exception that zero UUID
33159// is not supported (00000000-0000-0000-0000-000000000000).
33160func (c *ForwardingRulesInsertCall) RequestId(requestId string) *ForwardingRulesInsertCall {
33161	c.urlParams_.Set("requestId", requestId)
33162	return c
33163}
33164
33165// Fields allows partial responses to be retrieved. See
33166// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33167// for more information.
33168func (c *ForwardingRulesInsertCall) Fields(s ...googleapi.Field) *ForwardingRulesInsertCall {
33169	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33170	return c
33171}
33172
33173// Context sets the context to be used in this call's Do method. Any
33174// pending HTTP request will be aborted if the provided context is
33175// canceled.
33176func (c *ForwardingRulesInsertCall) Context(ctx context.Context) *ForwardingRulesInsertCall {
33177	c.ctx_ = ctx
33178	return c
33179}
33180
33181// Header returns an http.Header that can be modified by the caller to
33182// add HTTP headers to the request.
33183func (c *ForwardingRulesInsertCall) Header() http.Header {
33184	if c.header_ == nil {
33185		c.header_ = make(http.Header)
33186	}
33187	return c.header_
33188}
33189
33190func (c *ForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
33191	reqHeaders := make(http.Header)
33192	for k, v := range c.header_ {
33193		reqHeaders[k] = v
33194	}
33195	reqHeaders.Set("User-Agent", c.s.userAgent())
33196	var body io.Reader = nil
33197	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
33198	if err != nil {
33199		return nil, err
33200	}
33201	reqHeaders.Set("Content-Type", "application/json")
33202	c.urlParams_.Set("alt", alt)
33203	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules")
33204	urls += "?" + c.urlParams_.Encode()
33205	req, _ := http.NewRequest("POST", urls, body)
33206	req.Header = reqHeaders
33207	googleapi.Expand(req.URL, map[string]string{
33208		"project": c.project,
33209		"region":  c.region,
33210	})
33211	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33212}
33213
33214// Do executes the "compute.forwardingRules.insert" call.
33215// Exactly one of *Operation or error will be non-nil. Any non-2xx
33216// status code is an error. Response headers are in either
33217// *Operation.ServerResponse.Header or (if a response was returned at
33218// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
33219// to check whether the returned error was because
33220// http.StatusNotModified was returned.
33221func (c *ForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
33222	gensupport.SetOptions(c.urlParams_, opts...)
33223	res, err := c.doRequest("json")
33224	if res != nil && res.StatusCode == http.StatusNotModified {
33225		if res.Body != nil {
33226			res.Body.Close()
33227		}
33228		return nil, &googleapi.Error{
33229			Code:   res.StatusCode,
33230			Header: res.Header,
33231		}
33232	}
33233	if err != nil {
33234		return nil, err
33235	}
33236	defer googleapi.CloseBody(res)
33237	if err := googleapi.CheckResponse(res); err != nil {
33238		return nil, err
33239	}
33240	ret := &Operation{
33241		ServerResponse: googleapi.ServerResponse{
33242			Header:         res.Header,
33243			HTTPStatusCode: res.StatusCode,
33244		},
33245	}
33246	target := &ret
33247	if err := gensupport.DecodeResponse(target, res); err != nil {
33248		return nil, err
33249	}
33250	return ret, nil
33251	// {
33252	//   "description": "Creates a ForwardingRule resource in the specified project and region using the data included in the request.",
33253	//   "httpMethod": "POST",
33254	//   "id": "compute.forwardingRules.insert",
33255	//   "parameterOrder": [
33256	//     "project",
33257	//     "region"
33258	//   ],
33259	//   "parameters": {
33260	//     "project": {
33261	//       "description": "Project ID for this request.",
33262	//       "location": "path",
33263	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
33264	//       "required": true,
33265	//       "type": "string"
33266	//     },
33267	//     "region": {
33268	//       "description": "Name of the region scoping this request.",
33269	//       "location": "path",
33270	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
33271	//       "required": true,
33272	//       "type": "string"
33273	//     },
33274	//     "requestId": {
33275	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
33276	//       "location": "query",
33277	//       "type": "string"
33278	//     }
33279	//   },
33280	//   "path": "{project}/regions/{region}/forwardingRules",
33281	//   "request": {
33282	//     "$ref": "ForwardingRule"
33283	//   },
33284	//   "response": {
33285	//     "$ref": "Operation"
33286	//   },
33287	//   "scopes": [
33288	//     "https://www.googleapis.com/auth/cloud-platform",
33289	//     "https://www.googleapis.com/auth/compute"
33290	//   ]
33291	// }
33292
33293}
33294
33295// method id "compute.forwardingRules.list":
33296
33297type ForwardingRulesListCall struct {
33298	s            *Service
33299	project      string
33300	region       string
33301	urlParams_   gensupport.URLParams
33302	ifNoneMatch_ string
33303	ctx_         context.Context
33304	header_      http.Header
33305}
33306
33307// List: Retrieves a list of ForwardingRule resources available to the
33308// specified project and region.
33309// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/list
33310func (r *ForwardingRulesService) List(project string, region string) *ForwardingRulesListCall {
33311	c := &ForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33312	c.project = project
33313	c.region = region
33314	return c
33315}
33316
33317// Filter sets the optional parameter "filter": Sets a filter
33318// {expression} for filtering listed resources. Your {expression} must
33319// be in the format: field_name comparison_string literal_string.
33320//
33321// The field_name is the name of the field you want to compare. Only
33322// atomic field types are supported (string, number, boolean). The
33323// comparison_string must be either eq (equals) or ne (not equals). The
33324// literal_string is the string value to filter to. The literal value
33325// must be valid for the type of field you are filtering by (string,
33326// number, boolean). For string fields, the literal value is interpreted
33327// as a regular expression using RE2 syntax. The literal value must
33328// match the entire field.
33329//
33330// For example, to filter for instances that do not have a name of
33331// example-instance, you would use name ne example-instance.
33332//
33333// You can filter on nested fields. For example, you could filter on
33334// instances that have set the scheduling.automaticRestart field to
33335// true. Use filtering on nested fields to take advantage of labels to
33336// organize and search for results based on label values.
33337//
33338// To filter on multiple expressions, provide each separate expression
33339// within parentheses. For example, (scheduling.automaticRestart eq
33340// true) (zone eq us-central1-f). Multiple expressions are treated as
33341// AND expressions, meaning that resources must match all expressions to
33342// pass the filters.
33343func (c *ForwardingRulesListCall) Filter(filter string) *ForwardingRulesListCall {
33344	c.urlParams_.Set("filter", filter)
33345	return c
33346}
33347
33348// MaxResults sets the optional parameter "maxResults": The maximum
33349// number of results per page that should be returned. If the number of
33350// available results is larger than maxResults, Compute Engine returns a
33351// nextPageToken that can be used to get the next page of results in
33352// subsequent list requests. Acceptable values are 0 to 500, inclusive.
33353// (Default: 500)
33354func (c *ForwardingRulesListCall) MaxResults(maxResults int64) *ForwardingRulesListCall {
33355	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
33356	return c
33357}
33358
33359// OrderBy sets the optional parameter "orderBy": Sorts list results by
33360// a certain order. By default, results are returned in alphanumerical
33361// order based on the resource name.
33362//
33363// You can also sort results in descending order based on the creation
33364// timestamp using orderBy="creationTimestamp desc". This sorts results
33365// based on the creationTimestamp field in reverse chronological order
33366// (newest result first). Use this to sort resources like operations so
33367// that the newest operation is returned first.
33368//
33369// Currently, only sorting by name or creationTimestamp desc is
33370// supported.
33371func (c *ForwardingRulesListCall) OrderBy(orderBy string) *ForwardingRulesListCall {
33372	c.urlParams_.Set("orderBy", orderBy)
33373	return c
33374}
33375
33376// PageToken sets the optional parameter "pageToken": Specifies a page
33377// token to use. Set pageToken to the nextPageToken returned by a
33378// previous list request to get the next page of results.
33379func (c *ForwardingRulesListCall) PageToken(pageToken string) *ForwardingRulesListCall {
33380	c.urlParams_.Set("pageToken", pageToken)
33381	return c
33382}
33383
33384// Fields allows partial responses to be retrieved. See
33385// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33386// for more information.
33387func (c *ForwardingRulesListCall) Fields(s ...googleapi.Field) *ForwardingRulesListCall {
33388	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33389	return c
33390}
33391
33392// IfNoneMatch sets the optional parameter which makes the operation
33393// fail if the object's ETag matches the given value. This is useful for
33394// getting updates only after the object has changed since the last
33395// request. Use googleapi.IsNotModified to check whether the response
33396// error from Do is the result of In-None-Match.
33397func (c *ForwardingRulesListCall) IfNoneMatch(entityTag string) *ForwardingRulesListCall {
33398	c.ifNoneMatch_ = entityTag
33399	return c
33400}
33401
33402// Context sets the context to be used in this call's Do method. Any
33403// pending HTTP request will be aborted if the provided context is
33404// canceled.
33405func (c *ForwardingRulesListCall) Context(ctx context.Context) *ForwardingRulesListCall {
33406	c.ctx_ = ctx
33407	return c
33408}
33409
33410// Header returns an http.Header that can be modified by the caller to
33411// add HTTP headers to the request.
33412func (c *ForwardingRulesListCall) Header() http.Header {
33413	if c.header_ == nil {
33414		c.header_ = make(http.Header)
33415	}
33416	return c.header_
33417}
33418
33419func (c *ForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
33420	reqHeaders := make(http.Header)
33421	for k, v := range c.header_ {
33422		reqHeaders[k] = v
33423	}
33424	reqHeaders.Set("User-Agent", c.s.userAgent())
33425	if c.ifNoneMatch_ != "" {
33426		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
33427	}
33428	var body io.Reader = nil
33429	c.urlParams_.Set("alt", alt)
33430	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules")
33431	urls += "?" + c.urlParams_.Encode()
33432	req, _ := http.NewRequest("GET", urls, body)
33433	req.Header = reqHeaders
33434	googleapi.Expand(req.URL, map[string]string{
33435		"project": c.project,
33436		"region":  c.region,
33437	})
33438	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33439}
33440
33441// Do executes the "compute.forwardingRules.list" call.
33442// Exactly one of *ForwardingRuleList or error will be non-nil. Any
33443// non-2xx status code is an error. Response headers are in either
33444// *ForwardingRuleList.ServerResponse.Header or (if a response was
33445// returned at all) in error.(*googleapi.Error).Header. Use
33446// googleapi.IsNotModified to check whether the returned error was
33447// because http.StatusNotModified was returned.
33448func (c *ForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
33449	gensupport.SetOptions(c.urlParams_, opts...)
33450	res, err := c.doRequest("json")
33451	if res != nil && res.StatusCode == http.StatusNotModified {
33452		if res.Body != nil {
33453			res.Body.Close()
33454		}
33455		return nil, &googleapi.Error{
33456			Code:   res.StatusCode,
33457			Header: res.Header,
33458		}
33459	}
33460	if err != nil {
33461		return nil, err
33462	}
33463	defer googleapi.CloseBody(res)
33464	if err := googleapi.CheckResponse(res); err != nil {
33465		return nil, err
33466	}
33467	ret := &ForwardingRuleList{
33468		ServerResponse: googleapi.ServerResponse{
33469			Header:         res.Header,
33470			HTTPStatusCode: res.StatusCode,
33471		},
33472	}
33473	target := &ret
33474	if err := gensupport.DecodeResponse(target, res); err != nil {
33475		return nil, err
33476	}
33477	return ret, nil
33478	// {
33479	//   "description": "Retrieves a list of ForwardingRule resources available to the specified project and region.",
33480	//   "httpMethod": "GET",
33481	//   "id": "compute.forwardingRules.list",
33482	//   "parameterOrder": [
33483	//     "project",
33484	//     "region"
33485	//   ],
33486	//   "parameters": {
33487	//     "filter": {
33488	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
33489	//       "location": "query",
33490	//       "type": "string"
33491	//     },
33492	//     "maxResults": {
33493	//       "default": "500",
33494	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
33495	//       "format": "uint32",
33496	//       "location": "query",
33497	//       "minimum": "0",
33498	//       "type": "integer"
33499	//     },
33500	//     "orderBy": {
33501	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
33502	//       "location": "query",
33503	//       "type": "string"
33504	//     },
33505	//     "pageToken": {
33506	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
33507	//       "location": "query",
33508	//       "type": "string"
33509	//     },
33510	//     "project": {
33511	//       "description": "Project ID for this request.",
33512	//       "location": "path",
33513	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
33514	//       "required": true,
33515	//       "type": "string"
33516	//     },
33517	//     "region": {
33518	//       "description": "Name of the region scoping this request.",
33519	//       "location": "path",
33520	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
33521	//       "required": true,
33522	//       "type": "string"
33523	//     }
33524	//   },
33525	//   "path": "{project}/regions/{region}/forwardingRules",
33526	//   "response": {
33527	//     "$ref": "ForwardingRuleList"
33528	//   },
33529	//   "scopes": [
33530	//     "https://www.googleapis.com/auth/cloud-platform",
33531	//     "https://www.googleapis.com/auth/compute",
33532	//     "https://www.googleapis.com/auth/compute.readonly"
33533	//   ]
33534	// }
33535
33536}
33537
33538// Pages invokes f for each page of results.
33539// A non-nil error returned from f will halt the iteration.
33540// The provided context supersedes any context provided to the Context method.
33541func (c *ForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
33542	c.ctx_ = ctx
33543	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
33544	for {
33545		x, err := c.Do()
33546		if err != nil {
33547			return err
33548		}
33549		if err := f(x); err != nil {
33550			return err
33551		}
33552		if x.NextPageToken == "" {
33553			return nil
33554		}
33555		c.PageToken(x.NextPageToken)
33556	}
33557}
33558
33559// method id "compute.forwardingRules.setTarget":
33560
33561type ForwardingRulesSetTargetCall struct {
33562	s               *Service
33563	project         string
33564	region          string
33565	forwardingRule  string
33566	targetreference *TargetReference
33567	urlParams_      gensupport.URLParams
33568	ctx_            context.Context
33569	header_         http.Header
33570}
33571
33572// SetTarget: Changes target URL for forwarding rule. The new target
33573// should be of the same type as the old target.
33574// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/setTarget
33575func (r *ForwardingRulesService) SetTarget(project string, region string, forwardingRule string, targetreference *TargetReference) *ForwardingRulesSetTargetCall {
33576	c := &ForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33577	c.project = project
33578	c.region = region
33579	c.forwardingRule = forwardingRule
33580	c.targetreference = targetreference
33581	return c
33582}
33583
33584// RequestId sets the optional parameter "requestId": An optional
33585// request ID to identify requests. Specify a unique request ID so that
33586// if you must retry your request, the server will know to ignore the
33587// request if it has already been completed.
33588//
33589// For example, consider a situation where you make an initial request
33590// and the request times out. If you make the request again with the
33591// same request ID, the server can check if original operation with the
33592// same request ID was received, and if so, will ignore the second
33593// request. This prevents clients from accidentally creating duplicate
33594// commitments.
33595//
33596// The request ID must be a valid UUID with the exception that zero UUID
33597// is not supported (00000000-0000-0000-0000-000000000000).
33598func (c *ForwardingRulesSetTargetCall) RequestId(requestId string) *ForwardingRulesSetTargetCall {
33599	c.urlParams_.Set("requestId", requestId)
33600	return c
33601}
33602
33603// Fields allows partial responses to be retrieved. See
33604// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33605// for more information.
33606func (c *ForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *ForwardingRulesSetTargetCall {
33607	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33608	return c
33609}
33610
33611// Context sets the context to be used in this call's Do method. Any
33612// pending HTTP request will be aborted if the provided context is
33613// canceled.
33614func (c *ForwardingRulesSetTargetCall) Context(ctx context.Context) *ForwardingRulesSetTargetCall {
33615	c.ctx_ = ctx
33616	return c
33617}
33618
33619// Header returns an http.Header that can be modified by the caller to
33620// add HTTP headers to the request.
33621func (c *ForwardingRulesSetTargetCall) Header() http.Header {
33622	if c.header_ == nil {
33623		c.header_ = make(http.Header)
33624	}
33625	return c.header_
33626}
33627
33628func (c *ForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
33629	reqHeaders := make(http.Header)
33630	for k, v := range c.header_ {
33631		reqHeaders[k] = v
33632	}
33633	reqHeaders.Set("User-Agent", c.s.userAgent())
33634	var body io.Reader = nil
33635	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
33636	if err != nil {
33637		return nil, err
33638	}
33639	reqHeaders.Set("Content-Type", "application/json")
33640	c.urlParams_.Set("alt", alt)
33641	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget")
33642	urls += "?" + c.urlParams_.Encode()
33643	req, _ := http.NewRequest("POST", urls, body)
33644	req.Header = reqHeaders
33645	googleapi.Expand(req.URL, map[string]string{
33646		"project":        c.project,
33647		"region":         c.region,
33648		"forwardingRule": c.forwardingRule,
33649	})
33650	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33651}
33652
33653// Do executes the "compute.forwardingRules.setTarget" call.
33654// Exactly one of *Operation or error will be non-nil. Any non-2xx
33655// status code is an error. Response headers are in either
33656// *Operation.ServerResponse.Header or (if a response was returned at
33657// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
33658// to check whether the returned error was because
33659// http.StatusNotModified was returned.
33660func (c *ForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
33661	gensupport.SetOptions(c.urlParams_, opts...)
33662	res, err := c.doRequest("json")
33663	if res != nil && res.StatusCode == http.StatusNotModified {
33664		if res.Body != nil {
33665			res.Body.Close()
33666		}
33667		return nil, &googleapi.Error{
33668			Code:   res.StatusCode,
33669			Header: res.Header,
33670		}
33671	}
33672	if err != nil {
33673		return nil, err
33674	}
33675	defer googleapi.CloseBody(res)
33676	if err := googleapi.CheckResponse(res); err != nil {
33677		return nil, err
33678	}
33679	ret := &Operation{
33680		ServerResponse: googleapi.ServerResponse{
33681			Header:         res.Header,
33682			HTTPStatusCode: res.StatusCode,
33683		},
33684	}
33685	target := &ret
33686	if err := gensupport.DecodeResponse(target, res); err != nil {
33687		return nil, err
33688	}
33689	return ret, nil
33690	// {
33691	//   "description": "Changes target URL for forwarding rule. The new target should be of the same type as the old target.",
33692	//   "httpMethod": "POST",
33693	//   "id": "compute.forwardingRules.setTarget",
33694	//   "parameterOrder": [
33695	//     "project",
33696	//     "region",
33697	//     "forwardingRule"
33698	//   ],
33699	//   "parameters": {
33700	//     "forwardingRule": {
33701	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
33702	//       "location": "path",
33703	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
33704	//       "required": true,
33705	//       "type": "string"
33706	//     },
33707	//     "project": {
33708	//       "description": "Project ID for this request.",
33709	//       "location": "path",
33710	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
33711	//       "required": true,
33712	//       "type": "string"
33713	//     },
33714	//     "region": {
33715	//       "description": "Name of the region scoping this request.",
33716	//       "location": "path",
33717	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
33718	//       "required": true,
33719	//       "type": "string"
33720	//     },
33721	//     "requestId": {
33722	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
33723	//       "location": "query",
33724	//       "type": "string"
33725	//     }
33726	//   },
33727	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget",
33728	//   "request": {
33729	//     "$ref": "TargetReference"
33730	//   },
33731	//   "response": {
33732	//     "$ref": "Operation"
33733	//   },
33734	//   "scopes": [
33735	//     "https://www.googleapis.com/auth/cloud-platform",
33736	//     "https://www.googleapis.com/auth/compute"
33737	//   ]
33738	// }
33739
33740}
33741
33742// method id "compute.globalAddresses.delete":
33743
33744type GlobalAddressesDeleteCall struct {
33745	s          *Service
33746	project    string
33747	address    string
33748	urlParams_ gensupport.URLParams
33749	ctx_       context.Context
33750	header_    http.Header
33751}
33752
33753// Delete: Deletes the specified address resource.
33754// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/delete
33755func (r *GlobalAddressesService) Delete(project string, address string) *GlobalAddressesDeleteCall {
33756	c := &GlobalAddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33757	c.project = project
33758	c.address = address
33759	return c
33760}
33761
33762// RequestId sets the optional parameter "requestId": An optional
33763// request ID to identify requests. Specify a unique request ID so that
33764// if you must retry your request, the server will know to ignore the
33765// request if it has already been completed.
33766//
33767// For example, consider a situation where you make an initial request
33768// and the request times out. If you make the request again with the
33769// same request ID, the server can check if original operation with the
33770// same request ID was received, and if so, will ignore the second
33771// request. This prevents clients from accidentally creating duplicate
33772// commitments.
33773//
33774// The request ID must be a valid UUID with the exception that zero UUID
33775// is not supported (00000000-0000-0000-0000-000000000000).
33776func (c *GlobalAddressesDeleteCall) RequestId(requestId string) *GlobalAddressesDeleteCall {
33777	c.urlParams_.Set("requestId", requestId)
33778	return c
33779}
33780
33781// Fields allows partial responses to be retrieved. See
33782// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33783// for more information.
33784func (c *GlobalAddressesDeleteCall) Fields(s ...googleapi.Field) *GlobalAddressesDeleteCall {
33785	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33786	return c
33787}
33788
33789// Context sets the context to be used in this call's Do method. Any
33790// pending HTTP request will be aborted if the provided context is
33791// canceled.
33792func (c *GlobalAddressesDeleteCall) Context(ctx context.Context) *GlobalAddressesDeleteCall {
33793	c.ctx_ = ctx
33794	return c
33795}
33796
33797// Header returns an http.Header that can be modified by the caller to
33798// add HTTP headers to the request.
33799func (c *GlobalAddressesDeleteCall) Header() http.Header {
33800	if c.header_ == nil {
33801		c.header_ = make(http.Header)
33802	}
33803	return c.header_
33804}
33805
33806func (c *GlobalAddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
33807	reqHeaders := make(http.Header)
33808	for k, v := range c.header_ {
33809		reqHeaders[k] = v
33810	}
33811	reqHeaders.Set("User-Agent", c.s.userAgent())
33812	var body io.Reader = nil
33813	c.urlParams_.Set("alt", alt)
33814	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{address}")
33815	urls += "?" + c.urlParams_.Encode()
33816	req, _ := http.NewRequest("DELETE", urls, body)
33817	req.Header = reqHeaders
33818	googleapi.Expand(req.URL, map[string]string{
33819		"project": c.project,
33820		"address": c.address,
33821	})
33822	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33823}
33824
33825// Do executes the "compute.globalAddresses.delete" call.
33826// Exactly one of *Operation or error will be non-nil. Any non-2xx
33827// status code is an error. Response headers are in either
33828// *Operation.ServerResponse.Header or (if a response was returned at
33829// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
33830// to check whether the returned error was because
33831// http.StatusNotModified was returned.
33832func (c *GlobalAddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
33833	gensupport.SetOptions(c.urlParams_, opts...)
33834	res, err := c.doRequest("json")
33835	if res != nil && res.StatusCode == http.StatusNotModified {
33836		if res.Body != nil {
33837			res.Body.Close()
33838		}
33839		return nil, &googleapi.Error{
33840			Code:   res.StatusCode,
33841			Header: res.Header,
33842		}
33843	}
33844	if err != nil {
33845		return nil, err
33846	}
33847	defer googleapi.CloseBody(res)
33848	if err := googleapi.CheckResponse(res); err != nil {
33849		return nil, err
33850	}
33851	ret := &Operation{
33852		ServerResponse: googleapi.ServerResponse{
33853			Header:         res.Header,
33854			HTTPStatusCode: res.StatusCode,
33855		},
33856	}
33857	target := &ret
33858	if err := gensupport.DecodeResponse(target, res); err != nil {
33859		return nil, err
33860	}
33861	return ret, nil
33862	// {
33863	//   "description": "Deletes the specified address resource.",
33864	//   "httpMethod": "DELETE",
33865	//   "id": "compute.globalAddresses.delete",
33866	//   "parameterOrder": [
33867	//     "project",
33868	//     "address"
33869	//   ],
33870	//   "parameters": {
33871	//     "address": {
33872	//       "description": "Name of the address resource to delete.",
33873	//       "location": "path",
33874	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
33875	//       "required": true,
33876	//       "type": "string"
33877	//     },
33878	//     "project": {
33879	//       "description": "Project ID for this request.",
33880	//       "location": "path",
33881	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
33882	//       "required": true,
33883	//       "type": "string"
33884	//     },
33885	//     "requestId": {
33886	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
33887	//       "location": "query",
33888	//       "type": "string"
33889	//     }
33890	//   },
33891	//   "path": "{project}/global/addresses/{address}",
33892	//   "response": {
33893	//     "$ref": "Operation"
33894	//   },
33895	//   "scopes": [
33896	//     "https://www.googleapis.com/auth/cloud-platform",
33897	//     "https://www.googleapis.com/auth/compute"
33898	//   ]
33899	// }
33900
33901}
33902
33903// method id "compute.globalAddresses.get":
33904
33905type GlobalAddressesGetCall struct {
33906	s            *Service
33907	project      string
33908	address      string
33909	urlParams_   gensupport.URLParams
33910	ifNoneMatch_ string
33911	ctx_         context.Context
33912	header_      http.Header
33913}
33914
33915// Get: Returns the specified address resource. Get a list of available
33916// addresses by making a list() request.
33917// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/get
33918func (r *GlobalAddressesService) Get(project string, address string) *GlobalAddressesGetCall {
33919	c := &GlobalAddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
33920	c.project = project
33921	c.address = address
33922	return c
33923}
33924
33925// Fields allows partial responses to be retrieved. See
33926// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
33927// for more information.
33928func (c *GlobalAddressesGetCall) Fields(s ...googleapi.Field) *GlobalAddressesGetCall {
33929	c.urlParams_.Set("fields", googleapi.CombineFields(s))
33930	return c
33931}
33932
33933// IfNoneMatch sets the optional parameter which makes the operation
33934// fail if the object's ETag matches the given value. This is useful for
33935// getting updates only after the object has changed since the last
33936// request. Use googleapi.IsNotModified to check whether the response
33937// error from Do is the result of In-None-Match.
33938func (c *GlobalAddressesGetCall) IfNoneMatch(entityTag string) *GlobalAddressesGetCall {
33939	c.ifNoneMatch_ = entityTag
33940	return c
33941}
33942
33943// Context sets the context to be used in this call's Do method. Any
33944// pending HTTP request will be aborted if the provided context is
33945// canceled.
33946func (c *GlobalAddressesGetCall) Context(ctx context.Context) *GlobalAddressesGetCall {
33947	c.ctx_ = ctx
33948	return c
33949}
33950
33951// Header returns an http.Header that can be modified by the caller to
33952// add HTTP headers to the request.
33953func (c *GlobalAddressesGetCall) Header() http.Header {
33954	if c.header_ == nil {
33955		c.header_ = make(http.Header)
33956	}
33957	return c.header_
33958}
33959
33960func (c *GlobalAddressesGetCall) doRequest(alt string) (*http.Response, error) {
33961	reqHeaders := make(http.Header)
33962	for k, v := range c.header_ {
33963		reqHeaders[k] = v
33964	}
33965	reqHeaders.Set("User-Agent", c.s.userAgent())
33966	if c.ifNoneMatch_ != "" {
33967		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
33968	}
33969	var body io.Reader = nil
33970	c.urlParams_.Set("alt", alt)
33971	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{address}")
33972	urls += "?" + c.urlParams_.Encode()
33973	req, _ := http.NewRequest("GET", urls, body)
33974	req.Header = reqHeaders
33975	googleapi.Expand(req.URL, map[string]string{
33976		"project": c.project,
33977		"address": c.address,
33978	})
33979	return gensupport.SendRequest(c.ctx_, c.s.client, req)
33980}
33981
33982// Do executes the "compute.globalAddresses.get" call.
33983// Exactly one of *Address or error will be non-nil. Any non-2xx status
33984// code is an error. Response headers are in either
33985// *Address.ServerResponse.Header or (if a response was returned at all)
33986// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
33987// check whether the returned error was because http.StatusNotModified
33988// was returned.
33989func (c *GlobalAddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
33990	gensupport.SetOptions(c.urlParams_, opts...)
33991	res, err := c.doRequest("json")
33992	if res != nil && res.StatusCode == http.StatusNotModified {
33993		if res.Body != nil {
33994			res.Body.Close()
33995		}
33996		return nil, &googleapi.Error{
33997			Code:   res.StatusCode,
33998			Header: res.Header,
33999		}
34000	}
34001	if err != nil {
34002		return nil, err
34003	}
34004	defer googleapi.CloseBody(res)
34005	if err := googleapi.CheckResponse(res); err != nil {
34006		return nil, err
34007	}
34008	ret := &Address{
34009		ServerResponse: googleapi.ServerResponse{
34010			Header:         res.Header,
34011			HTTPStatusCode: res.StatusCode,
34012		},
34013	}
34014	target := &ret
34015	if err := gensupport.DecodeResponse(target, res); err != nil {
34016		return nil, err
34017	}
34018	return ret, nil
34019	// {
34020	//   "description": "Returns the specified address resource. Get a list of available addresses by making a list() request.",
34021	//   "httpMethod": "GET",
34022	//   "id": "compute.globalAddresses.get",
34023	//   "parameterOrder": [
34024	//     "project",
34025	//     "address"
34026	//   ],
34027	//   "parameters": {
34028	//     "address": {
34029	//       "description": "Name of the address resource to return.",
34030	//       "location": "path",
34031	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
34032	//       "required": true,
34033	//       "type": "string"
34034	//     },
34035	//     "project": {
34036	//       "description": "Project ID for this request.",
34037	//       "location": "path",
34038	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
34039	//       "required": true,
34040	//       "type": "string"
34041	//     }
34042	//   },
34043	//   "path": "{project}/global/addresses/{address}",
34044	//   "response": {
34045	//     "$ref": "Address"
34046	//   },
34047	//   "scopes": [
34048	//     "https://www.googleapis.com/auth/cloud-platform",
34049	//     "https://www.googleapis.com/auth/compute",
34050	//     "https://www.googleapis.com/auth/compute.readonly"
34051	//   ]
34052	// }
34053
34054}
34055
34056// method id "compute.globalAddresses.insert":
34057
34058type GlobalAddressesInsertCall struct {
34059	s          *Service
34060	project    string
34061	address    *Address
34062	urlParams_ gensupport.URLParams
34063	ctx_       context.Context
34064	header_    http.Header
34065}
34066
34067// Insert: Creates an address resource in the specified project using
34068// the data included in the request.
34069// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/insert
34070func (r *GlobalAddressesService) Insert(project string, address *Address) *GlobalAddressesInsertCall {
34071	c := &GlobalAddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34072	c.project = project
34073	c.address = address
34074	return c
34075}
34076
34077// RequestId sets the optional parameter "requestId": An optional
34078// request ID to identify requests. Specify a unique request ID so that
34079// if you must retry your request, the server will know to ignore the
34080// request if it has already been completed.
34081//
34082// For example, consider a situation where you make an initial request
34083// and the request times out. If you make the request again with the
34084// same request ID, the server can check if original operation with the
34085// same request ID was received, and if so, will ignore the second
34086// request. This prevents clients from accidentally creating duplicate
34087// commitments.
34088//
34089// The request ID must be a valid UUID with the exception that zero UUID
34090// is not supported (00000000-0000-0000-0000-000000000000).
34091func (c *GlobalAddressesInsertCall) RequestId(requestId string) *GlobalAddressesInsertCall {
34092	c.urlParams_.Set("requestId", requestId)
34093	return c
34094}
34095
34096// Fields allows partial responses to be retrieved. See
34097// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34098// for more information.
34099func (c *GlobalAddressesInsertCall) Fields(s ...googleapi.Field) *GlobalAddressesInsertCall {
34100	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34101	return c
34102}
34103
34104// Context sets the context to be used in this call's Do method. Any
34105// pending HTTP request will be aborted if the provided context is
34106// canceled.
34107func (c *GlobalAddressesInsertCall) Context(ctx context.Context) *GlobalAddressesInsertCall {
34108	c.ctx_ = ctx
34109	return c
34110}
34111
34112// Header returns an http.Header that can be modified by the caller to
34113// add HTTP headers to the request.
34114func (c *GlobalAddressesInsertCall) Header() http.Header {
34115	if c.header_ == nil {
34116		c.header_ = make(http.Header)
34117	}
34118	return c.header_
34119}
34120
34121func (c *GlobalAddressesInsertCall) doRequest(alt string) (*http.Response, error) {
34122	reqHeaders := make(http.Header)
34123	for k, v := range c.header_ {
34124		reqHeaders[k] = v
34125	}
34126	reqHeaders.Set("User-Agent", c.s.userAgent())
34127	var body io.Reader = nil
34128	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
34129	if err != nil {
34130		return nil, err
34131	}
34132	reqHeaders.Set("Content-Type", "application/json")
34133	c.urlParams_.Set("alt", alt)
34134	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses")
34135	urls += "?" + c.urlParams_.Encode()
34136	req, _ := http.NewRequest("POST", urls, body)
34137	req.Header = reqHeaders
34138	googleapi.Expand(req.URL, map[string]string{
34139		"project": c.project,
34140	})
34141	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34142}
34143
34144// Do executes the "compute.globalAddresses.insert" call.
34145// Exactly one of *Operation or error will be non-nil. Any non-2xx
34146// status code is an error. Response headers are in either
34147// *Operation.ServerResponse.Header or (if a response was returned at
34148// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
34149// to check whether the returned error was because
34150// http.StatusNotModified was returned.
34151func (c *GlobalAddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
34152	gensupport.SetOptions(c.urlParams_, opts...)
34153	res, err := c.doRequest("json")
34154	if res != nil && res.StatusCode == http.StatusNotModified {
34155		if res.Body != nil {
34156			res.Body.Close()
34157		}
34158		return nil, &googleapi.Error{
34159			Code:   res.StatusCode,
34160			Header: res.Header,
34161		}
34162	}
34163	if err != nil {
34164		return nil, err
34165	}
34166	defer googleapi.CloseBody(res)
34167	if err := googleapi.CheckResponse(res); err != nil {
34168		return nil, err
34169	}
34170	ret := &Operation{
34171		ServerResponse: googleapi.ServerResponse{
34172			Header:         res.Header,
34173			HTTPStatusCode: res.StatusCode,
34174		},
34175	}
34176	target := &ret
34177	if err := gensupport.DecodeResponse(target, res); err != nil {
34178		return nil, err
34179	}
34180	return ret, nil
34181	// {
34182	//   "description": "Creates an address resource in the specified project using the data included in the request.",
34183	//   "httpMethod": "POST",
34184	//   "id": "compute.globalAddresses.insert",
34185	//   "parameterOrder": [
34186	//     "project"
34187	//   ],
34188	//   "parameters": {
34189	//     "project": {
34190	//       "description": "Project ID for this request.",
34191	//       "location": "path",
34192	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
34193	//       "required": true,
34194	//       "type": "string"
34195	//     },
34196	//     "requestId": {
34197	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
34198	//       "location": "query",
34199	//       "type": "string"
34200	//     }
34201	//   },
34202	//   "path": "{project}/global/addresses",
34203	//   "request": {
34204	//     "$ref": "Address"
34205	//   },
34206	//   "response": {
34207	//     "$ref": "Operation"
34208	//   },
34209	//   "scopes": [
34210	//     "https://www.googleapis.com/auth/cloud-platform",
34211	//     "https://www.googleapis.com/auth/compute"
34212	//   ]
34213	// }
34214
34215}
34216
34217// method id "compute.globalAddresses.list":
34218
34219type GlobalAddressesListCall struct {
34220	s            *Service
34221	project      string
34222	urlParams_   gensupport.URLParams
34223	ifNoneMatch_ string
34224	ctx_         context.Context
34225	header_      http.Header
34226}
34227
34228// List: Retrieves a list of global addresses.
34229// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/list
34230func (r *GlobalAddressesService) List(project string) *GlobalAddressesListCall {
34231	c := &GlobalAddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34232	c.project = project
34233	return c
34234}
34235
34236// Filter sets the optional parameter "filter": Sets a filter
34237// {expression} for filtering listed resources. Your {expression} must
34238// be in the format: field_name comparison_string literal_string.
34239//
34240// The field_name is the name of the field you want to compare. Only
34241// atomic field types are supported (string, number, boolean). The
34242// comparison_string must be either eq (equals) or ne (not equals). The
34243// literal_string is the string value to filter to. The literal value
34244// must be valid for the type of field you are filtering by (string,
34245// number, boolean). For string fields, the literal value is interpreted
34246// as a regular expression using RE2 syntax. The literal value must
34247// match the entire field.
34248//
34249// For example, to filter for instances that do not have a name of
34250// example-instance, you would use name ne example-instance.
34251//
34252// You can filter on nested fields. For example, you could filter on
34253// instances that have set the scheduling.automaticRestart field to
34254// true. Use filtering on nested fields to take advantage of labels to
34255// organize and search for results based on label values.
34256//
34257// To filter on multiple expressions, provide each separate expression
34258// within parentheses. For example, (scheduling.automaticRestart eq
34259// true) (zone eq us-central1-f). Multiple expressions are treated as
34260// AND expressions, meaning that resources must match all expressions to
34261// pass the filters.
34262func (c *GlobalAddressesListCall) Filter(filter string) *GlobalAddressesListCall {
34263	c.urlParams_.Set("filter", filter)
34264	return c
34265}
34266
34267// MaxResults sets the optional parameter "maxResults": The maximum
34268// number of results per page that should be returned. If the number of
34269// available results is larger than maxResults, Compute Engine returns a
34270// nextPageToken that can be used to get the next page of results in
34271// subsequent list requests. Acceptable values are 0 to 500, inclusive.
34272// (Default: 500)
34273func (c *GlobalAddressesListCall) MaxResults(maxResults int64) *GlobalAddressesListCall {
34274	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
34275	return c
34276}
34277
34278// OrderBy sets the optional parameter "orderBy": Sorts list results by
34279// a certain order. By default, results are returned in alphanumerical
34280// order based on the resource name.
34281//
34282// You can also sort results in descending order based on the creation
34283// timestamp using orderBy="creationTimestamp desc". This sorts results
34284// based on the creationTimestamp field in reverse chronological order
34285// (newest result first). Use this to sort resources like operations so
34286// that the newest operation is returned first.
34287//
34288// Currently, only sorting by name or creationTimestamp desc is
34289// supported.
34290func (c *GlobalAddressesListCall) OrderBy(orderBy string) *GlobalAddressesListCall {
34291	c.urlParams_.Set("orderBy", orderBy)
34292	return c
34293}
34294
34295// PageToken sets the optional parameter "pageToken": Specifies a page
34296// token to use. Set pageToken to the nextPageToken returned by a
34297// previous list request to get the next page of results.
34298func (c *GlobalAddressesListCall) PageToken(pageToken string) *GlobalAddressesListCall {
34299	c.urlParams_.Set("pageToken", pageToken)
34300	return c
34301}
34302
34303// Fields allows partial responses to be retrieved. See
34304// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34305// for more information.
34306func (c *GlobalAddressesListCall) Fields(s ...googleapi.Field) *GlobalAddressesListCall {
34307	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34308	return c
34309}
34310
34311// IfNoneMatch sets the optional parameter which makes the operation
34312// fail if the object's ETag matches the given value. This is useful for
34313// getting updates only after the object has changed since the last
34314// request. Use googleapi.IsNotModified to check whether the response
34315// error from Do is the result of In-None-Match.
34316func (c *GlobalAddressesListCall) IfNoneMatch(entityTag string) *GlobalAddressesListCall {
34317	c.ifNoneMatch_ = entityTag
34318	return c
34319}
34320
34321// Context sets the context to be used in this call's Do method. Any
34322// pending HTTP request will be aborted if the provided context is
34323// canceled.
34324func (c *GlobalAddressesListCall) Context(ctx context.Context) *GlobalAddressesListCall {
34325	c.ctx_ = ctx
34326	return c
34327}
34328
34329// Header returns an http.Header that can be modified by the caller to
34330// add HTTP headers to the request.
34331func (c *GlobalAddressesListCall) Header() http.Header {
34332	if c.header_ == nil {
34333		c.header_ = make(http.Header)
34334	}
34335	return c.header_
34336}
34337
34338func (c *GlobalAddressesListCall) doRequest(alt string) (*http.Response, error) {
34339	reqHeaders := make(http.Header)
34340	for k, v := range c.header_ {
34341		reqHeaders[k] = v
34342	}
34343	reqHeaders.Set("User-Agent", c.s.userAgent())
34344	if c.ifNoneMatch_ != "" {
34345		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
34346	}
34347	var body io.Reader = nil
34348	c.urlParams_.Set("alt", alt)
34349	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses")
34350	urls += "?" + c.urlParams_.Encode()
34351	req, _ := http.NewRequest("GET", urls, body)
34352	req.Header = reqHeaders
34353	googleapi.Expand(req.URL, map[string]string{
34354		"project": c.project,
34355	})
34356	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34357}
34358
34359// Do executes the "compute.globalAddresses.list" call.
34360// Exactly one of *AddressList or error will be non-nil. Any non-2xx
34361// status code is an error. Response headers are in either
34362// *AddressList.ServerResponse.Header or (if a response was returned at
34363// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
34364// to check whether the returned error was because
34365// http.StatusNotModified was returned.
34366func (c *GlobalAddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
34367	gensupport.SetOptions(c.urlParams_, opts...)
34368	res, err := c.doRequest("json")
34369	if res != nil && res.StatusCode == http.StatusNotModified {
34370		if res.Body != nil {
34371			res.Body.Close()
34372		}
34373		return nil, &googleapi.Error{
34374			Code:   res.StatusCode,
34375			Header: res.Header,
34376		}
34377	}
34378	if err != nil {
34379		return nil, err
34380	}
34381	defer googleapi.CloseBody(res)
34382	if err := googleapi.CheckResponse(res); err != nil {
34383		return nil, err
34384	}
34385	ret := &AddressList{
34386		ServerResponse: googleapi.ServerResponse{
34387			Header:         res.Header,
34388			HTTPStatusCode: res.StatusCode,
34389		},
34390	}
34391	target := &ret
34392	if err := gensupport.DecodeResponse(target, res); err != nil {
34393		return nil, err
34394	}
34395	return ret, nil
34396	// {
34397	//   "description": "Retrieves a list of global addresses.",
34398	//   "httpMethod": "GET",
34399	//   "id": "compute.globalAddresses.list",
34400	//   "parameterOrder": [
34401	//     "project"
34402	//   ],
34403	//   "parameters": {
34404	//     "filter": {
34405	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
34406	//       "location": "query",
34407	//       "type": "string"
34408	//     },
34409	//     "maxResults": {
34410	//       "default": "500",
34411	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
34412	//       "format": "uint32",
34413	//       "location": "query",
34414	//       "minimum": "0",
34415	//       "type": "integer"
34416	//     },
34417	//     "orderBy": {
34418	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
34419	//       "location": "query",
34420	//       "type": "string"
34421	//     },
34422	//     "pageToken": {
34423	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
34424	//       "location": "query",
34425	//       "type": "string"
34426	//     },
34427	//     "project": {
34428	//       "description": "Project ID for this request.",
34429	//       "location": "path",
34430	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
34431	//       "required": true,
34432	//       "type": "string"
34433	//     }
34434	//   },
34435	//   "path": "{project}/global/addresses",
34436	//   "response": {
34437	//     "$ref": "AddressList"
34438	//   },
34439	//   "scopes": [
34440	//     "https://www.googleapis.com/auth/cloud-platform",
34441	//     "https://www.googleapis.com/auth/compute",
34442	//     "https://www.googleapis.com/auth/compute.readonly"
34443	//   ]
34444	// }
34445
34446}
34447
34448// Pages invokes f for each page of results.
34449// A non-nil error returned from f will halt the iteration.
34450// The provided context supersedes any context provided to the Context method.
34451func (c *GlobalAddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
34452	c.ctx_ = ctx
34453	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
34454	for {
34455		x, err := c.Do()
34456		if err != nil {
34457			return err
34458		}
34459		if err := f(x); err != nil {
34460			return err
34461		}
34462		if x.NextPageToken == "" {
34463			return nil
34464		}
34465		c.PageToken(x.NextPageToken)
34466	}
34467}
34468
34469// method id "compute.globalForwardingRules.delete":
34470
34471type GlobalForwardingRulesDeleteCall struct {
34472	s              *Service
34473	project        string
34474	forwardingRule string
34475	urlParams_     gensupport.URLParams
34476	ctx_           context.Context
34477	header_        http.Header
34478}
34479
34480// Delete: Deletes the specified GlobalForwardingRule resource.
34481// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/delete
34482func (r *GlobalForwardingRulesService) Delete(project string, forwardingRule string) *GlobalForwardingRulesDeleteCall {
34483	c := &GlobalForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34484	c.project = project
34485	c.forwardingRule = forwardingRule
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 *GlobalForwardingRulesDeleteCall) RequestId(requestId string) *GlobalForwardingRulesDeleteCall {
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 *GlobalForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesDeleteCall {
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 *GlobalForwardingRulesDeleteCall) Context(ctx context.Context) *GlobalForwardingRulesDeleteCall {
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 *GlobalForwardingRulesDeleteCall) Header() http.Header {
34527	if c.header_ == nil {
34528		c.header_ = make(http.Header)
34529	}
34530	return c.header_
34531}
34532
34533func (c *GlobalForwardingRulesDeleteCall) 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	c.urlParams_.Set("alt", alt)
34541	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
34542	urls += "?" + c.urlParams_.Encode()
34543	req, _ := http.NewRequest("DELETE", urls, body)
34544	req.Header = reqHeaders
34545	googleapi.Expand(req.URL, map[string]string{
34546		"project":        c.project,
34547		"forwardingRule": c.forwardingRule,
34548	})
34549	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34550}
34551
34552// Do executes the "compute.globalForwardingRules.delete" call.
34553// Exactly one of *Operation or error will be non-nil. Any non-2xx
34554// status code is an error. Response headers are in either
34555// *Operation.ServerResponse.Header or (if a response was returned at
34556// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
34557// to check whether the returned error was because
34558// http.StatusNotModified was returned.
34559func (c *GlobalForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
34560	gensupport.SetOptions(c.urlParams_, opts...)
34561	res, err := c.doRequest("json")
34562	if res != nil && res.StatusCode == http.StatusNotModified {
34563		if res.Body != nil {
34564			res.Body.Close()
34565		}
34566		return nil, &googleapi.Error{
34567			Code:   res.StatusCode,
34568			Header: res.Header,
34569		}
34570	}
34571	if err != nil {
34572		return nil, err
34573	}
34574	defer googleapi.CloseBody(res)
34575	if err := googleapi.CheckResponse(res); err != nil {
34576		return nil, err
34577	}
34578	ret := &Operation{
34579		ServerResponse: googleapi.ServerResponse{
34580			Header:         res.Header,
34581			HTTPStatusCode: res.StatusCode,
34582		},
34583	}
34584	target := &ret
34585	if err := gensupport.DecodeResponse(target, res); err != nil {
34586		return nil, err
34587	}
34588	return ret, nil
34589	// {
34590	//   "description": "Deletes the specified GlobalForwardingRule resource.",
34591	//   "httpMethod": "DELETE",
34592	//   "id": "compute.globalForwardingRules.delete",
34593	//   "parameterOrder": [
34594	//     "project",
34595	//     "forwardingRule"
34596	//   ],
34597	//   "parameters": {
34598	//     "forwardingRule": {
34599	//       "description": "Name of the ForwardingRule resource to delete.",
34600	//       "location": "path",
34601	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
34602	//       "required": true,
34603	//       "type": "string"
34604	//     },
34605	//     "project": {
34606	//       "description": "Project ID for this request.",
34607	//       "location": "path",
34608	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
34609	//       "required": true,
34610	//       "type": "string"
34611	//     },
34612	//     "requestId": {
34613	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
34614	//       "location": "query",
34615	//       "type": "string"
34616	//     }
34617	//   },
34618	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
34619	//   "response": {
34620	//     "$ref": "Operation"
34621	//   },
34622	//   "scopes": [
34623	//     "https://www.googleapis.com/auth/cloud-platform",
34624	//     "https://www.googleapis.com/auth/compute"
34625	//   ]
34626	// }
34627
34628}
34629
34630// method id "compute.globalForwardingRules.get":
34631
34632type GlobalForwardingRulesGetCall struct {
34633	s              *Service
34634	project        string
34635	forwardingRule string
34636	urlParams_     gensupport.URLParams
34637	ifNoneMatch_   string
34638	ctx_           context.Context
34639	header_        http.Header
34640}
34641
34642// Get: Returns the specified GlobalForwardingRule resource. Get a list
34643// of available forwarding rules by making a list() request.
34644// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/get
34645func (r *GlobalForwardingRulesService) Get(project string, forwardingRule string) *GlobalForwardingRulesGetCall {
34646	c := &GlobalForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34647	c.project = project
34648	c.forwardingRule = forwardingRule
34649	return c
34650}
34651
34652// Fields allows partial responses to be retrieved. See
34653// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34654// for more information.
34655func (c *GlobalForwardingRulesGetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesGetCall {
34656	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34657	return c
34658}
34659
34660// IfNoneMatch sets the optional parameter which makes the operation
34661// fail if the object's ETag matches the given value. This is useful for
34662// getting updates only after the object has changed since the last
34663// request. Use googleapi.IsNotModified to check whether the response
34664// error from Do is the result of In-None-Match.
34665func (c *GlobalForwardingRulesGetCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesGetCall {
34666	c.ifNoneMatch_ = entityTag
34667	return c
34668}
34669
34670// Context sets the context to be used in this call's Do method. Any
34671// pending HTTP request will be aborted if the provided context is
34672// canceled.
34673func (c *GlobalForwardingRulesGetCall) Context(ctx context.Context) *GlobalForwardingRulesGetCall {
34674	c.ctx_ = ctx
34675	return c
34676}
34677
34678// Header returns an http.Header that can be modified by the caller to
34679// add HTTP headers to the request.
34680func (c *GlobalForwardingRulesGetCall) Header() http.Header {
34681	if c.header_ == nil {
34682		c.header_ = make(http.Header)
34683	}
34684	return c.header_
34685}
34686
34687func (c *GlobalForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
34688	reqHeaders := make(http.Header)
34689	for k, v := range c.header_ {
34690		reqHeaders[k] = v
34691	}
34692	reqHeaders.Set("User-Agent", c.s.userAgent())
34693	if c.ifNoneMatch_ != "" {
34694		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
34695	}
34696	var body io.Reader = nil
34697	c.urlParams_.Set("alt", alt)
34698	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
34699	urls += "?" + c.urlParams_.Encode()
34700	req, _ := http.NewRequest("GET", urls, body)
34701	req.Header = reqHeaders
34702	googleapi.Expand(req.URL, map[string]string{
34703		"project":        c.project,
34704		"forwardingRule": c.forwardingRule,
34705	})
34706	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34707}
34708
34709// Do executes the "compute.globalForwardingRules.get" call.
34710// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
34711// status code is an error. Response headers are in either
34712// *ForwardingRule.ServerResponse.Header or (if a response was returned
34713// at all) in error.(*googleapi.Error).Header. Use
34714// googleapi.IsNotModified to check whether the returned error was
34715// because http.StatusNotModified was returned.
34716func (c *GlobalForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
34717	gensupport.SetOptions(c.urlParams_, opts...)
34718	res, err := c.doRequest("json")
34719	if res != nil && res.StatusCode == http.StatusNotModified {
34720		if res.Body != nil {
34721			res.Body.Close()
34722		}
34723		return nil, &googleapi.Error{
34724			Code:   res.StatusCode,
34725			Header: res.Header,
34726		}
34727	}
34728	if err != nil {
34729		return nil, err
34730	}
34731	defer googleapi.CloseBody(res)
34732	if err := googleapi.CheckResponse(res); err != nil {
34733		return nil, err
34734	}
34735	ret := &ForwardingRule{
34736		ServerResponse: googleapi.ServerResponse{
34737			Header:         res.Header,
34738			HTTPStatusCode: res.StatusCode,
34739		},
34740	}
34741	target := &ret
34742	if err := gensupport.DecodeResponse(target, res); err != nil {
34743		return nil, err
34744	}
34745	return ret, nil
34746	// {
34747	//   "description": "Returns the specified GlobalForwardingRule resource. Get a list of available forwarding rules by making a list() request.",
34748	//   "httpMethod": "GET",
34749	//   "id": "compute.globalForwardingRules.get",
34750	//   "parameterOrder": [
34751	//     "project",
34752	//     "forwardingRule"
34753	//   ],
34754	//   "parameters": {
34755	//     "forwardingRule": {
34756	//       "description": "Name of the ForwardingRule resource to return.",
34757	//       "location": "path",
34758	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
34759	//       "required": true,
34760	//       "type": "string"
34761	//     },
34762	//     "project": {
34763	//       "description": "Project ID for this request.",
34764	//       "location": "path",
34765	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
34766	//       "required": true,
34767	//       "type": "string"
34768	//     }
34769	//   },
34770	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
34771	//   "response": {
34772	//     "$ref": "ForwardingRule"
34773	//   },
34774	//   "scopes": [
34775	//     "https://www.googleapis.com/auth/cloud-platform",
34776	//     "https://www.googleapis.com/auth/compute",
34777	//     "https://www.googleapis.com/auth/compute.readonly"
34778	//   ]
34779	// }
34780
34781}
34782
34783// method id "compute.globalForwardingRules.insert":
34784
34785type GlobalForwardingRulesInsertCall struct {
34786	s              *Service
34787	project        string
34788	forwardingrule *ForwardingRule
34789	urlParams_     gensupport.URLParams
34790	ctx_           context.Context
34791	header_        http.Header
34792}
34793
34794// Insert: Creates a GlobalForwardingRule resource in the specified
34795// project using the data included in the request.
34796// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/insert
34797func (r *GlobalForwardingRulesService) Insert(project string, forwardingrule *ForwardingRule) *GlobalForwardingRulesInsertCall {
34798	c := &GlobalForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34799	c.project = project
34800	c.forwardingrule = forwardingrule
34801	return c
34802}
34803
34804// RequestId sets the optional parameter "requestId": An optional
34805// request ID to identify requests. Specify a unique request ID so that
34806// if you must retry your request, the server will know to ignore the
34807// request if it has already been completed.
34808//
34809// For example, consider a situation where you make an initial request
34810// and the request times out. If you make the request again with the
34811// same request ID, the server can check if original operation with the
34812// same request ID was received, and if so, will ignore the second
34813// request. This prevents clients from accidentally creating duplicate
34814// commitments.
34815//
34816// The request ID must be a valid UUID with the exception that zero UUID
34817// is not supported (00000000-0000-0000-0000-000000000000).
34818func (c *GlobalForwardingRulesInsertCall) RequestId(requestId string) *GlobalForwardingRulesInsertCall {
34819	c.urlParams_.Set("requestId", requestId)
34820	return c
34821}
34822
34823// Fields allows partial responses to be retrieved. See
34824// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
34825// for more information.
34826func (c *GlobalForwardingRulesInsertCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesInsertCall {
34827	c.urlParams_.Set("fields", googleapi.CombineFields(s))
34828	return c
34829}
34830
34831// Context sets the context to be used in this call's Do method. Any
34832// pending HTTP request will be aborted if the provided context is
34833// canceled.
34834func (c *GlobalForwardingRulesInsertCall) Context(ctx context.Context) *GlobalForwardingRulesInsertCall {
34835	c.ctx_ = ctx
34836	return c
34837}
34838
34839// Header returns an http.Header that can be modified by the caller to
34840// add HTTP headers to the request.
34841func (c *GlobalForwardingRulesInsertCall) Header() http.Header {
34842	if c.header_ == nil {
34843		c.header_ = make(http.Header)
34844	}
34845	return c.header_
34846}
34847
34848func (c *GlobalForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
34849	reqHeaders := make(http.Header)
34850	for k, v := range c.header_ {
34851		reqHeaders[k] = v
34852	}
34853	reqHeaders.Set("User-Agent", c.s.userAgent())
34854	var body io.Reader = nil
34855	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
34856	if err != nil {
34857		return nil, err
34858	}
34859	reqHeaders.Set("Content-Type", "application/json")
34860	c.urlParams_.Set("alt", alt)
34861	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules")
34862	urls += "?" + c.urlParams_.Encode()
34863	req, _ := http.NewRequest("POST", urls, body)
34864	req.Header = reqHeaders
34865	googleapi.Expand(req.URL, map[string]string{
34866		"project": c.project,
34867	})
34868	return gensupport.SendRequest(c.ctx_, c.s.client, req)
34869}
34870
34871// Do executes the "compute.globalForwardingRules.insert" call.
34872// Exactly one of *Operation or error will be non-nil. Any non-2xx
34873// status code is an error. Response headers are in either
34874// *Operation.ServerResponse.Header or (if a response was returned at
34875// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
34876// to check whether the returned error was because
34877// http.StatusNotModified was returned.
34878func (c *GlobalForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
34879	gensupport.SetOptions(c.urlParams_, opts...)
34880	res, err := c.doRequest("json")
34881	if res != nil && res.StatusCode == http.StatusNotModified {
34882		if res.Body != nil {
34883			res.Body.Close()
34884		}
34885		return nil, &googleapi.Error{
34886			Code:   res.StatusCode,
34887			Header: res.Header,
34888		}
34889	}
34890	if err != nil {
34891		return nil, err
34892	}
34893	defer googleapi.CloseBody(res)
34894	if err := googleapi.CheckResponse(res); err != nil {
34895		return nil, err
34896	}
34897	ret := &Operation{
34898		ServerResponse: googleapi.ServerResponse{
34899			Header:         res.Header,
34900			HTTPStatusCode: res.StatusCode,
34901		},
34902	}
34903	target := &ret
34904	if err := gensupport.DecodeResponse(target, res); err != nil {
34905		return nil, err
34906	}
34907	return ret, nil
34908	// {
34909	//   "description": "Creates a GlobalForwardingRule resource in the specified project using the data included in the request.",
34910	//   "httpMethod": "POST",
34911	//   "id": "compute.globalForwardingRules.insert",
34912	//   "parameterOrder": [
34913	//     "project"
34914	//   ],
34915	//   "parameters": {
34916	//     "project": {
34917	//       "description": "Project ID for this request.",
34918	//       "location": "path",
34919	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
34920	//       "required": true,
34921	//       "type": "string"
34922	//     },
34923	//     "requestId": {
34924	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
34925	//       "location": "query",
34926	//       "type": "string"
34927	//     }
34928	//   },
34929	//   "path": "{project}/global/forwardingRules",
34930	//   "request": {
34931	//     "$ref": "ForwardingRule"
34932	//   },
34933	//   "response": {
34934	//     "$ref": "Operation"
34935	//   },
34936	//   "scopes": [
34937	//     "https://www.googleapis.com/auth/cloud-platform",
34938	//     "https://www.googleapis.com/auth/compute"
34939	//   ]
34940	// }
34941
34942}
34943
34944// method id "compute.globalForwardingRules.list":
34945
34946type GlobalForwardingRulesListCall struct {
34947	s            *Service
34948	project      string
34949	urlParams_   gensupport.URLParams
34950	ifNoneMatch_ string
34951	ctx_         context.Context
34952	header_      http.Header
34953}
34954
34955// List: Retrieves a list of GlobalForwardingRule resources available to
34956// the specified project.
34957// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/list
34958func (r *GlobalForwardingRulesService) List(project string) *GlobalForwardingRulesListCall {
34959	c := &GlobalForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
34960	c.project = project
34961	return c
34962}
34963
34964// Filter sets the optional parameter "filter": Sets a filter
34965// {expression} for filtering listed resources. Your {expression} must
34966// be in the format: field_name comparison_string literal_string.
34967//
34968// The field_name is the name of the field you want to compare. Only
34969// atomic field types are supported (string, number, boolean). The
34970// comparison_string must be either eq (equals) or ne (not equals). The
34971// literal_string is the string value to filter to. The literal value
34972// must be valid for the type of field you are filtering by (string,
34973// number, boolean). For string fields, the literal value is interpreted
34974// as a regular expression using RE2 syntax. The literal value must
34975// match the entire field.
34976//
34977// For example, to filter for instances that do not have a name of
34978// example-instance, you would use name ne example-instance.
34979//
34980// You can filter on nested fields. For example, you could filter on
34981// instances that have set the scheduling.automaticRestart field to
34982// true. Use filtering on nested fields to take advantage of labels to
34983// organize and search for results based on label values.
34984//
34985// To filter on multiple expressions, provide each separate expression
34986// within parentheses. For example, (scheduling.automaticRestart eq
34987// true) (zone eq us-central1-f). Multiple expressions are treated as
34988// AND expressions, meaning that resources must match all expressions to
34989// pass the filters.
34990func (c *GlobalForwardingRulesListCall) Filter(filter string) *GlobalForwardingRulesListCall {
34991	c.urlParams_.Set("filter", filter)
34992	return c
34993}
34994
34995// MaxResults sets the optional parameter "maxResults": The maximum
34996// number of results per page that should be returned. If the number of
34997// available results is larger than maxResults, Compute Engine returns a
34998// nextPageToken that can be used to get the next page of results in
34999// subsequent list requests. Acceptable values are 0 to 500, inclusive.
35000// (Default: 500)
35001func (c *GlobalForwardingRulesListCall) MaxResults(maxResults int64) *GlobalForwardingRulesListCall {
35002	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
35003	return c
35004}
35005
35006// OrderBy sets the optional parameter "orderBy": Sorts list results by
35007// a certain order. By default, results are returned in alphanumerical
35008// order based on the resource name.
35009//
35010// You can also sort results in descending order based on the creation
35011// timestamp using orderBy="creationTimestamp desc". This sorts results
35012// based on the creationTimestamp field in reverse chronological order
35013// (newest result first). Use this to sort resources like operations so
35014// that the newest operation is returned first.
35015//
35016// Currently, only sorting by name or creationTimestamp desc is
35017// supported.
35018func (c *GlobalForwardingRulesListCall) OrderBy(orderBy string) *GlobalForwardingRulesListCall {
35019	c.urlParams_.Set("orderBy", orderBy)
35020	return c
35021}
35022
35023// PageToken sets the optional parameter "pageToken": Specifies a page
35024// token to use. Set pageToken to the nextPageToken returned by a
35025// previous list request to get the next page of results.
35026func (c *GlobalForwardingRulesListCall) PageToken(pageToken string) *GlobalForwardingRulesListCall {
35027	c.urlParams_.Set("pageToken", pageToken)
35028	return c
35029}
35030
35031// Fields allows partial responses to be retrieved. See
35032// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35033// for more information.
35034func (c *GlobalForwardingRulesListCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesListCall {
35035	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35036	return c
35037}
35038
35039// IfNoneMatch sets the optional parameter which makes the operation
35040// fail if the object's ETag matches the given value. This is useful for
35041// getting updates only after the object has changed since the last
35042// request. Use googleapi.IsNotModified to check whether the response
35043// error from Do is the result of In-None-Match.
35044func (c *GlobalForwardingRulesListCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesListCall {
35045	c.ifNoneMatch_ = entityTag
35046	return c
35047}
35048
35049// Context sets the context to be used in this call's Do method. Any
35050// pending HTTP request will be aborted if the provided context is
35051// canceled.
35052func (c *GlobalForwardingRulesListCall) Context(ctx context.Context) *GlobalForwardingRulesListCall {
35053	c.ctx_ = ctx
35054	return c
35055}
35056
35057// Header returns an http.Header that can be modified by the caller to
35058// add HTTP headers to the request.
35059func (c *GlobalForwardingRulesListCall) Header() http.Header {
35060	if c.header_ == nil {
35061		c.header_ = make(http.Header)
35062	}
35063	return c.header_
35064}
35065
35066func (c *GlobalForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
35067	reqHeaders := make(http.Header)
35068	for k, v := range c.header_ {
35069		reqHeaders[k] = v
35070	}
35071	reqHeaders.Set("User-Agent", c.s.userAgent())
35072	if c.ifNoneMatch_ != "" {
35073		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
35074	}
35075	var body io.Reader = nil
35076	c.urlParams_.Set("alt", alt)
35077	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules")
35078	urls += "?" + c.urlParams_.Encode()
35079	req, _ := http.NewRequest("GET", urls, body)
35080	req.Header = reqHeaders
35081	googleapi.Expand(req.URL, map[string]string{
35082		"project": c.project,
35083	})
35084	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35085}
35086
35087// Do executes the "compute.globalForwardingRules.list" call.
35088// Exactly one of *ForwardingRuleList or error will be non-nil. Any
35089// non-2xx status code is an error. Response headers are in either
35090// *ForwardingRuleList.ServerResponse.Header or (if a response was
35091// returned at all) in error.(*googleapi.Error).Header. Use
35092// googleapi.IsNotModified to check whether the returned error was
35093// because http.StatusNotModified was returned.
35094func (c *GlobalForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
35095	gensupport.SetOptions(c.urlParams_, opts...)
35096	res, err := c.doRequest("json")
35097	if res != nil && res.StatusCode == http.StatusNotModified {
35098		if res.Body != nil {
35099			res.Body.Close()
35100		}
35101		return nil, &googleapi.Error{
35102			Code:   res.StatusCode,
35103			Header: res.Header,
35104		}
35105	}
35106	if err != nil {
35107		return nil, err
35108	}
35109	defer googleapi.CloseBody(res)
35110	if err := googleapi.CheckResponse(res); err != nil {
35111		return nil, err
35112	}
35113	ret := &ForwardingRuleList{
35114		ServerResponse: googleapi.ServerResponse{
35115			Header:         res.Header,
35116			HTTPStatusCode: res.StatusCode,
35117		},
35118	}
35119	target := &ret
35120	if err := gensupport.DecodeResponse(target, res); err != nil {
35121		return nil, err
35122	}
35123	return ret, nil
35124	// {
35125	//   "description": "Retrieves a list of GlobalForwardingRule resources available to the specified project.",
35126	//   "httpMethod": "GET",
35127	//   "id": "compute.globalForwardingRules.list",
35128	//   "parameterOrder": [
35129	//     "project"
35130	//   ],
35131	//   "parameters": {
35132	//     "filter": {
35133	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
35134	//       "location": "query",
35135	//       "type": "string"
35136	//     },
35137	//     "maxResults": {
35138	//       "default": "500",
35139	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
35140	//       "format": "uint32",
35141	//       "location": "query",
35142	//       "minimum": "0",
35143	//       "type": "integer"
35144	//     },
35145	//     "orderBy": {
35146	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
35147	//       "location": "query",
35148	//       "type": "string"
35149	//     },
35150	//     "pageToken": {
35151	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
35152	//       "location": "query",
35153	//       "type": "string"
35154	//     },
35155	//     "project": {
35156	//       "description": "Project ID for this request.",
35157	//       "location": "path",
35158	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
35159	//       "required": true,
35160	//       "type": "string"
35161	//     }
35162	//   },
35163	//   "path": "{project}/global/forwardingRules",
35164	//   "response": {
35165	//     "$ref": "ForwardingRuleList"
35166	//   },
35167	//   "scopes": [
35168	//     "https://www.googleapis.com/auth/cloud-platform",
35169	//     "https://www.googleapis.com/auth/compute",
35170	//     "https://www.googleapis.com/auth/compute.readonly"
35171	//   ]
35172	// }
35173
35174}
35175
35176// Pages invokes f for each page of results.
35177// A non-nil error returned from f will halt the iteration.
35178// The provided context supersedes any context provided to the Context method.
35179func (c *GlobalForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
35180	c.ctx_ = ctx
35181	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
35182	for {
35183		x, err := c.Do()
35184		if err != nil {
35185			return err
35186		}
35187		if err := f(x); err != nil {
35188			return err
35189		}
35190		if x.NextPageToken == "" {
35191			return nil
35192		}
35193		c.PageToken(x.NextPageToken)
35194	}
35195}
35196
35197// method id "compute.globalForwardingRules.setTarget":
35198
35199type GlobalForwardingRulesSetTargetCall struct {
35200	s               *Service
35201	project         string
35202	forwardingRule  string
35203	targetreference *TargetReference
35204	urlParams_      gensupport.URLParams
35205	ctx_            context.Context
35206	header_         http.Header
35207}
35208
35209// SetTarget: Changes target URL for the GlobalForwardingRule resource.
35210// The new target should be of the same type as the old target.
35211// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/setTarget
35212func (r *GlobalForwardingRulesService) SetTarget(project string, forwardingRule string, targetreference *TargetReference) *GlobalForwardingRulesSetTargetCall {
35213	c := &GlobalForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35214	c.project = project
35215	c.forwardingRule = forwardingRule
35216	c.targetreference = targetreference
35217	return c
35218}
35219
35220// RequestId sets the optional parameter "requestId": An optional
35221// request ID to identify requests. Specify a unique request ID so that
35222// if you must retry your request, the server will know to ignore the
35223// request if it has already been completed.
35224//
35225// For example, consider a situation where you make an initial request
35226// and the request times out. If you make the request again with the
35227// same request ID, the server can check if original operation with the
35228// same request ID was received, and if so, will ignore the second
35229// request. This prevents clients from accidentally creating duplicate
35230// commitments.
35231//
35232// The request ID must be a valid UUID with the exception that zero UUID
35233// is not supported (00000000-0000-0000-0000-000000000000).
35234func (c *GlobalForwardingRulesSetTargetCall) RequestId(requestId string) *GlobalForwardingRulesSetTargetCall {
35235	c.urlParams_.Set("requestId", requestId)
35236	return c
35237}
35238
35239// Fields allows partial responses to be retrieved. See
35240// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35241// for more information.
35242func (c *GlobalForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetTargetCall {
35243	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35244	return c
35245}
35246
35247// Context sets the context to be used in this call's Do method. Any
35248// pending HTTP request will be aborted if the provided context is
35249// canceled.
35250func (c *GlobalForwardingRulesSetTargetCall) Context(ctx context.Context) *GlobalForwardingRulesSetTargetCall {
35251	c.ctx_ = ctx
35252	return c
35253}
35254
35255// Header returns an http.Header that can be modified by the caller to
35256// add HTTP headers to the request.
35257func (c *GlobalForwardingRulesSetTargetCall) Header() http.Header {
35258	if c.header_ == nil {
35259		c.header_ = make(http.Header)
35260	}
35261	return c.header_
35262}
35263
35264func (c *GlobalForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
35265	reqHeaders := make(http.Header)
35266	for k, v := range c.header_ {
35267		reqHeaders[k] = v
35268	}
35269	reqHeaders.Set("User-Agent", c.s.userAgent())
35270	var body io.Reader = nil
35271	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
35272	if err != nil {
35273		return nil, err
35274	}
35275	reqHeaders.Set("Content-Type", "application/json")
35276	c.urlParams_.Set("alt", alt)
35277	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}/setTarget")
35278	urls += "?" + c.urlParams_.Encode()
35279	req, _ := http.NewRequest("POST", urls, body)
35280	req.Header = reqHeaders
35281	googleapi.Expand(req.URL, map[string]string{
35282		"project":        c.project,
35283		"forwardingRule": c.forwardingRule,
35284	})
35285	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35286}
35287
35288// Do executes the "compute.globalForwardingRules.setTarget" call.
35289// Exactly one of *Operation or error will be non-nil. Any non-2xx
35290// status code is an error. Response headers are in either
35291// *Operation.ServerResponse.Header or (if a response was returned at
35292// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
35293// to check whether the returned error was because
35294// http.StatusNotModified was returned.
35295func (c *GlobalForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
35296	gensupport.SetOptions(c.urlParams_, opts...)
35297	res, err := c.doRequest("json")
35298	if res != nil && res.StatusCode == http.StatusNotModified {
35299		if res.Body != nil {
35300			res.Body.Close()
35301		}
35302		return nil, &googleapi.Error{
35303			Code:   res.StatusCode,
35304			Header: res.Header,
35305		}
35306	}
35307	if err != nil {
35308		return nil, err
35309	}
35310	defer googleapi.CloseBody(res)
35311	if err := googleapi.CheckResponse(res); err != nil {
35312		return nil, err
35313	}
35314	ret := &Operation{
35315		ServerResponse: googleapi.ServerResponse{
35316			Header:         res.Header,
35317			HTTPStatusCode: res.StatusCode,
35318		},
35319	}
35320	target := &ret
35321	if err := gensupport.DecodeResponse(target, res); err != nil {
35322		return nil, err
35323	}
35324	return ret, nil
35325	// {
35326	//   "description": "Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.",
35327	//   "httpMethod": "POST",
35328	//   "id": "compute.globalForwardingRules.setTarget",
35329	//   "parameterOrder": [
35330	//     "project",
35331	//     "forwardingRule"
35332	//   ],
35333	//   "parameters": {
35334	//     "forwardingRule": {
35335	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
35336	//       "location": "path",
35337	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
35338	//       "required": true,
35339	//       "type": "string"
35340	//     },
35341	//     "project": {
35342	//       "description": "Project ID for this request.",
35343	//       "location": "path",
35344	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
35345	//       "required": true,
35346	//       "type": "string"
35347	//     },
35348	//     "requestId": {
35349	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
35350	//       "location": "query",
35351	//       "type": "string"
35352	//     }
35353	//   },
35354	//   "path": "{project}/global/forwardingRules/{forwardingRule}/setTarget",
35355	//   "request": {
35356	//     "$ref": "TargetReference"
35357	//   },
35358	//   "response": {
35359	//     "$ref": "Operation"
35360	//   },
35361	//   "scopes": [
35362	//     "https://www.googleapis.com/auth/cloud-platform",
35363	//     "https://www.googleapis.com/auth/compute"
35364	//   ]
35365	// }
35366
35367}
35368
35369// method id "compute.globalOperations.aggregatedList":
35370
35371type GlobalOperationsAggregatedListCall struct {
35372	s            *Service
35373	project      string
35374	urlParams_   gensupport.URLParams
35375	ifNoneMatch_ string
35376	ctx_         context.Context
35377	header_      http.Header
35378}
35379
35380// AggregatedList: Retrieves an aggregated list of all operations.
35381// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/aggregatedList
35382func (r *GlobalOperationsService) AggregatedList(project string) *GlobalOperationsAggregatedListCall {
35383	c := &GlobalOperationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35384	c.project = project
35385	return c
35386}
35387
35388// Filter sets the optional parameter "filter": Sets a filter
35389// {expression} for filtering listed resources. Your {expression} must
35390// be in the format: field_name comparison_string literal_string.
35391//
35392// The field_name is the name of the field you want to compare. Only
35393// atomic field types are supported (string, number, boolean). The
35394// comparison_string must be either eq (equals) or ne (not equals). The
35395// literal_string is the string value to filter to. The literal value
35396// must be valid for the type of field you are filtering by (string,
35397// number, boolean). For string fields, the literal value is interpreted
35398// as a regular expression using RE2 syntax. The literal value must
35399// match the entire field.
35400//
35401// For example, to filter for instances that do not have a name of
35402// example-instance, you would use name ne example-instance.
35403//
35404// You can filter on nested fields. For example, you could filter on
35405// instances that have set the scheduling.automaticRestart field to
35406// true. Use filtering on nested fields to take advantage of labels to
35407// organize and search for results based on label values.
35408//
35409// To filter on multiple expressions, provide each separate expression
35410// within parentheses. For example, (scheduling.automaticRestart eq
35411// true) (zone eq us-central1-f). Multiple expressions are treated as
35412// AND expressions, meaning that resources must match all expressions to
35413// pass the filters.
35414func (c *GlobalOperationsAggregatedListCall) Filter(filter string) *GlobalOperationsAggregatedListCall {
35415	c.urlParams_.Set("filter", filter)
35416	return c
35417}
35418
35419// MaxResults sets the optional parameter "maxResults": The maximum
35420// number of results per page that should be returned. If the number of
35421// available results is larger than maxResults, Compute Engine returns a
35422// nextPageToken that can be used to get the next page of results in
35423// subsequent list requests. Acceptable values are 0 to 500, inclusive.
35424// (Default: 500)
35425func (c *GlobalOperationsAggregatedListCall) MaxResults(maxResults int64) *GlobalOperationsAggregatedListCall {
35426	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
35427	return c
35428}
35429
35430// OrderBy sets the optional parameter "orderBy": Sorts list results by
35431// a certain order. By default, results are returned in alphanumerical
35432// order based on the resource name.
35433//
35434// You can also sort results in descending order based on the creation
35435// timestamp using orderBy="creationTimestamp desc". This sorts results
35436// based on the creationTimestamp field in reverse chronological order
35437// (newest result first). Use this to sort resources like operations so
35438// that the newest operation is returned first.
35439//
35440// Currently, only sorting by name or creationTimestamp desc is
35441// supported.
35442func (c *GlobalOperationsAggregatedListCall) OrderBy(orderBy string) *GlobalOperationsAggregatedListCall {
35443	c.urlParams_.Set("orderBy", orderBy)
35444	return c
35445}
35446
35447// PageToken sets the optional parameter "pageToken": Specifies a page
35448// token to use. Set pageToken to the nextPageToken returned by a
35449// previous list request to get the next page of results.
35450func (c *GlobalOperationsAggregatedListCall) PageToken(pageToken string) *GlobalOperationsAggregatedListCall {
35451	c.urlParams_.Set("pageToken", pageToken)
35452	return c
35453}
35454
35455// Fields allows partial responses to be retrieved. See
35456// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35457// for more information.
35458func (c *GlobalOperationsAggregatedListCall) Fields(s ...googleapi.Field) *GlobalOperationsAggregatedListCall {
35459	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35460	return c
35461}
35462
35463// IfNoneMatch sets the optional parameter which makes the operation
35464// fail if the object's ETag matches the given value. This is useful for
35465// getting updates only after the object has changed since the last
35466// request. Use googleapi.IsNotModified to check whether the response
35467// error from Do is the result of In-None-Match.
35468func (c *GlobalOperationsAggregatedListCall) IfNoneMatch(entityTag string) *GlobalOperationsAggregatedListCall {
35469	c.ifNoneMatch_ = entityTag
35470	return c
35471}
35472
35473// Context sets the context to be used in this call's Do method. Any
35474// pending HTTP request will be aborted if the provided context is
35475// canceled.
35476func (c *GlobalOperationsAggregatedListCall) Context(ctx context.Context) *GlobalOperationsAggregatedListCall {
35477	c.ctx_ = ctx
35478	return c
35479}
35480
35481// Header returns an http.Header that can be modified by the caller to
35482// add HTTP headers to the request.
35483func (c *GlobalOperationsAggregatedListCall) Header() http.Header {
35484	if c.header_ == nil {
35485		c.header_ = make(http.Header)
35486	}
35487	return c.header_
35488}
35489
35490func (c *GlobalOperationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
35491	reqHeaders := make(http.Header)
35492	for k, v := range c.header_ {
35493		reqHeaders[k] = v
35494	}
35495	reqHeaders.Set("User-Agent", c.s.userAgent())
35496	if c.ifNoneMatch_ != "" {
35497		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
35498	}
35499	var body io.Reader = nil
35500	c.urlParams_.Set("alt", alt)
35501	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/operations")
35502	urls += "?" + c.urlParams_.Encode()
35503	req, _ := http.NewRequest("GET", urls, body)
35504	req.Header = reqHeaders
35505	googleapi.Expand(req.URL, map[string]string{
35506		"project": c.project,
35507	})
35508	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35509}
35510
35511// Do executes the "compute.globalOperations.aggregatedList" call.
35512// Exactly one of *OperationAggregatedList or error will be non-nil. Any
35513// non-2xx status code is an error. Response headers are in either
35514// *OperationAggregatedList.ServerResponse.Header or (if a response was
35515// returned at all) in error.(*googleapi.Error).Header. Use
35516// googleapi.IsNotModified to check whether the returned error was
35517// because http.StatusNotModified was returned.
35518func (c *GlobalOperationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*OperationAggregatedList, error) {
35519	gensupport.SetOptions(c.urlParams_, opts...)
35520	res, err := c.doRequest("json")
35521	if res != nil && res.StatusCode == http.StatusNotModified {
35522		if res.Body != nil {
35523			res.Body.Close()
35524		}
35525		return nil, &googleapi.Error{
35526			Code:   res.StatusCode,
35527			Header: res.Header,
35528		}
35529	}
35530	if err != nil {
35531		return nil, err
35532	}
35533	defer googleapi.CloseBody(res)
35534	if err := googleapi.CheckResponse(res); err != nil {
35535		return nil, err
35536	}
35537	ret := &OperationAggregatedList{
35538		ServerResponse: googleapi.ServerResponse{
35539			Header:         res.Header,
35540			HTTPStatusCode: res.StatusCode,
35541		},
35542	}
35543	target := &ret
35544	if err := gensupport.DecodeResponse(target, res); err != nil {
35545		return nil, err
35546	}
35547	return ret, nil
35548	// {
35549	//   "description": "Retrieves an aggregated list of all operations.",
35550	//   "httpMethod": "GET",
35551	//   "id": "compute.globalOperations.aggregatedList",
35552	//   "parameterOrder": [
35553	//     "project"
35554	//   ],
35555	//   "parameters": {
35556	//     "filter": {
35557	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
35558	//       "location": "query",
35559	//       "type": "string"
35560	//     },
35561	//     "maxResults": {
35562	//       "default": "500",
35563	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
35564	//       "format": "uint32",
35565	//       "location": "query",
35566	//       "minimum": "0",
35567	//       "type": "integer"
35568	//     },
35569	//     "orderBy": {
35570	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
35571	//       "location": "query",
35572	//       "type": "string"
35573	//     },
35574	//     "pageToken": {
35575	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
35576	//       "location": "query",
35577	//       "type": "string"
35578	//     },
35579	//     "project": {
35580	//       "description": "Project ID for this request.",
35581	//       "location": "path",
35582	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
35583	//       "required": true,
35584	//       "type": "string"
35585	//     }
35586	//   },
35587	//   "path": "{project}/aggregated/operations",
35588	//   "response": {
35589	//     "$ref": "OperationAggregatedList"
35590	//   },
35591	//   "scopes": [
35592	//     "https://www.googleapis.com/auth/cloud-platform",
35593	//     "https://www.googleapis.com/auth/compute",
35594	//     "https://www.googleapis.com/auth/compute.readonly"
35595	//   ]
35596	// }
35597
35598}
35599
35600// Pages invokes f for each page of results.
35601// A non-nil error returned from f will halt the iteration.
35602// The provided context supersedes any context provided to the Context method.
35603func (c *GlobalOperationsAggregatedListCall) Pages(ctx context.Context, f func(*OperationAggregatedList) error) error {
35604	c.ctx_ = ctx
35605	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
35606	for {
35607		x, err := c.Do()
35608		if err != nil {
35609			return err
35610		}
35611		if err := f(x); err != nil {
35612			return err
35613		}
35614		if x.NextPageToken == "" {
35615			return nil
35616		}
35617		c.PageToken(x.NextPageToken)
35618	}
35619}
35620
35621// method id "compute.globalOperations.delete":
35622
35623type GlobalOperationsDeleteCall struct {
35624	s          *Service
35625	project    string
35626	operation  string
35627	urlParams_ gensupport.URLParams
35628	ctx_       context.Context
35629	header_    http.Header
35630}
35631
35632// Delete: Deletes the specified Operations resource.
35633// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/delete
35634func (r *GlobalOperationsService) Delete(project string, operation string) *GlobalOperationsDeleteCall {
35635	c := &GlobalOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35636	c.project = project
35637	c.operation = operation
35638	return c
35639}
35640
35641// Fields allows partial responses to be retrieved. See
35642// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35643// for more information.
35644func (c *GlobalOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOperationsDeleteCall {
35645	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35646	return c
35647}
35648
35649// Context sets the context to be used in this call's Do method. Any
35650// pending HTTP request will be aborted if the provided context is
35651// canceled.
35652func (c *GlobalOperationsDeleteCall) Context(ctx context.Context) *GlobalOperationsDeleteCall {
35653	c.ctx_ = ctx
35654	return c
35655}
35656
35657// Header returns an http.Header that can be modified by the caller to
35658// add HTTP headers to the request.
35659func (c *GlobalOperationsDeleteCall) Header() http.Header {
35660	if c.header_ == nil {
35661		c.header_ = make(http.Header)
35662	}
35663	return c.header_
35664}
35665
35666func (c *GlobalOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
35667	reqHeaders := make(http.Header)
35668	for k, v := range c.header_ {
35669		reqHeaders[k] = v
35670	}
35671	reqHeaders.Set("User-Agent", c.s.userAgent())
35672	var body io.Reader = nil
35673	c.urlParams_.Set("alt", alt)
35674	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}")
35675	urls += "?" + c.urlParams_.Encode()
35676	req, _ := http.NewRequest("DELETE", urls, body)
35677	req.Header = reqHeaders
35678	googleapi.Expand(req.URL, map[string]string{
35679		"project":   c.project,
35680		"operation": c.operation,
35681	})
35682	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35683}
35684
35685// Do executes the "compute.globalOperations.delete" call.
35686func (c *GlobalOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
35687	gensupport.SetOptions(c.urlParams_, opts...)
35688	res, err := c.doRequest("json")
35689	if err != nil {
35690		return err
35691	}
35692	defer googleapi.CloseBody(res)
35693	if err := googleapi.CheckResponse(res); err != nil {
35694		return err
35695	}
35696	return nil
35697	// {
35698	//   "description": "Deletes the specified Operations resource.",
35699	//   "httpMethod": "DELETE",
35700	//   "id": "compute.globalOperations.delete",
35701	//   "parameterOrder": [
35702	//     "project",
35703	//     "operation"
35704	//   ],
35705	//   "parameters": {
35706	//     "operation": {
35707	//       "description": "Name of the Operations resource to delete.",
35708	//       "location": "path",
35709	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
35710	//       "required": true,
35711	//       "type": "string"
35712	//     },
35713	//     "project": {
35714	//       "description": "Project ID for this request.",
35715	//       "location": "path",
35716	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
35717	//       "required": true,
35718	//       "type": "string"
35719	//     }
35720	//   },
35721	//   "path": "{project}/global/operations/{operation}",
35722	//   "scopes": [
35723	//     "https://www.googleapis.com/auth/cloud-platform",
35724	//     "https://www.googleapis.com/auth/compute"
35725	//   ]
35726	// }
35727
35728}
35729
35730// method id "compute.globalOperations.get":
35731
35732type GlobalOperationsGetCall struct {
35733	s            *Service
35734	project      string
35735	operation    string
35736	urlParams_   gensupport.URLParams
35737	ifNoneMatch_ string
35738	ctx_         context.Context
35739	header_      http.Header
35740}
35741
35742// Get: Retrieves the specified Operations resource. Get a list of
35743// operations by making a list() request.
35744// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/get
35745func (r *GlobalOperationsService) Get(project string, operation string) *GlobalOperationsGetCall {
35746	c := &GlobalOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35747	c.project = project
35748	c.operation = operation
35749	return c
35750}
35751
35752// Fields allows partial responses to be retrieved. See
35753// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35754// for more information.
35755func (c *GlobalOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOperationsGetCall {
35756	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35757	return c
35758}
35759
35760// IfNoneMatch sets the optional parameter which makes the operation
35761// fail if the object's ETag matches the given value. This is useful for
35762// getting updates only after the object has changed since the last
35763// request. Use googleapi.IsNotModified to check whether the response
35764// error from Do is the result of In-None-Match.
35765func (c *GlobalOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOperationsGetCall {
35766	c.ifNoneMatch_ = entityTag
35767	return c
35768}
35769
35770// Context sets the context to be used in this call's Do method. Any
35771// pending HTTP request will be aborted if the provided context is
35772// canceled.
35773func (c *GlobalOperationsGetCall) Context(ctx context.Context) *GlobalOperationsGetCall {
35774	c.ctx_ = ctx
35775	return c
35776}
35777
35778// Header returns an http.Header that can be modified by the caller to
35779// add HTTP headers to the request.
35780func (c *GlobalOperationsGetCall) Header() http.Header {
35781	if c.header_ == nil {
35782		c.header_ = make(http.Header)
35783	}
35784	return c.header_
35785}
35786
35787func (c *GlobalOperationsGetCall) doRequest(alt string) (*http.Response, error) {
35788	reqHeaders := make(http.Header)
35789	for k, v := range c.header_ {
35790		reqHeaders[k] = v
35791	}
35792	reqHeaders.Set("User-Agent", c.s.userAgent())
35793	if c.ifNoneMatch_ != "" {
35794		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
35795	}
35796	var body io.Reader = nil
35797	c.urlParams_.Set("alt", alt)
35798	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}")
35799	urls += "?" + c.urlParams_.Encode()
35800	req, _ := http.NewRequest("GET", urls, body)
35801	req.Header = reqHeaders
35802	googleapi.Expand(req.URL, map[string]string{
35803		"project":   c.project,
35804		"operation": c.operation,
35805	})
35806	return gensupport.SendRequest(c.ctx_, c.s.client, req)
35807}
35808
35809// Do executes the "compute.globalOperations.get" call.
35810// Exactly one of *Operation or error will be non-nil. Any non-2xx
35811// status code is an error. Response headers are in either
35812// *Operation.ServerResponse.Header or (if a response was returned at
35813// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
35814// to check whether the returned error was because
35815// http.StatusNotModified was returned.
35816func (c *GlobalOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
35817	gensupport.SetOptions(c.urlParams_, opts...)
35818	res, err := c.doRequest("json")
35819	if res != nil && res.StatusCode == http.StatusNotModified {
35820		if res.Body != nil {
35821			res.Body.Close()
35822		}
35823		return nil, &googleapi.Error{
35824			Code:   res.StatusCode,
35825			Header: res.Header,
35826		}
35827	}
35828	if err != nil {
35829		return nil, err
35830	}
35831	defer googleapi.CloseBody(res)
35832	if err := googleapi.CheckResponse(res); err != nil {
35833		return nil, err
35834	}
35835	ret := &Operation{
35836		ServerResponse: googleapi.ServerResponse{
35837			Header:         res.Header,
35838			HTTPStatusCode: res.StatusCode,
35839		},
35840	}
35841	target := &ret
35842	if err := gensupport.DecodeResponse(target, res); err != nil {
35843		return nil, err
35844	}
35845	return ret, nil
35846	// {
35847	//   "description": "Retrieves the specified Operations resource. Get a list of operations by making a list() request.",
35848	//   "httpMethod": "GET",
35849	//   "id": "compute.globalOperations.get",
35850	//   "parameterOrder": [
35851	//     "project",
35852	//     "operation"
35853	//   ],
35854	//   "parameters": {
35855	//     "operation": {
35856	//       "description": "Name of the Operations resource to return.",
35857	//       "location": "path",
35858	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
35859	//       "required": true,
35860	//       "type": "string"
35861	//     },
35862	//     "project": {
35863	//       "description": "Project ID for this request.",
35864	//       "location": "path",
35865	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
35866	//       "required": true,
35867	//       "type": "string"
35868	//     }
35869	//   },
35870	//   "path": "{project}/global/operations/{operation}",
35871	//   "response": {
35872	//     "$ref": "Operation"
35873	//   },
35874	//   "scopes": [
35875	//     "https://www.googleapis.com/auth/cloud-platform",
35876	//     "https://www.googleapis.com/auth/compute",
35877	//     "https://www.googleapis.com/auth/compute.readonly"
35878	//   ]
35879	// }
35880
35881}
35882
35883// method id "compute.globalOperations.list":
35884
35885type GlobalOperationsListCall struct {
35886	s            *Service
35887	project      string
35888	urlParams_   gensupport.URLParams
35889	ifNoneMatch_ string
35890	ctx_         context.Context
35891	header_      http.Header
35892}
35893
35894// List: Retrieves a list of Operation resources contained within the
35895// specified project.
35896// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/list
35897func (r *GlobalOperationsService) List(project string) *GlobalOperationsListCall {
35898	c := &GlobalOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
35899	c.project = project
35900	return c
35901}
35902
35903// Filter sets the optional parameter "filter": Sets a filter
35904// {expression} for filtering listed resources. Your {expression} must
35905// be in the format: field_name comparison_string literal_string.
35906//
35907// The field_name is the name of the field you want to compare. Only
35908// atomic field types are supported (string, number, boolean). The
35909// comparison_string must be either eq (equals) or ne (not equals). The
35910// literal_string is the string value to filter to. The literal value
35911// must be valid for the type of field you are filtering by (string,
35912// number, boolean). For string fields, the literal value is interpreted
35913// as a regular expression using RE2 syntax. The literal value must
35914// match the entire field.
35915//
35916// For example, to filter for instances that do not have a name of
35917// example-instance, you would use name ne example-instance.
35918//
35919// You can filter on nested fields. For example, you could filter on
35920// instances that have set the scheduling.automaticRestart field to
35921// true. Use filtering on nested fields to take advantage of labels to
35922// organize and search for results based on label values.
35923//
35924// To filter on multiple expressions, provide each separate expression
35925// within parentheses. For example, (scheduling.automaticRestart eq
35926// true) (zone eq us-central1-f). Multiple expressions are treated as
35927// AND expressions, meaning that resources must match all expressions to
35928// pass the filters.
35929func (c *GlobalOperationsListCall) Filter(filter string) *GlobalOperationsListCall {
35930	c.urlParams_.Set("filter", filter)
35931	return c
35932}
35933
35934// MaxResults sets the optional parameter "maxResults": The maximum
35935// number of results per page that should be returned. If the number of
35936// available results is larger than maxResults, Compute Engine returns a
35937// nextPageToken that can be used to get the next page of results in
35938// subsequent list requests. Acceptable values are 0 to 500, inclusive.
35939// (Default: 500)
35940func (c *GlobalOperationsListCall) MaxResults(maxResults int64) *GlobalOperationsListCall {
35941	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
35942	return c
35943}
35944
35945// OrderBy sets the optional parameter "orderBy": Sorts list results by
35946// a certain order. By default, results are returned in alphanumerical
35947// order based on the resource name.
35948//
35949// You can also sort results in descending order based on the creation
35950// timestamp using orderBy="creationTimestamp desc". This sorts results
35951// based on the creationTimestamp field in reverse chronological order
35952// (newest result first). Use this to sort resources like operations so
35953// that the newest operation is returned first.
35954//
35955// Currently, only sorting by name or creationTimestamp desc is
35956// supported.
35957func (c *GlobalOperationsListCall) OrderBy(orderBy string) *GlobalOperationsListCall {
35958	c.urlParams_.Set("orderBy", orderBy)
35959	return c
35960}
35961
35962// PageToken sets the optional parameter "pageToken": Specifies a page
35963// token to use. Set pageToken to the nextPageToken returned by a
35964// previous list request to get the next page of results.
35965func (c *GlobalOperationsListCall) PageToken(pageToken string) *GlobalOperationsListCall {
35966	c.urlParams_.Set("pageToken", pageToken)
35967	return c
35968}
35969
35970// Fields allows partial responses to be retrieved. See
35971// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
35972// for more information.
35973func (c *GlobalOperationsListCall) Fields(s ...googleapi.Field) *GlobalOperationsListCall {
35974	c.urlParams_.Set("fields", googleapi.CombineFields(s))
35975	return c
35976}
35977
35978// IfNoneMatch sets the optional parameter which makes the operation
35979// fail if the object's ETag matches the given value. This is useful for
35980// getting updates only after the object has changed since the last
35981// request. Use googleapi.IsNotModified to check whether the response
35982// error from Do is the result of In-None-Match.
35983func (c *GlobalOperationsListCall) IfNoneMatch(entityTag string) *GlobalOperationsListCall {
35984	c.ifNoneMatch_ = entityTag
35985	return c
35986}
35987
35988// Context sets the context to be used in this call's Do method. Any
35989// pending HTTP request will be aborted if the provided context is
35990// canceled.
35991func (c *GlobalOperationsListCall) Context(ctx context.Context) *GlobalOperationsListCall {
35992	c.ctx_ = ctx
35993	return c
35994}
35995
35996// Header returns an http.Header that can be modified by the caller to
35997// add HTTP headers to the request.
35998func (c *GlobalOperationsListCall) Header() http.Header {
35999	if c.header_ == nil {
36000		c.header_ = make(http.Header)
36001	}
36002	return c.header_
36003}
36004
36005func (c *GlobalOperationsListCall) doRequest(alt string) (*http.Response, error) {
36006	reqHeaders := make(http.Header)
36007	for k, v := range c.header_ {
36008		reqHeaders[k] = v
36009	}
36010	reqHeaders.Set("User-Agent", c.s.userAgent())
36011	if c.ifNoneMatch_ != "" {
36012		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
36013	}
36014	var body io.Reader = nil
36015	c.urlParams_.Set("alt", alt)
36016	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations")
36017	urls += "?" + c.urlParams_.Encode()
36018	req, _ := http.NewRequest("GET", urls, body)
36019	req.Header = reqHeaders
36020	googleapi.Expand(req.URL, map[string]string{
36021		"project": c.project,
36022	})
36023	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36024}
36025
36026// Do executes the "compute.globalOperations.list" call.
36027// Exactly one of *OperationList or error will be non-nil. Any non-2xx
36028// status code is an error. Response headers are in either
36029// *OperationList.ServerResponse.Header or (if a response was returned
36030// at all) in error.(*googleapi.Error).Header. Use
36031// googleapi.IsNotModified to check whether the returned error was
36032// because http.StatusNotModified was returned.
36033func (c *GlobalOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
36034	gensupport.SetOptions(c.urlParams_, opts...)
36035	res, err := c.doRequest("json")
36036	if res != nil && res.StatusCode == http.StatusNotModified {
36037		if res.Body != nil {
36038			res.Body.Close()
36039		}
36040		return nil, &googleapi.Error{
36041			Code:   res.StatusCode,
36042			Header: res.Header,
36043		}
36044	}
36045	if err != nil {
36046		return nil, err
36047	}
36048	defer googleapi.CloseBody(res)
36049	if err := googleapi.CheckResponse(res); err != nil {
36050		return nil, err
36051	}
36052	ret := &OperationList{
36053		ServerResponse: googleapi.ServerResponse{
36054			Header:         res.Header,
36055			HTTPStatusCode: res.StatusCode,
36056		},
36057	}
36058	target := &ret
36059	if err := gensupport.DecodeResponse(target, res); err != nil {
36060		return nil, err
36061	}
36062	return ret, nil
36063	// {
36064	//   "description": "Retrieves a list of Operation resources contained within the specified project.",
36065	//   "httpMethod": "GET",
36066	//   "id": "compute.globalOperations.list",
36067	//   "parameterOrder": [
36068	//     "project"
36069	//   ],
36070	//   "parameters": {
36071	//     "filter": {
36072	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
36073	//       "location": "query",
36074	//       "type": "string"
36075	//     },
36076	//     "maxResults": {
36077	//       "default": "500",
36078	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
36079	//       "format": "uint32",
36080	//       "location": "query",
36081	//       "minimum": "0",
36082	//       "type": "integer"
36083	//     },
36084	//     "orderBy": {
36085	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
36086	//       "location": "query",
36087	//       "type": "string"
36088	//     },
36089	//     "pageToken": {
36090	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
36091	//       "location": "query",
36092	//       "type": "string"
36093	//     },
36094	//     "project": {
36095	//       "description": "Project ID for this request.",
36096	//       "location": "path",
36097	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
36098	//       "required": true,
36099	//       "type": "string"
36100	//     }
36101	//   },
36102	//   "path": "{project}/global/operations",
36103	//   "response": {
36104	//     "$ref": "OperationList"
36105	//   },
36106	//   "scopes": [
36107	//     "https://www.googleapis.com/auth/cloud-platform",
36108	//     "https://www.googleapis.com/auth/compute",
36109	//     "https://www.googleapis.com/auth/compute.readonly"
36110	//   ]
36111	// }
36112
36113}
36114
36115// Pages invokes f for each page of results.
36116// A non-nil error returned from f will halt the iteration.
36117// The provided context supersedes any context provided to the Context method.
36118func (c *GlobalOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
36119	c.ctx_ = ctx
36120	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
36121	for {
36122		x, err := c.Do()
36123		if err != nil {
36124			return err
36125		}
36126		if err := f(x); err != nil {
36127			return err
36128		}
36129		if x.NextPageToken == "" {
36130			return nil
36131		}
36132		c.PageToken(x.NextPageToken)
36133	}
36134}
36135
36136// method id "compute.healthChecks.delete":
36137
36138type HealthChecksDeleteCall struct {
36139	s           *Service
36140	project     string
36141	healthCheck string
36142	urlParams_  gensupport.URLParams
36143	ctx_        context.Context
36144	header_     http.Header
36145}
36146
36147// Delete: Deletes the specified HealthCheck resource.
36148func (r *HealthChecksService) Delete(project string, healthCheck string) *HealthChecksDeleteCall {
36149	c := &HealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36150	c.project = project
36151	c.healthCheck = healthCheck
36152	return c
36153}
36154
36155// RequestId sets the optional parameter "requestId": An optional
36156// request ID to identify requests. Specify a unique request ID so that
36157// if you must retry your request, the server will know to ignore the
36158// request if it has already been completed.
36159//
36160// For example, consider a situation where you make an initial request
36161// and the request times out. If you make the request again with the
36162// same request ID, the server can check if original operation with the
36163// same request ID was received, and if so, will ignore the second
36164// request. This prevents clients from accidentally creating duplicate
36165// commitments.
36166//
36167// The request ID must be a valid UUID with the exception that zero UUID
36168// is not supported (00000000-0000-0000-0000-000000000000).
36169func (c *HealthChecksDeleteCall) RequestId(requestId string) *HealthChecksDeleteCall {
36170	c.urlParams_.Set("requestId", requestId)
36171	return c
36172}
36173
36174// Fields allows partial responses to be retrieved. See
36175// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36176// for more information.
36177func (c *HealthChecksDeleteCall) Fields(s ...googleapi.Field) *HealthChecksDeleteCall {
36178	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36179	return c
36180}
36181
36182// Context sets the context to be used in this call's Do method. Any
36183// pending HTTP request will be aborted if the provided context is
36184// canceled.
36185func (c *HealthChecksDeleteCall) Context(ctx context.Context) *HealthChecksDeleteCall {
36186	c.ctx_ = ctx
36187	return c
36188}
36189
36190// Header returns an http.Header that can be modified by the caller to
36191// add HTTP headers to the request.
36192func (c *HealthChecksDeleteCall) Header() http.Header {
36193	if c.header_ == nil {
36194		c.header_ = make(http.Header)
36195	}
36196	return c.header_
36197}
36198
36199func (c *HealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
36200	reqHeaders := make(http.Header)
36201	for k, v := range c.header_ {
36202		reqHeaders[k] = v
36203	}
36204	reqHeaders.Set("User-Agent", c.s.userAgent())
36205	var body io.Reader = nil
36206	c.urlParams_.Set("alt", alt)
36207	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
36208	urls += "?" + c.urlParams_.Encode()
36209	req, _ := http.NewRequest("DELETE", urls, body)
36210	req.Header = reqHeaders
36211	googleapi.Expand(req.URL, map[string]string{
36212		"project":     c.project,
36213		"healthCheck": c.healthCheck,
36214	})
36215	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36216}
36217
36218// Do executes the "compute.healthChecks.delete" call.
36219// Exactly one of *Operation or error will be non-nil. Any non-2xx
36220// status code is an error. Response headers are in either
36221// *Operation.ServerResponse.Header or (if a response was returned at
36222// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
36223// to check whether the returned error was because
36224// http.StatusNotModified was returned.
36225func (c *HealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
36226	gensupport.SetOptions(c.urlParams_, opts...)
36227	res, err := c.doRequest("json")
36228	if res != nil && res.StatusCode == http.StatusNotModified {
36229		if res.Body != nil {
36230			res.Body.Close()
36231		}
36232		return nil, &googleapi.Error{
36233			Code:   res.StatusCode,
36234			Header: res.Header,
36235		}
36236	}
36237	if err != nil {
36238		return nil, err
36239	}
36240	defer googleapi.CloseBody(res)
36241	if err := googleapi.CheckResponse(res); err != nil {
36242		return nil, err
36243	}
36244	ret := &Operation{
36245		ServerResponse: googleapi.ServerResponse{
36246			Header:         res.Header,
36247			HTTPStatusCode: res.StatusCode,
36248		},
36249	}
36250	target := &ret
36251	if err := gensupport.DecodeResponse(target, res); err != nil {
36252		return nil, err
36253	}
36254	return ret, nil
36255	// {
36256	//   "description": "Deletes the specified HealthCheck resource.",
36257	//   "httpMethod": "DELETE",
36258	//   "id": "compute.healthChecks.delete",
36259	//   "parameterOrder": [
36260	//     "project",
36261	//     "healthCheck"
36262	//   ],
36263	//   "parameters": {
36264	//     "healthCheck": {
36265	//       "description": "Name of the HealthCheck resource to delete.",
36266	//       "location": "path",
36267	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
36268	//       "required": true,
36269	//       "type": "string"
36270	//     },
36271	//     "project": {
36272	//       "description": "Project ID for this request.",
36273	//       "location": "path",
36274	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
36275	//       "required": true,
36276	//       "type": "string"
36277	//     },
36278	//     "requestId": {
36279	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
36280	//       "location": "query",
36281	//       "type": "string"
36282	//     }
36283	//   },
36284	//   "path": "{project}/global/healthChecks/{healthCheck}",
36285	//   "response": {
36286	//     "$ref": "Operation"
36287	//   },
36288	//   "scopes": [
36289	//     "https://www.googleapis.com/auth/cloud-platform",
36290	//     "https://www.googleapis.com/auth/compute"
36291	//   ]
36292	// }
36293
36294}
36295
36296// method id "compute.healthChecks.get":
36297
36298type HealthChecksGetCall struct {
36299	s            *Service
36300	project      string
36301	healthCheck  string
36302	urlParams_   gensupport.URLParams
36303	ifNoneMatch_ string
36304	ctx_         context.Context
36305	header_      http.Header
36306}
36307
36308// Get: Returns the specified HealthCheck resource. Get a list of
36309// available health checks by making a list() request.
36310func (r *HealthChecksService) Get(project string, healthCheck string) *HealthChecksGetCall {
36311	c := &HealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36312	c.project = project
36313	c.healthCheck = healthCheck
36314	return c
36315}
36316
36317// Fields allows partial responses to be retrieved. See
36318// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36319// for more information.
36320func (c *HealthChecksGetCall) Fields(s ...googleapi.Field) *HealthChecksGetCall {
36321	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36322	return c
36323}
36324
36325// IfNoneMatch sets the optional parameter which makes the operation
36326// fail if the object's ETag matches the given value. This is useful for
36327// getting updates only after the object has changed since the last
36328// request. Use googleapi.IsNotModified to check whether the response
36329// error from Do is the result of In-None-Match.
36330func (c *HealthChecksGetCall) IfNoneMatch(entityTag string) *HealthChecksGetCall {
36331	c.ifNoneMatch_ = entityTag
36332	return c
36333}
36334
36335// Context sets the context to be used in this call's Do method. Any
36336// pending HTTP request will be aborted if the provided context is
36337// canceled.
36338func (c *HealthChecksGetCall) Context(ctx context.Context) *HealthChecksGetCall {
36339	c.ctx_ = ctx
36340	return c
36341}
36342
36343// Header returns an http.Header that can be modified by the caller to
36344// add HTTP headers to the request.
36345func (c *HealthChecksGetCall) Header() http.Header {
36346	if c.header_ == nil {
36347		c.header_ = make(http.Header)
36348	}
36349	return c.header_
36350}
36351
36352func (c *HealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
36353	reqHeaders := make(http.Header)
36354	for k, v := range c.header_ {
36355		reqHeaders[k] = v
36356	}
36357	reqHeaders.Set("User-Agent", c.s.userAgent())
36358	if c.ifNoneMatch_ != "" {
36359		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
36360	}
36361	var body io.Reader = nil
36362	c.urlParams_.Set("alt", alt)
36363	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
36364	urls += "?" + c.urlParams_.Encode()
36365	req, _ := http.NewRequest("GET", urls, body)
36366	req.Header = reqHeaders
36367	googleapi.Expand(req.URL, map[string]string{
36368		"project":     c.project,
36369		"healthCheck": c.healthCheck,
36370	})
36371	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36372}
36373
36374// Do executes the "compute.healthChecks.get" call.
36375// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
36376// status code is an error. Response headers are in either
36377// *HealthCheck.ServerResponse.Header or (if a response was returned at
36378// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
36379// to check whether the returned error was because
36380// http.StatusNotModified was returned.
36381func (c *HealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
36382	gensupport.SetOptions(c.urlParams_, opts...)
36383	res, err := c.doRequest("json")
36384	if res != nil && res.StatusCode == http.StatusNotModified {
36385		if res.Body != nil {
36386			res.Body.Close()
36387		}
36388		return nil, &googleapi.Error{
36389			Code:   res.StatusCode,
36390			Header: res.Header,
36391		}
36392	}
36393	if err != nil {
36394		return nil, err
36395	}
36396	defer googleapi.CloseBody(res)
36397	if err := googleapi.CheckResponse(res); err != nil {
36398		return nil, err
36399	}
36400	ret := &HealthCheck{
36401		ServerResponse: googleapi.ServerResponse{
36402			Header:         res.Header,
36403			HTTPStatusCode: res.StatusCode,
36404		},
36405	}
36406	target := &ret
36407	if err := gensupport.DecodeResponse(target, res); err != nil {
36408		return nil, err
36409	}
36410	return ret, nil
36411	// {
36412	//   "description": "Returns the specified HealthCheck resource. Get a list of available health checks by making a list() request.",
36413	//   "httpMethod": "GET",
36414	//   "id": "compute.healthChecks.get",
36415	//   "parameterOrder": [
36416	//     "project",
36417	//     "healthCheck"
36418	//   ],
36419	//   "parameters": {
36420	//     "healthCheck": {
36421	//       "description": "Name of the HealthCheck resource to return.",
36422	//       "location": "path",
36423	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
36424	//       "required": true,
36425	//       "type": "string"
36426	//     },
36427	//     "project": {
36428	//       "description": "Project ID for this request.",
36429	//       "location": "path",
36430	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
36431	//       "required": true,
36432	//       "type": "string"
36433	//     }
36434	//   },
36435	//   "path": "{project}/global/healthChecks/{healthCheck}",
36436	//   "response": {
36437	//     "$ref": "HealthCheck"
36438	//   },
36439	//   "scopes": [
36440	//     "https://www.googleapis.com/auth/cloud-platform",
36441	//     "https://www.googleapis.com/auth/compute",
36442	//     "https://www.googleapis.com/auth/compute.readonly"
36443	//   ]
36444	// }
36445
36446}
36447
36448// method id "compute.healthChecks.insert":
36449
36450type HealthChecksInsertCall struct {
36451	s           *Service
36452	project     string
36453	healthcheck *HealthCheck
36454	urlParams_  gensupport.URLParams
36455	ctx_        context.Context
36456	header_     http.Header
36457}
36458
36459// Insert: Creates a HealthCheck resource in the specified project using
36460// the data included in the request.
36461func (r *HealthChecksService) Insert(project string, healthcheck *HealthCheck) *HealthChecksInsertCall {
36462	c := &HealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36463	c.project = project
36464	c.healthcheck = healthcheck
36465	return c
36466}
36467
36468// RequestId sets the optional parameter "requestId": An optional
36469// request ID to identify requests. Specify a unique request ID so that
36470// if you must retry your request, the server will know to ignore the
36471// request if it has already been completed.
36472//
36473// For example, consider a situation where you make an initial request
36474// and the request times out. If you make the request again with the
36475// same request ID, the server can check if original operation with the
36476// same request ID was received, and if so, will ignore the second
36477// request. This prevents clients from accidentally creating duplicate
36478// commitments.
36479//
36480// The request ID must be a valid UUID with the exception that zero UUID
36481// is not supported (00000000-0000-0000-0000-000000000000).
36482func (c *HealthChecksInsertCall) RequestId(requestId string) *HealthChecksInsertCall {
36483	c.urlParams_.Set("requestId", requestId)
36484	return c
36485}
36486
36487// Fields allows partial responses to be retrieved. See
36488// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36489// for more information.
36490func (c *HealthChecksInsertCall) Fields(s ...googleapi.Field) *HealthChecksInsertCall {
36491	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36492	return c
36493}
36494
36495// Context sets the context to be used in this call's Do method. Any
36496// pending HTTP request will be aborted if the provided context is
36497// canceled.
36498func (c *HealthChecksInsertCall) Context(ctx context.Context) *HealthChecksInsertCall {
36499	c.ctx_ = ctx
36500	return c
36501}
36502
36503// Header returns an http.Header that can be modified by the caller to
36504// add HTTP headers to the request.
36505func (c *HealthChecksInsertCall) Header() http.Header {
36506	if c.header_ == nil {
36507		c.header_ = make(http.Header)
36508	}
36509	return c.header_
36510}
36511
36512func (c *HealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
36513	reqHeaders := make(http.Header)
36514	for k, v := range c.header_ {
36515		reqHeaders[k] = v
36516	}
36517	reqHeaders.Set("User-Agent", c.s.userAgent())
36518	var body io.Reader = nil
36519	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
36520	if err != nil {
36521		return nil, err
36522	}
36523	reqHeaders.Set("Content-Type", "application/json")
36524	c.urlParams_.Set("alt", alt)
36525	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks")
36526	urls += "?" + c.urlParams_.Encode()
36527	req, _ := http.NewRequest("POST", urls, body)
36528	req.Header = reqHeaders
36529	googleapi.Expand(req.URL, map[string]string{
36530		"project": c.project,
36531	})
36532	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36533}
36534
36535// Do executes the "compute.healthChecks.insert" call.
36536// Exactly one of *Operation or error will be non-nil. Any non-2xx
36537// status code is an error. Response headers are in either
36538// *Operation.ServerResponse.Header or (if a response was returned at
36539// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
36540// to check whether the returned error was because
36541// http.StatusNotModified was returned.
36542func (c *HealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
36543	gensupport.SetOptions(c.urlParams_, opts...)
36544	res, err := c.doRequest("json")
36545	if res != nil && res.StatusCode == http.StatusNotModified {
36546		if res.Body != nil {
36547			res.Body.Close()
36548		}
36549		return nil, &googleapi.Error{
36550			Code:   res.StatusCode,
36551			Header: res.Header,
36552		}
36553	}
36554	if err != nil {
36555		return nil, err
36556	}
36557	defer googleapi.CloseBody(res)
36558	if err := googleapi.CheckResponse(res); err != nil {
36559		return nil, err
36560	}
36561	ret := &Operation{
36562		ServerResponse: googleapi.ServerResponse{
36563			Header:         res.Header,
36564			HTTPStatusCode: res.StatusCode,
36565		},
36566	}
36567	target := &ret
36568	if err := gensupport.DecodeResponse(target, res); err != nil {
36569		return nil, err
36570	}
36571	return ret, nil
36572	// {
36573	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
36574	//   "httpMethod": "POST",
36575	//   "id": "compute.healthChecks.insert",
36576	//   "parameterOrder": [
36577	//     "project"
36578	//   ],
36579	//   "parameters": {
36580	//     "project": {
36581	//       "description": "Project ID for this request.",
36582	//       "location": "path",
36583	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
36584	//       "required": true,
36585	//       "type": "string"
36586	//     },
36587	//     "requestId": {
36588	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
36589	//       "location": "query",
36590	//       "type": "string"
36591	//     }
36592	//   },
36593	//   "path": "{project}/global/healthChecks",
36594	//   "request": {
36595	//     "$ref": "HealthCheck"
36596	//   },
36597	//   "response": {
36598	//     "$ref": "Operation"
36599	//   },
36600	//   "scopes": [
36601	//     "https://www.googleapis.com/auth/cloud-platform",
36602	//     "https://www.googleapis.com/auth/compute"
36603	//   ]
36604	// }
36605
36606}
36607
36608// method id "compute.healthChecks.list":
36609
36610type HealthChecksListCall struct {
36611	s            *Service
36612	project      string
36613	urlParams_   gensupport.URLParams
36614	ifNoneMatch_ string
36615	ctx_         context.Context
36616	header_      http.Header
36617}
36618
36619// List: Retrieves the list of HealthCheck resources available to the
36620// specified project.
36621func (r *HealthChecksService) List(project string) *HealthChecksListCall {
36622	c := &HealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36623	c.project = project
36624	return c
36625}
36626
36627// Filter sets the optional parameter "filter": Sets a filter
36628// {expression} for filtering listed resources. Your {expression} must
36629// be in the format: field_name comparison_string literal_string.
36630//
36631// The field_name is the name of the field you want to compare. Only
36632// atomic field types are supported (string, number, boolean). The
36633// comparison_string must be either eq (equals) or ne (not equals). The
36634// literal_string is the string value to filter to. The literal value
36635// must be valid for the type of field you are filtering by (string,
36636// number, boolean). For string fields, the literal value is interpreted
36637// as a regular expression using RE2 syntax. The literal value must
36638// match the entire field.
36639//
36640// For example, to filter for instances that do not have a name of
36641// example-instance, you would use name ne example-instance.
36642//
36643// You can filter on nested fields. For example, you could filter on
36644// instances that have set the scheduling.automaticRestart field to
36645// true. Use filtering on nested fields to take advantage of labels to
36646// organize and search for results based on label values.
36647//
36648// To filter on multiple expressions, provide each separate expression
36649// within parentheses. For example, (scheduling.automaticRestart eq
36650// true) (zone eq us-central1-f). Multiple expressions are treated as
36651// AND expressions, meaning that resources must match all expressions to
36652// pass the filters.
36653func (c *HealthChecksListCall) Filter(filter string) *HealthChecksListCall {
36654	c.urlParams_.Set("filter", filter)
36655	return c
36656}
36657
36658// MaxResults sets the optional parameter "maxResults": The maximum
36659// number of results per page that should be returned. If the number of
36660// available results is larger than maxResults, Compute Engine returns a
36661// nextPageToken that can be used to get the next page of results in
36662// subsequent list requests. Acceptable values are 0 to 500, inclusive.
36663// (Default: 500)
36664func (c *HealthChecksListCall) MaxResults(maxResults int64) *HealthChecksListCall {
36665	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
36666	return c
36667}
36668
36669// OrderBy sets the optional parameter "orderBy": Sorts list results by
36670// a certain order. By default, results are returned in alphanumerical
36671// order based on the resource name.
36672//
36673// You can also sort results in descending order based on the creation
36674// timestamp using orderBy="creationTimestamp desc". This sorts results
36675// based on the creationTimestamp field in reverse chronological order
36676// (newest result first). Use this to sort resources like operations so
36677// that the newest operation is returned first.
36678//
36679// Currently, only sorting by name or creationTimestamp desc is
36680// supported.
36681func (c *HealthChecksListCall) OrderBy(orderBy string) *HealthChecksListCall {
36682	c.urlParams_.Set("orderBy", orderBy)
36683	return c
36684}
36685
36686// PageToken sets the optional parameter "pageToken": Specifies a page
36687// token to use. Set pageToken to the nextPageToken returned by a
36688// previous list request to get the next page of results.
36689func (c *HealthChecksListCall) PageToken(pageToken string) *HealthChecksListCall {
36690	c.urlParams_.Set("pageToken", pageToken)
36691	return c
36692}
36693
36694// Fields allows partial responses to be retrieved. See
36695// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36696// for more information.
36697func (c *HealthChecksListCall) Fields(s ...googleapi.Field) *HealthChecksListCall {
36698	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36699	return c
36700}
36701
36702// IfNoneMatch sets the optional parameter which makes the operation
36703// fail if the object's ETag matches the given value. This is useful for
36704// getting updates only after the object has changed since the last
36705// request. Use googleapi.IsNotModified to check whether the response
36706// error from Do is the result of In-None-Match.
36707func (c *HealthChecksListCall) IfNoneMatch(entityTag string) *HealthChecksListCall {
36708	c.ifNoneMatch_ = entityTag
36709	return c
36710}
36711
36712// Context sets the context to be used in this call's Do method. Any
36713// pending HTTP request will be aborted if the provided context is
36714// canceled.
36715func (c *HealthChecksListCall) Context(ctx context.Context) *HealthChecksListCall {
36716	c.ctx_ = ctx
36717	return c
36718}
36719
36720// Header returns an http.Header that can be modified by the caller to
36721// add HTTP headers to the request.
36722func (c *HealthChecksListCall) Header() http.Header {
36723	if c.header_ == nil {
36724		c.header_ = make(http.Header)
36725	}
36726	return c.header_
36727}
36728
36729func (c *HealthChecksListCall) doRequest(alt string) (*http.Response, error) {
36730	reqHeaders := make(http.Header)
36731	for k, v := range c.header_ {
36732		reqHeaders[k] = v
36733	}
36734	reqHeaders.Set("User-Agent", c.s.userAgent())
36735	if c.ifNoneMatch_ != "" {
36736		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
36737	}
36738	var body io.Reader = nil
36739	c.urlParams_.Set("alt", alt)
36740	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks")
36741	urls += "?" + c.urlParams_.Encode()
36742	req, _ := http.NewRequest("GET", urls, body)
36743	req.Header = reqHeaders
36744	googleapi.Expand(req.URL, map[string]string{
36745		"project": c.project,
36746	})
36747	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36748}
36749
36750// Do executes the "compute.healthChecks.list" call.
36751// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
36752// status code is an error. Response headers are in either
36753// *HealthCheckList.ServerResponse.Header or (if a response was returned
36754// at all) in error.(*googleapi.Error).Header. Use
36755// googleapi.IsNotModified to check whether the returned error was
36756// because http.StatusNotModified was returned.
36757func (c *HealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
36758	gensupport.SetOptions(c.urlParams_, opts...)
36759	res, err := c.doRequest("json")
36760	if res != nil && res.StatusCode == http.StatusNotModified {
36761		if res.Body != nil {
36762			res.Body.Close()
36763		}
36764		return nil, &googleapi.Error{
36765			Code:   res.StatusCode,
36766			Header: res.Header,
36767		}
36768	}
36769	if err != nil {
36770		return nil, err
36771	}
36772	defer googleapi.CloseBody(res)
36773	if err := googleapi.CheckResponse(res); err != nil {
36774		return nil, err
36775	}
36776	ret := &HealthCheckList{
36777		ServerResponse: googleapi.ServerResponse{
36778			Header:         res.Header,
36779			HTTPStatusCode: res.StatusCode,
36780		},
36781	}
36782	target := &ret
36783	if err := gensupport.DecodeResponse(target, res); err != nil {
36784		return nil, err
36785	}
36786	return ret, nil
36787	// {
36788	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
36789	//   "httpMethod": "GET",
36790	//   "id": "compute.healthChecks.list",
36791	//   "parameterOrder": [
36792	//     "project"
36793	//   ],
36794	//   "parameters": {
36795	//     "filter": {
36796	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
36797	//       "location": "query",
36798	//       "type": "string"
36799	//     },
36800	//     "maxResults": {
36801	//       "default": "500",
36802	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
36803	//       "format": "uint32",
36804	//       "location": "query",
36805	//       "minimum": "0",
36806	//       "type": "integer"
36807	//     },
36808	//     "orderBy": {
36809	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
36810	//       "location": "query",
36811	//       "type": "string"
36812	//     },
36813	//     "pageToken": {
36814	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
36815	//       "location": "query",
36816	//       "type": "string"
36817	//     },
36818	//     "project": {
36819	//       "description": "Project ID for this request.",
36820	//       "location": "path",
36821	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
36822	//       "required": true,
36823	//       "type": "string"
36824	//     }
36825	//   },
36826	//   "path": "{project}/global/healthChecks",
36827	//   "response": {
36828	//     "$ref": "HealthCheckList"
36829	//   },
36830	//   "scopes": [
36831	//     "https://www.googleapis.com/auth/cloud-platform",
36832	//     "https://www.googleapis.com/auth/compute",
36833	//     "https://www.googleapis.com/auth/compute.readonly"
36834	//   ]
36835	// }
36836
36837}
36838
36839// Pages invokes f for each page of results.
36840// A non-nil error returned from f will halt the iteration.
36841// The provided context supersedes any context provided to the Context method.
36842func (c *HealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
36843	c.ctx_ = ctx
36844	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
36845	for {
36846		x, err := c.Do()
36847		if err != nil {
36848			return err
36849		}
36850		if err := f(x); err != nil {
36851			return err
36852		}
36853		if x.NextPageToken == "" {
36854			return nil
36855		}
36856		c.PageToken(x.NextPageToken)
36857	}
36858}
36859
36860// method id "compute.healthChecks.patch":
36861
36862type HealthChecksPatchCall struct {
36863	s           *Service
36864	project     string
36865	healthCheck string
36866	healthcheck *HealthCheck
36867	urlParams_  gensupport.URLParams
36868	ctx_        context.Context
36869	header_     http.Header
36870}
36871
36872// Patch: Updates a HealthCheck resource in the specified project using
36873// the data included in the request. This method supports PATCH
36874// semantics and uses the JSON merge patch format and processing rules.
36875func (r *HealthChecksService) Patch(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksPatchCall {
36876	c := &HealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
36877	c.project = project
36878	c.healthCheck = healthCheck
36879	c.healthcheck = healthcheck
36880	return c
36881}
36882
36883// RequestId sets the optional parameter "requestId": An optional
36884// request ID to identify requests. Specify a unique request ID so that
36885// if you must retry your request, the server will know to ignore the
36886// request if it has already been completed.
36887//
36888// For example, consider a situation where you make an initial request
36889// and the request times out. If you make the request again with the
36890// same request ID, the server can check if original operation with the
36891// same request ID was received, and if so, will ignore the second
36892// request. This prevents clients from accidentally creating duplicate
36893// commitments.
36894//
36895// The request ID must be a valid UUID with the exception that zero UUID
36896// is not supported (00000000-0000-0000-0000-000000000000).
36897func (c *HealthChecksPatchCall) RequestId(requestId string) *HealthChecksPatchCall {
36898	c.urlParams_.Set("requestId", requestId)
36899	return c
36900}
36901
36902// Fields allows partial responses to be retrieved. See
36903// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
36904// for more information.
36905func (c *HealthChecksPatchCall) Fields(s ...googleapi.Field) *HealthChecksPatchCall {
36906	c.urlParams_.Set("fields", googleapi.CombineFields(s))
36907	return c
36908}
36909
36910// Context sets the context to be used in this call's Do method. Any
36911// pending HTTP request will be aborted if the provided context is
36912// canceled.
36913func (c *HealthChecksPatchCall) Context(ctx context.Context) *HealthChecksPatchCall {
36914	c.ctx_ = ctx
36915	return c
36916}
36917
36918// Header returns an http.Header that can be modified by the caller to
36919// add HTTP headers to the request.
36920func (c *HealthChecksPatchCall) Header() http.Header {
36921	if c.header_ == nil {
36922		c.header_ = make(http.Header)
36923	}
36924	return c.header_
36925}
36926
36927func (c *HealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
36928	reqHeaders := make(http.Header)
36929	for k, v := range c.header_ {
36930		reqHeaders[k] = v
36931	}
36932	reqHeaders.Set("User-Agent", c.s.userAgent())
36933	var body io.Reader = nil
36934	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
36935	if err != nil {
36936		return nil, err
36937	}
36938	reqHeaders.Set("Content-Type", "application/json")
36939	c.urlParams_.Set("alt", alt)
36940	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
36941	urls += "?" + c.urlParams_.Encode()
36942	req, _ := http.NewRequest("PATCH", urls, body)
36943	req.Header = reqHeaders
36944	googleapi.Expand(req.URL, map[string]string{
36945		"project":     c.project,
36946		"healthCheck": c.healthCheck,
36947	})
36948	return gensupport.SendRequest(c.ctx_, c.s.client, req)
36949}
36950
36951// Do executes the "compute.healthChecks.patch" call.
36952// Exactly one of *Operation or error will be non-nil. Any non-2xx
36953// status code is an error. Response headers are in either
36954// *Operation.ServerResponse.Header or (if a response was returned at
36955// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
36956// to check whether the returned error was because
36957// http.StatusNotModified was returned.
36958func (c *HealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
36959	gensupport.SetOptions(c.urlParams_, opts...)
36960	res, err := c.doRequest("json")
36961	if res != nil && res.StatusCode == http.StatusNotModified {
36962		if res.Body != nil {
36963			res.Body.Close()
36964		}
36965		return nil, &googleapi.Error{
36966			Code:   res.StatusCode,
36967			Header: res.Header,
36968		}
36969	}
36970	if err != nil {
36971		return nil, err
36972	}
36973	defer googleapi.CloseBody(res)
36974	if err := googleapi.CheckResponse(res); err != nil {
36975		return nil, err
36976	}
36977	ret := &Operation{
36978		ServerResponse: googleapi.ServerResponse{
36979			Header:         res.Header,
36980			HTTPStatusCode: res.StatusCode,
36981		},
36982	}
36983	target := &ret
36984	if err := gensupport.DecodeResponse(target, res); err != nil {
36985		return nil, err
36986	}
36987	return ret, nil
36988	// {
36989	//   "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.",
36990	//   "httpMethod": "PATCH",
36991	//   "id": "compute.healthChecks.patch",
36992	//   "parameterOrder": [
36993	//     "project",
36994	//     "healthCheck"
36995	//   ],
36996	//   "parameters": {
36997	//     "healthCheck": {
36998	//       "description": "Name of the HealthCheck resource to patch.",
36999	//       "location": "path",
37000	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
37001	//       "required": true,
37002	//       "type": "string"
37003	//     },
37004	//     "project": {
37005	//       "description": "Project ID for this request.",
37006	//       "location": "path",
37007	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
37008	//       "required": true,
37009	//       "type": "string"
37010	//     },
37011	//     "requestId": {
37012	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
37013	//       "location": "query",
37014	//       "type": "string"
37015	//     }
37016	//   },
37017	//   "path": "{project}/global/healthChecks/{healthCheck}",
37018	//   "request": {
37019	//     "$ref": "HealthCheck"
37020	//   },
37021	//   "response": {
37022	//     "$ref": "Operation"
37023	//   },
37024	//   "scopes": [
37025	//     "https://www.googleapis.com/auth/cloud-platform",
37026	//     "https://www.googleapis.com/auth/compute"
37027	//   ]
37028	// }
37029
37030}
37031
37032// method id "compute.healthChecks.update":
37033
37034type HealthChecksUpdateCall struct {
37035	s           *Service
37036	project     string
37037	healthCheck string
37038	healthcheck *HealthCheck
37039	urlParams_  gensupport.URLParams
37040	ctx_        context.Context
37041	header_     http.Header
37042}
37043
37044// Update: Updates a HealthCheck resource in the specified project using
37045// the data included in the request.
37046func (r *HealthChecksService) Update(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksUpdateCall {
37047	c := &HealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37048	c.project = project
37049	c.healthCheck = healthCheck
37050	c.healthcheck = healthcheck
37051	return c
37052}
37053
37054// RequestId sets the optional parameter "requestId": An optional
37055// request ID to identify requests. Specify a unique request ID so that
37056// if you must retry your request, the server will know to ignore the
37057// request if it has already been completed.
37058//
37059// For example, consider a situation where you make an initial request
37060// and the request times out. If you make the request again with the
37061// same request ID, the server can check if original operation with the
37062// same request ID was received, and if so, will ignore the second
37063// request. This prevents clients from accidentally creating duplicate
37064// commitments.
37065//
37066// The request ID must be a valid UUID with the exception that zero UUID
37067// is not supported (00000000-0000-0000-0000-000000000000).
37068func (c *HealthChecksUpdateCall) RequestId(requestId string) *HealthChecksUpdateCall {
37069	c.urlParams_.Set("requestId", requestId)
37070	return c
37071}
37072
37073// Fields allows partial responses to be retrieved. See
37074// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37075// for more information.
37076func (c *HealthChecksUpdateCall) Fields(s ...googleapi.Field) *HealthChecksUpdateCall {
37077	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37078	return c
37079}
37080
37081// Context sets the context to be used in this call's Do method. Any
37082// pending HTTP request will be aborted if the provided context is
37083// canceled.
37084func (c *HealthChecksUpdateCall) Context(ctx context.Context) *HealthChecksUpdateCall {
37085	c.ctx_ = ctx
37086	return c
37087}
37088
37089// Header returns an http.Header that can be modified by the caller to
37090// add HTTP headers to the request.
37091func (c *HealthChecksUpdateCall) Header() http.Header {
37092	if c.header_ == nil {
37093		c.header_ = make(http.Header)
37094	}
37095	return c.header_
37096}
37097
37098func (c *HealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
37099	reqHeaders := make(http.Header)
37100	for k, v := range c.header_ {
37101		reqHeaders[k] = v
37102	}
37103	reqHeaders.Set("User-Agent", c.s.userAgent())
37104	var body io.Reader = nil
37105	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
37106	if err != nil {
37107		return nil, err
37108	}
37109	reqHeaders.Set("Content-Type", "application/json")
37110	c.urlParams_.Set("alt", alt)
37111	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
37112	urls += "?" + c.urlParams_.Encode()
37113	req, _ := http.NewRequest("PUT", urls, body)
37114	req.Header = reqHeaders
37115	googleapi.Expand(req.URL, map[string]string{
37116		"project":     c.project,
37117		"healthCheck": c.healthCheck,
37118	})
37119	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37120}
37121
37122// Do executes the "compute.healthChecks.update" call.
37123// Exactly one of *Operation or error will be non-nil. Any non-2xx
37124// status code is an error. Response headers are in either
37125// *Operation.ServerResponse.Header or (if a response was returned at
37126// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
37127// to check whether the returned error was because
37128// http.StatusNotModified was returned.
37129func (c *HealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
37130	gensupport.SetOptions(c.urlParams_, opts...)
37131	res, err := c.doRequest("json")
37132	if res != nil && res.StatusCode == http.StatusNotModified {
37133		if res.Body != nil {
37134			res.Body.Close()
37135		}
37136		return nil, &googleapi.Error{
37137			Code:   res.StatusCode,
37138			Header: res.Header,
37139		}
37140	}
37141	if err != nil {
37142		return nil, err
37143	}
37144	defer googleapi.CloseBody(res)
37145	if err := googleapi.CheckResponse(res); err != nil {
37146		return nil, err
37147	}
37148	ret := &Operation{
37149		ServerResponse: googleapi.ServerResponse{
37150			Header:         res.Header,
37151			HTTPStatusCode: res.StatusCode,
37152		},
37153	}
37154	target := &ret
37155	if err := gensupport.DecodeResponse(target, res); err != nil {
37156		return nil, err
37157	}
37158	return ret, nil
37159	// {
37160	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
37161	//   "httpMethod": "PUT",
37162	//   "id": "compute.healthChecks.update",
37163	//   "parameterOrder": [
37164	//     "project",
37165	//     "healthCheck"
37166	//   ],
37167	//   "parameters": {
37168	//     "healthCheck": {
37169	//       "description": "Name of the HealthCheck resource to update.",
37170	//       "location": "path",
37171	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
37172	//       "required": true,
37173	//       "type": "string"
37174	//     },
37175	//     "project": {
37176	//       "description": "Project ID for this request.",
37177	//       "location": "path",
37178	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
37179	//       "required": true,
37180	//       "type": "string"
37181	//     },
37182	//     "requestId": {
37183	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
37184	//       "location": "query",
37185	//       "type": "string"
37186	//     }
37187	//   },
37188	//   "path": "{project}/global/healthChecks/{healthCheck}",
37189	//   "request": {
37190	//     "$ref": "HealthCheck"
37191	//   },
37192	//   "response": {
37193	//     "$ref": "Operation"
37194	//   },
37195	//   "scopes": [
37196	//     "https://www.googleapis.com/auth/cloud-platform",
37197	//     "https://www.googleapis.com/auth/compute"
37198	//   ]
37199	// }
37200
37201}
37202
37203// method id "compute.httpHealthChecks.delete":
37204
37205type HttpHealthChecksDeleteCall struct {
37206	s               *Service
37207	project         string
37208	httpHealthCheck string
37209	urlParams_      gensupport.URLParams
37210	ctx_            context.Context
37211	header_         http.Header
37212}
37213
37214// Delete: Deletes the specified HttpHealthCheck resource.
37215// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/delete
37216func (r *HttpHealthChecksService) Delete(project string, httpHealthCheck string) *HttpHealthChecksDeleteCall {
37217	c := &HttpHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37218	c.project = project
37219	c.httpHealthCheck = httpHealthCheck
37220	return c
37221}
37222
37223// RequestId sets the optional parameter "requestId": An optional
37224// request ID to identify requests. Specify a unique request ID so that
37225// if you must retry your request, the server will know to ignore the
37226// request if it has already been completed.
37227//
37228// For example, consider a situation where you make an initial request
37229// and the request times out. If you make the request again with the
37230// same request ID, the server can check if original operation with the
37231// same request ID was received, and if so, will ignore the second
37232// request. This prevents clients from accidentally creating duplicate
37233// commitments.
37234//
37235// The request ID must be a valid UUID with the exception that zero UUID
37236// is not supported (00000000-0000-0000-0000-000000000000).
37237func (c *HttpHealthChecksDeleteCall) RequestId(requestId string) *HttpHealthChecksDeleteCall {
37238	c.urlParams_.Set("requestId", requestId)
37239	return c
37240}
37241
37242// Fields allows partial responses to be retrieved. See
37243// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37244// for more information.
37245func (c *HttpHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpHealthChecksDeleteCall {
37246	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37247	return c
37248}
37249
37250// Context sets the context to be used in this call's Do method. Any
37251// pending HTTP request will be aborted if the provided context is
37252// canceled.
37253func (c *HttpHealthChecksDeleteCall) Context(ctx context.Context) *HttpHealthChecksDeleteCall {
37254	c.ctx_ = ctx
37255	return c
37256}
37257
37258// Header returns an http.Header that can be modified by the caller to
37259// add HTTP headers to the request.
37260func (c *HttpHealthChecksDeleteCall) Header() http.Header {
37261	if c.header_ == nil {
37262		c.header_ = make(http.Header)
37263	}
37264	return c.header_
37265}
37266
37267func (c *HttpHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
37268	reqHeaders := make(http.Header)
37269	for k, v := range c.header_ {
37270		reqHeaders[k] = v
37271	}
37272	reqHeaders.Set("User-Agent", c.s.userAgent())
37273	var body io.Reader = nil
37274	c.urlParams_.Set("alt", alt)
37275	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
37276	urls += "?" + c.urlParams_.Encode()
37277	req, _ := http.NewRequest("DELETE", urls, body)
37278	req.Header = reqHeaders
37279	googleapi.Expand(req.URL, map[string]string{
37280		"project":         c.project,
37281		"httpHealthCheck": c.httpHealthCheck,
37282	})
37283	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37284}
37285
37286// Do executes the "compute.httpHealthChecks.delete" call.
37287// Exactly one of *Operation or error will be non-nil. Any non-2xx
37288// status code is an error. Response headers are in either
37289// *Operation.ServerResponse.Header or (if a response was returned at
37290// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
37291// to check whether the returned error was because
37292// http.StatusNotModified was returned.
37293func (c *HttpHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
37294	gensupport.SetOptions(c.urlParams_, opts...)
37295	res, err := c.doRequest("json")
37296	if res != nil && res.StatusCode == http.StatusNotModified {
37297		if res.Body != nil {
37298			res.Body.Close()
37299		}
37300		return nil, &googleapi.Error{
37301			Code:   res.StatusCode,
37302			Header: res.Header,
37303		}
37304	}
37305	if err != nil {
37306		return nil, err
37307	}
37308	defer googleapi.CloseBody(res)
37309	if err := googleapi.CheckResponse(res); err != nil {
37310		return nil, err
37311	}
37312	ret := &Operation{
37313		ServerResponse: googleapi.ServerResponse{
37314			Header:         res.Header,
37315			HTTPStatusCode: res.StatusCode,
37316		},
37317	}
37318	target := &ret
37319	if err := gensupport.DecodeResponse(target, res); err != nil {
37320		return nil, err
37321	}
37322	return ret, nil
37323	// {
37324	//   "description": "Deletes the specified HttpHealthCheck resource.",
37325	//   "httpMethod": "DELETE",
37326	//   "id": "compute.httpHealthChecks.delete",
37327	//   "parameterOrder": [
37328	//     "project",
37329	//     "httpHealthCheck"
37330	//   ],
37331	//   "parameters": {
37332	//     "httpHealthCheck": {
37333	//       "description": "Name of the HttpHealthCheck resource to delete.",
37334	//       "location": "path",
37335	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
37336	//       "required": true,
37337	//       "type": "string"
37338	//     },
37339	//     "project": {
37340	//       "description": "Project ID for this request.",
37341	//       "location": "path",
37342	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
37343	//       "required": true,
37344	//       "type": "string"
37345	//     },
37346	//     "requestId": {
37347	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
37348	//       "location": "query",
37349	//       "type": "string"
37350	//     }
37351	//   },
37352	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
37353	//   "response": {
37354	//     "$ref": "Operation"
37355	//   },
37356	//   "scopes": [
37357	//     "https://www.googleapis.com/auth/cloud-platform",
37358	//     "https://www.googleapis.com/auth/compute"
37359	//   ]
37360	// }
37361
37362}
37363
37364// method id "compute.httpHealthChecks.get":
37365
37366type HttpHealthChecksGetCall struct {
37367	s               *Service
37368	project         string
37369	httpHealthCheck string
37370	urlParams_      gensupport.URLParams
37371	ifNoneMatch_    string
37372	ctx_            context.Context
37373	header_         http.Header
37374}
37375
37376// Get: Returns the specified HttpHealthCheck resource. Get a list of
37377// available HTTP health checks by making a list() request.
37378// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/get
37379func (r *HttpHealthChecksService) Get(project string, httpHealthCheck string) *HttpHealthChecksGetCall {
37380	c := &HttpHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37381	c.project = project
37382	c.httpHealthCheck = httpHealthCheck
37383	return c
37384}
37385
37386// Fields allows partial responses to be retrieved. See
37387// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37388// for more information.
37389func (c *HttpHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpHealthChecksGetCall {
37390	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37391	return c
37392}
37393
37394// IfNoneMatch sets the optional parameter which makes the operation
37395// fail if the object's ETag matches the given value. This is useful for
37396// getting updates only after the object has changed since the last
37397// request. Use googleapi.IsNotModified to check whether the response
37398// error from Do is the result of In-None-Match.
37399func (c *HttpHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpHealthChecksGetCall {
37400	c.ifNoneMatch_ = entityTag
37401	return c
37402}
37403
37404// Context sets the context to be used in this call's Do method. Any
37405// pending HTTP request will be aborted if the provided context is
37406// canceled.
37407func (c *HttpHealthChecksGetCall) Context(ctx context.Context) *HttpHealthChecksGetCall {
37408	c.ctx_ = ctx
37409	return c
37410}
37411
37412// Header returns an http.Header that can be modified by the caller to
37413// add HTTP headers to the request.
37414func (c *HttpHealthChecksGetCall) Header() http.Header {
37415	if c.header_ == nil {
37416		c.header_ = make(http.Header)
37417	}
37418	return c.header_
37419}
37420
37421func (c *HttpHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
37422	reqHeaders := make(http.Header)
37423	for k, v := range c.header_ {
37424		reqHeaders[k] = v
37425	}
37426	reqHeaders.Set("User-Agent", c.s.userAgent())
37427	if c.ifNoneMatch_ != "" {
37428		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
37429	}
37430	var body io.Reader = nil
37431	c.urlParams_.Set("alt", alt)
37432	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
37433	urls += "?" + c.urlParams_.Encode()
37434	req, _ := http.NewRequest("GET", urls, body)
37435	req.Header = reqHeaders
37436	googleapi.Expand(req.URL, map[string]string{
37437		"project":         c.project,
37438		"httpHealthCheck": c.httpHealthCheck,
37439	})
37440	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37441}
37442
37443// Do executes the "compute.httpHealthChecks.get" call.
37444// Exactly one of *HttpHealthCheck or error will be non-nil. Any non-2xx
37445// status code is an error. Response headers are in either
37446// *HttpHealthCheck.ServerResponse.Header or (if a response was returned
37447// at all) in error.(*googleapi.Error).Header. Use
37448// googleapi.IsNotModified to check whether the returned error was
37449// because http.StatusNotModified was returned.
37450func (c *HttpHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheck, error) {
37451	gensupport.SetOptions(c.urlParams_, opts...)
37452	res, err := c.doRequest("json")
37453	if res != nil && res.StatusCode == http.StatusNotModified {
37454		if res.Body != nil {
37455			res.Body.Close()
37456		}
37457		return nil, &googleapi.Error{
37458			Code:   res.StatusCode,
37459			Header: res.Header,
37460		}
37461	}
37462	if err != nil {
37463		return nil, err
37464	}
37465	defer googleapi.CloseBody(res)
37466	if err := googleapi.CheckResponse(res); err != nil {
37467		return nil, err
37468	}
37469	ret := &HttpHealthCheck{
37470		ServerResponse: googleapi.ServerResponse{
37471			Header:         res.Header,
37472			HTTPStatusCode: res.StatusCode,
37473		},
37474	}
37475	target := &ret
37476	if err := gensupport.DecodeResponse(target, res); err != nil {
37477		return nil, err
37478	}
37479	return ret, nil
37480	// {
37481	//   "description": "Returns the specified HttpHealthCheck resource. Get a list of available HTTP health checks by making a list() request.",
37482	//   "httpMethod": "GET",
37483	//   "id": "compute.httpHealthChecks.get",
37484	//   "parameterOrder": [
37485	//     "project",
37486	//     "httpHealthCheck"
37487	//   ],
37488	//   "parameters": {
37489	//     "httpHealthCheck": {
37490	//       "description": "Name of the HttpHealthCheck resource to return.",
37491	//       "location": "path",
37492	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
37493	//       "required": true,
37494	//       "type": "string"
37495	//     },
37496	//     "project": {
37497	//       "description": "Project ID for this request.",
37498	//       "location": "path",
37499	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
37500	//       "required": true,
37501	//       "type": "string"
37502	//     }
37503	//   },
37504	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
37505	//   "response": {
37506	//     "$ref": "HttpHealthCheck"
37507	//   },
37508	//   "scopes": [
37509	//     "https://www.googleapis.com/auth/cloud-platform",
37510	//     "https://www.googleapis.com/auth/compute",
37511	//     "https://www.googleapis.com/auth/compute.readonly"
37512	//   ]
37513	// }
37514
37515}
37516
37517// method id "compute.httpHealthChecks.insert":
37518
37519type HttpHealthChecksInsertCall struct {
37520	s               *Service
37521	project         string
37522	httphealthcheck *HttpHealthCheck
37523	urlParams_      gensupport.URLParams
37524	ctx_            context.Context
37525	header_         http.Header
37526}
37527
37528// Insert: Creates a HttpHealthCheck resource in the specified project
37529// using the data included in the request.
37530// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/insert
37531func (r *HttpHealthChecksService) Insert(project string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksInsertCall {
37532	c := &HttpHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37533	c.project = project
37534	c.httphealthcheck = httphealthcheck
37535	return c
37536}
37537
37538// RequestId sets the optional parameter "requestId": An optional
37539// request ID to identify requests. Specify a unique request ID so that
37540// if you must retry your request, the server will know to ignore the
37541// request if it has already been completed.
37542//
37543// For example, consider a situation where you make an initial request
37544// and the request times out. If you make the request again with the
37545// same request ID, the server can check if original operation with the
37546// same request ID was received, and if so, will ignore the second
37547// request. This prevents clients from accidentally creating duplicate
37548// commitments.
37549//
37550// The request ID must be a valid UUID with the exception that zero UUID
37551// is not supported (00000000-0000-0000-0000-000000000000).
37552func (c *HttpHealthChecksInsertCall) RequestId(requestId string) *HttpHealthChecksInsertCall {
37553	c.urlParams_.Set("requestId", requestId)
37554	return c
37555}
37556
37557// Fields allows partial responses to be retrieved. See
37558// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37559// for more information.
37560func (c *HttpHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpHealthChecksInsertCall {
37561	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37562	return c
37563}
37564
37565// Context sets the context to be used in this call's Do method. Any
37566// pending HTTP request will be aborted if the provided context is
37567// canceled.
37568func (c *HttpHealthChecksInsertCall) Context(ctx context.Context) *HttpHealthChecksInsertCall {
37569	c.ctx_ = ctx
37570	return c
37571}
37572
37573// Header returns an http.Header that can be modified by the caller to
37574// add HTTP headers to the request.
37575func (c *HttpHealthChecksInsertCall) Header() http.Header {
37576	if c.header_ == nil {
37577		c.header_ = make(http.Header)
37578	}
37579	return c.header_
37580}
37581
37582func (c *HttpHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
37583	reqHeaders := make(http.Header)
37584	for k, v := range c.header_ {
37585		reqHeaders[k] = v
37586	}
37587	reqHeaders.Set("User-Agent", c.s.userAgent())
37588	var body io.Reader = nil
37589	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
37590	if err != nil {
37591		return nil, err
37592	}
37593	reqHeaders.Set("Content-Type", "application/json")
37594	c.urlParams_.Set("alt", alt)
37595	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks")
37596	urls += "?" + c.urlParams_.Encode()
37597	req, _ := http.NewRequest("POST", urls, body)
37598	req.Header = reqHeaders
37599	googleapi.Expand(req.URL, map[string]string{
37600		"project": c.project,
37601	})
37602	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37603}
37604
37605// Do executes the "compute.httpHealthChecks.insert" call.
37606// Exactly one of *Operation or error will be non-nil. Any non-2xx
37607// status code is an error. Response headers are in either
37608// *Operation.ServerResponse.Header or (if a response was returned at
37609// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
37610// to check whether the returned error was because
37611// http.StatusNotModified was returned.
37612func (c *HttpHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
37613	gensupport.SetOptions(c.urlParams_, opts...)
37614	res, err := c.doRequest("json")
37615	if res != nil && res.StatusCode == http.StatusNotModified {
37616		if res.Body != nil {
37617			res.Body.Close()
37618		}
37619		return nil, &googleapi.Error{
37620			Code:   res.StatusCode,
37621			Header: res.Header,
37622		}
37623	}
37624	if err != nil {
37625		return nil, err
37626	}
37627	defer googleapi.CloseBody(res)
37628	if err := googleapi.CheckResponse(res); err != nil {
37629		return nil, err
37630	}
37631	ret := &Operation{
37632		ServerResponse: googleapi.ServerResponse{
37633			Header:         res.Header,
37634			HTTPStatusCode: res.StatusCode,
37635		},
37636	}
37637	target := &ret
37638	if err := gensupport.DecodeResponse(target, res); err != nil {
37639		return nil, err
37640	}
37641	return ret, nil
37642	// {
37643	//   "description": "Creates a HttpHealthCheck resource in the specified project using the data included in the request.",
37644	//   "httpMethod": "POST",
37645	//   "id": "compute.httpHealthChecks.insert",
37646	//   "parameterOrder": [
37647	//     "project"
37648	//   ],
37649	//   "parameters": {
37650	//     "project": {
37651	//       "description": "Project ID for this request.",
37652	//       "location": "path",
37653	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
37654	//       "required": true,
37655	//       "type": "string"
37656	//     },
37657	//     "requestId": {
37658	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
37659	//       "location": "query",
37660	//       "type": "string"
37661	//     }
37662	//   },
37663	//   "path": "{project}/global/httpHealthChecks",
37664	//   "request": {
37665	//     "$ref": "HttpHealthCheck"
37666	//   },
37667	//   "response": {
37668	//     "$ref": "Operation"
37669	//   },
37670	//   "scopes": [
37671	//     "https://www.googleapis.com/auth/cloud-platform",
37672	//     "https://www.googleapis.com/auth/compute"
37673	//   ]
37674	// }
37675
37676}
37677
37678// method id "compute.httpHealthChecks.list":
37679
37680type HttpHealthChecksListCall struct {
37681	s            *Service
37682	project      string
37683	urlParams_   gensupport.URLParams
37684	ifNoneMatch_ string
37685	ctx_         context.Context
37686	header_      http.Header
37687}
37688
37689// List: Retrieves the list of HttpHealthCheck resources available to
37690// the specified project.
37691// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/list
37692func (r *HttpHealthChecksService) List(project string) *HttpHealthChecksListCall {
37693	c := &HttpHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37694	c.project = project
37695	return c
37696}
37697
37698// Filter sets the optional parameter "filter": Sets a filter
37699// {expression} for filtering listed resources. Your {expression} must
37700// be in the format: field_name comparison_string literal_string.
37701//
37702// The field_name is the name of the field you want to compare. Only
37703// atomic field types are supported (string, number, boolean). The
37704// comparison_string must be either eq (equals) or ne (not equals). The
37705// literal_string is the string value to filter to. The literal value
37706// must be valid for the type of field you are filtering by (string,
37707// number, boolean). For string fields, the literal value is interpreted
37708// as a regular expression using RE2 syntax. The literal value must
37709// match the entire field.
37710//
37711// For example, to filter for instances that do not have a name of
37712// example-instance, you would use name ne example-instance.
37713//
37714// You can filter on nested fields. For example, you could filter on
37715// instances that have set the scheduling.automaticRestart field to
37716// true. Use filtering on nested fields to take advantage of labels to
37717// organize and search for results based on label values.
37718//
37719// To filter on multiple expressions, provide each separate expression
37720// within parentheses. For example, (scheduling.automaticRestart eq
37721// true) (zone eq us-central1-f). Multiple expressions are treated as
37722// AND expressions, meaning that resources must match all expressions to
37723// pass the filters.
37724func (c *HttpHealthChecksListCall) Filter(filter string) *HttpHealthChecksListCall {
37725	c.urlParams_.Set("filter", filter)
37726	return c
37727}
37728
37729// MaxResults sets the optional parameter "maxResults": The maximum
37730// number of results per page that should be returned. If the number of
37731// available results is larger than maxResults, Compute Engine returns a
37732// nextPageToken that can be used to get the next page of results in
37733// subsequent list requests. Acceptable values are 0 to 500, inclusive.
37734// (Default: 500)
37735func (c *HttpHealthChecksListCall) MaxResults(maxResults int64) *HttpHealthChecksListCall {
37736	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
37737	return c
37738}
37739
37740// OrderBy sets the optional parameter "orderBy": Sorts list results by
37741// a certain order. By default, results are returned in alphanumerical
37742// order based on the resource name.
37743//
37744// You can also sort results in descending order based on the creation
37745// timestamp using orderBy="creationTimestamp desc". This sorts results
37746// based on the creationTimestamp field in reverse chronological order
37747// (newest result first). Use this to sort resources like operations so
37748// that the newest operation is returned first.
37749//
37750// Currently, only sorting by name or creationTimestamp desc is
37751// supported.
37752func (c *HttpHealthChecksListCall) OrderBy(orderBy string) *HttpHealthChecksListCall {
37753	c.urlParams_.Set("orderBy", orderBy)
37754	return c
37755}
37756
37757// PageToken sets the optional parameter "pageToken": Specifies a page
37758// token to use. Set pageToken to the nextPageToken returned by a
37759// previous list request to get the next page of results.
37760func (c *HttpHealthChecksListCall) PageToken(pageToken string) *HttpHealthChecksListCall {
37761	c.urlParams_.Set("pageToken", pageToken)
37762	return c
37763}
37764
37765// Fields allows partial responses to be retrieved. See
37766// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37767// for more information.
37768func (c *HttpHealthChecksListCall) Fields(s ...googleapi.Field) *HttpHealthChecksListCall {
37769	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37770	return c
37771}
37772
37773// IfNoneMatch sets the optional parameter which makes the operation
37774// fail if the object's ETag matches the given value. This is useful for
37775// getting updates only after the object has changed since the last
37776// request. Use googleapi.IsNotModified to check whether the response
37777// error from Do is the result of In-None-Match.
37778func (c *HttpHealthChecksListCall) IfNoneMatch(entityTag string) *HttpHealthChecksListCall {
37779	c.ifNoneMatch_ = entityTag
37780	return c
37781}
37782
37783// Context sets the context to be used in this call's Do method. Any
37784// pending HTTP request will be aborted if the provided context is
37785// canceled.
37786func (c *HttpHealthChecksListCall) Context(ctx context.Context) *HttpHealthChecksListCall {
37787	c.ctx_ = ctx
37788	return c
37789}
37790
37791// Header returns an http.Header that can be modified by the caller to
37792// add HTTP headers to the request.
37793func (c *HttpHealthChecksListCall) Header() http.Header {
37794	if c.header_ == nil {
37795		c.header_ = make(http.Header)
37796	}
37797	return c.header_
37798}
37799
37800func (c *HttpHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
37801	reqHeaders := make(http.Header)
37802	for k, v := range c.header_ {
37803		reqHeaders[k] = v
37804	}
37805	reqHeaders.Set("User-Agent", c.s.userAgent())
37806	if c.ifNoneMatch_ != "" {
37807		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
37808	}
37809	var body io.Reader = nil
37810	c.urlParams_.Set("alt", alt)
37811	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks")
37812	urls += "?" + c.urlParams_.Encode()
37813	req, _ := http.NewRequest("GET", urls, body)
37814	req.Header = reqHeaders
37815	googleapi.Expand(req.URL, map[string]string{
37816		"project": c.project,
37817	})
37818	return gensupport.SendRequest(c.ctx_, c.s.client, req)
37819}
37820
37821// Do executes the "compute.httpHealthChecks.list" call.
37822// Exactly one of *HttpHealthCheckList or error will be non-nil. Any
37823// non-2xx status code is an error. Response headers are in either
37824// *HttpHealthCheckList.ServerResponse.Header or (if a response was
37825// returned at all) in error.(*googleapi.Error).Header. Use
37826// googleapi.IsNotModified to check whether the returned error was
37827// because http.StatusNotModified was returned.
37828func (c *HttpHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheckList, error) {
37829	gensupport.SetOptions(c.urlParams_, opts...)
37830	res, err := c.doRequest("json")
37831	if res != nil && res.StatusCode == http.StatusNotModified {
37832		if res.Body != nil {
37833			res.Body.Close()
37834		}
37835		return nil, &googleapi.Error{
37836			Code:   res.StatusCode,
37837			Header: res.Header,
37838		}
37839	}
37840	if err != nil {
37841		return nil, err
37842	}
37843	defer googleapi.CloseBody(res)
37844	if err := googleapi.CheckResponse(res); err != nil {
37845		return nil, err
37846	}
37847	ret := &HttpHealthCheckList{
37848		ServerResponse: googleapi.ServerResponse{
37849			Header:         res.Header,
37850			HTTPStatusCode: res.StatusCode,
37851		},
37852	}
37853	target := &ret
37854	if err := gensupport.DecodeResponse(target, res); err != nil {
37855		return nil, err
37856	}
37857	return ret, nil
37858	// {
37859	//   "description": "Retrieves the list of HttpHealthCheck resources available to the specified project.",
37860	//   "httpMethod": "GET",
37861	//   "id": "compute.httpHealthChecks.list",
37862	//   "parameterOrder": [
37863	//     "project"
37864	//   ],
37865	//   "parameters": {
37866	//     "filter": {
37867	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
37868	//       "location": "query",
37869	//       "type": "string"
37870	//     },
37871	//     "maxResults": {
37872	//       "default": "500",
37873	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
37874	//       "format": "uint32",
37875	//       "location": "query",
37876	//       "minimum": "0",
37877	//       "type": "integer"
37878	//     },
37879	//     "orderBy": {
37880	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
37881	//       "location": "query",
37882	//       "type": "string"
37883	//     },
37884	//     "pageToken": {
37885	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
37886	//       "location": "query",
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	//   },
37897	//   "path": "{project}/global/httpHealthChecks",
37898	//   "response": {
37899	//     "$ref": "HttpHealthCheckList"
37900	//   },
37901	//   "scopes": [
37902	//     "https://www.googleapis.com/auth/cloud-platform",
37903	//     "https://www.googleapis.com/auth/compute",
37904	//     "https://www.googleapis.com/auth/compute.readonly"
37905	//   ]
37906	// }
37907
37908}
37909
37910// Pages invokes f for each page of results.
37911// A non-nil error returned from f will halt the iteration.
37912// The provided context supersedes any context provided to the Context method.
37913func (c *HttpHealthChecksListCall) Pages(ctx context.Context, f func(*HttpHealthCheckList) error) error {
37914	c.ctx_ = ctx
37915	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
37916	for {
37917		x, err := c.Do()
37918		if err != nil {
37919			return err
37920		}
37921		if err := f(x); err != nil {
37922			return err
37923		}
37924		if x.NextPageToken == "" {
37925			return nil
37926		}
37927		c.PageToken(x.NextPageToken)
37928	}
37929}
37930
37931// method id "compute.httpHealthChecks.patch":
37932
37933type HttpHealthChecksPatchCall struct {
37934	s               *Service
37935	project         string
37936	httpHealthCheck string
37937	httphealthcheck *HttpHealthCheck
37938	urlParams_      gensupport.URLParams
37939	ctx_            context.Context
37940	header_         http.Header
37941}
37942
37943// Patch: Updates a HttpHealthCheck resource in the specified project
37944// using the data included in the request. This method supports PATCH
37945// semantics and uses the JSON merge patch format and processing rules.
37946// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/patch
37947func (r *HttpHealthChecksService) Patch(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksPatchCall {
37948	c := &HttpHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
37949	c.project = project
37950	c.httpHealthCheck = httpHealthCheck
37951	c.httphealthcheck = httphealthcheck
37952	return c
37953}
37954
37955// RequestId sets the optional parameter "requestId": An optional
37956// request ID to identify requests. Specify a unique request ID so that
37957// if you must retry your request, the server will know to ignore the
37958// request if it has already been completed.
37959//
37960// For example, consider a situation where you make an initial request
37961// and the request times out. If you make the request again with the
37962// same request ID, the server can check if original operation with the
37963// same request ID was received, and if so, will ignore the second
37964// request. This prevents clients from accidentally creating duplicate
37965// commitments.
37966//
37967// The request ID must be a valid UUID with the exception that zero UUID
37968// is not supported (00000000-0000-0000-0000-000000000000).
37969func (c *HttpHealthChecksPatchCall) RequestId(requestId string) *HttpHealthChecksPatchCall {
37970	c.urlParams_.Set("requestId", requestId)
37971	return c
37972}
37973
37974// Fields allows partial responses to be retrieved. See
37975// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
37976// for more information.
37977func (c *HttpHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpHealthChecksPatchCall {
37978	c.urlParams_.Set("fields", googleapi.CombineFields(s))
37979	return c
37980}
37981
37982// Context sets the context to be used in this call's Do method. Any
37983// pending HTTP request will be aborted if the provided context is
37984// canceled.
37985func (c *HttpHealthChecksPatchCall) Context(ctx context.Context) *HttpHealthChecksPatchCall {
37986	c.ctx_ = ctx
37987	return c
37988}
37989
37990// Header returns an http.Header that can be modified by the caller to
37991// add HTTP headers to the request.
37992func (c *HttpHealthChecksPatchCall) Header() http.Header {
37993	if c.header_ == nil {
37994		c.header_ = make(http.Header)
37995	}
37996	return c.header_
37997}
37998
37999func (c *HttpHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
38000	reqHeaders := make(http.Header)
38001	for k, v := range c.header_ {
38002		reqHeaders[k] = v
38003	}
38004	reqHeaders.Set("User-Agent", c.s.userAgent())
38005	var body io.Reader = nil
38006	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
38007	if err != nil {
38008		return nil, err
38009	}
38010	reqHeaders.Set("Content-Type", "application/json")
38011	c.urlParams_.Set("alt", alt)
38012	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
38013	urls += "?" + c.urlParams_.Encode()
38014	req, _ := http.NewRequest("PATCH", urls, body)
38015	req.Header = reqHeaders
38016	googleapi.Expand(req.URL, map[string]string{
38017		"project":         c.project,
38018		"httpHealthCheck": c.httpHealthCheck,
38019	})
38020	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38021}
38022
38023// Do executes the "compute.httpHealthChecks.patch" call.
38024// Exactly one of *Operation or error will be non-nil. Any non-2xx
38025// status code is an error. Response headers are in either
38026// *Operation.ServerResponse.Header or (if a response was returned at
38027// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
38028// to check whether the returned error was because
38029// http.StatusNotModified was returned.
38030func (c *HttpHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
38031	gensupport.SetOptions(c.urlParams_, opts...)
38032	res, err := c.doRequest("json")
38033	if res != nil && res.StatusCode == http.StatusNotModified {
38034		if res.Body != nil {
38035			res.Body.Close()
38036		}
38037		return nil, &googleapi.Error{
38038			Code:   res.StatusCode,
38039			Header: res.Header,
38040		}
38041	}
38042	if err != nil {
38043		return nil, err
38044	}
38045	defer googleapi.CloseBody(res)
38046	if err := googleapi.CheckResponse(res); err != nil {
38047		return nil, err
38048	}
38049	ret := &Operation{
38050		ServerResponse: googleapi.ServerResponse{
38051			Header:         res.Header,
38052			HTTPStatusCode: res.StatusCode,
38053		},
38054	}
38055	target := &ret
38056	if err := gensupport.DecodeResponse(target, res); err != nil {
38057		return nil, err
38058	}
38059	return ret, nil
38060	// {
38061	//   "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.",
38062	//   "httpMethod": "PATCH",
38063	//   "id": "compute.httpHealthChecks.patch",
38064	//   "parameterOrder": [
38065	//     "project",
38066	//     "httpHealthCheck"
38067	//   ],
38068	//   "parameters": {
38069	//     "httpHealthCheck": {
38070	//       "description": "Name of the HttpHealthCheck resource to patch.",
38071	//       "location": "path",
38072	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
38073	//       "required": true,
38074	//       "type": "string"
38075	//     },
38076	//     "project": {
38077	//       "description": "Project ID for this request.",
38078	//       "location": "path",
38079	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
38080	//       "required": true,
38081	//       "type": "string"
38082	//     },
38083	//     "requestId": {
38084	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
38085	//       "location": "query",
38086	//       "type": "string"
38087	//     }
38088	//   },
38089	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
38090	//   "request": {
38091	//     "$ref": "HttpHealthCheck"
38092	//   },
38093	//   "response": {
38094	//     "$ref": "Operation"
38095	//   },
38096	//   "scopes": [
38097	//     "https://www.googleapis.com/auth/cloud-platform",
38098	//     "https://www.googleapis.com/auth/compute"
38099	//   ]
38100	// }
38101
38102}
38103
38104// method id "compute.httpHealthChecks.update":
38105
38106type HttpHealthChecksUpdateCall struct {
38107	s               *Service
38108	project         string
38109	httpHealthCheck string
38110	httphealthcheck *HttpHealthCheck
38111	urlParams_      gensupport.URLParams
38112	ctx_            context.Context
38113	header_         http.Header
38114}
38115
38116// Update: Updates a HttpHealthCheck resource in the specified project
38117// using the data included in the request.
38118// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/update
38119func (r *HttpHealthChecksService) Update(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksUpdateCall {
38120	c := &HttpHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38121	c.project = project
38122	c.httpHealthCheck = httpHealthCheck
38123	c.httphealthcheck = httphealthcheck
38124	return c
38125}
38126
38127// RequestId sets the optional parameter "requestId": An optional
38128// request ID to identify requests. Specify a unique request ID so that
38129// if you must retry your request, the server will know to ignore the
38130// request if it has already been completed.
38131//
38132// For example, consider a situation where you make an initial request
38133// and the request times out. If you make the request again with the
38134// same request ID, the server can check if original operation with the
38135// same request ID was received, and if so, will ignore the second
38136// request. This prevents clients from accidentally creating duplicate
38137// commitments.
38138//
38139// The request ID must be a valid UUID with the exception that zero UUID
38140// is not supported (00000000-0000-0000-0000-000000000000).
38141func (c *HttpHealthChecksUpdateCall) RequestId(requestId string) *HttpHealthChecksUpdateCall {
38142	c.urlParams_.Set("requestId", requestId)
38143	return c
38144}
38145
38146// Fields allows partial responses to be retrieved. See
38147// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38148// for more information.
38149func (c *HttpHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpHealthChecksUpdateCall {
38150	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38151	return c
38152}
38153
38154// Context sets the context to be used in this call's Do method. Any
38155// pending HTTP request will be aborted if the provided context is
38156// canceled.
38157func (c *HttpHealthChecksUpdateCall) Context(ctx context.Context) *HttpHealthChecksUpdateCall {
38158	c.ctx_ = ctx
38159	return c
38160}
38161
38162// Header returns an http.Header that can be modified by the caller to
38163// add HTTP headers to the request.
38164func (c *HttpHealthChecksUpdateCall) Header() http.Header {
38165	if c.header_ == nil {
38166		c.header_ = make(http.Header)
38167	}
38168	return c.header_
38169}
38170
38171func (c *HttpHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
38172	reqHeaders := make(http.Header)
38173	for k, v := range c.header_ {
38174		reqHeaders[k] = v
38175	}
38176	reqHeaders.Set("User-Agent", c.s.userAgent())
38177	var body io.Reader = nil
38178	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
38179	if err != nil {
38180		return nil, err
38181	}
38182	reqHeaders.Set("Content-Type", "application/json")
38183	c.urlParams_.Set("alt", alt)
38184	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
38185	urls += "?" + c.urlParams_.Encode()
38186	req, _ := http.NewRequest("PUT", urls, body)
38187	req.Header = reqHeaders
38188	googleapi.Expand(req.URL, map[string]string{
38189		"project":         c.project,
38190		"httpHealthCheck": c.httpHealthCheck,
38191	})
38192	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38193}
38194
38195// Do executes the "compute.httpHealthChecks.update" call.
38196// Exactly one of *Operation or error will be non-nil. Any non-2xx
38197// status code is an error. Response headers are in either
38198// *Operation.ServerResponse.Header or (if a response was returned at
38199// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
38200// to check whether the returned error was because
38201// http.StatusNotModified was returned.
38202func (c *HttpHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
38203	gensupport.SetOptions(c.urlParams_, opts...)
38204	res, err := c.doRequest("json")
38205	if res != nil && res.StatusCode == http.StatusNotModified {
38206		if res.Body != nil {
38207			res.Body.Close()
38208		}
38209		return nil, &googleapi.Error{
38210			Code:   res.StatusCode,
38211			Header: res.Header,
38212		}
38213	}
38214	if err != nil {
38215		return nil, err
38216	}
38217	defer googleapi.CloseBody(res)
38218	if err := googleapi.CheckResponse(res); err != nil {
38219		return nil, err
38220	}
38221	ret := &Operation{
38222		ServerResponse: googleapi.ServerResponse{
38223			Header:         res.Header,
38224			HTTPStatusCode: res.StatusCode,
38225		},
38226	}
38227	target := &ret
38228	if err := gensupport.DecodeResponse(target, res); err != nil {
38229		return nil, err
38230	}
38231	return ret, nil
38232	// {
38233	//   "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request.",
38234	//   "httpMethod": "PUT",
38235	//   "id": "compute.httpHealthChecks.update",
38236	//   "parameterOrder": [
38237	//     "project",
38238	//     "httpHealthCheck"
38239	//   ],
38240	//   "parameters": {
38241	//     "httpHealthCheck": {
38242	//       "description": "Name of the HttpHealthCheck resource to update.",
38243	//       "location": "path",
38244	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
38245	//       "required": true,
38246	//       "type": "string"
38247	//     },
38248	//     "project": {
38249	//       "description": "Project ID for this request.",
38250	//       "location": "path",
38251	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
38252	//       "required": true,
38253	//       "type": "string"
38254	//     },
38255	//     "requestId": {
38256	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
38257	//       "location": "query",
38258	//       "type": "string"
38259	//     }
38260	//   },
38261	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
38262	//   "request": {
38263	//     "$ref": "HttpHealthCheck"
38264	//   },
38265	//   "response": {
38266	//     "$ref": "Operation"
38267	//   },
38268	//   "scopes": [
38269	//     "https://www.googleapis.com/auth/cloud-platform",
38270	//     "https://www.googleapis.com/auth/compute"
38271	//   ]
38272	// }
38273
38274}
38275
38276// method id "compute.httpsHealthChecks.delete":
38277
38278type HttpsHealthChecksDeleteCall struct {
38279	s                *Service
38280	project          string
38281	httpsHealthCheck string
38282	urlParams_       gensupport.URLParams
38283	ctx_             context.Context
38284	header_          http.Header
38285}
38286
38287// Delete: Deletes the specified HttpsHealthCheck resource.
38288func (r *HttpsHealthChecksService) Delete(project string, httpsHealthCheck string) *HttpsHealthChecksDeleteCall {
38289	c := &HttpsHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38290	c.project = project
38291	c.httpsHealthCheck = httpsHealthCheck
38292	return c
38293}
38294
38295// RequestId sets the optional parameter "requestId": An optional
38296// request ID to identify requests. Specify a unique request ID so that
38297// if you must retry your request, the server will know to ignore the
38298// request if it has already been completed.
38299//
38300// For example, consider a situation where you make an initial request
38301// and the request times out. If you make the request again with the
38302// same request ID, the server can check if original operation with the
38303// same request ID was received, and if so, will ignore the second
38304// request. This prevents clients from accidentally creating duplicate
38305// commitments.
38306//
38307// The request ID must be a valid UUID with the exception that zero UUID
38308// is not supported (00000000-0000-0000-0000-000000000000).
38309func (c *HttpsHealthChecksDeleteCall) RequestId(requestId string) *HttpsHealthChecksDeleteCall {
38310	c.urlParams_.Set("requestId", requestId)
38311	return c
38312}
38313
38314// Fields allows partial responses to be retrieved. See
38315// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38316// for more information.
38317func (c *HttpsHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpsHealthChecksDeleteCall {
38318	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38319	return c
38320}
38321
38322// Context sets the context to be used in this call's Do method. Any
38323// pending HTTP request will be aborted if the provided context is
38324// canceled.
38325func (c *HttpsHealthChecksDeleteCall) Context(ctx context.Context) *HttpsHealthChecksDeleteCall {
38326	c.ctx_ = ctx
38327	return c
38328}
38329
38330// Header returns an http.Header that can be modified by the caller to
38331// add HTTP headers to the request.
38332func (c *HttpsHealthChecksDeleteCall) Header() http.Header {
38333	if c.header_ == nil {
38334		c.header_ = make(http.Header)
38335	}
38336	return c.header_
38337}
38338
38339func (c *HttpsHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
38340	reqHeaders := make(http.Header)
38341	for k, v := range c.header_ {
38342		reqHeaders[k] = v
38343	}
38344	reqHeaders.Set("User-Agent", c.s.userAgent())
38345	var body io.Reader = nil
38346	c.urlParams_.Set("alt", alt)
38347	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
38348	urls += "?" + c.urlParams_.Encode()
38349	req, _ := http.NewRequest("DELETE", urls, body)
38350	req.Header = reqHeaders
38351	googleapi.Expand(req.URL, map[string]string{
38352		"project":          c.project,
38353		"httpsHealthCheck": c.httpsHealthCheck,
38354	})
38355	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38356}
38357
38358// Do executes the "compute.httpsHealthChecks.delete" call.
38359// Exactly one of *Operation or error will be non-nil. Any non-2xx
38360// status code is an error. Response headers are in either
38361// *Operation.ServerResponse.Header or (if a response was returned at
38362// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
38363// to check whether the returned error was because
38364// http.StatusNotModified was returned.
38365func (c *HttpsHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
38366	gensupport.SetOptions(c.urlParams_, opts...)
38367	res, err := c.doRequest("json")
38368	if res != nil && res.StatusCode == http.StatusNotModified {
38369		if res.Body != nil {
38370			res.Body.Close()
38371		}
38372		return nil, &googleapi.Error{
38373			Code:   res.StatusCode,
38374			Header: res.Header,
38375		}
38376	}
38377	if err != nil {
38378		return nil, err
38379	}
38380	defer googleapi.CloseBody(res)
38381	if err := googleapi.CheckResponse(res); err != nil {
38382		return nil, err
38383	}
38384	ret := &Operation{
38385		ServerResponse: googleapi.ServerResponse{
38386			Header:         res.Header,
38387			HTTPStatusCode: res.StatusCode,
38388		},
38389	}
38390	target := &ret
38391	if err := gensupport.DecodeResponse(target, res); err != nil {
38392		return nil, err
38393	}
38394	return ret, nil
38395	// {
38396	//   "description": "Deletes the specified HttpsHealthCheck resource.",
38397	//   "httpMethod": "DELETE",
38398	//   "id": "compute.httpsHealthChecks.delete",
38399	//   "parameterOrder": [
38400	//     "project",
38401	//     "httpsHealthCheck"
38402	//   ],
38403	//   "parameters": {
38404	//     "httpsHealthCheck": {
38405	//       "description": "Name of the HttpsHealthCheck resource to delete.",
38406	//       "location": "path",
38407	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
38408	//       "required": true,
38409	//       "type": "string"
38410	//     },
38411	//     "project": {
38412	//       "description": "Project ID for this request.",
38413	//       "location": "path",
38414	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
38415	//       "required": true,
38416	//       "type": "string"
38417	//     },
38418	//     "requestId": {
38419	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
38420	//       "location": "query",
38421	//       "type": "string"
38422	//     }
38423	//   },
38424	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
38425	//   "response": {
38426	//     "$ref": "Operation"
38427	//   },
38428	//   "scopes": [
38429	//     "https://www.googleapis.com/auth/cloud-platform",
38430	//     "https://www.googleapis.com/auth/compute"
38431	//   ]
38432	// }
38433
38434}
38435
38436// method id "compute.httpsHealthChecks.get":
38437
38438type HttpsHealthChecksGetCall struct {
38439	s                *Service
38440	project          string
38441	httpsHealthCheck string
38442	urlParams_       gensupport.URLParams
38443	ifNoneMatch_     string
38444	ctx_             context.Context
38445	header_          http.Header
38446}
38447
38448// Get: Returns the specified HttpsHealthCheck resource. Get a list of
38449// available HTTPS health checks by making a list() request.
38450func (r *HttpsHealthChecksService) Get(project string, httpsHealthCheck string) *HttpsHealthChecksGetCall {
38451	c := &HttpsHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38452	c.project = project
38453	c.httpsHealthCheck = httpsHealthCheck
38454	return c
38455}
38456
38457// Fields allows partial responses to be retrieved. See
38458// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38459// for more information.
38460func (c *HttpsHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpsHealthChecksGetCall {
38461	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38462	return c
38463}
38464
38465// IfNoneMatch sets the optional parameter which makes the operation
38466// fail if the object's ETag matches the given value. This is useful for
38467// getting updates only after the object has changed since the last
38468// request. Use googleapi.IsNotModified to check whether the response
38469// error from Do is the result of In-None-Match.
38470func (c *HttpsHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpsHealthChecksGetCall {
38471	c.ifNoneMatch_ = entityTag
38472	return c
38473}
38474
38475// Context sets the context to be used in this call's Do method. Any
38476// pending HTTP request will be aborted if the provided context is
38477// canceled.
38478func (c *HttpsHealthChecksGetCall) Context(ctx context.Context) *HttpsHealthChecksGetCall {
38479	c.ctx_ = ctx
38480	return c
38481}
38482
38483// Header returns an http.Header that can be modified by the caller to
38484// add HTTP headers to the request.
38485func (c *HttpsHealthChecksGetCall) Header() http.Header {
38486	if c.header_ == nil {
38487		c.header_ = make(http.Header)
38488	}
38489	return c.header_
38490}
38491
38492func (c *HttpsHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
38493	reqHeaders := make(http.Header)
38494	for k, v := range c.header_ {
38495		reqHeaders[k] = v
38496	}
38497	reqHeaders.Set("User-Agent", c.s.userAgent())
38498	if c.ifNoneMatch_ != "" {
38499		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
38500	}
38501	var body io.Reader = nil
38502	c.urlParams_.Set("alt", alt)
38503	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
38504	urls += "?" + c.urlParams_.Encode()
38505	req, _ := http.NewRequest("GET", urls, body)
38506	req.Header = reqHeaders
38507	googleapi.Expand(req.URL, map[string]string{
38508		"project":          c.project,
38509		"httpsHealthCheck": c.httpsHealthCheck,
38510	})
38511	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38512}
38513
38514// Do executes the "compute.httpsHealthChecks.get" call.
38515// Exactly one of *HttpsHealthCheck or error will be non-nil. Any
38516// non-2xx status code is an error. Response headers are in either
38517// *HttpsHealthCheck.ServerResponse.Header or (if a response was
38518// returned at all) in error.(*googleapi.Error).Header. Use
38519// googleapi.IsNotModified to check whether the returned error was
38520// because http.StatusNotModified was returned.
38521func (c *HttpsHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheck, error) {
38522	gensupport.SetOptions(c.urlParams_, opts...)
38523	res, err := c.doRequest("json")
38524	if res != nil && res.StatusCode == http.StatusNotModified {
38525		if res.Body != nil {
38526			res.Body.Close()
38527		}
38528		return nil, &googleapi.Error{
38529			Code:   res.StatusCode,
38530			Header: res.Header,
38531		}
38532	}
38533	if err != nil {
38534		return nil, err
38535	}
38536	defer googleapi.CloseBody(res)
38537	if err := googleapi.CheckResponse(res); err != nil {
38538		return nil, err
38539	}
38540	ret := &HttpsHealthCheck{
38541		ServerResponse: googleapi.ServerResponse{
38542			Header:         res.Header,
38543			HTTPStatusCode: res.StatusCode,
38544		},
38545	}
38546	target := &ret
38547	if err := gensupport.DecodeResponse(target, res); err != nil {
38548		return nil, err
38549	}
38550	return ret, nil
38551	// {
38552	//   "description": "Returns the specified HttpsHealthCheck resource. Get a list of available HTTPS health checks by making a list() request.",
38553	//   "httpMethod": "GET",
38554	//   "id": "compute.httpsHealthChecks.get",
38555	//   "parameterOrder": [
38556	//     "project",
38557	//     "httpsHealthCheck"
38558	//   ],
38559	//   "parameters": {
38560	//     "httpsHealthCheck": {
38561	//       "description": "Name of the HttpsHealthCheck resource to return.",
38562	//       "location": "path",
38563	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
38564	//       "required": true,
38565	//       "type": "string"
38566	//     },
38567	//     "project": {
38568	//       "description": "Project ID for this request.",
38569	//       "location": "path",
38570	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
38571	//       "required": true,
38572	//       "type": "string"
38573	//     }
38574	//   },
38575	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
38576	//   "response": {
38577	//     "$ref": "HttpsHealthCheck"
38578	//   },
38579	//   "scopes": [
38580	//     "https://www.googleapis.com/auth/cloud-platform",
38581	//     "https://www.googleapis.com/auth/compute",
38582	//     "https://www.googleapis.com/auth/compute.readonly"
38583	//   ]
38584	// }
38585
38586}
38587
38588// method id "compute.httpsHealthChecks.insert":
38589
38590type HttpsHealthChecksInsertCall struct {
38591	s                *Service
38592	project          string
38593	httpshealthcheck *HttpsHealthCheck
38594	urlParams_       gensupport.URLParams
38595	ctx_             context.Context
38596	header_          http.Header
38597}
38598
38599// Insert: Creates a HttpsHealthCheck resource in the specified project
38600// using the data included in the request.
38601func (r *HttpsHealthChecksService) Insert(project string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksInsertCall {
38602	c := &HttpsHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38603	c.project = project
38604	c.httpshealthcheck = httpshealthcheck
38605	return c
38606}
38607
38608// RequestId sets the optional parameter "requestId": An optional
38609// request ID to identify requests. Specify a unique request ID so that
38610// if you must retry your request, the server will know to ignore the
38611// request if it has already been completed.
38612//
38613// For example, consider a situation where you make an initial request
38614// and the request times out. If you make the request again with the
38615// same request ID, the server can check if original operation with the
38616// same request ID was received, and if so, will ignore the second
38617// request. This prevents clients from accidentally creating duplicate
38618// commitments.
38619//
38620// The request ID must be a valid UUID with the exception that zero UUID
38621// is not supported (00000000-0000-0000-0000-000000000000).
38622func (c *HttpsHealthChecksInsertCall) RequestId(requestId string) *HttpsHealthChecksInsertCall {
38623	c.urlParams_.Set("requestId", requestId)
38624	return c
38625}
38626
38627// Fields allows partial responses to be retrieved. See
38628// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38629// for more information.
38630func (c *HttpsHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpsHealthChecksInsertCall {
38631	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38632	return c
38633}
38634
38635// Context sets the context to be used in this call's Do method. Any
38636// pending HTTP request will be aborted if the provided context is
38637// canceled.
38638func (c *HttpsHealthChecksInsertCall) Context(ctx context.Context) *HttpsHealthChecksInsertCall {
38639	c.ctx_ = ctx
38640	return c
38641}
38642
38643// Header returns an http.Header that can be modified by the caller to
38644// add HTTP headers to the request.
38645func (c *HttpsHealthChecksInsertCall) Header() http.Header {
38646	if c.header_ == nil {
38647		c.header_ = make(http.Header)
38648	}
38649	return c.header_
38650}
38651
38652func (c *HttpsHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
38653	reqHeaders := make(http.Header)
38654	for k, v := range c.header_ {
38655		reqHeaders[k] = v
38656	}
38657	reqHeaders.Set("User-Agent", c.s.userAgent())
38658	var body io.Reader = nil
38659	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
38660	if err != nil {
38661		return nil, err
38662	}
38663	reqHeaders.Set("Content-Type", "application/json")
38664	c.urlParams_.Set("alt", alt)
38665	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks")
38666	urls += "?" + c.urlParams_.Encode()
38667	req, _ := http.NewRequest("POST", urls, body)
38668	req.Header = reqHeaders
38669	googleapi.Expand(req.URL, map[string]string{
38670		"project": c.project,
38671	})
38672	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38673}
38674
38675// Do executes the "compute.httpsHealthChecks.insert" call.
38676// Exactly one of *Operation or error will be non-nil. Any non-2xx
38677// status code is an error. Response headers are in either
38678// *Operation.ServerResponse.Header or (if a response was returned at
38679// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
38680// to check whether the returned error was because
38681// http.StatusNotModified was returned.
38682func (c *HttpsHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
38683	gensupport.SetOptions(c.urlParams_, opts...)
38684	res, err := c.doRequest("json")
38685	if res != nil && res.StatusCode == http.StatusNotModified {
38686		if res.Body != nil {
38687			res.Body.Close()
38688		}
38689		return nil, &googleapi.Error{
38690			Code:   res.StatusCode,
38691			Header: res.Header,
38692		}
38693	}
38694	if err != nil {
38695		return nil, err
38696	}
38697	defer googleapi.CloseBody(res)
38698	if err := googleapi.CheckResponse(res); err != nil {
38699		return nil, err
38700	}
38701	ret := &Operation{
38702		ServerResponse: googleapi.ServerResponse{
38703			Header:         res.Header,
38704			HTTPStatusCode: res.StatusCode,
38705		},
38706	}
38707	target := &ret
38708	if err := gensupport.DecodeResponse(target, res); err != nil {
38709		return nil, err
38710	}
38711	return ret, nil
38712	// {
38713	//   "description": "Creates a HttpsHealthCheck resource in the specified project using the data included in the request.",
38714	//   "httpMethod": "POST",
38715	//   "id": "compute.httpsHealthChecks.insert",
38716	//   "parameterOrder": [
38717	//     "project"
38718	//   ],
38719	//   "parameters": {
38720	//     "project": {
38721	//       "description": "Project ID for this request.",
38722	//       "location": "path",
38723	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
38724	//       "required": true,
38725	//       "type": "string"
38726	//     },
38727	//     "requestId": {
38728	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
38729	//       "location": "query",
38730	//       "type": "string"
38731	//     }
38732	//   },
38733	//   "path": "{project}/global/httpsHealthChecks",
38734	//   "request": {
38735	//     "$ref": "HttpsHealthCheck"
38736	//   },
38737	//   "response": {
38738	//     "$ref": "Operation"
38739	//   },
38740	//   "scopes": [
38741	//     "https://www.googleapis.com/auth/cloud-platform",
38742	//     "https://www.googleapis.com/auth/compute"
38743	//   ]
38744	// }
38745
38746}
38747
38748// method id "compute.httpsHealthChecks.list":
38749
38750type HttpsHealthChecksListCall struct {
38751	s            *Service
38752	project      string
38753	urlParams_   gensupport.URLParams
38754	ifNoneMatch_ string
38755	ctx_         context.Context
38756	header_      http.Header
38757}
38758
38759// List: Retrieves the list of HttpsHealthCheck resources available to
38760// the specified project.
38761func (r *HttpsHealthChecksService) List(project string) *HttpsHealthChecksListCall {
38762	c := &HttpsHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
38763	c.project = project
38764	return c
38765}
38766
38767// Filter sets the optional parameter "filter": Sets a filter
38768// {expression} for filtering listed resources. Your {expression} must
38769// be in the format: field_name comparison_string literal_string.
38770//
38771// The field_name is the name of the field you want to compare. Only
38772// atomic field types are supported (string, number, boolean). The
38773// comparison_string must be either eq (equals) or ne (not equals). The
38774// literal_string is the string value to filter to. The literal value
38775// must be valid for the type of field you are filtering by (string,
38776// number, boolean). For string fields, the literal value is interpreted
38777// as a regular expression using RE2 syntax. The literal value must
38778// match the entire field.
38779//
38780// For example, to filter for instances that do not have a name of
38781// example-instance, you would use name ne example-instance.
38782//
38783// You can filter on nested fields. For example, you could filter on
38784// instances that have set the scheduling.automaticRestart field to
38785// true. Use filtering on nested fields to take advantage of labels to
38786// organize and search for results based on label values.
38787//
38788// To filter on multiple expressions, provide each separate expression
38789// within parentheses. For example, (scheduling.automaticRestart eq
38790// true) (zone eq us-central1-f). Multiple expressions are treated as
38791// AND expressions, meaning that resources must match all expressions to
38792// pass the filters.
38793func (c *HttpsHealthChecksListCall) Filter(filter string) *HttpsHealthChecksListCall {
38794	c.urlParams_.Set("filter", filter)
38795	return c
38796}
38797
38798// MaxResults sets the optional parameter "maxResults": The maximum
38799// number of results per page that should be returned. If the number of
38800// available results is larger than maxResults, Compute Engine returns a
38801// nextPageToken that can be used to get the next page of results in
38802// subsequent list requests. Acceptable values are 0 to 500, inclusive.
38803// (Default: 500)
38804func (c *HttpsHealthChecksListCall) MaxResults(maxResults int64) *HttpsHealthChecksListCall {
38805	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
38806	return c
38807}
38808
38809// OrderBy sets the optional parameter "orderBy": Sorts list results by
38810// a certain order. By default, results are returned in alphanumerical
38811// order based on the resource name.
38812//
38813// You can also sort results in descending order based on the creation
38814// timestamp using orderBy="creationTimestamp desc". This sorts results
38815// based on the creationTimestamp field in reverse chronological order
38816// (newest result first). Use this to sort resources like operations so
38817// that the newest operation is returned first.
38818//
38819// Currently, only sorting by name or creationTimestamp desc is
38820// supported.
38821func (c *HttpsHealthChecksListCall) OrderBy(orderBy string) *HttpsHealthChecksListCall {
38822	c.urlParams_.Set("orderBy", orderBy)
38823	return c
38824}
38825
38826// PageToken sets the optional parameter "pageToken": Specifies a page
38827// token to use. Set pageToken to the nextPageToken returned by a
38828// previous list request to get the next page of results.
38829func (c *HttpsHealthChecksListCall) PageToken(pageToken string) *HttpsHealthChecksListCall {
38830	c.urlParams_.Set("pageToken", pageToken)
38831	return c
38832}
38833
38834// Fields allows partial responses to be retrieved. See
38835// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
38836// for more information.
38837func (c *HttpsHealthChecksListCall) Fields(s ...googleapi.Field) *HttpsHealthChecksListCall {
38838	c.urlParams_.Set("fields", googleapi.CombineFields(s))
38839	return c
38840}
38841
38842// IfNoneMatch sets the optional parameter which makes the operation
38843// fail if the object's ETag matches the given value. This is useful for
38844// getting updates only after the object has changed since the last
38845// request. Use googleapi.IsNotModified to check whether the response
38846// error from Do is the result of In-None-Match.
38847func (c *HttpsHealthChecksListCall) IfNoneMatch(entityTag string) *HttpsHealthChecksListCall {
38848	c.ifNoneMatch_ = entityTag
38849	return c
38850}
38851
38852// Context sets the context to be used in this call's Do method. Any
38853// pending HTTP request will be aborted if the provided context is
38854// canceled.
38855func (c *HttpsHealthChecksListCall) Context(ctx context.Context) *HttpsHealthChecksListCall {
38856	c.ctx_ = ctx
38857	return c
38858}
38859
38860// Header returns an http.Header that can be modified by the caller to
38861// add HTTP headers to the request.
38862func (c *HttpsHealthChecksListCall) Header() http.Header {
38863	if c.header_ == nil {
38864		c.header_ = make(http.Header)
38865	}
38866	return c.header_
38867}
38868
38869func (c *HttpsHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
38870	reqHeaders := make(http.Header)
38871	for k, v := range c.header_ {
38872		reqHeaders[k] = v
38873	}
38874	reqHeaders.Set("User-Agent", c.s.userAgent())
38875	if c.ifNoneMatch_ != "" {
38876		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
38877	}
38878	var body io.Reader = nil
38879	c.urlParams_.Set("alt", alt)
38880	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks")
38881	urls += "?" + c.urlParams_.Encode()
38882	req, _ := http.NewRequest("GET", urls, body)
38883	req.Header = reqHeaders
38884	googleapi.Expand(req.URL, map[string]string{
38885		"project": c.project,
38886	})
38887	return gensupport.SendRequest(c.ctx_, c.s.client, req)
38888}
38889
38890// Do executes the "compute.httpsHealthChecks.list" call.
38891// Exactly one of *HttpsHealthCheckList or error will be non-nil. Any
38892// non-2xx status code is an error. Response headers are in either
38893// *HttpsHealthCheckList.ServerResponse.Header or (if a response was
38894// returned at all) in error.(*googleapi.Error).Header. Use
38895// googleapi.IsNotModified to check whether the returned error was
38896// because http.StatusNotModified was returned.
38897func (c *HttpsHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheckList, error) {
38898	gensupport.SetOptions(c.urlParams_, opts...)
38899	res, err := c.doRequest("json")
38900	if res != nil && res.StatusCode == http.StatusNotModified {
38901		if res.Body != nil {
38902			res.Body.Close()
38903		}
38904		return nil, &googleapi.Error{
38905			Code:   res.StatusCode,
38906			Header: res.Header,
38907		}
38908	}
38909	if err != nil {
38910		return nil, err
38911	}
38912	defer googleapi.CloseBody(res)
38913	if err := googleapi.CheckResponse(res); err != nil {
38914		return nil, err
38915	}
38916	ret := &HttpsHealthCheckList{
38917		ServerResponse: googleapi.ServerResponse{
38918			Header:         res.Header,
38919			HTTPStatusCode: res.StatusCode,
38920		},
38921	}
38922	target := &ret
38923	if err := gensupport.DecodeResponse(target, res); err != nil {
38924		return nil, err
38925	}
38926	return ret, nil
38927	// {
38928	//   "description": "Retrieves the list of HttpsHealthCheck resources available to the specified project.",
38929	//   "httpMethod": "GET",
38930	//   "id": "compute.httpsHealthChecks.list",
38931	//   "parameterOrder": [
38932	//     "project"
38933	//   ],
38934	//   "parameters": {
38935	//     "filter": {
38936	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
38937	//       "location": "query",
38938	//       "type": "string"
38939	//     },
38940	//     "maxResults": {
38941	//       "default": "500",
38942	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
38943	//       "format": "uint32",
38944	//       "location": "query",
38945	//       "minimum": "0",
38946	//       "type": "integer"
38947	//     },
38948	//     "orderBy": {
38949	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
38950	//       "location": "query",
38951	//       "type": "string"
38952	//     },
38953	//     "pageToken": {
38954	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
38955	//       "location": "query",
38956	//       "type": "string"
38957	//     },
38958	//     "project": {
38959	//       "description": "Project ID for this request.",
38960	//       "location": "path",
38961	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
38962	//       "required": true,
38963	//       "type": "string"
38964	//     }
38965	//   },
38966	//   "path": "{project}/global/httpsHealthChecks",
38967	//   "response": {
38968	//     "$ref": "HttpsHealthCheckList"
38969	//   },
38970	//   "scopes": [
38971	//     "https://www.googleapis.com/auth/cloud-platform",
38972	//     "https://www.googleapis.com/auth/compute",
38973	//     "https://www.googleapis.com/auth/compute.readonly"
38974	//   ]
38975	// }
38976
38977}
38978
38979// Pages invokes f for each page of results.
38980// A non-nil error returned from f will halt the iteration.
38981// The provided context supersedes any context provided to the Context method.
38982func (c *HttpsHealthChecksListCall) Pages(ctx context.Context, f func(*HttpsHealthCheckList) error) error {
38983	c.ctx_ = ctx
38984	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
38985	for {
38986		x, err := c.Do()
38987		if err != nil {
38988			return err
38989		}
38990		if err := f(x); err != nil {
38991			return err
38992		}
38993		if x.NextPageToken == "" {
38994			return nil
38995		}
38996		c.PageToken(x.NextPageToken)
38997	}
38998}
38999
39000// method id "compute.httpsHealthChecks.patch":
39001
39002type HttpsHealthChecksPatchCall struct {
39003	s                *Service
39004	project          string
39005	httpsHealthCheck string
39006	httpshealthcheck *HttpsHealthCheck
39007	urlParams_       gensupport.URLParams
39008	ctx_             context.Context
39009	header_          http.Header
39010}
39011
39012// Patch: Updates a HttpsHealthCheck resource in the specified project
39013// using the data included in the request. This method supports PATCH
39014// semantics and uses the JSON merge patch format and processing rules.
39015func (r *HttpsHealthChecksService) Patch(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksPatchCall {
39016	c := &HttpsHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39017	c.project = project
39018	c.httpsHealthCheck = httpsHealthCheck
39019	c.httpshealthcheck = httpshealthcheck
39020	return c
39021}
39022
39023// RequestId sets the optional parameter "requestId": An optional
39024// request ID to identify requests. Specify a unique request ID so that
39025// if you must retry your request, the server will know to ignore the
39026// request if it has already been completed.
39027//
39028// For example, consider a situation where you make an initial request
39029// and the request times out. If you make the request again with the
39030// same request ID, the server can check if original operation with the
39031// same request ID was received, and if so, will ignore the second
39032// request. This prevents clients from accidentally creating duplicate
39033// commitments.
39034//
39035// The request ID must be a valid UUID with the exception that zero UUID
39036// is not supported (00000000-0000-0000-0000-000000000000).
39037func (c *HttpsHealthChecksPatchCall) RequestId(requestId string) *HttpsHealthChecksPatchCall {
39038	c.urlParams_.Set("requestId", requestId)
39039	return c
39040}
39041
39042// Fields allows partial responses to be retrieved. See
39043// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39044// for more information.
39045func (c *HttpsHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpsHealthChecksPatchCall {
39046	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39047	return c
39048}
39049
39050// Context sets the context to be used in this call's Do method. Any
39051// pending HTTP request will be aborted if the provided context is
39052// canceled.
39053func (c *HttpsHealthChecksPatchCall) Context(ctx context.Context) *HttpsHealthChecksPatchCall {
39054	c.ctx_ = ctx
39055	return c
39056}
39057
39058// Header returns an http.Header that can be modified by the caller to
39059// add HTTP headers to the request.
39060func (c *HttpsHealthChecksPatchCall) Header() http.Header {
39061	if c.header_ == nil {
39062		c.header_ = make(http.Header)
39063	}
39064	return c.header_
39065}
39066
39067func (c *HttpsHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
39068	reqHeaders := make(http.Header)
39069	for k, v := range c.header_ {
39070		reqHeaders[k] = v
39071	}
39072	reqHeaders.Set("User-Agent", c.s.userAgent())
39073	var body io.Reader = nil
39074	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
39075	if err != nil {
39076		return nil, err
39077	}
39078	reqHeaders.Set("Content-Type", "application/json")
39079	c.urlParams_.Set("alt", alt)
39080	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
39081	urls += "?" + c.urlParams_.Encode()
39082	req, _ := http.NewRequest("PATCH", urls, body)
39083	req.Header = reqHeaders
39084	googleapi.Expand(req.URL, map[string]string{
39085		"project":          c.project,
39086		"httpsHealthCheck": c.httpsHealthCheck,
39087	})
39088	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39089}
39090
39091// Do executes the "compute.httpsHealthChecks.patch" call.
39092// Exactly one of *Operation or error will be non-nil. Any non-2xx
39093// status code is an error. Response headers are in either
39094// *Operation.ServerResponse.Header or (if a response was returned at
39095// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
39096// to check whether the returned error was because
39097// http.StatusNotModified was returned.
39098func (c *HttpsHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
39099	gensupport.SetOptions(c.urlParams_, opts...)
39100	res, err := c.doRequest("json")
39101	if res != nil && res.StatusCode == http.StatusNotModified {
39102		if res.Body != nil {
39103			res.Body.Close()
39104		}
39105		return nil, &googleapi.Error{
39106			Code:   res.StatusCode,
39107			Header: res.Header,
39108		}
39109	}
39110	if err != nil {
39111		return nil, err
39112	}
39113	defer googleapi.CloseBody(res)
39114	if err := googleapi.CheckResponse(res); err != nil {
39115		return nil, err
39116	}
39117	ret := &Operation{
39118		ServerResponse: googleapi.ServerResponse{
39119			Header:         res.Header,
39120			HTTPStatusCode: res.StatusCode,
39121		},
39122	}
39123	target := &ret
39124	if err := gensupport.DecodeResponse(target, res); err != nil {
39125		return nil, err
39126	}
39127	return ret, nil
39128	// {
39129	//   "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.",
39130	//   "httpMethod": "PATCH",
39131	//   "id": "compute.httpsHealthChecks.patch",
39132	//   "parameterOrder": [
39133	//     "project",
39134	//     "httpsHealthCheck"
39135	//   ],
39136	//   "parameters": {
39137	//     "httpsHealthCheck": {
39138	//       "description": "Name of the HttpsHealthCheck resource to patch.",
39139	//       "location": "path",
39140	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
39141	//       "required": true,
39142	//       "type": "string"
39143	//     },
39144	//     "project": {
39145	//       "description": "Project ID for this request.",
39146	//       "location": "path",
39147	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
39148	//       "required": true,
39149	//       "type": "string"
39150	//     },
39151	//     "requestId": {
39152	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
39153	//       "location": "query",
39154	//       "type": "string"
39155	//     }
39156	//   },
39157	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
39158	//   "request": {
39159	//     "$ref": "HttpsHealthCheck"
39160	//   },
39161	//   "response": {
39162	//     "$ref": "Operation"
39163	//   },
39164	//   "scopes": [
39165	//     "https://www.googleapis.com/auth/cloud-platform",
39166	//     "https://www.googleapis.com/auth/compute"
39167	//   ]
39168	// }
39169
39170}
39171
39172// method id "compute.httpsHealthChecks.update":
39173
39174type HttpsHealthChecksUpdateCall struct {
39175	s                *Service
39176	project          string
39177	httpsHealthCheck string
39178	httpshealthcheck *HttpsHealthCheck
39179	urlParams_       gensupport.URLParams
39180	ctx_             context.Context
39181	header_          http.Header
39182}
39183
39184// Update: Updates a HttpsHealthCheck resource in the specified project
39185// using the data included in the request.
39186func (r *HttpsHealthChecksService) Update(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksUpdateCall {
39187	c := &HttpsHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39188	c.project = project
39189	c.httpsHealthCheck = httpsHealthCheck
39190	c.httpshealthcheck = httpshealthcheck
39191	return c
39192}
39193
39194// RequestId sets the optional parameter "requestId": An optional
39195// request ID to identify requests. Specify a unique request ID so that
39196// if you must retry your request, the server will know to ignore the
39197// request if it has already been completed.
39198//
39199// For example, consider a situation where you make an initial request
39200// and the request times out. If you make the request again with the
39201// same request ID, the server can check if original operation with the
39202// same request ID was received, and if so, will ignore the second
39203// request. This prevents clients from accidentally creating duplicate
39204// commitments.
39205//
39206// The request ID must be a valid UUID with the exception that zero UUID
39207// is not supported (00000000-0000-0000-0000-000000000000).
39208func (c *HttpsHealthChecksUpdateCall) RequestId(requestId string) *HttpsHealthChecksUpdateCall {
39209	c.urlParams_.Set("requestId", requestId)
39210	return c
39211}
39212
39213// Fields allows partial responses to be retrieved. See
39214// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39215// for more information.
39216func (c *HttpsHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpsHealthChecksUpdateCall {
39217	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39218	return c
39219}
39220
39221// Context sets the context to be used in this call's Do method. Any
39222// pending HTTP request will be aborted if the provided context is
39223// canceled.
39224func (c *HttpsHealthChecksUpdateCall) Context(ctx context.Context) *HttpsHealthChecksUpdateCall {
39225	c.ctx_ = ctx
39226	return c
39227}
39228
39229// Header returns an http.Header that can be modified by the caller to
39230// add HTTP headers to the request.
39231func (c *HttpsHealthChecksUpdateCall) Header() http.Header {
39232	if c.header_ == nil {
39233		c.header_ = make(http.Header)
39234	}
39235	return c.header_
39236}
39237
39238func (c *HttpsHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
39239	reqHeaders := make(http.Header)
39240	for k, v := range c.header_ {
39241		reqHeaders[k] = v
39242	}
39243	reqHeaders.Set("User-Agent", c.s.userAgent())
39244	var body io.Reader = nil
39245	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
39246	if err != nil {
39247		return nil, err
39248	}
39249	reqHeaders.Set("Content-Type", "application/json")
39250	c.urlParams_.Set("alt", alt)
39251	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
39252	urls += "?" + c.urlParams_.Encode()
39253	req, _ := http.NewRequest("PUT", urls, body)
39254	req.Header = reqHeaders
39255	googleapi.Expand(req.URL, map[string]string{
39256		"project":          c.project,
39257		"httpsHealthCheck": c.httpsHealthCheck,
39258	})
39259	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39260}
39261
39262// Do executes the "compute.httpsHealthChecks.update" call.
39263// Exactly one of *Operation or error will be non-nil. Any non-2xx
39264// status code is an error. Response headers are in either
39265// *Operation.ServerResponse.Header or (if a response was returned at
39266// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
39267// to check whether the returned error was because
39268// http.StatusNotModified was returned.
39269func (c *HttpsHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
39270	gensupport.SetOptions(c.urlParams_, opts...)
39271	res, err := c.doRequest("json")
39272	if res != nil && res.StatusCode == http.StatusNotModified {
39273		if res.Body != nil {
39274			res.Body.Close()
39275		}
39276		return nil, &googleapi.Error{
39277			Code:   res.StatusCode,
39278			Header: res.Header,
39279		}
39280	}
39281	if err != nil {
39282		return nil, err
39283	}
39284	defer googleapi.CloseBody(res)
39285	if err := googleapi.CheckResponse(res); err != nil {
39286		return nil, err
39287	}
39288	ret := &Operation{
39289		ServerResponse: googleapi.ServerResponse{
39290			Header:         res.Header,
39291			HTTPStatusCode: res.StatusCode,
39292		},
39293	}
39294	target := &ret
39295	if err := gensupport.DecodeResponse(target, res); err != nil {
39296		return nil, err
39297	}
39298	return ret, nil
39299	// {
39300	//   "description": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request.",
39301	//   "httpMethod": "PUT",
39302	//   "id": "compute.httpsHealthChecks.update",
39303	//   "parameterOrder": [
39304	//     "project",
39305	//     "httpsHealthCheck"
39306	//   ],
39307	//   "parameters": {
39308	//     "httpsHealthCheck": {
39309	//       "description": "Name of the HttpsHealthCheck resource to update.",
39310	//       "location": "path",
39311	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
39312	//       "required": true,
39313	//       "type": "string"
39314	//     },
39315	//     "project": {
39316	//       "description": "Project ID for this request.",
39317	//       "location": "path",
39318	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
39319	//       "required": true,
39320	//       "type": "string"
39321	//     },
39322	//     "requestId": {
39323	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
39324	//       "location": "query",
39325	//       "type": "string"
39326	//     }
39327	//   },
39328	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
39329	//   "request": {
39330	//     "$ref": "HttpsHealthCheck"
39331	//   },
39332	//   "response": {
39333	//     "$ref": "Operation"
39334	//   },
39335	//   "scopes": [
39336	//     "https://www.googleapis.com/auth/cloud-platform",
39337	//     "https://www.googleapis.com/auth/compute"
39338	//   ]
39339	// }
39340
39341}
39342
39343// method id "compute.images.delete":
39344
39345type ImagesDeleteCall struct {
39346	s          *Service
39347	project    string
39348	image      string
39349	urlParams_ gensupport.URLParams
39350	ctx_       context.Context
39351	header_    http.Header
39352}
39353
39354// Delete: Deletes the specified image.
39355// For details, see https://cloud.google.com/compute/docs/reference/latest/images/delete
39356func (r *ImagesService) Delete(project string, image string) *ImagesDeleteCall {
39357	c := &ImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39358	c.project = project
39359	c.image = image
39360	return c
39361}
39362
39363// RequestId sets the optional parameter "requestId": An optional
39364// request ID to identify requests. Specify a unique request ID so that
39365// if you must retry your request, the server will know to ignore the
39366// request if it has already been completed.
39367//
39368// For example, consider a situation where you make an initial request
39369// and the request times out. If you make the request again with the
39370// same request ID, the server can check if original operation with the
39371// same request ID was received, and if so, will ignore the second
39372// request. This prevents clients from accidentally creating duplicate
39373// commitments.
39374//
39375// The request ID must be a valid UUID with the exception that zero UUID
39376// is not supported (00000000-0000-0000-0000-000000000000).
39377func (c *ImagesDeleteCall) RequestId(requestId string) *ImagesDeleteCall {
39378	c.urlParams_.Set("requestId", requestId)
39379	return c
39380}
39381
39382// Fields allows partial responses to be retrieved. See
39383// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39384// for more information.
39385func (c *ImagesDeleteCall) Fields(s ...googleapi.Field) *ImagesDeleteCall {
39386	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39387	return c
39388}
39389
39390// Context sets the context to be used in this call's Do method. Any
39391// pending HTTP request will be aborted if the provided context is
39392// canceled.
39393func (c *ImagesDeleteCall) Context(ctx context.Context) *ImagesDeleteCall {
39394	c.ctx_ = ctx
39395	return c
39396}
39397
39398// Header returns an http.Header that can be modified by the caller to
39399// add HTTP headers to the request.
39400func (c *ImagesDeleteCall) Header() http.Header {
39401	if c.header_ == nil {
39402		c.header_ = make(http.Header)
39403	}
39404	return c.header_
39405}
39406
39407func (c *ImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
39408	reqHeaders := make(http.Header)
39409	for k, v := range c.header_ {
39410		reqHeaders[k] = v
39411	}
39412	reqHeaders.Set("User-Agent", c.s.userAgent())
39413	var body io.Reader = nil
39414	c.urlParams_.Set("alt", alt)
39415	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}")
39416	urls += "?" + c.urlParams_.Encode()
39417	req, _ := http.NewRequest("DELETE", urls, body)
39418	req.Header = reqHeaders
39419	googleapi.Expand(req.URL, map[string]string{
39420		"project": c.project,
39421		"image":   c.image,
39422	})
39423	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39424}
39425
39426// Do executes the "compute.images.delete" call.
39427// Exactly one of *Operation or error will be non-nil. Any non-2xx
39428// status code is an error. Response headers are in either
39429// *Operation.ServerResponse.Header or (if a response was returned at
39430// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
39431// to check whether the returned error was because
39432// http.StatusNotModified was returned.
39433func (c *ImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
39434	gensupport.SetOptions(c.urlParams_, opts...)
39435	res, err := c.doRequest("json")
39436	if res != nil && res.StatusCode == http.StatusNotModified {
39437		if res.Body != nil {
39438			res.Body.Close()
39439		}
39440		return nil, &googleapi.Error{
39441			Code:   res.StatusCode,
39442			Header: res.Header,
39443		}
39444	}
39445	if err != nil {
39446		return nil, err
39447	}
39448	defer googleapi.CloseBody(res)
39449	if err := googleapi.CheckResponse(res); err != nil {
39450		return nil, err
39451	}
39452	ret := &Operation{
39453		ServerResponse: googleapi.ServerResponse{
39454			Header:         res.Header,
39455			HTTPStatusCode: res.StatusCode,
39456		},
39457	}
39458	target := &ret
39459	if err := gensupport.DecodeResponse(target, res); err != nil {
39460		return nil, err
39461	}
39462	return ret, nil
39463	// {
39464	//   "description": "Deletes the specified image.",
39465	//   "httpMethod": "DELETE",
39466	//   "id": "compute.images.delete",
39467	//   "parameterOrder": [
39468	//     "project",
39469	//     "image"
39470	//   ],
39471	//   "parameters": {
39472	//     "image": {
39473	//       "description": "Name of the image resource to delete.",
39474	//       "location": "path",
39475	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
39476	//       "required": true,
39477	//       "type": "string"
39478	//     },
39479	//     "project": {
39480	//       "description": "Project ID for this request.",
39481	//       "location": "path",
39482	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
39483	//       "required": true,
39484	//       "type": "string"
39485	//     },
39486	//     "requestId": {
39487	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
39488	//       "location": "query",
39489	//       "type": "string"
39490	//     }
39491	//   },
39492	//   "path": "{project}/global/images/{image}",
39493	//   "response": {
39494	//     "$ref": "Operation"
39495	//   },
39496	//   "scopes": [
39497	//     "https://www.googleapis.com/auth/cloud-platform",
39498	//     "https://www.googleapis.com/auth/compute"
39499	//   ]
39500	// }
39501
39502}
39503
39504// method id "compute.images.deprecate":
39505
39506type ImagesDeprecateCall struct {
39507	s                 *Service
39508	project           string
39509	image             string
39510	deprecationstatus *DeprecationStatus
39511	urlParams_        gensupport.URLParams
39512	ctx_              context.Context
39513	header_           http.Header
39514}
39515
39516// Deprecate: Sets the deprecation status of an image.
39517//
39518// If an empty request body is given, clears the deprecation status
39519// instead.
39520// For details, see https://cloud.google.com/compute/docs/reference/latest/images/deprecate
39521func (r *ImagesService) Deprecate(project string, image string, deprecationstatus *DeprecationStatus) *ImagesDeprecateCall {
39522	c := &ImagesDeprecateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39523	c.project = project
39524	c.image = image
39525	c.deprecationstatus = deprecationstatus
39526	return c
39527}
39528
39529// RequestId sets the optional parameter "requestId": An optional
39530// request ID to identify requests. Specify a unique request ID so that
39531// if you must retry your request, the server will know to ignore the
39532// request if it has already been completed.
39533//
39534// For example, consider a situation where you make an initial request
39535// and the request times out. If you make the request again with the
39536// same request ID, the server can check if original operation with the
39537// same request ID was received, and if so, will ignore the second
39538// request. This prevents clients from accidentally creating duplicate
39539// commitments.
39540//
39541// The request ID must be a valid UUID with the exception that zero UUID
39542// is not supported (00000000-0000-0000-0000-000000000000).
39543func (c *ImagesDeprecateCall) RequestId(requestId string) *ImagesDeprecateCall {
39544	c.urlParams_.Set("requestId", requestId)
39545	return c
39546}
39547
39548// Fields allows partial responses to be retrieved. See
39549// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39550// for more information.
39551func (c *ImagesDeprecateCall) Fields(s ...googleapi.Field) *ImagesDeprecateCall {
39552	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39553	return c
39554}
39555
39556// Context sets the context to be used in this call's Do method. Any
39557// pending HTTP request will be aborted if the provided context is
39558// canceled.
39559func (c *ImagesDeprecateCall) Context(ctx context.Context) *ImagesDeprecateCall {
39560	c.ctx_ = ctx
39561	return c
39562}
39563
39564// Header returns an http.Header that can be modified by the caller to
39565// add HTTP headers to the request.
39566func (c *ImagesDeprecateCall) Header() http.Header {
39567	if c.header_ == nil {
39568		c.header_ = make(http.Header)
39569	}
39570	return c.header_
39571}
39572
39573func (c *ImagesDeprecateCall) doRequest(alt string) (*http.Response, error) {
39574	reqHeaders := make(http.Header)
39575	for k, v := range c.header_ {
39576		reqHeaders[k] = v
39577	}
39578	reqHeaders.Set("User-Agent", c.s.userAgent())
39579	var body io.Reader = nil
39580	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deprecationstatus)
39581	if err != nil {
39582		return nil, err
39583	}
39584	reqHeaders.Set("Content-Type", "application/json")
39585	c.urlParams_.Set("alt", alt)
39586	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}/deprecate")
39587	urls += "?" + c.urlParams_.Encode()
39588	req, _ := http.NewRequest("POST", urls, body)
39589	req.Header = reqHeaders
39590	googleapi.Expand(req.URL, map[string]string{
39591		"project": c.project,
39592		"image":   c.image,
39593	})
39594	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39595}
39596
39597// Do executes the "compute.images.deprecate" call.
39598// Exactly one of *Operation or error will be non-nil. Any non-2xx
39599// status code is an error. Response headers are in either
39600// *Operation.ServerResponse.Header or (if a response was returned at
39601// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
39602// to check whether the returned error was because
39603// http.StatusNotModified was returned.
39604func (c *ImagesDeprecateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
39605	gensupport.SetOptions(c.urlParams_, opts...)
39606	res, err := c.doRequest("json")
39607	if res != nil && res.StatusCode == http.StatusNotModified {
39608		if res.Body != nil {
39609			res.Body.Close()
39610		}
39611		return nil, &googleapi.Error{
39612			Code:   res.StatusCode,
39613			Header: res.Header,
39614		}
39615	}
39616	if err != nil {
39617		return nil, err
39618	}
39619	defer googleapi.CloseBody(res)
39620	if err := googleapi.CheckResponse(res); err != nil {
39621		return nil, err
39622	}
39623	ret := &Operation{
39624		ServerResponse: googleapi.ServerResponse{
39625			Header:         res.Header,
39626			HTTPStatusCode: res.StatusCode,
39627		},
39628	}
39629	target := &ret
39630	if err := gensupport.DecodeResponse(target, res); err != nil {
39631		return nil, err
39632	}
39633	return ret, nil
39634	// {
39635	//   "description": "Sets the deprecation status of an image.\n\nIf an empty request body is given, clears the deprecation status instead.",
39636	//   "httpMethod": "POST",
39637	//   "id": "compute.images.deprecate",
39638	//   "parameterOrder": [
39639	//     "project",
39640	//     "image"
39641	//   ],
39642	//   "parameters": {
39643	//     "image": {
39644	//       "description": "Image name.",
39645	//       "location": "path",
39646	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
39647	//       "required": true,
39648	//       "type": "string"
39649	//     },
39650	//     "project": {
39651	//       "description": "Project ID for this request.",
39652	//       "location": "path",
39653	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
39654	//       "required": true,
39655	//       "type": "string"
39656	//     },
39657	//     "requestId": {
39658	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
39659	//       "location": "query",
39660	//       "type": "string"
39661	//     }
39662	//   },
39663	//   "path": "{project}/global/images/{image}/deprecate",
39664	//   "request": {
39665	//     "$ref": "DeprecationStatus"
39666	//   },
39667	//   "response": {
39668	//     "$ref": "Operation"
39669	//   },
39670	//   "scopes": [
39671	//     "https://www.googleapis.com/auth/cloud-platform",
39672	//     "https://www.googleapis.com/auth/compute"
39673	//   ]
39674	// }
39675
39676}
39677
39678// method id "compute.images.get":
39679
39680type ImagesGetCall struct {
39681	s            *Service
39682	project      string
39683	image        string
39684	urlParams_   gensupport.URLParams
39685	ifNoneMatch_ string
39686	ctx_         context.Context
39687	header_      http.Header
39688}
39689
39690// Get: Returns the specified image. Get a list of available images by
39691// making a list() request.
39692// For details, see https://cloud.google.com/compute/docs/reference/latest/images/get
39693func (r *ImagesService) Get(project string, image string) *ImagesGetCall {
39694	c := &ImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39695	c.project = project
39696	c.image = image
39697	return c
39698}
39699
39700// Fields allows partial responses to be retrieved. See
39701// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39702// for more information.
39703func (c *ImagesGetCall) Fields(s ...googleapi.Field) *ImagesGetCall {
39704	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39705	return c
39706}
39707
39708// IfNoneMatch sets the optional parameter which makes the operation
39709// fail if the object's ETag matches the given value. This is useful for
39710// getting updates only after the object has changed since the last
39711// request. Use googleapi.IsNotModified to check whether the response
39712// error from Do is the result of In-None-Match.
39713func (c *ImagesGetCall) IfNoneMatch(entityTag string) *ImagesGetCall {
39714	c.ifNoneMatch_ = entityTag
39715	return c
39716}
39717
39718// Context sets the context to be used in this call's Do method. Any
39719// pending HTTP request will be aborted if the provided context is
39720// canceled.
39721func (c *ImagesGetCall) Context(ctx context.Context) *ImagesGetCall {
39722	c.ctx_ = ctx
39723	return c
39724}
39725
39726// Header returns an http.Header that can be modified by the caller to
39727// add HTTP headers to the request.
39728func (c *ImagesGetCall) Header() http.Header {
39729	if c.header_ == nil {
39730		c.header_ = make(http.Header)
39731	}
39732	return c.header_
39733}
39734
39735func (c *ImagesGetCall) doRequest(alt string) (*http.Response, error) {
39736	reqHeaders := make(http.Header)
39737	for k, v := range c.header_ {
39738		reqHeaders[k] = v
39739	}
39740	reqHeaders.Set("User-Agent", c.s.userAgent())
39741	if c.ifNoneMatch_ != "" {
39742		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
39743	}
39744	var body io.Reader = nil
39745	c.urlParams_.Set("alt", alt)
39746	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}")
39747	urls += "?" + c.urlParams_.Encode()
39748	req, _ := http.NewRequest("GET", urls, body)
39749	req.Header = reqHeaders
39750	googleapi.Expand(req.URL, map[string]string{
39751		"project": c.project,
39752		"image":   c.image,
39753	})
39754	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39755}
39756
39757// Do executes the "compute.images.get" call.
39758// Exactly one of *Image or error will be non-nil. Any non-2xx status
39759// code is an error. Response headers are in either
39760// *Image.ServerResponse.Header or (if a response was returned at all)
39761// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
39762// check whether the returned error was because http.StatusNotModified
39763// was returned.
39764func (c *ImagesGetCall) Do(opts ...googleapi.CallOption) (*Image, error) {
39765	gensupport.SetOptions(c.urlParams_, opts...)
39766	res, err := c.doRequest("json")
39767	if res != nil && res.StatusCode == http.StatusNotModified {
39768		if res.Body != nil {
39769			res.Body.Close()
39770		}
39771		return nil, &googleapi.Error{
39772			Code:   res.StatusCode,
39773			Header: res.Header,
39774		}
39775	}
39776	if err != nil {
39777		return nil, err
39778	}
39779	defer googleapi.CloseBody(res)
39780	if err := googleapi.CheckResponse(res); err != nil {
39781		return nil, err
39782	}
39783	ret := &Image{
39784		ServerResponse: googleapi.ServerResponse{
39785			Header:         res.Header,
39786			HTTPStatusCode: res.StatusCode,
39787		},
39788	}
39789	target := &ret
39790	if err := gensupport.DecodeResponse(target, res); err != nil {
39791		return nil, err
39792	}
39793	return ret, nil
39794	// {
39795	//   "description": "Returns the specified image. Get a list of available images by making a list() request.",
39796	//   "httpMethod": "GET",
39797	//   "id": "compute.images.get",
39798	//   "parameterOrder": [
39799	//     "project",
39800	//     "image"
39801	//   ],
39802	//   "parameters": {
39803	//     "image": {
39804	//       "description": "Name of the image resource to return.",
39805	//       "location": "path",
39806	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
39807	//       "required": true,
39808	//       "type": "string"
39809	//     },
39810	//     "project": {
39811	//       "description": "Project ID for this request.",
39812	//       "location": "path",
39813	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
39814	//       "required": true,
39815	//       "type": "string"
39816	//     }
39817	//   },
39818	//   "path": "{project}/global/images/{image}",
39819	//   "response": {
39820	//     "$ref": "Image"
39821	//   },
39822	//   "scopes": [
39823	//     "https://www.googleapis.com/auth/cloud-platform",
39824	//     "https://www.googleapis.com/auth/compute",
39825	//     "https://www.googleapis.com/auth/compute.readonly"
39826	//   ]
39827	// }
39828
39829}
39830
39831// method id "compute.images.getFromFamily":
39832
39833type ImagesGetFromFamilyCall struct {
39834	s            *Service
39835	project      string
39836	family       string
39837	urlParams_   gensupport.URLParams
39838	ifNoneMatch_ string
39839	ctx_         context.Context
39840	header_      http.Header
39841}
39842
39843// GetFromFamily: Returns the latest image that is part of an image
39844// family and is not deprecated.
39845func (r *ImagesService) GetFromFamily(project string, family string) *ImagesGetFromFamilyCall {
39846	c := &ImagesGetFromFamilyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39847	c.project = project
39848	c.family = family
39849	return c
39850}
39851
39852// Fields allows partial responses to be retrieved. See
39853// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
39854// for more information.
39855func (c *ImagesGetFromFamilyCall) Fields(s ...googleapi.Field) *ImagesGetFromFamilyCall {
39856	c.urlParams_.Set("fields", googleapi.CombineFields(s))
39857	return c
39858}
39859
39860// IfNoneMatch sets the optional parameter which makes the operation
39861// fail if the object's ETag matches the given value. This is useful for
39862// getting updates only after the object has changed since the last
39863// request. Use googleapi.IsNotModified to check whether the response
39864// error from Do is the result of In-None-Match.
39865func (c *ImagesGetFromFamilyCall) IfNoneMatch(entityTag string) *ImagesGetFromFamilyCall {
39866	c.ifNoneMatch_ = entityTag
39867	return c
39868}
39869
39870// Context sets the context to be used in this call's Do method. Any
39871// pending HTTP request will be aborted if the provided context is
39872// canceled.
39873func (c *ImagesGetFromFamilyCall) Context(ctx context.Context) *ImagesGetFromFamilyCall {
39874	c.ctx_ = ctx
39875	return c
39876}
39877
39878// Header returns an http.Header that can be modified by the caller to
39879// add HTTP headers to the request.
39880func (c *ImagesGetFromFamilyCall) Header() http.Header {
39881	if c.header_ == nil {
39882		c.header_ = make(http.Header)
39883	}
39884	return c.header_
39885}
39886
39887func (c *ImagesGetFromFamilyCall) doRequest(alt string) (*http.Response, error) {
39888	reqHeaders := make(http.Header)
39889	for k, v := range c.header_ {
39890		reqHeaders[k] = v
39891	}
39892	reqHeaders.Set("User-Agent", c.s.userAgent())
39893	if c.ifNoneMatch_ != "" {
39894		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
39895	}
39896	var body io.Reader = nil
39897	c.urlParams_.Set("alt", alt)
39898	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/family/{family}")
39899	urls += "?" + c.urlParams_.Encode()
39900	req, _ := http.NewRequest("GET", urls, body)
39901	req.Header = reqHeaders
39902	googleapi.Expand(req.URL, map[string]string{
39903		"project": c.project,
39904		"family":  c.family,
39905	})
39906	return gensupport.SendRequest(c.ctx_, c.s.client, req)
39907}
39908
39909// Do executes the "compute.images.getFromFamily" call.
39910// Exactly one of *Image or error will be non-nil. Any non-2xx status
39911// code is an error. Response headers are in either
39912// *Image.ServerResponse.Header or (if a response was returned at all)
39913// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
39914// check whether the returned error was because http.StatusNotModified
39915// was returned.
39916func (c *ImagesGetFromFamilyCall) Do(opts ...googleapi.CallOption) (*Image, error) {
39917	gensupport.SetOptions(c.urlParams_, opts...)
39918	res, err := c.doRequest("json")
39919	if res != nil && res.StatusCode == http.StatusNotModified {
39920		if res.Body != nil {
39921			res.Body.Close()
39922		}
39923		return nil, &googleapi.Error{
39924			Code:   res.StatusCode,
39925			Header: res.Header,
39926		}
39927	}
39928	if err != nil {
39929		return nil, err
39930	}
39931	defer googleapi.CloseBody(res)
39932	if err := googleapi.CheckResponse(res); err != nil {
39933		return nil, err
39934	}
39935	ret := &Image{
39936		ServerResponse: googleapi.ServerResponse{
39937			Header:         res.Header,
39938			HTTPStatusCode: res.StatusCode,
39939		},
39940	}
39941	target := &ret
39942	if err := gensupport.DecodeResponse(target, res); err != nil {
39943		return nil, err
39944	}
39945	return ret, nil
39946	// {
39947	//   "description": "Returns the latest image that is part of an image family and is not deprecated.",
39948	//   "httpMethod": "GET",
39949	//   "id": "compute.images.getFromFamily",
39950	//   "parameterOrder": [
39951	//     "project",
39952	//     "family"
39953	//   ],
39954	//   "parameters": {
39955	//     "family": {
39956	//       "description": "Name of the image family to search for.",
39957	//       "location": "path",
39958	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
39959	//       "required": true,
39960	//       "type": "string"
39961	//     },
39962	//     "project": {
39963	//       "description": "Project ID for this request.",
39964	//       "location": "path",
39965	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
39966	//       "required": true,
39967	//       "type": "string"
39968	//     }
39969	//   },
39970	//   "path": "{project}/global/images/family/{family}",
39971	//   "response": {
39972	//     "$ref": "Image"
39973	//   },
39974	//   "scopes": [
39975	//     "https://www.googleapis.com/auth/cloud-platform",
39976	//     "https://www.googleapis.com/auth/compute",
39977	//     "https://www.googleapis.com/auth/compute.readonly"
39978	//   ]
39979	// }
39980
39981}
39982
39983// method id "compute.images.insert":
39984
39985type ImagesInsertCall struct {
39986	s          *Service
39987	project    string
39988	image      *Image
39989	urlParams_ gensupport.URLParams
39990	ctx_       context.Context
39991	header_    http.Header
39992}
39993
39994// Insert: Creates an image in the specified project using the data
39995// included in the request.
39996// For details, see https://cloud.google.com/compute/docs/reference/latest/images/insert
39997func (r *ImagesService) Insert(project string, image *Image) *ImagesInsertCall {
39998	c := &ImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
39999	c.project = project
40000	c.image = image
40001	return c
40002}
40003
40004// ForceCreate sets the optional parameter "forceCreate": Force image
40005// creation if true.
40006func (c *ImagesInsertCall) ForceCreate(forceCreate bool) *ImagesInsertCall {
40007	c.urlParams_.Set("forceCreate", fmt.Sprint(forceCreate))
40008	return c
40009}
40010
40011// RequestId sets the optional parameter "requestId": An optional
40012// request ID to identify requests. Specify a unique request ID so that
40013// if you must retry your request, the server will know to ignore the
40014// request if it has already been completed.
40015//
40016// For example, consider a situation where you make an initial request
40017// and the request times out. If you make the request again with the
40018// same request ID, the server can check if original operation with the
40019// same request ID was received, and if so, will ignore the second
40020// request. This prevents clients from accidentally creating duplicate
40021// commitments.
40022//
40023// The request ID must be a valid UUID with the exception that zero UUID
40024// is not supported (00000000-0000-0000-0000-000000000000).
40025func (c *ImagesInsertCall) RequestId(requestId string) *ImagesInsertCall {
40026	c.urlParams_.Set("requestId", requestId)
40027	return c
40028}
40029
40030// Fields allows partial responses to be retrieved. See
40031// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40032// for more information.
40033func (c *ImagesInsertCall) Fields(s ...googleapi.Field) *ImagesInsertCall {
40034	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40035	return c
40036}
40037
40038// Context sets the context to be used in this call's Do method. Any
40039// pending HTTP request will be aborted if the provided context is
40040// canceled.
40041func (c *ImagesInsertCall) Context(ctx context.Context) *ImagesInsertCall {
40042	c.ctx_ = ctx
40043	return c
40044}
40045
40046// Header returns an http.Header that can be modified by the caller to
40047// add HTTP headers to the request.
40048func (c *ImagesInsertCall) Header() http.Header {
40049	if c.header_ == nil {
40050		c.header_ = make(http.Header)
40051	}
40052	return c.header_
40053}
40054
40055func (c *ImagesInsertCall) doRequest(alt string) (*http.Response, error) {
40056	reqHeaders := make(http.Header)
40057	for k, v := range c.header_ {
40058		reqHeaders[k] = v
40059	}
40060	reqHeaders.Set("User-Agent", c.s.userAgent())
40061	var body io.Reader = nil
40062	body, err := googleapi.WithoutDataWrapper.JSONReader(c.image)
40063	if err != nil {
40064		return nil, err
40065	}
40066	reqHeaders.Set("Content-Type", "application/json")
40067	c.urlParams_.Set("alt", alt)
40068	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images")
40069	urls += "?" + c.urlParams_.Encode()
40070	req, _ := http.NewRequest("POST", urls, body)
40071	req.Header = reqHeaders
40072	googleapi.Expand(req.URL, map[string]string{
40073		"project": c.project,
40074	})
40075	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40076}
40077
40078// Do executes the "compute.images.insert" call.
40079// Exactly one of *Operation or error will be non-nil. Any non-2xx
40080// status code is an error. Response headers are in either
40081// *Operation.ServerResponse.Header or (if a response was returned at
40082// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
40083// to check whether the returned error was because
40084// http.StatusNotModified was returned.
40085func (c *ImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
40086	gensupport.SetOptions(c.urlParams_, opts...)
40087	res, err := c.doRequest("json")
40088	if res != nil && res.StatusCode == http.StatusNotModified {
40089		if res.Body != nil {
40090			res.Body.Close()
40091		}
40092		return nil, &googleapi.Error{
40093			Code:   res.StatusCode,
40094			Header: res.Header,
40095		}
40096	}
40097	if err != nil {
40098		return nil, err
40099	}
40100	defer googleapi.CloseBody(res)
40101	if err := googleapi.CheckResponse(res); err != nil {
40102		return nil, err
40103	}
40104	ret := &Operation{
40105		ServerResponse: googleapi.ServerResponse{
40106			Header:         res.Header,
40107			HTTPStatusCode: res.StatusCode,
40108		},
40109	}
40110	target := &ret
40111	if err := gensupport.DecodeResponse(target, res); err != nil {
40112		return nil, err
40113	}
40114	return ret, nil
40115	// {
40116	//   "description": "Creates an image in the specified project using the data included in the request.",
40117	//   "httpMethod": "POST",
40118	//   "id": "compute.images.insert",
40119	//   "parameterOrder": [
40120	//     "project"
40121	//   ],
40122	//   "parameters": {
40123	//     "forceCreate": {
40124	//       "description": "Force image creation if true.",
40125	//       "location": "query",
40126	//       "type": "boolean"
40127	//     },
40128	//     "project": {
40129	//       "description": "Project ID for this request.",
40130	//       "location": "path",
40131	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
40132	//       "required": true,
40133	//       "type": "string"
40134	//     },
40135	//     "requestId": {
40136	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
40137	//       "location": "query",
40138	//       "type": "string"
40139	//     }
40140	//   },
40141	//   "path": "{project}/global/images",
40142	//   "request": {
40143	//     "$ref": "Image"
40144	//   },
40145	//   "response": {
40146	//     "$ref": "Operation"
40147	//   },
40148	//   "scopes": [
40149	//     "https://www.googleapis.com/auth/cloud-platform",
40150	//     "https://www.googleapis.com/auth/compute",
40151	//     "https://www.googleapis.com/auth/devstorage.full_control",
40152	//     "https://www.googleapis.com/auth/devstorage.read_only",
40153	//     "https://www.googleapis.com/auth/devstorage.read_write"
40154	//   ]
40155	// }
40156
40157}
40158
40159// method id "compute.images.list":
40160
40161type ImagesListCall struct {
40162	s            *Service
40163	project      string
40164	urlParams_   gensupport.URLParams
40165	ifNoneMatch_ string
40166	ctx_         context.Context
40167	header_      http.Header
40168}
40169
40170// List: Retrieves the list of custom images available to the specified
40171// project. Custom images are images you create that belong to your
40172// project. This method does not get any images that belong to other
40173// projects, including publicly-available images, like Debian 8. If you
40174// want to get a list of publicly-available images, use this method to
40175// make a request to the respective image project, such as debian-cloud
40176// or windows-cloud.
40177// For details, see https://cloud.google.com/compute/docs/reference/latest/images/list
40178func (r *ImagesService) List(project string) *ImagesListCall {
40179	c := &ImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40180	c.project = project
40181	return c
40182}
40183
40184// Filter sets the optional parameter "filter": Sets a filter
40185// {expression} for filtering listed resources. Your {expression} must
40186// be in the format: field_name comparison_string literal_string.
40187//
40188// The field_name is the name of the field you want to compare. Only
40189// atomic field types are supported (string, number, boolean). The
40190// comparison_string must be either eq (equals) or ne (not equals). The
40191// literal_string is the string value to filter to. The literal value
40192// must be valid for the type of field you are filtering by (string,
40193// number, boolean). For string fields, the literal value is interpreted
40194// as a regular expression using RE2 syntax. The literal value must
40195// match the entire field.
40196//
40197// For example, to filter for instances that do not have a name of
40198// example-instance, you would use name ne example-instance.
40199//
40200// You can filter on nested fields. For example, you could filter on
40201// instances that have set the scheduling.automaticRestart field to
40202// true. Use filtering on nested fields to take advantage of labels to
40203// organize and search for results based on label values.
40204//
40205// To filter on multiple expressions, provide each separate expression
40206// within parentheses. For example, (scheduling.automaticRestart eq
40207// true) (zone eq us-central1-f). Multiple expressions are treated as
40208// AND expressions, meaning that resources must match all expressions to
40209// pass the filters.
40210func (c *ImagesListCall) Filter(filter string) *ImagesListCall {
40211	c.urlParams_.Set("filter", filter)
40212	return c
40213}
40214
40215// MaxResults sets the optional parameter "maxResults": The maximum
40216// number of results per page that should be returned. If the number of
40217// available results is larger than maxResults, Compute Engine returns a
40218// nextPageToken that can be used to get the next page of results in
40219// subsequent list requests. Acceptable values are 0 to 500, inclusive.
40220// (Default: 500)
40221func (c *ImagesListCall) MaxResults(maxResults int64) *ImagesListCall {
40222	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
40223	return c
40224}
40225
40226// OrderBy sets the optional parameter "orderBy": Sorts list results by
40227// a certain order. By default, results are returned in alphanumerical
40228// order based on the resource name.
40229//
40230// You can also sort results in descending order based on the creation
40231// timestamp using orderBy="creationTimestamp desc". This sorts results
40232// based on the creationTimestamp field in reverse chronological order
40233// (newest result first). Use this to sort resources like operations so
40234// that the newest operation is returned first.
40235//
40236// Currently, only sorting by name or creationTimestamp desc is
40237// supported.
40238func (c *ImagesListCall) OrderBy(orderBy string) *ImagesListCall {
40239	c.urlParams_.Set("orderBy", orderBy)
40240	return c
40241}
40242
40243// PageToken sets the optional parameter "pageToken": Specifies a page
40244// token to use. Set pageToken to the nextPageToken returned by a
40245// previous list request to get the next page of results.
40246func (c *ImagesListCall) PageToken(pageToken string) *ImagesListCall {
40247	c.urlParams_.Set("pageToken", pageToken)
40248	return c
40249}
40250
40251// Fields allows partial responses to be retrieved. See
40252// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40253// for more information.
40254func (c *ImagesListCall) Fields(s ...googleapi.Field) *ImagesListCall {
40255	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40256	return c
40257}
40258
40259// IfNoneMatch sets the optional parameter which makes the operation
40260// fail if the object's ETag matches the given value. This is useful for
40261// getting updates only after the object has changed since the last
40262// request. Use googleapi.IsNotModified to check whether the response
40263// error from Do is the result of In-None-Match.
40264func (c *ImagesListCall) IfNoneMatch(entityTag string) *ImagesListCall {
40265	c.ifNoneMatch_ = entityTag
40266	return c
40267}
40268
40269// Context sets the context to be used in this call's Do method. Any
40270// pending HTTP request will be aborted if the provided context is
40271// canceled.
40272func (c *ImagesListCall) Context(ctx context.Context) *ImagesListCall {
40273	c.ctx_ = ctx
40274	return c
40275}
40276
40277// Header returns an http.Header that can be modified by the caller to
40278// add HTTP headers to the request.
40279func (c *ImagesListCall) Header() http.Header {
40280	if c.header_ == nil {
40281		c.header_ = make(http.Header)
40282	}
40283	return c.header_
40284}
40285
40286func (c *ImagesListCall) doRequest(alt string) (*http.Response, error) {
40287	reqHeaders := make(http.Header)
40288	for k, v := range c.header_ {
40289		reqHeaders[k] = v
40290	}
40291	reqHeaders.Set("User-Agent", c.s.userAgent())
40292	if c.ifNoneMatch_ != "" {
40293		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
40294	}
40295	var body io.Reader = nil
40296	c.urlParams_.Set("alt", alt)
40297	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images")
40298	urls += "?" + c.urlParams_.Encode()
40299	req, _ := http.NewRequest("GET", urls, body)
40300	req.Header = reqHeaders
40301	googleapi.Expand(req.URL, map[string]string{
40302		"project": c.project,
40303	})
40304	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40305}
40306
40307// Do executes the "compute.images.list" call.
40308// Exactly one of *ImageList or error will be non-nil. Any non-2xx
40309// status code is an error. Response headers are in either
40310// *ImageList.ServerResponse.Header or (if a response was returned at
40311// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
40312// to check whether the returned error was because
40313// http.StatusNotModified was returned.
40314func (c *ImagesListCall) Do(opts ...googleapi.CallOption) (*ImageList, error) {
40315	gensupport.SetOptions(c.urlParams_, opts...)
40316	res, err := c.doRequest("json")
40317	if res != nil && res.StatusCode == http.StatusNotModified {
40318		if res.Body != nil {
40319			res.Body.Close()
40320		}
40321		return nil, &googleapi.Error{
40322			Code:   res.StatusCode,
40323			Header: res.Header,
40324		}
40325	}
40326	if err != nil {
40327		return nil, err
40328	}
40329	defer googleapi.CloseBody(res)
40330	if err := googleapi.CheckResponse(res); err != nil {
40331		return nil, err
40332	}
40333	ret := &ImageList{
40334		ServerResponse: googleapi.ServerResponse{
40335			Header:         res.Header,
40336			HTTPStatusCode: res.StatusCode,
40337		},
40338	}
40339	target := &ret
40340	if err := gensupport.DecodeResponse(target, res); err != nil {
40341		return nil, err
40342	}
40343	return ret, nil
40344	// {
40345	//   "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.",
40346	//   "httpMethod": "GET",
40347	//   "id": "compute.images.list",
40348	//   "parameterOrder": [
40349	//     "project"
40350	//   ],
40351	//   "parameters": {
40352	//     "filter": {
40353	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
40354	//       "location": "query",
40355	//       "type": "string"
40356	//     },
40357	//     "maxResults": {
40358	//       "default": "500",
40359	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
40360	//       "format": "uint32",
40361	//       "location": "query",
40362	//       "minimum": "0",
40363	//       "type": "integer"
40364	//     },
40365	//     "orderBy": {
40366	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
40367	//       "location": "query",
40368	//       "type": "string"
40369	//     },
40370	//     "pageToken": {
40371	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
40372	//       "location": "query",
40373	//       "type": "string"
40374	//     },
40375	//     "project": {
40376	//       "description": "Project ID for this request.",
40377	//       "location": "path",
40378	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
40379	//       "required": true,
40380	//       "type": "string"
40381	//     }
40382	//   },
40383	//   "path": "{project}/global/images",
40384	//   "response": {
40385	//     "$ref": "ImageList"
40386	//   },
40387	//   "scopes": [
40388	//     "https://www.googleapis.com/auth/cloud-platform",
40389	//     "https://www.googleapis.com/auth/compute",
40390	//     "https://www.googleapis.com/auth/compute.readonly"
40391	//   ]
40392	// }
40393
40394}
40395
40396// Pages invokes f for each page of results.
40397// A non-nil error returned from f will halt the iteration.
40398// The provided context supersedes any context provided to the Context method.
40399func (c *ImagesListCall) Pages(ctx context.Context, f func(*ImageList) error) error {
40400	c.ctx_ = ctx
40401	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
40402	for {
40403		x, err := c.Do()
40404		if err != nil {
40405			return err
40406		}
40407		if err := f(x); err != nil {
40408			return err
40409		}
40410		if x.NextPageToken == "" {
40411			return nil
40412		}
40413		c.PageToken(x.NextPageToken)
40414	}
40415}
40416
40417// method id "compute.images.setLabels":
40418
40419type ImagesSetLabelsCall struct {
40420	s                      *Service
40421	project                string
40422	resource               string
40423	globalsetlabelsrequest *GlobalSetLabelsRequest
40424	urlParams_             gensupport.URLParams
40425	ctx_                   context.Context
40426	header_                http.Header
40427}
40428
40429// SetLabels: Sets the labels on an image. To learn more about labels,
40430// read the Labeling Resources documentation.
40431func (r *ImagesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ImagesSetLabelsCall {
40432	c := &ImagesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40433	c.project = project
40434	c.resource = resource
40435	c.globalsetlabelsrequest = globalsetlabelsrequest
40436	return c
40437}
40438
40439// Fields allows partial responses to be retrieved. See
40440// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40441// for more information.
40442func (c *ImagesSetLabelsCall) Fields(s ...googleapi.Field) *ImagesSetLabelsCall {
40443	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40444	return c
40445}
40446
40447// Context sets the context to be used in this call's Do method. Any
40448// pending HTTP request will be aborted if the provided context is
40449// canceled.
40450func (c *ImagesSetLabelsCall) Context(ctx context.Context) *ImagesSetLabelsCall {
40451	c.ctx_ = ctx
40452	return c
40453}
40454
40455// Header returns an http.Header that can be modified by the caller to
40456// add HTTP headers to the request.
40457func (c *ImagesSetLabelsCall) Header() http.Header {
40458	if c.header_ == nil {
40459		c.header_ = make(http.Header)
40460	}
40461	return c.header_
40462}
40463
40464func (c *ImagesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
40465	reqHeaders := make(http.Header)
40466	for k, v := range c.header_ {
40467		reqHeaders[k] = v
40468	}
40469	reqHeaders.Set("User-Agent", c.s.userAgent())
40470	var body io.Reader = nil
40471	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
40472	if err != nil {
40473		return nil, err
40474	}
40475	reqHeaders.Set("Content-Type", "application/json")
40476	c.urlParams_.Set("alt", alt)
40477	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/setLabels")
40478	urls += "?" + c.urlParams_.Encode()
40479	req, _ := http.NewRequest("POST", urls, body)
40480	req.Header = reqHeaders
40481	googleapi.Expand(req.URL, map[string]string{
40482		"project":  c.project,
40483		"resource": c.resource,
40484	})
40485	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40486}
40487
40488// Do executes the "compute.images.setLabels" call.
40489// Exactly one of *Operation or error will be non-nil. Any non-2xx
40490// status code is an error. Response headers are in either
40491// *Operation.ServerResponse.Header or (if a response was returned at
40492// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
40493// to check whether the returned error was because
40494// http.StatusNotModified was returned.
40495func (c *ImagesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
40496	gensupport.SetOptions(c.urlParams_, opts...)
40497	res, err := c.doRequest("json")
40498	if res != nil && res.StatusCode == http.StatusNotModified {
40499		if res.Body != nil {
40500			res.Body.Close()
40501		}
40502		return nil, &googleapi.Error{
40503			Code:   res.StatusCode,
40504			Header: res.Header,
40505		}
40506	}
40507	if err != nil {
40508		return nil, err
40509	}
40510	defer googleapi.CloseBody(res)
40511	if err := googleapi.CheckResponse(res); err != nil {
40512		return nil, err
40513	}
40514	ret := &Operation{
40515		ServerResponse: googleapi.ServerResponse{
40516			Header:         res.Header,
40517			HTTPStatusCode: res.StatusCode,
40518		},
40519	}
40520	target := &ret
40521	if err := gensupport.DecodeResponse(target, res); err != nil {
40522		return nil, err
40523	}
40524	return ret, nil
40525	// {
40526	//   "description": "Sets the labels on an image. To learn more about labels, read the Labeling Resources documentation.",
40527	//   "httpMethod": "POST",
40528	//   "id": "compute.images.setLabels",
40529	//   "parameterOrder": [
40530	//     "project",
40531	//     "resource"
40532	//   ],
40533	//   "parameters": {
40534	//     "project": {
40535	//       "description": "Project ID for this request.",
40536	//       "location": "path",
40537	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
40538	//       "required": true,
40539	//       "type": "string"
40540	//     },
40541	//     "resource": {
40542	//       "description": "Name of the resource for this request.",
40543	//       "location": "path",
40544	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?",
40545	//       "required": true,
40546	//       "type": "string"
40547	//     }
40548	//   },
40549	//   "path": "{project}/global/images/{resource}/setLabels",
40550	//   "request": {
40551	//     "$ref": "GlobalSetLabelsRequest"
40552	//   },
40553	//   "response": {
40554	//     "$ref": "Operation"
40555	//   },
40556	//   "scopes": [
40557	//     "https://www.googleapis.com/auth/cloud-platform",
40558	//     "https://www.googleapis.com/auth/compute"
40559	//   ]
40560	// }
40561
40562}
40563
40564// method id "compute.instanceGroupManagers.abandonInstances":
40565
40566type InstanceGroupManagersAbandonInstancesCall struct {
40567	s                                            *Service
40568	project                                      string
40569	zone                                         string
40570	instanceGroupManager                         string
40571	instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest
40572	urlParams_                                   gensupport.URLParams
40573	ctx_                                         context.Context
40574	header_                                      http.Header
40575}
40576
40577// AbandonInstances: Schedules a group action to remove the specified
40578// instances from the managed instance group. Abandoning an instance
40579// does not delete the instance, but it does remove the instance from
40580// any target pools that are applied by the managed instance group. This
40581// method reduces the targetSize of the managed instance group by the
40582// number of instances that you abandon. This operation is marked as
40583// DONE when the action is scheduled even if the instances have not yet
40584// been removed from the group. You must separately verify the status of
40585// the abandoning action with the listmanagedinstances method.
40586//
40587// If the group is part of a backend service that has enabled connection
40588// draining, it can take up to 60 seconds after the connection draining
40589// duration has elapsed before the VM instance is removed or
40590// deleted.
40591//
40592// You can specify a maximum of 1000 instances with this method per
40593// request.
40594func (r *InstanceGroupManagersService) AbandonInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest) *InstanceGroupManagersAbandonInstancesCall {
40595	c := &InstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40596	c.project = project
40597	c.zone = zone
40598	c.instanceGroupManager = instanceGroupManager
40599	c.instancegroupmanagersabandoninstancesrequest = instancegroupmanagersabandoninstancesrequest
40600	return c
40601}
40602
40603// RequestId sets the optional parameter "requestId": An optional
40604// request ID to identify requests. Specify a unique request ID so that
40605// if you must retry your request, the server will know to ignore the
40606// request if it has already been completed.
40607//
40608// For example, consider a situation where you make an initial request
40609// and the request times out. If you make the request again with the
40610// same request ID, the server can check if original operation with the
40611// same request ID was received, and if so, will ignore the second
40612// request. This prevents clients from accidentally creating duplicate
40613// commitments.
40614//
40615// The request ID must be a valid UUID with the exception that zero UUID
40616// is not supported (00000000-0000-0000-0000-000000000000).
40617func (c *InstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *InstanceGroupManagersAbandonInstancesCall {
40618	c.urlParams_.Set("requestId", requestId)
40619	return c
40620}
40621
40622// Fields allows partial responses to be retrieved. See
40623// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40624// for more information.
40625func (c *InstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAbandonInstancesCall {
40626	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40627	return c
40628}
40629
40630// Context sets the context to be used in this call's Do method. Any
40631// pending HTTP request will be aborted if the provided context is
40632// canceled.
40633func (c *InstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *InstanceGroupManagersAbandonInstancesCall {
40634	c.ctx_ = ctx
40635	return c
40636}
40637
40638// Header returns an http.Header that can be modified by the caller to
40639// add HTTP headers to the request.
40640func (c *InstanceGroupManagersAbandonInstancesCall) Header() http.Header {
40641	if c.header_ == nil {
40642		c.header_ = make(http.Header)
40643	}
40644	return c.header_
40645}
40646
40647func (c *InstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
40648	reqHeaders := make(http.Header)
40649	for k, v := range c.header_ {
40650		reqHeaders[k] = v
40651	}
40652	reqHeaders.Set("User-Agent", c.s.userAgent())
40653	var body io.Reader = nil
40654	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersabandoninstancesrequest)
40655	if err != nil {
40656		return nil, err
40657	}
40658	reqHeaders.Set("Content-Type", "application/json")
40659	c.urlParams_.Set("alt", alt)
40660	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
40661	urls += "?" + c.urlParams_.Encode()
40662	req, _ := http.NewRequest("POST", urls, body)
40663	req.Header = reqHeaders
40664	googleapi.Expand(req.URL, map[string]string{
40665		"project":              c.project,
40666		"zone":                 c.zone,
40667		"instanceGroupManager": c.instanceGroupManager,
40668	})
40669	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40670}
40671
40672// Do executes the "compute.instanceGroupManagers.abandonInstances" call.
40673// Exactly one of *Operation or error will be non-nil. Any non-2xx
40674// status code is an error. Response headers are in either
40675// *Operation.ServerResponse.Header or (if a response was returned at
40676// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
40677// to check whether the returned error was because
40678// http.StatusNotModified was returned.
40679func (c *InstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
40680	gensupport.SetOptions(c.urlParams_, opts...)
40681	res, err := c.doRequest("json")
40682	if res != nil && res.StatusCode == http.StatusNotModified {
40683		if res.Body != nil {
40684			res.Body.Close()
40685		}
40686		return nil, &googleapi.Error{
40687			Code:   res.StatusCode,
40688			Header: res.Header,
40689		}
40690	}
40691	if err != nil {
40692		return nil, err
40693	}
40694	defer googleapi.CloseBody(res)
40695	if err := googleapi.CheckResponse(res); err != nil {
40696		return nil, err
40697	}
40698	ret := &Operation{
40699		ServerResponse: googleapi.ServerResponse{
40700			Header:         res.Header,
40701			HTTPStatusCode: res.StatusCode,
40702		},
40703	}
40704	target := &ret
40705	if err := gensupport.DecodeResponse(target, res); err != nil {
40706		return nil, err
40707	}
40708	return ret, nil
40709	// {
40710	//   "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.",
40711	//   "httpMethod": "POST",
40712	//   "id": "compute.instanceGroupManagers.abandonInstances",
40713	//   "parameterOrder": [
40714	//     "project",
40715	//     "zone",
40716	//     "instanceGroupManager"
40717	//   ],
40718	//   "parameters": {
40719	//     "instanceGroupManager": {
40720	//       "description": "The name of the managed instance group.",
40721	//       "location": "path",
40722	//       "required": true,
40723	//       "type": "string"
40724	//     },
40725	//     "project": {
40726	//       "description": "Project ID for this request.",
40727	//       "location": "path",
40728	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
40729	//       "required": true,
40730	//       "type": "string"
40731	//     },
40732	//     "requestId": {
40733	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
40734	//       "location": "query",
40735	//       "type": "string"
40736	//     },
40737	//     "zone": {
40738	//       "description": "The name of the zone where the managed instance group is located.",
40739	//       "location": "path",
40740	//       "required": true,
40741	//       "type": "string"
40742	//     }
40743	//   },
40744	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
40745	//   "request": {
40746	//     "$ref": "InstanceGroupManagersAbandonInstancesRequest"
40747	//   },
40748	//   "response": {
40749	//     "$ref": "Operation"
40750	//   },
40751	//   "scopes": [
40752	//     "https://www.googleapis.com/auth/cloud-platform",
40753	//     "https://www.googleapis.com/auth/compute"
40754	//   ]
40755	// }
40756
40757}
40758
40759// method id "compute.instanceGroupManagers.aggregatedList":
40760
40761type InstanceGroupManagersAggregatedListCall struct {
40762	s            *Service
40763	project      string
40764	urlParams_   gensupport.URLParams
40765	ifNoneMatch_ string
40766	ctx_         context.Context
40767	header_      http.Header
40768}
40769
40770// AggregatedList: Retrieves the list of managed instance groups and
40771// groups them by zone.
40772func (r *InstanceGroupManagersService) AggregatedList(project string) *InstanceGroupManagersAggregatedListCall {
40773	c := &InstanceGroupManagersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
40774	c.project = project
40775	return c
40776}
40777
40778// Filter sets the optional parameter "filter": Sets a filter
40779// {expression} for filtering listed resources. Your {expression} must
40780// be in the format: field_name comparison_string literal_string.
40781//
40782// The field_name is the name of the field you want to compare. Only
40783// atomic field types are supported (string, number, boolean). The
40784// comparison_string must be either eq (equals) or ne (not equals). The
40785// literal_string is the string value to filter to. The literal value
40786// must be valid for the type of field you are filtering by (string,
40787// number, boolean). For string fields, the literal value is interpreted
40788// as a regular expression using RE2 syntax. The literal value must
40789// match the entire field.
40790//
40791// For example, to filter for instances that do not have a name of
40792// example-instance, you would use name ne example-instance.
40793//
40794// You can filter on nested fields. For example, you could filter on
40795// instances that have set the scheduling.automaticRestart field to
40796// true. Use filtering on nested fields to take advantage of labels to
40797// organize and search for results based on label values.
40798//
40799// To filter on multiple expressions, provide each separate expression
40800// within parentheses. For example, (scheduling.automaticRestart eq
40801// true) (zone eq us-central1-f). Multiple expressions are treated as
40802// AND expressions, meaning that resources must match all expressions to
40803// pass the filters.
40804func (c *InstanceGroupManagersAggregatedListCall) Filter(filter string) *InstanceGroupManagersAggregatedListCall {
40805	c.urlParams_.Set("filter", filter)
40806	return c
40807}
40808
40809// MaxResults sets the optional parameter "maxResults": The maximum
40810// number of results per page that should be returned. If the number of
40811// available results is larger than maxResults, Compute Engine returns a
40812// nextPageToken that can be used to get the next page of results in
40813// subsequent list requests. Acceptable values are 0 to 500, inclusive.
40814// (Default: 500)
40815func (c *InstanceGroupManagersAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupManagersAggregatedListCall {
40816	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
40817	return c
40818}
40819
40820// OrderBy sets the optional parameter "orderBy": Sorts list results by
40821// a certain order. By default, results are returned in alphanumerical
40822// order based on the resource name.
40823//
40824// You can also sort results in descending order based on the creation
40825// timestamp using orderBy="creationTimestamp desc". This sorts results
40826// based on the creationTimestamp field in reverse chronological order
40827// (newest result first). Use this to sort resources like operations so
40828// that the newest operation is returned first.
40829//
40830// Currently, only sorting by name or creationTimestamp desc is
40831// supported.
40832func (c *InstanceGroupManagersAggregatedListCall) OrderBy(orderBy string) *InstanceGroupManagersAggregatedListCall {
40833	c.urlParams_.Set("orderBy", orderBy)
40834	return c
40835}
40836
40837// PageToken sets the optional parameter "pageToken": Specifies a page
40838// token to use. Set pageToken to the nextPageToken returned by a
40839// previous list request to get the next page of results.
40840func (c *InstanceGroupManagersAggregatedListCall) PageToken(pageToken string) *InstanceGroupManagersAggregatedListCall {
40841	c.urlParams_.Set("pageToken", pageToken)
40842	return c
40843}
40844
40845// Fields allows partial responses to be retrieved. See
40846// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
40847// for more information.
40848func (c *InstanceGroupManagersAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAggregatedListCall {
40849	c.urlParams_.Set("fields", googleapi.CombineFields(s))
40850	return c
40851}
40852
40853// IfNoneMatch sets the optional parameter which makes the operation
40854// fail if the object's ETag matches the given value. This is useful for
40855// getting updates only after the object has changed since the last
40856// request. Use googleapi.IsNotModified to check whether the response
40857// error from Do is the result of In-None-Match.
40858func (c *InstanceGroupManagersAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersAggregatedListCall {
40859	c.ifNoneMatch_ = entityTag
40860	return c
40861}
40862
40863// Context sets the context to be used in this call's Do method. Any
40864// pending HTTP request will be aborted if the provided context is
40865// canceled.
40866func (c *InstanceGroupManagersAggregatedListCall) Context(ctx context.Context) *InstanceGroupManagersAggregatedListCall {
40867	c.ctx_ = ctx
40868	return c
40869}
40870
40871// Header returns an http.Header that can be modified by the caller to
40872// add HTTP headers to the request.
40873func (c *InstanceGroupManagersAggregatedListCall) Header() http.Header {
40874	if c.header_ == nil {
40875		c.header_ = make(http.Header)
40876	}
40877	return c.header_
40878}
40879
40880func (c *InstanceGroupManagersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
40881	reqHeaders := make(http.Header)
40882	for k, v := range c.header_ {
40883		reqHeaders[k] = v
40884	}
40885	reqHeaders.Set("User-Agent", c.s.userAgent())
40886	if c.ifNoneMatch_ != "" {
40887		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
40888	}
40889	var body io.Reader = nil
40890	c.urlParams_.Set("alt", alt)
40891	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instanceGroupManagers")
40892	urls += "?" + c.urlParams_.Encode()
40893	req, _ := http.NewRequest("GET", urls, body)
40894	req.Header = reqHeaders
40895	googleapi.Expand(req.URL, map[string]string{
40896		"project": c.project,
40897	})
40898	return gensupport.SendRequest(c.ctx_, c.s.client, req)
40899}
40900
40901// Do executes the "compute.instanceGroupManagers.aggregatedList" call.
40902// Exactly one of *InstanceGroupManagerAggregatedList or error will be
40903// non-nil. Any non-2xx status code is an error. Response headers are in
40904// either *InstanceGroupManagerAggregatedList.ServerResponse.Header or
40905// (if a response was returned at all) in
40906// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
40907// whether the returned error was because http.StatusNotModified was
40908// returned.
40909func (c *InstanceGroupManagersAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerAggregatedList, error) {
40910	gensupport.SetOptions(c.urlParams_, opts...)
40911	res, err := c.doRequest("json")
40912	if res != nil && res.StatusCode == http.StatusNotModified {
40913		if res.Body != nil {
40914			res.Body.Close()
40915		}
40916		return nil, &googleapi.Error{
40917			Code:   res.StatusCode,
40918			Header: res.Header,
40919		}
40920	}
40921	if err != nil {
40922		return nil, err
40923	}
40924	defer googleapi.CloseBody(res)
40925	if err := googleapi.CheckResponse(res); err != nil {
40926		return nil, err
40927	}
40928	ret := &InstanceGroupManagerAggregatedList{
40929		ServerResponse: googleapi.ServerResponse{
40930			Header:         res.Header,
40931			HTTPStatusCode: res.StatusCode,
40932		},
40933	}
40934	target := &ret
40935	if err := gensupport.DecodeResponse(target, res); err != nil {
40936		return nil, err
40937	}
40938	return ret, nil
40939	// {
40940	//   "description": "Retrieves the list of managed instance groups and groups them by zone.",
40941	//   "httpMethod": "GET",
40942	//   "id": "compute.instanceGroupManagers.aggregatedList",
40943	//   "parameterOrder": [
40944	//     "project"
40945	//   ],
40946	//   "parameters": {
40947	//     "filter": {
40948	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
40949	//       "location": "query",
40950	//       "type": "string"
40951	//     },
40952	//     "maxResults": {
40953	//       "default": "500",
40954	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
40955	//       "format": "uint32",
40956	//       "location": "query",
40957	//       "minimum": "0",
40958	//       "type": "integer"
40959	//     },
40960	//     "orderBy": {
40961	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
40962	//       "location": "query",
40963	//       "type": "string"
40964	//     },
40965	//     "pageToken": {
40966	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
40967	//       "location": "query",
40968	//       "type": "string"
40969	//     },
40970	//     "project": {
40971	//       "description": "Project ID for this request.",
40972	//       "location": "path",
40973	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
40974	//       "required": true,
40975	//       "type": "string"
40976	//     }
40977	//   },
40978	//   "path": "{project}/aggregated/instanceGroupManagers",
40979	//   "response": {
40980	//     "$ref": "InstanceGroupManagerAggregatedList"
40981	//   },
40982	//   "scopes": [
40983	//     "https://www.googleapis.com/auth/cloud-platform",
40984	//     "https://www.googleapis.com/auth/compute",
40985	//     "https://www.googleapis.com/auth/compute.readonly"
40986	//   ]
40987	// }
40988
40989}
40990
40991// Pages invokes f for each page of results.
40992// A non-nil error returned from f will halt the iteration.
40993// The provided context supersedes any context provided to the Context method.
40994func (c *InstanceGroupManagersAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerAggregatedList) error) error {
40995	c.ctx_ = ctx
40996	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
40997	for {
40998		x, err := c.Do()
40999		if err != nil {
41000			return err
41001		}
41002		if err := f(x); err != nil {
41003			return err
41004		}
41005		if x.NextPageToken == "" {
41006			return nil
41007		}
41008		c.PageToken(x.NextPageToken)
41009	}
41010}
41011
41012// method id "compute.instanceGroupManagers.delete":
41013
41014type InstanceGroupManagersDeleteCall struct {
41015	s                    *Service
41016	project              string
41017	zone                 string
41018	instanceGroupManager string
41019	urlParams_           gensupport.URLParams
41020	ctx_                 context.Context
41021	header_              http.Header
41022}
41023
41024// Delete: Deletes the specified managed instance group and all of the
41025// instances in that group. Note that the instance group must not belong
41026// to a backend service. Read  Deleting an instance group for more
41027// information.
41028func (r *InstanceGroupManagersService) Delete(project string, zone string, instanceGroupManager string) *InstanceGroupManagersDeleteCall {
41029	c := &InstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
41030	c.project = project
41031	c.zone = zone
41032	c.instanceGroupManager = instanceGroupManager
41033	return c
41034}
41035
41036// RequestId sets the optional parameter "requestId": An optional
41037// request ID to identify requests. Specify a unique request ID so that
41038// if you must retry your request, the server will know to ignore the
41039// request if it has already been completed.
41040//
41041// For example, consider a situation where you make an initial request
41042// and the request times out. If you make the request again with the
41043// same request ID, the server can check if original operation with the
41044// same request ID was received, and if so, will ignore the second
41045// request. This prevents clients from accidentally creating duplicate
41046// commitments.
41047//
41048// The request ID must be a valid UUID with the exception that zero UUID
41049// is not supported (00000000-0000-0000-0000-000000000000).
41050func (c *InstanceGroupManagersDeleteCall) RequestId(requestId string) *InstanceGroupManagersDeleteCall {
41051	c.urlParams_.Set("requestId", requestId)
41052	return c
41053}
41054
41055// Fields allows partial responses to be retrieved. See
41056// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
41057// for more information.
41058func (c *InstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteCall {
41059	c.urlParams_.Set("fields", googleapi.CombineFields(s))
41060	return c
41061}
41062
41063// Context sets the context to be used in this call's Do method. Any
41064// pending HTTP request will be aborted if the provided context is
41065// canceled.
41066func (c *InstanceGroupManagersDeleteCall) Context(ctx context.Context) *InstanceGroupManagersDeleteCall {
41067	c.ctx_ = ctx
41068	return c
41069}
41070
41071// Header returns an http.Header that can be modified by the caller to
41072// add HTTP headers to the request.
41073func (c *InstanceGroupManagersDeleteCall) Header() http.Header {
41074	if c.header_ == nil {
41075		c.header_ = make(http.Header)
41076	}
41077	return c.header_
41078}
41079
41080func (c *InstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
41081	reqHeaders := make(http.Header)
41082	for k, v := range c.header_ {
41083		reqHeaders[k] = v
41084	}
41085	reqHeaders.Set("User-Agent", c.s.userAgent())
41086	var body io.Reader = nil
41087	c.urlParams_.Set("alt", alt)
41088	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
41089	urls += "?" + c.urlParams_.Encode()
41090	req, _ := http.NewRequest("DELETE", urls, body)
41091	req.Header = reqHeaders
41092	googleapi.Expand(req.URL, map[string]string{
41093		"project":              c.project,
41094		"zone":                 c.zone,
41095		"instanceGroupManager": c.instanceGroupManager,
41096	})
41097	return gensupport.SendRequest(c.ctx_, c.s.client, req)
41098}
41099
41100// Do executes the "compute.instanceGroupManagers.delete" call.
41101// Exactly one of *Operation or error will be non-nil. Any non-2xx
41102// status code is an error. Response headers are in either
41103// *Operation.ServerResponse.Header or (if a response was returned at
41104// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
41105// to check whether the returned error was because
41106// http.StatusNotModified was returned.
41107func (c *InstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
41108	gensupport.SetOptions(c.urlParams_, opts...)
41109	res, err := c.doRequest("json")
41110	if res != nil && res.StatusCode == http.StatusNotModified {
41111		if res.Body != nil {
41112			res.Body.Close()
41113		}
41114		return nil, &googleapi.Error{
41115			Code:   res.StatusCode,
41116			Header: res.Header,
41117		}
41118	}
41119	if err != nil {
41120		return nil, err
41121	}
41122	defer googleapi.CloseBody(res)
41123	if err := googleapi.CheckResponse(res); err != nil {
41124		return nil, err
41125	}
41126	ret := &Operation{
41127		ServerResponse: googleapi.ServerResponse{
41128			Header:         res.Header,
41129			HTTPStatusCode: res.StatusCode,
41130		},
41131	}
41132	target := &ret
41133	if err := gensupport.DecodeResponse(target, res); err != nil {
41134		return nil, err
41135	}
41136	return ret, nil
41137	// {
41138	//   "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.",
41139	//   "httpMethod": "DELETE",
41140	//   "id": "compute.instanceGroupManagers.delete",
41141	//   "parameterOrder": [
41142	//     "project",
41143	//     "zone",
41144	//     "instanceGroupManager"
41145	//   ],
41146	//   "parameters": {
41147	//     "instanceGroupManager": {
41148	//       "description": "The name of the managed instance group to delete.",
41149	//       "location": "path",
41150	//       "required": true,
41151	//       "type": "string"
41152	//     },
41153	//     "project": {
41154	//       "description": "Project ID for this request.",
41155	//       "location": "path",
41156	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
41157	//       "required": true,
41158	//       "type": "string"
41159	//     },
41160	//     "requestId": {
41161	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
41162	//       "location": "query",
41163	//       "type": "string"
41164	//     },
41165	//     "zone": {
41166	//       "description": "The name of the zone where the managed instance group is located.",
41167	//       "location": "path",
41168	//       "required": true,
41169	//       "type": "string"
41170	//     }
41171	//   },
41172	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
41173	//   "response": {
41174	//     "$ref": "Operation"
41175	//   },
41176	//   "scopes": [
41177	//     "https://www.googleapis.com/auth/cloud-platform",
41178	//     "https://www.googleapis.com/auth/compute"
41179	//   ]
41180	// }
41181
41182}
41183
41184// method id "compute.instanceGroupManagers.deleteInstances":
41185
41186type InstanceGroupManagersDeleteInstancesCall struct {
41187	s                                           *Service
41188	project                                     string
41189	zone                                        string
41190	instanceGroupManager                        string
41191	instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest
41192	urlParams_                                  gensupport.URLParams
41193	ctx_                                        context.Context
41194	header_                                     http.Header
41195}
41196
41197// DeleteInstances: Schedules a group action to delete the specified
41198// instances in the managed instance group. The instances are also
41199// removed from any target pools of which they were a member. This
41200// method reduces the targetSize of the managed instance group by the
41201// number of instances that you delete. This operation is marked as DONE
41202// when the action is scheduled even if the instances are still being
41203// deleted. You must separately verify the status of the deleting action
41204// with the listmanagedinstances method.
41205//
41206// If the group is part of a backend service that has enabled connection
41207// draining, it can take up to 60 seconds after the connection draining
41208// duration has elapsed before the VM instance is removed or
41209// deleted.
41210//
41211// You can specify a maximum of 1000 instances with this method per
41212// request.
41213func (r *InstanceGroupManagersService) DeleteInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest) *InstanceGroupManagersDeleteInstancesCall {
41214	c := &InstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
41215	c.project = project
41216	c.zone = zone
41217	c.instanceGroupManager = instanceGroupManager
41218	c.instancegroupmanagersdeleteinstancesrequest = instancegroupmanagersdeleteinstancesrequest
41219	return c
41220}
41221
41222// RequestId sets the optional parameter "requestId": An optional
41223// request ID to identify requests. Specify a unique request ID so that
41224// if you must retry your request, the server will know to ignore the
41225// request if it has already been completed.
41226//
41227// For example, consider a situation where you make an initial request
41228// and the request times out. If you make the request again with the
41229// same request ID, the server can check if original operation with the
41230// same request ID was received, and if so, will ignore the second
41231// request. This prevents clients from accidentally creating duplicate
41232// commitments.
41233//
41234// The request ID must be a valid UUID with the exception that zero UUID
41235// is not supported (00000000-0000-0000-0000-000000000000).
41236func (c *InstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *InstanceGroupManagersDeleteInstancesCall {
41237	c.urlParams_.Set("requestId", requestId)
41238	return c
41239}
41240
41241// Fields allows partial responses to be retrieved. See
41242// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
41243// for more information.
41244func (c *InstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteInstancesCall {
41245	c.urlParams_.Set("fields", googleapi.CombineFields(s))
41246	return c
41247}
41248
41249// Context sets the context to be used in this call's Do method. Any
41250// pending HTTP request will be aborted if the provided context is
41251// canceled.
41252func (c *InstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *InstanceGroupManagersDeleteInstancesCall {
41253	c.ctx_ = ctx
41254	return c
41255}
41256
41257// Header returns an http.Header that can be modified by the caller to
41258// add HTTP headers to the request.
41259func (c *InstanceGroupManagersDeleteInstancesCall) Header() http.Header {
41260	if c.header_ == nil {
41261		c.header_ = make(http.Header)
41262	}
41263	return c.header_
41264}
41265
41266func (c *InstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
41267	reqHeaders := make(http.Header)
41268	for k, v := range c.header_ {
41269		reqHeaders[k] = v
41270	}
41271	reqHeaders.Set("User-Agent", c.s.userAgent())
41272	var body io.Reader = nil
41273	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteinstancesrequest)
41274	if err != nil {
41275		return nil, err
41276	}
41277	reqHeaders.Set("Content-Type", "application/json")
41278	c.urlParams_.Set("alt", alt)
41279	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
41280	urls += "?" + c.urlParams_.Encode()
41281	req, _ := http.NewRequest("POST", urls, body)
41282	req.Header = reqHeaders
41283	googleapi.Expand(req.URL, map[string]string{
41284		"project":              c.project,
41285		"zone":                 c.zone,
41286		"instanceGroupManager": c.instanceGroupManager,
41287	})
41288	return gensupport.SendRequest(c.ctx_, c.s.client, req)
41289}
41290
41291// Do executes the "compute.instanceGroupManagers.deleteInstances" call.
41292// Exactly one of *Operation or error will be non-nil. Any non-2xx
41293// status code is an error. Response headers are in either
41294// *Operation.ServerResponse.Header or (if a response was returned at
41295// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
41296// to check whether the returned error was because
41297// http.StatusNotModified was returned.
41298func (c *InstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
41299	gensupport.SetOptions(c.urlParams_, opts...)
41300	res, err := c.doRequest("json")
41301	if res != nil && res.StatusCode == http.StatusNotModified {
41302		if res.Body != nil {
41303			res.Body.Close()
41304		}
41305		return nil, &googleapi.Error{
41306			Code:   res.StatusCode,
41307			Header: res.Header,
41308		}
41309	}
41310	if err != nil {
41311		return nil, err
41312	}
41313	defer googleapi.CloseBody(res)
41314	if err := googleapi.CheckResponse(res); err != nil {
41315		return nil, err
41316	}
41317	ret := &Operation{
41318		ServerResponse: googleapi.ServerResponse{
41319			Header:         res.Header,
41320			HTTPStatusCode: res.StatusCode,
41321		},
41322	}
41323	target := &ret
41324	if err := gensupport.DecodeResponse(target, res); err != nil {
41325		return nil, err
41326	}
41327	return ret, nil
41328	// {
41329	//   "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.",
41330	//   "httpMethod": "POST",
41331	//   "id": "compute.instanceGroupManagers.deleteInstances",
41332	//   "parameterOrder": [
41333	//     "project",
41334	//     "zone",
41335	//     "instanceGroupManager"
41336	//   ],
41337	//   "parameters": {
41338	//     "instanceGroupManager": {
41339	//       "description": "The name of the managed instance group.",
41340	//       "location": "path",
41341	//       "required": true,
41342	//       "type": "string"
41343	//     },
41344	//     "project": {
41345	//       "description": "Project ID for this request.",
41346	//       "location": "path",
41347	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
41348	//       "required": true,
41349	//       "type": "string"
41350	//     },
41351	//     "requestId": {
41352	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
41353	//       "location": "query",
41354	//       "type": "string"
41355	//     },
41356	//     "zone": {
41357	//       "description": "The name of the zone where the managed instance group is located.",
41358	//       "location": "path",
41359	//       "required": true,
41360	//       "type": "string"
41361	//     }
41362	//   },
41363	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
41364	//   "request": {
41365	//     "$ref": "InstanceGroupManagersDeleteInstancesRequest"
41366	//   },
41367	//   "response": {
41368	//     "$ref": "Operation"
41369	//   },
41370	//   "scopes": [
41371	//     "https://www.googleapis.com/auth/cloud-platform",
41372	//     "https://www.googleapis.com/auth/compute"
41373	//   ]
41374	// }
41375
41376}
41377
41378// method id "compute.instanceGroupManagers.get":
41379
41380type InstanceGroupManagersGetCall struct {
41381	s                    *Service
41382	project              string
41383	zone                 string
41384	instanceGroupManager string
41385	urlParams_           gensupport.URLParams
41386	ifNoneMatch_         string
41387	ctx_                 context.Context
41388	header_              http.Header
41389}
41390
41391// Get: Returns all of the details about the specified managed instance
41392// group. Get a list of available managed instance groups by making a
41393// list() request.
41394func (r *InstanceGroupManagersService) Get(project string, zone string, instanceGroupManager string) *InstanceGroupManagersGetCall {
41395	c := &InstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
41396	c.project = project
41397	c.zone = zone
41398	c.instanceGroupManager = instanceGroupManager
41399	return c
41400}
41401
41402// Fields allows partial responses to be retrieved. See
41403// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
41404// for more information.
41405func (c *InstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *InstanceGroupManagersGetCall {
41406	c.urlParams_.Set("fields", googleapi.CombineFields(s))
41407	return c
41408}
41409
41410// IfNoneMatch sets the optional parameter which makes the operation
41411// fail if the object's ETag matches the given value. This is useful for
41412// getting updates only after the object has changed since the last
41413// request. Use googleapi.IsNotModified to check whether the response
41414// error from Do is the result of In-None-Match.
41415func (c *InstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *InstanceGroupManagersGetCall {
41416	c.ifNoneMatch_ = entityTag
41417	return c
41418}
41419
41420// Context sets the context to be used in this call's Do method. Any
41421// pending HTTP request will be aborted if the provided context is
41422// canceled.
41423func (c *InstanceGroupManagersGetCall) Context(ctx context.Context) *InstanceGroupManagersGetCall {
41424	c.ctx_ = ctx
41425	return c
41426}
41427
41428// Header returns an http.Header that can be modified by the caller to
41429// add HTTP headers to the request.
41430func (c *InstanceGroupManagersGetCall) Header() http.Header {
41431	if c.header_ == nil {
41432		c.header_ = make(http.Header)
41433	}
41434	return c.header_
41435}
41436
41437func (c *InstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
41438	reqHeaders := make(http.Header)
41439	for k, v := range c.header_ {
41440		reqHeaders[k] = v
41441	}
41442	reqHeaders.Set("User-Agent", c.s.userAgent())
41443	if c.ifNoneMatch_ != "" {
41444		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
41445	}
41446	var body io.Reader = nil
41447	c.urlParams_.Set("alt", alt)
41448	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
41449	urls += "?" + c.urlParams_.Encode()
41450	req, _ := http.NewRequest("GET", urls, body)
41451	req.Header = reqHeaders
41452	googleapi.Expand(req.URL, map[string]string{
41453		"project":              c.project,
41454		"zone":                 c.zone,
41455		"instanceGroupManager": c.instanceGroupManager,
41456	})
41457	return gensupport.SendRequest(c.ctx_, c.s.client, req)
41458}
41459
41460// Do executes the "compute.instanceGroupManagers.get" call.
41461// Exactly one of *InstanceGroupManager or error will be non-nil. Any
41462// non-2xx status code is an error. Response headers are in either
41463// *InstanceGroupManager.ServerResponse.Header or (if a response was
41464// returned at all) in error.(*googleapi.Error).Header. Use
41465// googleapi.IsNotModified to check whether the returned error was
41466// because http.StatusNotModified was returned.
41467func (c *InstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
41468	gensupport.SetOptions(c.urlParams_, opts...)
41469	res, err := c.doRequest("json")
41470	if res != nil && res.StatusCode == http.StatusNotModified {
41471		if res.Body != nil {
41472			res.Body.Close()
41473		}
41474		return nil, &googleapi.Error{
41475			Code:   res.StatusCode,
41476			Header: res.Header,
41477		}
41478	}
41479	if err != nil {
41480		return nil, err
41481	}
41482	defer googleapi.CloseBody(res)
41483	if err := googleapi.CheckResponse(res); err != nil {
41484		return nil, err
41485	}
41486	ret := &InstanceGroupManager{
41487		ServerResponse: googleapi.ServerResponse{
41488			Header:         res.Header,
41489			HTTPStatusCode: res.StatusCode,
41490		},
41491	}
41492	target := &ret
41493	if err := gensupport.DecodeResponse(target, res); err != nil {
41494		return nil, err
41495	}
41496	return ret, nil
41497	// {
41498	//   "description": "Returns all of the details about the specified managed instance group. Get a list of available managed instance groups by making a list() request.",
41499	//   "httpMethod": "GET",
41500	//   "id": "compute.instanceGroupManagers.get",
41501	//   "parameterOrder": [
41502	//     "project",
41503	//     "zone",
41504	//     "instanceGroupManager"
41505	//   ],
41506	//   "parameters": {
41507	//     "instanceGroupManager": {
41508	//       "description": "The name of the managed instance group.",
41509	//       "location": "path",
41510	//       "required": true,
41511	//       "type": "string"
41512	//     },
41513	//     "project": {
41514	//       "description": "Project ID for this request.",
41515	//       "location": "path",
41516	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
41517	//       "required": true,
41518	//       "type": "string"
41519	//     },
41520	//     "zone": {
41521	//       "description": "The name of the zone where the managed instance group is located.",
41522	//       "location": "path",
41523	//       "required": true,
41524	//       "type": "string"
41525	//     }
41526	//   },
41527	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
41528	//   "response": {
41529	//     "$ref": "InstanceGroupManager"
41530	//   },
41531	//   "scopes": [
41532	//     "https://www.googleapis.com/auth/cloud-platform",
41533	//     "https://www.googleapis.com/auth/compute",
41534	//     "https://www.googleapis.com/auth/compute.readonly"
41535	//   ]
41536	// }
41537
41538}
41539
41540// method id "compute.instanceGroupManagers.insert":
41541
41542type InstanceGroupManagersInsertCall struct {
41543	s                    *Service
41544	project              string
41545	zone                 string
41546	instancegroupmanager *InstanceGroupManager
41547	urlParams_           gensupport.URLParams
41548	ctx_                 context.Context
41549	header_              http.Header
41550}
41551
41552// Insert: Creates a managed instance group using the information that
41553// you specify in the request. After the group is created, it schedules
41554// an action to create instances in the group using the specified
41555// instance template. This operation is marked as DONE when the group is
41556// created even if the instances in the group have not yet been created.
41557// You must separately verify the status of the individual instances
41558// with the listmanagedinstances method.
41559//
41560// A managed instance group can have up to 1000 VM instances per group.
41561// Please contact Cloud Support if you need an increase in this limit.
41562func (r *InstanceGroupManagersService) Insert(project string, zone string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersInsertCall {
41563	c := &InstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
41564	c.project = project
41565	c.zone = zone
41566	c.instancegroupmanager = instancegroupmanager
41567	return c
41568}
41569
41570// RequestId sets the optional parameter "requestId": An optional
41571// request ID to identify requests. Specify a unique request ID so that
41572// if you must retry your request, the server will know to ignore the
41573// request if it has already been completed.
41574//
41575// For example, consider a situation where you make an initial request
41576// and the request times out. If you make the request again with the
41577// same request ID, the server can check if original operation with the
41578// same request ID was received, and if so, will ignore the second
41579// request. This prevents clients from accidentally creating duplicate
41580// commitments.
41581//
41582// The request ID must be a valid UUID with the exception that zero UUID
41583// is not supported (00000000-0000-0000-0000-000000000000).
41584func (c *InstanceGroupManagersInsertCall) RequestId(requestId string) *InstanceGroupManagersInsertCall {
41585	c.urlParams_.Set("requestId", requestId)
41586	return c
41587}
41588
41589// Fields allows partial responses to be retrieved. See
41590// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
41591// for more information.
41592func (c *InstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *InstanceGroupManagersInsertCall {
41593	c.urlParams_.Set("fields", googleapi.CombineFields(s))
41594	return c
41595}
41596
41597// Context sets the context to be used in this call's Do method. Any
41598// pending HTTP request will be aborted if the provided context is
41599// canceled.
41600func (c *InstanceGroupManagersInsertCall) Context(ctx context.Context) *InstanceGroupManagersInsertCall {
41601	c.ctx_ = ctx
41602	return c
41603}
41604
41605// Header returns an http.Header that can be modified by the caller to
41606// add HTTP headers to the request.
41607func (c *InstanceGroupManagersInsertCall) Header() http.Header {
41608	if c.header_ == nil {
41609		c.header_ = make(http.Header)
41610	}
41611	return c.header_
41612}
41613
41614func (c *InstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
41615	reqHeaders := make(http.Header)
41616	for k, v := range c.header_ {
41617		reqHeaders[k] = v
41618	}
41619	reqHeaders.Set("User-Agent", c.s.userAgent())
41620	var body io.Reader = nil
41621	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
41622	if err != nil {
41623		return nil, err
41624	}
41625	reqHeaders.Set("Content-Type", "application/json")
41626	c.urlParams_.Set("alt", alt)
41627	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers")
41628	urls += "?" + c.urlParams_.Encode()
41629	req, _ := http.NewRequest("POST", urls, body)
41630	req.Header = reqHeaders
41631	googleapi.Expand(req.URL, map[string]string{
41632		"project": c.project,
41633		"zone":    c.zone,
41634	})
41635	return gensupport.SendRequest(c.ctx_, c.s.client, req)
41636}
41637
41638// Do executes the "compute.instanceGroupManagers.insert" call.
41639// Exactly one of *Operation or error will be non-nil. Any non-2xx
41640// status code is an error. Response headers are in either
41641// *Operation.ServerResponse.Header or (if a response was returned at
41642// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
41643// to check whether the returned error was because
41644// http.StatusNotModified was returned.
41645func (c *InstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
41646	gensupport.SetOptions(c.urlParams_, opts...)
41647	res, err := c.doRequest("json")
41648	if res != nil && res.StatusCode == http.StatusNotModified {
41649		if res.Body != nil {
41650			res.Body.Close()
41651		}
41652		return nil, &googleapi.Error{
41653			Code:   res.StatusCode,
41654			Header: res.Header,
41655		}
41656	}
41657	if err != nil {
41658		return nil, err
41659	}
41660	defer googleapi.CloseBody(res)
41661	if err := googleapi.CheckResponse(res); err != nil {
41662		return nil, err
41663	}
41664	ret := &Operation{
41665		ServerResponse: googleapi.ServerResponse{
41666			Header:         res.Header,
41667			HTTPStatusCode: res.StatusCode,
41668		},
41669	}
41670	target := &ret
41671	if err := gensupport.DecodeResponse(target, res); err != nil {
41672		return nil, err
41673	}
41674	return ret, nil
41675	// {
41676	//   "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.",
41677	//   "httpMethod": "POST",
41678	//   "id": "compute.instanceGroupManagers.insert",
41679	//   "parameterOrder": [
41680	//     "project",
41681	//     "zone"
41682	//   ],
41683	//   "parameters": {
41684	//     "project": {
41685	//       "description": "Project ID for this request.",
41686	//       "location": "path",
41687	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
41688	//       "required": true,
41689	//       "type": "string"
41690	//     },
41691	//     "requestId": {
41692	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
41693	//       "location": "query",
41694	//       "type": "string"
41695	//     },
41696	//     "zone": {
41697	//       "description": "The name of the zone where you want to create the managed instance group.",
41698	//       "location": "path",
41699	//       "required": true,
41700	//       "type": "string"
41701	//     }
41702	//   },
41703	//   "path": "{project}/zones/{zone}/instanceGroupManagers",
41704	//   "request": {
41705	//     "$ref": "InstanceGroupManager"
41706	//   },
41707	//   "response": {
41708	//     "$ref": "Operation"
41709	//   },
41710	//   "scopes": [
41711	//     "https://www.googleapis.com/auth/cloud-platform",
41712	//     "https://www.googleapis.com/auth/compute"
41713	//   ]
41714	// }
41715
41716}
41717
41718// method id "compute.instanceGroupManagers.list":
41719
41720type InstanceGroupManagersListCall struct {
41721	s            *Service
41722	project      string
41723	zone         string
41724	urlParams_   gensupport.URLParams
41725	ifNoneMatch_ string
41726	ctx_         context.Context
41727	header_      http.Header
41728}
41729
41730// List: Retrieves a list of managed instance groups that are contained
41731// within the specified project and zone.
41732func (r *InstanceGroupManagersService) List(project string, zone string) *InstanceGroupManagersListCall {
41733	c := &InstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
41734	c.project = project
41735	c.zone = zone
41736	return c
41737}
41738
41739// Filter sets the optional parameter "filter": Sets a filter
41740// {expression} for filtering listed resources. Your {expression} must
41741// be in the format: field_name comparison_string literal_string.
41742//
41743// The field_name is the name of the field you want to compare. Only
41744// atomic field types are supported (string, number, boolean). The
41745// comparison_string must be either eq (equals) or ne (not equals). The
41746// literal_string is the string value to filter to. The literal value
41747// must be valid for the type of field you are filtering by (string,
41748// number, boolean). For string fields, the literal value is interpreted
41749// as a regular expression using RE2 syntax. The literal value must
41750// match the entire field.
41751//
41752// For example, to filter for instances that do not have a name of
41753// example-instance, you would use name ne example-instance.
41754//
41755// You can filter on nested fields. For example, you could filter on
41756// instances that have set the scheduling.automaticRestart field to
41757// true. Use filtering on nested fields to take advantage of labels to
41758// organize and search for results based on label values.
41759//
41760// To filter on multiple expressions, provide each separate expression
41761// within parentheses. For example, (scheduling.automaticRestart eq
41762// true) (zone eq us-central1-f). Multiple expressions are treated as
41763// AND expressions, meaning that resources must match all expressions to
41764// pass the filters.
41765func (c *InstanceGroupManagersListCall) Filter(filter string) *InstanceGroupManagersListCall {
41766	c.urlParams_.Set("filter", filter)
41767	return c
41768}
41769
41770// MaxResults sets the optional parameter "maxResults": The maximum
41771// number of results per page that should be returned. If the number of
41772// available results is larger than maxResults, Compute Engine returns a
41773// nextPageToken that can be used to get the next page of results in
41774// subsequent list requests. Acceptable values are 0 to 500, inclusive.
41775// (Default: 500)
41776func (c *InstanceGroupManagersListCall) MaxResults(maxResults int64) *InstanceGroupManagersListCall {
41777	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
41778	return c
41779}
41780
41781// OrderBy sets the optional parameter "orderBy": Sorts list results by
41782// a certain order. By default, results are returned in alphanumerical
41783// order based on the resource name.
41784//
41785// You can also sort results in descending order based on the creation
41786// timestamp using orderBy="creationTimestamp desc". This sorts results
41787// based on the creationTimestamp field in reverse chronological order
41788// (newest result first). Use this to sort resources like operations so
41789// that the newest operation is returned first.
41790//
41791// Currently, only sorting by name or creationTimestamp desc is
41792// supported.
41793func (c *InstanceGroupManagersListCall) OrderBy(orderBy string) *InstanceGroupManagersListCall {
41794	c.urlParams_.Set("orderBy", orderBy)
41795	return c
41796}
41797
41798// PageToken sets the optional parameter "pageToken": Specifies a page
41799// token to use. Set pageToken to the nextPageToken returned by a
41800// previous list request to get the next page of results.
41801func (c *InstanceGroupManagersListCall) PageToken(pageToken string) *InstanceGroupManagersListCall {
41802	c.urlParams_.Set("pageToken", pageToken)
41803	return c
41804}
41805
41806// Fields allows partial responses to be retrieved. See
41807// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
41808// for more information.
41809func (c *InstanceGroupManagersListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListCall {
41810	c.urlParams_.Set("fields", googleapi.CombineFields(s))
41811	return c
41812}
41813
41814// IfNoneMatch sets the optional parameter which makes the operation
41815// fail if the object's ETag matches the given value. This is useful for
41816// getting updates only after the object has changed since the last
41817// request. Use googleapi.IsNotModified to check whether the response
41818// error from Do is the result of In-None-Match.
41819func (c *InstanceGroupManagersListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListCall {
41820	c.ifNoneMatch_ = entityTag
41821	return c
41822}
41823
41824// Context sets the context to be used in this call's Do method. Any
41825// pending HTTP request will be aborted if the provided context is
41826// canceled.
41827func (c *InstanceGroupManagersListCall) Context(ctx context.Context) *InstanceGroupManagersListCall {
41828	c.ctx_ = ctx
41829	return c
41830}
41831
41832// Header returns an http.Header that can be modified by the caller to
41833// add HTTP headers to the request.
41834func (c *InstanceGroupManagersListCall) Header() http.Header {
41835	if c.header_ == nil {
41836		c.header_ = make(http.Header)
41837	}
41838	return c.header_
41839}
41840
41841func (c *InstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
41842	reqHeaders := make(http.Header)
41843	for k, v := range c.header_ {
41844		reqHeaders[k] = v
41845	}
41846	reqHeaders.Set("User-Agent", c.s.userAgent())
41847	if c.ifNoneMatch_ != "" {
41848		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
41849	}
41850	var body io.Reader = nil
41851	c.urlParams_.Set("alt", alt)
41852	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers")
41853	urls += "?" + c.urlParams_.Encode()
41854	req, _ := http.NewRequest("GET", urls, body)
41855	req.Header = reqHeaders
41856	googleapi.Expand(req.URL, map[string]string{
41857		"project": c.project,
41858		"zone":    c.zone,
41859	})
41860	return gensupport.SendRequest(c.ctx_, c.s.client, req)
41861}
41862
41863// Do executes the "compute.instanceGroupManagers.list" call.
41864// Exactly one of *InstanceGroupManagerList or error will be non-nil.
41865// Any non-2xx status code is an error. Response headers are in either
41866// *InstanceGroupManagerList.ServerResponse.Header or (if a response was
41867// returned at all) in error.(*googleapi.Error).Header. Use
41868// googleapi.IsNotModified to check whether the returned error was
41869// because http.StatusNotModified was returned.
41870func (c *InstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerList, error) {
41871	gensupport.SetOptions(c.urlParams_, opts...)
41872	res, err := c.doRequest("json")
41873	if res != nil && res.StatusCode == http.StatusNotModified {
41874		if res.Body != nil {
41875			res.Body.Close()
41876		}
41877		return nil, &googleapi.Error{
41878			Code:   res.StatusCode,
41879			Header: res.Header,
41880		}
41881	}
41882	if err != nil {
41883		return nil, err
41884	}
41885	defer googleapi.CloseBody(res)
41886	if err := googleapi.CheckResponse(res); err != nil {
41887		return nil, err
41888	}
41889	ret := &InstanceGroupManagerList{
41890		ServerResponse: googleapi.ServerResponse{
41891			Header:         res.Header,
41892			HTTPStatusCode: res.StatusCode,
41893		},
41894	}
41895	target := &ret
41896	if err := gensupport.DecodeResponse(target, res); err != nil {
41897		return nil, err
41898	}
41899	return ret, nil
41900	// {
41901	//   "description": "Retrieves a list of managed instance groups that are contained within the specified project and zone.",
41902	//   "httpMethod": "GET",
41903	//   "id": "compute.instanceGroupManagers.list",
41904	//   "parameterOrder": [
41905	//     "project",
41906	//     "zone"
41907	//   ],
41908	//   "parameters": {
41909	//     "filter": {
41910	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
41911	//       "location": "query",
41912	//       "type": "string"
41913	//     },
41914	//     "maxResults": {
41915	//       "default": "500",
41916	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
41917	//       "format": "uint32",
41918	//       "location": "query",
41919	//       "minimum": "0",
41920	//       "type": "integer"
41921	//     },
41922	//     "orderBy": {
41923	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
41924	//       "location": "query",
41925	//       "type": "string"
41926	//     },
41927	//     "pageToken": {
41928	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
41929	//       "location": "query",
41930	//       "type": "string"
41931	//     },
41932	//     "project": {
41933	//       "description": "Project ID for this request.",
41934	//       "location": "path",
41935	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
41936	//       "required": true,
41937	//       "type": "string"
41938	//     },
41939	//     "zone": {
41940	//       "description": "The name of the zone where the managed instance group is located.",
41941	//       "location": "path",
41942	//       "required": true,
41943	//       "type": "string"
41944	//     }
41945	//   },
41946	//   "path": "{project}/zones/{zone}/instanceGroupManagers",
41947	//   "response": {
41948	//     "$ref": "InstanceGroupManagerList"
41949	//   },
41950	//   "scopes": [
41951	//     "https://www.googleapis.com/auth/cloud-platform",
41952	//     "https://www.googleapis.com/auth/compute",
41953	//     "https://www.googleapis.com/auth/compute.readonly"
41954	//   ]
41955	// }
41956
41957}
41958
41959// Pages invokes f for each page of results.
41960// A non-nil error returned from f will halt the iteration.
41961// The provided context supersedes any context provided to the Context method.
41962func (c *InstanceGroupManagersListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerList) error) error {
41963	c.ctx_ = ctx
41964	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
41965	for {
41966		x, err := c.Do()
41967		if err != nil {
41968			return err
41969		}
41970		if err := f(x); err != nil {
41971			return err
41972		}
41973		if x.NextPageToken == "" {
41974			return nil
41975		}
41976		c.PageToken(x.NextPageToken)
41977	}
41978}
41979
41980// method id "compute.instanceGroupManagers.listManagedInstances":
41981
41982type InstanceGroupManagersListManagedInstancesCall struct {
41983	s                    *Service
41984	project              string
41985	zone                 string
41986	instanceGroupManager string
41987	urlParams_           gensupport.URLParams
41988	ctx_                 context.Context
41989	header_              http.Header
41990}
41991
41992// ListManagedInstances: Lists all of the instances in the managed
41993// instance group. Each instance in the list has a currentAction, which
41994// indicates the action that the managed instance group is performing on
41995// the instance. For example, if the group is still creating an
41996// instance, the currentAction is CREATING. If a previous action failed,
41997// the list displays the errors for that failed action.
41998func (r *InstanceGroupManagersService) ListManagedInstances(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListManagedInstancesCall {
41999	c := &InstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
42000	c.project = project
42001	c.zone = zone
42002	c.instanceGroupManager = instanceGroupManager
42003	return c
42004}
42005
42006// Filter sets the optional parameter "filter":
42007func (c *InstanceGroupManagersListManagedInstancesCall) Filter(filter string) *InstanceGroupManagersListManagedInstancesCall {
42008	c.urlParams_.Set("filter", filter)
42009	return c
42010}
42011
42012// MaxResults sets the optional parameter "maxResults":
42013func (c *InstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *InstanceGroupManagersListManagedInstancesCall {
42014	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
42015	return c
42016}
42017
42018// OrderBy sets the optional parameter "order_by":
42019func (c *InstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *InstanceGroupManagersListManagedInstancesCall {
42020	c.urlParams_.Set("order_by", orderBy)
42021	return c
42022}
42023
42024// PageToken sets the optional parameter "pageToken":
42025func (c *InstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *InstanceGroupManagersListManagedInstancesCall {
42026	c.urlParams_.Set("pageToken", pageToken)
42027	return c
42028}
42029
42030// Fields allows partial responses to be retrieved. See
42031// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
42032// for more information.
42033func (c *InstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListManagedInstancesCall {
42034	c.urlParams_.Set("fields", googleapi.CombineFields(s))
42035	return c
42036}
42037
42038// Context sets the context to be used in this call's Do method. Any
42039// pending HTTP request will be aborted if the provided context is
42040// canceled.
42041func (c *InstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *InstanceGroupManagersListManagedInstancesCall {
42042	c.ctx_ = ctx
42043	return c
42044}
42045
42046// Header returns an http.Header that can be modified by the caller to
42047// add HTTP headers to the request.
42048func (c *InstanceGroupManagersListManagedInstancesCall) Header() http.Header {
42049	if c.header_ == nil {
42050		c.header_ = make(http.Header)
42051	}
42052	return c.header_
42053}
42054
42055func (c *InstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
42056	reqHeaders := make(http.Header)
42057	for k, v := range c.header_ {
42058		reqHeaders[k] = v
42059	}
42060	reqHeaders.Set("User-Agent", c.s.userAgent())
42061	var body io.Reader = nil
42062	c.urlParams_.Set("alt", alt)
42063	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
42064	urls += "?" + c.urlParams_.Encode()
42065	req, _ := http.NewRequest("POST", urls, body)
42066	req.Header = reqHeaders
42067	googleapi.Expand(req.URL, map[string]string{
42068		"project":              c.project,
42069		"zone":                 c.zone,
42070		"instanceGroupManager": c.instanceGroupManager,
42071	})
42072	return gensupport.SendRequest(c.ctx_, c.s.client, req)
42073}
42074
42075// Do executes the "compute.instanceGroupManagers.listManagedInstances" call.
42076// Exactly one of *InstanceGroupManagersListManagedInstancesResponse or
42077// error will be non-nil. Any non-2xx status code is an error. Response
42078// headers are in either
42079// *InstanceGroupManagersListManagedInstancesResponse.ServerResponse.Head
42080// er or (if a response was returned at all) in
42081// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
42082// whether the returned error was because http.StatusNotModified was
42083// returned.
42084func (c *InstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListManagedInstancesResponse, error) {
42085	gensupport.SetOptions(c.urlParams_, opts...)
42086	res, err := c.doRequest("json")
42087	if res != nil && res.StatusCode == http.StatusNotModified {
42088		if res.Body != nil {
42089			res.Body.Close()
42090		}
42091		return nil, &googleapi.Error{
42092			Code:   res.StatusCode,
42093			Header: res.Header,
42094		}
42095	}
42096	if err != nil {
42097		return nil, err
42098	}
42099	defer googleapi.CloseBody(res)
42100	if err := googleapi.CheckResponse(res); err != nil {
42101		return nil, err
42102	}
42103	ret := &InstanceGroupManagersListManagedInstancesResponse{
42104		ServerResponse: googleapi.ServerResponse{
42105			Header:         res.Header,
42106			HTTPStatusCode: res.StatusCode,
42107		},
42108	}
42109	target := &ret
42110	if err := gensupport.DecodeResponse(target, res); err != nil {
42111		return nil, err
42112	}
42113	return ret, nil
42114	// {
42115	//   "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.",
42116	//   "httpMethod": "POST",
42117	//   "id": "compute.instanceGroupManagers.listManagedInstances",
42118	//   "parameterOrder": [
42119	//     "project",
42120	//     "zone",
42121	//     "instanceGroupManager"
42122	//   ],
42123	//   "parameters": {
42124	//     "filter": {
42125	//       "location": "query",
42126	//       "type": "string"
42127	//     },
42128	//     "instanceGroupManager": {
42129	//       "description": "The name of the managed instance group.",
42130	//       "location": "path",
42131	//       "required": true,
42132	//       "type": "string"
42133	//     },
42134	//     "maxResults": {
42135	//       "default": "500",
42136	//       "format": "uint32",
42137	//       "location": "query",
42138	//       "minimum": "0",
42139	//       "type": "integer"
42140	//     },
42141	//     "order_by": {
42142	//       "location": "query",
42143	//       "type": "string"
42144	//     },
42145	//     "pageToken": {
42146	//       "location": "query",
42147	//       "type": "string"
42148	//     },
42149	//     "project": {
42150	//       "description": "Project ID for this request.",
42151	//       "location": "path",
42152	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
42153	//       "required": true,
42154	//       "type": "string"
42155	//     },
42156	//     "zone": {
42157	//       "description": "The name of the zone where the managed instance group is located.",
42158	//       "location": "path",
42159	//       "required": true,
42160	//       "type": "string"
42161	//     }
42162	//   },
42163	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
42164	//   "response": {
42165	//     "$ref": "InstanceGroupManagersListManagedInstancesResponse"
42166	//   },
42167	//   "scopes": [
42168	//     "https://www.googleapis.com/auth/cloud-platform",
42169	//     "https://www.googleapis.com/auth/compute",
42170	//     "https://www.googleapis.com/auth/compute.readonly"
42171	//   ]
42172	// }
42173
42174}
42175
42176// method id "compute.instanceGroupManagers.recreateInstances":
42177
42178type InstanceGroupManagersRecreateInstancesCall struct {
42179	s                                             *Service
42180	project                                       string
42181	zone                                          string
42182	instanceGroupManager                          string
42183	instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest
42184	urlParams_                                    gensupport.URLParams
42185	ctx_                                          context.Context
42186	header_                                       http.Header
42187}
42188
42189// RecreateInstances: Schedules a group action to recreate the specified
42190// instances in the managed instance group. The instances are deleted
42191// and recreated using the current instance template for the managed
42192// instance group. This operation is marked as DONE when the action is
42193// scheduled even if the instances have not yet been recreated. You must
42194// separately verify the status of the recreating action with the
42195// listmanagedinstances method.
42196//
42197// If the group is part of a backend service that has enabled connection
42198// draining, it can take up to 60 seconds after the connection draining
42199// duration has elapsed before the VM instance is removed or
42200// deleted.
42201//
42202// You can specify a maximum of 1000 instances with this method per
42203// request.
42204func (r *InstanceGroupManagersService) RecreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest) *InstanceGroupManagersRecreateInstancesCall {
42205	c := &InstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
42206	c.project = project
42207	c.zone = zone
42208	c.instanceGroupManager = instanceGroupManager
42209	c.instancegroupmanagersrecreateinstancesrequest = instancegroupmanagersrecreateinstancesrequest
42210	return c
42211}
42212
42213// RequestId sets the optional parameter "requestId": An optional
42214// request ID to identify requests. Specify a unique request ID so that
42215// if you must retry your request, the server will know to ignore the
42216// request if it has already been completed.
42217//
42218// For example, consider a situation where you make an initial request
42219// and the request times out. If you make the request again with the
42220// same request ID, the server can check if original operation with the
42221// same request ID was received, and if so, will ignore the second
42222// request. This prevents clients from accidentally creating duplicate
42223// commitments.
42224//
42225// The request ID must be a valid UUID with the exception that zero UUID
42226// is not supported (00000000-0000-0000-0000-000000000000).
42227func (c *InstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersRecreateInstancesCall {
42228	c.urlParams_.Set("requestId", requestId)
42229	return c
42230}
42231
42232// Fields allows partial responses to be retrieved. See
42233// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
42234// for more information.
42235func (c *InstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersRecreateInstancesCall {
42236	c.urlParams_.Set("fields", googleapi.CombineFields(s))
42237	return c
42238}
42239
42240// Context sets the context to be used in this call's Do method. Any
42241// pending HTTP request will be aborted if the provided context is
42242// canceled.
42243func (c *InstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersRecreateInstancesCall {
42244	c.ctx_ = ctx
42245	return c
42246}
42247
42248// Header returns an http.Header that can be modified by the caller to
42249// add HTTP headers to the request.
42250func (c *InstanceGroupManagersRecreateInstancesCall) Header() http.Header {
42251	if c.header_ == nil {
42252		c.header_ = make(http.Header)
42253	}
42254	return c.header_
42255}
42256
42257func (c *InstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
42258	reqHeaders := make(http.Header)
42259	for k, v := range c.header_ {
42260		reqHeaders[k] = v
42261	}
42262	reqHeaders.Set("User-Agent", c.s.userAgent())
42263	var body io.Reader = nil
42264	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersrecreateinstancesrequest)
42265	if err != nil {
42266		return nil, err
42267	}
42268	reqHeaders.Set("Content-Type", "application/json")
42269	c.urlParams_.Set("alt", alt)
42270	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
42271	urls += "?" + c.urlParams_.Encode()
42272	req, _ := http.NewRequest("POST", urls, body)
42273	req.Header = reqHeaders
42274	googleapi.Expand(req.URL, map[string]string{
42275		"project":              c.project,
42276		"zone":                 c.zone,
42277		"instanceGroupManager": c.instanceGroupManager,
42278	})
42279	return gensupport.SendRequest(c.ctx_, c.s.client, req)
42280}
42281
42282// Do executes the "compute.instanceGroupManagers.recreateInstances" call.
42283// Exactly one of *Operation or error will be non-nil. Any non-2xx
42284// status code is an error. Response headers are in either
42285// *Operation.ServerResponse.Header or (if a response was returned at
42286// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
42287// to check whether the returned error was because
42288// http.StatusNotModified was returned.
42289func (c *InstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
42290	gensupport.SetOptions(c.urlParams_, opts...)
42291	res, err := c.doRequest("json")
42292	if res != nil && res.StatusCode == http.StatusNotModified {
42293		if res.Body != nil {
42294			res.Body.Close()
42295		}
42296		return nil, &googleapi.Error{
42297			Code:   res.StatusCode,
42298			Header: res.Header,
42299		}
42300	}
42301	if err != nil {
42302		return nil, err
42303	}
42304	defer googleapi.CloseBody(res)
42305	if err := googleapi.CheckResponse(res); err != nil {
42306		return nil, err
42307	}
42308	ret := &Operation{
42309		ServerResponse: googleapi.ServerResponse{
42310			Header:         res.Header,
42311			HTTPStatusCode: res.StatusCode,
42312		},
42313	}
42314	target := &ret
42315	if err := gensupport.DecodeResponse(target, res); err != nil {
42316		return nil, err
42317	}
42318	return ret, nil
42319	// {
42320	//   "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.",
42321	//   "httpMethod": "POST",
42322	//   "id": "compute.instanceGroupManagers.recreateInstances",
42323	//   "parameterOrder": [
42324	//     "project",
42325	//     "zone",
42326	//     "instanceGroupManager"
42327	//   ],
42328	//   "parameters": {
42329	//     "instanceGroupManager": {
42330	//       "description": "The name of the managed instance group.",
42331	//       "location": "path",
42332	//       "required": true,
42333	//       "type": "string"
42334	//     },
42335	//     "project": {
42336	//       "description": "Project ID for this request.",
42337	//       "location": "path",
42338	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
42339	//       "required": true,
42340	//       "type": "string"
42341	//     },
42342	//     "requestId": {
42343	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
42344	//       "location": "query",
42345	//       "type": "string"
42346	//     },
42347	//     "zone": {
42348	//       "description": "The name of the zone where the managed instance group is located.",
42349	//       "location": "path",
42350	//       "required": true,
42351	//       "type": "string"
42352	//     }
42353	//   },
42354	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
42355	//   "request": {
42356	//     "$ref": "InstanceGroupManagersRecreateInstancesRequest"
42357	//   },
42358	//   "response": {
42359	//     "$ref": "Operation"
42360	//   },
42361	//   "scopes": [
42362	//     "https://www.googleapis.com/auth/cloud-platform",
42363	//     "https://www.googleapis.com/auth/compute"
42364	//   ]
42365	// }
42366
42367}
42368
42369// method id "compute.instanceGroupManagers.resize":
42370
42371type InstanceGroupManagersResizeCall struct {
42372	s                    *Service
42373	project              string
42374	zone                 string
42375	instanceGroupManager string
42376	urlParams_           gensupport.URLParams
42377	ctx_                 context.Context
42378	header_              http.Header
42379}
42380
42381// Resize: Resizes the managed instance group. If you increase the size,
42382// the group creates new instances using the current instance template.
42383// If you decrease the size, the group deletes instances. The resize
42384// operation is marked DONE when the resize actions are scheduled even
42385// if the group has not yet added or deleted any instances. You must
42386// separately verify the status of the creating or deleting actions with
42387// the listmanagedinstances method.
42388//
42389// If the group is part of a backend service that has enabled connection
42390// draining, it can take up to 60 seconds after the connection draining
42391// duration has elapsed before the VM instance is removed or deleted.
42392func (r *InstanceGroupManagersService) Resize(project string, zone string, instanceGroupManager string, size int64) *InstanceGroupManagersResizeCall {
42393	c := &InstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
42394	c.project = project
42395	c.zone = zone
42396	c.instanceGroupManager = instanceGroupManager
42397	c.urlParams_.Set("size", fmt.Sprint(size))
42398	return c
42399}
42400
42401// RequestId sets the optional parameter "requestId": An optional
42402// request ID to identify requests. Specify a unique request ID so that
42403// if you must retry your request, the server will know to ignore the
42404// request if it has already been completed.
42405//
42406// For example, consider a situation where you make an initial request
42407// and the request times out. If you make the request again with the
42408// same request ID, the server can check if original operation with the
42409// same request ID was received, and if so, will ignore the second
42410// request. This prevents clients from accidentally creating duplicate
42411// commitments.
42412//
42413// The request ID must be a valid UUID with the exception that zero UUID
42414// is not supported (00000000-0000-0000-0000-000000000000).
42415func (c *InstanceGroupManagersResizeCall) RequestId(requestId string) *InstanceGroupManagersResizeCall {
42416	c.urlParams_.Set("requestId", requestId)
42417	return c
42418}
42419
42420// Fields allows partial responses to be retrieved. See
42421// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
42422// for more information.
42423func (c *InstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeCall {
42424	c.urlParams_.Set("fields", googleapi.CombineFields(s))
42425	return c
42426}
42427
42428// Context sets the context to be used in this call's Do method. Any
42429// pending HTTP request will be aborted if the provided context is
42430// canceled.
42431func (c *InstanceGroupManagersResizeCall) Context(ctx context.Context) *InstanceGroupManagersResizeCall {
42432	c.ctx_ = ctx
42433	return c
42434}
42435
42436// Header returns an http.Header that can be modified by the caller to
42437// add HTTP headers to the request.
42438func (c *InstanceGroupManagersResizeCall) Header() http.Header {
42439	if c.header_ == nil {
42440		c.header_ = make(http.Header)
42441	}
42442	return c.header_
42443}
42444
42445func (c *InstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
42446	reqHeaders := make(http.Header)
42447	for k, v := range c.header_ {
42448		reqHeaders[k] = v
42449	}
42450	reqHeaders.Set("User-Agent", c.s.userAgent())
42451	var body io.Reader = nil
42452	c.urlParams_.Set("alt", alt)
42453	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize")
42454	urls += "?" + c.urlParams_.Encode()
42455	req, _ := http.NewRequest("POST", urls, body)
42456	req.Header = reqHeaders
42457	googleapi.Expand(req.URL, map[string]string{
42458		"project":              c.project,
42459		"zone":                 c.zone,
42460		"instanceGroupManager": c.instanceGroupManager,
42461	})
42462	return gensupport.SendRequest(c.ctx_, c.s.client, req)
42463}
42464
42465// Do executes the "compute.instanceGroupManagers.resize" call.
42466// Exactly one of *Operation or error will be non-nil. Any non-2xx
42467// status code is an error. Response headers are in either
42468// *Operation.ServerResponse.Header or (if a response was returned at
42469// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
42470// to check whether the returned error was because
42471// http.StatusNotModified was returned.
42472func (c *InstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
42473	gensupport.SetOptions(c.urlParams_, opts...)
42474	res, err := c.doRequest("json")
42475	if res != nil && res.StatusCode == http.StatusNotModified {
42476		if res.Body != nil {
42477			res.Body.Close()
42478		}
42479		return nil, &googleapi.Error{
42480			Code:   res.StatusCode,
42481			Header: res.Header,
42482		}
42483	}
42484	if err != nil {
42485		return nil, err
42486	}
42487	defer googleapi.CloseBody(res)
42488	if err := googleapi.CheckResponse(res); err != nil {
42489		return nil, err
42490	}
42491	ret := &Operation{
42492		ServerResponse: googleapi.ServerResponse{
42493			Header:         res.Header,
42494			HTTPStatusCode: res.StatusCode,
42495		},
42496	}
42497	target := &ret
42498	if err := gensupport.DecodeResponse(target, res); err != nil {
42499		return nil, err
42500	}
42501	return ret, nil
42502	// {
42503	//   "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.",
42504	//   "httpMethod": "POST",
42505	//   "id": "compute.instanceGroupManagers.resize",
42506	//   "parameterOrder": [
42507	//     "project",
42508	//     "zone",
42509	//     "instanceGroupManager",
42510	//     "size"
42511	//   ],
42512	//   "parameters": {
42513	//     "instanceGroupManager": {
42514	//       "description": "The name of the managed instance group.",
42515	//       "location": "path",
42516	//       "required": true,
42517	//       "type": "string"
42518	//     },
42519	//     "project": {
42520	//       "description": "Project ID for this request.",
42521	//       "location": "path",
42522	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
42523	//       "required": true,
42524	//       "type": "string"
42525	//     },
42526	//     "requestId": {
42527	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
42528	//       "location": "query",
42529	//       "type": "string"
42530	//     },
42531	//     "size": {
42532	//       "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.",
42533	//       "format": "int32",
42534	//       "location": "query",
42535	//       "required": true,
42536	//       "type": "integer"
42537	//     },
42538	//     "zone": {
42539	//       "description": "The name of the zone where the managed instance group is located.",
42540	//       "location": "path",
42541	//       "required": true,
42542	//       "type": "string"
42543	//     }
42544	//   },
42545	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize",
42546	//   "response": {
42547	//     "$ref": "Operation"
42548	//   },
42549	//   "scopes": [
42550	//     "https://www.googleapis.com/auth/cloud-platform",
42551	//     "https://www.googleapis.com/auth/compute"
42552	//   ]
42553	// }
42554
42555}
42556
42557// method id "compute.instanceGroupManagers.setInstanceTemplate":
42558
42559type InstanceGroupManagersSetInstanceTemplateCall struct {
42560	s                                               *Service
42561	project                                         string
42562	zone                                            string
42563	instanceGroupManager                            string
42564	instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest
42565	urlParams_                                      gensupport.URLParams
42566	ctx_                                            context.Context
42567	header_                                         http.Header
42568}
42569
42570// SetInstanceTemplate: Specifies the instance template to use when
42571// creating new instances in this group. The templates for existing
42572// instances in the group do not change unless you recreate them.
42573func (r *InstanceGroupManagersService) SetInstanceTemplate(project string, zone string, instanceGroupManager string, instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest) *InstanceGroupManagersSetInstanceTemplateCall {
42574	c := &InstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
42575	c.project = project
42576	c.zone = zone
42577	c.instanceGroupManager = instanceGroupManager
42578	c.instancegroupmanagerssetinstancetemplaterequest = instancegroupmanagerssetinstancetemplaterequest
42579	return c
42580}
42581
42582// RequestId sets the optional parameter "requestId": An optional
42583// request ID to identify requests. Specify a unique request ID so that
42584// if you must retry your request, the server will know to ignore the
42585// request if it has already been completed.
42586//
42587// For example, consider a situation where you make an initial request
42588// and the request times out. If you make the request again with the
42589// same request ID, the server can check if original operation with the
42590// same request ID was received, and if so, will ignore the second
42591// request. This prevents clients from accidentally creating duplicate
42592// commitments.
42593//
42594// The request ID must be a valid UUID with the exception that zero UUID
42595// is not supported (00000000-0000-0000-0000-000000000000).
42596func (c *InstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *InstanceGroupManagersSetInstanceTemplateCall {
42597	c.urlParams_.Set("requestId", requestId)
42598	return c
42599}
42600
42601// Fields allows partial responses to be retrieved. See
42602// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
42603// for more information.
42604func (c *InstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetInstanceTemplateCall {
42605	c.urlParams_.Set("fields", googleapi.CombineFields(s))
42606	return c
42607}
42608
42609// Context sets the context to be used in this call's Do method. Any
42610// pending HTTP request will be aborted if the provided context is
42611// canceled.
42612func (c *InstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *InstanceGroupManagersSetInstanceTemplateCall {
42613	c.ctx_ = ctx
42614	return c
42615}
42616
42617// Header returns an http.Header that can be modified by the caller to
42618// add HTTP headers to the request.
42619func (c *InstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
42620	if c.header_ == nil {
42621		c.header_ = make(http.Header)
42622	}
42623	return c.header_
42624}
42625
42626func (c *InstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
42627	reqHeaders := make(http.Header)
42628	for k, v := range c.header_ {
42629		reqHeaders[k] = v
42630	}
42631	reqHeaders.Set("User-Agent", c.s.userAgent())
42632	var body io.Reader = nil
42633	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssetinstancetemplaterequest)
42634	if err != nil {
42635		return nil, err
42636	}
42637	reqHeaders.Set("Content-Type", "application/json")
42638	c.urlParams_.Set("alt", alt)
42639	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
42640	urls += "?" + c.urlParams_.Encode()
42641	req, _ := http.NewRequest("POST", urls, body)
42642	req.Header = reqHeaders
42643	googleapi.Expand(req.URL, map[string]string{
42644		"project":              c.project,
42645		"zone":                 c.zone,
42646		"instanceGroupManager": c.instanceGroupManager,
42647	})
42648	return gensupport.SendRequest(c.ctx_, c.s.client, req)
42649}
42650
42651// Do executes the "compute.instanceGroupManagers.setInstanceTemplate" call.
42652// Exactly one of *Operation or error will be non-nil. Any non-2xx
42653// status code is an error. Response headers are in either
42654// *Operation.ServerResponse.Header or (if a response was returned at
42655// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
42656// to check whether the returned error was because
42657// http.StatusNotModified was returned.
42658func (c *InstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
42659	gensupport.SetOptions(c.urlParams_, opts...)
42660	res, err := c.doRequest("json")
42661	if res != nil && res.StatusCode == http.StatusNotModified {
42662		if res.Body != nil {
42663			res.Body.Close()
42664		}
42665		return nil, &googleapi.Error{
42666			Code:   res.StatusCode,
42667			Header: res.Header,
42668		}
42669	}
42670	if err != nil {
42671		return nil, err
42672	}
42673	defer googleapi.CloseBody(res)
42674	if err := googleapi.CheckResponse(res); err != nil {
42675		return nil, err
42676	}
42677	ret := &Operation{
42678		ServerResponse: googleapi.ServerResponse{
42679			Header:         res.Header,
42680			HTTPStatusCode: res.StatusCode,
42681		},
42682	}
42683	target := &ret
42684	if err := gensupport.DecodeResponse(target, res); err != nil {
42685		return nil, err
42686	}
42687	return ret, nil
42688	// {
42689	//   "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.",
42690	//   "httpMethod": "POST",
42691	//   "id": "compute.instanceGroupManagers.setInstanceTemplate",
42692	//   "parameterOrder": [
42693	//     "project",
42694	//     "zone",
42695	//     "instanceGroupManager"
42696	//   ],
42697	//   "parameters": {
42698	//     "instanceGroupManager": {
42699	//       "description": "The name of the managed instance group.",
42700	//       "location": "path",
42701	//       "required": true,
42702	//       "type": "string"
42703	//     },
42704	//     "project": {
42705	//       "description": "Project ID for this request.",
42706	//       "location": "path",
42707	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
42708	//       "required": true,
42709	//       "type": "string"
42710	//     },
42711	//     "requestId": {
42712	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
42713	//       "location": "query",
42714	//       "type": "string"
42715	//     },
42716	//     "zone": {
42717	//       "description": "The name of the zone where the managed instance group is located.",
42718	//       "location": "path",
42719	//       "required": true,
42720	//       "type": "string"
42721	//     }
42722	//   },
42723	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
42724	//   "request": {
42725	//     "$ref": "InstanceGroupManagersSetInstanceTemplateRequest"
42726	//   },
42727	//   "response": {
42728	//     "$ref": "Operation"
42729	//   },
42730	//   "scopes": [
42731	//     "https://www.googleapis.com/auth/cloud-platform",
42732	//     "https://www.googleapis.com/auth/compute"
42733	//   ]
42734	// }
42735
42736}
42737
42738// method id "compute.instanceGroupManagers.setTargetPools":
42739
42740type InstanceGroupManagersSetTargetPoolsCall struct {
42741	s                                          *Service
42742	project                                    string
42743	zone                                       string
42744	instanceGroupManager                       string
42745	instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest
42746	urlParams_                                 gensupport.URLParams
42747	ctx_                                       context.Context
42748	header_                                    http.Header
42749}
42750
42751// SetTargetPools: Modifies the target pools to which all instances in
42752// this managed instance group are assigned. The target pools
42753// automatically apply to all of the instances in the managed instance
42754// group. This operation is marked DONE when you make the request even
42755// if the instances have not yet been added to their target pools. The
42756// change might take some time to apply to all of the instances in the
42757// group depending on the size of the group.
42758func (r *InstanceGroupManagersService) SetTargetPools(project string, zone string, instanceGroupManager string, instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest) *InstanceGroupManagersSetTargetPoolsCall {
42759	c := &InstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
42760	c.project = project
42761	c.zone = zone
42762	c.instanceGroupManager = instanceGroupManager
42763	c.instancegroupmanagerssettargetpoolsrequest = instancegroupmanagerssettargetpoolsrequest
42764	return c
42765}
42766
42767// RequestId sets the optional parameter "requestId": An optional
42768// request ID to identify requests. Specify a unique request ID so that
42769// if you must retry your request, the server will know to ignore the
42770// request if it has already been completed.
42771//
42772// For example, consider a situation where you make an initial request
42773// and the request times out. If you make the request again with the
42774// same request ID, the server can check if original operation with the
42775// same request ID was received, and if so, will ignore the second
42776// request. This prevents clients from accidentally creating duplicate
42777// commitments.
42778//
42779// The request ID must be a valid UUID with the exception that zero UUID
42780// is not supported (00000000-0000-0000-0000-000000000000).
42781func (c *InstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *InstanceGroupManagersSetTargetPoolsCall {
42782	c.urlParams_.Set("requestId", requestId)
42783	return c
42784}
42785
42786// Fields allows partial responses to be retrieved. See
42787// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
42788// for more information.
42789func (c *InstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetTargetPoolsCall {
42790	c.urlParams_.Set("fields", googleapi.CombineFields(s))
42791	return c
42792}
42793
42794// Context sets the context to be used in this call's Do method. Any
42795// pending HTTP request will be aborted if the provided context is
42796// canceled.
42797func (c *InstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *InstanceGroupManagersSetTargetPoolsCall {
42798	c.ctx_ = ctx
42799	return c
42800}
42801
42802// Header returns an http.Header that can be modified by the caller to
42803// add HTTP headers to the request.
42804func (c *InstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
42805	if c.header_ == nil {
42806		c.header_ = make(http.Header)
42807	}
42808	return c.header_
42809}
42810
42811func (c *InstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
42812	reqHeaders := make(http.Header)
42813	for k, v := range c.header_ {
42814		reqHeaders[k] = v
42815	}
42816	reqHeaders.Set("User-Agent", c.s.userAgent())
42817	var body io.Reader = nil
42818	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssettargetpoolsrequest)
42819	if err != nil {
42820		return nil, err
42821	}
42822	reqHeaders.Set("Content-Type", "application/json")
42823	c.urlParams_.Set("alt", alt)
42824	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
42825	urls += "?" + c.urlParams_.Encode()
42826	req, _ := http.NewRequest("POST", urls, body)
42827	req.Header = reqHeaders
42828	googleapi.Expand(req.URL, map[string]string{
42829		"project":              c.project,
42830		"zone":                 c.zone,
42831		"instanceGroupManager": c.instanceGroupManager,
42832	})
42833	return gensupport.SendRequest(c.ctx_, c.s.client, req)
42834}
42835
42836// Do executes the "compute.instanceGroupManagers.setTargetPools" call.
42837// Exactly one of *Operation or error will be non-nil. Any non-2xx
42838// status code is an error. Response headers are in either
42839// *Operation.ServerResponse.Header or (if a response was returned at
42840// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
42841// to check whether the returned error was because
42842// http.StatusNotModified was returned.
42843func (c *InstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
42844	gensupport.SetOptions(c.urlParams_, opts...)
42845	res, err := c.doRequest("json")
42846	if res != nil && res.StatusCode == http.StatusNotModified {
42847		if res.Body != nil {
42848			res.Body.Close()
42849		}
42850		return nil, &googleapi.Error{
42851			Code:   res.StatusCode,
42852			Header: res.Header,
42853		}
42854	}
42855	if err != nil {
42856		return nil, err
42857	}
42858	defer googleapi.CloseBody(res)
42859	if err := googleapi.CheckResponse(res); err != nil {
42860		return nil, err
42861	}
42862	ret := &Operation{
42863		ServerResponse: googleapi.ServerResponse{
42864			Header:         res.Header,
42865			HTTPStatusCode: res.StatusCode,
42866		},
42867	}
42868	target := &ret
42869	if err := gensupport.DecodeResponse(target, res); err != nil {
42870		return nil, err
42871	}
42872	return ret, nil
42873	// {
42874	//   "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.",
42875	//   "httpMethod": "POST",
42876	//   "id": "compute.instanceGroupManagers.setTargetPools",
42877	//   "parameterOrder": [
42878	//     "project",
42879	//     "zone",
42880	//     "instanceGroupManager"
42881	//   ],
42882	//   "parameters": {
42883	//     "instanceGroupManager": {
42884	//       "description": "The name of the managed instance group.",
42885	//       "location": "path",
42886	//       "required": true,
42887	//       "type": "string"
42888	//     },
42889	//     "project": {
42890	//       "description": "Project ID for this request.",
42891	//       "location": "path",
42892	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
42893	//       "required": true,
42894	//       "type": "string"
42895	//     },
42896	//     "requestId": {
42897	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
42898	//       "location": "query",
42899	//       "type": "string"
42900	//     },
42901	//     "zone": {
42902	//       "description": "The name of the zone where the managed instance group is located.",
42903	//       "location": "path",
42904	//       "required": true,
42905	//       "type": "string"
42906	//     }
42907	//   },
42908	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
42909	//   "request": {
42910	//     "$ref": "InstanceGroupManagersSetTargetPoolsRequest"
42911	//   },
42912	//   "response": {
42913	//     "$ref": "Operation"
42914	//   },
42915	//   "scopes": [
42916	//     "https://www.googleapis.com/auth/cloud-platform",
42917	//     "https://www.googleapis.com/auth/compute"
42918	//   ]
42919	// }
42920
42921}
42922
42923// method id "compute.instanceGroups.addInstances":
42924
42925type InstanceGroupsAddInstancesCall struct {
42926	s                                 *Service
42927	project                           string
42928	zone                              string
42929	instanceGroup                     string
42930	instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest
42931	urlParams_                        gensupport.URLParams
42932	ctx_                              context.Context
42933	header_                           http.Header
42934}
42935
42936// AddInstances: Adds a list of instances to the specified instance
42937// group. All of the instances in the instance group must be in the same
42938// network/subnetwork. Read  Adding instances for more information.
42939func (r *InstanceGroupsService) AddInstances(project string, zone string, instanceGroup string, instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest) *InstanceGroupsAddInstancesCall {
42940	c := &InstanceGroupsAddInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
42941	c.project = project
42942	c.zone = zone
42943	c.instanceGroup = instanceGroup
42944	c.instancegroupsaddinstancesrequest = instancegroupsaddinstancesrequest
42945	return c
42946}
42947
42948// RequestId sets the optional parameter "requestId": An optional
42949// request ID to identify requests. Specify a unique request ID so that
42950// if you must retry your request, the server will know to ignore the
42951// request if it has already been completed.
42952//
42953// For example, consider a situation where you make an initial request
42954// and the request times out. If you make the request again with the
42955// same request ID, the server can check if original operation with the
42956// same request ID was received, and if so, will ignore the second
42957// request. This prevents clients from accidentally creating duplicate
42958// commitments.
42959//
42960// The request ID must be a valid UUID with the exception that zero UUID
42961// is not supported (00000000-0000-0000-0000-000000000000).
42962func (c *InstanceGroupsAddInstancesCall) RequestId(requestId string) *InstanceGroupsAddInstancesCall {
42963	c.urlParams_.Set("requestId", requestId)
42964	return c
42965}
42966
42967// Fields allows partial responses to be retrieved. See
42968// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
42969// for more information.
42970func (c *InstanceGroupsAddInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsAddInstancesCall {
42971	c.urlParams_.Set("fields", googleapi.CombineFields(s))
42972	return c
42973}
42974
42975// Context sets the context to be used in this call's Do method. Any
42976// pending HTTP request will be aborted if the provided context is
42977// canceled.
42978func (c *InstanceGroupsAddInstancesCall) Context(ctx context.Context) *InstanceGroupsAddInstancesCall {
42979	c.ctx_ = ctx
42980	return c
42981}
42982
42983// Header returns an http.Header that can be modified by the caller to
42984// add HTTP headers to the request.
42985func (c *InstanceGroupsAddInstancesCall) Header() http.Header {
42986	if c.header_ == nil {
42987		c.header_ = make(http.Header)
42988	}
42989	return c.header_
42990}
42991
42992func (c *InstanceGroupsAddInstancesCall) doRequest(alt string) (*http.Response, error) {
42993	reqHeaders := make(http.Header)
42994	for k, v := range c.header_ {
42995		reqHeaders[k] = v
42996	}
42997	reqHeaders.Set("User-Agent", c.s.userAgent())
42998	var body io.Reader = nil
42999	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsaddinstancesrequest)
43000	if err != nil {
43001		return nil, err
43002	}
43003	reqHeaders.Set("Content-Type", "application/json")
43004	c.urlParams_.Set("alt", alt)
43005	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances")
43006	urls += "?" + c.urlParams_.Encode()
43007	req, _ := http.NewRequest("POST", urls, body)
43008	req.Header = reqHeaders
43009	googleapi.Expand(req.URL, map[string]string{
43010		"project":       c.project,
43011		"zone":          c.zone,
43012		"instanceGroup": c.instanceGroup,
43013	})
43014	return gensupport.SendRequest(c.ctx_, c.s.client, req)
43015}
43016
43017// Do executes the "compute.instanceGroups.addInstances" call.
43018// Exactly one of *Operation or error will be non-nil. Any non-2xx
43019// status code is an error. Response headers are in either
43020// *Operation.ServerResponse.Header or (if a response was returned at
43021// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
43022// to check whether the returned error was because
43023// http.StatusNotModified was returned.
43024func (c *InstanceGroupsAddInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
43025	gensupport.SetOptions(c.urlParams_, opts...)
43026	res, err := c.doRequest("json")
43027	if res != nil && res.StatusCode == http.StatusNotModified {
43028		if res.Body != nil {
43029			res.Body.Close()
43030		}
43031		return nil, &googleapi.Error{
43032			Code:   res.StatusCode,
43033			Header: res.Header,
43034		}
43035	}
43036	if err != nil {
43037		return nil, err
43038	}
43039	defer googleapi.CloseBody(res)
43040	if err := googleapi.CheckResponse(res); err != nil {
43041		return nil, err
43042	}
43043	ret := &Operation{
43044		ServerResponse: googleapi.ServerResponse{
43045			Header:         res.Header,
43046			HTTPStatusCode: res.StatusCode,
43047		},
43048	}
43049	target := &ret
43050	if err := gensupport.DecodeResponse(target, res); err != nil {
43051		return nil, err
43052	}
43053	return ret, nil
43054	// {
43055	//   "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.",
43056	//   "httpMethod": "POST",
43057	//   "id": "compute.instanceGroups.addInstances",
43058	//   "parameterOrder": [
43059	//     "project",
43060	//     "zone",
43061	//     "instanceGroup"
43062	//   ],
43063	//   "parameters": {
43064	//     "instanceGroup": {
43065	//       "description": "The name of the instance group where you are adding instances.",
43066	//       "location": "path",
43067	//       "required": true,
43068	//       "type": "string"
43069	//     },
43070	//     "project": {
43071	//       "description": "Project ID for this request.",
43072	//       "location": "path",
43073	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43074	//       "required": true,
43075	//       "type": "string"
43076	//     },
43077	//     "requestId": {
43078	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
43079	//       "location": "query",
43080	//       "type": "string"
43081	//     },
43082	//     "zone": {
43083	//       "description": "The name of the zone where the instance group is located.",
43084	//       "location": "path",
43085	//       "required": true,
43086	//       "type": "string"
43087	//     }
43088	//   },
43089	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances",
43090	//   "request": {
43091	//     "$ref": "InstanceGroupsAddInstancesRequest"
43092	//   },
43093	//   "response": {
43094	//     "$ref": "Operation"
43095	//   },
43096	//   "scopes": [
43097	//     "https://www.googleapis.com/auth/cloud-platform",
43098	//     "https://www.googleapis.com/auth/compute"
43099	//   ]
43100	// }
43101
43102}
43103
43104// method id "compute.instanceGroups.aggregatedList":
43105
43106type InstanceGroupsAggregatedListCall struct {
43107	s            *Service
43108	project      string
43109	urlParams_   gensupport.URLParams
43110	ifNoneMatch_ string
43111	ctx_         context.Context
43112	header_      http.Header
43113}
43114
43115// AggregatedList: Retrieves the list of instance groups and sorts them
43116// by zone.
43117func (r *InstanceGroupsService) AggregatedList(project string) *InstanceGroupsAggregatedListCall {
43118	c := &InstanceGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43119	c.project = project
43120	return c
43121}
43122
43123// Filter sets the optional parameter "filter": Sets a filter
43124// {expression} for filtering listed resources. Your {expression} must
43125// be in the format: field_name comparison_string literal_string.
43126//
43127// The field_name is the name of the field you want to compare. Only
43128// atomic field types are supported (string, number, boolean). The
43129// comparison_string must be either eq (equals) or ne (not equals). The
43130// literal_string is the string value to filter to. The literal value
43131// must be valid for the type of field you are filtering by (string,
43132// number, boolean). For string fields, the literal value is interpreted
43133// as a regular expression using RE2 syntax. The literal value must
43134// match the entire field.
43135//
43136// For example, to filter for instances that do not have a name of
43137// example-instance, you would use name ne example-instance.
43138//
43139// You can filter on nested fields. For example, you could filter on
43140// instances that have set the scheduling.automaticRestart field to
43141// true. Use filtering on nested fields to take advantage of labels to
43142// organize and search for results based on label values.
43143//
43144// To filter on multiple expressions, provide each separate expression
43145// within parentheses. For example, (scheduling.automaticRestart eq
43146// true) (zone eq us-central1-f). Multiple expressions are treated as
43147// AND expressions, meaning that resources must match all expressions to
43148// pass the filters.
43149func (c *InstanceGroupsAggregatedListCall) Filter(filter string) *InstanceGroupsAggregatedListCall {
43150	c.urlParams_.Set("filter", filter)
43151	return c
43152}
43153
43154// MaxResults sets the optional parameter "maxResults": The maximum
43155// number of results per page that should be returned. If the number of
43156// available results is larger than maxResults, Compute Engine returns a
43157// nextPageToken that can be used to get the next page of results in
43158// subsequent list requests. Acceptable values are 0 to 500, inclusive.
43159// (Default: 500)
43160func (c *InstanceGroupsAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupsAggregatedListCall {
43161	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
43162	return c
43163}
43164
43165// OrderBy sets the optional parameter "orderBy": Sorts list results by
43166// a certain order. By default, results are returned in alphanumerical
43167// order based on the resource name.
43168//
43169// You can also sort results in descending order based on the creation
43170// timestamp using orderBy="creationTimestamp desc". This sorts results
43171// based on the creationTimestamp field in reverse chronological order
43172// (newest result first). Use this to sort resources like operations so
43173// that the newest operation is returned first.
43174//
43175// Currently, only sorting by name or creationTimestamp desc is
43176// supported.
43177func (c *InstanceGroupsAggregatedListCall) OrderBy(orderBy string) *InstanceGroupsAggregatedListCall {
43178	c.urlParams_.Set("orderBy", orderBy)
43179	return c
43180}
43181
43182// PageToken sets the optional parameter "pageToken": Specifies a page
43183// token to use. Set pageToken to the nextPageToken returned by a
43184// previous list request to get the next page of results.
43185func (c *InstanceGroupsAggregatedListCall) PageToken(pageToken string) *InstanceGroupsAggregatedListCall {
43186	c.urlParams_.Set("pageToken", pageToken)
43187	return c
43188}
43189
43190// Fields allows partial responses to be retrieved. See
43191// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43192// for more information.
43193func (c *InstanceGroupsAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupsAggregatedListCall {
43194	c.urlParams_.Set("fields", googleapi.CombineFields(s))
43195	return c
43196}
43197
43198// IfNoneMatch sets the optional parameter which makes the operation
43199// fail if the object's ETag matches the given value. This is useful for
43200// getting updates only after the object has changed since the last
43201// request. Use googleapi.IsNotModified to check whether the response
43202// error from Do is the result of In-None-Match.
43203func (c *InstanceGroupsAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupsAggregatedListCall {
43204	c.ifNoneMatch_ = entityTag
43205	return c
43206}
43207
43208// Context sets the context to be used in this call's Do method. Any
43209// pending HTTP request will be aborted if the provided context is
43210// canceled.
43211func (c *InstanceGroupsAggregatedListCall) Context(ctx context.Context) *InstanceGroupsAggregatedListCall {
43212	c.ctx_ = ctx
43213	return c
43214}
43215
43216// Header returns an http.Header that can be modified by the caller to
43217// add HTTP headers to the request.
43218func (c *InstanceGroupsAggregatedListCall) Header() http.Header {
43219	if c.header_ == nil {
43220		c.header_ = make(http.Header)
43221	}
43222	return c.header_
43223}
43224
43225func (c *InstanceGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
43226	reqHeaders := make(http.Header)
43227	for k, v := range c.header_ {
43228		reqHeaders[k] = v
43229	}
43230	reqHeaders.Set("User-Agent", c.s.userAgent())
43231	if c.ifNoneMatch_ != "" {
43232		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
43233	}
43234	var body io.Reader = nil
43235	c.urlParams_.Set("alt", alt)
43236	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instanceGroups")
43237	urls += "?" + c.urlParams_.Encode()
43238	req, _ := http.NewRequest("GET", urls, body)
43239	req.Header = reqHeaders
43240	googleapi.Expand(req.URL, map[string]string{
43241		"project": c.project,
43242	})
43243	return gensupport.SendRequest(c.ctx_, c.s.client, req)
43244}
43245
43246// Do executes the "compute.instanceGroups.aggregatedList" call.
43247// Exactly one of *InstanceGroupAggregatedList or error will be non-nil.
43248// Any non-2xx status code is an error. Response headers are in either
43249// *InstanceGroupAggregatedList.ServerResponse.Header or (if a response
43250// was returned at all) in error.(*googleapi.Error).Header. Use
43251// googleapi.IsNotModified to check whether the returned error was
43252// because http.StatusNotModified was returned.
43253func (c *InstanceGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupAggregatedList, error) {
43254	gensupport.SetOptions(c.urlParams_, opts...)
43255	res, err := c.doRequest("json")
43256	if res != nil && res.StatusCode == http.StatusNotModified {
43257		if res.Body != nil {
43258			res.Body.Close()
43259		}
43260		return nil, &googleapi.Error{
43261			Code:   res.StatusCode,
43262			Header: res.Header,
43263		}
43264	}
43265	if err != nil {
43266		return nil, err
43267	}
43268	defer googleapi.CloseBody(res)
43269	if err := googleapi.CheckResponse(res); err != nil {
43270		return nil, err
43271	}
43272	ret := &InstanceGroupAggregatedList{
43273		ServerResponse: googleapi.ServerResponse{
43274			Header:         res.Header,
43275			HTTPStatusCode: res.StatusCode,
43276		},
43277	}
43278	target := &ret
43279	if err := gensupport.DecodeResponse(target, res); err != nil {
43280		return nil, err
43281	}
43282	return ret, nil
43283	// {
43284	//   "description": "Retrieves the list of instance groups and sorts them by zone.",
43285	//   "httpMethod": "GET",
43286	//   "id": "compute.instanceGroups.aggregatedList",
43287	//   "parameterOrder": [
43288	//     "project"
43289	//   ],
43290	//   "parameters": {
43291	//     "filter": {
43292	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
43293	//       "location": "query",
43294	//       "type": "string"
43295	//     },
43296	//     "maxResults": {
43297	//       "default": "500",
43298	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
43299	//       "format": "uint32",
43300	//       "location": "query",
43301	//       "minimum": "0",
43302	//       "type": "integer"
43303	//     },
43304	//     "orderBy": {
43305	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
43306	//       "location": "query",
43307	//       "type": "string"
43308	//     },
43309	//     "pageToken": {
43310	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
43311	//       "location": "query",
43312	//       "type": "string"
43313	//     },
43314	//     "project": {
43315	//       "description": "Project ID for this request.",
43316	//       "location": "path",
43317	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43318	//       "required": true,
43319	//       "type": "string"
43320	//     }
43321	//   },
43322	//   "path": "{project}/aggregated/instanceGroups",
43323	//   "response": {
43324	//     "$ref": "InstanceGroupAggregatedList"
43325	//   },
43326	//   "scopes": [
43327	//     "https://www.googleapis.com/auth/cloud-platform",
43328	//     "https://www.googleapis.com/auth/compute",
43329	//     "https://www.googleapis.com/auth/compute.readonly"
43330	//   ]
43331	// }
43332
43333}
43334
43335// Pages invokes f for each page of results.
43336// A non-nil error returned from f will halt the iteration.
43337// The provided context supersedes any context provided to the Context method.
43338func (c *InstanceGroupsAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupAggregatedList) error) error {
43339	c.ctx_ = ctx
43340	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
43341	for {
43342		x, err := c.Do()
43343		if err != nil {
43344			return err
43345		}
43346		if err := f(x); err != nil {
43347			return err
43348		}
43349		if x.NextPageToken == "" {
43350			return nil
43351		}
43352		c.PageToken(x.NextPageToken)
43353	}
43354}
43355
43356// method id "compute.instanceGroups.delete":
43357
43358type InstanceGroupsDeleteCall struct {
43359	s             *Service
43360	project       string
43361	zone          string
43362	instanceGroup string
43363	urlParams_    gensupport.URLParams
43364	ctx_          context.Context
43365	header_       http.Header
43366}
43367
43368// Delete: Deletes the specified instance group. The instances in the
43369// group are not deleted. Note that instance group must not belong to a
43370// backend service. Read  Deleting an instance group for more
43371// information.
43372func (r *InstanceGroupsService) Delete(project string, zone string, instanceGroup string) *InstanceGroupsDeleteCall {
43373	c := &InstanceGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43374	c.project = project
43375	c.zone = zone
43376	c.instanceGroup = instanceGroup
43377	return c
43378}
43379
43380// RequestId sets the optional parameter "requestId": An optional
43381// request ID to identify requests. Specify a unique request ID so that
43382// if you must retry your request, the server will know to ignore the
43383// request if it has already been completed.
43384//
43385// For example, consider a situation where you make an initial request
43386// and the request times out. If you make the request again with the
43387// same request ID, the server can check if original operation with the
43388// same request ID was received, and if so, will ignore the second
43389// request. This prevents clients from accidentally creating duplicate
43390// commitments.
43391//
43392// The request ID must be a valid UUID with the exception that zero UUID
43393// is not supported (00000000-0000-0000-0000-000000000000).
43394func (c *InstanceGroupsDeleteCall) RequestId(requestId string) *InstanceGroupsDeleteCall {
43395	c.urlParams_.Set("requestId", requestId)
43396	return c
43397}
43398
43399// Fields allows partial responses to be retrieved. See
43400// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43401// for more information.
43402func (c *InstanceGroupsDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupsDeleteCall {
43403	c.urlParams_.Set("fields", googleapi.CombineFields(s))
43404	return c
43405}
43406
43407// Context sets the context to be used in this call's Do method. Any
43408// pending HTTP request will be aborted if the provided context is
43409// canceled.
43410func (c *InstanceGroupsDeleteCall) Context(ctx context.Context) *InstanceGroupsDeleteCall {
43411	c.ctx_ = ctx
43412	return c
43413}
43414
43415// Header returns an http.Header that can be modified by the caller to
43416// add HTTP headers to the request.
43417func (c *InstanceGroupsDeleteCall) Header() http.Header {
43418	if c.header_ == nil {
43419		c.header_ = make(http.Header)
43420	}
43421	return c.header_
43422}
43423
43424func (c *InstanceGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
43425	reqHeaders := make(http.Header)
43426	for k, v := range c.header_ {
43427		reqHeaders[k] = v
43428	}
43429	reqHeaders.Set("User-Agent", c.s.userAgent())
43430	var body io.Reader = nil
43431	c.urlParams_.Set("alt", alt)
43432	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}")
43433	urls += "?" + c.urlParams_.Encode()
43434	req, _ := http.NewRequest("DELETE", urls, body)
43435	req.Header = reqHeaders
43436	googleapi.Expand(req.URL, map[string]string{
43437		"project":       c.project,
43438		"zone":          c.zone,
43439		"instanceGroup": c.instanceGroup,
43440	})
43441	return gensupport.SendRequest(c.ctx_, c.s.client, req)
43442}
43443
43444// Do executes the "compute.instanceGroups.delete" call.
43445// Exactly one of *Operation or error will be non-nil. Any non-2xx
43446// status code is an error. Response headers are in either
43447// *Operation.ServerResponse.Header or (if a response was returned at
43448// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
43449// to check whether the returned error was because
43450// http.StatusNotModified was returned.
43451func (c *InstanceGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
43452	gensupport.SetOptions(c.urlParams_, opts...)
43453	res, err := c.doRequest("json")
43454	if res != nil && res.StatusCode == http.StatusNotModified {
43455		if res.Body != nil {
43456			res.Body.Close()
43457		}
43458		return nil, &googleapi.Error{
43459			Code:   res.StatusCode,
43460			Header: res.Header,
43461		}
43462	}
43463	if err != nil {
43464		return nil, err
43465	}
43466	defer googleapi.CloseBody(res)
43467	if err := googleapi.CheckResponse(res); err != nil {
43468		return nil, err
43469	}
43470	ret := &Operation{
43471		ServerResponse: googleapi.ServerResponse{
43472			Header:         res.Header,
43473			HTTPStatusCode: res.StatusCode,
43474		},
43475	}
43476	target := &ret
43477	if err := gensupport.DecodeResponse(target, res); err != nil {
43478		return nil, err
43479	}
43480	return ret, nil
43481	// {
43482	//   "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.",
43483	//   "httpMethod": "DELETE",
43484	//   "id": "compute.instanceGroups.delete",
43485	//   "parameterOrder": [
43486	//     "project",
43487	//     "zone",
43488	//     "instanceGroup"
43489	//   ],
43490	//   "parameters": {
43491	//     "instanceGroup": {
43492	//       "description": "The name of the instance group to delete.",
43493	//       "location": "path",
43494	//       "required": true,
43495	//       "type": "string"
43496	//     },
43497	//     "project": {
43498	//       "description": "Project ID for this request.",
43499	//       "location": "path",
43500	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43501	//       "required": true,
43502	//       "type": "string"
43503	//     },
43504	//     "requestId": {
43505	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
43506	//       "location": "query",
43507	//       "type": "string"
43508	//     },
43509	//     "zone": {
43510	//       "description": "The name of the zone where the instance group is located.",
43511	//       "location": "path",
43512	//       "required": true,
43513	//       "type": "string"
43514	//     }
43515	//   },
43516	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}",
43517	//   "response": {
43518	//     "$ref": "Operation"
43519	//   },
43520	//   "scopes": [
43521	//     "https://www.googleapis.com/auth/cloud-platform",
43522	//     "https://www.googleapis.com/auth/compute"
43523	//   ]
43524	// }
43525
43526}
43527
43528// method id "compute.instanceGroups.get":
43529
43530type InstanceGroupsGetCall struct {
43531	s             *Service
43532	project       string
43533	zone          string
43534	instanceGroup string
43535	urlParams_    gensupport.URLParams
43536	ifNoneMatch_  string
43537	ctx_          context.Context
43538	header_       http.Header
43539}
43540
43541// Get: Returns the specified instance group. Get a list of available
43542// instance groups by making a list() request.
43543func (r *InstanceGroupsService) Get(project string, zone string, instanceGroup string) *InstanceGroupsGetCall {
43544	c := &InstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43545	c.project = project
43546	c.zone = zone
43547	c.instanceGroup = instanceGroup
43548	return c
43549}
43550
43551// Fields allows partial responses to be retrieved. See
43552// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43553// for more information.
43554func (c *InstanceGroupsGetCall) Fields(s ...googleapi.Field) *InstanceGroupsGetCall {
43555	c.urlParams_.Set("fields", googleapi.CombineFields(s))
43556	return c
43557}
43558
43559// IfNoneMatch sets the optional parameter which makes the operation
43560// fail if the object's ETag matches the given value. This is useful for
43561// getting updates only after the object has changed since the last
43562// request. Use googleapi.IsNotModified to check whether the response
43563// error from Do is the result of In-None-Match.
43564func (c *InstanceGroupsGetCall) IfNoneMatch(entityTag string) *InstanceGroupsGetCall {
43565	c.ifNoneMatch_ = entityTag
43566	return c
43567}
43568
43569// Context sets the context to be used in this call's Do method. Any
43570// pending HTTP request will be aborted if the provided context is
43571// canceled.
43572func (c *InstanceGroupsGetCall) Context(ctx context.Context) *InstanceGroupsGetCall {
43573	c.ctx_ = ctx
43574	return c
43575}
43576
43577// Header returns an http.Header that can be modified by the caller to
43578// add HTTP headers to the request.
43579func (c *InstanceGroupsGetCall) Header() http.Header {
43580	if c.header_ == nil {
43581		c.header_ = make(http.Header)
43582	}
43583	return c.header_
43584}
43585
43586func (c *InstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
43587	reqHeaders := make(http.Header)
43588	for k, v := range c.header_ {
43589		reqHeaders[k] = v
43590	}
43591	reqHeaders.Set("User-Agent", c.s.userAgent())
43592	if c.ifNoneMatch_ != "" {
43593		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
43594	}
43595	var body io.Reader = nil
43596	c.urlParams_.Set("alt", alt)
43597	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}")
43598	urls += "?" + c.urlParams_.Encode()
43599	req, _ := http.NewRequest("GET", urls, body)
43600	req.Header = reqHeaders
43601	googleapi.Expand(req.URL, map[string]string{
43602		"project":       c.project,
43603		"zone":          c.zone,
43604		"instanceGroup": c.instanceGroup,
43605	})
43606	return gensupport.SendRequest(c.ctx_, c.s.client, req)
43607}
43608
43609// Do executes the "compute.instanceGroups.get" call.
43610// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
43611// status code is an error. Response headers are in either
43612// *InstanceGroup.ServerResponse.Header or (if a response was returned
43613// at all) in error.(*googleapi.Error).Header. Use
43614// googleapi.IsNotModified to check whether the returned error was
43615// because http.StatusNotModified was returned.
43616func (c *InstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
43617	gensupport.SetOptions(c.urlParams_, opts...)
43618	res, err := c.doRequest("json")
43619	if res != nil && res.StatusCode == http.StatusNotModified {
43620		if res.Body != nil {
43621			res.Body.Close()
43622		}
43623		return nil, &googleapi.Error{
43624			Code:   res.StatusCode,
43625			Header: res.Header,
43626		}
43627	}
43628	if err != nil {
43629		return nil, err
43630	}
43631	defer googleapi.CloseBody(res)
43632	if err := googleapi.CheckResponse(res); err != nil {
43633		return nil, err
43634	}
43635	ret := &InstanceGroup{
43636		ServerResponse: googleapi.ServerResponse{
43637			Header:         res.Header,
43638			HTTPStatusCode: res.StatusCode,
43639		},
43640	}
43641	target := &ret
43642	if err := gensupport.DecodeResponse(target, res); err != nil {
43643		return nil, err
43644	}
43645	return ret, nil
43646	// {
43647	//   "description": "Returns the specified instance group. Get a list of available instance groups by making a list() request.",
43648	//   "httpMethod": "GET",
43649	//   "id": "compute.instanceGroups.get",
43650	//   "parameterOrder": [
43651	//     "project",
43652	//     "zone",
43653	//     "instanceGroup"
43654	//   ],
43655	//   "parameters": {
43656	//     "instanceGroup": {
43657	//       "description": "The name of the instance group.",
43658	//       "location": "path",
43659	//       "required": true,
43660	//       "type": "string"
43661	//     },
43662	//     "project": {
43663	//       "description": "Project ID for this request.",
43664	//       "location": "path",
43665	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43666	//       "required": true,
43667	//       "type": "string"
43668	//     },
43669	//     "zone": {
43670	//       "description": "The name of the zone where the instance group is located.",
43671	//       "location": "path",
43672	//       "required": true,
43673	//       "type": "string"
43674	//     }
43675	//   },
43676	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}",
43677	//   "response": {
43678	//     "$ref": "InstanceGroup"
43679	//   },
43680	//   "scopes": [
43681	//     "https://www.googleapis.com/auth/cloud-platform",
43682	//     "https://www.googleapis.com/auth/compute",
43683	//     "https://www.googleapis.com/auth/compute.readonly"
43684	//   ]
43685	// }
43686
43687}
43688
43689// method id "compute.instanceGroups.insert":
43690
43691type InstanceGroupsInsertCall struct {
43692	s             *Service
43693	project       string
43694	zone          string
43695	instancegroup *InstanceGroup
43696	urlParams_    gensupport.URLParams
43697	ctx_          context.Context
43698	header_       http.Header
43699}
43700
43701// Insert: Creates an instance group in the specified project using the
43702// parameters that are included in the request.
43703func (r *InstanceGroupsService) Insert(project string, zone string, instancegroup *InstanceGroup) *InstanceGroupsInsertCall {
43704	c := &InstanceGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43705	c.project = project
43706	c.zone = zone
43707	c.instancegroup = instancegroup
43708	return c
43709}
43710
43711// RequestId sets the optional parameter "requestId": An optional
43712// request ID to identify requests. Specify a unique request ID so that
43713// if you must retry your request, the server will know to ignore the
43714// request if it has already been completed.
43715//
43716// For example, consider a situation where you make an initial request
43717// and the request times out. If you make the request again with the
43718// same request ID, the server can check if original operation with the
43719// same request ID was received, and if so, will ignore the second
43720// request. This prevents clients from accidentally creating duplicate
43721// commitments.
43722//
43723// The request ID must be a valid UUID with the exception that zero UUID
43724// is not supported (00000000-0000-0000-0000-000000000000).
43725func (c *InstanceGroupsInsertCall) RequestId(requestId string) *InstanceGroupsInsertCall {
43726	c.urlParams_.Set("requestId", requestId)
43727	return c
43728}
43729
43730// Fields allows partial responses to be retrieved. See
43731// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43732// for more information.
43733func (c *InstanceGroupsInsertCall) Fields(s ...googleapi.Field) *InstanceGroupsInsertCall {
43734	c.urlParams_.Set("fields", googleapi.CombineFields(s))
43735	return c
43736}
43737
43738// Context sets the context to be used in this call's Do method. Any
43739// pending HTTP request will be aborted if the provided context is
43740// canceled.
43741func (c *InstanceGroupsInsertCall) Context(ctx context.Context) *InstanceGroupsInsertCall {
43742	c.ctx_ = ctx
43743	return c
43744}
43745
43746// Header returns an http.Header that can be modified by the caller to
43747// add HTTP headers to the request.
43748func (c *InstanceGroupsInsertCall) Header() http.Header {
43749	if c.header_ == nil {
43750		c.header_ = make(http.Header)
43751	}
43752	return c.header_
43753}
43754
43755func (c *InstanceGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
43756	reqHeaders := make(http.Header)
43757	for k, v := range c.header_ {
43758		reqHeaders[k] = v
43759	}
43760	reqHeaders.Set("User-Agent", c.s.userAgent())
43761	var body io.Reader = nil
43762	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroup)
43763	if err != nil {
43764		return nil, err
43765	}
43766	reqHeaders.Set("Content-Type", "application/json")
43767	c.urlParams_.Set("alt", alt)
43768	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups")
43769	urls += "?" + c.urlParams_.Encode()
43770	req, _ := http.NewRequest("POST", urls, body)
43771	req.Header = reqHeaders
43772	googleapi.Expand(req.URL, map[string]string{
43773		"project": c.project,
43774		"zone":    c.zone,
43775	})
43776	return gensupport.SendRequest(c.ctx_, c.s.client, req)
43777}
43778
43779// Do executes the "compute.instanceGroups.insert" call.
43780// Exactly one of *Operation or error will be non-nil. Any non-2xx
43781// status code is an error. Response headers are in either
43782// *Operation.ServerResponse.Header or (if a response was returned at
43783// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
43784// to check whether the returned error was because
43785// http.StatusNotModified was returned.
43786func (c *InstanceGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
43787	gensupport.SetOptions(c.urlParams_, opts...)
43788	res, err := c.doRequest("json")
43789	if res != nil && res.StatusCode == http.StatusNotModified {
43790		if res.Body != nil {
43791			res.Body.Close()
43792		}
43793		return nil, &googleapi.Error{
43794			Code:   res.StatusCode,
43795			Header: res.Header,
43796		}
43797	}
43798	if err != nil {
43799		return nil, err
43800	}
43801	defer googleapi.CloseBody(res)
43802	if err := googleapi.CheckResponse(res); err != nil {
43803		return nil, err
43804	}
43805	ret := &Operation{
43806		ServerResponse: googleapi.ServerResponse{
43807			Header:         res.Header,
43808			HTTPStatusCode: res.StatusCode,
43809		},
43810	}
43811	target := &ret
43812	if err := gensupport.DecodeResponse(target, res); err != nil {
43813		return nil, err
43814	}
43815	return ret, nil
43816	// {
43817	//   "description": "Creates an instance group in the specified project using the parameters that are included in the request.",
43818	//   "httpMethod": "POST",
43819	//   "id": "compute.instanceGroups.insert",
43820	//   "parameterOrder": [
43821	//     "project",
43822	//     "zone"
43823	//   ],
43824	//   "parameters": {
43825	//     "project": {
43826	//       "description": "Project ID for this request.",
43827	//       "location": "path",
43828	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43829	//       "required": true,
43830	//       "type": "string"
43831	//     },
43832	//     "requestId": {
43833	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
43834	//       "location": "query",
43835	//       "type": "string"
43836	//     },
43837	//     "zone": {
43838	//       "description": "The name of the zone where you want to create the instance group.",
43839	//       "location": "path",
43840	//       "required": true,
43841	//       "type": "string"
43842	//     }
43843	//   },
43844	//   "path": "{project}/zones/{zone}/instanceGroups",
43845	//   "request": {
43846	//     "$ref": "InstanceGroup"
43847	//   },
43848	//   "response": {
43849	//     "$ref": "Operation"
43850	//   },
43851	//   "scopes": [
43852	//     "https://www.googleapis.com/auth/cloud-platform",
43853	//     "https://www.googleapis.com/auth/compute"
43854	//   ]
43855	// }
43856
43857}
43858
43859// method id "compute.instanceGroups.list":
43860
43861type InstanceGroupsListCall struct {
43862	s            *Service
43863	project      string
43864	zone         string
43865	urlParams_   gensupport.URLParams
43866	ifNoneMatch_ string
43867	ctx_         context.Context
43868	header_      http.Header
43869}
43870
43871// List: Retrieves the list of instance groups that are located in the
43872// specified project and zone.
43873func (r *InstanceGroupsService) List(project string, zone string) *InstanceGroupsListCall {
43874	c := &InstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43875	c.project = project
43876	c.zone = zone
43877	return c
43878}
43879
43880// Filter sets the optional parameter "filter": Sets a filter
43881// {expression} for filtering listed resources. Your {expression} must
43882// be in the format: field_name comparison_string literal_string.
43883//
43884// The field_name is the name of the field you want to compare. Only
43885// atomic field types are supported (string, number, boolean). The
43886// comparison_string must be either eq (equals) or ne (not equals). The
43887// literal_string is the string value to filter to. The literal value
43888// must be valid for the type of field you are filtering by (string,
43889// number, boolean). For string fields, the literal value is interpreted
43890// as a regular expression using RE2 syntax. The literal value must
43891// match the entire field.
43892//
43893// For example, to filter for instances that do not have a name of
43894// example-instance, you would use name ne example-instance.
43895//
43896// You can filter on nested fields. For example, you could filter on
43897// instances that have set the scheduling.automaticRestart field to
43898// true. Use filtering on nested fields to take advantage of labels to
43899// organize and search for results based on label values.
43900//
43901// To filter on multiple expressions, provide each separate expression
43902// within parentheses. For example, (scheduling.automaticRestart eq
43903// true) (zone eq us-central1-f). Multiple expressions are treated as
43904// AND expressions, meaning that resources must match all expressions to
43905// pass the filters.
43906func (c *InstanceGroupsListCall) Filter(filter string) *InstanceGroupsListCall {
43907	c.urlParams_.Set("filter", filter)
43908	return c
43909}
43910
43911// MaxResults sets the optional parameter "maxResults": The maximum
43912// number of results per page that should be returned. If the number of
43913// available results is larger than maxResults, Compute Engine returns a
43914// nextPageToken that can be used to get the next page of results in
43915// subsequent list requests. Acceptable values are 0 to 500, inclusive.
43916// (Default: 500)
43917func (c *InstanceGroupsListCall) MaxResults(maxResults int64) *InstanceGroupsListCall {
43918	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
43919	return c
43920}
43921
43922// OrderBy sets the optional parameter "orderBy": Sorts list results by
43923// a certain order. By default, results are returned in alphanumerical
43924// order based on the resource name.
43925//
43926// You can also sort results in descending order based on the creation
43927// timestamp using orderBy="creationTimestamp desc". This sorts results
43928// based on the creationTimestamp field in reverse chronological order
43929// (newest result first). Use this to sort resources like operations so
43930// that the newest operation is returned first.
43931//
43932// Currently, only sorting by name or creationTimestamp desc is
43933// supported.
43934func (c *InstanceGroupsListCall) OrderBy(orderBy string) *InstanceGroupsListCall {
43935	c.urlParams_.Set("orderBy", orderBy)
43936	return c
43937}
43938
43939// PageToken sets the optional parameter "pageToken": Specifies a page
43940// token to use. Set pageToken to the nextPageToken returned by a
43941// previous list request to get the next page of results.
43942func (c *InstanceGroupsListCall) PageToken(pageToken string) *InstanceGroupsListCall {
43943	c.urlParams_.Set("pageToken", pageToken)
43944	return c
43945}
43946
43947// Fields allows partial responses to be retrieved. See
43948// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43949// for more information.
43950func (c *InstanceGroupsListCall) Fields(s ...googleapi.Field) *InstanceGroupsListCall {
43951	c.urlParams_.Set("fields", googleapi.CombineFields(s))
43952	return c
43953}
43954
43955// IfNoneMatch sets the optional parameter which makes the operation
43956// fail if the object's ETag matches the given value. This is useful for
43957// getting updates only after the object has changed since the last
43958// request. Use googleapi.IsNotModified to check whether the response
43959// error from Do is the result of In-None-Match.
43960func (c *InstanceGroupsListCall) IfNoneMatch(entityTag string) *InstanceGroupsListCall {
43961	c.ifNoneMatch_ = entityTag
43962	return c
43963}
43964
43965// Context sets the context to be used in this call's Do method. Any
43966// pending HTTP request will be aborted if the provided context is
43967// canceled.
43968func (c *InstanceGroupsListCall) Context(ctx context.Context) *InstanceGroupsListCall {
43969	c.ctx_ = ctx
43970	return c
43971}
43972
43973// Header returns an http.Header that can be modified by the caller to
43974// add HTTP headers to the request.
43975func (c *InstanceGroupsListCall) Header() http.Header {
43976	if c.header_ == nil {
43977		c.header_ = make(http.Header)
43978	}
43979	return c.header_
43980}
43981
43982func (c *InstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
43983	reqHeaders := make(http.Header)
43984	for k, v := range c.header_ {
43985		reqHeaders[k] = v
43986	}
43987	reqHeaders.Set("User-Agent", c.s.userAgent())
43988	if c.ifNoneMatch_ != "" {
43989		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
43990	}
43991	var body io.Reader = nil
43992	c.urlParams_.Set("alt", alt)
43993	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups")
43994	urls += "?" + c.urlParams_.Encode()
43995	req, _ := http.NewRequest("GET", urls, body)
43996	req.Header = reqHeaders
43997	googleapi.Expand(req.URL, map[string]string{
43998		"project": c.project,
43999		"zone":    c.zone,
44000	})
44001	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44002}
44003
44004// Do executes the "compute.instanceGroups.list" call.
44005// Exactly one of *InstanceGroupList or error will be non-nil. Any
44006// non-2xx status code is an error. Response headers are in either
44007// *InstanceGroupList.ServerResponse.Header or (if a response was
44008// returned at all) in error.(*googleapi.Error).Header. Use
44009// googleapi.IsNotModified to check whether the returned error was
44010// because http.StatusNotModified was returned.
44011func (c *InstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupList, error) {
44012	gensupport.SetOptions(c.urlParams_, opts...)
44013	res, err := c.doRequest("json")
44014	if res != nil && res.StatusCode == http.StatusNotModified {
44015		if res.Body != nil {
44016			res.Body.Close()
44017		}
44018		return nil, &googleapi.Error{
44019			Code:   res.StatusCode,
44020			Header: res.Header,
44021		}
44022	}
44023	if err != nil {
44024		return nil, err
44025	}
44026	defer googleapi.CloseBody(res)
44027	if err := googleapi.CheckResponse(res); err != nil {
44028		return nil, err
44029	}
44030	ret := &InstanceGroupList{
44031		ServerResponse: googleapi.ServerResponse{
44032			Header:         res.Header,
44033			HTTPStatusCode: res.StatusCode,
44034		},
44035	}
44036	target := &ret
44037	if err := gensupport.DecodeResponse(target, res); err != nil {
44038		return nil, err
44039	}
44040	return ret, nil
44041	// {
44042	//   "description": "Retrieves the list of instance groups that are located in the specified project and zone.",
44043	//   "httpMethod": "GET",
44044	//   "id": "compute.instanceGroups.list",
44045	//   "parameterOrder": [
44046	//     "project",
44047	//     "zone"
44048	//   ],
44049	//   "parameters": {
44050	//     "filter": {
44051	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
44052	//       "location": "query",
44053	//       "type": "string"
44054	//     },
44055	//     "maxResults": {
44056	//       "default": "500",
44057	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
44058	//       "format": "uint32",
44059	//       "location": "query",
44060	//       "minimum": "0",
44061	//       "type": "integer"
44062	//     },
44063	//     "orderBy": {
44064	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
44065	//       "location": "query",
44066	//       "type": "string"
44067	//     },
44068	//     "pageToken": {
44069	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
44070	//       "location": "query",
44071	//       "type": "string"
44072	//     },
44073	//     "project": {
44074	//       "description": "Project ID for this request.",
44075	//       "location": "path",
44076	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44077	//       "required": true,
44078	//       "type": "string"
44079	//     },
44080	//     "zone": {
44081	//       "description": "The name of the zone where the instance group is located.",
44082	//       "location": "path",
44083	//       "required": true,
44084	//       "type": "string"
44085	//     }
44086	//   },
44087	//   "path": "{project}/zones/{zone}/instanceGroups",
44088	//   "response": {
44089	//     "$ref": "InstanceGroupList"
44090	//   },
44091	//   "scopes": [
44092	//     "https://www.googleapis.com/auth/cloud-platform",
44093	//     "https://www.googleapis.com/auth/compute",
44094	//     "https://www.googleapis.com/auth/compute.readonly"
44095	//   ]
44096	// }
44097
44098}
44099
44100// Pages invokes f for each page of results.
44101// A non-nil error returned from f will halt the iteration.
44102// The provided context supersedes any context provided to the Context method.
44103func (c *InstanceGroupsListCall) Pages(ctx context.Context, f func(*InstanceGroupList) error) error {
44104	c.ctx_ = ctx
44105	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
44106	for {
44107		x, err := c.Do()
44108		if err != nil {
44109			return err
44110		}
44111		if err := f(x); err != nil {
44112			return err
44113		}
44114		if x.NextPageToken == "" {
44115			return nil
44116		}
44117		c.PageToken(x.NextPageToken)
44118	}
44119}
44120
44121// method id "compute.instanceGroups.listInstances":
44122
44123type InstanceGroupsListInstancesCall struct {
44124	s                                  *Service
44125	project                            string
44126	zone                               string
44127	instanceGroup                      string
44128	instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest
44129	urlParams_                         gensupport.URLParams
44130	ctx_                               context.Context
44131	header_                            http.Header
44132}
44133
44134// ListInstances: Lists the instances in the specified instance group.
44135func (r *InstanceGroupsService) ListInstances(project string, zone string, instanceGroup string, instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest) *InstanceGroupsListInstancesCall {
44136	c := &InstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44137	c.project = project
44138	c.zone = zone
44139	c.instanceGroup = instanceGroup
44140	c.instancegroupslistinstancesrequest = instancegroupslistinstancesrequest
44141	return c
44142}
44143
44144// Filter sets the optional parameter "filter": Sets a filter
44145// {expression} for filtering listed resources. Your {expression} must
44146// be in the format: field_name comparison_string literal_string.
44147//
44148// The field_name is the name of the field you want to compare. Only
44149// atomic field types are supported (string, number, boolean). The
44150// comparison_string must be either eq (equals) or ne (not equals). The
44151// literal_string is the string value to filter to. The literal value
44152// must be valid for the type of field you are filtering by (string,
44153// number, boolean). For string fields, the literal value is interpreted
44154// as a regular expression using RE2 syntax. The literal value must
44155// match the entire field.
44156//
44157// For example, to filter for instances that do not have a name of
44158// example-instance, you would use name ne example-instance.
44159//
44160// You can filter on nested fields. For example, you could filter on
44161// instances that have set the scheduling.automaticRestart field to
44162// true. Use filtering on nested fields to take advantage of labels to
44163// organize and search for results based on label values.
44164//
44165// To filter on multiple expressions, provide each separate expression
44166// within parentheses. For example, (scheduling.automaticRestart eq
44167// true) (zone eq us-central1-f). Multiple expressions are treated as
44168// AND expressions, meaning that resources must match all expressions to
44169// pass the filters.
44170func (c *InstanceGroupsListInstancesCall) Filter(filter string) *InstanceGroupsListInstancesCall {
44171	c.urlParams_.Set("filter", filter)
44172	return c
44173}
44174
44175// MaxResults sets the optional parameter "maxResults": The maximum
44176// number of results per page that should be returned. If the number of
44177// available results is larger than maxResults, Compute Engine returns a
44178// nextPageToken that can be used to get the next page of results in
44179// subsequent list requests. Acceptable values are 0 to 500, inclusive.
44180// (Default: 500)
44181func (c *InstanceGroupsListInstancesCall) MaxResults(maxResults int64) *InstanceGroupsListInstancesCall {
44182	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
44183	return c
44184}
44185
44186// OrderBy sets the optional parameter "orderBy": Sorts list results by
44187// a certain order. By default, results are returned in alphanumerical
44188// order based on the resource name.
44189//
44190// You can also sort results in descending order based on the creation
44191// timestamp using orderBy="creationTimestamp desc". This sorts results
44192// based on the creationTimestamp field in reverse chronological order
44193// (newest result first). Use this to sort resources like operations so
44194// that the newest operation is returned first.
44195//
44196// Currently, only sorting by name or creationTimestamp desc is
44197// supported.
44198func (c *InstanceGroupsListInstancesCall) OrderBy(orderBy string) *InstanceGroupsListInstancesCall {
44199	c.urlParams_.Set("orderBy", orderBy)
44200	return c
44201}
44202
44203// PageToken sets the optional parameter "pageToken": Specifies a page
44204// token to use. Set pageToken to the nextPageToken returned by a
44205// previous list request to get the next page of results.
44206func (c *InstanceGroupsListInstancesCall) PageToken(pageToken string) *InstanceGroupsListInstancesCall {
44207	c.urlParams_.Set("pageToken", pageToken)
44208	return c
44209}
44210
44211// Fields allows partial responses to be retrieved. See
44212// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44213// for more information.
44214func (c *InstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsListInstancesCall {
44215	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44216	return c
44217}
44218
44219// Context sets the context to be used in this call's Do method. Any
44220// pending HTTP request will be aborted if the provided context is
44221// canceled.
44222func (c *InstanceGroupsListInstancesCall) Context(ctx context.Context) *InstanceGroupsListInstancesCall {
44223	c.ctx_ = ctx
44224	return c
44225}
44226
44227// Header returns an http.Header that can be modified by the caller to
44228// add HTTP headers to the request.
44229func (c *InstanceGroupsListInstancesCall) Header() http.Header {
44230	if c.header_ == nil {
44231		c.header_ = make(http.Header)
44232	}
44233	return c.header_
44234}
44235
44236func (c *InstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
44237	reqHeaders := make(http.Header)
44238	for k, v := range c.header_ {
44239		reqHeaders[k] = v
44240	}
44241	reqHeaders.Set("User-Agent", c.s.userAgent())
44242	var body io.Reader = nil
44243	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupslistinstancesrequest)
44244	if err != nil {
44245		return nil, err
44246	}
44247	reqHeaders.Set("Content-Type", "application/json")
44248	c.urlParams_.Set("alt", alt)
44249	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances")
44250	urls += "?" + c.urlParams_.Encode()
44251	req, _ := http.NewRequest("POST", urls, body)
44252	req.Header = reqHeaders
44253	googleapi.Expand(req.URL, map[string]string{
44254		"project":       c.project,
44255		"zone":          c.zone,
44256		"instanceGroup": c.instanceGroup,
44257	})
44258	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44259}
44260
44261// Do executes the "compute.instanceGroups.listInstances" call.
44262// Exactly one of *InstanceGroupsListInstances or error will be non-nil.
44263// Any non-2xx status code is an error. Response headers are in either
44264// *InstanceGroupsListInstances.ServerResponse.Header or (if a response
44265// was returned at all) in error.(*googleapi.Error).Header. Use
44266// googleapi.IsNotModified to check whether the returned error was
44267// because http.StatusNotModified was returned.
44268func (c *InstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupsListInstances, error) {
44269	gensupport.SetOptions(c.urlParams_, opts...)
44270	res, err := c.doRequest("json")
44271	if res != nil && res.StatusCode == http.StatusNotModified {
44272		if res.Body != nil {
44273			res.Body.Close()
44274		}
44275		return nil, &googleapi.Error{
44276			Code:   res.StatusCode,
44277			Header: res.Header,
44278		}
44279	}
44280	if err != nil {
44281		return nil, err
44282	}
44283	defer googleapi.CloseBody(res)
44284	if err := googleapi.CheckResponse(res); err != nil {
44285		return nil, err
44286	}
44287	ret := &InstanceGroupsListInstances{
44288		ServerResponse: googleapi.ServerResponse{
44289			Header:         res.Header,
44290			HTTPStatusCode: res.StatusCode,
44291		},
44292	}
44293	target := &ret
44294	if err := gensupport.DecodeResponse(target, res); err != nil {
44295		return nil, err
44296	}
44297	return ret, nil
44298	// {
44299	//   "description": "Lists the instances in the specified instance group.",
44300	//   "httpMethod": "POST",
44301	//   "id": "compute.instanceGroups.listInstances",
44302	//   "parameterOrder": [
44303	//     "project",
44304	//     "zone",
44305	//     "instanceGroup"
44306	//   ],
44307	//   "parameters": {
44308	//     "filter": {
44309	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
44310	//       "location": "query",
44311	//       "type": "string"
44312	//     },
44313	//     "instanceGroup": {
44314	//       "description": "The name of the instance group from which you want to generate a list of included instances.",
44315	//       "location": "path",
44316	//       "required": true,
44317	//       "type": "string"
44318	//     },
44319	//     "maxResults": {
44320	//       "default": "500",
44321	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
44322	//       "format": "uint32",
44323	//       "location": "query",
44324	//       "minimum": "0",
44325	//       "type": "integer"
44326	//     },
44327	//     "orderBy": {
44328	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
44329	//       "location": "query",
44330	//       "type": "string"
44331	//     },
44332	//     "pageToken": {
44333	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
44334	//       "location": "query",
44335	//       "type": "string"
44336	//     },
44337	//     "project": {
44338	//       "description": "Project ID for this request.",
44339	//       "location": "path",
44340	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44341	//       "required": true,
44342	//       "type": "string"
44343	//     },
44344	//     "zone": {
44345	//       "description": "The name of the zone where the instance group is located.",
44346	//       "location": "path",
44347	//       "required": true,
44348	//       "type": "string"
44349	//     }
44350	//   },
44351	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances",
44352	//   "request": {
44353	//     "$ref": "InstanceGroupsListInstancesRequest"
44354	//   },
44355	//   "response": {
44356	//     "$ref": "InstanceGroupsListInstances"
44357	//   },
44358	//   "scopes": [
44359	//     "https://www.googleapis.com/auth/cloud-platform",
44360	//     "https://www.googleapis.com/auth/compute",
44361	//     "https://www.googleapis.com/auth/compute.readonly"
44362	//   ]
44363	// }
44364
44365}
44366
44367// Pages invokes f for each page of results.
44368// A non-nil error returned from f will halt the iteration.
44369// The provided context supersedes any context provided to the Context method.
44370func (c *InstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupsListInstances) error) error {
44371	c.ctx_ = ctx
44372	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
44373	for {
44374		x, err := c.Do()
44375		if err != nil {
44376			return err
44377		}
44378		if err := f(x); err != nil {
44379			return err
44380		}
44381		if x.NextPageToken == "" {
44382			return nil
44383		}
44384		c.PageToken(x.NextPageToken)
44385	}
44386}
44387
44388// method id "compute.instanceGroups.removeInstances":
44389
44390type InstanceGroupsRemoveInstancesCall struct {
44391	s                                    *Service
44392	project                              string
44393	zone                                 string
44394	instanceGroup                        string
44395	instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest
44396	urlParams_                           gensupport.URLParams
44397	ctx_                                 context.Context
44398	header_                              http.Header
44399}
44400
44401// RemoveInstances: Removes one or more instances from the specified
44402// instance group, but does not delete those instances.
44403//
44404// If the group is part of a backend service that has enabled connection
44405// draining, it can take up to 60 seconds after the connection draining
44406// duration before the VM instance is removed or deleted.
44407func (r *InstanceGroupsService) RemoveInstances(project string, zone string, instanceGroup string, instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest) *InstanceGroupsRemoveInstancesCall {
44408	c := &InstanceGroupsRemoveInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44409	c.project = project
44410	c.zone = zone
44411	c.instanceGroup = instanceGroup
44412	c.instancegroupsremoveinstancesrequest = instancegroupsremoveinstancesrequest
44413	return c
44414}
44415
44416// RequestId sets the optional parameter "requestId": An optional
44417// request ID to identify requests. Specify a unique request ID so that
44418// if you must retry your request, the server will know to ignore the
44419// request if it has already been completed.
44420//
44421// For example, consider a situation where you make an initial request
44422// and the request times out. If you make the request again with the
44423// same request ID, the server can check if original operation with the
44424// same request ID was received, and if so, will ignore the second
44425// request. This prevents clients from accidentally creating duplicate
44426// commitments.
44427//
44428// The request ID must be a valid UUID with the exception that zero UUID
44429// is not supported (00000000-0000-0000-0000-000000000000).
44430func (c *InstanceGroupsRemoveInstancesCall) RequestId(requestId string) *InstanceGroupsRemoveInstancesCall {
44431	c.urlParams_.Set("requestId", requestId)
44432	return c
44433}
44434
44435// Fields allows partial responses to be retrieved. See
44436// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44437// for more information.
44438func (c *InstanceGroupsRemoveInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsRemoveInstancesCall {
44439	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44440	return c
44441}
44442
44443// Context sets the context to be used in this call's Do method. Any
44444// pending HTTP request will be aborted if the provided context is
44445// canceled.
44446func (c *InstanceGroupsRemoveInstancesCall) Context(ctx context.Context) *InstanceGroupsRemoveInstancesCall {
44447	c.ctx_ = ctx
44448	return c
44449}
44450
44451// Header returns an http.Header that can be modified by the caller to
44452// add HTTP headers to the request.
44453func (c *InstanceGroupsRemoveInstancesCall) Header() http.Header {
44454	if c.header_ == nil {
44455		c.header_ = make(http.Header)
44456	}
44457	return c.header_
44458}
44459
44460func (c *InstanceGroupsRemoveInstancesCall) doRequest(alt string) (*http.Response, error) {
44461	reqHeaders := make(http.Header)
44462	for k, v := range c.header_ {
44463		reqHeaders[k] = v
44464	}
44465	reqHeaders.Set("User-Agent", c.s.userAgent())
44466	var body io.Reader = nil
44467	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsremoveinstancesrequest)
44468	if err != nil {
44469		return nil, err
44470	}
44471	reqHeaders.Set("Content-Type", "application/json")
44472	c.urlParams_.Set("alt", alt)
44473	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances")
44474	urls += "?" + c.urlParams_.Encode()
44475	req, _ := http.NewRequest("POST", urls, body)
44476	req.Header = reqHeaders
44477	googleapi.Expand(req.URL, map[string]string{
44478		"project":       c.project,
44479		"zone":          c.zone,
44480		"instanceGroup": c.instanceGroup,
44481	})
44482	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44483}
44484
44485// Do executes the "compute.instanceGroups.removeInstances" call.
44486// Exactly one of *Operation or error will be non-nil. Any non-2xx
44487// status code is an error. Response headers are in either
44488// *Operation.ServerResponse.Header or (if a response was returned at
44489// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
44490// to check whether the returned error was because
44491// http.StatusNotModified was returned.
44492func (c *InstanceGroupsRemoveInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
44493	gensupport.SetOptions(c.urlParams_, opts...)
44494	res, err := c.doRequest("json")
44495	if res != nil && res.StatusCode == http.StatusNotModified {
44496		if res.Body != nil {
44497			res.Body.Close()
44498		}
44499		return nil, &googleapi.Error{
44500			Code:   res.StatusCode,
44501			Header: res.Header,
44502		}
44503	}
44504	if err != nil {
44505		return nil, err
44506	}
44507	defer googleapi.CloseBody(res)
44508	if err := googleapi.CheckResponse(res); err != nil {
44509		return nil, err
44510	}
44511	ret := &Operation{
44512		ServerResponse: googleapi.ServerResponse{
44513			Header:         res.Header,
44514			HTTPStatusCode: res.StatusCode,
44515		},
44516	}
44517	target := &ret
44518	if err := gensupport.DecodeResponse(target, res); err != nil {
44519		return nil, err
44520	}
44521	return ret, nil
44522	// {
44523	//   "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.",
44524	//   "httpMethod": "POST",
44525	//   "id": "compute.instanceGroups.removeInstances",
44526	//   "parameterOrder": [
44527	//     "project",
44528	//     "zone",
44529	//     "instanceGroup"
44530	//   ],
44531	//   "parameters": {
44532	//     "instanceGroup": {
44533	//       "description": "The name of the instance group where the specified instances will be removed.",
44534	//       "location": "path",
44535	//       "required": true,
44536	//       "type": "string"
44537	//     },
44538	//     "project": {
44539	//       "description": "Project ID for this request.",
44540	//       "location": "path",
44541	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44542	//       "required": true,
44543	//       "type": "string"
44544	//     },
44545	//     "requestId": {
44546	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
44547	//       "location": "query",
44548	//       "type": "string"
44549	//     },
44550	//     "zone": {
44551	//       "description": "The name of the zone where the instance group is located.",
44552	//       "location": "path",
44553	//       "required": true,
44554	//       "type": "string"
44555	//     }
44556	//   },
44557	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances",
44558	//   "request": {
44559	//     "$ref": "InstanceGroupsRemoveInstancesRequest"
44560	//   },
44561	//   "response": {
44562	//     "$ref": "Operation"
44563	//   },
44564	//   "scopes": [
44565	//     "https://www.googleapis.com/auth/cloud-platform",
44566	//     "https://www.googleapis.com/auth/compute"
44567	//   ]
44568	// }
44569
44570}
44571
44572// method id "compute.instanceGroups.setNamedPorts":
44573
44574type InstanceGroupsSetNamedPortsCall struct {
44575	s                                  *Service
44576	project                            string
44577	zone                               string
44578	instanceGroup                      string
44579	instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest
44580	urlParams_                         gensupport.URLParams
44581	ctx_                               context.Context
44582	header_                            http.Header
44583}
44584
44585// SetNamedPorts: Sets the named ports for the specified instance group.
44586func (r *InstanceGroupsService) SetNamedPorts(project string, zone string, instanceGroup string, instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest) *InstanceGroupsSetNamedPortsCall {
44587	c := &InstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44588	c.project = project
44589	c.zone = zone
44590	c.instanceGroup = instanceGroup
44591	c.instancegroupssetnamedportsrequest = instancegroupssetnamedportsrequest
44592	return c
44593}
44594
44595// RequestId sets the optional parameter "requestId": An optional
44596// request ID to identify requests. Specify a unique request ID so that
44597// if you must retry your request, the server will know to ignore the
44598// request if it has already been completed.
44599//
44600// For example, consider a situation where you make an initial request
44601// and the request times out. If you make the request again with the
44602// same request ID, the server can check if original operation with the
44603// same request ID was received, and if so, will ignore the second
44604// request. This prevents clients from accidentally creating duplicate
44605// commitments.
44606//
44607// The request ID must be a valid UUID with the exception that zero UUID
44608// is not supported (00000000-0000-0000-0000-000000000000).
44609func (c *InstanceGroupsSetNamedPortsCall) RequestId(requestId string) *InstanceGroupsSetNamedPortsCall {
44610	c.urlParams_.Set("requestId", requestId)
44611	return c
44612}
44613
44614// Fields allows partial responses to be retrieved. See
44615// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44616// for more information.
44617func (c *InstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *InstanceGroupsSetNamedPortsCall {
44618	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44619	return c
44620}
44621
44622// Context sets the context to be used in this call's Do method. Any
44623// pending HTTP request will be aborted if the provided context is
44624// canceled.
44625func (c *InstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *InstanceGroupsSetNamedPortsCall {
44626	c.ctx_ = ctx
44627	return c
44628}
44629
44630// Header returns an http.Header that can be modified by the caller to
44631// add HTTP headers to the request.
44632func (c *InstanceGroupsSetNamedPortsCall) Header() http.Header {
44633	if c.header_ == nil {
44634		c.header_ = make(http.Header)
44635	}
44636	return c.header_
44637}
44638
44639func (c *InstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
44640	reqHeaders := make(http.Header)
44641	for k, v := range c.header_ {
44642		reqHeaders[k] = v
44643	}
44644	reqHeaders.Set("User-Agent", c.s.userAgent())
44645	var body io.Reader = nil
44646	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupssetnamedportsrequest)
44647	if err != nil {
44648		return nil, err
44649	}
44650	reqHeaders.Set("Content-Type", "application/json")
44651	c.urlParams_.Set("alt", alt)
44652	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts")
44653	urls += "?" + c.urlParams_.Encode()
44654	req, _ := http.NewRequest("POST", urls, body)
44655	req.Header = reqHeaders
44656	googleapi.Expand(req.URL, map[string]string{
44657		"project":       c.project,
44658		"zone":          c.zone,
44659		"instanceGroup": c.instanceGroup,
44660	})
44661	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44662}
44663
44664// Do executes the "compute.instanceGroups.setNamedPorts" call.
44665// Exactly one of *Operation or error will be non-nil. Any non-2xx
44666// status code is an error. Response headers are in either
44667// *Operation.ServerResponse.Header or (if a response was returned at
44668// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
44669// to check whether the returned error was because
44670// http.StatusNotModified was returned.
44671func (c *InstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
44672	gensupport.SetOptions(c.urlParams_, opts...)
44673	res, err := c.doRequest("json")
44674	if res != nil && res.StatusCode == http.StatusNotModified {
44675		if res.Body != nil {
44676			res.Body.Close()
44677		}
44678		return nil, &googleapi.Error{
44679			Code:   res.StatusCode,
44680			Header: res.Header,
44681		}
44682	}
44683	if err != nil {
44684		return nil, err
44685	}
44686	defer googleapi.CloseBody(res)
44687	if err := googleapi.CheckResponse(res); err != nil {
44688		return nil, err
44689	}
44690	ret := &Operation{
44691		ServerResponse: googleapi.ServerResponse{
44692			Header:         res.Header,
44693			HTTPStatusCode: res.StatusCode,
44694		},
44695	}
44696	target := &ret
44697	if err := gensupport.DecodeResponse(target, res); err != nil {
44698		return nil, err
44699	}
44700	return ret, nil
44701	// {
44702	//   "description": "Sets the named ports for the specified instance group.",
44703	//   "httpMethod": "POST",
44704	//   "id": "compute.instanceGroups.setNamedPorts",
44705	//   "parameterOrder": [
44706	//     "project",
44707	//     "zone",
44708	//     "instanceGroup"
44709	//   ],
44710	//   "parameters": {
44711	//     "instanceGroup": {
44712	//       "description": "The name of the instance group where the named ports are updated.",
44713	//       "location": "path",
44714	//       "required": true,
44715	//       "type": "string"
44716	//     },
44717	//     "project": {
44718	//       "description": "Project ID for this request.",
44719	//       "location": "path",
44720	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44721	//       "required": true,
44722	//       "type": "string"
44723	//     },
44724	//     "requestId": {
44725	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
44726	//       "location": "query",
44727	//       "type": "string"
44728	//     },
44729	//     "zone": {
44730	//       "description": "The name of the zone where the instance group is located.",
44731	//       "location": "path",
44732	//       "required": true,
44733	//       "type": "string"
44734	//     }
44735	//   },
44736	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts",
44737	//   "request": {
44738	//     "$ref": "InstanceGroupsSetNamedPortsRequest"
44739	//   },
44740	//   "response": {
44741	//     "$ref": "Operation"
44742	//   },
44743	//   "scopes": [
44744	//     "https://www.googleapis.com/auth/cloud-platform",
44745	//     "https://www.googleapis.com/auth/compute"
44746	//   ]
44747	// }
44748
44749}
44750
44751// method id "compute.instanceTemplates.delete":
44752
44753type InstanceTemplatesDeleteCall struct {
44754	s                *Service
44755	project          string
44756	instanceTemplate string
44757	urlParams_       gensupport.URLParams
44758	ctx_             context.Context
44759	header_          http.Header
44760}
44761
44762// Delete: Deletes the specified instance template. Deleting an instance
44763// template is permanent and cannot be undone. It's not possible to
44764// delete templates which are in use by an instance group.
44765// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/delete
44766func (r *InstanceTemplatesService) Delete(project string, instanceTemplate string) *InstanceTemplatesDeleteCall {
44767	c := &InstanceTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44768	c.project = project
44769	c.instanceTemplate = instanceTemplate
44770	return c
44771}
44772
44773// RequestId sets the optional parameter "requestId": An optional
44774// request ID to identify requests. Specify a unique request ID so that
44775// if you must retry your request, the server will know to ignore the
44776// request if it has already been completed.
44777//
44778// For example, consider a situation where you make an initial request
44779// and the request times out. If you make the request again with the
44780// same request ID, the server can check if original operation with the
44781// same request ID was received, and if so, will ignore the second
44782// request. This prevents clients from accidentally creating duplicate
44783// commitments.
44784//
44785// The request ID must be a valid UUID with the exception that zero UUID
44786// is not supported (00000000-0000-0000-0000-000000000000).
44787func (c *InstanceTemplatesDeleteCall) RequestId(requestId string) *InstanceTemplatesDeleteCall {
44788	c.urlParams_.Set("requestId", requestId)
44789	return c
44790}
44791
44792// Fields allows partial responses to be retrieved. See
44793// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44794// for more information.
44795func (c *InstanceTemplatesDeleteCall) Fields(s ...googleapi.Field) *InstanceTemplatesDeleteCall {
44796	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44797	return c
44798}
44799
44800// Context sets the context to be used in this call's Do method. Any
44801// pending HTTP request will be aborted if the provided context is
44802// canceled.
44803func (c *InstanceTemplatesDeleteCall) Context(ctx context.Context) *InstanceTemplatesDeleteCall {
44804	c.ctx_ = ctx
44805	return c
44806}
44807
44808// Header returns an http.Header that can be modified by the caller to
44809// add HTTP headers to the request.
44810func (c *InstanceTemplatesDeleteCall) Header() http.Header {
44811	if c.header_ == nil {
44812		c.header_ = make(http.Header)
44813	}
44814	return c.header_
44815}
44816
44817func (c *InstanceTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
44818	reqHeaders := make(http.Header)
44819	for k, v := range c.header_ {
44820		reqHeaders[k] = v
44821	}
44822	reqHeaders.Set("User-Agent", c.s.userAgent())
44823	var body io.Reader = nil
44824	c.urlParams_.Set("alt", alt)
44825	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{instanceTemplate}")
44826	urls += "?" + c.urlParams_.Encode()
44827	req, _ := http.NewRequest("DELETE", urls, body)
44828	req.Header = reqHeaders
44829	googleapi.Expand(req.URL, map[string]string{
44830		"project":          c.project,
44831		"instanceTemplate": c.instanceTemplate,
44832	})
44833	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44834}
44835
44836// Do executes the "compute.instanceTemplates.delete" call.
44837// Exactly one of *Operation or error will be non-nil. Any non-2xx
44838// status code is an error. Response headers are in either
44839// *Operation.ServerResponse.Header or (if a response was returned at
44840// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
44841// to check whether the returned error was because
44842// http.StatusNotModified was returned.
44843func (c *InstanceTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
44844	gensupport.SetOptions(c.urlParams_, opts...)
44845	res, err := c.doRequest("json")
44846	if res != nil && res.StatusCode == http.StatusNotModified {
44847		if res.Body != nil {
44848			res.Body.Close()
44849		}
44850		return nil, &googleapi.Error{
44851			Code:   res.StatusCode,
44852			Header: res.Header,
44853		}
44854	}
44855	if err != nil {
44856		return nil, err
44857	}
44858	defer googleapi.CloseBody(res)
44859	if err := googleapi.CheckResponse(res); err != nil {
44860		return nil, err
44861	}
44862	ret := &Operation{
44863		ServerResponse: googleapi.ServerResponse{
44864			Header:         res.Header,
44865			HTTPStatusCode: res.StatusCode,
44866		},
44867	}
44868	target := &ret
44869	if err := gensupport.DecodeResponse(target, res); err != nil {
44870		return nil, err
44871	}
44872	return ret, nil
44873	// {
44874	//   "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.",
44875	//   "httpMethod": "DELETE",
44876	//   "id": "compute.instanceTemplates.delete",
44877	//   "parameterOrder": [
44878	//     "project",
44879	//     "instanceTemplate"
44880	//   ],
44881	//   "parameters": {
44882	//     "instanceTemplate": {
44883	//       "description": "The name of the instance template to delete.",
44884	//       "location": "path",
44885	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
44886	//       "required": true,
44887	//       "type": "string"
44888	//     },
44889	//     "project": {
44890	//       "description": "Project ID for this request.",
44891	//       "location": "path",
44892	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44893	//       "required": true,
44894	//       "type": "string"
44895	//     },
44896	//     "requestId": {
44897	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
44898	//       "location": "query",
44899	//       "type": "string"
44900	//     }
44901	//   },
44902	//   "path": "{project}/global/instanceTemplates/{instanceTemplate}",
44903	//   "response": {
44904	//     "$ref": "Operation"
44905	//   },
44906	//   "scopes": [
44907	//     "https://www.googleapis.com/auth/cloud-platform",
44908	//     "https://www.googleapis.com/auth/compute"
44909	//   ]
44910	// }
44911
44912}
44913
44914// method id "compute.instanceTemplates.get":
44915
44916type InstanceTemplatesGetCall struct {
44917	s                *Service
44918	project          string
44919	instanceTemplate string
44920	urlParams_       gensupport.URLParams
44921	ifNoneMatch_     string
44922	ctx_             context.Context
44923	header_          http.Header
44924}
44925
44926// Get: Returns the specified instance template. Get a list of available
44927// instance templates by making a list() request.
44928// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/get
44929func (r *InstanceTemplatesService) Get(project string, instanceTemplate string) *InstanceTemplatesGetCall {
44930	c := &InstanceTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44931	c.project = project
44932	c.instanceTemplate = instanceTemplate
44933	return c
44934}
44935
44936// Fields allows partial responses to be retrieved. See
44937// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44938// for more information.
44939func (c *InstanceTemplatesGetCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetCall {
44940	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44941	return c
44942}
44943
44944// IfNoneMatch sets the optional parameter which makes the operation
44945// fail if the object's ETag matches the given value. This is useful for
44946// getting updates only after the object has changed since the last
44947// request. Use googleapi.IsNotModified to check whether the response
44948// error from Do is the result of In-None-Match.
44949func (c *InstanceTemplatesGetCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetCall {
44950	c.ifNoneMatch_ = entityTag
44951	return c
44952}
44953
44954// Context sets the context to be used in this call's Do method. Any
44955// pending HTTP request will be aborted if the provided context is
44956// canceled.
44957func (c *InstanceTemplatesGetCall) Context(ctx context.Context) *InstanceTemplatesGetCall {
44958	c.ctx_ = ctx
44959	return c
44960}
44961
44962// Header returns an http.Header that can be modified by the caller to
44963// add HTTP headers to the request.
44964func (c *InstanceTemplatesGetCall) Header() http.Header {
44965	if c.header_ == nil {
44966		c.header_ = make(http.Header)
44967	}
44968	return c.header_
44969}
44970
44971func (c *InstanceTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
44972	reqHeaders := make(http.Header)
44973	for k, v := range c.header_ {
44974		reqHeaders[k] = v
44975	}
44976	reqHeaders.Set("User-Agent", c.s.userAgent())
44977	if c.ifNoneMatch_ != "" {
44978		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
44979	}
44980	var body io.Reader = nil
44981	c.urlParams_.Set("alt", alt)
44982	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{instanceTemplate}")
44983	urls += "?" + c.urlParams_.Encode()
44984	req, _ := http.NewRequest("GET", urls, body)
44985	req.Header = reqHeaders
44986	googleapi.Expand(req.URL, map[string]string{
44987		"project":          c.project,
44988		"instanceTemplate": c.instanceTemplate,
44989	})
44990	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44991}
44992
44993// Do executes the "compute.instanceTemplates.get" call.
44994// Exactly one of *InstanceTemplate or error will be non-nil. Any
44995// non-2xx status code is an error. Response headers are in either
44996// *InstanceTemplate.ServerResponse.Header or (if a response was
44997// returned at all) in error.(*googleapi.Error).Header. Use
44998// googleapi.IsNotModified to check whether the returned error was
44999// because http.StatusNotModified was returned.
45000func (c *InstanceTemplatesGetCall) Do(opts ...googleapi.CallOption) (*InstanceTemplate, error) {
45001	gensupport.SetOptions(c.urlParams_, opts...)
45002	res, err := c.doRequest("json")
45003	if res != nil && res.StatusCode == http.StatusNotModified {
45004		if res.Body != nil {
45005			res.Body.Close()
45006		}
45007		return nil, &googleapi.Error{
45008			Code:   res.StatusCode,
45009			Header: res.Header,
45010		}
45011	}
45012	if err != nil {
45013		return nil, err
45014	}
45015	defer googleapi.CloseBody(res)
45016	if err := googleapi.CheckResponse(res); err != nil {
45017		return nil, err
45018	}
45019	ret := &InstanceTemplate{
45020		ServerResponse: googleapi.ServerResponse{
45021			Header:         res.Header,
45022			HTTPStatusCode: res.StatusCode,
45023		},
45024	}
45025	target := &ret
45026	if err := gensupport.DecodeResponse(target, res); err != nil {
45027		return nil, err
45028	}
45029	return ret, nil
45030	// {
45031	//   "description": "Returns the specified instance template. Get a list of available instance templates by making a list() request.",
45032	//   "httpMethod": "GET",
45033	//   "id": "compute.instanceTemplates.get",
45034	//   "parameterOrder": [
45035	//     "project",
45036	//     "instanceTemplate"
45037	//   ],
45038	//   "parameters": {
45039	//     "instanceTemplate": {
45040	//       "description": "The name of the instance template.",
45041	//       "location": "path",
45042	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
45043	//       "required": true,
45044	//       "type": "string"
45045	//     },
45046	//     "project": {
45047	//       "description": "Project ID for this request.",
45048	//       "location": "path",
45049	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45050	//       "required": true,
45051	//       "type": "string"
45052	//     }
45053	//   },
45054	//   "path": "{project}/global/instanceTemplates/{instanceTemplate}",
45055	//   "response": {
45056	//     "$ref": "InstanceTemplate"
45057	//   },
45058	//   "scopes": [
45059	//     "https://www.googleapis.com/auth/cloud-platform",
45060	//     "https://www.googleapis.com/auth/compute",
45061	//     "https://www.googleapis.com/auth/compute.readonly"
45062	//   ]
45063	// }
45064
45065}
45066
45067// method id "compute.instanceTemplates.insert":
45068
45069type InstanceTemplatesInsertCall struct {
45070	s                *Service
45071	project          string
45072	instancetemplate *InstanceTemplate
45073	urlParams_       gensupport.URLParams
45074	ctx_             context.Context
45075	header_          http.Header
45076}
45077
45078// Insert: Creates an instance template in the specified project using
45079// the data that is included in the request. If you are creating a new
45080// template to update an existing instance group, your new instance
45081// template must use the same network or, if applicable, the same
45082// subnetwork as the original template.
45083// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/insert
45084func (r *InstanceTemplatesService) Insert(project string, instancetemplate *InstanceTemplate) *InstanceTemplatesInsertCall {
45085	c := &InstanceTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45086	c.project = project
45087	c.instancetemplate = instancetemplate
45088	return c
45089}
45090
45091// RequestId sets the optional parameter "requestId": An optional
45092// request ID to identify requests. Specify a unique request ID so that
45093// if you must retry your request, the server will know to ignore the
45094// request if it has already been completed.
45095//
45096// For example, consider a situation where you make an initial request
45097// and the request times out. If you make the request again with the
45098// same request ID, the server can check if original operation with the
45099// same request ID was received, and if so, will ignore the second
45100// request. This prevents clients from accidentally creating duplicate
45101// commitments.
45102//
45103// The request ID must be a valid UUID with the exception that zero UUID
45104// is not supported (00000000-0000-0000-0000-000000000000).
45105func (c *InstanceTemplatesInsertCall) RequestId(requestId string) *InstanceTemplatesInsertCall {
45106	c.urlParams_.Set("requestId", requestId)
45107	return c
45108}
45109
45110// Fields allows partial responses to be retrieved. See
45111// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45112// for more information.
45113func (c *InstanceTemplatesInsertCall) Fields(s ...googleapi.Field) *InstanceTemplatesInsertCall {
45114	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45115	return c
45116}
45117
45118// Context sets the context to be used in this call's Do method. Any
45119// pending HTTP request will be aborted if the provided context is
45120// canceled.
45121func (c *InstanceTemplatesInsertCall) Context(ctx context.Context) *InstanceTemplatesInsertCall {
45122	c.ctx_ = ctx
45123	return c
45124}
45125
45126// Header returns an http.Header that can be modified by the caller to
45127// add HTTP headers to the request.
45128func (c *InstanceTemplatesInsertCall) Header() http.Header {
45129	if c.header_ == nil {
45130		c.header_ = make(http.Header)
45131	}
45132	return c.header_
45133}
45134
45135func (c *InstanceTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
45136	reqHeaders := make(http.Header)
45137	for k, v := range c.header_ {
45138		reqHeaders[k] = v
45139	}
45140	reqHeaders.Set("User-Agent", c.s.userAgent())
45141	var body io.Reader = nil
45142	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancetemplate)
45143	if err != nil {
45144		return nil, err
45145	}
45146	reqHeaders.Set("Content-Type", "application/json")
45147	c.urlParams_.Set("alt", alt)
45148	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates")
45149	urls += "?" + c.urlParams_.Encode()
45150	req, _ := http.NewRequest("POST", urls, body)
45151	req.Header = reqHeaders
45152	googleapi.Expand(req.URL, map[string]string{
45153		"project": c.project,
45154	})
45155	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45156}
45157
45158// Do executes the "compute.instanceTemplates.insert" call.
45159// Exactly one of *Operation or error will be non-nil. Any non-2xx
45160// status code is an error. Response headers are in either
45161// *Operation.ServerResponse.Header or (if a response was returned at
45162// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
45163// to check whether the returned error was because
45164// http.StatusNotModified was returned.
45165func (c *InstanceTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
45166	gensupport.SetOptions(c.urlParams_, opts...)
45167	res, err := c.doRequest("json")
45168	if res != nil && res.StatusCode == http.StatusNotModified {
45169		if res.Body != nil {
45170			res.Body.Close()
45171		}
45172		return nil, &googleapi.Error{
45173			Code:   res.StatusCode,
45174			Header: res.Header,
45175		}
45176	}
45177	if err != nil {
45178		return nil, err
45179	}
45180	defer googleapi.CloseBody(res)
45181	if err := googleapi.CheckResponse(res); err != nil {
45182		return nil, err
45183	}
45184	ret := &Operation{
45185		ServerResponse: googleapi.ServerResponse{
45186			Header:         res.Header,
45187			HTTPStatusCode: res.StatusCode,
45188		},
45189	}
45190	target := &ret
45191	if err := gensupport.DecodeResponse(target, res); err != nil {
45192		return nil, err
45193	}
45194	return ret, nil
45195	// {
45196	//   "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.",
45197	//   "httpMethod": "POST",
45198	//   "id": "compute.instanceTemplates.insert",
45199	//   "parameterOrder": [
45200	//     "project"
45201	//   ],
45202	//   "parameters": {
45203	//     "project": {
45204	//       "description": "Project ID for this request.",
45205	//       "location": "path",
45206	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45207	//       "required": true,
45208	//       "type": "string"
45209	//     },
45210	//     "requestId": {
45211	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
45212	//       "location": "query",
45213	//       "type": "string"
45214	//     }
45215	//   },
45216	//   "path": "{project}/global/instanceTemplates",
45217	//   "request": {
45218	//     "$ref": "InstanceTemplate"
45219	//   },
45220	//   "response": {
45221	//     "$ref": "Operation"
45222	//   },
45223	//   "scopes": [
45224	//     "https://www.googleapis.com/auth/cloud-platform",
45225	//     "https://www.googleapis.com/auth/compute"
45226	//   ]
45227	// }
45228
45229}
45230
45231// method id "compute.instanceTemplates.list":
45232
45233type InstanceTemplatesListCall struct {
45234	s            *Service
45235	project      string
45236	urlParams_   gensupport.URLParams
45237	ifNoneMatch_ string
45238	ctx_         context.Context
45239	header_      http.Header
45240}
45241
45242// List: Retrieves a list of instance templates that are contained
45243// within the specified project and zone.
45244// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/list
45245func (r *InstanceTemplatesService) List(project string) *InstanceTemplatesListCall {
45246	c := &InstanceTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45247	c.project = project
45248	return c
45249}
45250
45251// Filter sets the optional parameter "filter": Sets a filter
45252// {expression} for filtering listed resources. Your {expression} must
45253// be in the format: field_name comparison_string literal_string.
45254//
45255// The field_name is the name of the field you want to compare. Only
45256// atomic field types are supported (string, number, boolean). The
45257// comparison_string must be either eq (equals) or ne (not equals). The
45258// literal_string is the string value to filter to. The literal value
45259// must be valid for the type of field you are filtering by (string,
45260// number, boolean). For string fields, the literal value is interpreted
45261// as a regular expression using RE2 syntax. The literal value must
45262// match the entire field.
45263//
45264// For example, to filter for instances that do not have a name of
45265// example-instance, you would use name ne example-instance.
45266//
45267// You can filter on nested fields. For example, you could filter on
45268// instances that have set the scheduling.automaticRestart field to
45269// true. Use filtering on nested fields to take advantage of labels to
45270// organize and search for results based on label values.
45271//
45272// To filter on multiple expressions, provide each separate expression
45273// within parentheses. For example, (scheduling.automaticRestart eq
45274// true) (zone eq us-central1-f). Multiple expressions are treated as
45275// AND expressions, meaning that resources must match all expressions to
45276// pass the filters.
45277func (c *InstanceTemplatesListCall) Filter(filter string) *InstanceTemplatesListCall {
45278	c.urlParams_.Set("filter", filter)
45279	return c
45280}
45281
45282// MaxResults sets the optional parameter "maxResults": The maximum
45283// number of results per page that should be returned. If the number of
45284// available results is larger than maxResults, Compute Engine returns a
45285// nextPageToken that can be used to get the next page of results in
45286// subsequent list requests. Acceptable values are 0 to 500, inclusive.
45287// (Default: 500)
45288func (c *InstanceTemplatesListCall) MaxResults(maxResults int64) *InstanceTemplatesListCall {
45289	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
45290	return c
45291}
45292
45293// OrderBy sets the optional parameter "orderBy": Sorts list results by
45294// a certain order. By default, results are returned in alphanumerical
45295// order based on the resource name.
45296//
45297// You can also sort results in descending order based on the creation
45298// timestamp using orderBy="creationTimestamp desc". This sorts results
45299// based on the creationTimestamp field in reverse chronological order
45300// (newest result first). Use this to sort resources like operations so
45301// that the newest operation is returned first.
45302//
45303// Currently, only sorting by name or creationTimestamp desc is
45304// supported.
45305func (c *InstanceTemplatesListCall) OrderBy(orderBy string) *InstanceTemplatesListCall {
45306	c.urlParams_.Set("orderBy", orderBy)
45307	return c
45308}
45309
45310// PageToken sets the optional parameter "pageToken": Specifies a page
45311// token to use. Set pageToken to the nextPageToken returned by a
45312// previous list request to get the next page of results.
45313func (c *InstanceTemplatesListCall) PageToken(pageToken string) *InstanceTemplatesListCall {
45314	c.urlParams_.Set("pageToken", pageToken)
45315	return c
45316}
45317
45318// Fields allows partial responses to be retrieved. See
45319// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45320// for more information.
45321func (c *InstanceTemplatesListCall) Fields(s ...googleapi.Field) *InstanceTemplatesListCall {
45322	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45323	return c
45324}
45325
45326// IfNoneMatch sets the optional parameter which makes the operation
45327// fail if the object's ETag matches the given value. This is useful for
45328// getting updates only after the object has changed since the last
45329// request. Use googleapi.IsNotModified to check whether the response
45330// error from Do is the result of In-None-Match.
45331func (c *InstanceTemplatesListCall) IfNoneMatch(entityTag string) *InstanceTemplatesListCall {
45332	c.ifNoneMatch_ = entityTag
45333	return c
45334}
45335
45336// Context sets the context to be used in this call's Do method. Any
45337// pending HTTP request will be aborted if the provided context is
45338// canceled.
45339func (c *InstanceTemplatesListCall) Context(ctx context.Context) *InstanceTemplatesListCall {
45340	c.ctx_ = ctx
45341	return c
45342}
45343
45344// Header returns an http.Header that can be modified by the caller to
45345// add HTTP headers to the request.
45346func (c *InstanceTemplatesListCall) Header() http.Header {
45347	if c.header_ == nil {
45348		c.header_ = make(http.Header)
45349	}
45350	return c.header_
45351}
45352
45353func (c *InstanceTemplatesListCall) doRequest(alt string) (*http.Response, error) {
45354	reqHeaders := make(http.Header)
45355	for k, v := range c.header_ {
45356		reqHeaders[k] = v
45357	}
45358	reqHeaders.Set("User-Agent", c.s.userAgent())
45359	if c.ifNoneMatch_ != "" {
45360		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
45361	}
45362	var body io.Reader = nil
45363	c.urlParams_.Set("alt", alt)
45364	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates")
45365	urls += "?" + c.urlParams_.Encode()
45366	req, _ := http.NewRequest("GET", urls, body)
45367	req.Header = reqHeaders
45368	googleapi.Expand(req.URL, map[string]string{
45369		"project": c.project,
45370	})
45371	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45372}
45373
45374// Do executes the "compute.instanceTemplates.list" call.
45375// Exactly one of *InstanceTemplateList or error will be non-nil. Any
45376// non-2xx status code is an error. Response headers are in either
45377// *InstanceTemplateList.ServerResponse.Header or (if a response was
45378// returned at all) in error.(*googleapi.Error).Header. Use
45379// googleapi.IsNotModified to check whether the returned error was
45380// because http.StatusNotModified was returned.
45381func (c *InstanceTemplatesListCall) Do(opts ...googleapi.CallOption) (*InstanceTemplateList, error) {
45382	gensupport.SetOptions(c.urlParams_, opts...)
45383	res, err := c.doRequest("json")
45384	if res != nil && res.StatusCode == http.StatusNotModified {
45385		if res.Body != nil {
45386			res.Body.Close()
45387		}
45388		return nil, &googleapi.Error{
45389			Code:   res.StatusCode,
45390			Header: res.Header,
45391		}
45392	}
45393	if err != nil {
45394		return nil, err
45395	}
45396	defer googleapi.CloseBody(res)
45397	if err := googleapi.CheckResponse(res); err != nil {
45398		return nil, err
45399	}
45400	ret := &InstanceTemplateList{
45401		ServerResponse: googleapi.ServerResponse{
45402			Header:         res.Header,
45403			HTTPStatusCode: res.StatusCode,
45404		},
45405	}
45406	target := &ret
45407	if err := gensupport.DecodeResponse(target, res); err != nil {
45408		return nil, err
45409	}
45410	return ret, nil
45411	// {
45412	//   "description": "Retrieves a list of instance templates that are contained within the specified project and zone.",
45413	//   "httpMethod": "GET",
45414	//   "id": "compute.instanceTemplates.list",
45415	//   "parameterOrder": [
45416	//     "project"
45417	//   ],
45418	//   "parameters": {
45419	//     "filter": {
45420	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
45421	//       "location": "query",
45422	//       "type": "string"
45423	//     },
45424	//     "maxResults": {
45425	//       "default": "500",
45426	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
45427	//       "format": "uint32",
45428	//       "location": "query",
45429	//       "minimum": "0",
45430	//       "type": "integer"
45431	//     },
45432	//     "orderBy": {
45433	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
45434	//       "location": "query",
45435	//       "type": "string"
45436	//     },
45437	//     "pageToken": {
45438	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
45439	//       "location": "query",
45440	//       "type": "string"
45441	//     },
45442	//     "project": {
45443	//       "description": "Project ID for this request.",
45444	//       "location": "path",
45445	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45446	//       "required": true,
45447	//       "type": "string"
45448	//     }
45449	//   },
45450	//   "path": "{project}/global/instanceTemplates",
45451	//   "response": {
45452	//     "$ref": "InstanceTemplateList"
45453	//   },
45454	//   "scopes": [
45455	//     "https://www.googleapis.com/auth/cloud-platform",
45456	//     "https://www.googleapis.com/auth/compute",
45457	//     "https://www.googleapis.com/auth/compute.readonly"
45458	//   ]
45459	// }
45460
45461}
45462
45463// Pages invokes f for each page of results.
45464// A non-nil error returned from f will halt the iteration.
45465// The provided context supersedes any context provided to the Context method.
45466func (c *InstanceTemplatesListCall) Pages(ctx context.Context, f func(*InstanceTemplateList) error) error {
45467	c.ctx_ = ctx
45468	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
45469	for {
45470		x, err := c.Do()
45471		if err != nil {
45472			return err
45473		}
45474		if err := f(x); err != nil {
45475			return err
45476		}
45477		if x.NextPageToken == "" {
45478			return nil
45479		}
45480		c.PageToken(x.NextPageToken)
45481	}
45482}
45483
45484// method id "compute.instances.addAccessConfig":
45485
45486type InstancesAddAccessConfigCall struct {
45487	s            *Service
45488	project      string
45489	zone         string
45490	instance     string
45491	accessconfig *AccessConfig
45492	urlParams_   gensupport.URLParams
45493	ctx_         context.Context
45494	header_      http.Header
45495}
45496
45497// AddAccessConfig: Adds an access config to an instance's network
45498// interface.
45499// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/addAccessConfig
45500func (r *InstancesService) AddAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesAddAccessConfigCall {
45501	c := &InstancesAddAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45502	c.project = project
45503	c.zone = zone
45504	c.instance = instance
45505	c.urlParams_.Set("networkInterface", networkInterface)
45506	c.accessconfig = accessconfig
45507	return c
45508}
45509
45510// RequestId sets the optional parameter "requestId": An optional
45511// request ID to identify requests. Specify a unique request ID so that
45512// if you must retry your request, the server will know to ignore the
45513// request if it has already been completed.
45514//
45515// For example, consider a situation where you make an initial request
45516// and the request times out. If you make the request again with the
45517// same request ID, the server can check if original operation with the
45518// same request ID was received, and if so, will ignore the second
45519// request. This prevents clients from accidentally creating duplicate
45520// commitments.
45521//
45522// The request ID must be a valid UUID with the exception that zero UUID
45523// is not supported (00000000-0000-0000-0000-000000000000).
45524func (c *InstancesAddAccessConfigCall) RequestId(requestId string) *InstancesAddAccessConfigCall {
45525	c.urlParams_.Set("requestId", requestId)
45526	return c
45527}
45528
45529// Fields allows partial responses to be retrieved. See
45530// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45531// for more information.
45532func (c *InstancesAddAccessConfigCall) Fields(s ...googleapi.Field) *InstancesAddAccessConfigCall {
45533	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45534	return c
45535}
45536
45537// Context sets the context to be used in this call's Do method. Any
45538// pending HTTP request will be aborted if the provided context is
45539// canceled.
45540func (c *InstancesAddAccessConfigCall) Context(ctx context.Context) *InstancesAddAccessConfigCall {
45541	c.ctx_ = ctx
45542	return c
45543}
45544
45545// Header returns an http.Header that can be modified by the caller to
45546// add HTTP headers to the request.
45547func (c *InstancesAddAccessConfigCall) Header() http.Header {
45548	if c.header_ == nil {
45549		c.header_ = make(http.Header)
45550	}
45551	return c.header_
45552}
45553
45554func (c *InstancesAddAccessConfigCall) doRequest(alt string) (*http.Response, error) {
45555	reqHeaders := make(http.Header)
45556	for k, v := range c.header_ {
45557		reqHeaders[k] = v
45558	}
45559	reqHeaders.Set("User-Agent", c.s.userAgent())
45560	var body io.Reader = nil
45561	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
45562	if err != nil {
45563		return nil, err
45564	}
45565	reqHeaders.Set("Content-Type", "application/json")
45566	c.urlParams_.Set("alt", alt)
45567	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/addAccessConfig")
45568	urls += "?" + c.urlParams_.Encode()
45569	req, _ := http.NewRequest("POST", urls, body)
45570	req.Header = reqHeaders
45571	googleapi.Expand(req.URL, map[string]string{
45572		"project":  c.project,
45573		"zone":     c.zone,
45574		"instance": c.instance,
45575	})
45576	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45577}
45578
45579// Do executes the "compute.instances.addAccessConfig" call.
45580// Exactly one of *Operation or error will be non-nil. Any non-2xx
45581// status code is an error. Response headers are in either
45582// *Operation.ServerResponse.Header or (if a response was returned at
45583// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
45584// to check whether the returned error was because
45585// http.StatusNotModified was returned.
45586func (c *InstancesAddAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
45587	gensupport.SetOptions(c.urlParams_, opts...)
45588	res, err := c.doRequest("json")
45589	if res != nil && res.StatusCode == http.StatusNotModified {
45590		if res.Body != nil {
45591			res.Body.Close()
45592		}
45593		return nil, &googleapi.Error{
45594			Code:   res.StatusCode,
45595			Header: res.Header,
45596		}
45597	}
45598	if err != nil {
45599		return nil, err
45600	}
45601	defer googleapi.CloseBody(res)
45602	if err := googleapi.CheckResponse(res); err != nil {
45603		return nil, err
45604	}
45605	ret := &Operation{
45606		ServerResponse: googleapi.ServerResponse{
45607			Header:         res.Header,
45608			HTTPStatusCode: res.StatusCode,
45609		},
45610	}
45611	target := &ret
45612	if err := gensupport.DecodeResponse(target, res); err != nil {
45613		return nil, err
45614	}
45615	return ret, nil
45616	// {
45617	//   "description": "Adds an access config to an instance's network interface.",
45618	//   "httpMethod": "POST",
45619	//   "id": "compute.instances.addAccessConfig",
45620	//   "parameterOrder": [
45621	//     "project",
45622	//     "zone",
45623	//     "instance",
45624	//     "networkInterface"
45625	//   ],
45626	//   "parameters": {
45627	//     "instance": {
45628	//       "description": "The instance name for this request.",
45629	//       "location": "path",
45630	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
45631	//       "required": true,
45632	//       "type": "string"
45633	//     },
45634	//     "networkInterface": {
45635	//       "description": "The name of the network interface to add to this instance.",
45636	//       "location": "query",
45637	//       "required": true,
45638	//       "type": "string"
45639	//     },
45640	//     "project": {
45641	//       "description": "Project ID for this request.",
45642	//       "location": "path",
45643	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45644	//       "required": true,
45645	//       "type": "string"
45646	//     },
45647	//     "requestId": {
45648	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
45649	//       "location": "query",
45650	//       "type": "string"
45651	//     },
45652	//     "zone": {
45653	//       "description": "The name of the zone for this request.",
45654	//       "location": "path",
45655	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
45656	//       "required": true,
45657	//       "type": "string"
45658	//     }
45659	//   },
45660	//   "path": "{project}/zones/{zone}/instances/{instance}/addAccessConfig",
45661	//   "request": {
45662	//     "$ref": "AccessConfig"
45663	//   },
45664	//   "response": {
45665	//     "$ref": "Operation"
45666	//   },
45667	//   "scopes": [
45668	//     "https://www.googleapis.com/auth/cloud-platform",
45669	//     "https://www.googleapis.com/auth/compute"
45670	//   ]
45671	// }
45672
45673}
45674
45675// method id "compute.instances.aggregatedList":
45676
45677type InstancesAggregatedListCall struct {
45678	s            *Service
45679	project      string
45680	urlParams_   gensupport.URLParams
45681	ifNoneMatch_ string
45682	ctx_         context.Context
45683	header_      http.Header
45684}
45685
45686// AggregatedList: Retrieves aggregated list of instances.
45687// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/aggregatedList
45688func (r *InstancesService) AggregatedList(project string) *InstancesAggregatedListCall {
45689	c := &InstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45690	c.project = project
45691	return c
45692}
45693
45694// Filter sets the optional parameter "filter": Sets a filter
45695// {expression} for filtering listed resources. Your {expression} must
45696// be in the format: field_name comparison_string literal_string.
45697//
45698// The field_name is the name of the field you want to compare. Only
45699// atomic field types are supported (string, number, boolean). The
45700// comparison_string must be either eq (equals) or ne (not equals). The
45701// literal_string is the string value to filter to. The literal value
45702// must be valid for the type of field you are filtering by (string,
45703// number, boolean). For string fields, the literal value is interpreted
45704// as a regular expression using RE2 syntax. The literal value must
45705// match the entire field.
45706//
45707// For example, to filter for instances that do not have a name of
45708// example-instance, you would use name ne example-instance.
45709//
45710// You can filter on nested fields. For example, you could filter on
45711// instances that have set the scheduling.automaticRestart field to
45712// true. Use filtering on nested fields to take advantage of labels to
45713// organize and search for results based on label values.
45714//
45715// To filter on multiple expressions, provide each separate expression
45716// within parentheses. For example, (scheduling.automaticRestart eq
45717// true) (zone eq us-central1-f). Multiple expressions are treated as
45718// AND expressions, meaning that resources must match all expressions to
45719// pass the filters.
45720func (c *InstancesAggregatedListCall) Filter(filter string) *InstancesAggregatedListCall {
45721	c.urlParams_.Set("filter", filter)
45722	return c
45723}
45724
45725// MaxResults sets the optional parameter "maxResults": The maximum
45726// number of results per page that should be returned. If the number of
45727// available results is larger than maxResults, Compute Engine returns a
45728// nextPageToken that can be used to get the next page of results in
45729// subsequent list requests. Acceptable values are 0 to 500, inclusive.
45730// (Default: 500)
45731func (c *InstancesAggregatedListCall) MaxResults(maxResults int64) *InstancesAggregatedListCall {
45732	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
45733	return c
45734}
45735
45736// OrderBy sets the optional parameter "orderBy": Sorts list results by
45737// a certain order. By default, results are returned in alphanumerical
45738// order based on the resource name.
45739//
45740// You can also sort results in descending order based on the creation
45741// timestamp using orderBy="creationTimestamp desc". This sorts results
45742// based on the creationTimestamp field in reverse chronological order
45743// (newest result first). Use this to sort resources like operations so
45744// that the newest operation is returned first.
45745//
45746// Currently, only sorting by name or creationTimestamp desc is
45747// supported.
45748func (c *InstancesAggregatedListCall) OrderBy(orderBy string) *InstancesAggregatedListCall {
45749	c.urlParams_.Set("orderBy", orderBy)
45750	return c
45751}
45752
45753// PageToken sets the optional parameter "pageToken": Specifies a page
45754// token to use. Set pageToken to the nextPageToken returned by a
45755// previous list request to get the next page of results.
45756func (c *InstancesAggregatedListCall) PageToken(pageToken string) *InstancesAggregatedListCall {
45757	c.urlParams_.Set("pageToken", pageToken)
45758	return c
45759}
45760
45761// Fields allows partial responses to be retrieved. See
45762// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45763// for more information.
45764func (c *InstancesAggregatedListCall) Fields(s ...googleapi.Field) *InstancesAggregatedListCall {
45765	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45766	return c
45767}
45768
45769// IfNoneMatch sets the optional parameter which makes the operation
45770// fail if the object's ETag matches the given value. This is useful for
45771// getting updates only after the object has changed since the last
45772// request. Use googleapi.IsNotModified to check whether the response
45773// error from Do is the result of In-None-Match.
45774func (c *InstancesAggregatedListCall) IfNoneMatch(entityTag string) *InstancesAggregatedListCall {
45775	c.ifNoneMatch_ = entityTag
45776	return c
45777}
45778
45779// Context sets the context to be used in this call's Do method. Any
45780// pending HTTP request will be aborted if the provided context is
45781// canceled.
45782func (c *InstancesAggregatedListCall) Context(ctx context.Context) *InstancesAggregatedListCall {
45783	c.ctx_ = ctx
45784	return c
45785}
45786
45787// Header returns an http.Header that can be modified by the caller to
45788// add HTTP headers to the request.
45789func (c *InstancesAggregatedListCall) Header() http.Header {
45790	if c.header_ == nil {
45791		c.header_ = make(http.Header)
45792	}
45793	return c.header_
45794}
45795
45796func (c *InstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
45797	reqHeaders := make(http.Header)
45798	for k, v := range c.header_ {
45799		reqHeaders[k] = v
45800	}
45801	reqHeaders.Set("User-Agent", c.s.userAgent())
45802	if c.ifNoneMatch_ != "" {
45803		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
45804	}
45805	var body io.Reader = nil
45806	c.urlParams_.Set("alt", alt)
45807	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instances")
45808	urls += "?" + c.urlParams_.Encode()
45809	req, _ := http.NewRequest("GET", urls, body)
45810	req.Header = reqHeaders
45811	googleapi.Expand(req.URL, map[string]string{
45812		"project": c.project,
45813	})
45814	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45815}
45816
45817// Do executes the "compute.instances.aggregatedList" call.
45818// Exactly one of *InstanceAggregatedList or error will be non-nil. Any
45819// non-2xx status code is an error. Response headers are in either
45820// *InstanceAggregatedList.ServerResponse.Header or (if a response was
45821// returned at all) in error.(*googleapi.Error).Header. Use
45822// googleapi.IsNotModified to check whether the returned error was
45823// because http.StatusNotModified was returned.
45824func (c *InstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceAggregatedList, error) {
45825	gensupport.SetOptions(c.urlParams_, opts...)
45826	res, err := c.doRequest("json")
45827	if res != nil && res.StatusCode == http.StatusNotModified {
45828		if res.Body != nil {
45829			res.Body.Close()
45830		}
45831		return nil, &googleapi.Error{
45832			Code:   res.StatusCode,
45833			Header: res.Header,
45834		}
45835	}
45836	if err != nil {
45837		return nil, err
45838	}
45839	defer googleapi.CloseBody(res)
45840	if err := googleapi.CheckResponse(res); err != nil {
45841		return nil, err
45842	}
45843	ret := &InstanceAggregatedList{
45844		ServerResponse: googleapi.ServerResponse{
45845			Header:         res.Header,
45846			HTTPStatusCode: res.StatusCode,
45847		},
45848	}
45849	target := &ret
45850	if err := gensupport.DecodeResponse(target, res); err != nil {
45851		return nil, err
45852	}
45853	return ret, nil
45854	// {
45855	//   "description": "Retrieves aggregated list of instances.",
45856	//   "httpMethod": "GET",
45857	//   "id": "compute.instances.aggregatedList",
45858	//   "parameterOrder": [
45859	//     "project"
45860	//   ],
45861	//   "parameters": {
45862	//     "filter": {
45863	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
45864	//       "location": "query",
45865	//       "type": "string"
45866	//     },
45867	//     "maxResults": {
45868	//       "default": "500",
45869	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
45870	//       "format": "uint32",
45871	//       "location": "query",
45872	//       "minimum": "0",
45873	//       "type": "integer"
45874	//     },
45875	//     "orderBy": {
45876	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
45877	//       "location": "query",
45878	//       "type": "string"
45879	//     },
45880	//     "pageToken": {
45881	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
45882	//       "location": "query",
45883	//       "type": "string"
45884	//     },
45885	//     "project": {
45886	//       "description": "Project ID for this request.",
45887	//       "location": "path",
45888	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45889	//       "required": true,
45890	//       "type": "string"
45891	//     }
45892	//   },
45893	//   "path": "{project}/aggregated/instances",
45894	//   "response": {
45895	//     "$ref": "InstanceAggregatedList"
45896	//   },
45897	//   "scopes": [
45898	//     "https://www.googleapis.com/auth/cloud-platform",
45899	//     "https://www.googleapis.com/auth/compute",
45900	//     "https://www.googleapis.com/auth/compute.readonly"
45901	//   ]
45902	// }
45903
45904}
45905
45906// Pages invokes f for each page of results.
45907// A non-nil error returned from f will halt the iteration.
45908// The provided context supersedes any context provided to the Context method.
45909func (c *InstancesAggregatedListCall) Pages(ctx context.Context, f func(*InstanceAggregatedList) error) error {
45910	c.ctx_ = ctx
45911	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
45912	for {
45913		x, err := c.Do()
45914		if err != nil {
45915			return err
45916		}
45917		if err := f(x); err != nil {
45918			return err
45919		}
45920		if x.NextPageToken == "" {
45921			return nil
45922		}
45923		c.PageToken(x.NextPageToken)
45924	}
45925}
45926
45927// method id "compute.instances.attachDisk":
45928
45929type InstancesAttachDiskCall struct {
45930	s            *Service
45931	project      string
45932	zone         string
45933	instance     string
45934	attacheddisk *AttachedDisk
45935	urlParams_   gensupport.URLParams
45936	ctx_         context.Context
45937	header_      http.Header
45938}
45939
45940// AttachDisk: Attaches an existing Disk resource to an instance. You
45941// must first create the disk before you can attach it. It is not
45942// possible to create and attach a disk at the same time. For more
45943// information, read Adding a persistent disk to your instance.
45944// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/attachDisk
45945func (r *InstancesService) AttachDisk(project string, zone string, instance string, attacheddisk *AttachedDisk) *InstancesAttachDiskCall {
45946	c := &InstancesAttachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45947	c.project = project
45948	c.zone = zone
45949	c.instance = instance
45950	c.attacheddisk = attacheddisk
45951	return c
45952}
45953
45954// RequestId sets the optional parameter "requestId": An optional
45955// request ID to identify requests. Specify a unique request ID so that
45956// if you must retry your request, the server will know to ignore the
45957// request if it has already been completed.
45958//
45959// For example, consider a situation where you make an initial request
45960// and the request times out. If you make the request again with the
45961// same request ID, the server can check if original operation with the
45962// same request ID was received, and if so, will ignore the second
45963// request. This prevents clients from accidentally creating duplicate
45964// commitments.
45965//
45966// The request ID must be a valid UUID with the exception that zero UUID
45967// is not supported (00000000-0000-0000-0000-000000000000).
45968func (c *InstancesAttachDiskCall) RequestId(requestId string) *InstancesAttachDiskCall {
45969	c.urlParams_.Set("requestId", requestId)
45970	return c
45971}
45972
45973// Fields allows partial responses to be retrieved. See
45974// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45975// for more information.
45976func (c *InstancesAttachDiskCall) Fields(s ...googleapi.Field) *InstancesAttachDiskCall {
45977	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45978	return c
45979}
45980
45981// Context sets the context to be used in this call's Do method. Any
45982// pending HTTP request will be aborted if the provided context is
45983// canceled.
45984func (c *InstancesAttachDiskCall) Context(ctx context.Context) *InstancesAttachDiskCall {
45985	c.ctx_ = ctx
45986	return c
45987}
45988
45989// Header returns an http.Header that can be modified by the caller to
45990// add HTTP headers to the request.
45991func (c *InstancesAttachDiskCall) Header() http.Header {
45992	if c.header_ == nil {
45993		c.header_ = make(http.Header)
45994	}
45995	return c.header_
45996}
45997
45998func (c *InstancesAttachDiskCall) doRequest(alt string) (*http.Response, error) {
45999	reqHeaders := make(http.Header)
46000	for k, v := range c.header_ {
46001		reqHeaders[k] = v
46002	}
46003	reqHeaders.Set("User-Agent", c.s.userAgent())
46004	var body io.Reader = nil
46005	body, err := googleapi.WithoutDataWrapper.JSONReader(c.attacheddisk)
46006	if err != nil {
46007		return nil, err
46008	}
46009	reqHeaders.Set("Content-Type", "application/json")
46010	c.urlParams_.Set("alt", alt)
46011	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/attachDisk")
46012	urls += "?" + c.urlParams_.Encode()
46013	req, _ := http.NewRequest("POST", urls, body)
46014	req.Header = reqHeaders
46015	googleapi.Expand(req.URL, map[string]string{
46016		"project":  c.project,
46017		"zone":     c.zone,
46018		"instance": c.instance,
46019	})
46020	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46021}
46022
46023// Do executes the "compute.instances.attachDisk" call.
46024// Exactly one of *Operation or error will be non-nil. Any non-2xx
46025// status code is an error. Response headers are in either
46026// *Operation.ServerResponse.Header or (if a response was returned at
46027// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46028// to check whether the returned error was because
46029// http.StatusNotModified was returned.
46030func (c *InstancesAttachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
46031	gensupport.SetOptions(c.urlParams_, opts...)
46032	res, err := c.doRequest("json")
46033	if res != nil && res.StatusCode == http.StatusNotModified {
46034		if res.Body != nil {
46035			res.Body.Close()
46036		}
46037		return nil, &googleapi.Error{
46038			Code:   res.StatusCode,
46039			Header: res.Header,
46040		}
46041	}
46042	if err != nil {
46043		return nil, err
46044	}
46045	defer googleapi.CloseBody(res)
46046	if err := googleapi.CheckResponse(res); err != nil {
46047		return nil, err
46048	}
46049	ret := &Operation{
46050		ServerResponse: googleapi.ServerResponse{
46051			Header:         res.Header,
46052			HTTPStatusCode: res.StatusCode,
46053		},
46054	}
46055	target := &ret
46056	if err := gensupport.DecodeResponse(target, res); err != nil {
46057		return nil, err
46058	}
46059	return ret, nil
46060	// {
46061	//   "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.",
46062	//   "httpMethod": "POST",
46063	//   "id": "compute.instances.attachDisk",
46064	//   "parameterOrder": [
46065	//     "project",
46066	//     "zone",
46067	//     "instance"
46068	//   ],
46069	//   "parameters": {
46070	//     "instance": {
46071	//       "description": "The instance name for this request.",
46072	//       "location": "path",
46073	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46074	//       "required": true,
46075	//       "type": "string"
46076	//     },
46077	//     "project": {
46078	//       "description": "Project ID for this request.",
46079	//       "location": "path",
46080	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46081	//       "required": true,
46082	//       "type": "string"
46083	//     },
46084	//     "requestId": {
46085	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
46086	//       "location": "query",
46087	//       "type": "string"
46088	//     },
46089	//     "zone": {
46090	//       "description": "The name of the zone for this request.",
46091	//       "location": "path",
46092	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46093	//       "required": true,
46094	//       "type": "string"
46095	//     }
46096	//   },
46097	//   "path": "{project}/zones/{zone}/instances/{instance}/attachDisk",
46098	//   "request": {
46099	//     "$ref": "AttachedDisk"
46100	//   },
46101	//   "response": {
46102	//     "$ref": "Operation"
46103	//   },
46104	//   "scopes": [
46105	//     "https://www.googleapis.com/auth/cloud-platform",
46106	//     "https://www.googleapis.com/auth/compute"
46107	//   ]
46108	// }
46109
46110}
46111
46112// method id "compute.instances.delete":
46113
46114type InstancesDeleteCall struct {
46115	s          *Service
46116	project    string
46117	zone       string
46118	instance   string
46119	urlParams_ gensupport.URLParams
46120	ctx_       context.Context
46121	header_    http.Header
46122}
46123
46124// Delete: Deletes the specified Instance resource. For more
46125// information, see Stopping or Deleting an Instance.
46126// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/delete
46127func (r *InstancesService) Delete(project string, zone string, instance string) *InstancesDeleteCall {
46128	c := &InstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46129	c.project = project
46130	c.zone = zone
46131	c.instance = instance
46132	return c
46133}
46134
46135// RequestId sets the optional parameter "requestId": An optional
46136// request ID to identify requests. Specify a unique request ID so that
46137// if you must retry your request, the server will know to ignore the
46138// request if it has already been completed.
46139//
46140// For example, consider a situation where you make an initial request
46141// and the request times out. If you make the request again with the
46142// same request ID, the server can check if original operation with the
46143// same request ID was received, and if so, will ignore the second
46144// request. This prevents clients from accidentally creating duplicate
46145// commitments.
46146//
46147// The request ID must be a valid UUID with the exception that zero UUID
46148// is not supported (00000000-0000-0000-0000-000000000000).
46149func (c *InstancesDeleteCall) RequestId(requestId string) *InstancesDeleteCall {
46150	c.urlParams_.Set("requestId", requestId)
46151	return c
46152}
46153
46154// Fields allows partial responses to be retrieved. See
46155// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46156// for more information.
46157func (c *InstancesDeleteCall) Fields(s ...googleapi.Field) *InstancesDeleteCall {
46158	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46159	return c
46160}
46161
46162// Context sets the context to be used in this call's Do method. Any
46163// pending HTTP request will be aborted if the provided context is
46164// canceled.
46165func (c *InstancesDeleteCall) Context(ctx context.Context) *InstancesDeleteCall {
46166	c.ctx_ = ctx
46167	return c
46168}
46169
46170// Header returns an http.Header that can be modified by the caller to
46171// add HTTP headers to the request.
46172func (c *InstancesDeleteCall) Header() http.Header {
46173	if c.header_ == nil {
46174		c.header_ = make(http.Header)
46175	}
46176	return c.header_
46177}
46178
46179func (c *InstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
46180	reqHeaders := make(http.Header)
46181	for k, v := range c.header_ {
46182		reqHeaders[k] = v
46183	}
46184	reqHeaders.Set("User-Agent", c.s.userAgent())
46185	var body io.Reader = nil
46186	c.urlParams_.Set("alt", alt)
46187	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
46188	urls += "?" + c.urlParams_.Encode()
46189	req, _ := http.NewRequest("DELETE", urls, body)
46190	req.Header = reqHeaders
46191	googleapi.Expand(req.URL, map[string]string{
46192		"project":  c.project,
46193		"zone":     c.zone,
46194		"instance": c.instance,
46195	})
46196	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46197}
46198
46199// Do executes the "compute.instances.delete" call.
46200// Exactly one of *Operation or error will be non-nil. Any non-2xx
46201// status code is an error. Response headers are in either
46202// *Operation.ServerResponse.Header or (if a response was returned at
46203// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46204// to check whether the returned error was because
46205// http.StatusNotModified was returned.
46206func (c *InstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
46207	gensupport.SetOptions(c.urlParams_, opts...)
46208	res, err := c.doRequest("json")
46209	if res != nil && res.StatusCode == http.StatusNotModified {
46210		if res.Body != nil {
46211			res.Body.Close()
46212		}
46213		return nil, &googleapi.Error{
46214			Code:   res.StatusCode,
46215			Header: res.Header,
46216		}
46217	}
46218	if err != nil {
46219		return nil, err
46220	}
46221	defer googleapi.CloseBody(res)
46222	if err := googleapi.CheckResponse(res); err != nil {
46223		return nil, err
46224	}
46225	ret := &Operation{
46226		ServerResponse: googleapi.ServerResponse{
46227			Header:         res.Header,
46228			HTTPStatusCode: res.StatusCode,
46229		},
46230	}
46231	target := &ret
46232	if err := gensupport.DecodeResponse(target, res); err != nil {
46233		return nil, err
46234	}
46235	return ret, nil
46236	// {
46237	//   "description": "Deletes the specified Instance resource. For more information, see Stopping or Deleting an Instance.",
46238	//   "httpMethod": "DELETE",
46239	//   "id": "compute.instances.delete",
46240	//   "parameterOrder": [
46241	//     "project",
46242	//     "zone",
46243	//     "instance"
46244	//   ],
46245	//   "parameters": {
46246	//     "instance": {
46247	//       "description": "Name of the instance resource to delete.",
46248	//       "location": "path",
46249	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46250	//       "required": true,
46251	//       "type": "string"
46252	//     },
46253	//     "project": {
46254	//       "description": "Project ID for this request.",
46255	//       "location": "path",
46256	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46257	//       "required": true,
46258	//       "type": "string"
46259	//     },
46260	//     "requestId": {
46261	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
46262	//       "location": "query",
46263	//       "type": "string"
46264	//     },
46265	//     "zone": {
46266	//       "description": "The name of the zone for this request.",
46267	//       "location": "path",
46268	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46269	//       "required": true,
46270	//       "type": "string"
46271	//     }
46272	//   },
46273	//   "path": "{project}/zones/{zone}/instances/{instance}",
46274	//   "response": {
46275	//     "$ref": "Operation"
46276	//   },
46277	//   "scopes": [
46278	//     "https://www.googleapis.com/auth/cloud-platform",
46279	//     "https://www.googleapis.com/auth/compute"
46280	//   ]
46281	// }
46282
46283}
46284
46285// method id "compute.instances.deleteAccessConfig":
46286
46287type InstancesDeleteAccessConfigCall struct {
46288	s          *Service
46289	project    string
46290	zone       string
46291	instance   string
46292	urlParams_ gensupport.URLParams
46293	ctx_       context.Context
46294	header_    http.Header
46295}
46296
46297// DeleteAccessConfig: Deletes an access config from an instance's
46298// network interface.
46299// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/deleteAccessConfig
46300func (r *InstancesService) DeleteAccessConfig(project string, zone string, instance string, accessConfig string, networkInterface string) *InstancesDeleteAccessConfigCall {
46301	c := &InstancesDeleteAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46302	c.project = project
46303	c.zone = zone
46304	c.instance = instance
46305	c.urlParams_.Set("accessConfig", accessConfig)
46306	c.urlParams_.Set("networkInterface", networkInterface)
46307	return c
46308}
46309
46310// RequestId sets the optional parameter "requestId": An optional
46311// request ID to identify requests. Specify a unique request ID so that
46312// if you must retry your request, the server will know to ignore the
46313// request if it has already been completed.
46314//
46315// For example, consider a situation where you make an initial request
46316// and the request times out. If you make the request again with the
46317// same request ID, the server can check if original operation with the
46318// same request ID was received, and if so, will ignore the second
46319// request. This prevents clients from accidentally creating duplicate
46320// commitments.
46321//
46322// The request ID must be a valid UUID with the exception that zero UUID
46323// is not supported (00000000-0000-0000-0000-000000000000).
46324func (c *InstancesDeleteAccessConfigCall) RequestId(requestId string) *InstancesDeleteAccessConfigCall {
46325	c.urlParams_.Set("requestId", requestId)
46326	return c
46327}
46328
46329// Fields allows partial responses to be retrieved. See
46330// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46331// for more information.
46332func (c *InstancesDeleteAccessConfigCall) Fields(s ...googleapi.Field) *InstancesDeleteAccessConfigCall {
46333	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46334	return c
46335}
46336
46337// Context sets the context to be used in this call's Do method. Any
46338// pending HTTP request will be aborted if the provided context is
46339// canceled.
46340func (c *InstancesDeleteAccessConfigCall) Context(ctx context.Context) *InstancesDeleteAccessConfigCall {
46341	c.ctx_ = ctx
46342	return c
46343}
46344
46345// Header returns an http.Header that can be modified by the caller to
46346// add HTTP headers to the request.
46347func (c *InstancesDeleteAccessConfigCall) Header() http.Header {
46348	if c.header_ == nil {
46349		c.header_ = make(http.Header)
46350	}
46351	return c.header_
46352}
46353
46354func (c *InstancesDeleteAccessConfigCall) doRequest(alt string) (*http.Response, error) {
46355	reqHeaders := make(http.Header)
46356	for k, v := range c.header_ {
46357		reqHeaders[k] = v
46358	}
46359	reqHeaders.Set("User-Agent", c.s.userAgent())
46360	var body io.Reader = nil
46361	c.urlParams_.Set("alt", alt)
46362	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/deleteAccessConfig")
46363	urls += "?" + c.urlParams_.Encode()
46364	req, _ := http.NewRequest("POST", urls, body)
46365	req.Header = reqHeaders
46366	googleapi.Expand(req.URL, map[string]string{
46367		"project":  c.project,
46368		"zone":     c.zone,
46369		"instance": c.instance,
46370	})
46371	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46372}
46373
46374// Do executes the "compute.instances.deleteAccessConfig" call.
46375// Exactly one of *Operation or error will be non-nil. Any non-2xx
46376// status code is an error. Response headers are in either
46377// *Operation.ServerResponse.Header or (if a response was returned at
46378// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46379// to check whether the returned error was because
46380// http.StatusNotModified was returned.
46381func (c *InstancesDeleteAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
46382	gensupport.SetOptions(c.urlParams_, opts...)
46383	res, err := c.doRequest("json")
46384	if res != nil && res.StatusCode == http.StatusNotModified {
46385		if res.Body != nil {
46386			res.Body.Close()
46387		}
46388		return nil, &googleapi.Error{
46389			Code:   res.StatusCode,
46390			Header: res.Header,
46391		}
46392	}
46393	if err != nil {
46394		return nil, err
46395	}
46396	defer googleapi.CloseBody(res)
46397	if err := googleapi.CheckResponse(res); err != nil {
46398		return nil, err
46399	}
46400	ret := &Operation{
46401		ServerResponse: googleapi.ServerResponse{
46402			Header:         res.Header,
46403			HTTPStatusCode: res.StatusCode,
46404		},
46405	}
46406	target := &ret
46407	if err := gensupport.DecodeResponse(target, res); err != nil {
46408		return nil, err
46409	}
46410	return ret, nil
46411	// {
46412	//   "description": "Deletes an access config from an instance's network interface.",
46413	//   "httpMethod": "POST",
46414	//   "id": "compute.instances.deleteAccessConfig",
46415	//   "parameterOrder": [
46416	//     "project",
46417	//     "zone",
46418	//     "instance",
46419	//     "accessConfig",
46420	//     "networkInterface"
46421	//   ],
46422	//   "parameters": {
46423	//     "accessConfig": {
46424	//       "description": "The name of the access config to delete.",
46425	//       "location": "query",
46426	//       "required": true,
46427	//       "type": "string"
46428	//     },
46429	//     "instance": {
46430	//       "description": "The instance name for this request.",
46431	//       "location": "path",
46432	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46433	//       "required": true,
46434	//       "type": "string"
46435	//     },
46436	//     "networkInterface": {
46437	//       "description": "The name of the network interface.",
46438	//       "location": "query",
46439	//       "required": true,
46440	//       "type": "string"
46441	//     },
46442	//     "project": {
46443	//       "description": "Project ID for this request.",
46444	//       "location": "path",
46445	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46446	//       "required": true,
46447	//       "type": "string"
46448	//     },
46449	//     "requestId": {
46450	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
46451	//       "location": "query",
46452	//       "type": "string"
46453	//     },
46454	//     "zone": {
46455	//       "description": "The name of the zone for this request.",
46456	//       "location": "path",
46457	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46458	//       "required": true,
46459	//       "type": "string"
46460	//     }
46461	//   },
46462	//   "path": "{project}/zones/{zone}/instances/{instance}/deleteAccessConfig",
46463	//   "response": {
46464	//     "$ref": "Operation"
46465	//   },
46466	//   "scopes": [
46467	//     "https://www.googleapis.com/auth/cloud-platform",
46468	//     "https://www.googleapis.com/auth/compute"
46469	//   ]
46470	// }
46471
46472}
46473
46474// method id "compute.instances.detachDisk":
46475
46476type InstancesDetachDiskCall struct {
46477	s          *Service
46478	project    string
46479	zone       string
46480	instance   string
46481	urlParams_ gensupport.URLParams
46482	ctx_       context.Context
46483	header_    http.Header
46484}
46485
46486// DetachDisk: Detaches a disk from an instance.
46487// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/detachDisk
46488func (r *InstancesService) DetachDisk(project string, zone string, instance string, deviceName string) *InstancesDetachDiskCall {
46489	c := &InstancesDetachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46490	c.project = project
46491	c.zone = zone
46492	c.instance = instance
46493	c.urlParams_.Set("deviceName", deviceName)
46494	return c
46495}
46496
46497// RequestId sets the optional parameter "requestId": An optional
46498// request ID to identify requests. Specify a unique request ID so that
46499// if you must retry your request, the server will know to ignore the
46500// request if it has already been completed.
46501//
46502// For example, consider a situation where you make an initial request
46503// and the request times out. If you make the request again with the
46504// same request ID, the server can check if original operation with the
46505// same request ID was received, and if so, will ignore the second
46506// request. This prevents clients from accidentally creating duplicate
46507// commitments.
46508//
46509// The request ID must be a valid UUID with the exception that zero UUID
46510// is not supported (00000000-0000-0000-0000-000000000000).
46511func (c *InstancesDetachDiskCall) RequestId(requestId string) *InstancesDetachDiskCall {
46512	c.urlParams_.Set("requestId", requestId)
46513	return c
46514}
46515
46516// Fields allows partial responses to be retrieved. See
46517// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46518// for more information.
46519func (c *InstancesDetachDiskCall) Fields(s ...googleapi.Field) *InstancesDetachDiskCall {
46520	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46521	return c
46522}
46523
46524// Context sets the context to be used in this call's Do method. Any
46525// pending HTTP request will be aborted if the provided context is
46526// canceled.
46527func (c *InstancesDetachDiskCall) Context(ctx context.Context) *InstancesDetachDiskCall {
46528	c.ctx_ = ctx
46529	return c
46530}
46531
46532// Header returns an http.Header that can be modified by the caller to
46533// add HTTP headers to the request.
46534func (c *InstancesDetachDiskCall) Header() http.Header {
46535	if c.header_ == nil {
46536		c.header_ = make(http.Header)
46537	}
46538	return c.header_
46539}
46540
46541func (c *InstancesDetachDiskCall) doRequest(alt string) (*http.Response, error) {
46542	reqHeaders := make(http.Header)
46543	for k, v := range c.header_ {
46544		reqHeaders[k] = v
46545	}
46546	reqHeaders.Set("User-Agent", c.s.userAgent())
46547	var body io.Reader = nil
46548	c.urlParams_.Set("alt", alt)
46549	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/detachDisk")
46550	urls += "?" + c.urlParams_.Encode()
46551	req, _ := http.NewRequest("POST", urls, body)
46552	req.Header = reqHeaders
46553	googleapi.Expand(req.URL, map[string]string{
46554		"project":  c.project,
46555		"zone":     c.zone,
46556		"instance": c.instance,
46557	})
46558	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46559}
46560
46561// Do executes the "compute.instances.detachDisk" call.
46562// Exactly one of *Operation or error will be non-nil. Any non-2xx
46563// status code is an error. Response headers are in either
46564// *Operation.ServerResponse.Header or (if a response was returned at
46565// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46566// to check whether the returned error was because
46567// http.StatusNotModified was returned.
46568func (c *InstancesDetachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
46569	gensupport.SetOptions(c.urlParams_, opts...)
46570	res, err := c.doRequest("json")
46571	if res != nil && res.StatusCode == http.StatusNotModified {
46572		if res.Body != nil {
46573			res.Body.Close()
46574		}
46575		return nil, &googleapi.Error{
46576			Code:   res.StatusCode,
46577			Header: res.Header,
46578		}
46579	}
46580	if err != nil {
46581		return nil, err
46582	}
46583	defer googleapi.CloseBody(res)
46584	if err := googleapi.CheckResponse(res); err != nil {
46585		return nil, err
46586	}
46587	ret := &Operation{
46588		ServerResponse: googleapi.ServerResponse{
46589			Header:         res.Header,
46590			HTTPStatusCode: res.StatusCode,
46591		},
46592	}
46593	target := &ret
46594	if err := gensupport.DecodeResponse(target, res); err != nil {
46595		return nil, err
46596	}
46597	return ret, nil
46598	// {
46599	//   "description": "Detaches a disk from an instance.",
46600	//   "httpMethod": "POST",
46601	//   "id": "compute.instances.detachDisk",
46602	//   "parameterOrder": [
46603	//     "project",
46604	//     "zone",
46605	//     "instance",
46606	//     "deviceName"
46607	//   ],
46608	//   "parameters": {
46609	//     "deviceName": {
46610	//       "description": "Disk device name to detach.",
46611	//       "location": "query",
46612	//       "required": true,
46613	//       "type": "string"
46614	//     },
46615	//     "instance": {
46616	//       "description": "Instance name.",
46617	//       "location": "path",
46618	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46619	//       "required": true,
46620	//       "type": "string"
46621	//     },
46622	//     "project": {
46623	//       "description": "Project ID for this request.",
46624	//       "location": "path",
46625	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46626	//       "required": true,
46627	//       "type": "string"
46628	//     },
46629	//     "requestId": {
46630	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
46631	//       "location": "query",
46632	//       "type": "string"
46633	//     },
46634	//     "zone": {
46635	//       "description": "The name of the zone for this request.",
46636	//       "location": "path",
46637	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46638	//       "required": true,
46639	//       "type": "string"
46640	//     }
46641	//   },
46642	//   "path": "{project}/zones/{zone}/instances/{instance}/detachDisk",
46643	//   "response": {
46644	//     "$ref": "Operation"
46645	//   },
46646	//   "scopes": [
46647	//     "https://www.googleapis.com/auth/cloud-platform",
46648	//     "https://www.googleapis.com/auth/compute"
46649	//   ]
46650	// }
46651
46652}
46653
46654// method id "compute.instances.get":
46655
46656type InstancesGetCall struct {
46657	s            *Service
46658	project      string
46659	zone         string
46660	instance     string
46661	urlParams_   gensupport.URLParams
46662	ifNoneMatch_ string
46663	ctx_         context.Context
46664	header_      http.Header
46665}
46666
46667// Get: Returns the specified Instance resource. Get a list of available
46668// instances by making a list() request.
46669// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/get
46670func (r *InstancesService) Get(project string, zone string, instance string) *InstancesGetCall {
46671	c := &InstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46672	c.project = project
46673	c.zone = zone
46674	c.instance = instance
46675	return c
46676}
46677
46678// Fields allows partial responses to be retrieved. See
46679// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46680// for more information.
46681func (c *InstancesGetCall) Fields(s ...googleapi.Field) *InstancesGetCall {
46682	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46683	return c
46684}
46685
46686// IfNoneMatch sets the optional parameter which makes the operation
46687// fail if the object's ETag matches the given value. This is useful for
46688// getting updates only after the object has changed since the last
46689// request. Use googleapi.IsNotModified to check whether the response
46690// error from Do is the result of In-None-Match.
46691func (c *InstancesGetCall) IfNoneMatch(entityTag string) *InstancesGetCall {
46692	c.ifNoneMatch_ = entityTag
46693	return c
46694}
46695
46696// Context sets the context to be used in this call's Do method. Any
46697// pending HTTP request will be aborted if the provided context is
46698// canceled.
46699func (c *InstancesGetCall) Context(ctx context.Context) *InstancesGetCall {
46700	c.ctx_ = ctx
46701	return c
46702}
46703
46704// Header returns an http.Header that can be modified by the caller to
46705// add HTTP headers to the request.
46706func (c *InstancesGetCall) Header() http.Header {
46707	if c.header_ == nil {
46708		c.header_ = make(http.Header)
46709	}
46710	return c.header_
46711}
46712
46713func (c *InstancesGetCall) doRequest(alt string) (*http.Response, error) {
46714	reqHeaders := make(http.Header)
46715	for k, v := range c.header_ {
46716		reqHeaders[k] = v
46717	}
46718	reqHeaders.Set("User-Agent", c.s.userAgent())
46719	if c.ifNoneMatch_ != "" {
46720		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
46721	}
46722	var body io.Reader = nil
46723	c.urlParams_.Set("alt", alt)
46724	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
46725	urls += "?" + c.urlParams_.Encode()
46726	req, _ := http.NewRequest("GET", urls, body)
46727	req.Header = reqHeaders
46728	googleapi.Expand(req.URL, map[string]string{
46729		"project":  c.project,
46730		"zone":     c.zone,
46731		"instance": c.instance,
46732	})
46733	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46734}
46735
46736// Do executes the "compute.instances.get" call.
46737// Exactly one of *Instance or error will be non-nil. Any non-2xx status
46738// code is an error. Response headers are in either
46739// *Instance.ServerResponse.Header or (if a response was returned at
46740// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46741// to check whether the returned error was because
46742// http.StatusNotModified was returned.
46743func (c *InstancesGetCall) Do(opts ...googleapi.CallOption) (*Instance, error) {
46744	gensupport.SetOptions(c.urlParams_, opts...)
46745	res, err := c.doRequest("json")
46746	if res != nil && res.StatusCode == http.StatusNotModified {
46747		if res.Body != nil {
46748			res.Body.Close()
46749		}
46750		return nil, &googleapi.Error{
46751			Code:   res.StatusCode,
46752			Header: res.Header,
46753		}
46754	}
46755	if err != nil {
46756		return nil, err
46757	}
46758	defer googleapi.CloseBody(res)
46759	if err := googleapi.CheckResponse(res); err != nil {
46760		return nil, err
46761	}
46762	ret := &Instance{
46763		ServerResponse: googleapi.ServerResponse{
46764			Header:         res.Header,
46765			HTTPStatusCode: res.StatusCode,
46766		},
46767	}
46768	target := &ret
46769	if err := gensupport.DecodeResponse(target, res); err != nil {
46770		return nil, err
46771	}
46772	return ret, nil
46773	// {
46774	//   "description": "Returns the specified Instance resource. Get a list of available instances by making a list() request.",
46775	//   "httpMethod": "GET",
46776	//   "id": "compute.instances.get",
46777	//   "parameterOrder": [
46778	//     "project",
46779	//     "zone",
46780	//     "instance"
46781	//   ],
46782	//   "parameters": {
46783	//     "instance": {
46784	//       "description": "Name of the instance resource to return.",
46785	//       "location": "path",
46786	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46787	//       "required": true,
46788	//       "type": "string"
46789	//     },
46790	//     "project": {
46791	//       "description": "Project ID for this request.",
46792	//       "location": "path",
46793	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46794	//       "required": true,
46795	//       "type": "string"
46796	//     },
46797	//     "zone": {
46798	//       "description": "The name of the zone for this request.",
46799	//       "location": "path",
46800	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46801	//       "required": true,
46802	//       "type": "string"
46803	//     }
46804	//   },
46805	//   "path": "{project}/zones/{zone}/instances/{instance}",
46806	//   "response": {
46807	//     "$ref": "Instance"
46808	//   },
46809	//   "scopes": [
46810	//     "https://www.googleapis.com/auth/cloud-platform",
46811	//     "https://www.googleapis.com/auth/compute",
46812	//     "https://www.googleapis.com/auth/compute.readonly"
46813	//   ]
46814	// }
46815
46816}
46817
46818// method id "compute.instances.getSerialPortOutput":
46819
46820type InstancesGetSerialPortOutputCall struct {
46821	s            *Service
46822	project      string
46823	zone         string
46824	instance     string
46825	urlParams_   gensupport.URLParams
46826	ifNoneMatch_ string
46827	ctx_         context.Context
46828	header_      http.Header
46829}
46830
46831// GetSerialPortOutput: Returns the specified instance's serial port
46832// output.
46833// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/getSerialPortOutput
46834func (r *InstancesService) GetSerialPortOutput(project string, zone string, instance string) *InstancesGetSerialPortOutputCall {
46835	c := &InstancesGetSerialPortOutputCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46836	c.project = project
46837	c.zone = zone
46838	c.instance = instance
46839	return c
46840}
46841
46842// Port sets the optional parameter "port": Specifies which COM or
46843// serial port to retrieve data from.
46844func (c *InstancesGetSerialPortOutputCall) Port(port int64) *InstancesGetSerialPortOutputCall {
46845	c.urlParams_.Set("port", fmt.Sprint(port))
46846	return c
46847}
46848
46849// Start sets the optional parameter "start": Returns output starting
46850// from a specific byte position. Use this to page through output when
46851// the output is too large to return in a single request. For the
46852// initial request, leave this field unspecified. For subsequent calls,
46853// this field should be set to the next value returned in the previous
46854// call.
46855func (c *InstancesGetSerialPortOutputCall) Start(start int64) *InstancesGetSerialPortOutputCall {
46856	c.urlParams_.Set("start", fmt.Sprint(start))
46857	return c
46858}
46859
46860// Fields allows partial responses to be retrieved. See
46861// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46862// for more information.
46863func (c *InstancesGetSerialPortOutputCall) Fields(s ...googleapi.Field) *InstancesGetSerialPortOutputCall {
46864	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46865	return c
46866}
46867
46868// IfNoneMatch sets the optional parameter which makes the operation
46869// fail if the object's ETag matches the given value. This is useful for
46870// getting updates only after the object has changed since the last
46871// request. Use googleapi.IsNotModified to check whether the response
46872// error from Do is the result of In-None-Match.
46873func (c *InstancesGetSerialPortOutputCall) IfNoneMatch(entityTag string) *InstancesGetSerialPortOutputCall {
46874	c.ifNoneMatch_ = entityTag
46875	return c
46876}
46877
46878// Context sets the context to be used in this call's Do method. Any
46879// pending HTTP request will be aborted if the provided context is
46880// canceled.
46881func (c *InstancesGetSerialPortOutputCall) Context(ctx context.Context) *InstancesGetSerialPortOutputCall {
46882	c.ctx_ = ctx
46883	return c
46884}
46885
46886// Header returns an http.Header that can be modified by the caller to
46887// add HTTP headers to the request.
46888func (c *InstancesGetSerialPortOutputCall) Header() http.Header {
46889	if c.header_ == nil {
46890		c.header_ = make(http.Header)
46891	}
46892	return c.header_
46893}
46894
46895func (c *InstancesGetSerialPortOutputCall) doRequest(alt string) (*http.Response, error) {
46896	reqHeaders := make(http.Header)
46897	for k, v := range c.header_ {
46898		reqHeaders[k] = v
46899	}
46900	reqHeaders.Set("User-Agent", c.s.userAgent())
46901	if c.ifNoneMatch_ != "" {
46902		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
46903	}
46904	var body io.Reader = nil
46905	c.urlParams_.Set("alt", alt)
46906	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/serialPort")
46907	urls += "?" + c.urlParams_.Encode()
46908	req, _ := http.NewRequest("GET", urls, body)
46909	req.Header = reqHeaders
46910	googleapi.Expand(req.URL, map[string]string{
46911		"project":  c.project,
46912		"zone":     c.zone,
46913		"instance": c.instance,
46914	})
46915	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46916}
46917
46918// Do executes the "compute.instances.getSerialPortOutput" call.
46919// Exactly one of *SerialPortOutput or error will be non-nil. Any
46920// non-2xx status code is an error. Response headers are in either
46921// *SerialPortOutput.ServerResponse.Header or (if a response was
46922// returned at all) in error.(*googleapi.Error).Header. Use
46923// googleapi.IsNotModified to check whether the returned error was
46924// because http.StatusNotModified was returned.
46925func (c *InstancesGetSerialPortOutputCall) Do(opts ...googleapi.CallOption) (*SerialPortOutput, error) {
46926	gensupport.SetOptions(c.urlParams_, opts...)
46927	res, err := c.doRequest("json")
46928	if res != nil && res.StatusCode == http.StatusNotModified {
46929		if res.Body != nil {
46930			res.Body.Close()
46931		}
46932		return nil, &googleapi.Error{
46933			Code:   res.StatusCode,
46934			Header: res.Header,
46935		}
46936	}
46937	if err != nil {
46938		return nil, err
46939	}
46940	defer googleapi.CloseBody(res)
46941	if err := googleapi.CheckResponse(res); err != nil {
46942		return nil, err
46943	}
46944	ret := &SerialPortOutput{
46945		ServerResponse: googleapi.ServerResponse{
46946			Header:         res.Header,
46947			HTTPStatusCode: res.StatusCode,
46948		},
46949	}
46950	target := &ret
46951	if err := gensupport.DecodeResponse(target, res); err != nil {
46952		return nil, err
46953	}
46954	return ret, nil
46955	// {
46956	//   "description": "Returns the specified instance's serial port output.",
46957	//   "httpMethod": "GET",
46958	//   "id": "compute.instances.getSerialPortOutput",
46959	//   "parameterOrder": [
46960	//     "project",
46961	//     "zone",
46962	//     "instance"
46963	//   ],
46964	//   "parameters": {
46965	//     "instance": {
46966	//       "description": "Name of the instance scoping this request.",
46967	//       "location": "path",
46968	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46969	//       "required": true,
46970	//       "type": "string"
46971	//     },
46972	//     "port": {
46973	//       "default": "1",
46974	//       "description": "Specifies which COM or serial port to retrieve data from.",
46975	//       "format": "int32",
46976	//       "location": "query",
46977	//       "maximum": "4",
46978	//       "minimum": "1",
46979	//       "type": "integer"
46980	//     },
46981	//     "project": {
46982	//       "description": "Project ID for this request.",
46983	//       "location": "path",
46984	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46985	//       "required": true,
46986	//       "type": "string"
46987	//     },
46988	//     "start": {
46989	//       "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.",
46990	//       "format": "int64",
46991	//       "location": "query",
46992	//       "type": "string"
46993	//     },
46994	//     "zone": {
46995	//       "description": "The name of the zone for this request.",
46996	//       "location": "path",
46997	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46998	//       "required": true,
46999	//       "type": "string"
47000	//     }
47001	//   },
47002	//   "path": "{project}/zones/{zone}/instances/{instance}/serialPort",
47003	//   "response": {
47004	//     "$ref": "SerialPortOutput"
47005	//   },
47006	//   "scopes": [
47007	//     "https://www.googleapis.com/auth/cloud-platform",
47008	//     "https://www.googleapis.com/auth/compute",
47009	//     "https://www.googleapis.com/auth/compute.readonly"
47010	//   ]
47011	// }
47012
47013}
47014
47015// method id "compute.instances.insert":
47016
47017type InstancesInsertCall struct {
47018	s          *Service
47019	project    string
47020	zone       string
47021	instance   *Instance
47022	urlParams_ gensupport.URLParams
47023	ctx_       context.Context
47024	header_    http.Header
47025}
47026
47027// Insert: Creates an instance resource in the specified project using
47028// the data included in the request.
47029// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/insert
47030func (r *InstancesService) Insert(project string, zone string, instance *Instance) *InstancesInsertCall {
47031	c := &InstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47032	c.project = project
47033	c.zone = zone
47034	c.instance = instance
47035	return c
47036}
47037
47038// RequestId sets the optional parameter "requestId": An optional
47039// request ID to identify requests. Specify a unique request ID so that
47040// if you must retry your request, the server will know to ignore the
47041// request if it has already been completed.
47042//
47043// For example, consider a situation where you make an initial request
47044// and the request times out. If you make the request again with the
47045// same request ID, the server can check if original operation with the
47046// same request ID was received, and if so, will ignore the second
47047// request. This prevents clients from accidentally creating duplicate
47048// commitments.
47049//
47050// The request ID must be a valid UUID with the exception that zero UUID
47051// is not supported (00000000-0000-0000-0000-000000000000).
47052func (c *InstancesInsertCall) RequestId(requestId string) *InstancesInsertCall {
47053	c.urlParams_.Set("requestId", requestId)
47054	return c
47055}
47056
47057// Fields allows partial responses to be retrieved. See
47058// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47059// for more information.
47060func (c *InstancesInsertCall) Fields(s ...googleapi.Field) *InstancesInsertCall {
47061	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47062	return c
47063}
47064
47065// Context sets the context to be used in this call's Do method. Any
47066// pending HTTP request will be aborted if the provided context is
47067// canceled.
47068func (c *InstancesInsertCall) Context(ctx context.Context) *InstancesInsertCall {
47069	c.ctx_ = ctx
47070	return c
47071}
47072
47073// Header returns an http.Header that can be modified by the caller to
47074// add HTTP headers to the request.
47075func (c *InstancesInsertCall) Header() http.Header {
47076	if c.header_ == nil {
47077		c.header_ = make(http.Header)
47078	}
47079	return c.header_
47080}
47081
47082func (c *InstancesInsertCall) doRequest(alt string) (*http.Response, error) {
47083	reqHeaders := make(http.Header)
47084	for k, v := range c.header_ {
47085		reqHeaders[k] = v
47086	}
47087	reqHeaders.Set("User-Agent", c.s.userAgent())
47088	var body io.Reader = nil
47089	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance)
47090	if err != nil {
47091		return nil, err
47092	}
47093	reqHeaders.Set("Content-Type", "application/json")
47094	c.urlParams_.Set("alt", alt)
47095	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances")
47096	urls += "?" + c.urlParams_.Encode()
47097	req, _ := http.NewRequest("POST", urls, body)
47098	req.Header = reqHeaders
47099	googleapi.Expand(req.URL, map[string]string{
47100		"project": c.project,
47101		"zone":    c.zone,
47102	})
47103	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47104}
47105
47106// Do executes the "compute.instances.insert" call.
47107// Exactly one of *Operation or error will be non-nil. Any non-2xx
47108// status code is an error. Response headers are in either
47109// *Operation.ServerResponse.Header or (if a response was returned at
47110// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47111// to check whether the returned error was because
47112// http.StatusNotModified was returned.
47113func (c *InstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
47114	gensupport.SetOptions(c.urlParams_, opts...)
47115	res, err := c.doRequest("json")
47116	if res != nil && res.StatusCode == http.StatusNotModified {
47117		if res.Body != nil {
47118			res.Body.Close()
47119		}
47120		return nil, &googleapi.Error{
47121			Code:   res.StatusCode,
47122			Header: res.Header,
47123		}
47124	}
47125	if err != nil {
47126		return nil, err
47127	}
47128	defer googleapi.CloseBody(res)
47129	if err := googleapi.CheckResponse(res); err != nil {
47130		return nil, err
47131	}
47132	ret := &Operation{
47133		ServerResponse: googleapi.ServerResponse{
47134			Header:         res.Header,
47135			HTTPStatusCode: res.StatusCode,
47136		},
47137	}
47138	target := &ret
47139	if err := gensupport.DecodeResponse(target, res); err != nil {
47140		return nil, err
47141	}
47142	return ret, nil
47143	// {
47144	//   "description": "Creates an instance resource in the specified project using the data included in the request.",
47145	//   "httpMethod": "POST",
47146	//   "id": "compute.instances.insert",
47147	//   "parameterOrder": [
47148	//     "project",
47149	//     "zone"
47150	//   ],
47151	//   "parameters": {
47152	//     "project": {
47153	//       "description": "Project ID for this request.",
47154	//       "location": "path",
47155	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47156	//       "required": true,
47157	//       "type": "string"
47158	//     },
47159	//     "requestId": {
47160	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
47161	//       "location": "query",
47162	//       "type": "string"
47163	//     },
47164	//     "zone": {
47165	//       "description": "The name of the zone for this request.",
47166	//       "location": "path",
47167	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47168	//       "required": true,
47169	//       "type": "string"
47170	//     }
47171	//   },
47172	//   "path": "{project}/zones/{zone}/instances",
47173	//   "request": {
47174	//     "$ref": "Instance"
47175	//   },
47176	//   "response": {
47177	//     "$ref": "Operation"
47178	//   },
47179	//   "scopes": [
47180	//     "https://www.googleapis.com/auth/cloud-platform",
47181	//     "https://www.googleapis.com/auth/compute"
47182	//   ]
47183	// }
47184
47185}
47186
47187// method id "compute.instances.list":
47188
47189type InstancesListCall struct {
47190	s            *Service
47191	project      string
47192	zone         string
47193	urlParams_   gensupport.URLParams
47194	ifNoneMatch_ string
47195	ctx_         context.Context
47196	header_      http.Header
47197}
47198
47199// List: Retrieves the list of instances contained within the specified
47200// zone.
47201// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/list
47202func (r *InstancesService) List(project string, zone string) *InstancesListCall {
47203	c := &InstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47204	c.project = project
47205	c.zone = zone
47206	return c
47207}
47208
47209// Filter sets the optional parameter "filter": Sets a filter
47210// {expression} for filtering listed resources. Your {expression} must
47211// be in the format: field_name comparison_string literal_string.
47212//
47213// The field_name is the name of the field you want to compare. Only
47214// atomic field types are supported (string, number, boolean). The
47215// comparison_string must be either eq (equals) or ne (not equals). The
47216// literal_string is the string value to filter to. The literal value
47217// must be valid for the type of field you are filtering by (string,
47218// number, boolean). For string fields, the literal value is interpreted
47219// as a regular expression using RE2 syntax. The literal value must
47220// match the entire field.
47221//
47222// For example, to filter for instances that do not have a name of
47223// example-instance, you would use name ne example-instance.
47224//
47225// You can filter on nested fields. For example, you could filter on
47226// instances that have set the scheduling.automaticRestart field to
47227// true. Use filtering on nested fields to take advantage of labels to
47228// organize and search for results based on label values.
47229//
47230// To filter on multiple expressions, provide each separate expression
47231// within parentheses. For example, (scheduling.automaticRestart eq
47232// true) (zone eq us-central1-f). Multiple expressions are treated as
47233// AND expressions, meaning that resources must match all expressions to
47234// pass the filters.
47235func (c *InstancesListCall) Filter(filter string) *InstancesListCall {
47236	c.urlParams_.Set("filter", filter)
47237	return c
47238}
47239
47240// MaxResults sets the optional parameter "maxResults": The maximum
47241// number of results per page that should be returned. If the number of
47242// available results is larger than maxResults, Compute Engine returns a
47243// nextPageToken that can be used to get the next page of results in
47244// subsequent list requests. Acceptable values are 0 to 500, inclusive.
47245// (Default: 500)
47246func (c *InstancesListCall) MaxResults(maxResults int64) *InstancesListCall {
47247	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
47248	return c
47249}
47250
47251// OrderBy sets the optional parameter "orderBy": Sorts list results by
47252// a certain order. By default, results are returned in alphanumerical
47253// order based on the resource name.
47254//
47255// You can also sort results in descending order based on the creation
47256// timestamp using orderBy="creationTimestamp desc". This sorts results
47257// based on the creationTimestamp field in reverse chronological order
47258// (newest result first). Use this to sort resources like operations so
47259// that the newest operation is returned first.
47260//
47261// Currently, only sorting by name or creationTimestamp desc is
47262// supported.
47263func (c *InstancesListCall) OrderBy(orderBy string) *InstancesListCall {
47264	c.urlParams_.Set("orderBy", orderBy)
47265	return c
47266}
47267
47268// PageToken sets the optional parameter "pageToken": Specifies a page
47269// token to use. Set pageToken to the nextPageToken returned by a
47270// previous list request to get the next page of results.
47271func (c *InstancesListCall) PageToken(pageToken string) *InstancesListCall {
47272	c.urlParams_.Set("pageToken", pageToken)
47273	return c
47274}
47275
47276// Fields allows partial responses to be retrieved. See
47277// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47278// for more information.
47279func (c *InstancesListCall) Fields(s ...googleapi.Field) *InstancesListCall {
47280	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47281	return c
47282}
47283
47284// IfNoneMatch sets the optional parameter which makes the operation
47285// fail if the object's ETag matches the given value. This is useful for
47286// getting updates only after the object has changed since the last
47287// request. Use googleapi.IsNotModified to check whether the response
47288// error from Do is the result of In-None-Match.
47289func (c *InstancesListCall) IfNoneMatch(entityTag string) *InstancesListCall {
47290	c.ifNoneMatch_ = entityTag
47291	return c
47292}
47293
47294// Context sets the context to be used in this call's Do method. Any
47295// pending HTTP request will be aborted if the provided context is
47296// canceled.
47297func (c *InstancesListCall) Context(ctx context.Context) *InstancesListCall {
47298	c.ctx_ = ctx
47299	return c
47300}
47301
47302// Header returns an http.Header that can be modified by the caller to
47303// add HTTP headers to the request.
47304func (c *InstancesListCall) Header() http.Header {
47305	if c.header_ == nil {
47306		c.header_ = make(http.Header)
47307	}
47308	return c.header_
47309}
47310
47311func (c *InstancesListCall) doRequest(alt string) (*http.Response, error) {
47312	reqHeaders := make(http.Header)
47313	for k, v := range c.header_ {
47314		reqHeaders[k] = v
47315	}
47316	reqHeaders.Set("User-Agent", c.s.userAgent())
47317	if c.ifNoneMatch_ != "" {
47318		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
47319	}
47320	var body io.Reader = nil
47321	c.urlParams_.Set("alt", alt)
47322	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances")
47323	urls += "?" + c.urlParams_.Encode()
47324	req, _ := http.NewRequest("GET", urls, body)
47325	req.Header = reqHeaders
47326	googleapi.Expand(req.URL, map[string]string{
47327		"project": c.project,
47328		"zone":    c.zone,
47329	})
47330	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47331}
47332
47333// Do executes the "compute.instances.list" call.
47334// Exactly one of *InstanceList or error will be non-nil. Any non-2xx
47335// status code is an error. Response headers are in either
47336// *InstanceList.ServerResponse.Header or (if a response was returned at
47337// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47338// to check whether the returned error was because
47339// http.StatusNotModified was returned.
47340func (c *InstancesListCall) Do(opts ...googleapi.CallOption) (*InstanceList, error) {
47341	gensupport.SetOptions(c.urlParams_, opts...)
47342	res, err := c.doRequest("json")
47343	if res != nil && res.StatusCode == http.StatusNotModified {
47344		if res.Body != nil {
47345			res.Body.Close()
47346		}
47347		return nil, &googleapi.Error{
47348			Code:   res.StatusCode,
47349			Header: res.Header,
47350		}
47351	}
47352	if err != nil {
47353		return nil, err
47354	}
47355	defer googleapi.CloseBody(res)
47356	if err := googleapi.CheckResponse(res); err != nil {
47357		return nil, err
47358	}
47359	ret := &InstanceList{
47360		ServerResponse: googleapi.ServerResponse{
47361			Header:         res.Header,
47362			HTTPStatusCode: res.StatusCode,
47363		},
47364	}
47365	target := &ret
47366	if err := gensupport.DecodeResponse(target, res); err != nil {
47367		return nil, err
47368	}
47369	return ret, nil
47370	// {
47371	//   "description": "Retrieves the list of instances contained within the specified zone.",
47372	//   "httpMethod": "GET",
47373	//   "id": "compute.instances.list",
47374	//   "parameterOrder": [
47375	//     "project",
47376	//     "zone"
47377	//   ],
47378	//   "parameters": {
47379	//     "filter": {
47380	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
47381	//       "location": "query",
47382	//       "type": "string"
47383	//     },
47384	//     "maxResults": {
47385	//       "default": "500",
47386	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
47387	//       "format": "uint32",
47388	//       "location": "query",
47389	//       "minimum": "0",
47390	//       "type": "integer"
47391	//     },
47392	//     "orderBy": {
47393	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
47394	//       "location": "query",
47395	//       "type": "string"
47396	//     },
47397	//     "pageToken": {
47398	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
47399	//       "location": "query",
47400	//       "type": "string"
47401	//     },
47402	//     "project": {
47403	//       "description": "Project ID for this request.",
47404	//       "location": "path",
47405	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47406	//       "required": true,
47407	//       "type": "string"
47408	//     },
47409	//     "zone": {
47410	//       "description": "The name of the zone for this request.",
47411	//       "location": "path",
47412	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47413	//       "required": true,
47414	//       "type": "string"
47415	//     }
47416	//   },
47417	//   "path": "{project}/zones/{zone}/instances",
47418	//   "response": {
47419	//     "$ref": "InstanceList"
47420	//   },
47421	//   "scopes": [
47422	//     "https://www.googleapis.com/auth/cloud-platform",
47423	//     "https://www.googleapis.com/auth/compute",
47424	//     "https://www.googleapis.com/auth/compute.readonly"
47425	//   ]
47426	// }
47427
47428}
47429
47430// Pages invokes f for each page of results.
47431// A non-nil error returned from f will halt the iteration.
47432// The provided context supersedes any context provided to the Context method.
47433func (c *InstancesListCall) Pages(ctx context.Context, f func(*InstanceList) error) error {
47434	c.ctx_ = ctx
47435	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
47436	for {
47437		x, err := c.Do()
47438		if err != nil {
47439			return err
47440		}
47441		if err := f(x); err != nil {
47442			return err
47443		}
47444		if x.NextPageToken == "" {
47445			return nil
47446		}
47447		c.PageToken(x.NextPageToken)
47448	}
47449}
47450
47451// method id "compute.instances.listReferrers":
47452
47453type InstancesListReferrersCall struct {
47454	s            *Service
47455	project      string
47456	zone         string
47457	instance     string
47458	urlParams_   gensupport.URLParams
47459	ifNoneMatch_ string
47460	ctx_         context.Context
47461	header_      http.Header
47462}
47463
47464// ListReferrers: Retrieves the list of referrers to instances contained
47465// within the specified zone.
47466func (r *InstancesService) ListReferrers(project string, zone string, instance string) *InstancesListReferrersCall {
47467	c := &InstancesListReferrersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47468	c.project = project
47469	c.zone = zone
47470	c.instance = instance
47471	return c
47472}
47473
47474// Filter sets the optional parameter "filter": Sets a filter
47475// {expression} for filtering listed resources. Your {expression} must
47476// be in the format: field_name comparison_string literal_string.
47477//
47478// The field_name is the name of the field you want to compare. Only
47479// atomic field types are supported (string, number, boolean). The
47480// comparison_string must be either eq (equals) or ne (not equals). The
47481// literal_string is the string value to filter to. The literal value
47482// must be valid for the type of field you are filtering by (string,
47483// number, boolean). For string fields, the literal value is interpreted
47484// as a regular expression using RE2 syntax. The literal value must
47485// match the entire field.
47486//
47487// For example, to filter for instances that do not have a name of
47488// example-instance, you would use name ne example-instance.
47489//
47490// You can filter on nested fields. For example, you could filter on
47491// instances that have set the scheduling.automaticRestart field to
47492// true. Use filtering on nested fields to take advantage of labels to
47493// organize and search for results based on label values.
47494//
47495// To filter on multiple expressions, provide each separate expression
47496// within parentheses. For example, (scheduling.automaticRestart eq
47497// true) (zone eq us-central1-f). Multiple expressions are treated as
47498// AND expressions, meaning that resources must match all expressions to
47499// pass the filters.
47500func (c *InstancesListReferrersCall) Filter(filter string) *InstancesListReferrersCall {
47501	c.urlParams_.Set("filter", filter)
47502	return c
47503}
47504
47505// MaxResults sets the optional parameter "maxResults": The maximum
47506// number of results per page that should be returned. If the number of
47507// available results is larger than maxResults, Compute Engine returns a
47508// nextPageToken that can be used to get the next page of results in
47509// subsequent list requests. Acceptable values are 0 to 500, inclusive.
47510// (Default: 500)
47511func (c *InstancesListReferrersCall) MaxResults(maxResults int64) *InstancesListReferrersCall {
47512	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
47513	return c
47514}
47515
47516// OrderBy sets the optional parameter "orderBy": Sorts list results by
47517// a certain order. By default, results are returned in alphanumerical
47518// order based on the resource name.
47519//
47520// You can also sort results in descending order based on the creation
47521// timestamp using orderBy="creationTimestamp desc". This sorts results
47522// based on the creationTimestamp field in reverse chronological order
47523// (newest result first). Use this to sort resources like operations so
47524// that the newest operation is returned first.
47525//
47526// Currently, only sorting by name or creationTimestamp desc is
47527// supported.
47528func (c *InstancesListReferrersCall) OrderBy(orderBy string) *InstancesListReferrersCall {
47529	c.urlParams_.Set("orderBy", orderBy)
47530	return c
47531}
47532
47533// PageToken sets the optional parameter "pageToken": Specifies a page
47534// token to use. Set pageToken to the nextPageToken returned by a
47535// previous list request to get the next page of results.
47536func (c *InstancesListReferrersCall) PageToken(pageToken string) *InstancesListReferrersCall {
47537	c.urlParams_.Set("pageToken", pageToken)
47538	return c
47539}
47540
47541// Fields allows partial responses to be retrieved. See
47542// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47543// for more information.
47544func (c *InstancesListReferrersCall) Fields(s ...googleapi.Field) *InstancesListReferrersCall {
47545	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47546	return c
47547}
47548
47549// IfNoneMatch sets the optional parameter which makes the operation
47550// fail if the object's ETag matches the given value. This is useful for
47551// getting updates only after the object has changed since the last
47552// request. Use googleapi.IsNotModified to check whether the response
47553// error from Do is the result of In-None-Match.
47554func (c *InstancesListReferrersCall) IfNoneMatch(entityTag string) *InstancesListReferrersCall {
47555	c.ifNoneMatch_ = entityTag
47556	return c
47557}
47558
47559// Context sets the context to be used in this call's Do method. Any
47560// pending HTTP request will be aborted if the provided context is
47561// canceled.
47562func (c *InstancesListReferrersCall) Context(ctx context.Context) *InstancesListReferrersCall {
47563	c.ctx_ = ctx
47564	return c
47565}
47566
47567// Header returns an http.Header that can be modified by the caller to
47568// add HTTP headers to the request.
47569func (c *InstancesListReferrersCall) Header() http.Header {
47570	if c.header_ == nil {
47571		c.header_ = make(http.Header)
47572	}
47573	return c.header_
47574}
47575
47576func (c *InstancesListReferrersCall) doRequest(alt string) (*http.Response, error) {
47577	reqHeaders := make(http.Header)
47578	for k, v := range c.header_ {
47579		reqHeaders[k] = v
47580	}
47581	reqHeaders.Set("User-Agent", c.s.userAgent())
47582	if c.ifNoneMatch_ != "" {
47583		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
47584	}
47585	var body io.Reader = nil
47586	c.urlParams_.Set("alt", alt)
47587	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/referrers")
47588	urls += "?" + c.urlParams_.Encode()
47589	req, _ := http.NewRequest("GET", urls, body)
47590	req.Header = reqHeaders
47591	googleapi.Expand(req.URL, map[string]string{
47592		"project":  c.project,
47593		"zone":     c.zone,
47594		"instance": c.instance,
47595	})
47596	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47597}
47598
47599// Do executes the "compute.instances.listReferrers" call.
47600// Exactly one of *InstanceListReferrers or error will be non-nil. Any
47601// non-2xx status code is an error. Response headers are in either
47602// *InstanceListReferrers.ServerResponse.Header or (if a response was
47603// returned at all) in error.(*googleapi.Error).Header. Use
47604// googleapi.IsNotModified to check whether the returned error was
47605// because http.StatusNotModified was returned.
47606func (c *InstancesListReferrersCall) Do(opts ...googleapi.CallOption) (*InstanceListReferrers, error) {
47607	gensupport.SetOptions(c.urlParams_, opts...)
47608	res, err := c.doRequest("json")
47609	if res != nil && res.StatusCode == http.StatusNotModified {
47610		if res.Body != nil {
47611			res.Body.Close()
47612		}
47613		return nil, &googleapi.Error{
47614			Code:   res.StatusCode,
47615			Header: res.Header,
47616		}
47617	}
47618	if err != nil {
47619		return nil, err
47620	}
47621	defer googleapi.CloseBody(res)
47622	if err := googleapi.CheckResponse(res); err != nil {
47623		return nil, err
47624	}
47625	ret := &InstanceListReferrers{
47626		ServerResponse: googleapi.ServerResponse{
47627			Header:         res.Header,
47628			HTTPStatusCode: res.StatusCode,
47629		},
47630	}
47631	target := &ret
47632	if err := gensupport.DecodeResponse(target, res); err != nil {
47633		return nil, err
47634	}
47635	return ret, nil
47636	// {
47637	//   "description": "Retrieves the list of referrers to instances contained within the specified zone.",
47638	//   "httpMethod": "GET",
47639	//   "id": "compute.instances.listReferrers",
47640	//   "parameterOrder": [
47641	//     "project",
47642	//     "zone",
47643	//     "instance"
47644	//   ],
47645	//   "parameters": {
47646	//     "filter": {
47647	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
47648	//       "location": "query",
47649	//       "type": "string"
47650	//     },
47651	//     "instance": {
47652	//       "description": "Name of the target instance scoping this request, or '-' if the request should span over all instances in the container.",
47653	//       "location": "path",
47654	//       "pattern": "-|[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47655	//       "required": true,
47656	//       "type": "string"
47657	//     },
47658	//     "maxResults": {
47659	//       "default": "500",
47660	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
47661	//       "format": "uint32",
47662	//       "location": "query",
47663	//       "minimum": "0",
47664	//       "type": "integer"
47665	//     },
47666	//     "orderBy": {
47667	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
47668	//       "location": "query",
47669	//       "type": "string"
47670	//     },
47671	//     "pageToken": {
47672	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
47673	//       "location": "query",
47674	//       "type": "string"
47675	//     },
47676	//     "project": {
47677	//       "description": "Project ID for this request.",
47678	//       "location": "path",
47679	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47680	//       "required": true,
47681	//       "type": "string"
47682	//     },
47683	//     "zone": {
47684	//       "description": "The name of the zone for this request.",
47685	//       "location": "path",
47686	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47687	//       "required": true,
47688	//       "type": "string"
47689	//     }
47690	//   },
47691	//   "path": "{project}/zones/{zone}/instances/{instance}/referrers",
47692	//   "response": {
47693	//     "$ref": "InstanceListReferrers"
47694	//   },
47695	//   "scopes": [
47696	//     "https://www.googleapis.com/auth/cloud-platform",
47697	//     "https://www.googleapis.com/auth/compute",
47698	//     "https://www.googleapis.com/auth/compute.readonly"
47699	//   ]
47700	// }
47701
47702}
47703
47704// Pages invokes f for each page of results.
47705// A non-nil error returned from f will halt the iteration.
47706// The provided context supersedes any context provided to the Context method.
47707func (c *InstancesListReferrersCall) Pages(ctx context.Context, f func(*InstanceListReferrers) error) error {
47708	c.ctx_ = ctx
47709	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
47710	for {
47711		x, err := c.Do()
47712		if err != nil {
47713			return err
47714		}
47715		if err := f(x); err != nil {
47716			return err
47717		}
47718		if x.NextPageToken == "" {
47719			return nil
47720		}
47721		c.PageToken(x.NextPageToken)
47722	}
47723}
47724
47725// method id "compute.instances.reset":
47726
47727type InstancesResetCall struct {
47728	s          *Service
47729	project    string
47730	zone       string
47731	instance   string
47732	urlParams_ gensupport.URLParams
47733	ctx_       context.Context
47734	header_    http.Header
47735}
47736
47737// Reset: Performs a reset on the instance. For more information, see
47738// Resetting an instance.
47739// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/reset
47740func (r *InstancesService) Reset(project string, zone string, instance string) *InstancesResetCall {
47741	c := &InstancesResetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47742	c.project = project
47743	c.zone = zone
47744	c.instance = instance
47745	return c
47746}
47747
47748// RequestId sets the optional parameter "requestId": An optional
47749// request ID to identify requests. Specify a unique request ID so that
47750// if you must retry your request, the server will know to ignore the
47751// request if it has already been completed.
47752//
47753// For example, consider a situation where you make an initial request
47754// and the request times out. If you make the request again with the
47755// same request ID, the server can check if original operation with the
47756// same request ID was received, and if so, will ignore the second
47757// request. This prevents clients from accidentally creating duplicate
47758// commitments.
47759//
47760// The request ID must be a valid UUID with the exception that zero UUID
47761// is not supported (00000000-0000-0000-0000-000000000000).
47762func (c *InstancesResetCall) RequestId(requestId string) *InstancesResetCall {
47763	c.urlParams_.Set("requestId", requestId)
47764	return c
47765}
47766
47767// Fields allows partial responses to be retrieved. See
47768// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47769// for more information.
47770func (c *InstancesResetCall) Fields(s ...googleapi.Field) *InstancesResetCall {
47771	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47772	return c
47773}
47774
47775// Context sets the context to be used in this call's Do method. Any
47776// pending HTTP request will be aborted if the provided context is
47777// canceled.
47778func (c *InstancesResetCall) Context(ctx context.Context) *InstancesResetCall {
47779	c.ctx_ = ctx
47780	return c
47781}
47782
47783// Header returns an http.Header that can be modified by the caller to
47784// add HTTP headers to the request.
47785func (c *InstancesResetCall) Header() http.Header {
47786	if c.header_ == nil {
47787		c.header_ = make(http.Header)
47788	}
47789	return c.header_
47790}
47791
47792func (c *InstancesResetCall) doRequest(alt string) (*http.Response, error) {
47793	reqHeaders := make(http.Header)
47794	for k, v := range c.header_ {
47795		reqHeaders[k] = v
47796	}
47797	reqHeaders.Set("User-Agent", c.s.userAgent())
47798	var body io.Reader = nil
47799	c.urlParams_.Set("alt", alt)
47800	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/reset")
47801	urls += "?" + c.urlParams_.Encode()
47802	req, _ := http.NewRequest("POST", urls, body)
47803	req.Header = reqHeaders
47804	googleapi.Expand(req.URL, map[string]string{
47805		"project":  c.project,
47806		"zone":     c.zone,
47807		"instance": c.instance,
47808	})
47809	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47810}
47811
47812// Do executes the "compute.instances.reset" call.
47813// Exactly one of *Operation or error will be non-nil. Any non-2xx
47814// status code is an error. Response headers are in either
47815// *Operation.ServerResponse.Header or (if a response was returned at
47816// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47817// to check whether the returned error was because
47818// http.StatusNotModified was returned.
47819func (c *InstancesResetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
47820	gensupport.SetOptions(c.urlParams_, opts...)
47821	res, err := c.doRequest("json")
47822	if res != nil && res.StatusCode == http.StatusNotModified {
47823		if res.Body != nil {
47824			res.Body.Close()
47825		}
47826		return nil, &googleapi.Error{
47827			Code:   res.StatusCode,
47828			Header: res.Header,
47829		}
47830	}
47831	if err != nil {
47832		return nil, err
47833	}
47834	defer googleapi.CloseBody(res)
47835	if err := googleapi.CheckResponse(res); err != nil {
47836		return nil, err
47837	}
47838	ret := &Operation{
47839		ServerResponse: googleapi.ServerResponse{
47840			Header:         res.Header,
47841			HTTPStatusCode: res.StatusCode,
47842		},
47843	}
47844	target := &ret
47845	if err := gensupport.DecodeResponse(target, res); err != nil {
47846		return nil, err
47847	}
47848	return ret, nil
47849	// {
47850	//   "description": "Performs a reset on the instance. For more information, see Resetting an instance.",
47851	//   "httpMethod": "POST",
47852	//   "id": "compute.instances.reset",
47853	//   "parameterOrder": [
47854	//     "project",
47855	//     "zone",
47856	//     "instance"
47857	//   ],
47858	//   "parameters": {
47859	//     "instance": {
47860	//       "description": "Name of the instance scoping this request.",
47861	//       "location": "path",
47862	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47863	//       "required": true,
47864	//       "type": "string"
47865	//     },
47866	//     "project": {
47867	//       "description": "Project ID for this request.",
47868	//       "location": "path",
47869	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47870	//       "required": true,
47871	//       "type": "string"
47872	//     },
47873	//     "requestId": {
47874	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
47875	//       "location": "query",
47876	//       "type": "string"
47877	//     },
47878	//     "zone": {
47879	//       "description": "The name of the zone for this request.",
47880	//       "location": "path",
47881	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47882	//       "required": true,
47883	//       "type": "string"
47884	//     }
47885	//   },
47886	//   "path": "{project}/zones/{zone}/instances/{instance}/reset",
47887	//   "response": {
47888	//     "$ref": "Operation"
47889	//   },
47890	//   "scopes": [
47891	//     "https://www.googleapis.com/auth/cloud-platform",
47892	//     "https://www.googleapis.com/auth/compute"
47893	//   ]
47894	// }
47895
47896}
47897
47898// method id "compute.instances.setDeletionProtection":
47899
47900type InstancesSetDeletionProtectionCall struct {
47901	s          *Service
47902	project    string
47903	zone       string
47904	resource   string
47905	urlParams_ gensupport.URLParams
47906	ctx_       context.Context
47907	header_    http.Header
47908}
47909
47910// SetDeletionProtection: Sets deletion protection on the instance.
47911func (r *InstancesService) SetDeletionProtection(project string, zone string, resource string) *InstancesSetDeletionProtectionCall {
47912	c := &InstancesSetDeletionProtectionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47913	c.project = project
47914	c.zone = zone
47915	c.resource = resource
47916	return c
47917}
47918
47919// DeletionProtection sets the optional parameter "deletionProtection":
47920// Whether the resource should be protected against deletion.
47921func (c *InstancesSetDeletionProtectionCall) DeletionProtection(deletionProtection bool) *InstancesSetDeletionProtectionCall {
47922	c.urlParams_.Set("deletionProtection", fmt.Sprint(deletionProtection))
47923	return c
47924}
47925
47926// RequestId sets the optional parameter "requestId": An optional
47927// request ID to identify requests. Specify a unique request ID so that
47928// if you must retry your request, the server will know to ignore the
47929// request if it has already been completed.
47930//
47931// For example, consider a situation where you make an initial request
47932// and the request times out. If you make the request again with the
47933// same request ID, the server can check if original operation with the
47934// same request ID was received, and if so, will ignore the second
47935// request. This prevents clients from accidentally creating duplicate
47936// commitments.
47937//
47938// The request ID must be a valid UUID with the exception that zero UUID
47939// is not supported (00000000-0000-0000-0000-000000000000).
47940func (c *InstancesSetDeletionProtectionCall) RequestId(requestId string) *InstancesSetDeletionProtectionCall {
47941	c.urlParams_.Set("requestId", requestId)
47942	return c
47943}
47944
47945// Fields allows partial responses to be retrieved. See
47946// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47947// for more information.
47948func (c *InstancesSetDeletionProtectionCall) Fields(s ...googleapi.Field) *InstancesSetDeletionProtectionCall {
47949	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47950	return c
47951}
47952
47953// Context sets the context to be used in this call's Do method. Any
47954// pending HTTP request will be aborted if the provided context is
47955// canceled.
47956func (c *InstancesSetDeletionProtectionCall) Context(ctx context.Context) *InstancesSetDeletionProtectionCall {
47957	c.ctx_ = ctx
47958	return c
47959}
47960
47961// Header returns an http.Header that can be modified by the caller to
47962// add HTTP headers to the request.
47963func (c *InstancesSetDeletionProtectionCall) Header() http.Header {
47964	if c.header_ == nil {
47965		c.header_ = make(http.Header)
47966	}
47967	return c.header_
47968}
47969
47970func (c *InstancesSetDeletionProtectionCall) doRequest(alt string) (*http.Response, error) {
47971	reqHeaders := make(http.Header)
47972	for k, v := range c.header_ {
47973		reqHeaders[k] = v
47974	}
47975	reqHeaders.Set("User-Agent", c.s.userAgent())
47976	var body io.Reader = nil
47977	c.urlParams_.Set("alt", alt)
47978	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/setDeletionProtection")
47979	urls += "?" + c.urlParams_.Encode()
47980	req, _ := http.NewRequest("POST", urls, body)
47981	req.Header = reqHeaders
47982	googleapi.Expand(req.URL, map[string]string{
47983		"project":  c.project,
47984		"zone":     c.zone,
47985		"resource": c.resource,
47986	})
47987	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47988}
47989
47990// Do executes the "compute.instances.setDeletionProtection" call.
47991// Exactly one of *Operation or error will be non-nil. Any non-2xx
47992// status code is an error. Response headers are in either
47993// *Operation.ServerResponse.Header or (if a response was returned at
47994// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47995// to check whether the returned error was because
47996// http.StatusNotModified was returned.
47997func (c *InstancesSetDeletionProtectionCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
47998	gensupport.SetOptions(c.urlParams_, opts...)
47999	res, err := c.doRequest("json")
48000	if res != nil && res.StatusCode == http.StatusNotModified {
48001		if res.Body != nil {
48002			res.Body.Close()
48003		}
48004		return nil, &googleapi.Error{
48005			Code:   res.StatusCode,
48006			Header: res.Header,
48007		}
48008	}
48009	if err != nil {
48010		return nil, err
48011	}
48012	defer googleapi.CloseBody(res)
48013	if err := googleapi.CheckResponse(res); err != nil {
48014		return nil, err
48015	}
48016	ret := &Operation{
48017		ServerResponse: googleapi.ServerResponse{
48018			Header:         res.Header,
48019			HTTPStatusCode: res.StatusCode,
48020		},
48021	}
48022	target := &ret
48023	if err := gensupport.DecodeResponse(target, res); err != nil {
48024		return nil, err
48025	}
48026	return ret, nil
48027	// {
48028	//   "description": "Sets deletion protection on the instance.",
48029	//   "httpMethod": "POST",
48030	//   "id": "compute.instances.setDeletionProtection",
48031	//   "parameterOrder": [
48032	//     "project",
48033	//     "zone",
48034	//     "resource"
48035	//   ],
48036	//   "parameters": {
48037	//     "deletionProtection": {
48038	//       "default": "true",
48039	//       "description": "Whether the resource should be protected against deletion.",
48040	//       "location": "query",
48041	//       "type": "boolean"
48042	//     },
48043	//     "project": {
48044	//       "description": "Project ID for this request.",
48045	//       "location": "path",
48046	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48047	//       "required": true,
48048	//       "type": "string"
48049	//     },
48050	//     "requestId": {
48051	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48052	//       "location": "query",
48053	//       "type": "string"
48054	//     },
48055	//     "resource": {
48056	//       "description": "Name of the resource for this request.",
48057	//       "location": "path",
48058	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48059	//       "required": true,
48060	//       "type": "string"
48061	//     },
48062	//     "zone": {
48063	//       "description": "The name of the zone for this request.",
48064	//       "location": "path",
48065	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48066	//       "required": true,
48067	//       "type": "string"
48068	//     }
48069	//   },
48070	//   "path": "{project}/zones/{zone}/instances/{resource}/setDeletionProtection",
48071	//   "response": {
48072	//     "$ref": "Operation"
48073	//   },
48074	//   "scopes": [
48075	//     "https://www.googleapis.com/auth/cloud-platform",
48076	//     "https://www.googleapis.com/auth/compute"
48077	//   ]
48078	// }
48079
48080}
48081
48082// method id "compute.instances.setDiskAutoDelete":
48083
48084type InstancesSetDiskAutoDeleteCall struct {
48085	s          *Service
48086	project    string
48087	zone       string
48088	instance   string
48089	urlParams_ gensupport.URLParams
48090	ctx_       context.Context
48091	header_    http.Header
48092}
48093
48094// SetDiskAutoDelete: Sets the auto-delete flag for a disk attached to
48095// an instance.
48096// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setDiskAutoDelete
48097func (r *InstancesService) SetDiskAutoDelete(project string, zone string, instance string, autoDelete bool, deviceName string) *InstancesSetDiskAutoDeleteCall {
48098	c := &InstancesSetDiskAutoDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48099	c.project = project
48100	c.zone = zone
48101	c.instance = instance
48102	c.urlParams_.Set("autoDelete", fmt.Sprint(autoDelete))
48103	c.urlParams_.Set("deviceName", deviceName)
48104	return c
48105}
48106
48107// RequestId sets the optional parameter "requestId": An optional
48108// request ID to identify requests. Specify a unique request ID so that
48109// if you must retry your request, the server will know to ignore the
48110// request if it has already been completed.
48111//
48112// For example, consider a situation where you make an initial request
48113// and the request times out. If you make the request again with the
48114// same request ID, the server can check if original operation with the
48115// same request ID was received, and if so, will ignore the second
48116// request. This prevents clients from accidentally creating duplicate
48117// commitments.
48118//
48119// The request ID must be a valid UUID with the exception that zero UUID
48120// is not supported (00000000-0000-0000-0000-000000000000).
48121func (c *InstancesSetDiskAutoDeleteCall) RequestId(requestId string) *InstancesSetDiskAutoDeleteCall {
48122	c.urlParams_.Set("requestId", requestId)
48123	return c
48124}
48125
48126// Fields allows partial responses to be retrieved. See
48127// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48128// for more information.
48129func (c *InstancesSetDiskAutoDeleteCall) Fields(s ...googleapi.Field) *InstancesSetDiskAutoDeleteCall {
48130	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48131	return c
48132}
48133
48134// Context sets the context to be used in this call's Do method. Any
48135// pending HTTP request will be aborted if the provided context is
48136// canceled.
48137func (c *InstancesSetDiskAutoDeleteCall) Context(ctx context.Context) *InstancesSetDiskAutoDeleteCall {
48138	c.ctx_ = ctx
48139	return c
48140}
48141
48142// Header returns an http.Header that can be modified by the caller to
48143// add HTTP headers to the request.
48144func (c *InstancesSetDiskAutoDeleteCall) Header() http.Header {
48145	if c.header_ == nil {
48146		c.header_ = make(http.Header)
48147	}
48148	return c.header_
48149}
48150
48151func (c *InstancesSetDiskAutoDeleteCall) doRequest(alt string) (*http.Response, error) {
48152	reqHeaders := make(http.Header)
48153	for k, v := range c.header_ {
48154		reqHeaders[k] = v
48155	}
48156	reqHeaders.Set("User-Agent", c.s.userAgent())
48157	var body io.Reader = nil
48158	c.urlParams_.Set("alt", alt)
48159	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete")
48160	urls += "?" + c.urlParams_.Encode()
48161	req, _ := http.NewRequest("POST", urls, body)
48162	req.Header = reqHeaders
48163	googleapi.Expand(req.URL, map[string]string{
48164		"project":  c.project,
48165		"zone":     c.zone,
48166		"instance": c.instance,
48167	})
48168	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48169}
48170
48171// Do executes the "compute.instances.setDiskAutoDelete" call.
48172// Exactly one of *Operation or error will be non-nil. Any non-2xx
48173// status code is an error. Response headers are in either
48174// *Operation.ServerResponse.Header or (if a response was returned at
48175// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48176// to check whether the returned error was because
48177// http.StatusNotModified was returned.
48178func (c *InstancesSetDiskAutoDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48179	gensupport.SetOptions(c.urlParams_, opts...)
48180	res, err := c.doRequest("json")
48181	if res != nil && res.StatusCode == http.StatusNotModified {
48182		if res.Body != nil {
48183			res.Body.Close()
48184		}
48185		return nil, &googleapi.Error{
48186			Code:   res.StatusCode,
48187			Header: res.Header,
48188		}
48189	}
48190	if err != nil {
48191		return nil, err
48192	}
48193	defer googleapi.CloseBody(res)
48194	if err := googleapi.CheckResponse(res); err != nil {
48195		return nil, err
48196	}
48197	ret := &Operation{
48198		ServerResponse: googleapi.ServerResponse{
48199			Header:         res.Header,
48200			HTTPStatusCode: res.StatusCode,
48201		},
48202	}
48203	target := &ret
48204	if err := gensupport.DecodeResponse(target, res); err != nil {
48205		return nil, err
48206	}
48207	return ret, nil
48208	// {
48209	//   "description": "Sets the auto-delete flag for a disk attached to an instance.",
48210	//   "httpMethod": "POST",
48211	//   "id": "compute.instances.setDiskAutoDelete",
48212	//   "parameterOrder": [
48213	//     "project",
48214	//     "zone",
48215	//     "instance",
48216	//     "autoDelete",
48217	//     "deviceName"
48218	//   ],
48219	//   "parameters": {
48220	//     "autoDelete": {
48221	//       "description": "Whether to auto-delete the disk when the instance is deleted.",
48222	//       "location": "query",
48223	//       "required": true,
48224	//       "type": "boolean"
48225	//     },
48226	//     "deviceName": {
48227	//       "description": "The device name of the disk to modify.",
48228	//       "location": "query",
48229	//       "pattern": "\\w[\\w.-]{0,254}",
48230	//       "required": true,
48231	//       "type": "string"
48232	//     },
48233	//     "instance": {
48234	//       "description": "The instance name.",
48235	//       "location": "path",
48236	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48237	//       "required": true,
48238	//       "type": "string"
48239	//     },
48240	//     "project": {
48241	//       "description": "Project ID for this request.",
48242	//       "location": "path",
48243	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48244	//       "required": true,
48245	//       "type": "string"
48246	//     },
48247	//     "requestId": {
48248	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48249	//       "location": "query",
48250	//       "type": "string"
48251	//     },
48252	//     "zone": {
48253	//       "description": "The name of the zone for this request.",
48254	//       "location": "path",
48255	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48256	//       "required": true,
48257	//       "type": "string"
48258	//     }
48259	//   },
48260	//   "path": "{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete",
48261	//   "response": {
48262	//     "$ref": "Operation"
48263	//   },
48264	//   "scopes": [
48265	//     "https://www.googleapis.com/auth/cloud-platform",
48266	//     "https://www.googleapis.com/auth/compute"
48267	//   ]
48268	// }
48269
48270}
48271
48272// method id "compute.instances.setLabels":
48273
48274type InstancesSetLabelsCall struct {
48275	s                         *Service
48276	project                   string
48277	zone                      string
48278	instance                  string
48279	instancessetlabelsrequest *InstancesSetLabelsRequest
48280	urlParams_                gensupport.URLParams
48281	ctx_                      context.Context
48282	header_                   http.Header
48283}
48284
48285// SetLabels: Sets labels on an instance. To learn more about labels,
48286// read the Labeling Resources documentation.
48287func (r *InstancesService) SetLabels(project string, zone string, instance string, instancessetlabelsrequest *InstancesSetLabelsRequest) *InstancesSetLabelsCall {
48288	c := &InstancesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48289	c.project = project
48290	c.zone = zone
48291	c.instance = instance
48292	c.instancessetlabelsrequest = instancessetlabelsrequest
48293	return c
48294}
48295
48296// RequestId sets the optional parameter "requestId": An optional
48297// request ID to identify requests. Specify a unique request ID so that
48298// if you must retry your request, the server will know to ignore the
48299// request if it has already been completed.
48300//
48301// For example, consider a situation where you make an initial request
48302// and the request times out. If you make the request again with the
48303// same request ID, the server can check if original operation with the
48304// same request ID was received, and if so, will ignore the second
48305// request. This prevents clients from accidentally creating duplicate
48306// commitments.
48307//
48308// The request ID must be a valid UUID with the exception that zero UUID
48309// is not supported (00000000-0000-0000-0000-000000000000).
48310func (c *InstancesSetLabelsCall) RequestId(requestId string) *InstancesSetLabelsCall {
48311	c.urlParams_.Set("requestId", requestId)
48312	return c
48313}
48314
48315// Fields allows partial responses to be retrieved. See
48316// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48317// for more information.
48318func (c *InstancesSetLabelsCall) Fields(s ...googleapi.Field) *InstancesSetLabelsCall {
48319	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48320	return c
48321}
48322
48323// Context sets the context to be used in this call's Do method. Any
48324// pending HTTP request will be aborted if the provided context is
48325// canceled.
48326func (c *InstancesSetLabelsCall) Context(ctx context.Context) *InstancesSetLabelsCall {
48327	c.ctx_ = ctx
48328	return c
48329}
48330
48331// Header returns an http.Header that can be modified by the caller to
48332// add HTTP headers to the request.
48333func (c *InstancesSetLabelsCall) Header() http.Header {
48334	if c.header_ == nil {
48335		c.header_ = make(http.Header)
48336	}
48337	return c.header_
48338}
48339
48340func (c *InstancesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
48341	reqHeaders := make(http.Header)
48342	for k, v := range c.header_ {
48343		reqHeaders[k] = v
48344	}
48345	reqHeaders.Set("User-Agent", c.s.userAgent())
48346	var body io.Reader = nil
48347	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetlabelsrequest)
48348	if err != nil {
48349		return nil, err
48350	}
48351	reqHeaders.Set("Content-Type", "application/json")
48352	c.urlParams_.Set("alt", alt)
48353	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setLabels")
48354	urls += "?" + c.urlParams_.Encode()
48355	req, _ := http.NewRequest("POST", urls, body)
48356	req.Header = reqHeaders
48357	googleapi.Expand(req.URL, map[string]string{
48358		"project":  c.project,
48359		"zone":     c.zone,
48360		"instance": c.instance,
48361	})
48362	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48363}
48364
48365// Do executes the "compute.instances.setLabels" call.
48366// Exactly one of *Operation or error will be non-nil. Any non-2xx
48367// status code is an error. Response headers are in either
48368// *Operation.ServerResponse.Header or (if a response was returned at
48369// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48370// to check whether the returned error was because
48371// http.StatusNotModified was returned.
48372func (c *InstancesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48373	gensupport.SetOptions(c.urlParams_, opts...)
48374	res, err := c.doRequest("json")
48375	if res != nil && res.StatusCode == http.StatusNotModified {
48376		if res.Body != nil {
48377			res.Body.Close()
48378		}
48379		return nil, &googleapi.Error{
48380			Code:   res.StatusCode,
48381			Header: res.Header,
48382		}
48383	}
48384	if err != nil {
48385		return nil, err
48386	}
48387	defer googleapi.CloseBody(res)
48388	if err := googleapi.CheckResponse(res); err != nil {
48389		return nil, err
48390	}
48391	ret := &Operation{
48392		ServerResponse: googleapi.ServerResponse{
48393			Header:         res.Header,
48394			HTTPStatusCode: res.StatusCode,
48395		},
48396	}
48397	target := &ret
48398	if err := gensupport.DecodeResponse(target, res); err != nil {
48399		return nil, err
48400	}
48401	return ret, nil
48402	// {
48403	//   "description": "Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation.",
48404	//   "httpMethod": "POST",
48405	//   "id": "compute.instances.setLabels",
48406	//   "parameterOrder": [
48407	//     "project",
48408	//     "zone",
48409	//     "instance"
48410	//   ],
48411	//   "parameters": {
48412	//     "instance": {
48413	//       "description": "Name of the instance scoping this request.",
48414	//       "location": "path",
48415	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48416	//       "required": true,
48417	//       "type": "string"
48418	//     },
48419	//     "project": {
48420	//       "description": "Project ID for this request.",
48421	//       "location": "path",
48422	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48423	//       "required": true,
48424	//       "type": "string"
48425	//     },
48426	//     "requestId": {
48427	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48428	//       "location": "query",
48429	//       "type": "string"
48430	//     },
48431	//     "zone": {
48432	//       "description": "The name of the zone for this request.",
48433	//       "location": "path",
48434	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48435	//       "required": true,
48436	//       "type": "string"
48437	//     }
48438	//   },
48439	//   "path": "{project}/zones/{zone}/instances/{instance}/setLabels",
48440	//   "request": {
48441	//     "$ref": "InstancesSetLabelsRequest"
48442	//   },
48443	//   "response": {
48444	//     "$ref": "Operation"
48445	//   },
48446	//   "scopes": [
48447	//     "https://www.googleapis.com/auth/cloud-platform",
48448	//     "https://www.googleapis.com/auth/compute"
48449	//   ]
48450	// }
48451
48452}
48453
48454// method id "compute.instances.setMachineResources":
48455
48456type InstancesSetMachineResourcesCall struct {
48457	s                                   *Service
48458	project                             string
48459	zone                                string
48460	instance                            string
48461	instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest
48462	urlParams_                          gensupport.URLParams
48463	ctx_                                context.Context
48464	header_                             http.Header
48465}
48466
48467// SetMachineResources: Changes the number and/or type of accelerator
48468// for a stopped instance to the values specified in the request.
48469func (r *InstancesService) SetMachineResources(project string, zone string, instance string, instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest) *InstancesSetMachineResourcesCall {
48470	c := &InstancesSetMachineResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48471	c.project = project
48472	c.zone = zone
48473	c.instance = instance
48474	c.instancessetmachineresourcesrequest = instancessetmachineresourcesrequest
48475	return c
48476}
48477
48478// RequestId sets the optional parameter "requestId": An optional
48479// request ID to identify requests. Specify a unique request ID so that
48480// if you must retry your request, the server will know to ignore the
48481// request if it has already been completed.
48482//
48483// For example, consider a situation where you make an initial request
48484// and the request times out. If you make the request again with the
48485// same request ID, the server can check if original operation with the
48486// same request ID was received, and if so, will ignore the second
48487// request. This prevents clients from accidentally creating duplicate
48488// commitments.
48489//
48490// The request ID must be a valid UUID with the exception that zero UUID
48491// is not supported (00000000-0000-0000-0000-000000000000).
48492func (c *InstancesSetMachineResourcesCall) RequestId(requestId string) *InstancesSetMachineResourcesCall {
48493	c.urlParams_.Set("requestId", requestId)
48494	return c
48495}
48496
48497// Fields allows partial responses to be retrieved. See
48498// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48499// for more information.
48500func (c *InstancesSetMachineResourcesCall) Fields(s ...googleapi.Field) *InstancesSetMachineResourcesCall {
48501	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48502	return c
48503}
48504
48505// Context sets the context to be used in this call's Do method. Any
48506// pending HTTP request will be aborted if the provided context is
48507// canceled.
48508func (c *InstancesSetMachineResourcesCall) Context(ctx context.Context) *InstancesSetMachineResourcesCall {
48509	c.ctx_ = ctx
48510	return c
48511}
48512
48513// Header returns an http.Header that can be modified by the caller to
48514// add HTTP headers to the request.
48515func (c *InstancesSetMachineResourcesCall) Header() http.Header {
48516	if c.header_ == nil {
48517		c.header_ = make(http.Header)
48518	}
48519	return c.header_
48520}
48521
48522func (c *InstancesSetMachineResourcesCall) doRequest(alt string) (*http.Response, error) {
48523	reqHeaders := make(http.Header)
48524	for k, v := range c.header_ {
48525		reqHeaders[k] = v
48526	}
48527	reqHeaders.Set("User-Agent", c.s.userAgent())
48528	var body io.Reader = nil
48529	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachineresourcesrequest)
48530	if err != nil {
48531		return nil, err
48532	}
48533	reqHeaders.Set("Content-Type", "application/json")
48534	c.urlParams_.Set("alt", alt)
48535	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMachineResources")
48536	urls += "?" + c.urlParams_.Encode()
48537	req, _ := http.NewRequest("POST", urls, body)
48538	req.Header = reqHeaders
48539	googleapi.Expand(req.URL, map[string]string{
48540		"project":  c.project,
48541		"zone":     c.zone,
48542		"instance": c.instance,
48543	})
48544	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48545}
48546
48547// Do executes the "compute.instances.setMachineResources" call.
48548// Exactly one of *Operation or error will be non-nil. Any non-2xx
48549// status code is an error. Response headers are in either
48550// *Operation.ServerResponse.Header or (if a response was returned at
48551// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48552// to check whether the returned error was because
48553// http.StatusNotModified was returned.
48554func (c *InstancesSetMachineResourcesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48555	gensupport.SetOptions(c.urlParams_, opts...)
48556	res, err := c.doRequest("json")
48557	if res != nil && res.StatusCode == http.StatusNotModified {
48558		if res.Body != nil {
48559			res.Body.Close()
48560		}
48561		return nil, &googleapi.Error{
48562			Code:   res.StatusCode,
48563			Header: res.Header,
48564		}
48565	}
48566	if err != nil {
48567		return nil, err
48568	}
48569	defer googleapi.CloseBody(res)
48570	if err := googleapi.CheckResponse(res); err != nil {
48571		return nil, err
48572	}
48573	ret := &Operation{
48574		ServerResponse: googleapi.ServerResponse{
48575			Header:         res.Header,
48576			HTTPStatusCode: res.StatusCode,
48577		},
48578	}
48579	target := &ret
48580	if err := gensupport.DecodeResponse(target, res); err != nil {
48581		return nil, err
48582	}
48583	return ret, nil
48584	// {
48585	//   "description": "Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.",
48586	//   "httpMethod": "POST",
48587	//   "id": "compute.instances.setMachineResources",
48588	//   "parameterOrder": [
48589	//     "project",
48590	//     "zone",
48591	//     "instance"
48592	//   ],
48593	//   "parameters": {
48594	//     "instance": {
48595	//       "description": "Name of the instance scoping this request.",
48596	//       "location": "path",
48597	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48598	//       "required": true,
48599	//       "type": "string"
48600	//     },
48601	//     "project": {
48602	//       "description": "Project ID for this request.",
48603	//       "location": "path",
48604	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48605	//       "required": true,
48606	//       "type": "string"
48607	//     },
48608	//     "requestId": {
48609	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48610	//       "location": "query",
48611	//       "type": "string"
48612	//     },
48613	//     "zone": {
48614	//       "description": "The name of the zone for this request.",
48615	//       "location": "path",
48616	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48617	//       "required": true,
48618	//       "type": "string"
48619	//     }
48620	//   },
48621	//   "path": "{project}/zones/{zone}/instances/{instance}/setMachineResources",
48622	//   "request": {
48623	//     "$ref": "InstancesSetMachineResourcesRequest"
48624	//   },
48625	//   "response": {
48626	//     "$ref": "Operation"
48627	//   },
48628	//   "scopes": [
48629	//     "https://www.googleapis.com/auth/cloud-platform",
48630	//     "https://www.googleapis.com/auth/compute"
48631	//   ]
48632	// }
48633
48634}
48635
48636// method id "compute.instances.setMachineType":
48637
48638type InstancesSetMachineTypeCall struct {
48639	s                              *Service
48640	project                        string
48641	zone                           string
48642	instance                       string
48643	instancessetmachinetyperequest *InstancesSetMachineTypeRequest
48644	urlParams_                     gensupport.URLParams
48645	ctx_                           context.Context
48646	header_                        http.Header
48647}
48648
48649// SetMachineType: Changes the machine type for a stopped instance to
48650// the machine type specified in the request.
48651func (r *InstancesService) SetMachineType(project string, zone string, instance string, instancessetmachinetyperequest *InstancesSetMachineTypeRequest) *InstancesSetMachineTypeCall {
48652	c := &InstancesSetMachineTypeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48653	c.project = project
48654	c.zone = zone
48655	c.instance = instance
48656	c.instancessetmachinetyperequest = instancessetmachinetyperequest
48657	return c
48658}
48659
48660// RequestId sets the optional parameter "requestId": An optional
48661// request ID to identify requests. Specify a unique request ID so that
48662// if you must retry your request, the server will know to ignore the
48663// request if it has already been completed.
48664//
48665// For example, consider a situation where you make an initial request
48666// and the request times out. If you make the request again with the
48667// same request ID, the server can check if original operation with the
48668// same request ID was received, and if so, will ignore the second
48669// request. This prevents clients from accidentally creating duplicate
48670// commitments.
48671//
48672// The request ID must be a valid UUID with the exception that zero UUID
48673// is not supported (00000000-0000-0000-0000-000000000000).
48674func (c *InstancesSetMachineTypeCall) RequestId(requestId string) *InstancesSetMachineTypeCall {
48675	c.urlParams_.Set("requestId", requestId)
48676	return c
48677}
48678
48679// Fields allows partial responses to be retrieved. See
48680// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48681// for more information.
48682func (c *InstancesSetMachineTypeCall) Fields(s ...googleapi.Field) *InstancesSetMachineTypeCall {
48683	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48684	return c
48685}
48686
48687// Context sets the context to be used in this call's Do method. Any
48688// pending HTTP request will be aborted if the provided context is
48689// canceled.
48690func (c *InstancesSetMachineTypeCall) Context(ctx context.Context) *InstancesSetMachineTypeCall {
48691	c.ctx_ = ctx
48692	return c
48693}
48694
48695// Header returns an http.Header that can be modified by the caller to
48696// add HTTP headers to the request.
48697func (c *InstancesSetMachineTypeCall) Header() http.Header {
48698	if c.header_ == nil {
48699		c.header_ = make(http.Header)
48700	}
48701	return c.header_
48702}
48703
48704func (c *InstancesSetMachineTypeCall) doRequest(alt string) (*http.Response, error) {
48705	reqHeaders := make(http.Header)
48706	for k, v := range c.header_ {
48707		reqHeaders[k] = v
48708	}
48709	reqHeaders.Set("User-Agent", c.s.userAgent())
48710	var body io.Reader = nil
48711	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachinetyperequest)
48712	if err != nil {
48713		return nil, err
48714	}
48715	reqHeaders.Set("Content-Type", "application/json")
48716	c.urlParams_.Set("alt", alt)
48717	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMachineType")
48718	urls += "?" + c.urlParams_.Encode()
48719	req, _ := http.NewRequest("POST", urls, body)
48720	req.Header = reqHeaders
48721	googleapi.Expand(req.URL, map[string]string{
48722		"project":  c.project,
48723		"zone":     c.zone,
48724		"instance": c.instance,
48725	})
48726	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48727}
48728
48729// Do executes the "compute.instances.setMachineType" call.
48730// Exactly one of *Operation or error will be non-nil. Any non-2xx
48731// status code is an error. Response headers are in either
48732// *Operation.ServerResponse.Header or (if a response was returned at
48733// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48734// to check whether the returned error was because
48735// http.StatusNotModified was returned.
48736func (c *InstancesSetMachineTypeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48737	gensupport.SetOptions(c.urlParams_, opts...)
48738	res, err := c.doRequest("json")
48739	if res != nil && res.StatusCode == http.StatusNotModified {
48740		if res.Body != nil {
48741			res.Body.Close()
48742		}
48743		return nil, &googleapi.Error{
48744			Code:   res.StatusCode,
48745			Header: res.Header,
48746		}
48747	}
48748	if err != nil {
48749		return nil, err
48750	}
48751	defer googleapi.CloseBody(res)
48752	if err := googleapi.CheckResponse(res); err != nil {
48753		return nil, err
48754	}
48755	ret := &Operation{
48756		ServerResponse: googleapi.ServerResponse{
48757			Header:         res.Header,
48758			HTTPStatusCode: res.StatusCode,
48759		},
48760	}
48761	target := &ret
48762	if err := gensupport.DecodeResponse(target, res); err != nil {
48763		return nil, err
48764	}
48765	return ret, nil
48766	// {
48767	//   "description": "Changes the machine type for a stopped instance to the machine type specified in the request.",
48768	//   "httpMethod": "POST",
48769	//   "id": "compute.instances.setMachineType",
48770	//   "parameterOrder": [
48771	//     "project",
48772	//     "zone",
48773	//     "instance"
48774	//   ],
48775	//   "parameters": {
48776	//     "instance": {
48777	//       "description": "Name of the instance scoping this request.",
48778	//       "location": "path",
48779	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48780	//       "required": true,
48781	//       "type": "string"
48782	//     },
48783	//     "project": {
48784	//       "description": "Project ID for this request.",
48785	//       "location": "path",
48786	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48787	//       "required": true,
48788	//       "type": "string"
48789	//     },
48790	//     "requestId": {
48791	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48792	//       "location": "query",
48793	//       "type": "string"
48794	//     },
48795	//     "zone": {
48796	//       "description": "The name of the zone for this request.",
48797	//       "location": "path",
48798	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48799	//       "required": true,
48800	//       "type": "string"
48801	//     }
48802	//   },
48803	//   "path": "{project}/zones/{zone}/instances/{instance}/setMachineType",
48804	//   "request": {
48805	//     "$ref": "InstancesSetMachineTypeRequest"
48806	//   },
48807	//   "response": {
48808	//     "$ref": "Operation"
48809	//   },
48810	//   "scopes": [
48811	//     "https://www.googleapis.com/auth/cloud-platform",
48812	//     "https://www.googleapis.com/auth/compute"
48813	//   ]
48814	// }
48815
48816}
48817
48818// method id "compute.instances.setMetadata":
48819
48820type InstancesSetMetadataCall struct {
48821	s          *Service
48822	project    string
48823	zone       string
48824	instance   string
48825	metadata   *Metadata
48826	urlParams_ gensupport.URLParams
48827	ctx_       context.Context
48828	header_    http.Header
48829}
48830
48831// SetMetadata: Sets metadata for the specified instance to the data
48832// included in the request.
48833// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setMetadata
48834func (r *InstancesService) SetMetadata(project string, zone string, instance string, metadata *Metadata) *InstancesSetMetadataCall {
48835	c := &InstancesSetMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48836	c.project = project
48837	c.zone = zone
48838	c.instance = instance
48839	c.metadata = metadata
48840	return c
48841}
48842
48843// RequestId sets the optional parameter "requestId": An optional
48844// request ID to identify requests. Specify a unique request ID so that
48845// if you must retry your request, the server will know to ignore the
48846// request if it has already been completed.
48847//
48848// For example, consider a situation where you make an initial request
48849// and the request times out. If you make the request again with the
48850// same request ID, the server can check if original operation with the
48851// same request ID was received, and if so, will ignore the second
48852// request. This prevents clients from accidentally creating duplicate
48853// commitments.
48854//
48855// The request ID must be a valid UUID with the exception that zero UUID
48856// is not supported (00000000-0000-0000-0000-000000000000).
48857func (c *InstancesSetMetadataCall) RequestId(requestId string) *InstancesSetMetadataCall {
48858	c.urlParams_.Set("requestId", requestId)
48859	return c
48860}
48861
48862// Fields allows partial responses to be retrieved. See
48863// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48864// for more information.
48865func (c *InstancesSetMetadataCall) Fields(s ...googleapi.Field) *InstancesSetMetadataCall {
48866	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48867	return c
48868}
48869
48870// Context sets the context to be used in this call's Do method. Any
48871// pending HTTP request will be aborted if the provided context is
48872// canceled.
48873func (c *InstancesSetMetadataCall) Context(ctx context.Context) *InstancesSetMetadataCall {
48874	c.ctx_ = ctx
48875	return c
48876}
48877
48878// Header returns an http.Header that can be modified by the caller to
48879// add HTTP headers to the request.
48880func (c *InstancesSetMetadataCall) Header() http.Header {
48881	if c.header_ == nil {
48882		c.header_ = make(http.Header)
48883	}
48884	return c.header_
48885}
48886
48887func (c *InstancesSetMetadataCall) doRequest(alt string) (*http.Response, error) {
48888	reqHeaders := make(http.Header)
48889	for k, v := range c.header_ {
48890		reqHeaders[k] = v
48891	}
48892	reqHeaders.Set("User-Agent", c.s.userAgent())
48893	var body io.Reader = nil
48894	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
48895	if err != nil {
48896		return nil, err
48897	}
48898	reqHeaders.Set("Content-Type", "application/json")
48899	c.urlParams_.Set("alt", alt)
48900	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMetadata")
48901	urls += "?" + c.urlParams_.Encode()
48902	req, _ := http.NewRequest("POST", urls, body)
48903	req.Header = reqHeaders
48904	googleapi.Expand(req.URL, map[string]string{
48905		"project":  c.project,
48906		"zone":     c.zone,
48907		"instance": c.instance,
48908	})
48909	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48910}
48911
48912// Do executes the "compute.instances.setMetadata" call.
48913// Exactly one of *Operation or error will be non-nil. Any non-2xx
48914// status code is an error. Response headers are in either
48915// *Operation.ServerResponse.Header or (if a response was returned at
48916// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48917// to check whether the returned error was because
48918// http.StatusNotModified was returned.
48919func (c *InstancesSetMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48920	gensupport.SetOptions(c.urlParams_, opts...)
48921	res, err := c.doRequest("json")
48922	if res != nil && res.StatusCode == http.StatusNotModified {
48923		if res.Body != nil {
48924			res.Body.Close()
48925		}
48926		return nil, &googleapi.Error{
48927			Code:   res.StatusCode,
48928			Header: res.Header,
48929		}
48930	}
48931	if err != nil {
48932		return nil, err
48933	}
48934	defer googleapi.CloseBody(res)
48935	if err := googleapi.CheckResponse(res); err != nil {
48936		return nil, err
48937	}
48938	ret := &Operation{
48939		ServerResponse: googleapi.ServerResponse{
48940			Header:         res.Header,
48941			HTTPStatusCode: res.StatusCode,
48942		},
48943	}
48944	target := &ret
48945	if err := gensupport.DecodeResponse(target, res); err != nil {
48946		return nil, err
48947	}
48948	return ret, nil
48949	// {
48950	//   "description": "Sets metadata for the specified instance to the data included in the request.",
48951	//   "httpMethod": "POST",
48952	//   "id": "compute.instances.setMetadata",
48953	//   "parameterOrder": [
48954	//     "project",
48955	//     "zone",
48956	//     "instance"
48957	//   ],
48958	//   "parameters": {
48959	//     "instance": {
48960	//       "description": "Name of the instance scoping this request.",
48961	//       "location": "path",
48962	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48963	//       "required": true,
48964	//       "type": "string"
48965	//     },
48966	//     "project": {
48967	//       "description": "Project ID for this request.",
48968	//       "location": "path",
48969	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48970	//       "required": true,
48971	//       "type": "string"
48972	//     },
48973	//     "requestId": {
48974	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48975	//       "location": "query",
48976	//       "type": "string"
48977	//     },
48978	//     "zone": {
48979	//       "description": "The name of the zone for this request.",
48980	//       "location": "path",
48981	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48982	//       "required": true,
48983	//       "type": "string"
48984	//     }
48985	//   },
48986	//   "path": "{project}/zones/{zone}/instances/{instance}/setMetadata",
48987	//   "request": {
48988	//     "$ref": "Metadata"
48989	//   },
48990	//   "response": {
48991	//     "$ref": "Operation"
48992	//   },
48993	//   "scopes": [
48994	//     "https://www.googleapis.com/auth/cloud-platform",
48995	//     "https://www.googleapis.com/auth/compute"
48996	//   ]
48997	// }
48998
48999}
49000
49001// method id "compute.instances.setMinCpuPlatform":
49002
49003type InstancesSetMinCpuPlatformCall struct {
49004	s                                 *Service
49005	project                           string
49006	zone                              string
49007	instance                          string
49008	instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest
49009	urlParams_                        gensupport.URLParams
49010	ctx_                              context.Context
49011	header_                           http.Header
49012}
49013
49014// SetMinCpuPlatform: Changes the minimum CPU platform that this
49015// instance should use. This method can only be called on a stopped
49016// instance. For more information, read Specifying a Minimum CPU
49017// Platform.
49018func (r *InstancesService) SetMinCpuPlatform(project string, zone string, instance string, instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest) *InstancesSetMinCpuPlatformCall {
49019	c := &InstancesSetMinCpuPlatformCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49020	c.project = project
49021	c.zone = zone
49022	c.instance = instance
49023	c.instancessetmincpuplatformrequest = instancessetmincpuplatformrequest
49024	return c
49025}
49026
49027// RequestId sets the optional parameter "requestId": An optional
49028// request ID to identify requests. Specify a unique request ID so that
49029// if you must retry your request, the server will know to ignore the
49030// request if it has already been completed.
49031//
49032// For example, consider a situation where you make an initial request
49033// and the request times out. If you make the request again with the
49034// same request ID, the server can check if original operation with the
49035// same request ID was received, and if so, will ignore the second
49036// request. This prevents clients from accidentally creating duplicate
49037// commitments.
49038//
49039// The request ID must be a valid UUID with the exception that zero UUID
49040// is not supported (00000000-0000-0000-0000-000000000000).
49041func (c *InstancesSetMinCpuPlatformCall) RequestId(requestId string) *InstancesSetMinCpuPlatformCall {
49042	c.urlParams_.Set("requestId", requestId)
49043	return c
49044}
49045
49046// Fields allows partial responses to be retrieved. See
49047// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49048// for more information.
49049func (c *InstancesSetMinCpuPlatformCall) Fields(s ...googleapi.Field) *InstancesSetMinCpuPlatformCall {
49050	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49051	return c
49052}
49053
49054// Context sets the context to be used in this call's Do method. Any
49055// pending HTTP request will be aborted if the provided context is
49056// canceled.
49057func (c *InstancesSetMinCpuPlatformCall) Context(ctx context.Context) *InstancesSetMinCpuPlatformCall {
49058	c.ctx_ = ctx
49059	return c
49060}
49061
49062// Header returns an http.Header that can be modified by the caller to
49063// add HTTP headers to the request.
49064func (c *InstancesSetMinCpuPlatformCall) Header() http.Header {
49065	if c.header_ == nil {
49066		c.header_ = make(http.Header)
49067	}
49068	return c.header_
49069}
49070
49071func (c *InstancesSetMinCpuPlatformCall) doRequest(alt string) (*http.Response, error) {
49072	reqHeaders := make(http.Header)
49073	for k, v := range c.header_ {
49074		reqHeaders[k] = v
49075	}
49076	reqHeaders.Set("User-Agent", c.s.userAgent())
49077	var body io.Reader = nil
49078	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmincpuplatformrequest)
49079	if err != nil {
49080		return nil, err
49081	}
49082	reqHeaders.Set("Content-Type", "application/json")
49083	c.urlParams_.Set("alt", alt)
49084	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform")
49085	urls += "?" + c.urlParams_.Encode()
49086	req, _ := http.NewRequest("POST", urls, body)
49087	req.Header = reqHeaders
49088	googleapi.Expand(req.URL, map[string]string{
49089		"project":  c.project,
49090		"zone":     c.zone,
49091		"instance": c.instance,
49092	})
49093	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49094}
49095
49096// Do executes the "compute.instances.setMinCpuPlatform" call.
49097// Exactly one of *Operation or error will be non-nil. Any non-2xx
49098// status code is an error. Response headers are in either
49099// *Operation.ServerResponse.Header or (if a response was returned at
49100// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49101// to check whether the returned error was because
49102// http.StatusNotModified was returned.
49103func (c *InstancesSetMinCpuPlatformCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49104	gensupport.SetOptions(c.urlParams_, opts...)
49105	res, err := c.doRequest("json")
49106	if res != nil && res.StatusCode == http.StatusNotModified {
49107		if res.Body != nil {
49108			res.Body.Close()
49109		}
49110		return nil, &googleapi.Error{
49111			Code:   res.StatusCode,
49112			Header: res.Header,
49113		}
49114	}
49115	if err != nil {
49116		return nil, err
49117	}
49118	defer googleapi.CloseBody(res)
49119	if err := googleapi.CheckResponse(res); err != nil {
49120		return nil, err
49121	}
49122	ret := &Operation{
49123		ServerResponse: googleapi.ServerResponse{
49124			Header:         res.Header,
49125			HTTPStatusCode: res.StatusCode,
49126		},
49127	}
49128	target := &ret
49129	if err := gensupport.DecodeResponse(target, res); err != nil {
49130		return nil, err
49131	}
49132	return ret, nil
49133	// {
49134	//   "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.",
49135	//   "httpMethod": "POST",
49136	//   "id": "compute.instances.setMinCpuPlatform",
49137	//   "parameterOrder": [
49138	//     "project",
49139	//     "zone",
49140	//     "instance"
49141	//   ],
49142	//   "parameters": {
49143	//     "instance": {
49144	//       "description": "Name of the instance scoping this request.",
49145	//       "location": "path",
49146	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49147	//       "required": true,
49148	//       "type": "string"
49149	//     },
49150	//     "project": {
49151	//       "description": "Project ID for this request.",
49152	//       "location": "path",
49153	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49154	//       "required": true,
49155	//       "type": "string"
49156	//     },
49157	//     "requestId": {
49158	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49159	//       "location": "query",
49160	//       "type": "string"
49161	//     },
49162	//     "zone": {
49163	//       "description": "The name of the zone for this request.",
49164	//       "location": "path",
49165	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49166	//       "required": true,
49167	//       "type": "string"
49168	//     }
49169	//   },
49170	//   "path": "{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform",
49171	//   "request": {
49172	//     "$ref": "InstancesSetMinCpuPlatformRequest"
49173	//   },
49174	//   "response": {
49175	//     "$ref": "Operation"
49176	//   },
49177	//   "scopes": [
49178	//     "https://www.googleapis.com/auth/cloud-platform",
49179	//     "https://www.googleapis.com/auth/compute"
49180	//   ]
49181	// }
49182
49183}
49184
49185// method id "compute.instances.setScheduling":
49186
49187type InstancesSetSchedulingCall struct {
49188	s          *Service
49189	project    string
49190	zone       string
49191	instance   string
49192	scheduling *Scheduling
49193	urlParams_ gensupport.URLParams
49194	ctx_       context.Context
49195	header_    http.Header
49196}
49197
49198// SetScheduling: Sets an instance's scheduling options.
49199// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setScheduling
49200func (r *InstancesService) SetScheduling(project string, zone string, instance string, scheduling *Scheduling) *InstancesSetSchedulingCall {
49201	c := &InstancesSetSchedulingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49202	c.project = project
49203	c.zone = zone
49204	c.instance = instance
49205	c.scheduling = scheduling
49206	return c
49207}
49208
49209// RequestId sets the optional parameter "requestId": An optional
49210// request ID to identify requests. Specify a unique request ID so that
49211// if you must retry your request, the server will know to ignore the
49212// request if it has already been completed.
49213//
49214// For example, consider a situation where you make an initial request
49215// and the request times out. If you make the request again with the
49216// same request ID, the server can check if original operation with the
49217// same request ID was received, and if so, will ignore the second
49218// request. This prevents clients from accidentally creating duplicate
49219// commitments.
49220//
49221// The request ID must be a valid UUID with the exception that zero UUID
49222// is not supported (00000000-0000-0000-0000-000000000000).
49223func (c *InstancesSetSchedulingCall) RequestId(requestId string) *InstancesSetSchedulingCall {
49224	c.urlParams_.Set("requestId", requestId)
49225	return c
49226}
49227
49228// Fields allows partial responses to be retrieved. See
49229// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49230// for more information.
49231func (c *InstancesSetSchedulingCall) Fields(s ...googleapi.Field) *InstancesSetSchedulingCall {
49232	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49233	return c
49234}
49235
49236// Context sets the context to be used in this call's Do method. Any
49237// pending HTTP request will be aborted if the provided context is
49238// canceled.
49239func (c *InstancesSetSchedulingCall) Context(ctx context.Context) *InstancesSetSchedulingCall {
49240	c.ctx_ = ctx
49241	return c
49242}
49243
49244// Header returns an http.Header that can be modified by the caller to
49245// add HTTP headers to the request.
49246func (c *InstancesSetSchedulingCall) Header() http.Header {
49247	if c.header_ == nil {
49248		c.header_ = make(http.Header)
49249	}
49250	return c.header_
49251}
49252
49253func (c *InstancesSetSchedulingCall) doRequest(alt string) (*http.Response, error) {
49254	reqHeaders := make(http.Header)
49255	for k, v := range c.header_ {
49256		reqHeaders[k] = v
49257	}
49258	reqHeaders.Set("User-Agent", c.s.userAgent())
49259	var body io.Reader = nil
49260	body, err := googleapi.WithoutDataWrapper.JSONReader(c.scheduling)
49261	if err != nil {
49262		return nil, err
49263	}
49264	reqHeaders.Set("Content-Type", "application/json")
49265	c.urlParams_.Set("alt", alt)
49266	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setScheduling")
49267	urls += "?" + c.urlParams_.Encode()
49268	req, _ := http.NewRequest("POST", urls, body)
49269	req.Header = reqHeaders
49270	googleapi.Expand(req.URL, map[string]string{
49271		"project":  c.project,
49272		"zone":     c.zone,
49273		"instance": c.instance,
49274	})
49275	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49276}
49277
49278// Do executes the "compute.instances.setScheduling" call.
49279// Exactly one of *Operation or error will be non-nil. Any non-2xx
49280// status code is an error. Response headers are in either
49281// *Operation.ServerResponse.Header or (if a response was returned at
49282// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49283// to check whether the returned error was because
49284// http.StatusNotModified was returned.
49285func (c *InstancesSetSchedulingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49286	gensupport.SetOptions(c.urlParams_, opts...)
49287	res, err := c.doRequest("json")
49288	if res != nil && res.StatusCode == http.StatusNotModified {
49289		if res.Body != nil {
49290			res.Body.Close()
49291		}
49292		return nil, &googleapi.Error{
49293			Code:   res.StatusCode,
49294			Header: res.Header,
49295		}
49296	}
49297	if err != nil {
49298		return nil, err
49299	}
49300	defer googleapi.CloseBody(res)
49301	if err := googleapi.CheckResponse(res); err != nil {
49302		return nil, err
49303	}
49304	ret := &Operation{
49305		ServerResponse: googleapi.ServerResponse{
49306			Header:         res.Header,
49307			HTTPStatusCode: res.StatusCode,
49308		},
49309	}
49310	target := &ret
49311	if err := gensupport.DecodeResponse(target, res); err != nil {
49312		return nil, err
49313	}
49314	return ret, nil
49315	// {
49316	//   "description": "Sets an instance's scheduling options.",
49317	//   "httpMethod": "POST",
49318	//   "id": "compute.instances.setScheduling",
49319	//   "parameterOrder": [
49320	//     "project",
49321	//     "zone",
49322	//     "instance"
49323	//   ],
49324	//   "parameters": {
49325	//     "instance": {
49326	//       "description": "Instance name.",
49327	//       "location": "path",
49328	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49329	//       "required": true,
49330	//       "type": "string"
49331	//     },
49332	//     "project": {
49333	//       "description": "Project ID for this request.",
49334	//       "location": "path",
49335	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49336	//       "required": true,
49337	//       "type": "string"
49338	//     },
49339	//     "requestId": {
49340	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49341	//       "location": "query",
49342	//       "type": "string"
49343	//     },
49344	//     "zone": {
49345	//       "description": "The name of the zone for this request.",
49346	//       "location": "path",
49347	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49348	//       "required": true,
49349	//       "type": "string"
49350	//     }
49351	//   },
49352	//   "path": "{project}/zones/{zone}/instances/{instance}/setScheduling",
49353	//   "request": {
49354	//     "$ref": "Scheduling"
49355	//   },
49356	//   "response": {
49357	//     "$ref": "Operation"
49358	//   },
49359	//   "scopes": [
49360	//     "https://www.googleapis.com/auth/cloud-platform",
49361	//     "https://www.googleapis.com/auth/compute"
49362	//   ]
49363	// }
49364
49365}
49366
49367// method id "compute.instances.setServiceAccount":
49368
49369type InstancesSetServiceAccountCall struct {
49370	s                                 *Service
49371	project                           string
49372	zone                              string
49373	instance                          string
49374	instancessetserviceaccountrequest *InstancesSetServiceAccountRequest
49375	urlParams_                        gensupport.URLParams
49376	ctx_                              context.Context
49377	header_                           http.Header
49378}
49379
49380// SetServiceAccount: Sets the service account on the instance. For more
49381// information, read Changing the service account and access scopes for
49382// an instance.
49383func (r *InstancesService) SetServiceAccount(project string, zone string, instance string, instancessetserviceaccountrequest *InstancesSetServiceAccountRequest) *InstancesSetServiceAccountCall {
49384	c := &InstancesSetServiceAccountCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49385	c.project = project
49386	c.zone = zone
49387	c.instance = instance
49388	c.instancessetserviceaccountrequest = instancessetserviceaccountrequest
49389	return c
49390}
49391
49392// RequestId sets the optional parameter "requestId": An optional
49393// request ID to identify requests. Specify a unique request ID so that
49394// if you must retry your request, the server will know to ignore the
49395// request if it has already been completed.
49396//
49397// For example, consider a situation where you make an initial request
49398// and the request times out. If you make the request again with the
49399// same request ID, the server can check if original operation with the
49400// same request ID was received, and if so, will ignore the second
49401// request. This prevents clients from accidentally creating duplicate
49402// commitments.
49403//
49404// The request ID must be a valid UUID with the exception that zero UUID
49405// is not supported (00000000-0000-0000-0000-000000000000).
49406func (c *InstancesSetServiceAccountCall) RequestId(requestId string) *InstancesSetServiceAccountCall {
49407	c.urlParams_.Set("requestId", requestId)
49408	return c
49409}
49410
49411// Fields allows partial responses to be retrieved. See
49412// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49413// for more information.
49414func (c *InstancesSetServiceAccountCall) Fields(s ...googleapi.Field) *InstancesSetServiceAccountCall {
49415	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49416	return c
49417}
49418
49419// Context sets the context to be used in this call's Do method. Any
49420// pending HTTP request will be aborted if the provided context is
49421// canceled.
49422func (c *InstancesSetServiceAccountCall) Context(ctx context.Context) *InstancesSetServiceAccountCall {
49423	c.ctx_ = ctx
49424	return c
49425}
49426
49427// Header returns an http.Header that can be modified by the caller to
49428// add HTTP headers to the request.
49429func (c *InstancesSetServiceAccountCall) Header() http.Header {
49430	if c.header_ == nil {
49431		c.header_ = make(http.Header)
49432	}
49433	return c.header_
49434}
49435
49436func (c *InstancesSetServiceAccountCall) doRequest(alt string) (*http.Response, error) {
49437	reqHeaders := make(http.Header)
49438	for k, v := range c.header_ {
49439		reqHeaders[k] = v
49440	}
49441	reqHeaders.Set("User-Agent", c.s.userAgent())
49442	var body io.Reader = nil
49443	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetserviceaccountrequest)
49444	if err != nil {
49445		return nil, err
49446	}
49447	reqHeaders.Set("Content-Type", "application/json")
49448	c.urlParams_.Set("alt", alt)
49449	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setServiceAccount")
49450	urls += "?" + c.urlParams_.Encode()
49451	req, _ := http.NewRequest("POST", urls, body)
49452	req.Header = reqHeaders
49453	googleapi.Expand(req.URL, map[string]string{
49454		"project":  c.project,
49455		"zone":     c.zone,
49456		"instance": c.instance,
49457	})
49458	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49459}
49460
49461// Do executes the "compute.instances.setServiceAccount" call.
49462// Exactly one of *Operation or error will be non-nil. Any non-2xx
49463// status code is an error. Response headers are in either
49464// *Operation.ServerResponse.Header or (if a response was returned at
49465// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49466// to check whether the returned error was because
49467// http.StatusNotModified was returned.
49468func (c *InstancesSetServiceAccountCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49469	gensupport.SetOptions(c.urlParams_, opts...)
49470	res, err := c.doRequest("json")
49471	if res != nil && res.StatusCode == http.StatusNotModified {
49472		if res.Body != nil {
49473			res.Body.Close()
49474		}
49475		return nil, &googleapi.Error{
49476			Code:   res.StatusCode,
49477			Header: res.Header,
49478		}
49479	}
49480	if err != nil {
49481		return nil, err
49482	}
49483	defer googleapi.CloseBody(res)
49484	if err := googleapi.CheckResponse(res); err != nil {
49485		return nil, err
49486	}
49487	ret := &Operation{
49488		ServerResponse: googleapi.ServerResponse{
49489			Header:         res.Header,
49490			HTTPStatusCode: res.StatusCode,
49491		},
49492	}
49493	target := &ret
49494	if err := gensupport.DecodeResponse(target, res); err != nil {
49495		return nil, err
49496	}
49497	return ret, nil
49498	// {
49499	//   "description": "Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.",
49500	//   "httpMethod": "POST",
49501	//   "id": "compute.instances.setServiceAccount",
49502	//   "parameterOrder": [
49503	//     "project",
49504	//     "zone",
49505	//     "instance"
49506	//   ],
49507	//   "parameters": {
49508	//     "instance": {
49509	//       "description": "Name of the instance resource to start.",
49510	//       "location": "path",
49511	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49512	//       "required": true,
49513	//       "type": "string"
49514	//     },
49515	//     "project": {
49516	//       "description": "Project ID for this request.",
49517	//       "location": "path",
49518	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49519	//       "required": true,
49520	//       "type": "string"
49521	//     },
49522	//     "requestId": {
49523	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49524	//       "location": "query",
49525	//       "type": "string"
49526	//     },
49527	//     "zone": {
49528	//       "description": "The name of the zone for this request.",
49529	//       "location": "path",
49530	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49531	//       "required": true,
49532	//       "type": "string"
49533	//     }
49534	//   },
49535	//   "path": "{project}/zones/{zone}/instances/{instance}/setServiceAccount",
49536	//   "request": {
49537	//     "$ref": "InstancesSetServiceAccountRequest"
49538	//   },
49539	//   "response": {
49540	//     "$ref": "Operation"
49541	//   },
49542	//   "scopes": [
49543	//     "https://www.googleapis.com/auth/cloud-platform",
49544	//     "https://www.googleapis.com/auth/compute"
49545	//   ]
49546	// }
49547
49548}
49549
49550// method id "compute.instances.setTags":
49551
49552type InstancesSetTagsCall struct {
49553	s          *Service
49554	project    string
49555	zone       string
49556	instance   string
49557	tags       *Tags
49558	urlParams_ gensupport.URLParams
49559	ctx_       context.Context
49560	header_    http.Header
49561}
49562
49563// SetTags: Sets tags for the specified instance to the data included in
49564// the request.
49565// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setTags
49566func (r *InstancesService) SetTags(project string, zone string, instance string, tags *Tags) *InstancesSetTagsCall {
49567	c := &InstancesSetTagsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49568	c.project = project
49569	c.zone = zone
49570	c.instance = instance
49571	c.tags = tags
49572	return c
49573}
49574
49575// RequestId sets the optional parameter "requestId": An optional
49576// request ID to identify requests. Specify a unique request ID so that
49577// if you must retry your request, the server will know to ignore the
49578// request if it has already been completed.
49579//
49580// For example, consider a situation where you make an initial request
49581// and the request times out. If you make the request again with the
49582// same request ID, the server can check if original operation with the
49583// same request ID was received, and if so, will ignore the second
49584// request. This prevents clients from accidentally creating duplicate
49585// commitments.
49586//
49587// The request ID must be a valid UUID with the exception that zero UUID
49588// is not supported (00000000-0000-0000-0000-000000000000).
49589func (c *InstancesSetTagsCall) RequestId(requestId string) *InstancesSetTagsCall {
49590	c.urlParams_.Set("requestId", requestId)
49591	return c
49592}
49593
49594// Fields allows partial responses to be retrieved. See
49595// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49596// for more information.
49597func (c *InstancesSetTagsCall) Fields(s ...googleapi.Field) *InstancesSetTagsCall {
49598	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49599	return c
49600}
49601
49602// Context sets the context to be used in this call's Do method. Any
49603// pending HTTP request will be aborted if the provided context is
49604// canceled.
49605func (c *InstancesSetTagsCall) Context(ctx context.Context) *InstancesSetTagsCall {
49606	c.ctx_ = ctx
49607	return c
49608}
49609
49610// Header returns an http.Header that can be modified by the caller to
49611// add HTTP headers to the request.
49612func (c *InstancesSetTagsCall) Header() http.Header {
49613	if c.header_ == nil {
49614		c.header_ = make(http.Header)
49615	}
49616	return c.header_
49617}
49618
49619func (c *InstancesSetTagsCall) doRequest(alt string) (*http.Response, error) {
49620	reqHeaders := make(http.Header)
49621	for k, v := range c.header_ {
49622		reqHeaders[k] = v
49623	}
49624	reqHeaders.Set("User-Agent", c.s.userAgent())
49625	var body io.Reader = nil
49626	body, err := googleapi.WithoutDataWrapper.JSONReader(c.tags)
49627	if err != nil {
49628		return nil, err
49629	}
49630	reqHeaders.Set("Content-Type", "application/json")
49631	c.urlParams_.Set("alt", alt)
49632	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setTags")
49633	urls += "?" + c.urlParams_.Encode()
49634	req, _ := http.NewRequest("POST", urls, body)
49635	req.Header = reqHeaders
49636	googleapi.Expand(req.URL, map[string]string{
49637		"project":  c.project,
49638		"zone":     c.zone,
49639		"instance": c.instance,
49640	})
49641	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49642}
49643
49644// Do executes the "compute.instances.setTags" call.
49645// Exactly one of *Operation or error will be non-nil. Any non-2xx
49646// status code is an error. Response headers are in either
49647// *Operation.ServerResponse.Header or (if a response was returned at
49648// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49649// to check whether the returned error was because
49650// http.StatusNotModified was returned.
49651func (c *InstancesSetTagsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49652	gensupport.SetOptions(c.urlParams_, opts...)
49653	res, err := c.doRequest("json")
49654	if res != nil && res.StatusCode == http.StatusNotModified {
49655		if res.Body != nil {
49656			res.Body.Close()
49657		}
49658		return nil, &googleapi.Error{
49659			Code:   res.StatusCode,
49660			Header: res.Header,
49661		}
49662	}
49663	if err != nil {
49664		return nil, err
49665	}
49666	defer googleapi.CloseBody(res)
49667	if err := googleapi.CheckResponse(res); err != nil {
49668		return nil, err
49669	}
49670	ret := &Operation{
49671		ServerResponse: googleapi.ServerResponse{
49672			Header:         res.Header,
49673			HTTPStatusCode: res.StatusCode,
49674		},
49675	}
49676	target := &ret
49677	if err := gensupport.DecodeResponse(target, res); err != nil {
49678		return nil, err
49679	}
49680	return ret, nil
49681	// {
49682	//   "description": "Sets tags for the specified instance to the data included in the request.",
49683	//   "httpMethod": "POST",
49684	//   "id": "compute.instances.setTags",
49685	//   "parameterOrder": [
49686	//     "project",
49687	//     "zone",
49688	//     "instance"
49689	//   ],
49690	//   "parameters": {
49691	//     "instance": {
49692	//       "description": "Name of the instance scoping this request.",
49693	//       "location": "path",
49694	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49695	//       "required": true,
49696	//       "type": "string"
49697	//     },
49698	//     "project": {
49699	//       "description": "Project ID for this request.",
49700	//       "location": "path",
49701	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49702	//       "required": true,
49703	//       "type": "string"
49704	//     },
49705	//     "requestId": {
49706	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49707	//       "location": "query",
49708	//       "type": "string"
49709	//     },
49710	//     "zone": {
49711	//       "description": "The name of the zone for this request.",
49712	//       "location": "path",
49713	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49714	//       "required": true,
49715	//       "type": "string"
49716	//     }
49717	//   },
49718	//   "path": "{project}/zones/{zone}/instances/{instance}/setTags",
49719	//   "request": {
49720	//     "$ref": "Tags"
49721	//   },
49722	//   "response": {
49723	//     "$ref": "Operation"
49724	//   },
49725	//   "scopes": [
49726	//     "https://www.googleapis.com/auth/cloud-platform",
49727	//     "https://www.googleapis.com/auth/compute"
49728	//   ]
49729	// }
49730
49731}
49732
49733// method id "compute.instances.start":
49734
49735type InstancesStartCall struct {
49736	s          *Service
49737	project    string
49738	zone       string
49739	instance   string
49740	urlParams_ gensupport.URLParams
49741	ctx_       context.Context
49742	header_    http.Header
49743}
49744
49745// Start: Starts an instance that was stopped using the using the
49746// instances().stop method. For more information, see Restart an
49747// instance.
49748// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/start
49749func (r *InstancesService) Start(project string, zone string, instance string) *InstancesStartCall {
49750	c := &InstancesStartCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49751	c.project = project
49752	c.zone = zone
49753	c.instance = instance
49754	return c
49755}
49756
49757// RequestId sets the optional parameter "requestId": An optional
49758// request ID to identify requests. Specify a unique request ID so that
49759// if you must retry your request, the server will know to ignore the
49760// request if it has already been completed.
49761//
49762// For example, consider a situation where you make an initial request
49763// and the request times out. If you make the request again with the
49764// same request ID, the server can check if original operation with the
49765// same request ID was received, and if so, will ignore the second
49766// request. This prevents clients from accidentally creating duplicate
49767// commitments.
49768//
49769// The request ID must be a valid UUID with the exception that zero UUID
49770// is not supported (00000000-0000-0000-0000-000000000000).
49771func (c *InstancesStartCall) RequestId(requestId string) *InstancesStartCall {
49772	c.urlParams_.Set("requestId", requestId)
49773	return c
49774}
49775
49776// Fields allows partial responses to be retrieved. See
49777// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49778// for more information.
49779func (c *InstancesStartCall) Fields(s ...googleapi.Field) *InstancesStartCall {
49780	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49781	return c
49782}
49783
49784// Context sets the context to be used in this call's Do method. Any
49785// pending HTTP request will be aborted if the provided context is
49786// canceled.
49787func (c *InstancesStartCall) Context(ctx context.Context) *InstancesStartCall {
49788	c.ctx_ = ctx
49789	return c
49790}
49791
49792// Header returns an http.Header that can be modified by the caller to
49793// add HTTP headers to the request.
49794func (c *InstancesStartCall) Header() http.Header {
49795	if c.header_ == nil {
49796		c.header_ = make(http.Header)
49797	}
49798	return c.header_
49799}
49800
49801func (c *InstancesStartCall) doRequest(alt string) (*http.Response, error) {
49802	reqHeaders := make(http.Header)
49803	for k, v := range c.header_ {
49804		reqHeaders[k] = v
49805	}
49806	reqHeaders.Set("User-Agent", c.s.userAgent())
49807	var body io.Reader = nil
49808	c.urlParams_.Set("alt", alt)
49809	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/start")
49810	urls += "?" + c.urlParams_.Encode()
49811	req, _ := http.NewRequest("POST", urls, body)
49812	req.Header = reqHeaders
49813	googleapi.Expand(req.URL, map[string]string{
49814		"project":  c.project,
49815		"zone":     c.zone,
49816		"instance": c.instance,
49817	})
49818	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49819}
49820
49821// Do executes the "compute.instances.start" call.
49822// Exactly one of *Operation or error will be non-nil. Any non-2xx
49823// status code is an error. Response headers are in either
49824// *Operation.ServerResponse.Header or (if a response was returned at
49825// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49826// to check whether the returned error was because
49827// http.StatusNotModified was returned.
49828func (c *InstancesStartCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49829	gensupport.SetOptions(c.urlParams_, opts...)
49830	res, err := c.doRequest("json")
49831	if res != nil && res.StatusCode == http.StatusNotModified {
49832		if res.Body != nil {
49833			res.Body.Close()
49834		}
49835		return nil, &googleapi.Error{
49836			Code:   res.StatusCode,
49837			Header: res.Header,
49838		}
49839	}
49840	if err != nil {
49841		return nil, err
49842	}
49843	defer googleapi.CloseBody(res)
49844	if err := googleapi.CheckResponse(res); err != nil {
49845		return nil, err
49846	}
49847	ret := &Operation{
49848		ServerResponse: googleapi.ServerResponse{
49849			Header:         res.Header,
49850			HTTPStatusCode: res.StatusCode,
49851		},
49852	}
49853	target := &ret
49854	if err := gensupport.DecodeResponse(target, res); err != nil {
49855		return nil, err
49856	}
49857	return ret, nil
49858	// {
49859	//   "description": "Starts an instance that was stopped using the using the instances().stop method. For more information, see Restart an instance.",
49860	//   "httpMethod": "POST",
49861	//   "id": "compute.instances.start",
49862	//   "parameterOrder": [
49863	//     "project",
49864	//     "zone",
49865	//     "instance"
49866	//   ],
49867	//   "parameters": {
49868	//     "instance": {
49869	//       "description": "Name of the instance resource to start.",
49870	//       "location": "path",
49871	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49872	//       "required": true,
49873	//       "type": "string"
49874	//     },
49875	//     "project": {
49876	//       "description": "Project ID for this request.",
49877	//       "location": "path",
49878	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49879	//       "required": true,
49880	//       "type": "string"
49881	//     },
49882	//     "requestId": {
49883	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49884	//       "location": "query",
49885	//       "type": "string"
49886	//     },
49887	//     "zone": {
49888	//       "description": "The name of the zone for this request.",
49889	//       "location": "path",
49890	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49891	//       "required": true,
49892	//       "type": "string"
49893	//     }
49894	//   },
49895	//   "path": "{project}/zones/{zone}/instances/{instance}/start",
49896	//   "response": {
49897	//     "$ref": "Operation"
49898	//   },
49899	//   "scopes": [
49900	//     "https://www.googleapis.com/auth/cloud-platform",
49901	//     "https://www.googleapis.com/auth/compute"
49902	//   ]
49903	// }
49904
49905}
49906
49907// method id "compute.instances.startWithEncryptionKey":
49908
49909type InstancesStartWithEncryptionKeyCall struct {
49910	s                                      *Service
49911	project                                string
49912	zone                                   string
49913	instance                               string
49914	instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest
49915	urlParams_                             gensupport.URLParams
49916	ctx_                                   context.Context
49917	header_                                http.Header
49918}
49919
49920// StartWithEncryptionKey: Starts an instance that was stopped using the
49921// using the instances().stop method. For more information, see Restart
49922// an instance.
49923func (r *InstancesService) StartWithEncryptionKey(project string, zone string, instance string, instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest) *InstancesStartWithEncryptionKeyCall {
49924	c := &InstancesStartWithEncryptionKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49925	c.project = project
49926	c.zone = zone
49927	c.instance = instance
49928	c.instancesstartwithencryptionkeyrequest = instancesstartwithencryptionkeyrequest
49929	return c
49930}
49931
49932// RequestId sets the optional parameter "requestId": An optional
49933// request ID to identify requests. Specify a unique request ID so that
49934// if you must retry your request, the server will know to ignore the
49935// request if it has already been completed.
49936//
49937// For example, consider a situation where you make an initial request
49938// and the request times out. If you make the request again with the
49939// same request ID, the server can check if original operation with the
49940// same request ID was received, and if so, will ignore the second
49941// request. This prevents clients from accidentally creating duplicate
49942// commitments.
49943//
49944// The request ID must be a valid UUID with the exception that zero UUID
49945// is not supported (00000000-0000-0000-0000-000000000000).
49946func (c *InstancesStartWithEncryptionKeyCall) RequestId(requestId string) *InstancesStartWithEncryptionKeyCall {
49947	c.urlParams_.Set("requestId", requestId)
49948	return c
49949}
49950
49951// Fields allows partial responses to be retrieved. See
49952// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49953// for more information.
49954func (c *InstancesStartWithEncryptionKeyCall) Fields(s ...googleapi.Field) *InstancesStartWithEncryptionKeyCall {
49955	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49956	return c
49957}
49958
49959// Context sets the context to be used in this call's Do method. Any
49960// pending HTTP request will be aborted if the provided context is
49961// canceled.
49962func (c *InstancesStartWithEncryptionKeyCall) Context(ctx context.Context) *InstancesStartWithEncryptionKeyCall {
49963	c.ctx_ = ctx
49964	return c
49965}
49966
49967// Header returns an http.Header that can be modified by the caller to
49968// add HTTP headers to the request.
49969func (c *InstancesStartWithEncryptionKeyCall) Header() http.Header {
49970	if c.header_ == nil {
49971		c.header_ = make(http.Header)
49972	}
49973	return c.header_
49974}
49975
49976func (c *InstancesStartWithEncryptionKeyCall) doRequest(alt string) (*http.Response, error) {
49977	reqHeaders := make(http.Header)
49978	for k, v := range c.header_ {
49979		reqHeaders[k] = v
49980	}
49981	reqHeaders.Set("User-Agent", c.s.userAgent())
49982	var body io.Reader = nil
49983	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesstartwithencryptionkeyrequest)
49984	if err != nil {
49985		return nil, err
49986	}
49987	reqHeaders.Set("Content-Type", "application/json")
49988	c.urlParams_.Set("alt", alt)
49989	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey")
49990	urls += "?" + c.urlParams_.Encode()
49991	req, _ := http.NewRequest("POST", urls, body)
49992	req.Header = reqHeaders
49993	googleapi.Expand(req.URL, map[string]string{
49994		"project":  c.project,
49995		"zone":     c.zone,
49996		"instance": c.instance,
49997	})
49998	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49999}
50000
50001// Do executes the "compute.instances.startWithEncryptionKey" call.
50002// Exactly one of *Operation or error will be non-nil. Any non-2xx
50003// status code is an error. Response headers are in either
50004// *Operation.ServerResponse.Header or (if a response was returned at
50005// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50006// to check whether the returned error was because
50007// http.StatusNotModified was returned.
50008func (c *InstancesStartWithEncryptionKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50009	gensupport.SetOptions(c.urlParams_, opts...)
50010	res, err := c.doRequest("json")
50011	if res != nil && res.StatusCode == http.StatusNotModified {
50012		if res.Body != nil {
50013			res.Body.Close()
50014		}
50015		return nil, &googleapi.Error{
50016			Code:   res.StatusCode,
50017			Header: res.Header,
50018		}
50019	}
50020	if err != nil {
50021		return nil, err
50022	}
50023	defer googleapi.CloseBody(res)
50024	if err := googleapi.CheckResponse(res); err != nil {
50025		return nil, err
50026	}
50027	ret := &Operation{
50028		ServerResponse: googleapi.ServerResponse{
50029			Header:         res.Header,
50030			HTTPStatusCode: res.StatusCode,
50031		},
50032	}
50033	target := &ret
50034	if err := gensupport.DecodeResponse(target, res); err != nil {
50035		return nil, err
50036	}
50037	return ret, nil
50038	// {
50039	//   "description": "Starts an instance that was stopped using the using the instances().stop method. For more information, see Restart an instance.",
50040	//   "httpMethod": "POST",
50041	//   "id": "compute.instances.startWithEncryptionKey",
50042	//   "parameterOrder": [
50043	//     "project",
50044	//     "zone",
50045	//     "instance"
50046	//   ],
50047	//   "parameters": {
50048	//     "instance": {
50049	//       "description": "Name of the instance resource to start.",
50050	//       "location": "path",
50051	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50052	//       "required": true,
50053	//       "type": "string"
50054	//     },
50055	//     "project": {
50056	//       "description": "Project ID for this request.",
50057	//       "location": "path",
50058	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50059	//       "required": true,
50060	//       "type": "string"
50061	//     },
50062	//     "requestId": {
50063	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50064	//       "location": "query",
50065	//       "type": "string"
50066	//     },
50067	//     "zone": {
50068	//       "description": "The name of the zone for this request.",
50069	//       "location": "path",
50070	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50071	//       "required": true,
50072	//       "type": "string"
50073	//     }
50074	//   },
50075	//   "path": "{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey",
50076	//   "request": {
50077	//     "$ref": "InstancesStartWithEncryptionKeyRequest"
50078	//   },
50079	//   "response": {
50080	//     "$ref": "Operation"
50081	//   },
50082	//   "scopes": [
50083	//     "https://www.googleapis.com/auth/cloud-platform",
50084	//     "https://www.googleapis.com/auth/compute"
50085	//   ]
50086	// }
50087
50088}
50089
50090// method id "compute.instances.stop":
50091
50092type InstancesStopCall struct {
50093	s          *Service
50094	project    string
50095	zone       string
50096	instance   string
50097	urlParams_ gensupport.URLParams
50098	ctx_       context.Context
50099	header_    http.Header
50100}
50101
50102// Stop: Stops a running instance, shutting it down cleanly, and allows
50103// you to restart the instance at a later time. Stopped instances do not
50104// incur VM usage charges while they are stopped. However, resources
50105// that the VM is using, such as persistent disks and static IP
50106// addresses, will continue to be charged until they are deleted. For
50107// more information, see Stopping an instance.
50108// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/stop
50109func (r *InstancesService) Stop(project string, zone string, instance string) *InstancesStopCall {
50110	c := &InstancesStopCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50111	c.project = project
50112	c.zone = zone
50113	c.instance = instance
50114	return c
50115}
50116
50117// RequestId sets the optional parameter "requestId": An optional
50118// request ID to identify requests. Specify a unique request ID so that
50119// if you must retry your request, the server will know to ignore the
50120// request if it has already been completed.
50121//
50122// For example, consider a situation where you make an initial request
50123// and the request times out. If you make the request again with the
50124// same request ID, the server can check if original operation with the
50125// same request ID was received, and if so, will ignore the second
50126// request. This prevents clients from accidentally creating duplicate
50127// commitments.
50128//
50129// The request ID must be a valid UUID with the exception that zero UUID
50130// is not supported (00000000-0000-0000-0000-000000000000).
50131func (c *InstancesStopCall) RequestId(requestId string) *InstancesStopCall {
50132	c.urlParams_.Set("requestId", requestId)
50133	return c
50134}
50135
50136// Fields allows partial responses to be retrieved. See
50137// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50138// for more information.
50139func (c *InstancesStopCall) Fields(s ...googleapi.Field) *InstancesStopCall {
50140	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50141	return c
50142}
50143
50144// Context sets the context to be used in this call's Do method. Any
50145// pending HTTP request will be aborted if the provided context is
50146// canceled.
50147func (c *InstancesStopCall) Context(ctx context.Context) *InstancesStopCall {
50148	c.ctx_ = ctx
50149	return c
50150}
50151
50152// Header returns an http.Header that can be modified by the caller to
50153// add HTTP headers to the request.
50154func (c *InstancesStopCall) Header() http.Header {
50155	if c.header_ == nil {
50156		c.header_ = make(http.Header)
50157	}
50158	return c.header_
50159}
50160
50161func (c *InstancesStopCall) doRequest(alt string) (*http.Response, error) {
50162	reqHeaders := make(http.Header)
50163	for k, v := range c.header_ {
50164		reqHeaders[k] = v
50165	}
50166	reqHeaders.Set("User-Agent", c.s.userAgent())
50167	var body io.Reader = nil
50168	c.urlParams_.Set("alt", alt)
50169	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/stop")
50170	urls += "?" + c.urlParams_.Encode()
50171	req, _ := http.NewRequest("POST", urls, body)
50172	req.Header = reqHeaders
50173	googleapi.Expand(req.URL, map[string]string{
50174		"project":  c.project,
50175		"zone":     c.zone,
50176		"instance": c.instance,
50177	})
50178	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50179}
50180
50181// Do executes the "compute.instances.stop" call.
50182// Exactly one of *Operation or error will be non-nil. Any non-2xx
50183// status code is an error. Response headers are in either
50184// *Operation.ServerResponse.Header or (if a response was returned at
50185// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50186// to check whether the returned error was because
50187// http.StatusNotModified was returned.
50188func (c *InstancesStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50189	gensupport.SetOptions(c.urlParams_, opts...)
50190	res, err := c.doRequest("json")
50191	if res != nil && res.StatusCode == http.StatusNotModified {
50192		if res.Body != nil {
50193			res.Body.Close()
50194		}
50195		return nil, &googleapi.Error{
50196			Code:   res.StatusCode,
50197			Header: res.Header,
50198		}
50199	}
50200	if err != nil {
50201		return nil, err
50202	}
50203	defer googleapi.CloseBody(res)
50204	if err := googleapi.CheckResponse(res); err != nil {
50205		return nil, err
50206	}
50207	ret := &Operation{
50208		ServerResponse: googleapi.ServerResponse{
50209			Header:         res.Header,
50210			HTTPStatusCode: res.StatusCode,
50211		},
50212	}
50213	target := &ret
50214	if err := gensupport.DecodeResponse(target, res); err != nil {
50215		return nil, err
50216	}
50217	return ret, nil
50218	// {
50219	//   "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.",
50220	//   "httpMethod": "POST",
50221	//   "id": "compute.instances.stop",
50222	//   "parameterOrder": [
50223	//     "project",
50224	//     "zone",
50225	//     "instance"
50226	//   ],
50227	//   "parameters": {
50228	//     "instance": {
50229	//       "description": "Name of the instance resource to stop.",
50230	//       "location": "path",
50231	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50232	//       "required": true,
50233	//       "type": "string"
50234	//     },
50235	//     "project": {
50236	//       "description": "Project ID for this request.",
50237	//       "location": "path",
50238	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50239	//       "required": true,
50240	//       "type": "string"
50241	//     },
50242	//     "requestId": {
50243	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50244	//       "location": "query",
50245	//       "type": "string"
50246	//     },
50247	//     "zone": {
50248	//       "description": "The name of the zone for this request.",
50249	//       "location": "path",
50250	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50251	//       "required": true,
50252	//       "type": "string"
50253	//     }
50254	//   },
50255	//   "path": "{project}/zones/{zone}/instances/{instance}/stop",
50256	//   "response": {
50257	//     "$ref": "Operation"
50258	//   },
50259	//   "scopes": [
50260	//     "https://www.googleapis.com/auth/cloud-platform",
50261	//     "https://www.googleapis.com/auth/compute"
50262	//   ]
50263	// }
50264
50265}
50266
50267// method id "compute.instances.updateAccessConfig":
50268
50269type InstancesUpdateAccessConfigCall struct {
50270	s            *Service
50271	project      string
50272	zone         string
50273	instance     string
50274	accessconfig *AccessConfig
50275	urlParams_   gensupport.URLParams
50276	ctx_         context.Context
50277	header_      http.Header
50278}
50279
50280// UpdateAccessConfig: Updates the specified access config from an
50281// instance's network interface with the data included in the request.
50282// This method supports PATCH semantics and uses the JSON merge patch
50283// format and processing rules.
50284func (r *InstancesService) UpdateAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesUpdateAccessConfigCall {
50285	c := &InstancesUpdateAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50286	c.project = project
50287	c.zone = zone
50288	c.instance = instance
50289	c.urlParams_.Set("networkInterface", networkInterface)
50290	c.accessconfig = accessconfig
50291	return c
50292}
50293
50294// RequestId sets the optional parameter "requestId": An optional
50295// request ID to identify requests. Specify a unique request ID so that
50296// if you must retry your request, the server will know to ignore the
50297// request if it has already been completed.
50298//
50299// For example, consider a situation where you make an initial request
50300// and the request times out. If you make the request again with the
50301// same request ID, the server can check if original operation with the
50302// same request ID was received, and if so, will ignore the second
50303// request. This prevents clients from accidentally creating duplicate
50304// commitments.
50305//
50306// The request ID must be a valid UUID with the exception that zero UUID
50307// is not supported (00000000-0000-0000-0000-000000000000).
50308func (c *InstancesUpdateAccessConfigCall) RequestId(requestId string) *InstancesUpdateAccessConfigCall {
50309	c.urlParams_.Set("requestId", requestId)
50310	return c
50311}
50312
50313// Fields allows partial responses to be retrieved. See
50314// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50315// for more information.
50316func (c *InstancesUpdateAccessConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateAccessConfigCall {
50317	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50318	return c
50319}
50320
50321// Context sets the context to be used in this call's Do method. Any
50322// pending HTTP request will be aborted if the provided context is
50323// canceled.
50324func (c *InstancesUpdateAccessConfigCall) Context(ctx context.Context) *InstancesUpdateAccessConfigCall {
50325	c.ctx_ = ctx
50326	return c
50327}
50328
50329// Header returns an http.Header that can be modified by the caller to
50330// add HTTP headers to the request.
50331func (c *InstancesUpdateAccessConfigCall) Header() http.Header {
50332	if c.header_ == nil {
50333		c.header_ = make(http.Header)
50334	}
50335	return c.header_
50336}
50337
50338func (c *InstancesUpdateAccessConfigCall) doRequest(alt string) (*http.Response, error) {
50339	reqHeaders := make(http.Header)
50340	for k, v := range c.header_ {
50341		reqHeaders[k] = v
50342	}
50343	reqHeaders.Set("User-Agent", c.s.userAgent())
50344	var body io.Reader = nil
50345	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
50346	if err != nil {
50347		return nil, err
50348	}
50349	reqHeaders.Set("Content-Type", "application/json")
50350	c.urlParams_.Set("alt", alt)
50351	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateAccessConfig")
50352	urls += "?" + c.urlParams_.Encode()
50353	req, _ := http.NewRequest("POST", urls, body)
50354	req.Header = reqHeaders
50355	googleapi.Expand(req.URL, map[string]string{
50356		"project":  c.project,
50357		"zone":     c.zone,
50358		"instance": c.instance,
50359	})
50360	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50361}
50362
50363// Do executes the "compute.instances.updateAccessConfig" call.
50364// Exactly one of *Operation or error will be non-nil. Any non-2xx
50365// status code is an error. Response headers are in either
50366// *Operation.ServerResponse.Header or (if a response was returned at
50367// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50368// to check whether the returned error was because
50369// http.StatusNotModified was returned.
50370func (c *InstancesUpdateAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50371	gensupport.SetOptions(c.urlParams_, opts...)
50372	res, err := c.doRequest("json")
50373	if res != nil && res.StatusCode == http.StatusNotModified {
50374		if res.Body != nil {
50375			res.Body.Close()
50376		}
50377		return nil, &googleapi.Error{
50378			Code:   res.StatusCode,
50379			Header: res.Header,
50380		}
50381	}
50382	if err != nil {
50383		return nil, err
50384	}
50385	defer googleapi.CloseBody(res)
50386	if err := googleapi.CheckResponse(res); err != nil {
50387		return nil, err
50388	}
50389	ret := &Operation{
50390		ServerResponse: googleapi.ServerResponse{
50391			Header:         res.Header,
50392			HTTPStatusCode: res.StatusCode,
50393		},
50394	}
50395	target := &ret
50396	if err := gensupport.DecodeResponse(target, res); err != nil {
50397		return nil, err
50398	}
50399	return ret, nil
50400	// {
50401	//   "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.",
50402	//   "httpMethod": "POST",
50403	//   "id": "compute.instances.updateAccessConfig",
50404	//   "parameterOrder": [
50405	//     "project",
50406	//     "zone",
50407	//     "instance",
50408	//     "networkInterface"
50409	//   ],
50410	//   "parameters": {
50411	//     "instance": {
50412	//       "description": "The instance name for this request.",
50413	//       "location": "path",
50414	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50415	//       "required": true,
50416	//       "type": "string"
50417	//     },
50418	//     "networkInterface": {
50419	//       "description": "The name of the network interface where the access config is attached.",
50420	//       "location": "query",
50421	//       "required": true,
50422	//       "type": "string"
50423	//     },
50424	//     "project": {
50425	//       "description": "Project ID for this request.",
50426	//       "location": "path",
50427	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50428	//       "required": true,
50429	//       "type": "string"
50430	//     },
50431	//     "requestId": {
50432	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50433	//       "location": "query",
50434	//       "type": "string"
50435	//     },
50436	//     "zone": {
50437	//       "description": "The name of the zone for this request.",
50438	//       "location": "path",
50439	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50440	//       "required": true,
50441	//       "type": "string"
50442	//     }
50443	//   },
50444	//   "path": "{project}/zones/{zone}/instances/{instance}/updateAccessConfig",
50445	//   "request": {
50446	//     "$ref": "AccessConfig"
50447	//   },
50448	//   "response": {
50449	//     "$ref": "Operation"
50450	//   },
50451	//   "scopes": [
50452	//     "https://www.googleapis.com/auth/cloud-platform",
50453	//     "https://www.googleapis.com/auth/compute"
50454	//   ]
50455	// }
50456
50457}
50458
50459// method id "compute.interconnectAttachments.aggregatedList":
50460
50461type InterconnectAttachmentsAggregatedListCall struct {
50462	s            *Service
50463	project      string
50464	urlParams_   gensupport.URLParams
50465	ifNoneMatch_ string
50466	ctx_         context.Context
50467	header_      http.Header
50468}
50469
50470// AggregatedList: Retrieves an aggregated list of interconnect
50471// attachments.
50472func (r *InterconnectAttachmentsService) AggregatedList(project string) *InterconnectAttachmentsAggregatedListCall {
50473	c := &InterconnectAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50474	c.project = project
50475	return c
50476}
50477
50478// Filter sets the optional parameter "filter": Sets a filter
50479// {expression} for filtering listed resources. Your {expression} must
50480// be in the format: field_name comparison_string literal_string.
50481//
50482// The field_name is the name of the field you want to compare. Only
50483// atomic field types are supported (string, number, boolean). The
50484// comparison_string must be either eq (equals) or ne (not equals). The
50485// literal_string is the string value to filter to. The literal value
50486// must be valid for the type of field you are filtering by (string,
50487// number, boolean). For string fields, the literal value is interpreted
50488// as a regular expression using RE2 syntax. The literal value must
50489// match the entire field.
50490//
50491// For example, to filter for instances that do not have a name of
50492// example-instance, you would use name ne example-instance.
50493//
50494// You can filter on nested fields. For example, you could filter on
50495// instances that have set the scheduling.automaticRestart field to
50496// true. Use filtering on nested fields to take advantage of labels to
50497// organize and search for results based on label values.
50498//
50499// To filter on multiple expressions, provide each separate expression
50500// within parentheses. For example, (scheduling.automaticRestart eq
50501// true) (zone eq us-central1-f). Multiple expressions are treated as
50502// AND expressions, meaning that resources must match all expressions to
50503// pass the filters.
50504func (c *InterconnectAttachmentsAggregatedListCall) Filter(filter string) *InterconnectAttachmentsAggregatedListCall {
50505	c.urlParams_.Set("filter", filter)
50506	return c
50507}
50508
50509// MaxResults sets the optional parameter "maxResults": The maximum
50510// number of results per page that should be returned. If the number of
50511// available results is larger than maxResults, Compute Engine returns a
50512// nextPageToken that can be used to get the next page of results in
50513// subsequent list requests. Acceptable values are 0 to 500, inclusive.
50514// (Default: 500)
50515func (c *InterconnectAttachmentsAggregatedListCall) MaxResults(maxResults int64) *InterconnectAttachmentsAggregatedListCall {
50516	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
50517	return c
50518}
50519
50520// OrderBy sets the optional parameter "orderBy": Sorts list results by
50521// a certain order. By default, results are returned in alphanumerical
50522// order based on the resource name.
50523//
50524// You can also sort results in descending order based on the creation
50525// timestamp using orderBy="creationTimestamp desc". This sorts results
50526// based on the creationTimestamp field in reverse chronological order
50527// (newest result first). Use this to sort resources like operations so
50528// that the newest operation is returned first.
50529//
50530// Currently, only sorting by name or creationTimestamp desc is
50531// supported.
50532func (c *InterconnectAttachmentsAggregatedListCall) OrderBy(orderBy string) *InterconnectAttachmentsAggregatedListCall {
50533	c.urlParams_.Set("orderBy", orderBy)
50534	return c
50535}
50536
50537// PageToken sets the optional parameter "pageToken": Specifies a page
50538// token to use. Set pageToken to the nextPageToken returned by a
50539// previous list request to get the next page of results.
50540func (c *InterconnectAttachmentsAggregatedListCall) PageToken(pageToken string) *InterconnectAttachmentsAggregatedListCall {
50541	c.urlParams_.Set("pageToken", pageToken)
50542	return c
50543}
50544
50545// Fields allows partial responses to be retrieved. See
50546// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50547// for more information.
50548func (c *InterconnectAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsAggregatedListCall {
50549	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50550	return c
50551}
50552
50553// IfNoneMatch sets the optional parameter which makes the operation
50554// fail if the object's ETag matches the given value. This is useful for
50555// getting updates only after the object has changed since the last
50556// request. Use googleapi.IsNotModified to check whether the response
50557// error from Do is the result of In-None-Match.
50558func (c *InterconnectAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsAggregatedListCall {
50559	c.ifNoneMatch_ = entityTag
50560	return c
50561}
50562
50563// Context sets the context to be used in this call's Do method. Any
50564// pending HTTP request will be aborted if the provided context is
50565// canceled.
50566func (c *InterconnectAttachmentsAggregatedListCall) Context(ctx context.Context) *InterconnectAttachmentsAggregatedListCall {
50567	c.ctx_ = ctx
50568	return c
50569}
50570
50571// Header returns an http.Header that can be modified by the caller to
50572// add HTTP headers to the request.
50573func (c *InterconnectAttachmentsAggregatedListCall) Header() http.Header {
50574	if c.header_ == nil {
50575		c.header_ = make(http.Header)
50576	}
50577	return c.header_
50578}
50579
50580func (c *InterconnectAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
50581	reqHeaders := make(http.Header)
50582	for k, v := range c.header_ {
50583		reqHeaders[k] = v
50584	}
50585	reqHeaders.Set("User-Agent", c.s.userAgent())
50586	if c.ifNoneMatch_ != "" {
50587		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50588	}
50589	var body io.Reader = nil
50590	c.urlParams_.Set("alt", alt)
50591	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/interconnectAttachments")
50592	urls += "?" + c.urlParams_.Encode()
50593	req, _ := http.NewRequest("GET", urls, body)
50594	req.Header = reqHeaders
50595	googleapi.Expand(req.URL, map[string]string{
50596		"project": c.project,
50597	})
50598	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50599}
50600
50601// Do executes the "compute.interconnectAttachments.aggregatedList" call.
50602// Exactly one of *InterconnectAttachmentAggregatedList or error will be
50603// non-nil. Any non-2xx status code is an error. Response headers are in
50604// either *InterconnectAttachmentAggregatedList.ServerResponse.Header or
50605// (if a response was returned at all) in
50606// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
50607// whether the returned error was because http.StatusNotModified was
50608// returned.
50609func (c *InterconnectAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentAggregatedList, error) {
50610	gensupport.SetOptions(c.urlParams_, opts...)
50611	res, err := c.doRequest("json")
50612	if res != nil && res.StatusCode == http.StatusNotModified {
50613		if res.Body != nil {
50614			res.Body.Close()
50615		}
50616		return nil, &googleapi.Error{
50617			Code:   res.StatusCode,
50618			Header: res.Header,
50619		}
50620	}
50621	if err != nil {
50622		return nil, err
50623	}
50624	defer googleapi.CloseBody(res)
50625	if err := googleapi.CheckResponse(res); err != nil {
50626		return nil, err
50627	}
50628	ret := &InterconnectAttachmentAggregatedList{
50629		ServerResponse: googleapi.ServerResponse{
50630			Header:         res.Header,
50631			HTTPStatusCode: res.StatusCode,
50632		},
50633	}
50634	target := &ret
50635	if err := gensupport.DecodeResponse(target, res); err != nil {
50636		return nil, err
50637	}
50638	return ret, nil
50639	// {
50640	//   "description": "Retrieves an aggregated list of interconnect attachments.",
50641	//   "httpMethod": "GET",
50642	//   "id": "compute.interconnectAttachments.aggregatedList",
50643	//   "parameterOrder": [
50644	//     "project"
50645	//   ],
50646	//   "parameters": {
50647	//     "filter": {
50648	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
50649	//       "location": "query",
50650	//       "type": "string"
50651	//     },
50652	//     "maxResults": {
50653	//       "default": "500",
50654	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
50655	//       "format": "uint32",
50656	//       "location": "query",
50657	//       "minimum": "0",
50658	//       "type": "integer"
50659	//     },
50660	//     "orderBy": {
50661	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
50662	//       "location": "query",
50663	//       "type": "string"
50664	//     },
50665	//     "pageToken": {
50666	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
50667	//       "location": "query",
50668	//       "type": "string"
50669	//     },
50670	//     "project": {
50671	//       "description": "Project ID for this request.",
50672	//       "location": "path",
50673	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50674	//       "required": true,
50675	//       "type": "string"
50676	//     }
50677	//   },
50678	//   "path": "{project}/aggregated/interconnectAttachments",
50679	//   "response": {
50680	//     "$ref": "InterconnectAttachmentAggregatedList"
50681	//   },
50682	//   "scopes": [
50683	//     "https://www.googleapis.com/auth/cloud-platform",
50684	//     "https://www.googleapis.com/auth/compute",
50685	//     "https://www.googleapis.com/auth/compute.readonly"
50686	//   ]
50687	// }
50688
50689}
50690
50691// Pages invokes f for each page of results.
50692// A non-nil error returned from f will halt the iteration.
50693// The provided context supersedes any context provided to the Context method.
50694func (c *InterconnectAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentAggregatedList) error) error {
50695	c.ctx_ = ctx
50696	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
50697	for {
50698		x, err := c.Do()
50699		if err != nil {
50700			return err
50701		}
50702		if err := f(x); err != nil {
50703			return err
50704		}
50705		if x.NextPageToken == "" {
50706			return nil
50707		}
50708		c.PageToken(x.NextPageToken)
50709	}
50710}
50711
50712// method id "compute.interconnectAttachments.delete":
50713
50714type InterconnectAttachmentsDeleteCall struct {
50715	s                      *Service
50716	project                string
50717	region                 string
50718	interconnectAttachment string
50719	urlParams_             gensupport.URLParams
50720	ctx_                   context.Context
50721	header_                http.Header
50722}
50723
50724// Delete: Deletes the specified interconnect attachment.
50725func (r *InterconnectAttachmentsService) Delete(project string, region string, interconnectAttachment string) *InterconnectAttachmentsDeleteCall {
50726	c := &InterconnectAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50727	c.project = project
50728	c.region = region
50729	c.interconnectAttachment = interconnectAttachment
50730	return c
50731}
50732
50733// RequestId sets the optional parameter "requestId": An optional
50734// request ID to identify requests. Specify a unique request ID so that
50735// if you must retry your request, the server will know to ignore the
50736// request if it has already been completed.
50737//
50738// For example, consider a situation where you make an initial request
50739// and the request times out. If you make the request again with the
50740// same request ID, the server can check if original operation with the
50741// same request ID was received, and if so, will ignore the second
50742// request. This prevents clients from accidentally creating duplicate
50743// commitments.
50744//
50745// The request ID must be a valid UUID with the exception that zero UUID
50746// is not supported (00000000-0000-0000-0000-000000000000).
50747func (c *InterconnectAttachmentsDeleteCall) RequestId(requestId string) *InterconnectAttachmentsDeleteCall {
50748	c.urlParams_.Set("requestId", requestId)
50749	return c
50750}
50751
50752// Fields allows partial responses to be retrieved. See
50753// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50754// for more information.
50755func (c *InterconnectAttachmentsDeleteCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsDeleteCall {
50756	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50757	return c
50758}
50759
50760// Context sets the context to be used in this call's Do method. Any
50761// pending HTTP request will be aborted if the provided context is
50762// canceled.
50763func (c *InterconnectAttachmentsDeleteCall) Context(ctx context.Context) *InterconnectAttachmentsDeleteCall {
50764	c.ctx_ = ctx
50765	return c
50766}
50767
50768// Header returns an http.Header that can be modified by the caller to
50769// add HTTP headers to the request.
50770func (c *InterconnectAttachmentsDeleteCall) Header() http.Header {
50771	if c.header_ == nil {
50772		c.header_ = make(http.Header)
50773	}
50774	return c.header_
50775}
50776
50777func (c *InterconnectAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) {
50778	reqHeaders := make(http.Header)
50779	for k, v := range c.header_ {
50780		reqHeaders[k] = v
50781	}
50782	reqHeaders.Set("User-Agent", c.s.userAgent())
50783	var body io.Reader = nil
50784	c.urlParams_.Set("alt", alt)
50785	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
50786	urls += "?" + c.urlParams_.Encode()
50787	req, _ := http.NewRequest("DELETE", urls, body)
50788	req.Header = reqHeaders
50789	googleapi.Expand(req.URL, map[string]string{
50790		"project":                c.project,
50791		"region":                 c.region,
50792		"interconnectAttachment": c.interconnectAttachment,
50793	})
50794	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50795}
50796
50797// Do executes the "compute.interconnectAttachments.delete" call.
50798// Exactly one of *Operation or error will be non-nil. Any non-2xx
50799// status code is an error. Response headers are in either
50800// *Operation.ServerResponse.Header or (if a response was returned at
50801// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50802// to check whether the returned error was because
50803// http.StatusNotModified was returned.
50804func (c *InterconnectAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50805	gensupport.SetOptions(c.urlParams_, opts...)
50806	res, err := c.doRequest("json")
50807	if res != nil && res.StatusCode == http.StatusNotModified {
50808		if res.Body != nil {
50809			res.Body.Close()
50810		}
50811		return nil, &googleapi.Error{
50812			Code:   res.StatusCode,
50813			Header: res.Header,
50814		}
50815	}
50816	if err != nil {
50817		return nil, err
50818	}
50819	defer googleapi.CloseBody(res)
50820	if err := googleapi.CheckResponse(res); err != nil {
50821		return nil, err
50822	}
50823	ret := &Operation{
50824		ServerResponse: googleapi.ServerResponse{
50825			Header:         res.Header,
50826			HTTPStatusCode: res.StatusCode,
50827		},
50828	}
50829	target := &ret
50830	if err := gensupport.DecodeResponse(target, res); err != nil {
50831		return nil, err
50832	}
50833	return ret, nil
50834	// {
50835	//   "description": "Deletes the specified interconnect attachment.",
50836	//   "httpMethod": "DELETE",
50837	//   "id": "compute.interconnectAttachments.delete",
50838	//   "parameterOrder": [
50839	//     "project",
50840	//     "region",
50841	//     "interconnectAttachment"
50842	//   ],
50843	//   "parameters": {
50844	//     "interconnectAttachment": {
50845	//       "description": "Name of the interconnect attachment to delete.",
50846	//       "location": "path",
50847	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50848	//       "required": true,
50849	//       "type": "string"
50850	//     },
50851	//     "project": {
50852	//       "description": "Project ID for this request.",
50853	//       "location": "path",
50854	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50855	//       "required": true,
50856	//       "type": "string"
50857	//     },
50858	//     "region": {
50859	//       "description": "Name of the region for this request.",
50860	//       "location": "path",
50861	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50862	//       "required": true,
50863	//       "type": "string"
50864	//     },
50865	//     "requestId": {
50866	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50867	//       "location": "query",
50868	//       "type": "string"
50869	//     }
50870	//   },
50871	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
50872	//   "response": {
50873	//     "$ref": "Operation"
50874	//   },
50875	//   "scopes": [
50876	//     "https://www.googleapis.com/auth/cloud-platform",
50877	//     "https://www.googleapis.com/auth/compute"
50878	//   ]
50879	// }
50880
50881}
50882
50883// method id "compute.interconnectAttachments.get":
50884
50885type InterconnectAttachmentsGetCall struct {
50886	s                      *Service
50887	project                string
50888	region                 string
50889	interconnectAttachment string
50890	urlParams_             gensupport.URLParams
50891	ifNoneMatch_           string
50892	ctx_                   context.Context
50893	header_                http.Header
50894}
50895
50896// Get: Returns the specified interconnect attachment.
50897func (r *InterconnectAttachmentsService) Get(project string, region string, interconnectAttachment string) *InterconnectAttachmentsGetCall {
50898	c := &InterconnectAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50899	c.project = project
50900	c.region = region
50901	c.interconnectAttachment = interconnectAttachment
50902	return c
50903}
50904
50905// Fields allows partial responses to be retrieved. See
50906// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50907// for more information.
50908func (c *InterconnectAttachmentsGetCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsGetCall {
50909	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50910	return c
50911}
50912
50913// IfNoneMatch sets the optional parameter which makes the operation
50914// fail if the object's ETag matches the given value. This is useful for
50915// getting updates only after the object has changed since the last
50916// request. Use googleapi.IsNotModified to check whether the response
50917// error from Do is the result of In-None-Match.
50918func (c *InterconnectAttachmentsGetCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsGetCall {
50919	c.ifNoneMatch_ = entityTag
50920	return c
50921}
50922
50923// Context sets the context to be used in this call's Do method. Any
50924// pending HTTP request will be aborted if the provided context is
50925// canceled.
50926func (c *InterconnectAttachmentsGetCall) Context(ctx context.Context) *InterconnectAttachmentsGetCall {
50927	c.ctx_ = ctx
50928	return c
50929}
50930
50931// Header returns an http.Header that can be modified by the caller to
50932// add HTTP headers to the request.
50933func (c *InterconnectAttachmentsGetCall) Header() http.Header {
50934	if c.header_ == nil {
50935		c.header_ = make(http.Header)
50936	}
50937	return c.header_
50938}
50939
50940func (c *InterconnectAttachmentsGetCall) doRequest(alt string) (*http.Response, error) {
50941	reqHeaders := make(http.Header)
50942	for k, v := range c.header_ {
50943		reqHeaders[k] = v
50944	}
50945	reqHeaders.Set("User-Agent", c.s.userAgent())
50946	if c.ifNoneMatch_ != "" {
50947		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50948	}
50949	var body io.Reader = nil
50950	c.urlParams_.Set("alt", alt)
50951	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
50952	urls += "?" + c.urlParams_.Encode()
50953	req, _ := http.NewRequest("GET", urls, body)
50954	req.Header = reqHeaders
50955	googleapi.Expand(req.URL, map[string]string{
50956		"project":                c.project,
50957		"region":                 c.region,
50958		"interconnectAttachment": c.interconnectAttachment,
50959	})
50960	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50961}
50962
50963// Do executes the "compute.interconnectAttachments.get" call.
50964// Exactly one of *InterconnectAttachment or error will be non-nil. Any
50965// non-2xx status code is an error. Response headers are in either
50966// *InterconnectAttachment.ServerResponse.Header or (if a response was
50967// returned at all) in error.(*googleapi.Error).Header. Use
50968// googleapi.IsNotModified to check whether the returned error was
50969// because http.StatusNotModified was returned.
50970func (c *InterconnectAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachment, error) {
50971	gensupport.SetOptions(c.urlParams_, opts...)
50972	res, err := c.doRequest("json")
50973	if res != nil && res.StatusCode == http.StatusNotModified {
50974		if res.Body != nil {
50975			res.Body.Close()
50976		}
50977		return nil, &googleapi.Error{
50978			Code:   res.StatusCode,
50979			Header: res.Header,
50980		}
50981	}
50982	if err != nil {
50983		return nil, err
50984	}
50985	defer googleapi.CloseBody(res)
50986	if err := googleapi.CheckResponse(res); err != nil {
50987		return nil, err
50988	}
50989	ret := &InterconnectAttachment{
50990		ServerResponse: googleapi.ServerResponse{
50991			Header:         res.Header,
50992			HTTPStatusCode: res.StatusCode,
50993		},
50994	}
50995	target := &ret
50996	if err := gensupport.DecodeResponse(target, res); err != nil {
50997		return nil, err
50998	}
50999	return ret, nil
51000	// {
51001	//   "description": "Returns the specified interconnect attachment.",
51002	//   "httpMethod": "GET",
51003	//   "id": "compute.interconnectAttachments.get",
51004	//   "parameterOrder": [
51005	//     "project",
51006	//     "region",
51007	//     "interconnectAttachment"
51008	//   ],
51009	//   "parameters": {
51010	//     "interconnectAttachment": {
51011	//       "description": "Name of the interconnect attachment to return.",
51012	//       "location": "path",
51013	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51014	//       "required": true,
51015	//       "type": "string"
51016	//     },
51017	//     "project": {
51018	//       "description": "Project ID for this request.",
51019	//       "location": "path",
51020	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51021	//       "required": true,
51022	//       "type": "string"
51023	//     },
51024	//     "region": {
51025	//       "description": "Name of the region for this request.",
51026	//       "location": "path",
51027	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51028	//       "required": true,
51029	//       "type": "string"
51030	//     }
51031	//   },
51032	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
51033	//   "response": {
51034	//     "$ref": "InterconnectAttachment"
51035	//   },
51036	//   "scopes": [
51037	//     "https://www.googleapis.com/auth/cloud-platform",
51038	//     "https://www.googleapis.com/auth/compute",
51039	//     "https://www.googleapis.com/auth/compute.readonly"
51040	//   ]
51041	// }
51042
51043}
51044
51045// method id "compute.interconnectAttachments.insert":
51046
51047type InterconnectAttachmentsInsertCall struct {
51048	s                      *Service
51049	project                string
51050	region                 string
51051	interconnectattachment *InterconnectAttachment
51052	urlParams_             gensupport.URLParams
51053	ctx_                   context.Context
51054	header_                http.Header
51055}
51056
51057// Insert: Creates an InterconnectAttachment in the specified project
51058// using the data included in the request.
51059func (r *InterconnectAttachmentsService) Insert(project string, region string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsInsertCall {
51060	c := &InterconnectAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51061	c.project = project
51062	c.region = region
51063	c.interconnectattachment = interconnectattachment
51064	return c
51065}
51066
51067// RequestId sets the optional parameter "requestId": An optional
51068// request ID to identify requests. Specify a unique request ID so that
51069// if you must retry your request, the server will know to ignore the
51070// request if it has already been completed.
51071//
51072// For example, consider a situation where you make an initial request
51073// and the request times out. If you make the request again with the
51074// same request ID, the server can check if original operation with the
51075// same request ID was received, and if so, will ignore the second
51076// request. This prevents clients from accidentally creating duplicate
51077// commitments.
51078//
51079// The request ID must be a valid UUID with the exception that zero UUID
51080// is not supported (00000000-0000-0000-0000-000000000000).
51081func (c *InterconnectAttachmentsInsertCall) RequestId(requestId string) *InterconnectAttachmentsInsertCall {
51082	c.urlParams_.Set("requestId", requestId)
51083	return c
51084}
51085
51086// Fields allows partial responses to be retrieved. See
51087// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51088// for more information.
51089func (c *InterconnectAttachmentsInsertCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsInsertCall {
51090	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51091	return c
51092}
51093
51094// Context sets the context to be used in this call's Do method. Any
51095// pending HTTP request will be aborted if the provided context is
51096// canceled.
51097func (c *InterconnectAttachmentsInsertCall) Context(ctx context.Context) *InterconnectAttachmentsInsertCall {
51098	c.ctx_ = ctx
51099	return c
51100}
51101
51102// Header returns an http.Header that can be modified by the caller to
51103// add HTTP headers to the request.
51104func (c *InterconnectAttachmentsInsertCall) Header() http.Header {
51105	if c.header_ == nil {
51106		c.header_ = make(http.Header)
51107	}
51108	return c.header_
51109}
51110
51111func (c *InterconnectAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) {
51112	reqHeaders := make(http.Header)
51113	for k, v := range c.header_ {
51114		reqHeaders[k] = v
51115	}
51116	reqHeaders.Set("User-Agent", c.s.userAgent())
51117	var body io.Reader = nil
51118	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
51119	if err != nil {
51120		return nil, err
51121	}
51122	reqHeaders.Set("Content-Type", "application/json")
51123	c.urlParams_.Set("alt", alt)
51124	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments")
51125	urls += "?" + c.urlParams_.Encode()
51126	req, _ := http.NewRequest("POST", urls, body)
51127	req.Header = reqHeaders
51128	googleapi.Expand(req.URL, map[string]string{
51129		"project": c.project,
51130		"region":  c.region,
51131	})
51132	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51133}
51134
51135// Do executes the "compute.interconnectAttachments.insert" call.
51136// Exactly one of *Operation or error will be non-nil. Any non-2xx
51137// status code is an error. Response headers are in either
51138// *Operation.ServerResponse.Header or (if a response was returned at
51139// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51140// to check whether the returned error was because
51141// http.StatusNotModified was returned.
51142func (c *InterconnectAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51143	gensupport.SetOptions(c.urlParams_, opts...)
51144	res, err := c.doRequest("json")
51145	if res != nil && res.StatusCode == http.StatusNotModified {
51146		if res.Body != nil {
51147			res.Body.Close()
51148		}
51149		return nil, &googleapi.Error{
51150			Code:   res.StatusCode,
51151			Header: res.Header,
51152		}
51153	}
51154	if err != nil {
51155		return nil, err
51156	}
51157	defer googleapi.CloseBody(res)
51158	if err := googleapi.CheckResponse(res); err != nil {
51159		return nil, err
51160	}
51161	ret := &Operation{
51162		ServerResponse: googleapi.ServerResponse{
51163			Header:         res.Header,
51164			HTTPStatusCode: res.StatusCode,
51165		},
51166	}
51167	target := &ret
51168	if err := gensupport.DecodeResponse(target, res); err != nil {
51169		return nil, err
51170	}
51171	return ret, nil
51172	// {
51173	//   "description": "Creates an InterconnectAttachment in the specified project using the data included in the request.",
51174	//   "httpMethod": "POST",
51175	//   "id": "compute.interconnectAttachments.insert",
51176	//   "parameterOrder": [
51177	//     "project",
51178	//     "region"
51179	//   ],
51180	//   "parameters": {
51181	//     "project": {
51182	//       "description": "Project ID for this request.",
51183	//       "location": "path",
51184	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51185	//       "required": true,
51186	//       "type": "string"
51187	//     },
51188	//     "region": {
51189	//       "description": "Name of the region for this request.",
51190	//       "location": "path",
51191	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51192	//       "required": true,
51193	//       "type": "string"
51194	//     },
51195	//     "requestId": {
51196	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51197	//       "location": "query",
51198	//       "type": "string"
51199	//     }
51200	//   },
51201	//   "path": "{project}/regions/{region}/interconnectAttachments",
51202	//   "request": {
51203	//     "$ref": "InterconnectAttachment"
51204	//   },
51205	//   "response": {
51206	//     "$ref": "Operation"
51207	//   },
51208	//   "scopes": [
51209	//     "https://www.googleapis.com/auth/cloud-platform",
51210	//     "https://www.googleapis.com/auth/compute"
51211	//   ]
51212	// }
51213
51214}
51215
51216// method id "compute.interconnectAttachments.list":
51217
51218type InterconnectAttachmentsListCall struct {
51219	s            *Service
51220	project      string
51221	region       string
51222	urlParams_   gensupport.URLParams
51223	ifNoneMatch_ string
51224	ctx_         context.Context
51225	header_      http.Header
51226}
51227
51228// List: Retrieves the list of interconnect attachments contained within
51229// the specified region.
51230func (r *InterconnectAttachmentsService) List(project string, region string) *InterconnectAttachmentsListCall {
51231	c := &InterconnectAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51232	c.project = project
51233	c.region = region
51234	return c
51235}
51236
51237// Filter sets the optional parameter "filter": Sets a filter
51238// {expression} for filtering listed resources. Your {expression} must
51239// be in the format: field_name comparison_string literal_string.
51240//
51241// The field_name is the name of the field you want to compare. Only
51242// atomic field types are supported (string, number, boolean). The
51243// comparison_string must be either eq (equals) or ne (not equals). The
51244// literal_string is the string value to filter to. The literal value
51245// must be valid for the type of field you are filtering by (string,
51246// number, boolean). For string fields, the literal value is interpreted
51247// as a regular expression using RE2 syntax. The literal value must
51248// match the entire field.
51249//
51250// For example, to filter for instances that do not have a name of
51251// example-instance, you would use name ne example-instance.
51252//
51253// You can filter on nested fields. For example, you could filter on
51254// instances that have set the scheduling.automaticRestart field to
51255// true. Use filtering on nested fields to take advantage of labels to
51256// organize and search for results based on label values.
51257//
51258// To filter on multiple expressions, provide each separate expression
51259// within parentheses. For example, (scheduling.automaticRestart eq
51260// true) (zone eq us-central1-f). Multiple expressions are treated as
51261// AND expressions, meaning that resources must match all expressions to
51262// pass the filters.
51263func (c *InterconnectAttachmentsListCall) Filter(filter string) *InterconnectAttachmentsListCall {
51264	c.urlParams_.Set("filter", filter)
51265	return c
51266}
51267
51268// MaxResults sets the optional parameter "maxResults": The maximum
51269// number of results per page that should be returned. If the number of
51270// available results is larger than maxResults, Compute Engine returns a
51271// nextPageToken that can be used to get the next page of results in
51272// subsequent list requests. Acceptable values are 0 to 500, inclusive.
51273// (Default: 500)
51274func (c *InterconnectAttachmentsListCall) MaxResults(maxResults int64) *InterconnectAttachmentsListCall {
51275	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
51276	return c
51277}
51278
51279// OrderBy sets the optional parameter "orderBy": Sorts list results by
51280// a certain order. By default, results are returned in alphanumerical
51281// order based on the resource name.
51282//
51283// You can also sort results in descending order based on the creation
51284// timestamp using orderBy="creationTimestamp desc". This sorts results
51285// based on the creationTimestamp field in reverse chronological order
51286// (newest result first). Use this to sort resources like operations so
51287// that the newest operation is returned first.
51288//
51289// Currently, only sorting by name or creationTimestamp desc is
51290// supported.
51291func (c *InterconnectAttachmentsListCall) OrderBy(orderBy string) *InterconnectAttachmentsListCall {
51292	c.urlParams_.Set("orderBy", orderBy)
51293	return c
51294}
51295
51296// PageToken sets the optional parameter "pageToken": Specifies a page
51297// token to use. Set pageToken to the nextPageToken returned by a
51298// previous list request to get the next page of results.
51299func (c *InterconnectAttachmentsListCall) PageToken(pageToken string) *InterconnectAttachmentsListCall {
51300	c.urlParams_.Set("pageToken", pageToken)
51301	return c
51302}
51303
51304// Fields allows partial responses to be retrieved. See
51305// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51306// for more information.
51307func (c *InterconnectAttachmentsListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsListCall {
51308	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51309	return c
51310}
51311
51312// IfNoneMatch sets the optional parameter which makes the operation
51313// fail if the object's ETag matches the given value. This is useful for
51314// getting updates only after the object has changed since the last
51315// request. Use googleapi.IsNotModified to check whether the response
51316// error from Do is the result of In-None-Match.
51317func (c *InterconnectAttachmentsListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsListCall {
51318	c.ifNoneMatch_ = entityTag
51319	return c
51320}
51321
51322// Context sets the context to be used in this call's Do method. Any
51323// pending HTTP request will be aborted if the provided context is
51324// canceled.
51325func (c *InterconnectAttachmentsListCall) Context(ctx context.Context) *InterconnectAttachmentsListCall {
51326	c.ctx_ = ctx
51327	return c
51328}
51329
51330// Header returns an http.Header that can be modified by the caller to
51331// add HTTP headers to the request.
51332func (c *InterconnectAttachmentsListCall) Header() http.Header {
51333	if c.header_ == nil {
51334		c.header_ = make(http.Header)
51335	}
51336	return c.header_
51337}
51338
51339func (c *InterconnectAttachmentsListCall) doRequest(alt string) (*http.Response, error) {
51340	reqHeaders := make(http.Header)
51341	for k, v := range c.header_ {
51342		reqHeaders[k] = v
51343	}
51344	reqHeaders.Set("User-Agent", c.s.userAgent())
51345	if c.ifNoneMatch_ != "" {
51346		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51347	}
51348	var body io.Reader = nil
51349	c.urlParams_.Set("alt", alt)
51350	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments")
51351	urls += "?" + c.urlParams_.Encode()
51352	req, _ := http.NewRequest("GET", urls, body)
51353	req.Header = reqHeaders
51354	googleapi.Expand(req.URL, map[string]string{
51355		"project": c.project,
51356		"region":  c.region,
51357	})
51358	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51359}
51360
51361// Do executes the "compute.interconnectAttachments.list" call.
51362// Exactly one of *InterconnectAttachmentList or error will be non-nil.
51363// Any non-2xx status code is an error. Response headers are in either
51364// *InterconnectAttachmentList.ServerResponse.Header or (if a response
51365// was returned at all) in error.(*googleapi.Error).Header. Use
51366// googleapi.IsNotModified to check whether the returned error was
51367// because http.StatusNotModified was returned.
51368func (c *InterconnectAttachmentsListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentList, error) {
51369	gensupport.SetOptions(c.urlParams_, opts...)
51370	res, err := c.doRequest("json")
51371	if res != nil && res.StatusCode == http.StatusNotModified {
51372		if res.Body != nil {
51373			res.Body.Close()
51374		}
51375		return nil, &googleapi.Error{
51376			Code:   res.StatusCode,
51377			Header: res.Header,
51378		}
51379	}
51380	if err != nil {
51381		return nil, err
51382	}
51383	defer googleapi.CloseBody(res)
51384	if err := googleapi.CheckResponse(res); err != nil {
51385		return nil, err
51386	}
51387	ret := &InterconnectAttachmentList{
51388		ServerResponse: googleapi.ServerResponse{
51389			Header:         res.Header,
51390			HTTPStatusCode: res.StatusCode,
51391		},
51392	}
51393	target := &ret
51394	if err := gensupport.DecodeResponse(target, res); err != nil {
51395		return nil, err
51396	}
51397	return ret, nil
51398	// {
51399	//   "description": "Retrieves the list of interconnect attachments contained within the specified region.",
51400	//   "httpMethod": "GET",
51401	//   "id": "compute.interconnectAttachments.list",
51402	//   "parameterOrder": [
51403	//     "project",
51404	//     "region"
51405	//   ],
51406	//   "parameters": {
51407	//     "filter": {
51408	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
51409	//       "location": "query",
51410	//       "type": "string"
51411	//     },
51412	//     "maxResults": {
51413	//       "default": "500",
51414	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
51415	//       "format": "uint32",
51416	//       "location": "query",
51417	//       "minimum": "0",
51418	//       "type": "integer"
51419	//     },
51420	//     "orderBy": {
51421	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
51422	//       "location": "query",
51423	//       "type": "string"
51424	//     },
51425	//     "pageToken": {
51426	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
51427	//       "location": "query",
51428	//       "type": "string"
51429	//     },
51430	//     "project": {
51431	//       "description": "Project ID for this request.",
51432	//       "location": "path",
51433	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51434	//       "required": true,
51435	//       "type": "string"
51436	//     },
51437	//     "region": {
51438	//       "description": "Name of the region for this request.",
51439	//       "location": "path",
51440	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51441	//       "required": true,
51442	//       "type": "string"
51443	//     }
51444	//   },
51445	//   "path": "{project}/regions/{region}/interconnectAttachments",
51446	//   "response": {
51447	//     "$ref": "InterconnectAttachmentList"
51448	//   },
51449	//   "scopes": [
51450	//     "https://www.googleapis.com/auth/cloud-platform",
51451	//     "https://www.googleapis.com/auth/compute",
51452	//     "https://www.googleapis.com/auth/compute.readonly"
51453	//   ]
51454	// }
51455
51456}
51457
51458// Pages invokes f for each page of results.
51459// A non-nil error returned from f will halt the iteration.
51460// The provided context supersedes any context provided to the Context method.
51461func (c *InterconnectAttachmentsListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentList) error) error {
51462	c.ctx_ = ctx
51463	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
51464	for {
51465		x, err := c.Do()
51466		if err != nil {
51467			return err
51468		}
51469		if err := f(x); err != nil {
51470			return err
51471		}
51472		if x.NextPageToken == "" {
51473			return nil
51474		}
51475		c.PageToken(x.NextPageToken)
51476	}
51477}
51478
51479// method id "compute.interconnectLocations.get":
51480
51481type InterconnectLocationsGetCall struct {
51482	s                    *Service
51483	project              string
51484	interconnectLocation string
51485	urlParams_           gensupport.URLParams
51486	ifNoneMatch_         string
51487	ctx_                 context.Context
51488	header_              http.Header
51489}
51490
51491// Get: Returns the details for the specified interconnect location. Get
51492// a list of available interconnect locations by making a list()
51493// request.
51494func (r *InterconnectLocationsService) Get(project string, interconnectLocation string) *InterconnectLocationsGetCall {
51495	c := &InterconnectLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51496	c.project = project
51497	c.interconnectLocation = interconnectLocation
51498	return c
51499}
51500
51501// Fields allows partial responses to be retrieved. See
51502// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51503// for more information.
51504func (c *InterconnectLocationsGetCall) Fields(s ...googleapi.Field) *InterconnectLocationsGetCall {
51505	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51506	return c
51507}
51508
51509// IfNoneMatch sets the optional parameter which makes the operation
51510// fail if the object's ETag matches the given value. This is useful for
51511// getting updates only after the object has changed since the last
51512// request. Use googleapi.IsNotModified to check whether the response
51513// error from Do is the result of In-None-Match.
51514func (c *InterconnectLocationsGetCall) IfNoneMatch(entityTag string) *InterconnectLocationsGetCall {
51515	c.ifNoneMatch_ = entityTag
51516	return c
51517}
51518
51519// Context sets the context to be used in this call's Do method. Any
51520// pending HTTP request will be aborted if the provided context is
51521// canceled.
51522func (c *InterconnectLocationsGetCall) Context(ctx context.Context) *InterconnectLocationsGetCall {
51523	c.ctx_ = ctx
51524	return c
51525}
51526
51527// Header returns an http.Header that can be modified by the caller to
51528// add HTTP headers to the request.
51529func (c *InterconnectLocationsGetCall) Header() http.Header {
51530	if c.header_ == nil {
51531		c.header_ = make(http.Header)
51532	}
51533	return c.header_
51534}
51535
51536func (c *InterconnectLocationsGetCall) doRequest(alt string) (*http.Response, error) {
51537	reqHeaders := make(http.Header)
51538	for k, v := range c.header_ {
51539		reqHeaders[k] = v
51540	}
51541	reqHeaders.Set("User-Agent", c.s.userAgent())
51542	if c.ifNoneMatch_ != "" {
51543		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51544	}
51545	var body io.Reader = nil
51546	c.urlParams_.Set("alt", alt)
51547	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations/{interconnectLocation}")
51548	urls += "?" + c.urlParams_.Encode()
51549	req, _ := http.NewRequest("GET", urls, body)
51550	req.Header = reqHeaders
51551	googleapi.Expand(req.URL, map[string]string{
51552		"project":              c.project,
51553		"interconnectLocation": c.interconnectLocation,
51554	})
51555	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51556}
51557
51558// Do executes the "compute.interconnectLocations.get" call.
51559// Exactly one of *InterconnectLocation or error will be non-nil. Any
51560// non-2xx status code is an error. Response headers are in either
51561// *InterconnectLocation.ServerResponse.Header or (if a response was
51562// returned at all) in error.(*googleapi.Error).Header. Use
51563// googleapi.IsNotModified to check whether the returned error was
51564// because http.StatusNotModified was returned.
51565func (c *InterconnectLocationsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectLocation, error) {
51566	gensupport.SetOptions(c.urlParams_, opts...)
51567	res, err := c.doRequest("json")
51568	if res != nil && res.StatusCode == http.StatusNotModified {
51569		if res.Body != nil {
51570			res.Body.Close()
51571		}
51572		return nil, &googleapi.Error{
51573			Code:   res.StatusCode,
51574			Header: res.Header,
51575		}
51576	}
51577	if err != nil {
51578		return nil, err
51579	}
51580	defer googleapi.CloseBody(res)
51581	if err := googleapi.CheckResponse(res); err != nil {
51582		return nil, err
51583	}
51584	ret := &InterconnectLocation{
51585		ServerResponse: googleapi.ServerResponse{
51586			Header:         res.Header,
51587			HTTPStatusCode: res.StatusCode,
51588		},
51589	}
51590	target := &ret
51591	if err := gensupport.DecodeResponse(target, res); err != nil {
51592		return nil, err
51593	}
51594	return ret, nil
51595	// {
51596	//   "description": "Returns the details for the specified interconnect location. Get a list of available interconnect locations by making a list() request.",
51597	//   "httpMethod": "GET",
51598	//   "id": "compute.interconnectLocations.get",
51599	//   "parameterOrder": [
51600	//     "project",
51601	//     "interconnectLocation"
51602	//   ],
51603	//   "parameters": {
51604	//     "interconnectLocation": {
51605	//       "description": "Name of the interconnect location to return.",
51606	//       "location": "path",
51607	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51608	//       "required": true,
51609	//       "type": "string"
51610	//     },
51611	//     "project": {
51612	//       "description": "Project ID for this request.",
51613	//       "location": "path",
51614	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51615	//       "required": true,
51616	//       "type": "string"
51617	//     }
51618	//   },
51619	//   "path": "{project}/global/interconnectLocations/{interconnectLocation}",
51620	//   "response": {
51621	//     "$ref": "InterconnectLocation"
51622	//   },
51623	//   "scopes": [
51624	//     "https://www.googleapis.com/auth/cloud-platform",
51625	//     "https://www.googleapis.com/auth/compute",
51626	//     "https://www.googleapis.com/auth/compute.readonly"
51627	//   ]
51628	// }
51629
51630}
51631
51632// method id "compute.interconnectLocations.list":
51633
51634type InterconnectLocationsListCall struct {
51635	s            *Service
51636	project      string
51637	urlParams_   gensupport.URLParams
51638	ifNoneMatch_ string
51639	ctx_         context.Context
51640	header_      http.Header
51641}
51642
51643// List: Retrieves the list of interconnect locations available to the
51644// specified project.
51645func (r *InterconnectLocationsService) List(project string) *InterconnectLocationsListCall {
51646	c := &InterconnectLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51647	c.project = project
51648	return c
51649}
51650
51651// Filter sets the optional parameter "filter": Sets a filter
51652// {expression} for filtering listed resources. Your {expression} must
51653// be in the format: field_name comparison_string literal_string.
51654//
51655// The field_name is the name of the field you want to compare. Only
51656// atomic field types are supported (string, number, boolean). The
51657// comparison_string must be either eq (equals) or ne (not equals). The
51658// literal_string is the string value to filter to. The literal value
51659// must be valid for the type of field you are filtering by (string,
51660// number, boolean). For string fields, the literal value is interpreted
51661// as a regular expression using RE2 syntax. The literal value must
51662// match the entire field.
51663//
51664// For example, to filter for instances that do not have a name of
51665// example-instance, you would use name ne example-instance.
51666//
51667// You can filter on nested fields. For example, you could filter on
51668// instances that have set the scheduling.automaticRestart field to
51669// true. Use filtering on nested fields to take advantage of labels to
51670// organize and search for results based on label values.
51671//
51672// To filter on multiple expressions, provide each separate expression
51673// within parentheses. For example, (scheduling.automaticRestart eq
51674// true) (zone eq us-central1-f). Multiple expressions are treated as
51675// AND expressions, meaning that resources must match all expressions to
51676// pass the filters.
51677func (c *InterconnectLocationsListCall) Filter(filter string) *InterconnectLocationsListCall {
51678	c.urlParams_.Set("filter", filter)
51679	return c
51680}
51681
51682// MaxResults sets the optional parameter "maxResults": The maximum
51683// number of results per page that should be returned. If the number of
51684// available results is larger than maxResults, Compute Engine returns a
51685// nextPageToken that can be used to get the next page of results in
51686// subsequent list requests. Acceptable values are 0 to 500, inclusive.
51687// (Default: 500)
51688func (c *InterconnectLocationsListCall) MaxResults(maxResults int64) *InterconnectLocationsListCall {
51689	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
51690	return c
51691}
51692
51693// OrderBy sets the optional parameter "orderBy": Sorts list results by
51694// a certain order. By default, results are returned in alphanumerical
51695// order based on the resource name.
51696//
51697// You can also sort results in descending order based on the creation
51698// timestamp using orderBy="creationTimestamp desc". This sorts results
51699// based on the creationTimestamp field in reverse chronological order
51700// (newest result first). Use this to sort resources like operations so
51701// that the newest operation is returned first.
51702//
51703// Currently, only sorting by name or creationTimestamp desc is
51704// supported.
51705func (c *InterconnectLocationsListCall) OrderBy(orderBy string) *InterconnectLocationsListCall {
51706	c.urlParams_.Set("orderBy", orderBy)
51707	return c
51708}
51709
51710// PageToken sets the optional parameter "pageToken": Specifies a page
51711// token to use. Set pageToken to the nextPageToken returned by a
51712// previous list request to get the next page of results.
51713func (c *InterconnectLocationsListCall) PageToken(pageToken string) *InterconnectLocationsListCall {
51714	c.urlParams_.Set("pageToken", pageToken)
51715	return c
51716}
51717
51718// Fields allows partial responses to be retrieved. See
51719// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51720// for more information.
51721func (c *InterconnectLocationsListCall) Fields(s ...googleapi.Field) *InterconnectLocationsListCall {
51722	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51723	return c
51724}
51725
51726// IfNoneMatch sets the optional parameter which makes the operation
51727// fail if the object's ETag matches the given value. This is useful for
51728// getting updates only after the object has changed since the last
51729// request. Use googleapi.IsNotModified to check whether the response
51730// error from Do is the result of In-None-Match.
51731func (c *InterconnectLocationsListCall) IfNoneMatch(entityTag string) *InterconnectLocationsListCall {
51732	c.ifNoneMatch_ = entityTag
51733	return c
51734}
51735
51736// Context sets the context to be used in this call's Do method. Any
51737// pending HTTP request will be aborted if the provided context is
51738// canceled.
51739func (c *InterconnectLocationsListCall) Context(ctx context.Context) *InterconnectLocationsListCall {
51740	c.ctx_ = ctx
51741	return c
51742}
51743
51744// Header returns an http.Header that can be modified by the caller to
51745// add HTTP headers to the request.
51746func (c *InterconnectLocationsListCall) Header() http.Header {
51747	if c.header_ == nil {
51748		c.header_ = make(http.Header)
51749	}
51750	return c.header_
51751}
51752
51753func (c *InterconnectLocationsListCall) doRequest(alt string) (*http.Response, error) {
51754	reqHeaders := make(http.Header)
51755	for k, v := range c.header_ {
51756		reqHeaders[k] = v
51757	}
51758	reqHeaders.Set("User-Agent", c.s.userAgent())
51759	if c.ifNoneMatch_ != "" {
51760		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51761	}
51762	var body io.Reader = nil
51763	c.urlParams_.Set("alt", alt)
51764	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations")
51765	urls += "?" + c.urlParams_.Encode()
51766	req, _ := http.NewRequest("GET", urls, body)
51767	req.Header = reqHeaders
51768	googleapi.Expand(req.URL, map[string]string{
51769		"project": c.project,
51770	})
51771	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51772}
51773
51774// Do executes the "compute.interconnectLocations.list" call.
51775// Exactly one of *InterconnectLocationList or error will be non-nil.
51776// Any non-2xx status code is an error. Response headers are in either
51777// *InterconnectLocationList.ServerResponse.Header or (if a response was
51778// returned at all) in error.(*googleapi.Error).Header. Use
51779// googleapi.IsNotModified to check whether the returned error was
51780// because http.StatusNotModified was returned.
51781func (c *InterconnectLocationsListCall) Do(opts ...googleapi.CallOption) (*InterconnectLocationList, error) {
51782	gensupport.SetOptions(c.urlParams_, opts...)
51783	res, err := c.doRequest("json")
51784	if res != nil && res.StatusCode == http.StatusNotModified {
51785		if res.Body != nil {
51786			res.Body.Close()
51787		}
51788		return nil, &googleapi.Error{
51789			Code:   res.StatusCode,
51790			Header: res.Header,
51791		}
51792	}
51793	if err != nil {
51794		return nil, err
51795	}
51796	defer googleapi.CloseBody(res)
51797	if err := googleapi.CheckResponse(res); err != nil {
51798		return nil, err
51799	}
51800	ret := &InterconnectLocationList{
51801		ServerResponse: googleapi.ServerResponse{
51802			Header:         res.Header,
51803			HTTPStatusCode: res.StatusCode,
51804		},
51805	}
51806	target := &ret
51807	if err := gensupport.DecodeResponse(target, res); err != nil {
51808		return nil, err
51809	}
51810	return ret, nil
51811	// {
51812	//   "description": "Retrieves the list of interconnect locations available to the specified project.",
51813	//   "httpMethod": "GET",
51814	//   "id": "compute.interconnectLocations.list",
51815	//   "parameterOrder": [
51816	//     "project"
51817	//   ],
51818	//   "parameters": {
51819	//     "filter": {
51820	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
51821	//       "location": "query",
51822	//       "type": "string"
51823	//     },
51824	//     "maxResults": {
51825	//       "default": "500",
51826	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
51827	//       "format": "uint32",
51828	//       "location": "query",
51829	//       "minimum": "0",
51830	//       "type": "integer"
51831	//     },
51832	//     "orderBy": {
51833	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
51834	//       "location": "query",
51835	//       "type": "string"
51836	//     },
51837	//     "pageToken": {
51838	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
51839	//       "location": "query",
51840	//       "type": "string"
51841	//     },
51842	//     "project": {
51843	//       "description": "Project ID for this request.",
51844	//       "location": "path",
51845	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51846	//       "required": true,
51847	//       "type": "string"
51848	//     }
51849	//   },
51850	//   "path": "{project}/global/interconnectLocations",
51851	//   "response": {
51852	//     "$ref": "InterconnectLocationList"
51853	//   },
51854	//   "scopes": [
51855	//     "https://www.googleapis.com/auth/cloud-platform",
51856	//     "https://www.googleapis.com/auth/compute",
51857	//     "https://www.googleapis.com/auth/compute.readonly"
51858	//   ]
51859	// }
51860
51861}
51862
51863// Pages invokes f for each page of results.
51864// A non-nil error returned from f will halt the iteration.
51865// The provided context supersedes any context provided to the Context method.
51866func (c *InterconnectLocationsListCall) Pages(ctx context.Context, f func(*InterconnectLocationList) error) error {
51867	c.ctx_ = ctx
51868	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
51869	for {
51870		x, err := c.Do()
51871		if err != nil {
51872			return err
51873		}
51874		if err := f(x); err != nil {
51875			return err
51876		}
51877		if x.NextPageToken == "" {
51878			return nil
51879		}
51880		c.PageToken(x.NextPageToken)
51881	}
51882}
51883
51884// method id "compute.interconnects.delete":
51885
51886type InterconnectsDeleteCall struct {
51887	s            *Service
51888	project      string
51889	interconnect string
51890	urlParams_   gensupport.URLParams
51891	ctx_         context.Context
51892	header_      http.Header
51893}
51894
51895// Delete: Deletes the specified interconnect.
51896func (r *InterconnectsService) Delete(project string, interconnect string) *InterconnectsDeleteCall {
51897	c := &InterconnectsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51898	c.project = project
51899	c.interconnect = interconnect
51900	return c
51901}
51902
51903// RequestId sets the optional parameter "requestId": An optional
51904// request ID to identify requests. Specify a unique request ID so that
51905// if you must retry your request, the server will know to ignore the
51906// request if it has already been completed.
51907//
51908// For example, consider a situation where you make an initial request
51909// and the request times out. If you make the request again with the
51910// same request ID, the server can check if original operation with the
51911// same request ID was received, and if so, will ignore the second
51912// request. This prevents clients from accidentally creating duplicate
51913// commitments.
51914//
51915// The request ID must be a valid UUID with the exception that zero UUID
51916// is not supported (00000000-0000-0000-0000-000000000000).
51917func (c *InterconnectsDeleteCall) RequestId(requestId string) *InterconnectsDeleteCall {
51918	c.urlParams_.Set("requestId", requestId)
51919	return c
51920}
51921
51922// Fields allows partial responses to be retrieved. See
51923// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51924// for more information.
51925func (c *InterconnectsDeleteCall) Fields(s ...googleapi.Field) *InterconnectsDeleteCall {
51926	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51927	return c
51928}
51929
51930// Context sets the context to be used in this call's Do method. Any
51931// pending HTTP request will be aborted if the provided context is
51932// canceled.
51933func (c *InterconnectsDeleteCall) Context(ctx context.Context) *InterconnectsDeleteCall {
51934	c.ctx_ = ctx
51935	return c
51936}
51937
51938// Header returns an http.Header that can be modified by the caller to
51939// add HTTP headers to the request.
51940func (c *InterconnectsDeleteCall) Header() http.Header {
51941	if c.header_ == nil {
51942		c.header_ = make(http.Header)
51943	}
51944	return c.header_
51945}
51946
51947func (c *InterconnectsDeleteCall) doRequest(alt string) (*http.Response, error) {
51948	reqHeaders := make(http.Header)
51949	for k, v := range c.header_ {
51950		reqHeaders[k] = v
51951	}
51952	reqHeaders.Set("User-Agent", c.s.userAgent())
51953	var body io.Reader = nil
51954	c.urlParams_.Set("alt", alt)
51955	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
51956	urls += "?" + c.urlParams_.Encode()
51957	req, _ := http.NewRequest("DELETE", urls, body)
51958	req.Header = reqHeaders
51959	googleapi.Expand(req.URL, map[string]string{
51960		"project":      c.project,
51961		"interconnect": c.interconnect,
51962	})
51963	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51964}
51965
51966// Do executes the "compute.interconnects.delete" call.
51967// Exactly one of *Operation or error will be non-nil. Any non-2xx
51968// status code is an error. Response headers are in either
51969// *Operation.ServerResponse.Header or (if a response was returned at
51970// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51971// to check whether the returned error was because
51972// http.StatusNotModified was returned.
51973func (c *InterconnectsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51974	gensupport.SetOptions(c.urlParams_, opts...)
51975	res, err := c.doRequest("json")
51976	if res != nil && res.StatusCode == http.StatusNotModified {
51977		if res.Body != nil {
51978			res.Body.Close()
51979		}
51980		return nil, &googleapi.Error{
51981			Code:   res.StatusCode,
51982			Header: res.Header,
51983		}
51984	}
51985	if err != nil {
51986		return nil, err
51987	}
51988	defer googleapi.CloseBody(res)
51989	if err := googleapi.CheckResponse(res); err != nil {
51990		return nil, err
51991	}
51992	ret := &Operation{
51993		ServerResponse: googleapi.ServerResponse{
51994			Header:         res.Header,
51995			HTTPStatusCode: res.StatusCode,
51996		},
51997	}
51998	target := &ret
51999	if err := gensupport.DecodeResponse(target, res); err != nil {
52000		return nil, err
52001	}
52002	return ret, nil
52003	// {
52004	//   "description": "Deletes the specified interconnect.",
52005	//   "httpMethod": "DELETE",
52006	//   "id": "compute.interconnects.delete",
52007	//   "parameterOrder": [
52008	//     "project",
52009	//     "interconnect"
52010	//   ],
52011	//   "parameters": {
52012	//     "interconnect": {
52013	//       "description": "Name of the interconnect to delete.",
52014	//       "location": "path",
52015	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52016	//       "required": true,
52017	//       "type": "string"
52018	//     },
52019	//     "project": {
52020	//       "description": "Project ID for this request.",
52021	//       "location": "path",
52022	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52023	//       "required": true,
52024	//       "type": "string"
52025	//     },
52026	//     "requestId": {
52027	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52028	//       "location": "query",
52029	//       "type": "string"
52030	//     }
52031	//   },
52032	//   "path": "{project}/global/interconnects/{interconnect}",
52033	//   "response": {
52034	//     "$ref": "Operation"
52035	//   },
52036	//   "scopes": [
52037	//     "https://www.googleapis.com/auth/cloud-platform",
52038	//     "https://www.googleapis.com/auth/compute"
52039	//   ]
52040	// }
52041
52042}
52043
52044// method id "compute.interconnects.get":
52045
52046type InterconnectsGetCall struct {
52047	s            *Service
52048	project      string
52049	interconnect string
52050	urlParams_   gensupport.URLParams
52051	ifNoneMatch_ string
52052	ctx_         context.Context
52053	header_      http.Header
52054}
52055
52056// Get: Returns the specified interconnect. Get a list of available
52057// interconnects by making a list() request.
52058func (r *InterconnectsService) Get(project string, interconnect string) *InterconnectsGetCall {
52059	c := &InterconnectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52060	c.project = project
52061	c.interconnect = interconnect
52062	return c
52063}
52064
52065// Fields allows partial responses to be retrieved. See
52066// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52067// for more information.
52068func (c *InterconnectsGetCall) Fields(s ...googleapi.Field) *InterconnectsGetCall {
52069	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52070	return c
52071}
52072
52073// IfNoneMatch sets the optional parameter which makes the operation
52074// fail if the object's ETag matches the given value. This is useful for
52075// getting updates only after the object has changed since the last
52076// request. Use googleapi.IsNotModified to check whether the response
52077// error from Do is the result of In-None-Match.
52078func (c *InterconnectsGetCall) IfNoneMatch(entityTag string) *InterconnectsGetCall {
52079	c.ifNoneMatch_ = entityTag
52080	return c
52081}
52082
52083// Context sets the context to be used in this call's Do method. Any
52084// pending HTTP request will be aborted if the provided context is
52085// canceled.
52086func (c *InterconnectsGetCall) Context(ctx context.Context) *InterconnectsGetCall {
52087	c.ctx_ = ctx
52088	return c
52089}
52090
52091// Header returns an http.Header that can be modified by the caller to
52092// add HTTP headers to the request.
52093func (c *InterconnectsGetCall) Header() http.Header {
52094	if c.header_ == nil {
52095		c.header_ = make(http.Header)
52096	}
52097	return c.header_
52098}
52099
52100func (c *InterconnectsGetCall) doRequest(alt string) (*http.Response, error) {
52101	reqHeaders := make(http.Header)
52102	for k, v := range c.header_ {
52103		reqHeaders[k] = v
52104	}
52105	reqHeaders.Set("User-Agent", c.s.userAgent())
52106	if c.ifNoneMatch_ != "" {
52107		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52108	}
52109	var body io.Reader = nil
52110	c.urlParams_.Set("alt", alt)
52111	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
52112	urls += "?" + c.urlParams_.Encode()
52113	req, _ := http.NewRequest("GET", urls, body)
52114	req.Header = reqHeaders
52115	googleapi.Expand(req.URL, map[string]string{
52116		"project":      c.project,
52117		"interconnect": c.interconnect,
52118	})
52119	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52120}
52121
52122// Do executes the "compute.interconnects.get" call.
52123// Exactly one of *Interconnect or error will be non-nil. Any non-2xx
52124// status code is an error. Response headers are in either
52125// *Interconnect.ServerResponse.Header or (if a response was returned at
52126// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52127// to check whether the returned error was because
52128// http.StatusNotModified was returned.
52129func (c *InterconnectsGetCall) Do(opts ...googleapi.CallOption) (*Interconnect, error) {
52130	gensupport.SetOptions(c.urlParams_, opts...)
52131	res, err := c.doRequest("json")
52132	if res != nil && res.StatusCode == http.StatusNotModified {
52133		if res.Body != nil {
52134			res.Body.Close()
52135		}
52136		return nil, &googleapi.Error{
52137			Code:   res.StatusCode,
52138			Header: res.Header,
52139		}
52140	}
52141	if err != nil {
52142		return nil, err
52143	}
52144	defer googleapi.CloseBody(res)
52145	if err := googleapi.CheckResponse(res); err != nil {
52146		return nil, err
52147	}
52148	ret := &Interconnect{
52149		ServerResponse: googleapi.ServerResponse{
52150			Header:         res.Header,
52151			HTTPStatusCode: res.StatusCode,
52152		},
52153	}
52154	target := &ret
52155	if err := gensupport.DecodeResponse(target, res); err != nil {
52156		return nil, err
52157	}
52158	return ret, nil
52159	// {
52160	//   "description": "Returns the specified interconnect. Get a list of available interconnects by making a list() request.",
52161	//   "httpMethod": "GET",
52162	//   "id": "compute.interconnects.get",
52163	//   "parameterOrder": [
52164	//     "project",
52165	//     "interconnect"
52166	//   ],
52167	//   "parameters": {
52168	//     "interconnect": {
52169	//       "description": "Name of the interconnect to return.",
52170	//       "location": "path",
52171	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52172	//       "required": true,
52173	//       "type": "string"
52174	//     },
52175	//     "project": {
52176	//       "description": "Project ID for this request.",
52177	//       "location": "path",
52178	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52179	//       "required": true,
52180	//       "type": "string"
52181	//     }
52182	//   },
52183	//   "path": "{project}/global/interconnects/{interconnect}",
52184	//   "response": {
52185	//     "$ref": "Interconnect"
52186	//   },
52187	//   "scopes": [
52188	//     "https://www.googleapis.com/auth/cloud-platform",
52189	//     "https://www.googleapis.com/auth/compute",
52190	//     "https://www.googleapis.com/auth/compute.readonly"
52191	//   ]
52192	// }
52193
52194}
52195
52196// method id "compute.interconnects.insert":
52197
52198type InterconnectsInsertCall struct {
52199	s            *Service
52200	project      string
52201	interconnect *Interconnect
52202	urlParams_   gensupport.URLParams
52203	ctx_         context.Context
52204	header_      http.Header
52205}
52206
52207// Insert: Creates a Interconnect in the specified project using the
52208// data included in the request.
52209func (r *InterconnectsService) Insert(project string, interconnect *Interconnect) *InterconnectsInsertCall {
52210	c := &InterconnectsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52211	c.project = project
52212	c.interconnect = interconnect
52213	return c
52214}
52215
52216// RequestId sets the optional parameter "requestId": An optional
52217// request ID to identify requests. Specify a unique request ID so that
52218// if you must retry your request, the server will know to ignore the
52219// request if it has already been completed.
52220//
52221// For example, consider a situation where you make an initial request
52222// and the request times out. If you make the request again with the
52223// same request ID, the server can check if original operation with the
52224// same request ID was received, and if so, will ignore the second
52225// request. This prevents clients from accidentally creating duplicate
52226// commitments.
52227//
52228// The request ID must be a valid UUID with the exception that zero UUID
52229// is not supported (00000000-0000-0000-0000-000000000000).
52230func (c *InterconnectsInsertCall) RequestId(requestId string) *InterconnectsInsertCall {
52231	c.urlParams_.Set("requestId", requestId)
52232	return c
52233}
52234
52235// Fields allows partial responses to be retrieved. See
52236// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52237// for more information.
52238func (c *InterconnectsInsertCall) Fields(s ...googleapi.Field) *InterconnectsInsertCall {
52239	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52240	return c
52241}
52242
52243// Context sets the context to be used in this call's Do method. Any
52244// pending HTTP request will be aborted if the provided context is
52245// canceled.
52246func (c *InterconnectsInsertCall) Context(ctx context.Context) *InterconnectsInsertCall {
52247	c.ctx_ = ctx
52248	return c
52249}
52250
52251// Header returns an http.Header that can be modified by the caller to
52252// add HTTP headers to the request.
52253func (c *InterconnectsInsertCall) Header() http.Header {
52254	if c.header_ == nil {
52255		c.header_ = make(http.Header)
52256	}
52257	return c.header_
52258}
52259
52260func (c *InterconnectsInsertCall) doRequest(alt string) (*http.Response, error) {
52261	reqHeaders := make(http.Header)
52262	for k, v := range c.header_ {
52263		reqHeaders[k] = v
52264	}
52265	reqHeaders.Set("User-Agent", c.s.userAgent())
52266	var body io.Reader = nil
52267	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect)
52268	if err != nil {
52269		return nil, err
52270	}
52271	reqHeaders.Set("Content-Type", "application/json")
52272	c.urlParams_.Set("alt", alt)
52273	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects")
52274	urls += "?" + c.urlParams_.Encode()
52275	req, _ := http.NewRequest("POST", urls, body)
52276	req.Header = reqHeaders
52277	googleapi.Expand(req.URL, map[string]string{
52278		"project": c.project,
52279	})
52280	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52281}
52282
52283// Do executes the "compute.interconnects.insert" call.
52284// Exactly one of *Operation or error will be non-nil. Any non-2xx
52285// status code is an error. Response headers are in either
52286// *Operation.ServerResponse.Header or (if a response was returned at
52287// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52288// to check whether the returned error was because
52289// http.StatusNotModified was returned.
52290func (c *InterconnectsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52291	gensupport.SetOptions(c.urlParams_, opts...)
52292	res, err := c.doRequest("json")
52293	if res != nil && res.StatusCode == http.StatusNotModified {
52294		if res.Body != nil {
52295			res.Body.Close()
52296		}
52297		return nil, &googleapi.Error{
52298			Code:   res.StatusCode,
52299			Header: res.Header,
52300		}
52301	}
52302	if err != nil {
52303		return nil, err
52304	}
52305	defer googleapi.CloseBody(res)
52306	if err := googleapi.CheckResponse(res); err != nil {
52307		return nil, err
52308	}
52309	ret := &Operation{
52310		ServerResponse: googleapi.ServerResponse{
52311			Header:         res.Header,
52312			HTTPStatusCode: res.StatusCode,
52313		},
52314	}
52315	target := &ret
52316	if err := gensupport.DecodeResponse(target, res); err != nil {
52317		return nil, err
52318	}
52319	return ret, nil
52320	// {
52321	//   "description": "Creates a Interconnect in the specified project using the data included in the request.",
52322	//   "httpMethod": "POST",
52323	//   "id": "compute.interconnects.insert",
52324	//   "parameterOrder": [
52325	//     "project"
52326	//   ],
52327	//   "parameters": {
52328	//     "project": {
52329	//       "description": "Project ID for this request.",
52330	//       "location": "path",
52331	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52332	//       "required": true,
52333	//       "type": "string"
52334	//     },
52335	//     "requestId": {
52336	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52337	//       "location": "query",
52338	//       "type": "string"
52339	//     }
52340	//   },
52341	//   "path": "{project}/global/interconnects",
52342	//   "request": {
52343	//     "$ref": "Interconnect"
52344	//   },
52345	//   "response": {
52346	//     "$ref": "Operation"
52347	//   },
52348	//   "scopes": [
52349	//     "https://www.googleapis.com/auth/cloud-platform",
52350	//     "https://www.googleapis.com/auth/compute"
52351	//   ]
52352	// }
52353
52354}
52355
52356// method id "compute.interconnects.list":
52357
52358type InterconnectsListCall struct {
52359	s            *Service
52360	project      string
52361	urlParams_   gensupport.URLParams
52362	ifNoneMatch_ string
52363	ctx_         context.Context
52364	header_      http.Header
52365}
52366
52367// List: Retrieves the list of interconnect available to the specified
52368// project.
52369func (r *InterconnectsService) List(project string) *InterconnectsListCall {
52370	c := &InterconnectsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52371	c.project = project
52372	return c
52373}
52374
52375// Filter sets the optional parameter "filter": Sets a filter
52376// {expression} for filtering listed resources. Your {expression} must
52377// be in the format: field_name comparison_string literal_string.
52378//
52379// The field_name is the name of the field you want to compare. Only
52380// atomic field types are supported (string, number, boolean). The
52381// comparison_string must be either eq (equals) or ne (not equals). The
52382// literal_string is the string value to filter to. The literal value
52383// must be valid for the type of field you are filtering by (string,
52384// number, boolean). For string fields, the literal value is interpreted
52385// as a regular expression using RE2 syntax. The literal value must
52386// match the entire field.
52387//
52388// For example, to filter for instances that do not have a name of
52389// example-instance, you would use name ne example-instance.
52390//
52391// You can filter on nested fields. For example, you could filter on
52392// instances that have set the scheduling.automaticRestart field to
52393// true. Use filtering on nested fields to take advantage of labels to
52394// organize and search for results based on label values.
52395//
52396// To filter on multiple expressions, provide each separate expression
52397// within parentheses. For example, (scheduling.automaticRestart eq
52398// true) (zone eq us-central1-f). Multiple expressions are treated as
52399// AND expressions, meaning that resources must match all expressions to
52400// pass the filters.
52401func (c *InterconnectsListCall) Filter(filter string) *InterconnectsListCall {
52402	c.urlParams_.Set("filter", filter)
52403	return c
52404}
52405
52406// MaxResults sets the optional parameter "maxResults": The maximum
52407// number of results per page that should be returned. If the number of
52408// available results is larger than maxResults, Compute Engine returns a
52409// nextPageToken that can be used to get the next page of results in
52410// subsequent list requests. Acceptable values are 0 to 500, inclusive.
52411// (Default: 500)
52412func (c *InterconnectsListCall) MaxResults(maxResults int64) *InterconnectsListCall {
52413	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
52414	return c
52415}
52416
52417// OrderBy sets the optional parameter "orderBy": Sorts list results by
52418// a certain order. By default, results are returned in alphanumerical
52419// order based on the resource name.
52420//
52421// You can also sort results in descending order based on the creation
52422// timestamp using orderBy="creationTimestamp desc". This sorts results
52423// based on the creationTimestamp field in reverse chronological order
52424// (newest result first). Use this to sort resources like operations so
52425// that the newest operation is returned first.
52426//
52427// Currently, only sorting by name or creationTimestamp desc is
52428// supported.
52429func (c *InterconnectsListCall) OrderBy(orderBy string) *InterconnectsListCall {
52430	c.urlParams_.Set("orderBy", orderBy)
52431	return c
52432}
52433
52434// PageToken sets the optional parameter "pageToken": Specifies a page
52435// token to use. Set pageToken to the nextPageToken returned by a
52436// previous list request to get the next page of results.
52437func (c *InterconnectsListCall) PageToken(pageToken string) *InterconnectsListCall {
52438	c.urlParams_.Set("pageToken", pageToken)
52439	return c
52440}
52441
52442// Fields allows partial responses to be retrieved. See
52443// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52444// for more information.
52445func (c *InterconnectsListCall) Fields(s ...googleapi.Field) *InterconnectsListCall {
52446	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52447	return c
52448}
52449
52450// IfNoneMatch sets the optional parameter which makes the operation
52451// fail if the object's ETag matches the given value. This is useful for
52452// getting updates only after the object has changed since the last
52453// request. Use googleapi.IsNotModified to check whether the response
52454// error from Do is the result of In-None-Match.
52455func (c *InterconnectsListCall) IfNoneMatch(entityTag string) *InterconnectsListCall {
52456	c.ifNoneMatch_ = entityTag
52457	return c
52458}
52459
52460// Context sets the context to be used in this call's Do method. Any
52461// pending HTTP request will be aborted if the provided context is
52462// canceled.
52463func (c *InterconnectsListCall) Context(ctx context.Context) *InterconnectsListCall {
52464	c.ctx_ = ctx
52465	return c
52466}
52467
52468// Header returns an http.Header that can be modified by the caller to
52469// add HTTP headers to the request.
52470func (c *InterconnectsListCall) Header() http.Header {
52471	if c.header_ == nil {
52472		c.header_ = make(http.Header)
52473	}
52474	return c.header_
52475}
52476
52477func (c *InterconnectsListCall) doRequest(alt string) (*http.Response, error) {
52478	reqHeaders := make(http.Header)
52479	for k, v := range c.header_ {
52480		reqHeaders[k] = v
52481	}
52482	reqHeaders.Set("User-Agent", c.s.userAgent())
52483	if c.ifNoneMatch_ != "" {
52484		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52485	}
52486	var body io.Reader = nil
52487	c.urlParams_.Set("alt", alt)
52488	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects")
52489	urls += "?" + c.urlParams_.Encode()
52490	req, _ := http.NewRequest("GET", urls, body)
52491	req.Header = reqHeaders
52492	googleapi.Expand(req.URL, map[string]string{
52493		"project": c.project,
52494	})
52495	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52496}
52497
52498// Do executes the "compute.interconnects.list" call.
52499// Exactly one of *InterconnectList or error will be non-nil. Any
52500// non-2xx status code is an error. Response headers are in either
52501// *InterconnectList.ServerResponse.Header or (if a response was
52502// returned at all) in error.(*googleapi.Error).Header. Use
52503// googleapi.IsNotModified to check whether the returned error was
52504// because http.StatusNotModified was returned.
52505func (c *InterconnectsListCall) Do(opts ...googleapi.CallOption) (*InterconnectList, error) {
52506	gensupport.SetOptions(c.urlParams_, opts...)
52507	res, err := c.doRequest("json")
52508	if res != nil && res.StatusCode == http.StatusNotModified {
52509		if res.Body != nil {
52510			res.Body.Close()
52511		}
52512		return nil, &googleapi.Error{
52513			Code:   res.StatusCode,
52514			Header: res.Header,
52515		}
52516	}
52517	if err != nil {
52518		return nil, err
52519	}
52520	defer googleapi.CloseBody(res)
52521	if err := googleapi.CheckResponse(res); err != nil {
52522		return nil, err
52523	}
52524	ret := &InterconnectList{
52525		ServerResponse: googleapi.ServerResponse{
52526			Header:         res.Header,
52527			HTTPStatusCode: res.StatusCode,
52528		},
52529	}
52530	target := &ret
52531	if err := gensupport.DecodeResponse(target, res); err != nil {
52532		return nil, err
52533	}
52534	return ret, nil
52535	// {
52536	//   "description": "Retrieves the list of interconnect available to the specified project.",
52537	//   "httpMethod": "GET",
52538	//   "id": "compute.interconnects.list",
52539	//   "parameterOrder": [
52540	//     "project"
52541	//   ],
52542	//   "parameters": {
52543	//     "filter": {
52544	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
52545	//       "location": "query",
52546	//       "type": "string"
52547	//     },
52548	//     "maxResults": {
52549	//       "default": "500",
52550	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
52551	//       "format": "uint32",
52552	//       "location": "query",
52553	//       "minimum": "0",
52554	//       "type": "integer"
52555	//     },
52556	//     "orderBy": {
52557	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
52558	//       "location": "query",
52559	//       "type": "string"
52560	//     },
52561	//     "pageToken": {
52562	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
52563	//       "location": "query",
52564	//       "type": "string"
52565	//     },
52566	//     "project": {
52567	//       "description": "Project ID for this request.",
52568	//       "location": "path",
52569	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52570	//       "required": true,
52571	//       "type": "string"
52572	//     }
52573	//   },
52574	//   "path": "{project}/global/interconnects",
52575	//   "response": {
52576	//     "$ref": "InterconnectList"
52577	//   },
52578	//   "scopes": [
52579	//     "https://www.googleapis.com/auth/cloud-platform",
52580	//     "https://www.googleapis.com/auth/compute",
52581	//     "https://www.googleapis.com/auth/compute.readonly"
52582	//   ]
52583	// }
52584
52585}
52586
52587// Pages invokes f for each page of results.
52588// A non-nil error returned from f will halt the iteration.
52589// The provided context supersedes any context provided to the Context method.
52590func (c *InterconnectsListCall) Pages(ctx context.Context, f func(*InterconnectList) error) error {
52591	c.ctx_ = ctx
52592	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
52593	for {
52594		x, err := c.Do()
52595		if err != nil {
52596			return err
52597		}
52598		if err := f(x); err != nil {
52599			return err
52600		}
52601		if x.NextPageToken == "" {
52602			return nil
52603		}
52604		c.PageToken(x.NextPageToken)
52605	}
52606}
52607
52608// method id "compute.interconnects.patch":
52609
52610type InterconnectsPatchCall struct {
52611	s             *Service
52612	project       string
52613	interconnect  string
52614	interconnect2 *Interconnect
52615	urlParams_    gensupport.URLParams
52616	ctx_          context.Context
52617	header_       http.Header
52618}
52619
52620// Patch: Updates the specified interconnect with the data included in
52621// the request. This method supports PATCH semantics and uses the JSON
52622// merge patch format and processing rules.
52623func (r *InterconnectsService) Patch(project string, interconnect string, interconnect2 *Interconnect) *InterconnectsPatchCall {
52624	c := &InterconnectsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52625	c.project = project
52626	c.interconnect = interconnect
52627	c.interconnect2 = interconnect2
52628	return c
52629}
52630
52631// RequestId sets the optional parameter "requestId": An optional
52632// request ID to identify requests. Specify a unique request ID so that
52633// if you must retry your request, the server will know to ignore the
52634// request if it has already been completed.
52635//
52636// For example, consider a situation where you make an initial request
52637// and the request times out. If you make the request again with the
52638// same request ID, the server can check if original operation with the
52639// same request ID was received, and if so, will ignore the second
52640// request. This prevents clients from accidentally creating duplicate
52641// commitments.
52642//
52643// The request ID must be a valid UUID with the exception that zero UUID
52644// is not supported (00000000-0000-0000-0000-000000000000).
52645func (c *InterconnectsPatchCall) RequestId(requestId string) *InterconnectsPatchCall {
52646	c.urlParams_.Set("requestId", requestId)
52647	return c
52648}
52649
52650// Fields allows partial responses to be retrieved. See
52651// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52652// for more information.
52653func (c *InterconnectsPatchCall) Fields(s ...googleapi.Field) *InterconnectsPatchCall {
52654	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52655	return c
52656}
52657
52658// Context sets the context to be used in this call's Do method. Any
52659// pending HTTP request will be aborted if the provided context is
52660// canceled.
52661func (c *InterconnectsPatchCall) Context(ctx context.Context) *InterconnectsPatchCall {
52662	c.ctx_ = ctx
52663	return c
52664}
52665
52666// Header returns an http.Header that can be modified by the caller to
52667// add HTTP headers to the request.
52668func (c *InterconnectsPatchCall) Header() http.Header {
52669	if c.header_ == nil {
52670		c.header_ = make(http.Header)
52671	}
52672	return c.header_
52673}
52674
52675func (c *InterconnectsPatchCall) doRequest(alt string) (*http.Response, error) {
52676	reqHeaders := make(http.Header)
52677	for k, v := range c.header_ {
52678		reqHeaders[k] = v
52679	}
52680	reqHeaders.Set("User-Agent", c.s.userAgent())
52681	var body io.Reader = nil
52682	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect2)
52683	if err != nil {
52684		return nil, err
52685	}
52686	reqHeaders.Set("Content-Type", "application/json")
52687	c.urlParams_.Set("alt", alt)
52688	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
52689	urls += "?" + c.urlParams_.Encode()
52690	req, _ := http.NewRequest("PATCH", urls, body)
52691	req.Header = reqHeaders
52692	googleapi.Expand(req.URL, map[string]string{
52693		"project":      c.project,
52694		"interconnect": c.interconnect,
52695	})
52696	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52697}
52698
52699// Do executes the "compute.interconnects.patch" call.
52700// Exactly one of *Operation or error will be non-nil. Any non-2xx
52701// status code is an error. Response headers are in either
52702// *Operation.ServerResponse.Header or (if a response was returned at
52703// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52704// to check whether the returned error was because
52705// http.StatusNotModified was returned.
52706func (c *InterconnectsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52707	gensupport.SetOptions(c.urlParams_, opts...)
52708	res, err := c.doRequest("json")
52709	if res != nil && res.StatusCode == http.StatusNotModified {
52710		if res.Body != nil {
52711			res.Body.Close()
52712		}
52713		return nil, &googleapi.Error{
52714			Code:   res.StatusCode,
52715			Header: res.Header,
52716		}
52717	}
52718	if err != nil {
52719		return nil, err
52720	}
52721	defer googleapi.CloseBody(res)
52722	if err := googleapi.CheckResponse(res); err != nil {
52723		return nil, err
52724	}
52725	ret := &Operation{
52726		ServerResponse: googleapi.ServerResponse{
52727			Header:         res.Header,
52728			HTTPStatusCode: res.StatusCode,
52729		},
52730	}
52731	target := &ret
52732	if err := gensupport.DecodeResponse(target, res); err != nil {
52733		return nil, err
52734	}
52735	return ret, nil
52736	// {
52737	//   "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.",
52738	//   "httpMethod": "PATCH",
52739	//   "id": "compute.interconnects.patch",
52740	//   "parameterOrder": [
52741	//     "project",
52742	//     "interconnect"
52743	//   ],
52744	//   "parameters": {
52745	//     "interconnect": {
52746	//       "description": "Name of the interconnect to update.",
52747	//       "location": "path",
52748	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52749	//       "required": true,
52750	//       "type": "string"
52751	//     },
52752	//     "project": {
52753	//       "description": "Project ID for this request.",
52754	//       "location": "path",
52755	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52756	//       "required": true,
52757	//       "type": "string"
52758	//     },
52759	//     "requestId": {
52760	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52761	//       "location": "query",
52762	//       "type": "string"
52763	//     }
52764	//   },
52765	//   "path": "{project}/global/interconnects/{interconnect}",
52766	//   "request": {
52767	//     "$ref": "Interconnect"
52768	//   },
52769	//   "response": {
52770	//     "$ref": "Operation"
52771	//   },
52772	//   "scopes": [
52773	//     "https://www.googleapis.com/auth/cloud-platform",
52774	//     "https://www.googleapis.com/auth/compute"
52775	//   ]
52776	// }
52777
52778}
52779
52780// method id "compute.licenses.get":
52781
52782type LicensesGetCall struct {
52783	s            *Service
52784	project      string
52785	license      string
52786	urlParams_   gensupport.URLParams
52787	ifNoneMatch_ string
52788	ctx_         context.Context
52789	header_      http.Header
52790}
52791
52792// Get: Returns the specified License resource.
52793// For details, see https://cloud.google.com/compute/docs/reference/latest/licenses/get
52794func (r *LicensesService) Get(project string, license string) *LicensesGetCall {
52795	c := &LicensesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52796	c.project = project
52797	c.license = license
52798	return c
52799}
52800
52801// Fields allows partial responses to be retrieved. See
52802// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52803// for more information.
52804func (c *LicensesGetCall) Fields(s ...googleapi.Field) *LicensesGetCall {
52805	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52806	return c
52807}
52808
52809// IfNoneMatch sets the optional parameter which makes the operation
52810// fail if the object's ETag matches the given value. This is useful for
52811// getting updates only after the object has changed since the last
52812// request. Use googleapi.IsNotModified to check whether the response
52813// error from Do is the result of In-None-Match.
52814func (c *LicensesGetCall) IfNoneMatch(entityTag string) *LicensesGetCall {
52815	c.ifNoneMatch_ = entityTag
52816	return c
52817}
52818
52819// Context sets the context to be used in this call's Do method. Any
52820// pending HTTP request will be aborted if the provided context is
52821// canceled.
52822func (c *LicensesGetCall) Context(ctx context.Context) *LicensesGetCall {
52823	c.ctx_ = ctx
52824	return c
52825}
52826
52827// Header returns an http.Header that can be modified by the caller to
52828// add HTTP headers to the request.
52829func (c *LicensesGetCall) Header() http.Header {
52830	if c.header_ == nil {
52831		c.header_ = make(http.Header)
52832	}
52833	return c.header_
52834}
52835
52836func (c *LicensesGetCall) doRequest(alt string) (*http.Response, error) {
52837	reqHeaders := make(http.Header)
52838	for k, v := range c.header_ {
52839		reqHeaders[k] = v
52840	}
52841	reqHeaders.Set("User-Agent", c.s.userAgent())
52842	if c.ifNoneMatch_ != "" {
52843		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52844	}
52845	var body io.Reader = nil
52846	c.urlParams_.Set("alt", alt)
52847	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{license}")
52848	urls += "?" + c.urlParams_.Encode()
52849	req, _ := http.NewRequest("GET", urls, body)
52850	req.Header = reqHeaders
52851	googleapi.Expand(req.URL, map[string]string{
52852		"project": c.project,
52853		"license": c.license,
52854	})
52855	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52856}
52857
52858// Do executes the "compute.licenses.get" call.
52859// Exactly one of *License or error will be non-nil. Any non-2xx status
52860// code is an error. Response headers are in either
52861// *License.ServerResponse.Header or (if a response was returned at all)
52862// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
52863// check whether the returned error was because http.StatusNotModified
52864// was returned.
52865func (c *LicensesGetCall) Do(opts ...googleapi.CallOption) (*License, error) {
52866	gensupport.SetOptions(c.urlParams_, opts...)
52867	res, err := c.doRequest("json")
52868	if res != nil && res.StatusCode == http.StatusNotModified {
52869		if res.Body != nil {
52870			res.Body.Close()
52871		}
52872		return nil, &googleapi.Error{
52873			Code:   res.StatusCode,
52874			Header: res.Header,
52875		}
52876	}
52877	if err != nil {
52878		return nil, err
52879	}
52880	defer googleapi.CloseBody(res)
52881	if err := googleapi.CheckResponse(res); err != nil {
52882		return nil, err
52883	}
52884	ret := &License{
52885		ServerResponse: googleapi.ServerResponse{
52886			Header:         res.Header,
52887			HTTPStatusCode: res.StatusCode,
52888		},
52889	}
52890	target := &ret
52891	if err := gensupport.DecodeResponse(target, res); err != nil {
52892		return nil, err
52893	}
52894	return ret, nil
52895	// {
52896	//   "description": "Returns the specified License resource.",
52897	//   "httpMethod": "GET",
52898	//   "id": "compute.licenses.get",
52899	//   "parameterOrder": [
52900	//     "project",
52901	//     "license"
52902	//   ],
52903	//   "parameters": {
52904	//     "license": {
52905	//       "description": "Name of the License resource to return.",
52906	//       "location": "path",
52907	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52908	//       "required": true,
52909	//       "type": "string"
52910	//     },
52911	//     "project": {
52912	//       "description": "Project ID for this request.",
52913	//       "location": "path",
52914	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52915	//       "required": true,
52916	//       "type": "string"
52917	//     }
52918	//   },
52919	//   "path": "{project}/global/licenses/{license}",
52920	//   "response": {
52921	//     "$ref": "License"
52922	//   },
52923	//   "scopes": [
52924	//     "https://www.googleapis.com/auth/cloud-platform",
52925	//     "https://www.googleapis.com/auth/compute",
52926	//     "https://www.googleapis.com/auth/compute.readonly"
52927	//   ]
52928	// }
52929
52930}
52931
52932// method id "compute.machineTypes.aggregatedList":
52933
52934type MachineTypesAggregatedListCall struct {
52935	s            *Service
52936	project      string
52937	urlParams_   gensupport.URLParams
52938	ifNoneMatch_ string
52939	ctx_         context.Context
52940	header_      http.Header
52941}
52942
52943// AggregatedList: Retrieves an aggregated list of machine types.
52944// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/aggregatedList
52945func (r *MachineTypesService) AggregatedList(project string) *MachineTypesAggregatedListCall {
52946	c := &MachineTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52947	c.project = project
52948	return c
52949}
52950
52951// Filter sets the optional parameter "filter": Sets a filter
52952// {expression} for filtering listed resources. Your {expression} must
52953// be in the format: field_name comparison_string literal_string.
52954//
52955// The field_name is the name of the field you want to compare. Only
52956// atomic field types are supported (string, number, boolean). The
52957// comparison_string must be either eq (equals) or ne (not equals). The
52958// literal_string is the string value to filter to. The literal value
52959// must be valid for the type of field you are filtering by (string,
52960// number, boolean). For string fields, the literal value is interpreted
52961// as a regular expression using RE2 syntax. The literal value must
52962// match the entire field.
52963//
52964// For example, to filter for instances that do not have a name of
52965// example-instance, you would use name ne example-instance.
52966//
52967// You can filter on nested fields. For example, you could filter on
52968// instances that have set the scheduling.automaticRestart field to
52969// true. Use filtering on nested fields to take advantage of labels to
52970// organize and search for results based on label values.
52971//
52972// To filter on multiple expressions, provide each separate expression
52973// within parentheses. For example, (scheduling.automaticRestart eq
52974// true) (zone eq us-central1-f). Multiple expressions are treated as
52975// AND expressions, meaning that resources must match all expressions to
52976// pass the filters.
52977func (c *MachineTypesAggregatedListCall) Filter(filter string) *MachineTypesAggregatedListCall {
52978	c.urlParams_.Set("filter", filter)
52979	return c
52980}
52981
52982// MaxResults sets the optional parameter "maxResults": The maximum
52983// number of results per page that should be returned. If the number of
52984// available results is larger than maxResults, Compute Engine returns a
52985// nextPageToken that can be used to get the next page of results in
52986// subsequent list requests. Acceptable values are 0 to 500, inclusive.
52987// (Default: 500)
52988func (c *MachineTypesAggregatedListCall) MaxResults(maxResults int64) *MachineTypesAggregatedListCall {
52989	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
52990	return c
52991}
52992
52993// OrderBy sets the optional parameter "orderBy": Sorts list results by
52994// a certain order. By default, results are returned in alphanumerical
52995// order based on the resource name.
52996//
52997// You can also sort results in descending order based on the creation
52998// timestamp using orderBy="creationTimestamp desc". This sorts results
52999// based on the creationTimestamp field in reverse chronological order
53000// (newest result first). Use this to sort resources like operations so
53001// that the newest operation is returned first.
53002//
53003// Currently, only sorting by name or creationTimestamp desc is
53004// supported.
53005func (c *MachineTypesAggregatedListCall) OrderBy(orderBy string) *MachineTypesAggregatedListCall {
53006	c.urlParams_.Set("orderBy", orderBy)
53007	return c
53008}
53009
53010// PageToken sets the optional parameter "pageToken": Specifies a page
53011// token to use. Set pageToken to the nextPageToken returned by a
53012// previous list request to get the next page of results.
53013func (c *MachineTypesAggregatedListCall) PageToken(pageToken string) *MachineTypesAggregatedListCall {
53014	c.urlParams_.Set("pageToken", pageToken)
53015	return c
53016}
53017
53018// Fields allows partial responses to be retrieved. See
53019// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53020// for more information.
53021func (c *MachineTypesAggregatedListCall) Fields(s ...googleapi.Field) *MachineTypesAggregatedListCall {
53022	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53023	return c
53024}
53025
53026// IfNoneMatch sets the optional parameter which makes the operation
53027// fail if the object's ETag matches the given value. This is useful for
53028// getting updates only after the object has changed since the last
53029// request. Use googleapi.IsNotModified to check whether the response
53030// error from Do is the result of In-None-Match.
53031func (c *MachineTypesAggregatedListCall) IfNoneMatch(entityTag string) *MachineTypesAggregatedListCall {
53032	c.ifNoneMatch_ = entityTag
53033	return c
53034}
53035
53036// Context sets the context to be used in this call's Do method. Any
53037// pending HTTP request will be aborted if the provided context is
53038// canceled.
53039func (c *MachineTypesAggregatedListCall) Context(ctx context.Context) *MachineTypesAggregatedListCall {
53040	c.ctx_ = ctx
53041	return c
53042}
53043
53044// Header returns an http.Header that can be modified by the caller to
53045// add HTTP headers to the request.
53046func (c *MachineTypesAggregatedListCall) Header() http.Header {
53047	if c.header_ == nil {
53048		c.header_ = make(http.Header)
53049	}
53050	return c.header_
53051}
53052
53053func (c *MachineTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
53054	reqHeaders := make(http.Header)
53055	for k, v := range c.header_ {
53056		reqHeaders[k] = v
53057	}
53058	reqHeaders.Set("User-Agent", c.s.userAgent())
53059	if c.ifNoneMatch_ != "" {
53060		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53061	}
53062	var body io.Reader = nil
53063	c.urlParams_.Set("alt", alt)
53064	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/machineTypes")
53065	urls += "?" + c.urlParams_.Encode()
53066	req, _ := http.NewRequest("GET", urls, body)
53067	req.Header = reqHeaders
53068	googleapi.Expand(req.URL, map[string]string{
53069		"project": c.project,
53070	})
53071	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53072}
53073
53074// Do executes the "compute.machineTypes.aggregatedList" call.
53075// Exactly one of *MachineTypeAggregatedList or error will be non-nil.
53076// Any non-2xx status code is an error. Response headers are in either
53077// *MachineTypeAggregatedList.ServerResponse.Header or (if a response
53078// was returned at all) in error.(*googleapi.Error).Header. Use
53079// googleapi.IsNotModified to check whether the returned error was
53080// because http.StatusNotModified was returned.
53081func (c *MachineTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*MachineTypeAggregatedList, error) {
53082	gensupport.SetOptions(c.urlParams_, opts...)
53083	res, err := c.doRequest("json")
53084	if res != nil && res.StatusCode == http.StatusNotModified {
53085		if res.Body != nil {
53086			res.Body.Close()
53087		}
53088		return nil, &googleapi.Error{
53089			Code:   res.StatusCode,
53090			Header: res.Header,
53091		}
53092	}
53093	if err != nil {
53094		return nil, err
53095	}
53096	defer googleapi.CloseBody(res)
53097	if err := googleapi.CheckResponse(res); err != nil {
53098		return nil, err
53099	}
53100	ret := &MachineTypeAggregatedList{
53101		ServerResponse: googleapi.ServerResponse{
53102			Header:         res.Header,
53103			HTTPStatusCode: res.StatusCode,
53104		},
53105	}
53106	target := &ret
53107	if err := gensupport.DecodeResponse(target, res); err != nil {
53108		return nil, err
53109	}
53110	return ret, nil
53111	// {
53112	//   "description": "Retrieves an aggregated list of machine types.",
53113	//   "httpMethod": "GET",
53114	//   "id": "compute.machineTypes.aggregatedList",
53115	//   "parameterOrder": [
53116	//     "project"
53117	//   ],
53118	//   "parameters": {
53119	//     "filter": {
53120	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
53121	//       "location": "query",
53122	//       "type": "string"
53123	//     },
53124	//     "maxResults": {
53125	//       "default": "500",
53126	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
53127	//       "format": "uint32",
53128	//       "location": "query",
53129	//       "minimum": "0",
53130	//       "type": "integer"
53131	//     },
53132	//     "orderBy": {
53133	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
53134	//       "location": "query",
53135	//       "type": "string"
53136	//     },
53137	//     "pageToken": {
53138	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
53139	//       "location": "query",
53140	//       "type": "string"
53141	//     },
53142	//     "project": {
53143	//       "description": "Project ID for this request.",
53144	//       "location": "path",
53145	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53146	//       "required": true,
53147	//       "type": "string"
53148	//     }
53149	//   },
53150	//   "path": "{project}/aggregated/machineTypes",
53151	//   "response": {
53152	//     "$ref": "MachineTypeAggregatedList"
53153	//   },
53154	//   "scopes": [
53155	//     "https://www.googleapis.com/auth/cloud-platform",
53156	//     "https://www.googleapis.com/auth/compute",
53157	//     "https://www.googleapis.com/auth/compute.readonly"
53158	//   ]
53159	// }
53160
53161}
53162
53163// Pages invokes f for each page of results.
53164// A non-nil error returned from f will halt the iteration.
53165// The provided context supersedes any context provided to the Context method.
53166func (c *MachineTypesAggregatedListCall) Pages(ctx context.Context, f func(*MachineTypeAggregatedList) error) error {
53167	c.ctx_ = ctx
53168	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
53169	for {
53170		x, err := c.Do()
53171		if err != nil {
53172			return err
53173		}
53174		if err := f(x); err != nil {
53175			return err
53176		}
53177		if x.NextPageToken == "" {
53178			return nil
53179		}
53180		c.PageToken(x.NextPageToken)
53181	}
53182}
53183
53184// method id "compute.machineTypes.get":
53185
53186type MachineTypesGetCall struct {
53187	s            *Service
53188	project      string
53189	zone         string
53190	machineType  string
53191	urlParams_   gensupport.URLParams
53192	ifNoneMatch_ string
53193	ctx_         context.Context
53194	header_      http.Header
53195}
53196
53197// Get: Returns the specified machine type. Get a list of available
53198// machine types by making a list() request.
53199// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/get
53200func (r *MachineTypesService) Get(project string, zone string, machineType string) *MachineTypesGetCall {
53201	c := &MachineTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53202	c.project = project
53203	c.zone = zone
53204	c.machineType = machineType
53205	return c
53206}
53207
53208// Fields allows partial responses to be retrieved. See
53209// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53210// for more information.
53211func (c *MachineTypesGetCall) Fields(s ...googleapi.Field) *MachineTypesGetCall {
53212	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53213	return c
53214}
53215
53216// IfNoneMatch sets the optional parameter which makes the operation
53217// fail if the object's ETag matches the given value. This is useful for
53218// getting updates only after the object has changed since the last
53219// request. Use googleapi.IsNotModified to check whether the response
53220// error from Do is the result of In-None-Match.
53221func (c *MachineTypesGetCall) IfNoneMatch(entityTag string) *MachineTypesGetCall {
53222	c.ifNoneMatch_ = entityTag
53223	return c
53224}
53225
53226// Context sets the context to be used in this call's Do method. Any
53227// pending HTTP request will be aborted if the provided context is
53228// canceled.
53229func (c *MachineTypesGetCall) Context(ctx context.Context) *MachineTypesGetCall {
53230	c.ctx_ = ctx
53231	return c
53232}
53233
53234// Header returns an http.Header that can be modified by the caller to
53235// add HTTP headers to the request.
53236func (c *MachineTypesGetCall) Header() http.Header {
53237	if c.header_ == nil {
53238		c.header_ = make(http.Header)
53239	}
53240	return c.header_
53241}
53242
53243func (c *MachineTypesGetCall) doRequest(alt string) (*http.Response, error) {
53244	reqHeaders := make(http.Header)
53245	for k, v := range c.header_ {
53246		reqHeaders[k] = v
53247	}
53248	reqHeaders.Set("User-Agent", c.s.userAgent())
53249	if c.ifNoneMatch_ != "" {
53250		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53251	}
53252	var body io.Reader = nil
53253	c.urlParams_.Set("alt", alt)
53254	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/machineTypes/{machineType}")
53255	urls += "?" + c.urlParams_.Encode()
53256	req, _ := http.NewRequest("GET", urls, body)
53257	req.Header = reqHeaders
53258	googleapi.Expand(req.URL, map[string]string{
53259		"project":     c.project,
53260		"zone":        c.zone,
53261		"machineType": c.machineType,
53262	})
53263	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53264}
53265
53266// Do executes the "compute.machineTypes.get" call.
53267// Exactly one of *MachineType or error will be non-nil. Any non-2xx
53268// status code is an error. Response headers are in either
53269// *MachineType.ServerResponse.Header or (if a response was returned at
53270// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53271// to check whether the returned error was because
53272// http.StatusNotModified was returned.
53273func (c *MachineTypesGetCall) Do(opts ...googleapi.CallOption) (*MachineType, error) {
53274	gensupport.SetOptions(c.urlParams_, opts...)
53275	res, err := c.doRequest("json")
53276	if res != nil && res.StatusCode == http.StatusNotModified {
53277		if res.Body != nil {
53278			res.Body.Close()
53279		}
53280		return nil, &googleapi.Error{
53281			Code:   res.StatusCode,
53282			Header: res.Header,
53283		}
53284	}
53285	if err != nil {
53286		return nil, err
53287	}
53288	defer googleapi.CloseBody(res)
53289	if err := googleapi.CheckResponse(res); err != nil {
53290		return nil, err
53291	}
53292	ret := &MachineType{
53293		ServerResponse: googleapi.ServerResponse{
53294			Header:         res.Header,
53295			HTTPStatusCode: res.StatusCode,
53296		},
53297	}
53298	target := &ret
53299	if err := gensupport.DecodeResponse(target, res); err != nil {
53300		return nil, err
53301	}
53302	return ret, nil
53303	// {
53304	//   "description": "Returns the specified machine type. Get a list of available machine types by making a list() request.",
53305	//   "httpMethod": "GET",
53306	//   "id": "compute.machineTypes.get",
53307	//   "parameterOrder": [
53308	//     "project",
53309	//     "zone",
53310	//     "machineType"
53311	//   ],
53312	//   "parameters": {
53313	//     "machineType": {
53314	//       "description": "Name of the machine type to return.",
53315	//       "location": "path",
53316	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53317	//       "required": true,
53318	//       "type": "string"
53319	//     },
53320	//     "project": {
53321	//       "description": "Project ID for this request.",
53322	//       "location": "path",
53323	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53324	//       "required": true,
53325	//       "type": "string"
53326	//     },
53327	//     "zone": {
53328	//       "description": "The name of the zone for this request.",
53329	//       "location": "path",
53330	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53331	//       "required": true,
53332	//       "type": "string"
53333	//     }
53334	//   },
53335	//   "path": "{project}/zones/{zone}/machineTypes/{machineType}",
53336	//   "response": {
53337	//     "$ref": "MachineType"
53338	//   },
53339	//   "scopes": [
53340	//     "https://www.googleapis.com/auth/cloud-platform",
53341	//     "https://www.googleapis.com/auth/compute",
53342	//     "https://www.googleapis.com/auth/compute.readonly"
53343	//   ]
53344	// }
53345
53346}
53347
53348// method id "compute.machineTypes.list":
53349
53350type MachineTypesListCall struct {
53351	s            *Service
53352	project      string
53353	zone         string
53354	urlParams_   gensupport.URLParams
53355	ifNoneMatch_ string
53356	ctx_         context.Context
53357	header_      http.Header
53358}
53359
53360// List: Retrieves a list of machine types available to the specified
53361// project.
53362// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/list
53363func (r *MachineTypesService) List(project string, zone string) *MachineTypesListCall {
53364	c := &MachineTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53365	c.project = project
53366	c.zone = zone
53367	return c
53368}
53369
53370// Filter sets the optional parameter "filter": Sets a filter
53371// {expression} for filtering listed resources. Your {expression} must
53372// be in the format: field_name comparison_string literal_string.
53373//
53374// The field_name is the name of the field you want to compare. Only
53375// atomic field types are supported (string, number, boolean). The
53376// comparison_string must be either eq (equals) or ne (not equals). The
53377// literal_string is the string value to filter to. The literal value
53378// must be valid for the type of field you are filtering by (string,
53379// number, boolean). For string fields, the literal value is interpreted
53380// as a regular expression using RE2 syntax. The literal value must
53381// match the entire field.
53382//
53383// For example, to filter for instances that do not have a name of
53384// example-instance, you would use name ne example-instance.
53385//
53386// You can filter on nested fields. For example, you could filter on
53387// instances that have set the scheduling.automaticRestart field to
53388// true. Use filtering on nested fields to take advantage of labels to
53389// organize and search for results based on label values.
53390//
53391// To filter on multiple expressions, provide each separate expression
53392// within parentheses. For example, (scheduling.automaticRestart eq
53393// true) (zone eq us-central1-f). Multiple expressions are treated as
53394// AND expressions, meaning that resources must match all expressions to
53395// pass the filters.
53396func (c *MachineTypesListCall) Filter(filter string) *MachineTypesListCall {
53397	c.urlParams_.Set("filter", filter)
53398	return c
53399}
53400
53401// MaxResults sets the optional parameter "maxResults": The maximum
53402// number of results per page that should be returned. If the number of
53403// available results is larger than maxResults, Compute Engine returns a
53404// nextPageToken that can be used to get the next page of results in
53405// subsequent list requests. Acceptable values are 0 to 500, inclusive.
53406// (Default: 500)
53407func (c *MachineTypesListCall) MaxResults(maxResults int64) *MachineTypesListCall {
53408	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
53409	return c
53410}
53411
53412// OrderBy sets the optional parameter "orderBy": Sorts list results by
53413// a certain order. By default, results are returned in alphanumerical
53414// order based on the resource name.
53415//
53416// You can also sort results in descending order based on the creation
53417// timestamp using orderBy="creationTimestamp desc". This sorts results
53418// based on the creationTimestamp field in reverse chronological order
53419// (newest result first). Use this to sort resources like operations so
53420// that the newest operation is returned first.
53421//
53422// Currently, only sorting by name or creationTimestamp desc is
53423// supported.
53424func (c *MachineTypesListCall) OrderBy(orderBy string) *MachineTypesListCall {
53425	c.urlParams_.Set("orderBy", orderBy)
53426	return c
53427}
53428
53429// PageToken sets the optional parameter "pageToken": Specifies a page
53430// token to use. Set pageToken to the nextPageToken returned by a
53431// previous list request to get the next page of results.
53432func (c *MachineTypesListCall) PageToken(pageToken string) *MachineTypesListCall {
53433	c.urlParams_.Set("pageToken", pageToken)
53434	return c
53435}
53436
53437// Fields allows partial responses to be retrieved. See
53438// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53439// for more information.
53440func (c *MachineTypesListCall) Fields(s ...googleapi.Field) *MachineTypesListCall {
53441	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53442	return c
53443}
53444
53445// IfNoneMatch sets the optional parameter which makes the operation
53446// fail if the object's ETag matches the given value. This is useful for
53447// getting updates only after the object has changed since the last
53448// request. Use googleapi.IsNotModified to check whether the response
53449// error from Do is the result of In-None-Match.
53450func (c *MachineTypesListCall) IfNoneMatch(entityTag string) *MachineTypesListCall {
53451	c.ifNoneMatch_ = entityTag
53452	return c
53453}
53454
53455// Context sets the context to be used in this call's Do method. Any
53456// pending HTTP request will be aborted if the provided context is
53457// canceled.
53458func (c *MachineTypesListCall) Context(ctx context.Context) *MachineTypesListCall {
53459	c.ctx_ = ctx
53460	return c
53461}
53462
53463// Header returns an http.Header that can be modified by the caller to
53464// add HTTP headers to the request.
53465func (c *MachineTypesListCall) Header() http.Header {
53466	if c.header_ == nil {
53467		c.header_ = make(http.Header)
53468	}
53469	return c.header_
53470}
53471
53472func (c *MachineTypesListCall) doRequest(alt string) (*http.Response, error) {
53473	reqHeaders := make(http.Header)
53474	for k, v := range c.header_ {
53475		reqHeaders[k] = v
53476	}
53477	reqHeaders.Set("User-Agent", c.s.userAgent())
53478	if c.ifNoneMatch_ != "" {
53479		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53480	}
53481	var body io.Reader = nil
53482	c.urlParams_.Set("alt", alt)
53483	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/machineTypes")
53484	urls += "?" + c.urlParams_.Encode()
53485	req, _ := http.NewRequest("GET", urls, body)
53486	req.Header = reqHeaders
53487	googleapi.Expand(req.URL, map[string]string{
53488		"project": c.project,
53489		"zone":    c.zone,
53490	})
53491	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53492}
53493
53494// Do executes the "compute.machineTypes.list" call.
53495// Exactly one of *MachineTypeList or error will be non-nil. Any non-2xx
53496// status code is an error. Response headers are in either
53497// *MachineTypeList.ServerResponse.Header or (if a response was returned
53498// at all) in error.(*googleapi.Error).Header. Use
53499// googleapi.IsNotModified to check whether the returned error was
53500// because http.StatusNotModified was returned.
53501func (c *MachineTypesListCall) Do(opts ...googleapi.CallOption) (*MachineTypeList, error) {
53502	gensupport.SetOptions(c.urlParams_, opts...)
53503	res, err := c.doRequest("json")
53504	if res != nil && res.StatusCode == http.StatusNotModified {
53505		if res.Body != nil {
53506			res.Body.Close()
53507		}
53508		return nil, &googleapi.Error{
53509			Code:   res.StatusCode,
53510			Header: res.Header,
53511		}
53512	}
53513	if err != nil {
53514		return nil, err
53515	}
53516	defer googleapi.CloseBody(res)
53517	if err := googleapi.CheckResponse(res); err != nil {
53518		return nil, err
53519	}
53520	ret := &MachineTypeList{
53521		ServerResponse: googleapi.ServerResponse{
53522			Header:         res.Header,
53523			HTTPStatusCode: res.StatusCode,
53524		},
53525	}
53526	target := &ret
53527	if err := gensupport.DecodeResponse(target, res); err != nil {
53528		return nil, err
53529	}
53530	return ret, nil
53531	// {
53532	//   "description": "Retrieves a list of machine types available to the specified project.",
53533	//   "httpMethod": "GET",
53534	//   "id": "compute.machineTypes.list",
53535	//   "parameterOrder": [
53536	//     "project",
53537	//     "zone"
53538	//   ],
53539	//   "parameters": {
53540	//     "filter": {
53541	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
53542	//       "location": "query",
53543	//       "type": "string"
53544	//     },
53545	//     "maxResults": {
53546	//       "default": "500",
53547	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
53548	//       "format": "uint32",
53549	//       "location": "query",
53550	//       "minimum": "0",
53551	//       "type": "integer"
53552	//     },
53553	//     "orderBy": {
53554	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
53555	//       "location": "query",
53556	//       "type": "string"
53557	//     },
53558	//     "pageToken": {
53559	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
53560	//       "location": "query",
53561	//       "type": "string"
53562	//     },
53563	//     "project": {
53564	//       "description": "Project ID for this request.",
53565	//       "location": "path",
53566	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53567	//       "required": true,
53568	//       "type": "string"
53569	//     },
53570	//     "zone": {
53571	//       "description": "The name of the zone for this request.",
53572	//       "location": "path",
53573	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53574	//       "required": true,
53575	//       "type": "string"
53576	//     }
53577	//   },
53578	//   "path": "{project}/zones/{zone}/machineTypes",
53579	//   "response": {
53580	//     "$ref": "MachineTypeList"
53581	//   },
53582	//   "scopes": [
53583	//     "https://www.googleapis.com/auth/cloud-platform",
53584	//     "https://www.googleapis.com/auth/compute",
53585	//     "https://www.googleapis.com/auth/compute.readonly"
53586	//   ]
53587	// }
53588
53589}
53590
53591// Pages invokes f for each page of results.
53592// A non-nil error returned from f will halt the iteration.
53593// The provided context supersedes any context provided to the Context method.
53594func (c *MachineTypesListCall) Pages(ctx context.Context, f func(*MachineTypeList) error) error {
53595	c.ctx_ = ctx
53596	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
53597	for {
53598		x, err := c.Do()
53599		if err != nil {
53600			return err
53601		}
53602		if err := f(x); err != nil {
53603			return err
53604		}
53605		if x.NextPageToken == "" {
53606			return nil
53607		}
53608		c.PageToken(x.NextPageToken)
53609	}
53610}
53611
53612// method id "compute.networks.addPeering":
53613
53614type NetworksAddPeeringCall struct {
53615	s                         *Service
53616	project                   string
53617	network                   string
53618	networksaddpeeringrequest *NetworksAddPeeringRequest
53619	urlParams_                gensupport.URLParams
53620	ctx_                      context.Context
53621	header_                   http.Header
53622}
53623
53624// AddPeering: Adds a peering to the specified network.
53625func (r *NetworksService) AddPeering(project string, network string, networksaddpeeringrequest *NetworksAddPeeringRequest) *NetworksAddPeeringCall {
53626	c := &NetworksAddPeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53627	c.project = project
53628	c.network = network
53629	c.networksaddpeeringrequest = networksaddpeeringrequest
53630	return c
53631}
53632
53633// RequestId sets the optional parameter "requestId": An optional
53634// request ID to identify requests. Specify a unique request ID so that
53635// if you must retry your request, the server will know to ignore the
53636// request if it has already been completed.
53637//
53638// For example, consider a situation where you make an initial request
53639// and the request times out. If you make the request again with the
53640// same request ID, the server can check if original operation with the
53641// same request ID was received, and if so, will ignore the second
53642// request. This prevents clients from accidentally creating duplicate
53643// commitments.
53644//
53645// The request ID must be a valid UUID with the exception that zero UUID
53646// is not supported (00000000-0000-0000-0000-000000000000).
53647func (c *NetworksAddPeeringCall) RequestId(requestId string) *NetworksAddPeeringCall {
53648	c.urlParams_.Set("requestId", requestId)
53649	return c
53650}
53651
53652// Fields allows partial responses to be retrieved. See
53653// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53654// for more information.
53655func (c *NetworksAddPeeringCall) Fields(s ...googleapi.Field) *NetworksAddPeeringCall {
53656	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53657	return c
53658}
53659
53660// Context sets the context to be used in this call's Do method. Any
53661// pending HTTP request will be aborted if the provided context is
53662// canceled.
53663func (c *NetworksAddPeeringCall) Context(ctx context.Context) *NetworksAddPeeringCall {
53664	c.ctx_ = ctx
53665	return c
53666}
53667
53668// Header returns an http.Header that can be modified by the caller to
53669// add HTTP headers to the request.
53670func (c *NetworksAddPeeringCall) Header() http.Header {
53671	if c.header_ == nil {
53672		c.header_ = make(http.Header)
53673	}
53674	return c.header_
53675}
53676
53677func (c *NetworksAddPeeringCall) doRequest(alt string) (*http.Response, error) {
53678	reqHeaders := make(http.Header)
53679	for k, v := range c.header_ {
53680		reqHeaders[k] = v
53681	}
53682	reqHeaders.Set("User-Agent", c.s.userAgent())
53683	var body io.Reader = nil
53684	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksaddpeeringrequest)
53685	if err != nil {
53686		return nil, err
53687	}
53688	reqHeaders.Set("Content-Type", "application/json")
53689	c.urlParams_.Set("alt", alt)
53690	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/addPeering")
53691	urls += "?" + c.urlParams_.Encode()
53692	req, _ := http.NewRequest("POST", urls, body)
53693	req.Header = reqHeaders
53694	googleapi.Expand(req.URL, map[string]string{
53695		"project": c.project,
53696		"network": c.network,
53697	})
53698	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53699}
53700
53701// Do executes the "compute.networks.addPeering" call.
53702// Exactly one of *Operation or error will be non-nil. Any non-2xx
53703// status code is an error. Response headers are in either
53704// *Operation.ServerResponse.Header or (if a response was returned at
53705// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53706// to check whether the returned error was because
53707// http.StatusNotModified was returned.
53708func (c *NetworksAddPeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53709	gensupport.SetOptions(c.urlParams_, opts...)
53710	res, err := c.doRequest("json")
53711	if res != nil && res.StatusCode == http.StatusNotModified {
53712		if res.Body != nil {
53713			res.Body.Close()
53714		}
53715		return nil, &googleapi.Error{
53716			Code:   res.StatusCode,
53717			Header: res.Header,
53718		}
53719	}
53720	if err != nil {
53721		return nil, err
53722	}
53723	defer googleapi.CloseBody(res)
53724	if err := googleapi.CheckResponse(res); err != nil {
53725		return nil, err
53726	}
53727	ret := &Operation{
53728		ServerResponse: googleapi.ServerResponse{
53729			Header:         res.Header,
53730			HTTPStatusCode: res.StatusCode,
53731		},
53732	}
53733	target := &ret
53734	if err := gensupport.DecodeResponse(target, res); err != nil {
53735		return nil, err
53736	}
53737	return ret, nil
53738	// {
53739	//   "description": "Adds a peering to the specified network.",
53740	//   "httpMethod": "POST",
53741	//   "id": "compute.networks.addPeering",
53742	//   "parameterOrder": [
53743	//     "project",
53744	//     "network"
53745	//   ],
53746	//   "parameters": {
53747	//     "network": {
53748	//       "description": "Name of the network resource to add peering to.",
53749	//       "location": "path",
53750	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53751	//       "required": true,
53752	//       "type": "string"
53753	//     },
53754	//     "project": {
53755	//       "description": "Project ID for this request.",
53756	//       "location": "path",
53757	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53758	//       "required": true,
53759	//       "type": "string"
53760	//     },
53761	//     "requestId": {
53762	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53763	//       "location": "query",
53764	//       "type": "string"
53765	//     }
53766	//   },
53767	//   "path": "{project}/global/networks/{network}/addPeering",
53768	//   "request": {
53769	//     "$ref": "NetworksAddPeeringRequest"
53770	//   },
53771	//   "response": {
53772	//     "$ref": "Operation"
53773	//   },
53774	//   "scopes": [
53775	//     "https://www.googleapis.com/auth/cloud-platform",
53776	//     "https://www.googleapis.com/auth/compute"
53777	//   ]
53778	// }
53779
53780}
53781
53782// method id "compute.networks.delete":
53783
53784type NetworksDeleteCall struct {
53785	s          *Service
53786	project    string
53787	network    string
53788	urlParams_ gensupport.URLParams
53789	ctx_       context.Context
53790	header_    http.Header
53791}
53792
53793// Delete: Deletes the specified network.
53794// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/delete
53795func (r *NetworksService) Delete(project string, network string) *NetworksDeleteCall {
53796	c := &NetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53797	c.project = project
53798	c.network = network
53799	return c
53800}
53801
53802// RequestId sets the optional parameter "requestId": An optional
53803// request ID to identify requests. Specify a unique request ID so that
53804// if you must retry your request, the server will know to ignore the
53805// request if it has already been completed.
53806//
53807// For example, consider a situation where you make an initial request
53808// and the request times out. If you make the request again with the
53809// same request ID, the server can check if original operation with the
53810// same request ID was received, and if so, will ignore the second
53811// request. This prevents clients from accidentally creating duplicate
53812// commitments.
53813//
53814// The request ID must be a valid UUID with the exception that zero UUID
53815// is not supported (00000000-0000-0000-0000-000000000000).
53816func (c *NetworksDeleteCall) RequestId(requestId string) *NetworksDeleteCall {
53817	c.urlParams_.Set("requestId", requestId)
53818	return c
53819}
53820
53821// Fields allows partial responses to be retrieved. See
53822// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53823// for more information.
53824func (c *NetworksDeleteCall) Fields(s ...googleapi.Field) *NetworksDeleteCall {
53825	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53826	return c
53827}
53828
53829// Context sets the context to be used in this call's Do method. Any
53830// pending HTTP request will be aborted if the provided context is
53831// canceled.
53832func (c *NetworksDeleteCall) Context(ctx context.Context) *NetworksDeleteCall {
53833	c.ctx_ = ctx
53834	return c
53835}
53836
53837// Header returns an http.Header that can be modified by the caller to
53838// add HTTP headers to the request.
53839func (c *NetworksDeleteCall) Header() http.Header {
53840	if c.header_ == nil {
53841		c.header_ = make(http.Header)
53842	}
53843	return c.header_
53844}
53845
53846func (c *NetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
53847	reqHeaders := make(http.Header)
53848	for k, v := range c.header_ {
53849		reqHeaders[k] = v
53850	}
53851	reqHeaders.Set("User-Agent", c.s.userAgent())
53852	var body io.Reader = nil
53853	c.urlParams_.Set("alt", alt)
53854	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
53855	urls += "?" + c.urlParams_.Encode()
53856	req, _ := http.NewRequest("DELETE", urls, body)
53857	req.Header = reqHeaders
53858	googleapi.Expand(req.URL, map[string]string{
53859		"project": c.project,
53860		"network": c.network,
53861	})
53862	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53863}
53864
53865// Do executes the "compute.networks.delete" call.
53866// Exactly one of *Operation or error will be non-nil. Any non-2xx
53867// status code is an error. Response headers are in either
53868// *Operation.ServerResponse.Header or (if a response was returned at
53869// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53870// to check whether the returned error was because
53871// http.StatusNotModified was returned.
53872func (c *NetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53873	gensupport.SetOptions(c.urlParams_, opts...)
53874	res, err := c.doRequest("json")
53875	if res != nil && res.StatusCode == http.StatusNotModified {
53876		if res.Body != nil {
53877			res.Body.Close()
53878		}
53879		return nil, &googleapi.Error{
53880			Code:   res.StatusCode,
53881			Header: res.Header,
53882		}
53883	}
53884	if err != nil {
53885		return nil, err
53886	}
53887	defer googleapi.CloseBody(res)
53888	if err := googleapi.CheckResponse(res); err != nil {
53889		return nil, err
53890	}
53891	ret := &Operation{
53892		ServerResponse: googleapi.ServerResponse{
53893			Header:         res.Header,
53894			HTTPStatusCode: res.StatusCode,
53895		},
53896	}
53897	target := &ret
53898	if err := gensupport.DecodeResponse(target, res); err != nil {
53899		return nil, err
53900	}
53901	return ret, nil
53902	// {
53903	//   "description": "Deletes the specified network.",
53904	//   "httpMethod": "DELETE",
53905	//   "id": "compute.networks.delete",
53906	//   "parameterOrder": [
53907	//     "project",
53908	//     "network"
53909	//   ],
53910	//   "parameters": {
53911	//     "network": {
53912	//       "description": "Name of the network to delete.",
53913	//       "location": "path",
53914	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53915	//       "required": true,
53916	//       "type": "string"
53917	//     },
53918	//     "project": {
53919	//       "description": "Project ID for this request.",
53920	//       "location": "path",
53921	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53922	//       "required": true,
53923	//       "type": "string"
53924	//     },
53925	//     "requestId": {
53926	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53927	//       "location": "query",
53928	//       "type": "string"
53929	//     }
53930	//   },
53931	//   "path": "{project}/global/networks/{network}",
53932	//   "response": {
53933	//     "$ref": "Operation"
53934	//   },
53935	//   "scopes": [
53936	//     "https://www.googleapis.com/auth/cloud-platform",
53937	//     "https://www.googleapis.com/auth/compute"
53938	//   ]
53939	// }
53940
53941}
53942
53943// method id "compute.networks.get":
53944
53945type NetworksGetCall struct {
53946	s            *Service
53947	project      string
53948	network      string
53949	urlParams_   gensupport.URLParams
53950	ifNoneMatch_ string
53951	ctx_         context.Context
53952	header_      http.Header
53953}
53954
53955// Get: Returns the specified network. Get a list of available networks
53956// by making a list() request.
53957// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/get
53958func (r *NetworksService) Get(project string, network string) *NetworksGetCall {
53959	c := &NetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53960	c.project = project
53961	c.network = network
53962	return c
53963}
53964
53965// Fields allows partial responses to be retrieved. See
53966// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53967// for more information.
53968func (c *NetworksGetCall) Fields(s ...googleapi.Field) *NetworksGetCall {
53969	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53970	return c
53971}
53972
53973// IfNoneMatch sets the optional parameter which makes the operation
53974// fail if the object's ETag matches the given value. This is useful for
53975// getting updates only after the object has changed since the last
53976// request. Use googleapi.IsNotModified to check whether the response
53977// error from Do is the result of In-None-Match.
53978func (c *NetworksGetCall) IfNoneMatch(entityTag string) *NetworksGetCall {
53979	c.ifNoneMatch_ = entityTag
53980	return c
53981}
53982
53983// Context sets the context to be used in this call's Do method. Any
53984// pending HTTP request will be aborted if the provided context is
53985// canceled.
53986func (c *NetworksGetCall) Context(ctx context.Context) *NetworksGetCall {
53987	c.ctx_ = ctx
53988	return c
53989}
53990
53991// Header returns an http.Header that can be modified by the caller to
53992// add HTTP headers to the request.
53993func (c *NetworksGetCall) Header() http.Header {
53994	if c.header_ == nil {
53995		c.header_ = make(http.Header)
53996	}
53997	return c.header_
53998}
53999
54000func (c *NetworksGetCall) doRequest(alt string) (*http.Response, error) {
54001	reqHeaders := make(http.Header)
54002	for k, v := range c.header_ {
54003		reqHeaders[k] = v
54004	}
54005	reqHeaders.Set("User-Agent", c.s.userAgent())
54006	if c.ifNoneMatch_ != "" {
54007		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54008	}
54009	var body io.Reader = nil
54010	c.urlParams_.Set("alt", alt)
54011	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
54012	urls += "?" + c.urlParams_.Encode()
54013	req, _ := http.NewRequest("GET", urls, body)
54014	req.Header = reqHeaders
54015	googleapi.Expand(req.URL, map[string]string{
54016		"project": c.project,
54017		"network": c.network,
54018	})
54019	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54020}
54021
54022// Do executes the "compute.networks.get" call.
54023// Exactly one of *Network or error will be non-nil. Any non-2xx status
54024// code is an error. Response headers are in either
54025// *Network.ServerResponse.Header or (if a response was returned at all)
54026// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
54027// check whether the returned error was because http.StatusNotModified
54028// was returned.
54029func (c *NetworksGetCall) Do(opts ...googleapi.CallOption) (*Network, error) {
54030	gensupport.SetOptions(c.urlParams_, opts...)
54031	res, err := c.doRequest("json")
54032	if res != nil && res.StatusCode == http.StatusNotModified {
54033		if res.Body != nil {
54034			res.Body.Close()
54035		}
54036		return nil, &googleapi.Error{
54037			Code:   res.StatusCode,
54038			Header: res.Header,
54039		}
54040	}
54041	if err != nil {
54042		return nil, err
54043	}
54044	defer googleapi.CloseBody(res)
54045	if err := googleapi.CheckResponse(res); err != nil {
54046		return nil, err
54047	}
54048	ret := &Network{
54049		ServerResponse: googleapi.ServerResponse{
54050			Header:         res.Header,
54051			HTTPStatusCode: res.StatusCode,
54052		},
54053	}
54054	target := &ret
54055	if err := gensupport.DecodeResponse(target, res); err != nil {
54056		return nil, err
54057	}
54058	return ret, nil
54059	// {
54060	//   "description": "Returns the specified network. Get a list of available networks by making a list() request.",
54061	//   "httpMethod": "GET",
54062	//   "id": "compute.networks.get",
54063	//   "parameterOrder": [
54064	//     "project",
54065	//     "network"
54066	//   ],
54067	//   "parameters": {
54068	//     "network": {
54069	//       "description": "Name of the network to return.",
54070	//       "location": "path",
54071	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54072	//       "required": true,
54073	//       "type": "string"
54074	//     },
54075	//     "project": {
54076	//       "description": "Project ID for this request.",
54077	//       "location": "path",
54078	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54079	//       "required": true,
54080	//       "type": "string"
54081	//     }
54082	//   },
54083	//   "path": "{project}/global/networks/{network}",
54084	//   "response": {
54085	//     "$ref": "Network"
54086	//   },
54087	//   "scopes": [
54088	//     "https://www.googleapis.com/auth/cloud-platform",
54089	//     "https://www.googleapis.com/auth/compute",
54090	//     "https://www.googleapis.com/auth/compute.readonly"
54091	//   ]
54092	// }
54093
54094}
54095
54096// method id "compute.networks.insert":
54097
54098type NetworksInsertCall struct {
54099	s          *Service
54100	project    string
54101	network    *Network
54102	urlParams_ gensupport.URLParams
54103	ctx_       context.Context
54104	header_    http.Header
54105}
54106
54107// Insert: Creates a network in the specified project using the data
54108// included in the request.
54109// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/insert
54110func (r *NetworksService) Insert(project string, network *Network) *NetworksInsertCall {
54111	c := &NetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54112	c.project = project
54113	c.network = network
54114	return c
54115}
54116
54117// RequestId sets the optional parameter "requestId": An optional
54118// request ID to identify requests. Specify a unique request ID so that
54119// if you must retry your request, the server will know to ignore the
54120// request if it has already been completed.
54121//
54122// For example, consider a situation where you make an initial request
54123// and the request times out. If you make the request again with the
54124// same request ID, the server can check if original operation with the
54125// same request ID was received, and if so, will ignore the second
54126// request. This prevents clients from accidentally creating duplicate
54127// commitments.
54128//
54129// The request ID must be a valid UUID with the exception that zero UUID
54130// is not supported (00000000-0000-0000-0000-000000000000).
54131func (c *NetworksInsertCall) RequestId(requestId string) *NetworksInsertCall {
54132	c.urlParams_.Set("requestId", requestId)
54133	return c
54134}
54135
54136// Fields allows partial responses to be retrieved. See
54137// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54138// for more information.
54139func (c *NetworksInsertCall) Fields(s ...googleapi.Field) *NetworksInsertCall {
54140	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54141	return c
54142}
54143
54144// Context sets the context to be used in this call's Do method. Any
54145// pending HTTP request will be aborted if the provided context is
54146// canceled.
54147func (c *NetworksInsertCall) Context(ctx context.Context) *NetworksInsertCall {
54148	c.ctx_ = ctx
54149	return c
54150}
54151
54152// Header returns an http.Header that can be modified by the caller to
54153// add HTTP headers to the request.
54154func (c *NetworksInsertCall) Header() http.Header {
54155	if c.header_ == nil {
54156		c.header_ = make(http.Header)
54157	}
54158	return c.header_
54159}
54160
54161func (c *NetworksInsertCall) doRequest(alt string) (*http.Response, error) {
54162	reqHeaders := make(http.Header)
54163	for k, v := range c.header_ {
54164		reqHeaders[k] = v
54165	}
54166	reqHeaders.Set("User-Agent", c.s.userAgent())
54167	var body io.Reader = nil
54168	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network)
54169	if err != nil {
54170		return nil, err
54171	}
54172	reqHeaders.Set("Content-Type", "application/json")
54173	c.urlParams_.Set("alt", alt)
54174	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks")
54175	urls += "?" + c.urlParams_.Encode()
54176	req, _ := http.NewRequest("POST", urls, body)
54177	req.Header = reqHeaders
54178	googleapi.Expand(req.URL, map[string]string{
54179		"project": c.project,
54180	})
54181	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54182}
54183
54184// Do executes the "compute.networks.insert" call.
54185// Exactly one of *Operation or error will be non-nil. Any non-2xx
54186// status code is an error. Response headers are in either
54187// *Operation.ServerResponse.Header or (if a response was returned at
54188// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54189// to check whether the returned error was because
54190// http.StatusNotModified was returned.
54191func (c *NetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54192	gensupport.SetOptions(c.urlParams_, opts...)
54193	res, err := c.doRequest("json")
54194	if res != nil && res.StatusCode == http.StatusNotModified {
54195		if res.Body != nil {
54196			res.Body.Close()
54197		}
54198		return nil, &googleapi.Error{
54199			Code:   res.StatusCode,
54200			Header: res.Header,
54201		}
54202	}
54203	if err != nil {
54204		return nil, err
54205	}
54206	defer googleapi.CloseBody(res)
54207	if err := googleapi.CheckResponse(res); err != nil {
54208		return nil, err
54209	}
54210	ret := &Operation{
54211		ServerResponse: googleapi.ServerResponse{
54212			Header:         res.Header,
54213			HTTPStatusCode: res.StatusCode,
54214		},
54215	}
54216	target := &ret
54217	if err := gensupport.DecodeResponse(target, res); err != nil {
54218		return nil, err
54219	}
54220	return ret, nil
54221	// {
54222	//   "description": "Creates a network in the specified project using the data included in the request.",
54223	//   "httpMethod": "POST",
54224	//   "id": "compute.networks.insert",
54225	//   "parameterOrder": [
54226	//     "project"
54227	//   ],
54228	//   "parameters": {
54229	//     "project": {
54230	//       "description": "Project ID for this request.",
54231	//       "location": "path",
54232	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54233	//       "required": true,
54234	//       "type": "string"
54235	//     },
54236	//     "requestId": {
54237	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54238	//       "location": "query",
54239	//       "type": "string"
54240	//     }
54241	//   },
54242	//   "path": "{project}/global/networks",
54243	//   "request": {
54244	//     "$ref": "Network"
54245	//   },
54246	//   "response": {
54247	//     "$ref": "Operation"
54248	//   },
54249	//   "scopes": [
54250	//     "https://www.googleapis.com/auth/cloud-platform",
54251	//     "https://www.googleapis.com/auth/compute"
54252	//   ]
54253	// }
54254
54255}
54256
54257// method id "compute.networks.list":
54258
54259type NetworksListCall struct {
54260	s            *Service
54261	project      string
54262	urlParams_   gensupport.URLParams
54263	ifNoneMatch_ string
54264	ctx_         context.Context
54265	header_      http.Header
54266}
54267
54268// List: Retrieves the list of networks available to the specified
54269// project.
54270// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/list
54271func (r *NetworksService) List(project string) *NetworksListCall {
54272	c := &NetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54273	c.project = project
54274	return c
54275}
54276
54277// Filter sets the optional parameter "filter": Sets a filter
54278// {expression} for filtering listed resources. Your {expression} must
54279// be in the format: field_name comparison_string literal_string.
54280//
54281// The field_name is the name of the field you want to compare. Only
54282// atomic field types are supported (string, number, boolean). The
54283// comparison_string must be either eq (equals) or ne (not equals). The
54284// literal_string is the string value to filter to. The literal value
54285// must be valid for the type of field you are filtering by (string,
54286// number, boolean). For string fields, the literal value is interpreted
54287// as a regular expression using RE2 syntax. The literal value must
54288// match the entire field.
54289//
54290// For example, to filter for instances that do not have a name of
54291// example-instance, you would use name ne example-instance.
54292//
54293// You can filter on nested fields. For example, you could filter on
54294// instances that have set the scheduling.automaticRestart field to
54295// true. Use filtering on nested fields to take advantage of labels to
54296// organize and search for results based on label values.
54297//
54298// To filter on multiple expressions, provide each separate expression
54299// within parentheses. For example, (scheduling.automaticRestart eq
54300// true) (zone eq us-central1-f). Multiple expressions are treated as
54301// AND expressions, meaning that resources must match all expressions to
54302// pass the filters.
54303func (c *NetworksListCall) Filter(filter string) *NetworksListCall {
54304	c.urlParams_.Set("filter", filter)
54305	return c
54306}
54307
54308// MaxResults sets the optional parameter "maxResults": The maximum
54309// number of results per page that should be returned. If the number of
54310// available results is larger than maxResults, Compute Engine returns a
54311// nextPageToken that can be used to get the next page of results in
54312// subsequent list requests. Acceptable values are 0 to 500, inclusive.
54313// (Default: 500)
54314func (c *NetworksListCall) MaxResults(maxResults int64) *NetworksListCall {
54315	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
54316	return c
54317}
54318
54319// OrderBy sets the optional parameter "orderBy": Sorts list results by
54320// a certain order. By default, results are returned in alphanumerical
54321// order based on the resource name.
54322//
54323// You can also sort results in descending order based on the creation
54324// timestamp using orderBy="creationTimestamp desc". This sorts results
54325// based on the creationTimestamp field in reverse chronological order
54326// (newest result first). Use this to sort resources like operations so
54327// that the newest operation is returned first.
54328//
54329// Currently, only sorting by name or creationTimestamp desc is
54330// supported.
54331func (c *NetworksListCall) OrderBy(orderBy string) *NetworksListCall {
54332	c.urlParams_.Set("orderBy", orderBy)
54333	return c
54334}
54335
54336// PageToken sets the optional parameter "pageToken": Specifies a page
54337// token to use. Set pageToken to the nextPageToken returned by a
54338// previous list request to get the next page of results.
54339func (c *NetworksListCall) PageToken(pageToken string) *NetworksListCall {
54340	c.urlParams_.Set("pageToken", pageToken)
54341	return c
54342}
54343
54344// Fields allows partial responses to be retrieved. See
54345// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54346// for more information.
54347func (c *NetworksListCall) Fields(s ...googleapi.Field) *NetworksListCall {
54348	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54349	return c
54350}
54351
54352// IfNoneMatch sets the optional parameter which makes the operation
54353// fail if the object's ETag matches the given value. This is useful for
54354// getting updates only after the object has changed since the last
54355// request. Use googleapi.IsNotModified to check whether the response
54356// error from Do is the result of In-None-Match.
54357func (c *NetworksListCall) IfNoneMatch(entityTag string) *NetworksListCall {
54358	c.ifNoneMatch_ = entityTag
54359	return c
54360}
54361
54362// Context sets the context to be used in this call's Do method. Any
54363// pending HTTP request will be aborted if the provided context is
54364// canceled.
54365func (c *NetworksListCall) Context(ctx context.Context) *NetworksListCall {
54366	c.ctx_ = ctx
54367	return c
54368}
54369
54370// Header returns an http.Header that can be modified by the caller to
54371// add HTTP headers to the request.
54372func (c *NetworksListCall) Header() http.Header {
54373	if c.header_ == nil {
54374		c.header_ = make(http.Header)
54375	}
54376	return c.header_
54377}
54378
54379func (c *NetworksListCall) doRequest(alt string) (*http.Response, error) {
54380	reqHeaders := make(http.Header)
54381	for k, v := range c.header_ {
54382		reqHeaders[k] = v
54383	}
54384	reqHeaders.Set("User-Agent", c.s.userAgent())
54385	if c.ifNoneMatch_ != "" {
54386		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54387	}
54388	var body io.Reader = nil
54389	c.urlParams_.Set("alt", alt)
54390	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks")
54391	urls += "?" + c.urlParams_.Encode()
54392	req, _ := http.NewRequest("GET", urls, body)
54393	req.Header = reqHeaders
54394	googleapi.Expand(req.URL, map[string]string{
54395		"project": c.project,
54396	})
54397	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54398}
54399
54400// Do executes the "compute.networks.list" call.
54401// Exactly one of *NetworkList or error will be non-nil. Any non-2xx
54402// status code is an error. Response headers are in either
54403// *NetworkList.ServerResponse.Header or (if a response was returned at
54404// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54405// to check whether the returned error was because
54406// http.StatusNotModified was returned.
54407func (c *NetworksListCall) Do(opts ...googleapi.CallOption) (*NetworkList, error) {
54408	gensupport.SetOptions(c.urlParams_, opts...)
54409	res, err := c.doRequest("json")
54410	if res != nil && res.StatusCode == http.StatusNotModified {
54411		if res.Body != nil {
54412			res.Body.Close()
54413		}
54414		return nil, &googleapi.Error{
54415			Code:   res.StatusCode,
54416			Header: res.Header,
54417		}
54418	}
54419	if err != nil {
54420		return nil, err
54421	}
54422	defer googleapi.CloseBody(res)
54423	if err := googleapi.CheckResponse(res); err != nil {
54424		return nil, err
54425	}
54426	ret := &NetworkList{
54427		ServerResponse: googleapi.ServerResponse{
54428			Header:         res.Header,
54429			HTTPStatusCode: res.StatusCode,
54430		},
54431	}
54432	target := &ret
54433	if err := gensupport.DecodeResponse(target, res); err != nil {
54434		return nil, err
54435	}
54436	return ret, nil
54437	// {
54438	//   "description": "Retrieves the list of networks available to the specified project.",
54439	//   "httpMethod": "GET",
54440	//   "id": "compute.networks.list",
54441	//   "parameterOrder": [
54442	//     "project"
54443	//   ],
54444	//   "parameters": {
54445	//     "filter": {
54446	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
54447	//       "location": "query",
54448	//       "type": "string"
54449	//     },
54450	//     "maxResults": {
54451	//       "default": "500",
54452	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
54453	//       "format": "uint32",
54454	//       "location": "query",
54455	//       "minimum": "0",
54456	//       "type": "integer"
54457	//     },
54458	//     "orderBy": {
54459	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
54460	//       "location": "query",
54461	//       "type": "string"
54462	//     },
54463	//     "pageToken": {
54464	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
54465	//       "location": "query",
54466	//       "type": "string"
54467	//     },
54468	//     "project": {
54469	//       "description": "Project ID for this request.",
54470	//       "location": "path",
54471	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54472	//       "required": true,
54473	//       "type": "string"
54474	//     }
54475	//   },
54476	//   "path": "{project}/global/networks",
54477	//   "response": {
54478	//     "$ref": "NetworkList"
54479	//   },
54480	//   "scopes": [
54481	//     "https://www.googleapis.com/auth/cloud-platform",
54482	//     "https://www.googleapis.com/auth/compute",
54483	//     "https://www.googleapis.com/auth/compute.readonly"
54484	//   ]
54485	// }
54486
54487}
54488
54489// Pages invokes f for each page of results.
54490// A non-nil error returned from f will halt the iteration.
54491// The provided context supersedes any context provided to the Context method.
54492func (c *NetworksListCall) Pages(ctx context.Context, f func(*NetworkList) error) error {
54493	c.ctx_ = ctx
54494	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
54495	for {
54496		x, err := c.Do()
54497		if err != nil {
54498			return err
54499		}
54500		if err := f(x); err != nil {
54501			return err
54502		}
54503		if x.NextPageToken == "" {
54504			return nil
54505		}
54506		c.PageToken(x.NextPageToken)
54507	}
54508}
54509
54510// method id "compute.networks.patch":
54511
54512type NetworksPatchCall struct {
54513	s          *Service
54514	project    string
54515	network    string
54516	network2   *Network
54517	urlParams_ gensupport.URLParams
54518	ctx_       context.Context
54519	header_    http.Header
54520}
54521
54522// Patch: Patches the specified network with the data included in the
54523// request. Only the following fields can be modified:
54524// routingConfig.routingMode.
54525func (r *NetworksService) Patch(project string, network string, network2 *Network) *NetworksPatchCall {
54526	c := &NetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54527	c.project = project
54528	c.network = network
54529	c.network2 = network2
54530	return c
54531}
54532
54533// RequestId sets the optional parameter "requestId": An optional
54534// request ID to identify requests. Specify a unique request ID so that
54535// if you must retry your request, the server will know to ignore the
54536// request if it has already been completed.
54537//
54538// For example, consider a situation where you make an initial request
54539// and the request times out. If you make the request again with the
54540// same request ID, the server can check if original operation with the
54541// same request ID was received, and if so, will ignore the second
54542// request. This prevents clients from accidentally creating duplicate
54543// commitments.
54544//
54545// The request ID must be a valid UUID with the exception that zero UUID
54546// is not supported (00000000-0000-0000-0000-000000000000).
54547func (c *NetworksPatchCall) RequestId(requestId string) *NetworksPatchCall {
54548	c.urlParams_.Set("requestId", requestId)
54549	return c
54550}
54551
54552// Fields allows partial responses to be retrieved. See
54553// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54554// for more information.
54555func (c *NetworksPatchCall) Fields(s ...googleapi.Field) *NetworksPatchCall {
54556	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54557	return c
54558}
54559
54560// Context sets the context to be used in this call's Do method. Any
54561// pending HTTP request will be aborted if the provided context is
54562// canceled.
54563func (c *NetworksPatchCall) Context(ctx context.Context) *NetworksPatchCall {
54564	c.ctx_ = ctx
54565	return c
54566}
54567
54568// Header returns an http.Header that can be modified by the caller to
54569// add HTTP headers to the request.
54570func (c *NetworksPatchCall) Header() http.Header {
54571	if c.header_ == nil {
54572		c.header_ = make(http.Header)
54573	}
54574	return c.header_
54575}
54576
54577func (c *NetworksPatchCall) doRequest(alt string) (*http.Response, error) {
54578	reqHeaders := make(http.Header)
54579	for k, v := range c.header_ {
54580		reqHeaders[k] = v
54581	}
54582	reqHeaders.Set("User-Agent", c.s.userAgent())
54583	var body io.Reader = nil
54584	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network2)
54585	if err != nil {
54586		return nil, err
54587	}
54588	reqHeaders.Set("Content-Type", "application/json")
54589	c.urlParams_.Set("alt", alt)
54590	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
54591	urls += "?" + c.urlParams_.Encode()
54592	req, _ := http.NewRequest("PATCH", urls, body)
54593	req.Header = reqHeaders
54594	googleapi.Expand(req.URL, map[string]string{
54595		"project": c.project,
54596		"network": c.network,
54597	})
54598	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54599}
54600
54601// Do executes the "compute.networks.patch" call.
54602// Exactly one of *Operation or error will be non-nil. Any non-2xx
54603// status code is an error. Response headers are in either
54604// *Operation.ServerResponse.Header or (if a response was returned at
54605// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54606// to check whether the returned error was because
54607// http.StatusNotModified was returned.
54608func (c *NetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54609	gensupport.SetOptions(c.urlParams_, opts...)
54610	res, err := c.doRequest("json")
54611	if res != nil && res.StatusCode == http.StatusNotModified {
54612		if res.Body != nil {
54613			res.Body.Close()
54614		}
54615		return nil, &googleapi.Error{
54616			Code:   res.StatusCode,
54617			Header: res.Header,
54618		}
54619	}
54620	if err != nil {
54621		return nil, err
54622	}
54623	defer googleapi.CloseBody(res)
54624	if err := googleapi.CheckResponse(res); err != nil {
54625		return nil, err
54626	}
54627	ret := &Operation{
54628		ServerResponse: googleapi.ServerResponse{
54629			Header:         res.Header,
54630			HTTPStatusCode: res.StatusCode,
54631		},
54632	}
54633	target := &ret
54634	if err := gensupport.DecodeResponse(target, res); err != nil {
54635		return nil, err
54636	}
54637	return ret, nil
54638	// {
54639	//   "description": "Patches the specified network with the data included in the request. Only the following fields can be modified: routingConfig.routingMode.",
54640	//   "httpMethod": "PATCH",
54641	//   "id": "compute.networks.patch",
54642	//   "parameterOrder": [
54643	//     "project",
54644	//     "network"
54645	//   ],
54646	//   "parameters": {
54647	//     "network": {
54648	//       "description": "Name of the network to update.",
54649	//       "location": "path",
54650	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54651	//       "required": true,
54652	//       "type": "string"
54653	//     },
54654	//     "project": {
54655	//       "description": "Project ID for this request.",
54656	//       "location": "path",
54657	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54658	//       "required": true,
54659	//       "type": "string"
54660	//     },
54661	//     "requestId": {
54662	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54663	//       "location": "query",
54664	//       "type": "string"
54665	//     }
54666	//   },
54667	//   "path": "{project}/global/networks/{network}",
54668	//   "request": {
54669	//     "$ref": "Network"
54670	//   },
54671	//   "response": {
54672	//     "$ref": "Operation"
54673	//   },
54674	//   "scopes": [
54675	//     "https://www.googleapis.com/auth/cloud-platform",
54676	//     "https://www.googleapis.com/auth/compute"
54677	//   ]
54678	// }
54679
54680}
54681
54682// method id "compute.networks.removePeering":
54683
54684type NetworksRemovePeeringCall struct {
54685	s                            *Service
54686	project                      string
54687	network                      string
54688	networksremovepeeringrequest *NetworksRemovePeeringRequest
54689	urlParams_                   gensupport.URLParams
54690	ctx_                         context.Context
54691	header_                      http.Header
54692}
54693
54694// RemovePeering: Removes a peering from the specified network.
54695func (r *NetworksService) RemovePeering(project string, network string, networksremovepeeringrequest *NetworksRemovePeeringRequest) *NetworksRemovePeeringCall {
54696	c := &NetworksRemovePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54697	c.project = project
54698	c.network = network
54699	c.networksremovepeeringrequest = networksremovepeeringrequest
54700	return c
54701}
54702
54703// RequestId sets the optional parameter "requestId": An optional
54704// request ID to identify requests. Specify a unique request ID so that
54705// if you must retry your request, the server will know to ignore the
54706// request if it has already been completed.
54707//
54708// For example, consider a situation where you make an initial request
54709// and the request times out. If you make the request again with the
54710// same request ID, the server can check if original operation with the
54711// same request ID was received, and if so, will ignore the second
54712// request. This prevents clients from accidentally creating duplicate
54713// commitments.
54714//
54715// The request ID must be a valid UUID with the exception that zero UUID
54716// is not supported (00000000-0000-0000-0000-000000000000).
54717func (c *NetworksRemovePeeringCall) RequestId(requestId string) *NetworksRemovePeeringCall {
54718	c.urlParams_.Set("requestId", requestId)
54719	return c
54720}
54721
54722// Fields allows partial responses to be retrieved. See
54723// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54724// for more information.
54725func (c *NetworksRemovePeeringCall) Fields(s ...googleapi.Field) *NetworksRemovePeeringCall {
54726	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54727	return c
54728}
54729
54730// Context sets the context to be used in this call's Do method. Any
54731// pending HTTP request will be aborted if the provided context is
54732// canceled.
54733func (c *NetworksRemovePeeringCall) Context(ctx context.Context) *NetworksRemovePeeringCall {
54734	c.ctx_ = ctx
54735	return c
54736}
54737
54738// Header returns an http.Header that can be modified by the caller to
54739// add HTTP headers to the request.
54740func (c *NetworksRemovePeeringCall) Header() http.Header {
54741	if c.header_ == nil {
54742		c.header_ = make(http.Header)
54743	}
54744	return c.header_
54745}
54746
54747func (c *NetworksRemovePeeringCall) doRequest(alt string) (*http.Response, error) {
54748	reqHeaders := make(http.Header)
54749	for k, v := range c.header_ {
54750		reqHeaders[k] = v
54751	}
54752	reqHeaders.Set("User-Agent", c.s.userAgent())
54753	var body io.Reader = nil
54754	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksremovepeeringrequest)
54755	if err != nil {
54756		return nil, err
54757	}
54758	reqHeaders.Set("Content-Type", "application/json")
54759	c.urlParams_.Set("alt", alt)
54760	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/removePeering")
54761	urls += "?" + c.urlParams_.Encode()
54762	req, _ := http.NewRequest("POST", urls, body)
54763	req.Header = reqHeaders
54764	googleapi.Expand(req.URL, map[string]string{
54765		"project": c.project,
54766		"network": c.network,
54767	})
54768	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54769}
54770
54771// Do executes the "compute.networks.removePeering" call.
54772// Exactly one of *Operation or error will be non-nil. Any non-2xx
54773// status code is an error. Response headers are in either
54774// *Operation.ServerResponse.Header or (if a response was returned at
54775// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54776// to check whether the returned error was because
54777// http.StatusNotModified was returned.
54778func (c *NetworksRemovePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54779	gensupport.SetOptions(c.urlParams_, opts...)
54780	res, err := c.doRequest("json")
54781	if res != nil && res.StatusCode == http.StatusNotModified {
54782		if res.Body != nil {
54783			res.Body.Close()
54784		}
54785		return nil, &googleapi.Error{
54786			Code:   res.StatusCode,
54787			Header: res.Header,
54788		}
54789	}
54790	if err != nil {
54791		return nil, err
54792	}
54793	defer googleapi.CloseBody(res)
54794	if err := googleapi.CheckResponse(res); err != nil {
54795		return nil, err
54796	}
54797	ret := &Operation{
54798		ServerResponse: googleapi.ServerResponse{
54799			Header:         res.Header,
54800			HTTPStatusCode: res.StatusCode,
54801		},
54802	}
54803	target := &ret
54804	if err := gensupport.DecodeResponse(target, res); err != nil {
54805		return nil, err
54806	}
54807	return ret, nil
54808	// {
54809	//   "description": "Removes a peering from the specified network.",
54810	//   "httpMethod": "POST",
54811	//   "id": "compute.networks.removePeering",
54812	//   "parameterOrder": [
54813	//     "project",
54814	//     "network"
54815	//   ],
54816	//   "parameters": {
54817	//     "network": {
54818	//       "description": "Name of the network resource to remove peering from.",
54819	//       "location": "path",
54820	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54821	//       "required": true,
54822	//       "type": "string"
54823	//     },
54824	//     "project": {
54825	//       "description": "Project ID for this request.",
54826	//       "location": "path",
54827	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54828	//       "required": true,
54829	//       "type": "string"
54830	//     },
54831	//     "requestId": {
54832	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54833	//       "location": "query",
54834	//       "type": "string"
54835	//     }
54836	//   },
54837	//   "path": "{project}/global/networks/{network}/removePeering",
54838	//   "request": {
54839	//     "$ref": "NetworksRemovePeeringRequest"
54840	//   },
54841	//   "response": {
54842	//     "$ref": "Operation"
54843	//   },
54844	//   "scopes": [
54845	//     "https://www.googleapis.com/auth/cloud-platform",
54846	//     "https://www.googleapis.com/auth/compute"
54847	//   ]
54848	// }
54849
54850}
54851
54852// method id "compute.networks.switchToCustomMode":
54853
54854type NetworksSwitchToCustomModeCall struct {
54855	s          *Service
54856	project    string
54857	network    string
54858	urlParams_ gensupport.URLParams
54859	ctx_       context.Context
54860	header_    http.Header
54861}
54862
54863// SwitchToCustomMode: Switches the network mode from auto subnet mode
54864// to custom subnet mode.
54865func (r *NetworksService) SwitchToCustomMode(project string, network string) *NetworksSwitchToCustomModeCall {
54866	c := &NetworksSwitchToCustomModeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54867	c.project = project
54868	c.network = network
54869	return c
54870}
54871
54872// RequestId sets the optional parameter "requestId": An optional
54873// request ID to identify requests. Specify a unique request ID so that
54874// if you must retry your request, the server will know to ignore the
54875// request if it has already been completed.
54876//
54877// For example, consider a situation where you make an initial request
54878// and the request times out. If you make the request again with the
54879// same request ID, the server can check if original operation with the
54880// same request ID was received, and if so, will ignore the second
54881// request. This prevents clients from accidentally creating duplicate
54882// commitments.
54883//
54884// The request ID must be a valid UUID with the exception that zero UUID
54885// is not supported (00000000-0000-0000-0000-000000000000).
54886func (c *NetworksSwitchToCustomModeCall) RequestId(requestId string) *NetworksSwitchToCustomModeCall {
54887	c.urlParams_.Set("requestId", requestId)
54888	return c
54889}
54890
54891// Fields allows partial responses to be retrieved. See
54892// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54893// for more information.
54894func (c *NetworksSwitchToCustomModeCall) Fields(s ...googleapi.Field) *NetworksSwitchToCustomModeCall {
54895	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54896	return c
54897}
54898
54899// Context sets the context to be used in this call's Do method. Any
54900// pending HTTP request will be aborted if the provided context is
54901// canceled.
54902func (c *NetworksSwitchToCustomModeCall) Context(ctx context.Context) *NetworksSwitchToCustomModeCall {
54903	c.ctx_ = ctx
54904	return c
54905}
54906
54907// Header returns an http.Header that can be modified by the caller to
54908// add HTTP headers to the request.
54909func (c *NetworksSwitchToCustomModeCall) Header() http.Header {
54910	if c.header_ == nil {
54911		c.header_ = make(http.Header)
54912	}
54913	return c.header_
54914}
54915
54916func (c *NetworksSwitchToCustomModeCall) doRequest(alt string) (*http.Response, error) {
54917	reqHeaders := make(http.Header)
54918	for k, v := range c.header_ {
54919		reqHeaders[k] = v
54920	}
54921	reqHeaders.Set("User-Agent", c.s.userAgent())
54922	var body io.Reader = nil
54923	c.urlParams_.Set("alt", alt)
54924	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/switchToCustomMode")
54925	urls += "?" + c.urlParams_.Encode()
54926	req, _ := http.NewRequest("POST", urls, body)
54927	req.Header = reqHeaders
54928	googleapi.Expand(req.URL, map[string]string{
54929		"project": c.project,
54930		"network": c.network,
54931	})
54932	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54933}
54934
54935// Do executes the "compute.networks.switchToCustomMode" call.
54936// Exactly one of *Operation or error will be non-nil. Any non-2xx
54937// status code is an error. Response headers are in either
54938// *Operation.ServerResponse.Header or (if a response was returned at
54939// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54940// to check whether the returned error was because
54941// http.StatusNotModified was returned.
54942func (c *NetworksSwitchToCustomModeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54943	gensupport.SetOptions(c.urlParams_, opts...)
54944	res, err := c.doRequest("json")
54945	if res != nil && res.StatusCode == http.StatusNotModified {
54946		if res.Body != nil {
54947			res.Body.Close()
54948		}
54949		return nil, &googleapi.Error{
54950			Code:   res.StatusCode,
54951			Header: res.Header,
54952		}
54953	}
54954	if err != nil {
54955		return nil, err
54956	}
54957	defer googleapi.CloseBody(res)
54958	if err := googleapi.CheckResponse(res); err != nil {
54959		return nil, err
54960	}
54961	ret := &Operation{
54962		ServerResponse: googleapi.ServerResponse{
54963			Header:         res.Header,
54964			HTTPStatusCode: res.StatusCode,
54965		},
54966	}
54967	target := &ret
54968	if err := gensupport.DecodeResponse(target, res); err != nil {
54969		return nil, err
54970	}
54971	return ret, nil
54972	// {
54973	//   "description": "Switches the network mode from auto subnet mode to custom subnet mode.",
54974	//   "httpMethod": "POST",
54975	//   "id": "compute.networks.switchToCustomMode",
54976	//   "parameterOrder": [
54977	//     "project",
54978	//     "network"
54979	//   ],
54980	//   "parameters": {
54981	//     "network": {
54982	//       "description": "Name of the network to be updated.",
54983	//       "location": "path",
54984	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54985	//       "required": true,
54986	//       "type": "string"
54987	//     },
54988	//     "project": {
54989	//       "description": "Project ID for this request.",
54990	//       "location": "path",
54991	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54992	//       "required": true,
54993	//       "type": "string"
54994	//     },
54995	//     "requestId": {
54996	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54997	//       "location": "query",
54998	//       "type": "string"
54999	//     }
55000	//   },
55001	//   "path": "{project}/global/networks/{network}/switchToCustomMode",
55002	//   "response": {
55003	//     "$ref": "Operation"
55004	//   },
55005	//   "scopes": [
55006	//     "https://www.googleapis.com/auth/cloud-platform",
55007	//     "https://www.googleapis.com/auth/compute"
55008	//   ]
55009	// }
55010
55011}
55012
55013// method id "compute.projects.disableXpnHost":
55014
55015type ProjectsDisableXpnHostCall struct {
55016	s          *Service
55017	project    string
55018	urlParams_ gensupport.URLParams
55019	ctx_       context.Context
55020	header_    http.Header
55021}
55022
55023// DisableXpnHost: Disable this project as a shared VPC host project.
55024func (r *ProjectsService) DisableXpnHost(project string) *ProjectsDisableXpnHostCall {
55025	c := &ProjectsDisableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55026	c.project = project
55027	return c
55028}
55029
55030// RequestId sets the optional parameter "requestId": An optional
55031// request ID to identify requests. Specify a unique request ID so that
55032// if you must retry your request, the server will know to ignore the
55033// request if it has already been completed.
55034//
55035// For example, consider a situation where you make an initial request
55036// and the request times out. If you make the request again with the
55037// same request ID, the server can check if original operation with the
55038// same request ID was received, and if so, will ignore the second
55039// request. This prevents clients from accidentally creating duplicate
55040// commitments.
55041//
55042// The request ID must be a valid UUID with the exception that zero UUID
55043// is not supported (00000000-0000-0000-0000-000000000000).
55044func (c *ProjectsDisableXpnHostCall) RequestId(requestId string) *ProjectsDisableXpnHostCall {
55045	c.urlParams_.Set("requestId", requestId)
55046	return c
55047}
55048
55049// Fields allows partial responses to be retrieved. See
55050// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55051// for more information.
55052func (c *ProjectsDisableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnHostCall {
55053	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55054	return c
55055}
55056
55057// Context sets the context to be used in this call's Do method. Any
55058// pending HTTP request will be aborted if the provided context is
55059// canceled.
55060func (c *ProjectsDisableXpnHostCall) Context(ctx context.Context) *ProjectsDisableXpnHostCall {
55061	c.ctx_ = ctx
55062	return c
55063}
55064
55065// Header returns an http.Header that can be modified by the caller to
55066// add HTTP headers to the request.
55067func (c *ProjectsDisableXpnHostCall) Header() http.Header {
55068	if c.header_ == nil {
55069		c.header_ = make(http.Header)
55070	}
55071	return c.header_
55072}
55073
55074func (c *ProjectsDisableXpnHostCall) doRequest(alt string) (*http.Response, error) {
55075	reqHeaders := make(http.Header)
55076	for k, v := range c.header_ {
55077		reqHeaders[k] = v
55078	}
55079	reqHeaders.Set("User-Agent", c.s.userAgent())
55080	var body io.Reader = nil
55081	c.urlParams_.Set("alt", alt)
55082	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/disableXpnHost")
55083	urls += "?" + c.urlParams_.Encode()
55084	req, _ := http.NewRequest("POST", urls, body)
55085	req.Header = reqHeaders
55086	googleapi.Expand(req.URL, map[string]string{
55087		"project": c.project,
55088	})
55089	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55090}
55091
55092// Do executes the "compute.projects.disableXpnHost" call.
55093// Exactly one of *Operation or error will be non-nil. Any non-2xx
55094// status code is an error. Response headers are in either
55095// *Operation.ServerResponse.Header or (if a response was returned at
55096// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55097// to check whether the returned error was because
55098// http.StatusNotModified was returned.
55099func (c *ProjectsDisableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55100	gensupport.SetOptions(c.urlParams_, opts...)
55101	res, err := c.doRequest("json")
55102	if res != nil && res.StatusCode == http.StatusNotModified {
55103		if res.Body != nil {
55104			res.Body.Close()
55105		}
55106		return nil, &googleapi.Error{
55107			Code:   res.StatusCode,
55108			Header: res.Header,
55109		}
55110	}
55111	if err != nil {
55112		return nil, err
55113	}
55114	defer googleapi.CloseBody(res)
55115	if err := googleapi.CheckResponse(res); err != nil {
55116		return nil, err
55117	}
55118	ret := &Operation{
55119		ServerResponse: googleapi.ServerResponse{
55120			Header:         res.Header,
55121			HTTPStatusCode: res.StatusCode,
55122		},
55123	}
55124	target := &ret
55125	if err := gensupport.DecodeResponse(target, res); err != nil {
55126		return nil, err
55127	}
55128	return ret, nil
55129	// {
55130	//   "description": "Disable this project as a shared VPC host project.",
55131	//   "httpMethod": "POST",
55132	//   "id": "compute.projects.disableXpnHost",
55133	//   "parameterOrder": [
55134	//     "project"
55135	//   ],
55136	//   "parameters": {
55137	//     "project": {
55138	//       "description": "Project ID for this request.",
55139	//       "location": "path",
55140	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55141	//       "required": true,
55142	//       "type": "string"
55143	//     },
55144	//     "requestId": {
55145	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55146	//       "location": "query",
55147	//       "type": "string"
55148	//     }
55149	//   },
55150	//   "path": "{project}/disableXpnHost",
55151	//   "response": {
55152	//     "$ref": "Operation"
55153	//   },
55154	//   "scopes": [
55155	//     "https://www.googleapis.com/auth/cloud-platform",
55156	//     "https://www.googleapis.com/auth/compute"
55157	//   ]
55158	// }
55159
55160}
55161
55162// method id "compute.projects.disableXpnResource":
55163
55164type ProjectsDisableXpnResourceCall struct {
55165	s                                 *Service
55166	project                           string
55167	projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest
55168	urlParams_                        gensupport.URLParams
55169	ctx_                              context.Context
55170	header_                           http.Header
55171}
55172
55173// DisableXpnResource: Disable a serivce resource (a.k.a service
55174// project) associated with this host project.
55175func (r *ProjectsService) DisableXpnResource(project string, projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest) *ProjectsDisableXpnResourceCall {
55176	c := &ProjectsDisableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55177	c.project = project
55178	c.projectsdisablexpnresourcerequest = projectsdisablexpnresourcerequest
55179	return c
55180}
55181
55182// RequestId sets the optional parameter "requestId": An optional
55183// request ID to identify requests. Specify a unique request ID so that
55184// if you must retry your request, the server will know to ignore the
55185// request if it has already been completed.
55186//
55187// For example, consider a situation where you make an initial request
55188// and the request times out. If you make the request again with the
55189// same request ID, the server can check if original operation with the
55190// same request ID was received, and if so, will ignore the second
55191// request. This prevents clients from accidentally creating duplicate
55192// commitments.
55193//
55194// The request ID must be a valid UUID with the exception that zero UUID
55195// is not supported (00000000-0000-0000-0000-000000000000).
55196func (c *ProjectsDisableXpnResourceCall) RequestId(requestId string) *ProjectsDisableXpnResourceCall {
55197	c.urlParams_.Set("requestId", requestId)
55198	return c
55199}
55200
55201// Fields allows partial responses to be retrieved. See
55202// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55203// for more information.
55204func (c *ProjectsDisableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnResourceCall {
55205	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55206	return c
55207}
55208
55209// Context sets the context to be used in this call's Do method. Any
55210// pending HTTP request will be aborted if the provided context is
55211// canceled.
55212func (c *ProjectsDisableXpnResourceCall) Context(ctx context.Context) *ProjectsDisableXpnResourceCall {
55213	c.ctx_ = ctx
55214	return c
55215}
55216
55217// Header returns an http.Header that can be modified by the caller to
55218// add HTTP headers to the request.
55219func (c *ProjectsDisableXpnResourceCall) Header() http.Header {
55220	if c.header_ == nil {
55221		c.header_ = make(http.Header)
55222	}
55223	return c.header_
55224}
55225
55226func (c *ProjectsDisableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
55227	reqHeaders := make(http.Header)
55228	for k, v := range c.header_ {
55229		reqHeaders[k] = v
55230	}
55231	reqHeaders.Set("User-Agent", c.s.userAgent())
55232	var body io.Reader = nil
55233	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsdisablexpnresourcerequest)
55234	if err != nil {
55235		return nil, err
55236	}
55237	reqHeaders.Set("Content-Type", "application/json")
55238	c.urlParams_.Set("alt", alt)
55239	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/disableXpnResource")
55240	urls += "?" + c.urlParams_.Encode()
55241	req, _ := http.NewRequest("POST", urls, body)
55242	req.Header = reqHeaders
55243	googleapi.Expand(req.URL, map[string]string{
55244		"project": c.project,
55245	})
55246	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55247}
55248
55249// Do executes the "compute.projects.disableXpnResource" call.
55250// Exactly one of *Operation or error will be non-nil. Any non-2xx
55251// status code is an error. Response headers are in either
55252// *Operation.ServerResponse.Header or (if a response was returned at
55253// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55254// to check whether the returned error was because
55255// http.StatusNotModified was returned.
55256func (c *ProjectsDisableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55257	gensupport.SetOptions(c.urlParams_, opts...)
55258	res, err := c.doRequest("json")
55259	if res != nil && res.StatusCode == http.StatusNotModified {
55260		if res.Body != nil {
55261			res.Body.Close()
55262		}
55263		return nil, &googleapi.Error{
55264			Code:   res.StatusCode,
55265			Header: res.Header,
55266		}
55267	}
55268	if err != nil {
55269		return nil, err
55270	}
55271	defer googleapi.CloseBody(res)
55272	if err := googleapi.CheckResponse(res); err != nil {
55273		return nil, err
55274	}
55275	ret := &Operation{
55276		ServerResponse: googleapi.ServerResponse{
55277			Header:         res.Header,
55278			HTTPStatusCode: res.StatusCode,
55279		},
55280	}
55281	target := &ret
55282	if err := gensupport.DecodeResponse(target, res); err != nil {
55283		return nil, err
55284	}
55285	return ret, nil
55286	// {
55287	//   "description": "Disable a serivce resource (a.k.a service project) associated with this host project.",
55288	//   "httpMethod": "POST",
55289	//   "id": "compute.projects.disableXpnResource",
55290	//   "parameterOrder": [
55291	//     "project"
55292	//   ],
55293	//   "parameters": {
55294	//     "project": {
55295	//       "description": "Project ID for this request.",
55296	//       "location": "path",
55297	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55298	//       "required": true,
55299	//       "type": "string"
55300	//     },
55301	//     "requestId": {
55302	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55303	//       "location": "query",
55304	//       "type": "string"
55305	//     }
55306	//   },
55307	//   "path": "{project}/disableXpnResource",
55308	//   "request": {
55309	//     "$ref": "ProjectsDisableXpnResourceRequest"
55310	//   },
55311	//   "response": {
55312	//     "$ref": "Operation"
55313	//   },
55314	//   "scopes": [
55315	//     "https://www.googleapis.com/auth/cloud-platform",
55316	//     "https://www.googleapis.com/auth/compute"
55317	//   ]
55318	// }
55319
55320}
55321
55322// method id "compute.projects.enableXpnHost":
55323
55324type ProjectsEnableXpnHostCall struct {
55325	s          *Service
55326	project    string
55327	urlParams_ gensupport.URLParams
55328	ctx_       context.Context
55329	header_    http.Header
55330}
55331
55332// EnableXpnHost: Enable this project as a shared VPC host project.
55333func (r *ProjectsService) EnableXpnHost(project string) *ProjectsEnableXpnHostCall {
55334	c := &ProjectsEnableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55335	c.project = project
55336	return c
55337}
55338
55339// RequestId sets the optional parameter "requestId": An optional
55340// request ID to identify requests. Specify a unique request ID so that
55341// if you must retry your request, the server will know to ignore the
55342// request if it has already been completed.
55343//
55344// For example, consider a situation where you make an initial request
55345// and the request times out. If you make the request again with the
55346// same request ID, the server can check if original operation with the
55347// same request ID was received, and if so, will ignore the second
55348// request. This prevents clients from accidentally creating duplicate
55349// commitments.
55350//
55351// The request ID must be a valid UUID with the exception that zero UUID
55352// is not supported (00000000-0000-0000-0000-000000000000).
55353func (c *ProjectsEnableXpnHostCall) RequestId(requestId string) *ProjectsEnableXpnHostCall {
55354	c.urlParams_.Set("requestId", requestId)
55355	return c
55356}
55357
55358// Fields allows partial responses to be retrieved. See
55359// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55360// for more information.
55361func (c *ProjectsEnableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnHostCall {
55362	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55363	return c
55364}
55365
55366// Context sets the context to be used in this call's Do method. Any
55367// pending HTTP request will be aborted if the provided context is
55368// canceled.
55369func (c *ProjectsEnableXpnHostCall) Context(ctx context.Context) *ProjectsEnableXpnHostCall {
55370	c.ctx_ = ctx
55371	return c
55372}
55373
55374// Header returns an http.Header that can be modified by the caller to
55375// add HTTP headers to the request.
55376func (c *ProjectsEnableXpnHostCall) Header() http.Header {
55377	if c.header_ == nil {
55378		c.header_ = make(http.Header)
55379	}
55380	return c.header_
55381}
55382
55383func (c *ProjectsEnableXpnHostCall) doRequest(alt string) (*http.Response, error) {
55384	reqHeaders := make(http.Header)
55385	for k, v := range c.header_ {
55386		reqHeaders[k] = v
55387	}
55388	reqHeaders.Set("User-Agent", c.s.userAgent())
55389	var body io.Reader = nil
55390	c.urlParams_.Set("alt", alt)
55391	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/enableXpnHost")
55392	urls += "?" + c.urlParams_.Encode()
55393	req, _ := http.NewRequest("POST", urls, body)
55394	req.Header = reqHeaders
55395	googleapi.Expand(req.URL, map[string]string{
55396		"project": c.project,
55397	})
55398	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55399}
55400
55401// Do executes the "compute.projects.enableXpnHost" call.
55402// Exactly one of *Operation or error will be non-nil. Any non-2xx
55403// status code is an error. Response headers are in either
55404// *Operation.ServerResponse.Header or (if a response was returned at
55405// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55406// to check whether the returned error was because
55407// http.StatusNotModified was returned.
55408func (c *ProjectsEnableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55409	gensupport.SetOptions(c.urlParams_, opts...)
55410	res, err := c.doRequest("json")
55411	if res != nil && res.StatusCode == http.StatusNotModified {
55412		if res.Body != nil {
55413			res.Body.Close()
55414		}
55415		return nil, &googleapi.Error{
55416			Code:   res.StatusCode,
55417			Header: res.Header,
55418		}
55419	}
55420	if err != nil {
55421		return nil, err
55422	}
55423	defer googleapi.CloseBody(res)
55424	if err := googleapi.CheckResponse(res); err != nil {
55425		return nil, err
55426	}
55427	ret := &Operation{
55428		ServerResponse: googleapi.ServerResponse{
55429			Header:         res.Header,
55430			HTTPStatusCode: res.StatusCode,
55431		},
55432	}
55433	target := &ret
55434	if err := gensupport.DecodeResponse(target, res); err != nil {
55435		return nil, err
55436	}
55437	return ret, nil
55438	// {
55439	//   "description": "Enable this project as a shared VPC host project.",
55440	//   "httpMethod": "POST",
55441	//   "id": "compute.projects.enableXpnHost",
55442	//   "parameterOrder": [
55443	//     "project"
55444	//   ],
55445	//   "parameters": {
55446	//     "project": {
55447	//       "description": "Project ID for this request.",
55448	//       "location": "path",
55449	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55450	//       "required": true,
55451	//       "type": "string"
55452	//     },
55453	//     "requestId": {
55454	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55455	//       "location": "query",
55456	//       "type": "string"
55457	//     }
55458	//   },
55459	//   "path": "{project}/enableXpnHost",
55460	//   "response": {
55461	//     "$ref": "Operation"
55462	//   },
55463	//   "scopes": [
55464	//     "https://www.googleapis.com/auth/cloud-platform",
55465	//     "https://www.googleapis.com/auth/compute"
55466	//   ]
55467	// }
55468
55469}
55470
55471// method id "compute.projects.enableXpnResource":
55472
55473type ProjectsEnableXpnResourceCall struct {
55474	s                                *Service
55475	project                          string
55476	projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest
55477	urlParams_                       gensupport.URLParams
55478	ctx_                             context.Context
55479	header_                          http.Header
55480}
55481
55482// EnableXpnResource: Enable service resource (a.k.a service project)
55483// for a host project, so that subnets in the host project can be used
55484// by instances in the service project.
55485func (r *ProjectsService) EnableXpnResource(project string, projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest) *ProjectsEnableXpnResourceCall {
55486	c := &ProjectsEnableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55487	c.project = project
55488	c.projectsenablexpnresourcerequest = projectsenablexpnresourcerequest
55489	return c
55490}
55491
55492// RequestId sets the optional parameter "requestId": An optional
55493// request ID to identify requests. Specify a unique request ID so that
55494// if you must retry your request, the server will know to ignore the
55495// request if it has already been completed.
55496//
55497// For example, consider a situation where you make an initial request
55498// and the request times out. If you make the request again with the
55499// same request ID, the server can check if original operation with the
55500// same request ID was received, and if so, will ignore the second
55501// request. This prevents clients from accidentally creating duplicate
55502// commitments.
55503//
55504// The request ID must be a valid UUID with the exception that zero UUID
55505// is not supported (00000000-0000-0000-0000-000000000000).
55506func (c *ProjectsEnableXpnResourceCall) RequestId(requestId string) *ProjectsEnableXpnResourceCall {
55507	c.urlParams_.Set("requestId", requestId)
55508	return c
55509}
55510
55511// Fields allows partial responses to be retrieved. See
55512// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55513// for more information.
55514func (c *ProjectsEnableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnResourceCall {
55515	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55516	return c
55517}
55518
55519// Context sets the context to be used in this call's Do method. Any
55520// pending HTTP request will be aborted if the provided context is
55521// canceled.
55522func (c *ProjectsEnableXpnResourceCall) Context(ctx context.Context) *ProjectsEnableXpnResourceCall {
55523	c.ctx_ = ctx
55524	return c
55525}
55526
55527// Header returns an http.Header that can be modified by the caller to
55528// add HTTP headers to the request.
55529func (c *ProjectsEnableXpnResourceCall) Header() http.Header {
55530	if c.header_ == nil {
55531		c.header_ = make(http.Header)
55532	}
55533	return c.header_
55534}
55535
55536func (c *ProjectsEnableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
55537	reqHeaders := make(http.Header)
55538	for k, v := range c.header_ {
55539		reqHeaders[k] = v
55540	}
55541	reqHeaders.Set("User-Agent", c.s.userAgent())
55542	var body io.Reader = nil
55543	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsenablexpnresourcerequest)
55544	if err != nil {
55545		return nil, err
55546	}
55547	reqHeaders.Set("Content-Type", "application/json")
55548	c.urlParams_.Set("alt", alt)
55549	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/enableXpnResource")
55550	urls += "?" + c.urlParams_.Encode()
55551	req, _ := http.NewRequest("POST", urls, body)
55552	req.Header = reqHeaders
55553	googleapi.Expand(req.URL, map[string]string{
55554		"project": c.project,
55555	})
55556	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55557}
55558
55559// Do executes the "compute.projects.enableXpnResource" call.
55560// Exactly one of *Operation or error will be non-nil. Any non-2xx
55561// status code is an error. Response headers are in either
55562// *Operation.ServerResponse.Header or (if a response was returned at
55563// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55564// to check whether the returned error was because
55565// http.StatusNotModified was returned.
55566func (c *ProjectsEnableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55567	gensupport.SetOptions(c.urlParams_, opts...)
55568	res, err := c.doRequest("json")
55569	if res != nil && res.StatusCode == http.StatusNotModified {
55570		if res.Body != nil {
55571			res.Body.Close()
55572		}
55573		return nil, &googleapi.Error{
55574			Code:   res.StatusCode,
55575			Header: res.Header,
55576		}
55577	}
55578	if err != nil {
55579		return nil, err
55580	}
55581	defer googleapi.CloseBody(res)
55582	if err := googleapi.CheckResponse(res); err != nil {
55583		return nil, err
55584	}
55585	ret := &Operation{
55586		ServerResponse: googleapi.ServerResponse{
55587			Header:         res.Header,
55588			HTTPStatusCode: res.StatusCode,
55589		},
55590	}
55591	target := &ret
55592	if err := gensupport.DecodeResponse(target, res); err != nil {
55593		return nil, err
55594	}
55595	return ret, nil
55596	// {
55597	//   "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.",
55598	//   "httpMethod": "POST",
55599	//   "id": "compute.projects.enableXpnResource",
55600	//   "parameterOrder": [
55601	//     "project"
55602	//   ],
55603	//   "parameters": {
55604	//     "project": {
55605	//       "description": "Project ID for this request.",
55606	//       "location": "path",
55607	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55608	//       "required": true,
55609	//       "type": "string"
55610	//     },
55611	//     "requestId": {
55612	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55613	//       "location": "query",
55614	//       "type": "string"
55615	//     }
55616	//   },
55617	//   "path": "{project}/enableXpnResource",
55618	//   "request": {
55619	//     "$ref": "ProjectsEnableXpnResourceRequest"
55620	//   },
55621	//   "response": {
55622	//     "$ref": "Operation"
55623	//   },
55624	//   "scopes": [
55625	//     "https://www.googleapis.com/auth/cloud-platform",
55626	//     "https://www.googleapis.com/auth/compute"
55627	//   ]
55628	// }
55629
55630}
55631
55632// method id "compute.projects.get":
55633
55634type ProjectsGetCall struct {
55635	s            *Service
55636	project      string
55637	urlParams_   gensupport.URLParams
55638	ifNoneMatch_ string
55639	ctx_         context.Context
55640	header_      http.Header
55641}
55642
55643// Get: Returns the specified Project resource.
55644// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/get
55645func (r *ProjectsService) Get(project string) *ProjectsGetCall {
55646	c := &ProjectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55647	c.project = project
55648	return c
55649}
55650
55651// Fields allows partial responses to be retrieved. See
55652// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55653// for more information.
55654func (c *ProjectsGetCall) Fields(s ...googleapi.Field) *ProjectsGetCall {
55655	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55656	return c
55657}
55658
55659// IfNoneMatch sets the optional parameter which makes the operation
55660// fail if the object's ETag matches the given value. This is useful for
55661// getting updates only after the object has changed since the last
55662// request. Use googleapi.IsNotModified to check whether the response
55663// error from Do is the result of In-None-Match.
55664func (c *ProjectsGetCall) IfNoneMatch(entityTag string) *ProjectsGetCall {
55665	c.ifNoneMatch_ = entityTag
55666	return c
55667}
55668
55669// Context sets the context to be used in this call's Do method. Any
55670// pending HTTP request will be aborted if the provided context is
55671// canceled.
55672func (c *ProjectsGetCall) Context(ctx context.Context) *ProjectsGetCall {
55673	c.ctx_ = ctx
55674	return c
55675}
55676
55677// Header returns an http.Header that can be modified by the caller to
55678// add HTTP headers to the request.
55679func (c *ProjectsGetCall) Header() http.Header {
55680	if c.header_ == nil {
55681		c.header_ = make(http.Header)
55682	}
55683	return c.header_
55684}
55685
55686func (c *ProjectsGetCall) doRequest(alt string) (*http.Response, error) {
55687	reqHeaders := make(http.Header)
55688	for k, v := range c.header_ {
55689		reqHeaders[k] = v
55690	}
55691	reqHeaders.Set("User-Agent", c.s.userAgent())
55692	if c.ifNoneMatch_ != "" {
55693		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55694	}
55695	var body io.Reader = nil
55696	c.urlParams_.Set("alt", alt)
55697	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}")
55698	urls += "?" + c.urlParams_.Encode()
55699	req, _ := http.NewRequest("GET", urls, body)
55700	req.Header = reqHeaders
55701	googleapi.Expand(req.URL, map[string]string{
55702		"project": c.project,
55703	})
55704	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55705}
55706
55707// Do executes the "compute.projects.get" call.
55708// Exactly one of *Project or error will be non-nil. Any non-2xx status
55709// code is an error. Response headers are in either
55710// *Project.ServerResponse.Header or (if a response was returned at all)
55711// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
55712// check whether the returned error was because http.StatusNotModified
55713// was returned.
55714func (c *ProjectsGetCall) Do(opts ...googleapi.CallOption) (*Project, error) {
55715	gensupport.SetOptions(c.urlParams_, opts...)
55716	res, err := c.doRequest("json")
55717	if res != nil && res.StatusCode == http.StatusNotModified {
55718		if res.Body != nil {
55719			res.Body.Close()
55720		}
55721		return nil, &googleapi.Error{
55722			Code:   res.StatusCode,
55723			Header: res.Header,
55724		}
55725	}
55726	if err != nil {
55727		return nil, err
55728	}
55729	defer googleapi.CloseBody(res)
55730	if err := googleapi.CheckResponse(res); err != nil {
55731		return nil, err
55732	}
55733	ret := &Project{
55734		ServerResponse: googleapi.ServerResponse{
55735			Header:         res.Header,
55736			HTTPStatusCode: res.StatusCode,
55737		},
55738	}
55739	target := &ret
55740	if err := gensupport.DecodeResponse(target, res); err != nil {
55741		return nil, err
55742	}
55743	return ret, nil
55744	// {
55745	//   "description": "Returns the specified Project resource.",
55746	//   "httpMethod": "GET",
55747	//   "id": "compute.projects.get",
55748	//   "parameterOrder": [
55749	//     "project"
55750	//   ],
55751	//   "parameters": {
55752	//     "project": {
55753	//       "description": "Project ID for this request.",
55754	//       "location": "path",
55755	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55756	//       "required": true,
55757	//       "type": "string"
55758	//     }
55759	//   },
55760	//   "path": "{project}",
55761	//   "response": {
55762	//     "$ref": "Project"
55763	//   },
55764	//   "scopes": [
55765	//     "https://www.googleapis.com/auth/cloud-platform",
55766	//     "https://www.googleapis.com/auth/compute",
55767	//     "https://www.googleapis.com/auth/compute.readonly"
55768	//   ]
55769	// }
55770
55771}
55772
55773// method id "compute.projects.getXpnHost":
55774
55775type ProjectsGetXpnHostCall struct {
55776	s            *Service
55777	project      string
55778	urlParams_   gensupport.URLParams
55779	ifNoneMatch_ string
55780	ctx_         context.Context
55781	header_      http.Header
55782}
55783
55784// GetXpnHost: Get the shared VPC host project that this project links
55785// to. May be empty if no link exists.
55786func (r *ProjectsService) GetXpnHost(project string) *ProjectsGetXpnHostCall {
55787	c := &ProjectsGetXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55788	c.project = project
55789	return c
55790}
55791
55792// Fields allows partial responses to be retrieved. See
55793// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55794// for more information.
55795func (c *ProjectsGetXpnHostCall) Fields(s ...googleapi.Field) *ProjectsGetXpnHostCall {
55796	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55797	return c
55798}
55799
55800// IfNoneMatch sets the optional parameter which makes the operation
55801// fail if the object's ETag matches the given value. This is useful for
55802// getting updates only after the object has changed since the last
55803// request. Use googleapi.IsNotModified to check whether the response
55804// error from Do is the result of In-None-Match.
55805func (c *ProjectsGetXpnHostCall) IfNoneMatch(entityTag string) *ProjectsGetXpnHostCall {
55806	c.ifNoneMatch_ = entityTag
55807	return c
55808}
55809
55810// Context sets the context to be used in this call's Do method. Any
55811// pending HTTP request will be aborted if the provided context is
55812// canceled.
55813func (c *ProjectsGetXpnHostCall) Context(ctx context.Context) *ProjectsGetXpnHostCall {
55814	c.ctx_ = ctx
55815	return c
55816}
55817
55818// Header returns an http.Header that can be modified by the caller to
55819// add HTTP headers to the request.
55820func (c *ProjectsGetXpnHostCall) Header() http.Header {
55821	if c.header_ == nil {
55822		c.header_ = make(http.Header)
55823	}
55824	return c.header_
55825}
55826
55827func (c *ProjectsGetXpnHostCall) doRequest(alt string) (*http.Response, error) {
55828	reqHeaders := make(http.Header)
55829	for k, v := range c.header_ {
55830		reqHeaders[k] = v
55831	}
55832	reqHeaders.Set("User-Agent", c.s.userAgent())
55833	if c.ifNoneMatch_ != "" {
55834		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55835	}
55836	var body io.Reader = nil
55837	c.urlParams_.Set("alt", alt)
55838	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/getXpnHost")
55839	urls += "?" + c.urlParams_.Encode()
55840	req, _ := http.NewRequest("GET", urls, body)
55841	req.Header = reqHeaders
55842	googleapi.Expand(req.URL, map[string]string{
55843		"project": c.project,
55844	})
55845	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55846}
55847
55848// Do executes the "compute.projects.getXpnHost" call.
55849// Exactly one of *Project or error will be non-nil. Any non-2xx status
55850// code is an error. Response headers are in either
55851// *Project.ServerResponse.Header or (if a response was returned at all)
55852// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
55853// check whether the returned error was because http.StatusNotModified
55854// was returned.
55855func (c *ProjectsGetXpnHostCall) Do(opts ...googleapi.CallOption) (*Project, error) {
55856	gensupport.SetOptions(c.urlParams_, opts...)
55857	res, err := c.doRequest("json")
55858	if res != nil && res.StatusCode == http.StatusNotModified {
55859		if res.Body != nil {
55860			res.Body.Close()
55861		}
55862		return nil, &googleapi.Error{
55863			Code:   res.StatusCode,
55864			Header: res.Header,
55865		}
55866	}
55867	if err != nil {
55868		return nil, err
55869	}
55870	defer googleapi.CloseBody(res)
55871	if err := googleapi.CheckResponse(res); err != nil {
55872		return nil, err
55873	}
55874	ret := &Project{
55875		ServerResponse: googleapi.ServerResponse{
55876			Header:         res.Header,
55877			HTTPStatusCode: res.StatusCode,
55878		},
55879	}
55880	target := &ret
55881	if err := gensupport.DecodeResponse(target, res); err != nil {
55882		return nil, err
55883	}
55884	return ret, nil
55885	// {
55886	//   "description": "Get the shared VPC host project that this project links to. May be empty if no link exists.",
55887	//   "httpMethod": "GET",
55888	//   "id": "compute.projects.getXpnHost",
55889	//   "parameterOrder": [
55890	//     "project"
55891	//   ],
55892	//   "parameters": {
55893	//     "project": {
55894	//       "description": "Project ID for this request.",
55895	//       "location": "path",
55896	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55897	//       "required": true,
55898	//       "type": "string"
55899	//     }
55900	//   },
55901	//   "path": "{project}/getXpnHost",
55902	//   "response": {
55903	//     "$ref": "Project"
55904	//   },
55905	//   "scopes": [
55906	//     "https://www.googleapis.com/auth/cloud-platform",
55907	//     "https://www.googleapis.com/auth/compute"
55908	//   ]
55909	// }
55910
55911}
55912
55913// method id "compute.projects.getXpnResources":
55914
55915type ProjectsGetXpnResourcesCall struct {
55916	s            *Service
55917	project      string
55918	urlParams_   gensupport.URLParams
55919	ifNoneMatch_ string
55920	ctx_         context.Context
55921	header_      http.Header
55922}
55923
55924// GetXpnResources: Get service resources (a.k.a service project)
55925// associated with this host project.
55926func (r *ProjectsService) GetXpnResources(project string) *ProjectsGetXpnResourcesCall {
55927	c := &ProjectsGetXpnResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55928	c.project = project
55929	return c
55930}
55931
55932// Filter sets the optional parameter "filter":
55933func (c *ProjectsGetXpnResourcesCall) Filter(filter string) *ProjectsGetXpnResourcesCall {
55934	c.urlParams_.Set("filter", filter)
55935	return c
55936}
55937
55938// MaxResults sets the optional parameter "maxResults":
55939func (c *ProjectsGetXpnResourcesCall) MaxResults(maxResults int64) *ProjectsGetXpnResourcesCall {
55940	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
55941	return c
55942}
55943
55944// OrderBy sets the optional parameter "order_by":
55945func (c *ProjectsGetXpnResourcesCall) OrderBy(orderBy string) *ProjectsGetXpnResourcesCall {
55946	c.urlParams_.Set("order_by", orderBy)
55947	return c
55948}
55949
55950// PageToken sets the optional parameter "pageToken":
55951func (c *ProjectsGetXpnResourcesCall) PageToken(pageToken string) *ProjectsGetXpnResourcesCall {
55952	c.urlParams_.Set("pageToken", pageToken)
55953	return c
55954}
55955
55956// Fields allows partial responses to be retrieved. See
55957// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55958// for more information.
55959func (c *ProjectsGetXpnResourcesCall) Fields(s ...googleapi.Field) *ProjectsGetXpnResourcesCall {
55960	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55961	return c
55962}
55963
55964// IfNoneMatch sets the optional parameter which makes the operation
55965// fail if the object's ETag matches the given value. This is useful for
55966// getting updates only after the object has changed since the last
55967// request. Use googleapi.IsNotModified to check whether the response
55968// error from Do is the result of In-None-Match.
55969func (c *ProjectsGetXpnResourcesCall) IfNoneMatch(entityTag string) *ProjectsGetXpnResourcesCall {
55970	c.ifNoneMatch_ = entityTag
55971	return c
55972}
55973
55974// Context sets the context to be used in this call's Do method. Any
55975// pending HTTP request will be aborted if the provided context is
55976// canceled.
55977func (c *ProjectsGetXpnResourcesCall) Context(ctx context.Context) *ProjectsGetXpnResourcesCall {
55978	c.ctx_ = ctx
55979	return c
55980}
55981
55982// Header returns an http.Header that can be modified by the caller to
55983// add HTTP headers to the request.
55984func (c *ProjectsGetXpnResourcesCall) Header() http.Header {
55985	if c.header_ == nil {
55986		c.header_ = make(http.Header)
55987	}
55988	return c.header_
55989}
55990
55991func (c *ProjectsGetXpnResourcesCall) doRequest(alt string) (*http.Response, error) {
55992	reqHeaders := make(http.Header)
55993	for k, v := range c.header_ {
55994		reqHeaders[k] = v
55995	}
55996	reqHeaders.Set("User-Agent", c.s.userAgent())
55997	if c.ifNoneMatch_ != "" {
55998		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55999	}
56000	var body io.Reader = nil
56001	c.urlParams_.Set("alt", alt)
56002	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/getXpnResources")
56003	urls += "?" + c.urlParams_.Encode()
56004	req, _ := http.NewRequest("GET", urls, body)
56005	req.Header = reqHeaders
56006	googleapi.Expand(req.URL, map[string]string{
56007		"project": c.project,
56008	})
56009	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56010}
56011
56012// Do executes the "compute.projects.getXpnResources" call.
56013// Exactly one of *ProjectsGetXpnResources or error will be non-nil. Any
56014// non-2xx status code is an error. Response headers are in either
56015// *ProjectsGetXpnResources.ServerResponse.Header or (if a response was
56016// returned at all) in error.(*googleapi.Error).Header. Use
56017// googleapi.IsNotModified to check whether the returned error was
56018// because http.StatusNotModified was returned.
56019func (c *ProjectsGetXpnResourcesCall) Do(opts ...googleapi.CallOption) (*ProjectsGetXpnResources, error) {
56020	gensupport.SetOptions(c.urlParams_, opts...)
56021	res, err := c.doRequest("json")
56022	if res != nil && res.StatusCode == http.StatusNotModified {
56023		if res.Body != nil {
56024			res.Body.Close()
56025		}
56026		return nil, &googleapi.Error{
56027			Code:   res.StatusCode,
56028			Header: res.Header,
56029		}
56030	}
56031	if err != nil {
56032		return nil, err
56033	}
56034	defer googleapi.CloseBody(res)
56035	if err := googleapi.CheckResponse(res); err != nil {
56036		return nil, err
56037	}
56038	ret := &ProjectsGetXpnResources{
56039		ServerResponse: googleapi.ServerResponse{
56040			Header:         res.Header,
56041			HTTPStatusCode: res.StatusCode,
56042		},
56043	}
56044	target := &ret
56045	if err := gensupport.DecodeResponse(target, res); err != nil {
56046		return nil, err
56047	}
56048	return ret, nil
56049	// {
56050	//   "description": "Get service resources (a.k.a service project) associated with this host project.",
56051	//   "httpMethod": "GET",
56052	//   "id": "compute.projects.getXpnResources",
56053	//   "parameterOrder": [
56054	//     "project"
56055	//   ],
56056	//   "parameters": {
56057	//     "filter": {
56058	//       "location": "query",
56059	//       "type": "string"
56060	//     },
56061	//     "maxResults": {
56062	//       "default": "500",
56063	//       "format": "uint32",
56064	//       "location": "query",
56065	//       "minimum": "0",
56066	//       "type": "integer"
56067	//     },
56068	//     "order_by": {
56069	//       "location": "query",
56070	//       "type": "string"
56071	//     },
56072	//     "pageToken": {
56073	//       "location": "query",
56074	//       "type": "string"
56075	//     },
56076	//     "project": {
56077	//       "description": "Project ID for this request.",
56078	//       "location": "path",
56079	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56080	//       "required": true,
56081	//       "type": "string"
56082	//     }
56083	//   },
56084	//   "path": "{project}/getXpnResources",
56085	//   "response": {
56086	//     "$ref": "ProjectsGetXpnResources"
56087	//   },
56088	//   "scopes": [
56089	//     "https://www.googleapis.com/auth/cloud-platform",
56090	//     "https://www.googleapis.com/auth/compute"
56091	//   ]
56092	// }
56093
56094}
56095
56096// Pages invokes f for each page of results.
56097// A non-nil error returned from f will halt the iteration.
56098// The provided context supersedes any context provided to the Context method.
56099func (c *ProjectsGetXpnResourcesCall) Pages(ctx context.Context, f func(*ProjectsGetXpnResources) error) error {
56100	c.ctx_ = ctx
56101	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
56102	for {
56103		x, err := c.Do()
56104		if err != nil {
56105			return err
56106		}
56107		if err := f(x); err != nil {
56108			return err
56109		}
56110		if x.NextPageToken == "" {
56111			return nil
56112		}
56113		c.PageToken(x.NextPageToken)
56114	}
56115}
56116
56117// method id "compute.projects.listXpnHosts":
56118
56119type ProjectsListXpnHostsCall struct {
56120	s                           *Service
56121	project                     string
56122	projectslistxpnhostsrequest *ProjectsListXpnHostsRequest
56123	urlParams_                  gensupport.URLParams
56124	ctx_                        context.Context
56125	header_                     http.Header
56126}
56127
56128// ListXpnHosts: List all shared VPC host projects visible to the user
56129// in an organization.
56130func (r *ProjectsService) ListXpnHosts(project string, projectslistxpnhostsrequest *ProjectsListXpnHostsRequest) *ProjectsListXpnHostsCall {
56131	c := &ProjectsListXpnHostsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56132	c.project = project
56133	c.projectslistxpnhostsrequest = projectslistxpnhostsrequest
56134	return c
56135}
56136
56137// Filter sets the optional parameter "filter":
56138func (c *ProjectsListXpnHostsCall) Filter(filter string) *ProjectsListXpnHostsCall {
56139	c.urlParams_.Set("filter", filter)
56140	return c
56141}
56142
56143// MaxResults sets the optional parameter "maxResults":
56144func (c *ProjectsListXpnHostsCall) MaxResults(maxResults int64) *ProjectsListXpnHostsCall {
56145	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
56146	return c
56147}
56148
56149// OrderBy sets the optional parameter "order_by":
56150func (c *ProjectsListXpnHostsCall) OrderBy(orderBy string) *ProjectsListXpnHostsCall {
56151	c.urlParams_.Set("order_by", orderBy)
56152	return c
56153}
56154
56155// PageToken sets the optional parameter "pageToken":
56156func (c *ProjectsListXpnHostsCall) PageToken(pageToken string) *ProjectsListXpnHostsCall {
56157	c.urlParams_.Set("pageToken", pageToken)
56158	return c
56159}
56160
56161// Fields allows partial responses to be retrieved. See
56162// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56163// for more information.
56164func (c *ProjectsListXpnHostsCall) Fields(s ...googleapi.Field) *ProjectsListXpnHostsCall {
56165	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56166	return c
56167}
56168
56169// Context sets the context to be used in this call's Do method. Any
56170// pending HTTP request will be aborted if the provided context is
56171// canceled.
56172func (c *ProjectsListXpnHostsCall) Context(ctx context.Context) *ProjectsListXpnHostsCall {
56173	c.ctx_ = ctx
56174	return c
56175}
56176
56177// Header returns an http.Header that can be modified by the caller to
56178// add HTTP headers to the request.
56179func (c *ProjectsListXpnHostsCall) Header() http.Header {
56180	if c.header_ == nil {
56181		c.header_ = make(http.Header)
56182	}
56183	return c.header_
56184}
56185
56186func (c *ProjectsListXpnHostsCall) doRequest(alt string) (*http.Response, error) {
56187	reqHeaders := make(http.Header)
56188	for k, v := range c.header_ {
56189		reqHeaders[k] = v
56190	}
56191	reqHeaders.Set("User-Agent", c.s.userAgent())
56192	var body io.Reader = nil
56193	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectslistxpnhostsrequest)
56194	if err != nil {
56195		return nil, err
56196	}
56197	reqHeaders.Set("Content-Type", "application/json")
56198	c.urlParams_.Set("alt", alt)
56199	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/listXpnHosts")
56200	urls += "?" + c.urlParams_.Encode()
56201	req, _ := http.NewRequest("POST", urls, body)
56202	req.Header = reqHeaders
56203	googleapi.Expand(req.URL, map[string]string{
56204		"project": c.project,
56205	})
56206	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56207}
56208
56209// Do executes the "compute.projects.listXpnHosts" call.
56210// Exactly one of *XpnHostList or error will be non-nil. Any non-2xx
56211// status code is an error. Response headers are in either
56212// *XpnHostList.ServerResponse.Header or (if a response was returned at
56213// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56214// to check whether the returned error was because
56215// http.StatusNotModified was returned.
56216func (c *ProjectsListXpnHostsCall) Do(opts ...googleapi.CallOption) (*XpnHostList, error) {
56217	gensupport.SetOptions(c.urlParams_, opts...)
56218	res, err := c.doRequest("json")
56219	if res != nil && res.StatusCode == http.StatusNotModified {
56220		if res.Body != nil {
56221			res.Body.Close()
56222		}
56223		return nil, &googleapi.Error{
56224			Code:   res.StatusCode,
56225			Header: res.Header,
56226		}
56227	}
56228	if err != nil {
56229		return nil, err
56230	}
56231	defer googleapi.CloseBody(res)
56232	if err := googleapi.CheckResponse(res); err != nil {
56233		return nil, err
56234	}
56235	ret := &XpnHostList{
56236		ServerResponse: googleapi.ServerResponse{
56237			Header:         res.Header,
56238			HTTPStatusCode: res.StatusCode,
56239		},
56240	}
56241	target := &ret
56242	if err := gensupport.DecodeResponse(target, res); err != nil {
56243		return nil, err
56244	}
56245	return ret, nil
56246	// {
56247	//   "description": "List all shared VPC host projects visible to the user in an organization.",
56248	//   "httpMethod": "POST",
56249	//   "id": "compute.projects.listXpnHosts",
56250	//   "parameterOrder": [
56251	//     "project"
56252	//   ],
56253	//   "parameters": {
56254	//     "filter": {
56255	//       "location": "query",
56256	//       "type": "string"
56257	//     },
56258	//     "maxResults": {
56259	//       "default": "500",
56260	//       "format": "uint32",
56261	//       "location": "query",
56262	//       "minimum": "0",
56263	//       "type": "integer"
56264	//     },
56265	//     "order_by": {
56266	//       "location": "query",
56267	//       "type": "string"
56268	//     },
56269	//     "pageToken": {
56270	//       "location": "query",
56271	//       "type": "string"
56272	//     },
56273	//     "project": {
56274	//       "description": "Project ID for this request.",
56275	//       "location": "path",
56276	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56277	//       "required": true,
56278	//       "type": "string"
56279	//     }
56280	//   },
56281	//   "path": "{project}/listXpnHosts",
56282	//   "request": {
56283	//     "$ref": "ProjectsListXpnHostsRequest"
56284	//   },
56285	//   "response": {
56286	//     "$ref": "XpnHostList"
56287	//   },
56288	//   "scopes": [
56289	//     "https://www.googleapis.com/auth/cloud-platform",
56290	//     "https://www.googleapis.com/auth/compute"
56291	//   ]
56292	// }
56293
56294}
56295
56296// Pages invokes f for each page of results.
56297// A non-nil error returned from f will halt the iteration.
56298// The provided context supersedes any context provided to the Context method.
56299func (c *ProjectsListXpnHostsCall) Pages(ctx context.Context, f func(*XpnHostList) error) error {
56300	c.ctx_ = ctx
56301	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
56302	for {
56303		x, err := c.Do()
56304		if err != nil {
56305			return err
56306		}
56307		if err := f(x); err != nil {
56308			return err
56309		}
56310		if x.NextPageToken == "" {
56311			return nil
56312		}
56313		c.PageToken(x.NextPageToken)
56314	}
56315}
56316
56317// method id "compute.projects.moveDisk":
56318
56319type ProjectsMoveDiskCall struct {
56320	s               *Service
56321	project         string
56322	diskmoverequest *DiskMoveRequest
56323	urlParams_      gensupport.URLParams
56324	ctx_            context.Context
56325	header_         http.Header
56326}
56327
56328// MoveDisk: Moves a persistent disk from one zone to another.
56329func (r *ProjectsService) MoveDisk(project string, diskmoverequest *DiskMoveRequest) *ProjectsMoveDiskCall {
56330	c := &ProjectsMoveDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56331	c.project = project
56332	c.diskmoverequest = diskmoverequest
56333	return c
56334}
56335
56336// RequestId sets the optional parameter "requestId": An optional
56337// request ID to identify requests. Specify a unique request ID so that
56338// if you must retry your request, the server will know to ignore the
56339// request if it has already been completed.
56340//
56341// For example, consider a situation where you make an initial request
56342// and the request times out. If you make the request again with the
56343// same request ID, the server can check if original operation with the
56344// same request ID was received, and if so, will ignore the second
56345// request. This prevents clients from accidentally creating duplicate
56346// commitments.
56347//
56348// The request ID must be a valid UUID with the exception that zero UUID
56349// is not supported (00000000-0000-0000-0000-000000000000).
56350func (c *ProjectsMoveDiskCall) RequestId(requestId string) *ProjectsMoveDiskCall {
56351	c.urlParams_.Set("requestId", requestId)
56352	return c
56353}
56354
56355// Fields allows partial responses to be retrieved. See
56356// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56357// for more information.
56358func (c *ProjectsMoveDiskCall) Fields(s ...googleapi.Field) *ProjectsMoveDiskCall {
56359	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56360	return c
56361}
56362
56363// Context sets the context to be used in this call's Do method. Any
56364// pending HTTP request will be aborted if the provided context is
56365// canceled.
56366func (c *ProjectsMoveDiskCall) Context(ctx context.Context) *ProjectsMoveDiskCall {
56367	c.ctx_ = ctx
56368	return c
56369}
56370
56371// Header returns an http.Header that can be modified by the caller to
56372// add HTTP headers to the request.
56373func (c *ProjectsMoveDiskCall) Header() http.Header {
56374	if c.header_ == nil {
56375		c.header_ = make(http.Header)
56376	}
56377	return c.header_
56378}
56379
56380func (c *ProjectsMoveDiskCall) doRequest(alt string) (*http.Response, error) {
56381	reqHeaders := make(http.Header)
56382	for k, v := range c.header_ {
56383		reqHeaders[k] = v
56384	}
56385	reqHeaders.Set("User-Agent", c.s.userAgent())
56386	var body io.Reader = nil
56387	body, err := googleapi.WithoutDataWrapper.JSONReader(c.diskmoverequest)
56388	if err != nil {
56389		return nil, err
56390	}
56391	reqHeaders.Set("Content-Type", "application/json")
56392	c.urlParams_.Set("alt", alt)
56393	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/moveDisk")
56394	urls += "?" + c.urlParams_.Encode()
56395	req, _ := http.NewRequest("POST", urls, body)
56396	req.Header = reqHeaders
56397	googleapi.Expand(req.URL, map[string]string{
56398		"project": c.project,
56399	})
56400	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56401}
56402
56403// Do executes the "compute.projects.moveDisk" call.
56404// Exactly one of *Operation or error will be non-nil. Any non-2xx
56405// status code is an error. Response headers are in either
56406// *Operation.ServerResponse.Header or (if a response was returned at
56407// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56408// to check whether the returned error was because
56409// http.StatusNotModified was returned.
56410func (c *ProjectsMoveDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56411	gensupport.SetOptions(c.urlParams_, opts...)
56412	res, err := c.doRequest("json")
56413	if res != nil && res.StatusCode == http.StatusNotModified {
56414		if res.Body != nil {
56415			res.Body.Close()
56416		}
56417		return nil, &googleapi.Error{
56418			Code:   res.StatusCode,
56419			Header: res.Header,
56420		}
56421	}
56422	if err != nil {
56423		return nil, err
56424	}
56425	defer googleapi.CloseBody(res)
56426	if err := googleapi.CheckResponse(res); err != nil {
56427		return nil, err
56428	}
56429	ret := &Operation{
56430		ServerResponse: googleapi.ServerResponse{
56431			Header:         res.Header,
56432			HTTPStatusCode: res.StatusCode,
56433		},
56434	}
56435	target := &ret
56436	if err := gensupport.DecodeResponse(target, res); err != nil {
56437		return nil, err
56438	}
56439	return ret, nil
56440	// {
56441	//   "description": "Moves a persistent disk from one zone to another.",
56442	//   "httpMethod": "POST",
56443	//   "id": "compute.projects.moveDisk",
56444	//   "parameterOrder": [
56445	//     "project"
56446	//   ],
56447	//   "parameters": {
56448	//     "project": {
56449	//       "description": "Project ID for this request.",
56450	//       "location": "path",
56451	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56452	//       "required": true,
56453	//       "type": "string"
56454	//     },
56455	//     "requestId": {
56456	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56457	//       "location": "query",
56458	//       "type": "string"
56459	//     }
56460	//   },
56461	//   "path": "{project}/moveDisk",
56462	//   "request": {
56463	//     "$ref": "DiskMoveRequest"
56464	//   },
56465	//   "response": {
56466	//     "$ref": "Operation"
56467	//   },
56468	//   "scopes": [
56469	//     "https://www.googleapis.com/auth/cloud-platform",
56470	//     "https://www.googleapis.com/auth/compute"
56471	//   ]
56472	// }
56473
56474}
56475
56476// method id "compute.projects.moveInstance":
56477
56478type ProjectsMoveInstanceCall struct {
56479	s                   *Service
56480	project             string
56481	instancemoverequest *InstanceMoveRequest
56482	urlParams_          gensupport.URLParams
56483	ctx_                context.Context
56484	header_             http.Header
56485}
56486
56487// MoveInstance: Moves an instance and its attached persistent disks
56488// from one zone to another.
56489func (r *ProjectsService) MoveInstance(project string, instancemoverequest *InstanceMoveRequest) *ProjectsMoveInstanceCall {
56490	c := &ProjectsMoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56491	c.project = project
56492	c.instancemoverequest = instancemoverequest
56493	return c
56494}
56495
56496// RequestId sets the optional parameter "requestId": An optional
56497// request ID to identify requests. Specify a unique request ID so that
56498// if you must retry your request, the server will know to ignore the
56499// request if it has already been completed.
56500//
56501// For example, consider a situation where you make an initial request
56502// and the request times out. If you make the request again with the
56503// same request ID, the server can check if original operation with the
56504// same request ID was received, and if so, will ignore the second
56505// request. This prevents clients from accidentally creating duplicate
56506// commitments.
56507//
56508// The request ID must be a valid UUID with the exception that zero UUID
56509// is not supported (00000000-0000-0000-0000-000000000000).
56510func (c *ProjectsMoveInstanceCall) RequestId(requestId string) *ProjectsMoveInstanceCall {
56511	c.urlParams_.Set("requestId", requestId)
56512	return c
56513}
56514
56515// Fields allows partial responses to be retrieved. See
56516// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56517// for more information.
56518func (c *ProjectsMoveInstanceCall) Fields(s ...googleapi.Field) *ProjectsMoveInstanceCall {
56519	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56520	return c
56521}
56522
56523// Context sets the context to be used in this call's Do method. Any
56524// pending HTTP request will be aborted if the provided context is
56525// canceled.
56526func (c *ProjectsMoveInstanceCall) Context(ctx context.Context) *ProjectsMoveInstanceCall {
56527	c.ctx_ = ctx
56528	return c
56529}
56530
56531// Header returns an http.Header that can be modified by the caller to
56532// add HTTP headers to the request.
56533func (c *ProjectsMoveInstanceCall) Header() http.Header {
56534	if c.header_ == nil {
56535		c.header_ = make(http.Header)
56536	}
56537	return c.header_
56538}
56539
56540func (c *ProjectsMoveInstanceCall) doRequest(alt string) (*http.Response, error) {
56541	reqHeaders := make(http.Header)
56542	for k, v := range c.header_ {
56543		reqHeaders[k] = v
56544	}
56545	reqHeaders.Set("User-Agent", c.s.userAgent())
56546	var body io.Reader = nil
56547	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancemoverequest)
56548	if err != nil {
56549		return nil, err
56550	}
56551	reqHeaders.Set("Content-Type", "application/json")
56552	c.urlParams_.Set("alt", alt)
56553	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/moveInstance")
56554	urls += "?" + c.urlParams_.Encode()
56555	req, _ := http.NewRequest("POST", urls, body)
56556	req.Header = reqHeaders
56557	googleapi.Expand(req.URL, map[string]string{
56558		"project": c.project,
56559	})
56560	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56561}
56562
56563// Do executes the "compute.projects.moveInstance" call.
56564// Exactly one of *Operation or error will be non-nil. Any non-2xx
56565// status code is an error. Response headers are in either
56566// *Operation.ServerResponse.Header or (if a response was returned at
56567// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56568// to check whether the returned error was because
56569// http.StatusNotModified was returned.
56570func (c *ProjectsMoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56571	gensupport.SetOptions(c.urlParams_, opts...)
56572	res, err := c.doRequest("json")
56573	if res != nil && res.StatusCode == http.StatusNotModified {
56574		if res.Body != nil {
56575			res.Body.Close()
56576		}
56577		return nil, &googleapi.Error{
56578			Code:   res.StatusCode,
56579			Header: res.Header,
56580		}
56581	}
56582	if err != nil {
56583		return nil, err
56584	}
56585	defer googleapi.CloseBody(res)
56586	if err := googleapi.CheckResponse(res); err != nil {
56587		return nil, err
56588	}
56589	ret := &Operation{
56590		ServerResponse: googleapi.ServerResponse{
56591			Header:         res.Header,
56592			HTTPStatusCode: res.StatusCode,
56593		},
56594	}
56595	target := &ret
56596	if err := gensupport.DecodeResponse(target, res); err != nil {
56597		return nil, err
56598	}
56599	return ret, nil
56600	// {
56601	//   "description": "Moves an instance and its attached persistent disks from one zone to another.",
56602	//   "httpMethod": "POST",
56603	//   "id": "compute.projects.moveInstance",
56604	//   "parameterOrder": [
56605	//     "project"
56606	//   ],
56607	//   "parameters": {
56608	//     "project": {
56609	//       "description": "Project ID for this request.",
56610	//       "location": "path",
56611	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56612	//       "required": true,
56613	//       "type": "string"
56614	//     },
56615	//     "requestId": {
56616	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56617	//       "location": "query",
56618	//       "type": "string"
56619	//     }
56620	//   },
56621	//   "path": "{project}/moveInstance",
56622	//   "request": {
56623	//     "$ref": "InstanceMoveRequest"
56624	//   },
56625	//   "response": {
56626	//     "$ref": "Operation"
56627	//   },
56628	//   "scopes": [
56629	//     "https://www.googleapis.com/auth/cloud-platform",
56630	//     "https://www.googleapis.com/auth/compute"
56631	//   ]
56632	// }
56633
56634}
56635
56636// method id "compute.projects.setCommonInstanceMetadata":
56637
56638type ProjectsSetCommonInstanceMetadataCall struct {
56639	s          *Service
56640	project    string
56641	metadata   *Metadata
56642	urlParams_ gensupport.URLParams
56643	ctx_       context.Context
56644	header_    http.Header
56645}
56646
56647// SetCommonInstanceMetadata: Sets metadata common to all instances
56648// within the specified project using the data included in the request.
56649// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setCommonInstanceMetadata
56650func (r *ProjectsService) SetCommonInstanceMetadata(project string, metadata *Metadata) *ProjectsSetCommonInstanceMetadataCall {
56651	c := &ProjectsSetCommonInstanceMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56652	c.project = project
56653	c.metadata = metadata
56654	return c
56655}
56656
56657// RequestId sets the optional parameter "requestId": An optional
56658// request ID to identify requests. Specify a unique request ID so that
56659// if you must retry your request, the server will know to ignore the
56660// request if it has already been completed.
56661//
56662// For example, consider a situation where you make an initial request
56663// and the request times out. If you make the request again with the
56664// same request ID, the server can check if original operation with the
56665// same request ID was received, and if so, will ignore the second
56666// request. This prevents clients from accidentally creating duplicate
56667// commitments.
56668//
56669// The request ID must be a valid UUID with the exception that zero UUID
56670// is not supported (00000000-0000-0000-0000-000000000000).
56671func (c *ProjectsSetCommonInstanceMetadataCall) RequestId(requestId string) *ProjectsSetCommonInstanceMetadataCall {
56672	c.urlParams_.Set("requestId", requestId)
56673	return c
56674}
56675
56676// Fields allows partial responses to be retrieved. See
56677// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56678// for more information.
56679func (c *ProjectsSetCommonInstanceMetadataCall) Fields(s ...googleapi.Field) *ProjectsSetCommonInstanceMetadataCall {
56680	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56681	return c
56682}
56683
56684// Context sets the context to be used in this call's Do method. Any
56685// pending HTTP request will be aborted if the provided context is
56686// canceled.
56687func (c *ProjectsSetCommonInstanceMetadataCall) Context(ctx context.Context) *ProjectsSetCommonInstanceMetadataCall {
56688	c.ctx_ = ctx
56689	return c
56690}
56691
56692// Header returns an http.Header that can be modified by the caller to
56693// add HTTP headers to the request.
56694func (c *ProjectsSetCommonInstanceMetadataCall) Header() http.Header {
56695	if c.header_ == nil {
56696		c.header_ = make(http.Header)
56697	}
56698	return c.header_
56699}
56700
56701func (c *ProjectsSetCommonInstanceMetadataCall) doRequest(alt string) (*http.Response, error) {
56702	reqHeaders := make(http.Header)
56703	for k, v := range c.header_ {
56704		reqHeaders[k] = v
56705	}
56706	reqHeaders.Set("User-Agent", c.s.userAgent())
56707	var body io.Reader = nil
56708	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
56709	if err != nil {
56710		return nil, err
56711	}
56712	reqHeaders.Set("Content-Type", "application/json")
56713	c.urlParams_.Set("alt", alt)
56714	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setCommonInstanceMetadata")
56715	urls += "?" + c.urlParams_.Encode()
56716	req, _ := http.NewRequest("POST", urls, body)
56717	req.Header = reqHeaders
56718	googleapi.Expand(req.URL, map[string]string{
56719		"project": c.project,
56720	})
56721	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56722}
56723
56724// Do executes the "compute.projects.setCommonInstanceMetadata" call.
56725// Exactly one of *Operation or error will be non-nil. Any non-2xx
56726// status code is an error. Response headers are in either
56727// *Operation.ServerResponse.Header or (if a response was returned at
56728// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56729// to check whether the returned error was because
56730// http.StatusNotModified was returned.
56731func (c *ProjectsSetCommonInstanceMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56732	gensupport.SetOptions(c.urlParams_, opts...)
56733	res, err := c.doRequest("json")
56734	if res != nil && res.StatusCode == http.StatusNotModified {
56735		if res.Body != nil {
56736			res.Body.Close()
56737		}
56738		return nil, &googleapi.Error{
56739			Code:   res.StatusCode,
56740			Header: res.Header,
56741		}
56742	}
56743	if err != nil {
56744		return nil, err
56745	}
56746	defer googleapi.CloseBody(res)
56747	if err := googleapi.CheckResponse(res); err != nil {
56748		return nil, err
56749	}
56750	ret := &Operation{
56751		ServerResponse: googleapi.ServerResponse{
56752			Header:         res.Header,
56753			HTTPStatusCode: res.StatusCode,
56754		},
56755	}
56756	target := &ret
56757	if err := gensupport.DecodeResponse(target, res); err != nil {
56758		return nil, err
56759	}
56760	return ret, nil
56761	// {
56762	//   "description": "Sets metadata common to all instances within the specified project using the data included in the request.",
56763	//   "httpMethod": "POST",
56764	//   "id": "compute.projects.setCommonInstanceMetadata",
56765	//   "parameterOrder": [
56766	//     "project"
56767	//   ],
56768	//   "parameters": {
56769	//     "project": {
56770	//       "description": "Project ID for this request.",
56771	//       "location": "path",
56772	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56773	//       "required": true,
56774	//       "type": "string"
56775	//     },
56776	//     "requestId": {
56777	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56778	//       "location": "query",
56779	//       "type": "string"
56780	//     }
56781	//   },
56782	//   "path": "{project}/setCommonInstanceMetadata",
56783	//   "request": {
56784	//     "$ref": "Metadata"
56785	//   },
56786	//   "response": {
56787	//     "$ref": "Operation"
56788	//   },
56789	//   "scopes": [
56790	//     "https://www.googleapis.com/auth/cloud-platform",
56791	//     "https://www.googleapis.com/auth/compute"
56792	//   ]
56793	// }
56794
56795}
56796
56797// method id "compute.projects.setUsageExportBucket":
56798
56799type ProjectsSetUsageExportBucketCall struct {
56800	s                   *Service
56801	project             string
56802	usageexportlocation *UsageExportLocation
56803	urlParams_          gensupport.URLParams
56804	ctx_                context.Context
56805	header_             http.Header
56806}
56807
56808// SetUsageExportBucket: Enables the usage export feature and sets the
56809// usage export bucket where reports are stored. If you provide an empty
56810// request body using this method, the usage export feature will be
56811// disabled.
56812// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setUsageExportBucket
56813func (r *ProjectsService) SetUsageExportBucket(project string, usageexportlocation *UsageExportLocation) *ProjectsSetUsageExportBucketCall {
56814	c := &ProjectsSetUsageExportBucketCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56815	c.project = project
56816	c.usageexportlocation = usageexportlocation
56817	return c
56818}
56819
56820// RequestId sets the optional parameter "requestId": An optional
56821// request ID to identify requests. Specify a unique request ID so that
56822// if you must retry your request, the server will know to ignore the
56823// request if it has already been completed.
56824//
56825// For example, consider a situation where you make an initial request
56826// and the request times out. If you make the request again with the
56827// same request ID, the server can check if original operation with the
56828// same request ID was received, and if so, will ignore the second
56829// request. This prevents clients from accidentally creating duplicate
56830// commitments.
56831//
56832// The request ID must be a valid UUID with the exception that zero UUID
56833// is not supported (00000000-0000-0000-0000-000000000000).
56834func (c *ProjectsSetUsageExportBucketCall) RequestId(requestId string) *ProjectsSetUsageExportBucketCall {
56835	c.urlParams_.Set("requestId", requestId)
56836	return c
56837}
56838
56839// Fields allows partial responses to be retrieved. See
56840// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56841// for more information.
56842func (c *ProjectsSetUsageExportBucketCall) Fields(s ...googleapi.Field) *ProjectsSetUsageExportBucketCall {
56843	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56844	return c
56845}
56846
56847// Context sets the context to be used in this call's Do method. Any
56848// pending HTTP request will be aborted if the provided context is
56849// canceled.
56850func (c *ProjectsSetUsageExportBucketCall) Context(ctx context.Context) *ProjectsSetUsageExportBucketCall {
56851	c.ctx_ = ctx
56852	return c
56853}
56854
56855// Header returns an http.Header that can be modified by the caller to
56856// add HTTP headers to the request.
56857func (c *ProjectsSetUsageExportBucketCall) Header() http.Header {
56858	if c.header_ == nil {
56859		c.header_ = make(http.Header)
56860	}
56861	return c.header_
56862}
56863
56864func (c *ProjectsSetUsageExportBucketCall) doRequest(alt string) (*http.Response, error) {
56865	reqHeaders := make(http.Header)
56866	for k, v := range c.header_ {
56867		reqHeaders[k] = v
56868	}
56869	reqHeaders.Set("User-Agent", c.s.userAgent())
56870	var body io.Reader = nil
56871	body, err := googleapi.WithoutDataWrapper.JSONReader(c.usageexportlocation)
56872	if err != nil {
56873		return nil, err
56874	}
56875	reqHeaders.Set("Content-Type", "application/json")
56876	c.urlParams_.Set("alt", alt)
56877	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setUsageExportBucket")
56878	urls += "?" + c.urlParams_.Encode()
56879	req, _ := http.NewRequest("POST", urls, body)
56880	req.Header = reqHeaders
56881	googleapi.Expand(req.URL, map[string]string{
56882		"project": c.project,
56883	})
56884	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56885}
56886
56887// Do executes the "compute.projects.setUsageExportBucket" call.
56888// Exactly one of *Operation or error will be non-nil. Any non-2xx
56889// status code is an error. Response headers are in either
56890// *Operation.ServerResponse.Header or (if a response was returned at
56891// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56892// to check whether the returned error was because
56893// http.StatusNotModified was returned.
56894func (c *ProjectsSetUsageExportBucketCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56895	gensupport.SetOptions(c.urlParams_, opts...)
56896	res, err := c.doRequest("json")
56897	if res != nil && res.StatusCode == http.StatusNotModified {
56898		if res.Body != nil {
56899			res.Body.Close()
56900		}
56901		return nil, &googleapi.Error{
56902			Code:   res.StatusCode,
56903			Header: res.Header,
56904		}
56905	}
56906	if err != nil {
56907		return nil, err
56908	}
56909	defer googleapi.CloseBody(res)
56910	if err := googleapi.CheckResponse(res); err != nil {
56911		return nil, err
56912	}
56913	ret := &Operation{
56914		ServerResponse: googleapi.ServerResponse{
56915			Header:         res.Header,
56916			HTTPStatusCode: res.StatusCode,
56917		},
56918	}
56919	target := &ret
56920	if err := gensupport.DecodeResponse(target, res); err != nil {
56921		return nil, err
56922	}
56923	return ret, nil
56924	// {
56925	//   "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.",
56926	//   "httpMethod": "POST",
56927	//   "id": "compute.projects.setUsageExportBucket",
56928	//   "parameterOrder": [
56929	//     "project"
56930	//   ],
56931	//   "parameters": {
56932	//     "project": {
56933	//       "description": "Project ID for this request.",
56934	//       "location": "path",
56935	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56936	//       "required": true,
56937	//       "type": "string"
56938	//     },
56939	//     "requestId": {
56940	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56941	//       "location": "query",
56942	//       "type": "string"
56943	//     }
56944	//   },
56945	//   "path": "{project}/setUsageExportBucket",
56946	//   "request": {
56947	//     "$ref": "UsageExportLocation"
56948	//   },
56949	//   "response": {
56950	//     "$ref": "Operation"
56951	//   },
56952	//   "scopes": [
56953	//     "https://www.googleapis.com/auth/cloud-platform",
56954	//     "https://www.googleapis.com/auth/compute",
56955	//     "https://www.googleapis.com/auth/devstorage.full_control",
56956	//     "https://www.googleapis.com/auth/devstorage.read_only",
56957	//     "https://www.googleapis.com/auth/devstorage.read_write"
56958	//   ]
56959	// }
56960
56961}
56962
56963// method id "compute.regionAutoscalers.delete":
56964
56965type RegionAutoscalersDeleteCall struct {
56966	s          *Service
56967	project    string
56968	region     string
56969	autoscaler string
56970	urlParams_ gensupport.URLParams
56971	ctx_       context.Context
56972	header_    http.Header
56973}
56974
56975// Delete: Deletes the specified autoscaler.
56976func (r *RegionAutoscalersService) Delete(project string, region string, autoscaler string) *RegionAutoscalersDeleteCall {
56977	c := &RegionAutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56978	c.project = project
56979	c.region = region
56980	c.autoscaler = autoscaler
56981	return c
56982}
56983
56984// RequestId sets the optional parameter "requestId": An optional
56985// request ID to identify requests. Specify a unique request ID so that
56986// if you must retry your request, the server will know to ignore the
56987// request if it has already been completed.
56988//
56989// For example, consider a situation where you make an initial request
56990// and the request times out. If you make the request again with the
56991// same request ID, the server can check if original operation with the
56992// same request ID was received, and if so, will ignore the second
56993// request. This prevents clients from accidentally creating duplicate
56994// commitments.
56995//
56996// The request ID must be a valid UUID with the exception that zero UUID
56997// is not supported (00000000-0000-0000-0000-000000000000).
56998func (c *RegionAutoscalersDeleteCall) RequestId(requestId string) *RegionAutoscalersDeleteCall {
56999	c.urlParams_.Set("requestId", requestId)
57000	return c
57001}
57002
57003// Fields allows partial responses to be retrieved. See
57004// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57005// for more information.
57006func (c *RegionAutoscalersDeleteCall) Fields(s ...googleapi.Field) *RegionAutoscalersDeleteCall {
57007	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57008	return c
57009}
57010
57011// Context sets the context to be used in this call's Do method. Any
57012// pending HTTP request will be aborted if the provided context is
57013// canceled.
57014func (c *RegionAutoscalersDeleteCall) Context(ctx context.Context) *RegionAutoscalersDeleteCall {
57015	c.ctx_ = ctx
57016	return c
57017}
57018
57019// Header returns an http.Header that can be modified by the caller to
57020// add HTTP headers to the request.
57021func (c *RegionAutoscalersDeleteCall) Header() http.Header {
57022	if c.header_ == nil {
57023		c.header_ = make(http.Header)
57024	}
57025	return c.header_
57026}
57027
57028func (c *RegionAutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
57029	reqHeaders := make(http.Header)
57030	for k, v := range c.header_ {
57031		reqHeaders[k] = v
57032	}
57033	reqHeaders.Set("User-Agent", c.s.userAgent())
57034	var body io.Reader = nil
57035	c.urlParams_.Set("alt", alt)
57036	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{autoscaler}")
57037	urls += "?" + c.urlParams_.Encode()
57038	req, _ := http.NewRequest("DELETE", urls, body)
57039	req.Header = reqHeaders
57040	googleapi.Expand(req.URL, map[string]string{
57041		"project":    c.project,
57042		"region":     c.region,
57043		"autoscaler": c.autoscaler,
57044	})
57045	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57046}
57047
57048// Do executes the "compute.regionAutoscalers.delete" call.
57049// Exactly one of *Operation or error will be non-nil. Any non-2xx
57050// status code is an error. Response headers are in either
57051// *Operation.ServerResponse.Header or (if a response was returned at
57052// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57053// to check whether the returned error was because
57054// http.StatusNotModified was returned.
57055func (c *RegionAutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57056	gensupport.SetOptions(c.urlParams_, opts...)
57057	res, err := c.doRequest("json")
57058	if res != nil && res.StatusCode == http.StatusNotModified {
57059		if res.Body != nil {
57060			res.Body.Close()
57061		}
57062		return nil, &googleapi.Error{
57063			Code:   res.StatusCode,
57064			Header: res.Header,
57065		}
57066	}
57067	if err != nil {
57068		return nil, err
57069	}
57070	defer googleapi.CloseBody(res)
57071	if err := googleapi.CheckResponse(res); err != nil {
57072		return nil, err
57073	}
57074	ret := &Operation{
57075		ServerResponse: googleapi.ServerResponse{
57076			Header:         res.Header,
57077			HTTPStatusCode: res.StatusCode,
57078		},
57079	}
57080	target := &ret
57081	if err := gensupport.DecodeResponse(target, res); err != nil {
57082		return nil, err
57083	}
57084	return ret, nil
57085	// {
57086	//   "description": "Deletes the specified autoscaler.",
57087	//   "httpMethod": "DELETE",
57088	//   "id": "compute.regionAutoscalers.delete",
57089	//   "parameterOrder": [
57090	//     "project",
57091	//     "region",
57092	//     "autoscaler"
57093	//   ],
57094	//   "parameters": {
57095	//     "autoscaler": {
57096	//       "description": "Name of the autoscaler to delete.",
57097	//       "location": "path",
57098	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57099	//       "required": true,
57100	//       "type": "string"
57101	//     },
57102	//     "project": {
57103	//       "description": "Project ID for this request.",
57104	//       "location": "path",
57105	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57106	//       "required": true,
57107	//       "type": "string"
57108	//     },
57109	//     "region": {
57110	//       "description": "Name of the region scoping this request.",
57111	//       "location": "path",
57112	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57113	//       "required": true,
57114	//       "type": "string"
57115	//     },
57116	//     "requestId": {
57117	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57118	//       "location": "query",
57119	//       "type": "string"
57120	//     }
57121	//   },
57122	//   "path": "{project}/regions/{region}/autoscalers/{autoscaler}",
57123	//   "response": {
57124	//     "$ref": "Operation"
57125	//   },
57126	//   "scopes": [
57127	//     "https://www.googleapis.com/auth/cloud-platform",
57128	//     "https://www.googleapis.com/auth/compute"
57129	//   ]
57130	// }
57131
57132}
57133
57134// method id "compute.regionAutoscalers.get":
57135
57136type RegionAutoscalersGetCall struct {
57137	s            *Service
57138	project      string
57139	region       string
57140	autoscaler   string
57141	urlParams_   gensupport.URLParams
57142	ifNoneMatch_ string
57143	ctx_         context.Context
57144	header_      http.Header
57145}
57146
57147// Get: Returns the specified autoscaler.
57148func (r *RegionAutoscalersService) Get(project string, region string, autoscaler string) *RegionAutoscalersGetCall {
57149	c := &RegionAutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57150	c.project = project
57151	c.region = region
57152	c.autoscaler = autoscaler
57153	return c
57154}
57155
57156// Fields allows partial responses to be retrieved. See
57157// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57158// for more information.
57159func (c *RegionAutoscalersGetCall) Fields(s ...googleapi.Field) *RegionAutoscalersGetCall {
57160	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57161	return c
57162}
57163
57164// IfNoneMatch sets the optional parameter which makes the operation
57165// fail if the object's ETag matches the given value. This is useful for
57166// getting updates only after the object has changed since the last
57167// request. Use googleapi.IsNotModified to check whether the response
57168// error from Do is the result of In-None-Match.
57169func (c *RegionAutoscalersGetCall) IfNoneMatch(entityTag string) *RegionAutoscalersGetCall {
57170	c.ifNoneMatch_ = entityTag
57171	return c
57172}
57173
57174// Context sets the context to be used in this call's Do method. Any
57175// pending HTTP request will be aborted if the provided context is
57176// canceled.
57177func (c *RegionAutoscalersGetCall) Context(ctx context.Context) *RegionAutoscalersGetCall {
57178	c.ctx_ = ctx
57179	return c
57180}
57181
57182// Header returns an http.Header that can be modified by the caller to
57183// add HTTP headers to the request.
57184func (c *RegionAutoscalersGetCall) Header() http.Header {
57185	if c.header_ == nil {
57186		c.header_ = make(http.Header)
57187	}
57188	return c.header_
57189}
57190
57191func (c *RegionAutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
57192	reqHeaders := make(http.Header)
57193	for k, v := range c.header_ {
57194		reqHeaders[k] = v
57195	}
57196	reqHeaders.Set("User-Agent", c.s.userAgent())
57197	if c.ifNoneMatch_ != "" {
57198		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57199	}
57200	var body io.Reader = nil
57201	c.urlParams_.Set("alt", alt)
57202	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{autoscaler}")
57203	urls += "?" + c.urlParams_.Encode()
57204	req, _ := http.NewRequest("GET", urls, body)
57205	req.Header = reqHeaders
57206	googleapi.Expand(req.URL, map[string]string{
57207		"project":    c.project,
57208		"region":     c.region,
57209		"autoscaler": c.autoscaler,
57210	})
57211	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57212}
57213
57214// Do executes the "compute.regionAutoscalers.get" call.
57215// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
57216// status code is an error. Response headers are in either
57217// *Autoscaler.ServerResponse.Header or (if a response was returned at
57218// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57219// to check whether the returned error was because
57220// http.StatusNotModified was returned.
57221func (c *RegionAutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
57222	gensupport.SetOptions(c.urlParams_, opts...)
57223	res, err := c.doRequest("json")
57224	if res != nil && res.StatusCode == http.StatusNotModified {
57225		if res.Body != nil {
57226			res.Body.Close()
57227		}
57228		return nil, &googleapi.Error{
57229			Code:   res.StatusCode,
57230			Header: res.Header,
57231		}
57232	}
57233	if err != nil {
57234		return nil, err
57235	}
57236	defer googleapi.CloseBody(res)
57237	if err := googleapi.CheckResponse(res); err != nil {
57238		return nil, err
57239	}
57240	ret := &Autoscaler{
57241		ServerResponse: googleapi.ServerResponse{
57242			Header:         res.Header,
57243			HTTPStatusCode: res.StatusCode,
57244		},
57245	}
57246	target := &ret
57247	if err := gensupport.DecodeResponse(target, res); err != nil {
57248		return nil, err
57249	}
57250	return ret, nil
57251	// {
57252	//   "description": "Returns the specified autoscaler.",
57253	//   "httpMethod": "GET",
57254	//   "id": "compute.regionAutoscalers.get",
57255	//   "parameterOrder": [
57256	//     "project",
57257	//     "region",
57258	//     "autoscaler"
57259	//   ],
57260	//   "parameters": {
57261	//     "autoscaler": {
57262	//       "description": "Name of the autoscaler to return.",
57263	//       "location": "path",
57264	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57265	//       "required": true,
57266	//       "type": "string"
57267	//     },
57268	//     "project": {
57269	//       "description": "Project ID for this request.",
57270	//       "location": "path",
57271	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57272	//       "required": true,
57273	//       "type": "string"
57274	//     },
57275	//     "region": {
57276	//       "description": "Name of the region scoping this request.",
57277	//       "location": "path",
57278	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57279	//       "required": true,
57280	//       "type": "string"
57281	//     }
57282	//   },
57283	//   "path": "{project}/regions/{region}/autoscalers/{autoscaler}",
57284	//   "response": {
57285	//     "$ref": "Autoscaler"
57286	//   },
57287	//   "scopes": [
57288	//     "https://www.googleapis.com/auth/cloud-platform",
57289	//     "https://www.googleapis.com/auth/compute",
57290	//     "https://www.googleapis.com/auth/compute.readonly"
57291	//   ]
57292	// }
57293
57294}
57295
57296// method id "compute.regionAutoscalers.insert":
57297
57298type RegionAutoscalersInsertCall struct {
57299	s          *Service
57300	project    string
57301	region     string
57302	autoscaler *Autoscaler
57303	urlParams_ gensupport.URLParams
57304	ctx_       context.Context
57305	header_    http.Header
57306}
57307
57308// Insert: Creates an autoscaler in the specified project using the data
57309// included in the request.
57310func (r *RegionAutoscalersService) Insert(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersInsertCall {
57311	c := &RegionAutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57312	c.project = project
57313	c.region = region
57314	c.autoscaler = autoscaler
57315	return c
57316}
57317
57318// RequestId sets the optional parameter "requestId": An optional
57319// request ID to identify requests. Specify a unique request ID so that
57320// if you must retry your request, the server will know to ignore the
57321// request if it has already been completed.
57322//
57323// For example, consider a situation where you make an initial request
57324// and the request times out. If you make the request again with the
57325// same request ID, the server can check if original operation with the
57326// same request ID was received, and if so, will ignore the second
57327// request. This prevents clients from accidentally creating duplicate
57328// commitments.
57329//
57330// The request ID must be a valid UUID with the exception that zero UUID
57331// is not supported (00000000-0000-0000-0000-000000000000).
57332func (c *RegionAutoscalersInsertCall) RequestId(requestId string) *RegionAutoscalersInsertCall {
57333	c.urlParams_.Set("requestId", requestId)
57334	return c
57335}
57336
57337// Fields allows partial responses to be retrieved. See
57338// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57339// for more information.
57340func (c *RegionAutoscalersInsertCall) Fields(s ...googleapi.Field) *RegionAutoscalersInsertCall {
57341	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57342	return c
57343}
57344
57345// Context sets the context to be used in this call's Do method. Any
57346// pending HTTP request will be aborted if the provided context is
57347// canceled.
57348func (c *RegionAutoscalersInsertCall) Context(ctx context.Context) *RegionAutoscalersInsertCall {
57349	c.ctx_ = ctx
57350	return c
57351}
57352
57353// Header returns an http.Header that can be modified by the caller to
57354// add HTTP headers to the request.
57355func (c *RegionAutoscalersInsertCall) Header() http.Header {
57356	if c.header_ == nil {
57357		c.header_ = make(http.Header)
57358	}
57359	return c.header_
57360}
57361
57362func (c *RegionAutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
57363	reqHeaders := make(http.Header)
57364	for k, v := range c.header_ {
57365		reqHeaders[k] = v
57366	}
57367	reqHeaders.Set("User-Agent", c.s.userAgent())
57368	var body io.Reader = nil
57369	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
57370	if err != nil {
57371		return nil, err
57372	}
57373	reqHeaders.Set("Content-Type", "application/json")
57374	c.urlParams_.Set("alt", alt)
57375	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
57376	urls += "?" + c.urlParams_.Encode()
57377	req, _ := http.NewRequest("POST", urls, body)
57378	req.Header = reqHeaders
57379	googleapi.Expand(req.URL, map[string]string{
57380		"project": c.project,
57381		"region":  c.region,
57382	})
57383	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57384}
57385
57386// Do executes the "compute.regionAutoscalers.insert" call.
57387// Exactly one of *Operation or error will be non-nil. Any non-2xx
57388// status code is an error. Response headers are in either
57389// *Operation.ServerResponse.Header or (if a response was returned at
57390// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57391// to check whether the returned error was because
57392// http.StatusNotModified was returned.
57393func (c *RegionAutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57394	gensupport.SetOptions(c.urlParams_, opts...)
57395	res, err := c.doRequest("json")
57396	if res != nil && res.StatusCode == http.StatusNotModified {
57397		if res.Body != nil {
57398			res.Body.Close()
57399		}
57400		return nil, &googleapi.Error{
57401			Code:   res.StatusCode,
57402			Header: res.Header,
57403		}
57404	}
57405	if err != nil {
57406		return nil, err
57407	}
57408	defer googleapi.CloseBody(res)
57409	if err := googleapi.CheckResponse(res); err != nil {
57410		return nil, err
57411	}
57412	ret := &Operation{
57413		ServerResponse: googleapi.ServerResponse{
57414			Header:         res.Header,
57415			HTTPStatusCode: res.StatusCode,
57416		},
57417	}
57418	target := &ret
57419	if err := gensupport.DecodeResponse(target, res); err != nil {
57420		return nil, err
57421	}
57422	return ret, nil
57423	// {
57424	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
57425	//   "httpMethod": "POST",
57426	//   "id": "compute.regionAutoscalers.insert",
57427	//   "parameterOrder": [
57428	//     "project",
57429	//     "region"
57430	//   ],
57431	//   "parameters": {
57432	//     "project": {
57433	//       "description": "Project ID for this request.",
57434	//       "location": "path",
57435	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57436	//       "required": true,
57437	//       "type": "string"
57438	//     },
57439	//     "region": {
57440	//       "description": "Name of the region scoping this request.",
57441	//       "location": "path",
57442	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57443	//       "required": true,
57444	//       "type": "string"
57445	//     },
57446	//     "requestId": {
57447	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57448	//       "location": "query",
57449	//       "type": "string"
57450	//     }
57451	//   },
57452	//   "path": "{project}/regions/{region}/autoscalers",
57453	//   "request": {
57454	//     "$ref": "Autoscaler"
57455	//   },
57456	//   "response": {
57457	//     "$ref": "Operation"
57458	//   },
57459	//   "scopes": [
57460	//     "https://www.googleapis.com/auth/cloud-platform",
57461	//     "https://www.googleapis.com/auth/compute"
57462	//   ]
57463	// }
57464
57465}
57466
57467// method id "compute.regionAutoscalers.list":
57468
57469type RegionAutoscalersListCall struct {
57470	s            *Service
57471	project      string
57472	region       string
57473	urlParams_   gensupport.URLParams
57474	ifNoneMatch_ string
57475	ctx_         context.Context
57476	header_      http.Header
57477}
57478
57479// List: Retrieves a list of autoscalers contained within the specified
57480// region.
57481func (r *RegionAutoscalersService) List(project string, region string) *RegionAutoscalersListCall {
57482	c := &RegionAutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57483	c.project = project
57484	c.region = region
57485	return c
57486}
57487
57488// Filter sets the optional parameter "filter": Sets a filter
57489// {expression} for filtering listed resources. Your {expression} must
57490// be in the format: field_name comparison_string literal_string.
57491//
57492// The field_name is the name of the field you want to compare. Only
57493// atomic field types are supported (string, number, boolean). The
57494// comparison_string must be either eq (equals) or ne (not equals). The
57495// literal_string is the string value to filter to. The literal value
57496// must be valid for the type of field you are filtering by (string,
57497// number, boolean). For string fields, the literal value is interpreted
57498// as a regular expression using RE2 syntax. The literal value must
57499// match the entire field.
57500//
57501// For example, to filter for instances that do not have a name of
57502// example-instance, you would use name ne example-instance.
57503//
57504// You can filter on nested fields. For example, you could filter on
57505// instances that have set the scheduling.automaticRestart field to
57506// true. Use filtering on nested fields to take advantage of labels to
57507// organize and search for results based on label values.
57508//
57509// To filter on multiple expressions, provide each separate expression
57510// within parentheses. For example, (scheduling.automaticRestart eq
57511// true) (zone eq us-central1-f). Multiple expressions are treated as
57512// AND expressions, meaning that resources must match all expressions to
57513// pass the filters.
57514func (c *RegionAutoscalersListCall) Filter(filter string) *RegionAutoscalersListCall {
57515	c.urlParams_.Set("filter", filter)
57516	return c
57517}
57518
57519// MaxResults sets the optional parameter "maxResults": The maximum
57520// number of results per page that should be returned. If the number of
57521// available results is larger than maxResults, Compute Engine returns a
57522// nextPageToken that can be used to get the next page of results in
57523// subsequent list requests. Acceptable values are 0 to 500, inclusive.
57524// (Default: 500)
57525func (c *RegionAutoscalersListCall) MaxResults(maxResults int64) *RegionAutoscalersListCall {
57526	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
57527	return c
57528}
57529
57530// OrderBy sets the optional parameter "orderBy": Sorts list results by
57531// a certain order. By default, results are returned in alphanumerical
57532// order based on the resource name.
57533//
57534// You can also sort results in descending order based on the creation
57535// timestamp using orderBy="creationTimestamp desc". This sorts results
57536// based on the creationTimestamp field in reverse chronological order
57537// (newest result first). Use this to sort resources like operations so
57538// that the newest operation is returned first.
57539//
57540// Currently, only sorting by name or creationTimestamp desc is
57541// supported.
57542func (c *RegionAutoscalersListCall) OrderBy(orderBy string) *RegionAutoscalersListCall {
57543	c.urlParams_.Set("orderBy", orderBy)
57544	return c
57545}
57546
57547// PageToken sets the optional parameter "pageToken": Specifies a page
57548// token to use. Set pageToken to the nextPageToken returned by a
57549// previous list request to get the next page of results.
57550func (c *RegionAutoscalersListCall) PageToken(pageToken string) *RegionAutoscalersListCall {
57551	c.urlParams_.Set("pageToken", pageToken)
57552	return c
57553}
57554
57555// Fields allows partial responses to be retrieved. See
57556// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57557// for more information.
57558func (c *RegionAutoscalersListCall) Fields(s ...googleapi.Field) *RegionAutoscalersListCall {
57559	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57560	return c
57561}
57562
57563// IfNoneMatch sets the optional parameter which makes the operation
57564// fail if the object's ETag matches the given value. This is useful for
57565// getting updates only after the object has changed since the last
57566// request. Use googleapi.IsNotModified to check whether the response
57567// error from Do is the result of In-None-Match.
57568func (c *RegionAutoscalersListCall) IfNoneMatch(entityTag string) *RegionAutoscalersListCall {
57569	c.ifNoneMatch_ = entityTag
57570	return c
57571}
57572
57573// Context sets the context to be used in this call's Do method. Any
57574// pending HTTP request will be aborted if the provided context is
57575// canceled.
57576func (c *RegionAutoscalersListCall) Context(ctx context.Context) *RegionAutoscalersListCall {
57577	c.ctx_ = ctx
57578	return c
57579}
57580
57581// Header returns an http.Header that can be modified by the caller to
57582// add HTTP headers to the request.
57583func (c *RegionAutoscalersListCall) Header() http.Header {
57584	if c.header_ == nil {
57585		c.header_ = make(http.Header)
57586	}
57587	return c.header_
57588}
57589
57590func (c *RegionAutoscalersListCall) doRequest(alt string) (*http.Response, error) {
57591	reqHeaders := make(http.Header)
57592	for k, v := range c.header_ {
57593		reqHeaders[k] = v
57594	}
57595	reqHeaders.Set("User-Agent", c.s.userAgent())
57596	if c.ifNoneMatch_ != "" {
57597		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57598	}
57599	var body io.Reader = nil
57600	c.urlParams_.Set("alt", alt)
57601	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
57602	urls += "?" + c.urlParams_.Encode()
57603	req, _ := http.NewRequest("GET", urls, body)
57604	req.Header = reqHeaders
57605	googleapi.Expand(req.URL, map[string]string{
57606		"project": c.project,
57607		"region":  c.region,
57608	})
57609	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57610}
57611
57612// Do executes the "compute.regionAutoscalers.list" call.
57613// Exactly one of *RegionAutoscalerList or error will be non-nil. Any
57614// non-2xx status code is an error. Response headers are in either
57615// *RegionAutoscalerList.ServerResponse.Header or (if a response was
57616// returned at all) in error.(*googleapi.Error).Header. Use
57617// googleapi.IsNotModified to check whether the returned error was
57618// because http.StatusNotModified was returned.
57619func (c *RegionAutoscalersListCall) Do(opts ...googleapi.CallOption) (*RegionAutoscalerList, error) {
57620	gensupport.SetOptions(c.urlParams_, opts...)
57621	res, err := c.doRequest("json")
57622	if res != nil && res.StatusCode == http.StatusNotModified {
57623		if res.Body != nil {
57624			res.Body.Close()
57625		}
57626		return nil, &googleapi.Error{
57627			Code:   res.StatusCode,
57628			Header: res.Header,
57629		}
57630	}
57631	if err != nil {
57632		return nil, err
57633	}
57634	defer googleapi.CloseBody(res)
57635	if err := googleapi.CheckResponse(res); err != nil {
57636		return nil, err
57637	}
57638	ret := &RegionAutoscalerList{
57639		ServerResponse: googleapi.ServerResponse{
57640			Header:         res.Header,
57641			HTTPStatusCode: res.StatusCode,
57642		},
57643	}
57644	target := &ret
57645	if err := gensupport.DecodeResponse(target, res); err != nil {
57646		return nil, err
57647	}
57648	return ret, nil
57649	// {
57650	//   "description": "Retrieves a list of autoscalers contained within the specified region.",
57651	//   "httpMethod": "GET",
57652	//   "id": "compute.regionAutoscalers.list",
57653	//   "parameterOrder": [
57654	//     "project",
57655	//     "region"
57656	//   ],
57657	//   "parameters": {
57658	//     "filter": {
57659	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
57660	//       "location": "query",
57661	//       "type": "string"
57662	//     },
57663	//     "maxResults": {
57664	//       "default": "500",
57665	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
57666	//       "format": "uint32",
57667	//       "location": "query",
57668	//       "minimum": "0",
57669	//       "type": "integer"
57670	//     },
57671	//     "orderBy": {
57672	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
57673	//       "location": "query",
57674	//       "type": "string"
57675	//     },
57676	//     "pageToken": {
57677	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
57678	//       "location": "query",
57679	//       "type": "string"
57680	//     },
57681	//     "project": {
57682	//       "description": "Project ID for this request.",
57683	//       "location": "path",
57684	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57685	//       "required": true,
57686	//       "type": "string"
57687	//     },
57688	//     "region": {
57689	//       "description": "Name of the region scoping this request.",
57690	//       "location": "path",
57691	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57692	//       "required": true,
57693	//       "type": "string"
57694	//     }
57695	//   },
57696	//   "path": "{project}/regions/{region}/autoscalers",
57697	//   "response": {
57698	//     "$ref": "RegionAutoscalerList"
57699	//   },
57700	//   "scopes": [
57701	//     "https://www.googleapis.com/auth/cloud-platform",
57702	//     "https://www.googleapis.com/auth/compute",
57703	//     "https://www.googleapis.com/auth/compute.readonly"
57704	//   ]
57705	// }
57706
57707}
57708
57709// Pages invokes f for each page of results.
57710// A non-nil error returned from f will halt the iteration.
57711// The provided context supersedes any context provided to the Context method.
57712func (c *RegionAutoscalersListCall) Pages(ctx context.Context, f func(*RegionAutoscalerList) error) error {
57713	c.ctx_ = ctx
57714	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
57715	for {
57716		x, err := c.Do()
57717		if err != nil {
57718			return err
57719		}
57720		if err := f(x); err != nil {
57721			return err
57722		}
57723		if x.NextPageToken == "" {
57724			return nil
57725		}
57726		c.PageToken(x.NextPageToken)
57727	}
57728}
57729
57730// method id "compute.regionAutoscalers.patch":
57731
57732type RegionAutoscalersPatchCall struct {
57733	s          *Service
57734	project    string
57735	region     string
57736	autoscaler *Autoscaler
57737	urlParams_ gensupport.URLParams
57738	ctx_       context.Context
57739	header_    http.Header
57740}
57741
57742// Patch: Updates an autoscaler in the specified project using the data
57743// included in the request. This method supports PATCH semantics and
57744// uses the JSON merge patch format and processing rules.
57745func (r *RegionAutoscalersService) Patch(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersPatchCall {
57746	c := &RegionAutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57747	c.project = project
57748	c.region = region
57749	c.autoscaler = autoscaler
57750	return c
57751}
57752
57753// Autoscaler sets the optional parameter "autoscaler": Name of the
57754// autoscaler to patch.
57755func (c *RegionAutoscalersPatchCall) Autoscaler(autoscaler string) *RegionAutoscalersPatchCall {
57756	c.urlParams_.Set("autoscaler", autoscaler)
57757	return c
57758}
57759
57760// RequestId sets the optional parameter "requestId": An optional
57761// request ID to identify requests. Specify a unique request ID so that
57762// if you must retry your request, the server will know to ignore the
57763// request if it has already been completed.
57764//
57765// For example, consider a situation where you make an initial request
57766// and the request times out. If you make the request again with the
57767// same request ID, the server can check if original operation with the
57768// same request ID was received, and if so, will ignore the second
57769// request. This prevents clients from accidentally creating duplicate
57770// commitments.
57771//
57772// The request ID must be a valid UUID with the exception that zero UUID
57773// is not supported (00000000-0000-0000-0000-000000000000).
57774func (c *RegionAutoscalersPatchCall) RequestId(requestId string) *RegionAutoscalersPatchCall {
57775	c.urlParams_.Set("requestId", requestId)
57776	return c
57777}
57778
57779// Fields allows partial responses to be retrieved. See
57780// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57781// for more information.
57782func (c *RegionAutoscalersPatchCall) Fields(s ...googleapi.Field) *RegionAutoscalersPatchCall {
57783	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57784	return c
57785}
57786
57787// Context sets the context to be used in this call's Do method. Any
57788// pending HTTP request will be aborted if the provided context is
57789// canceled.
57790func (c *RegionAutoscalersPatchCall) Context(ctx context.Context) *RegionAutoscalersPatchCall {
57791	c.ctx_ = ctx
57792	return c
57793}
57794
57795// Header returns an http.Header that can be modified by the caller to
57796// add HTTP headers to the request.
57797func (c *RegionAutoscalersPatchCall) Header() http.Header {
57798	if c.header_ == nil {
57799		c.header_ = make(http.Header)
57800	}
57801	return c.header_
57802}
57803
57804func (c *RegionAutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
57805	reqHeaders := make(http.Header)
57806	for k, v := range c.header_ {
57807		reqHeaders[k] = v
57808	}
57809	reqHeaders.Set("User-Agent", c.s.userAgent())
57810	var body io.Reader = nil
57811	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
57812	if err != nil {
57813		return nil, err
57814	}
57815	reqHeaders.Set("Content-Type", "application/json")
57816	c.urlParams_.Set("alt", alt)
57817	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
57818	urls += "?" + c.urlParams_.Encode()
57819	req, _ := http.NewRequest("PATCH", urls, body)
57820	req.Header = reqHeaders
57821	googleapi.Expand(req.URL, map[string]string{
57822		"project": c.project,
57823		"region":  c.region,
57824	})
57825	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57826}
57827
57828// Do executes the "compute.regionAutoscalers.patch" call.
57829// Exactly one of *Operation or error will be non-nil. Any non-2xx
57830// status code is an error. Response headers are in either
57831// *Operation.ServerResponse.Header or (if a response was returned at
57832// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57833// to check whether the returned error was because
57834// http.StatusNotModified was returned.
57835func (c *RegionAutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57836	gensupport.SetOptions(c.urlParams_, opts...)
57837	res, err := c.doRequest("json")
57838	if res != nil && res.StatusCode == http.StatusNotModified {
57839		if res.Body != nil {
57840			res.Body.Close()
57841		}
57842		return nil, &googleapi.Error{
57843			Code:   res.StatusCode,
57844			Header: res.Header,
57845		}
57846	}
57847	if err != nil {
57848		return nil, err
57849	}
57850	defer googleapi.CloseBody(res)
57851	if err := googleapi.CheckResponse(res); err != nil {
57852		return nil, err
57853	}
57854	ret := &Operation{
57855		ServerResponse: googleapi.ServerResponse{
57856			Header:         res.Header,
57857			HTTPStatusCode: res.StatusCode,
57858		},
57859	}
57860	target := &ret
57861	if err := gensupport.DecodeResponse(target, res); err != nil {
57862		return nil, err
57863	}
57864	return ret, nil
57865	// {
57866	//   "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.",
57867	//   "httpMethod": "PATCH",
57868	//   "id": "compute.regionAutoscalers.patch",
57869	//   "parameterOrder": [
57870	//     "project",
57871	//     "region"
57872	//   ],
57873	//   "parameters": {
57874	//     "autoscaler": {
57875	//       "description": "Name of the autoscaler to patch.",
57876	//       "location": "query",
57877	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57878	//       "type": "string"
57879	//     },
57880	//     "project": {
57881	//       "description": "Project ID for this request.",
57882	//       "location": "path",
57883	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57884	//       "required": true,
57885	//       "type": "string"
57886	//     },
57887	//     "region": {
57888	//       "description": "Name of the region scoping this request.",
57889	//       "location": "path",
57890	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57891	//       "required": true,
57892	//       "type": "string"
57893	//     },
57894	//     "requestId": {
57895	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57896	//       "location": "query",
57897	//       "type": "string"
57898	//     }
57899	//   },
57900	//   "path": "{project}/regions/{region}/autoscalers",
57901	//   "request": {
57902	//     "$ref": "Autoscaler"
57903	//   },
57904	//   "response": {
57905	//     "$ref": "Operation"
57906	//   },
57907	//   "scopes": [
57908	//     "https://www.googleapis.com/auth/cloud-platform",
57909	//     "https://www.googleapis.com/auth/compute"
57910	//   ]
57911	// }
57912
57913}
57914
57915// method id "compute.regionAutoscalers.update":
57916
57917type RegionAutoscalersUpdateCall struct {
57918	s          *Service
57919	project    string
57920	region     string
57921	autoscaler *Autoscaler
57922	urlParams_ gensupport.URLParams
57923	ctx_       context.Context
57924	header_    http.Header
57925}
57926
57927// Update: Updates an autoscaler in the specified project using the data
57928// included in the request.
57929func (r *RegionAutoscalersService) Update(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersUpdateCall {
57930	c := &RegionAutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57931	c.project = project
57932	c.region = region
57933	c.autoscaler = autoscaler
57934	return c
57935}
57936
57937// Autoscaler sets the optional parameter "autoscaler": Name of the
57938// autoscaler to update.
57939func (c *RegionAutoscalersUpdateCall) Autoscaler(autoscaler string) *RegionAutoscalersUpdateCall {
57940	c.urlParams_.Set("autoscaler", autoscaler)
57941	return c
57942}
57943
57944// RequestId sets the optional parameter "requestId": An optional
57945// request ID to identify requests. Specify a unique request ID so that
57946// if you must retry your request, the server will know to ignore the
57947// request if it has already been completed.
57948//
57949// For example, consider a situation where you make an initial request
57950// and the request times out. If you make the request again with the
57951// same request ID, the server can check if original operation with the
57952// same request ID was received, and if so, will ignore the second
57953// request. This prevents clients from accidentally creating duplicate
57954// commitments.
57955//
57956// The request ID must be a valid UUID with the exception that zero UUID
57957// is not supported (00000000-0000-0000-0000-000000000000).
57958func (c *RegionAutoscalersUpdateCall) RequestId(requestId string) *RegionAutoscalersUpdateCall {
57959	c.urlParams_.Set("requestId", requestId)
57960	return c
57961}
57962
57963// Fields allows partial responses to be retrieved. See
57964// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57965// for more information.
57966func (c *RegionAutoscalersUpdateCall) Fields(s ...googleapi.Field) *RegionAutoscalersUpdateCall {
57967	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57968	return c
57969}
57970
57971// Context sets the context to be used in this call's Do method. Any
57972// pending HTTP request will be aborted if the provided context is
57973// canceled.
57974func (c *RegionAutoscalersUpdateCall) Context(ctx context.Context) *RegionAutoscalersUpdateCall {
57975	c.ctx_ = ctx
57976	return c
57977}
57978
57979// Header returns an http.Header that can be modified by the caller to
57980// add HTTP headers to the request.
57981func (c *RegionAutoscalersUpdateCall) Header() http.Header {
57982	if c.header_ == nil {
57983		c.header_ = make(http.Header)
57984	}
57985	return c.header_
57986}
57987
57988func (c *RegionAutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
57989	reqHeaders := make(http.Header)
57990	for k, v := range c.header_ {
57991		reqHeaders[k] = v
57992	}
57993	reqHeaders.Set("User-Agent", c.s.userAgent())
57994	var body io.Reader = nil
57995	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
57996	if err != nil {
57997		return nil, err
57998	}
57999	reqHeaders.Set("Content-Type", "application/json")
58000	c.urlParams_.Set("alt", alt)
58001	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
58002	urls += "?" + c.urlParams_.Encode()
58003	req, _ := http.NewRequest("PUT", urls, body)
58004	req.Header = reqHeaders
58005	googleapi.Expand(req.URL, map[string]string{
58006		"project": c.project,
58007		"region":  c.region,
58008	})
58009	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58010}
58011
58012// Do executes the "compute.regionAutoscalers.update" call.
58013// Exactly one of *Operation or error will be non-nil. Any non-2xx
58014// status code is an error. Response headers are in either
58015// *Operation.ServerResponse.Header or (if a response was returned at
58016// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58017// to check whether the returned error was because
58018// http.StatusNotModified was returned.
58019func (c *RegionAutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58020	gensupport.SetOptions(c.urlParams_, opts...)
58021	res, err := c.doRequest("json")
58022	if res != nil && res.StatusCode == http.StatusNotModified {
58023		if res.Body != nil {
58024			res.Body.Close()
58025		}
58026		return nil, &googleapi.Error{
58027			Code:   res.StatusCode,
58028			Header: res.Header,
58029		}
58030	}
58031	if err != nil {
58032		return nil, err
58033	}
58034	defer googleapi.CloseBody(res)
58035	if err := googleapi.CheckResponse(res); err != nil {
58036		return nil, err
58037	}
58038	ret := &Operation{
58039		ServerResponse: googleapi.ServerResponse{
58040			Header:         res.Header,
58041			HTTPStatusCode: res.StatusCode,
58042		},
58043	}
58044	target := &ret
58045	if err := gensupport.DecodeResponse(target, res); err != nil {
58046		return nil, err
58047	}
58048	return ret, nil
58049	// {
58050	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
58051	//   "httpMethod": "PUT",
58052	//   "id": "compute.regionAutoscalers.update",
58053	//   "parameterOrder": [
58054	//     "project",
58055	//     "region"
58056	//   ],
58057	//   "parameters": {
58058	//     "autoscaler": {
58059	//       "description": "Name of the autoscaler to update.",
58060	//       "location": "query",
58061	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58062	//       "type": "string"
58063	//     },
58064	//     "project": {
58065	//       "description": "Project ID for this request.",
58066	//       "location": "path",
58067	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58068	//       "required": true,
58069	//       "type": "string"
58070	//     },
58071	//     "region": {
58072	//       "description": "Name of the region scoping this request.",
58073	//       "location": "path",
58074	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58075	//       "required": true,
58076	//       "type": "string"
58077	//     },
58078	//     "requestId": {
58079	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58080	//       "location": "query",
58081	//       "type": "string"
58082	//     }
58083	//   },
58084	//   "path": "{project}/regions/{region}/autoscalers",
58085	//   "request": {
58086	//     "$ref": "Autoscaler"
58087	//   },
58088	//   "response": {
58089	//     "$ref": "Operation"
58090	//   },
58091	//   "scopes": [
58092	//     "https://www.googleapis.com/auth/cloud-platform",
58093	//     "https://www.googleapis.com/auth/compute"
58094	//   ]
58095	// }
58096
58097}
58098
58099// method id "compute.regionBackendServices.delete":
58100
58101type RegionBackendServicesDeleteCall struct {
58102	s              *Service
58103	project        string
58104	region         string
58105	backendService string
58106	urlParams_     gensupport.URLParams
58107	ctx_           context.Context
58108	header_        http.Header
58109}
58110
58111// Delete: Deletes the specified regional BackendService resource.
58112func (r *RegionBackendServicesService) Delete(project string, region string, backendService string) *RegionBackendServicesDeleteCall {
58113	c := &RegionBackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58114	c.project = project
58115	c.region = region
58116	c.backendService = backendService
58117	return c
58118}
58119
58120// RequestId sets the optional parameter "requestId": An optional
58121// request ID to identify requests. Specify a unique request ID so that
58122// if you must retry your request, the server will know to ignore the
58123// request if it has already been completed.
58124//
58125// For example, consider a situation where you make an initial request
58126// and the request times out. If you make the request again with the
58127// same request ID, the server can check if original operation with the
58128// same request ID was received, and if so, will ignore the second
58129// request. This prevents clients from accidentally creating duplicate
58130// commitments.
58131//
58132// The request ID must be a valid UUID with the exception that zero UUID
58133// is not supported (00000000-0000-0000-0000-000000000000).
58134func (c *RegionBackendServicesDeleteCall) RequestId(requestId string) *RegionBackendServicesDeleteCall {
58135	c.urlParams_.Set("requestId", requestId)
58136	return c
58137}
58138
58139// Fields allows partial responses to be retrieved. See
58140// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58141// for more information.
58142func (c *RegionBackendServicesDeleteCall) Fields(s ...googleapi.Field) *RegionBackendServicesDeleteCall {
58143	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58144	return c
58145}
58146
58147// Context sets the context to be used in this call's Do method. Any
58148// pending HTTP request will be aborted if the provided context is
58149// canceled.
58150func (c *RegionBackendServicesDeleteCall) Context(ctx context.Context) *RegionBackendServicesDeleteCall {
58151	c.ctx_ = ctx
58152	return c
58153}
58154
58155// Header returns an http.Header that can be modified by the caller to
58156// add HTTP headers to the request.
58157func (c *RegionBackendServicesDeleteCall) Header() http.Header {
58158	if c.header_ == nil {
58159		c.header_ = make(http.Header)
58160	}
58161	return c.header_
58162}
58163
58164func (c *RegionBackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
58165	reqHeaders := make(http.Header)
58166	for k, v := range c.header_ {
58167		reqHeaders[k] = v
58168	}
58169	reqHeaders.Set("User-Agent", c.s.userAgent())
58170	var body io.Reader = nil
58171	c.urlParams_.Set("alt", alt)
58172	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
58173	urls += "?" + c.urlParams_.Encode()
58174	req, _ := http.NewRequest("DELETE", urls, body)
58175	req.Header = reqHeaders
58176	googleapi.Expand(req.URL, map[string]string{
58177		"project":        c.project,
58178		"region":         c.region,
58179		"backendService": c.backendService,
58180	})
58181	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58182}
58183
58184// Do executes the "compute.regionBackendServices.delete" call.
58185// Exactly one of *Operation or error will be non-nil. Any non-2xx
58186// status code is an error. Response headers are in either
58187// *Operation.ServerResponse.Header or (if a response was returned at
58188// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58189// to check whether the returned error was because
58190// http.StatusNotModified was returned.
58191func (c *RegionBackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58192	gensupport.SetOptions(c.urlParams_, opts...)
58193	res, err := c.doRequest("json")
58194	if res != nil && res.StatusCode == http.StatusNotModified {
58195		if res.Body != nil {
58196			res.Body.Close()
58197		}
58198		return nil, &googleapi.Error{
58199			Code:   res.StatusCode,
58200			Header: res.Header,
58201		}
58202	}
58203	if err != nil {
58204		return nil, err
58205	}
58206	defer googleapi.CloseBody(res)
58207	if err := googleapi.CheckResponse(res); err != nil {
58208		return nil, err
58209	}
58210	ret := &Operation{
58211		ServerResponse: googleapi.ServerResponse{
58212			Header:         res.Header,
58213			HTTPStatusCode: res.StatusCode,
58214		},
58215	}
58216	target := &ret
58217	if err := gensupport.DecodeResponse(target, res); err != nil {
58218		return nil, err
58219	}
58220	return ret, nil
58221	// {
58222	//   "description": "Deletes the specified regional BackendService resource.",
58223	//   "httpMethod": "DELETE",
58224	//   "id": "compute.regionBackendServices.delete",
58225	//   "parameterOrder": [
58226	//     "project",
58227	//     "region",
58228	//     "backendService"
58229	//   ],
58230	//   "parameters": {
58231	//     "backendService": {
58232	//       "description": "Name of the BackendService resource to delete.",
58233	//       "location": "path",
58234	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58235	//       "required": true,
58236	//       "type": "string"
58237	//     },
58238	//     "project": {
58239	//       "description": "Project ID for this request.",
58240	//       "location": "path",
58241	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58242	//       "required": true,
58243	//       "type": "string"
58244	//     },
58245	//     "region": {
58246	//       "description": "Name of the region scoping this request.",
58247	//       "location": "path",
58248	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58249	//       "required": true,
58250	//       "type": "string"
58251	//     },
58252	//     "requestId": {
58253	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58254	//       "location": "query",
58255	//       "type": "string"
58256	//     }
58257	//   },
58258	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
58259	//   "response": {
58260	//     "$ref": "Operation"
58261	//   },
58262	//   "scopes": [
58263	//     "https://www.googleapis.com/auth/cloud-platform",
58264	//     "https://www.googleapis.com/auth/compute"
58265	//   ]
58266	// }
58267
58268}
58269
58270// method id "compute.regionBackendServices.get":
58271
58272type RegionBackendServicesGetCall struct {
58273	s              *Service
58274	project        string
58275	region         string
58276	backendService string
58277	urlParams_     gensupport.URLParams
58278	ifNoneMatch_   string
58279	ctx_           context.Context
58280	header_        http.Header
58281}
58282
58283// Get: Returns the specified regional BackendService resource.
58284func (r *RegionBackendServicesService) Get(project string, region string, backendService string) *RegionBackendServicesGetCall {
58285	c := &RegionBackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58286	c.project = project
58287	c.region = region
58288	c.backendService = backendService
58289	return c
58290}
58291
58292// Fields allows partial responses to be retrieved. See
58293// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58294// for more information.
58295func (c *RegionBackendServicesGetCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetCall {
58296	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58297	return c
58298}
58299
58300// IfNoneMatch sets the optional parameter which makes the operation
58301// fail if the object's ETag matches the given value. This is useful for
58302// getting updates only after the object has changed since the last
58303// request. Use googleapi.IsNotModified to check whether the response
58304// error from Do is the result of In-None-Match.
58305func (c *RegionBackendServicesGetCall) IfNoneMatch(entityTag string) *RegionBackendServicesGetCall {
58306	c.ifNoneMatch_ = entityTag
58307	return c
58308}
58309
58310// Context sets the context to be used in this call's Do method. Any
58311// pending HTTP request will be aborted if the provided context is
58312// canceled.
58313func (c *RegionBackendServicesGetCall) Context(ctx context.Context) *RegionBackendServicesGetCall {
58314	c.ctx_ = ctx
58315	return c
58316}
58317
58318// Header returns an http.Header that can be modified by the caller to
58319// add HTTP headers to the request.
58320func (c *RegionBackendServicesGetCall) Header() http.Header {
58321	if c.header_ == nil {
58322		c.header_ = make(http.Header)
58323	}
58324	return c.header_
58325}
58326
58327func (c *RegionBackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
58328	reqHeaders := make(http.Header)
58329	for k, v := range c.header_ {
58330		reqHeaders[k] = v
58331	}
58332	reqHeaders.Set("User-Agent", c.s.userAgent())
58333	if c.ifNoneMatch_ != "" {
58334		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58335	}
58336	var body io.Reader = nil
58337	c.urlParams_.Set("alt", alt)
58338	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
58339	urls += "?" + c.urlParams_.Encode()
58340	req, _ := http.NewRequest("GET", urls, body)
58341	req.Header = reqHeaders
58342	googleapi.Expand(req.URL, map[string]string{
58343		"project":        c.project,
58344		"region":         c.region,
58345		"backendService": c.backendService,
58346	})
58347	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58348}
58349
58350// Do executes the "compute.regionBackendServices.get" call.
58351// Exactly one of *BackendService or error will be non-nil. Any non-2xx
58352// status code is an error. Response headers are in either
58353// *BackendService.ServerResponse.Header or (if a response was returned
58354// at all) in error.(*googleapi.Error).Header. Use
58355// googleapi.IsNotModified to check whether the returned error was
58356// because http.StatusNotModified was returned.
58357func (c *RegionBackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
58358	gensupport.SetOptions(c.urlParams_, opts...)
58359	res, err := c.doRequest("json")
58360	if res != nil && res.StatusCode == http.StatusNotModified {
58361		if res.Body != nil {
58362			res.Body.Close()
58363		}
58364		return nil, &googleapi.Error{
58365			Code:   res.StatusCode,
58366			Header: res.Header,
58367		}
58368	}
58369	if err != nil {
58370		return nil, err
58371	}
58372	defer googleapi.CloseBody(res)
58373	if err := googleapi.CheckResponse(res); err != nil {
58374		return nil, err
58375	}
58376	ret := &BackendService{
58377		ServerResponse: googleapi.ServerResponse{
58378			Header:         res.Header,
58379			HTTPStatusCode: res.StatusCode,
58380		},
58381	}
58382	target := &ret
58383	if err := gensupport.DecodeResponse(target, res); err != nil {
58384		return nil, err
58385	}
58386	return ret, nil
58387	// {
58388	//   "description": "Returns the specified regional BackendService resource.",
58389	//   "httpMethod": "GET",
58390	//   "id": "compute.regionBackendServices.get",
58391	//   "parameterOrder": [
58392	//     "project",
58393	//     "region",
58394	//     "backendService"
58395	//   ],
58396	//   "parameters": {
58397	//     "backendService": {
58398	//       "description": "Name of the BackendService resource to return.",
58399	//       "location": "path",
58400	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58401	//       "required": true,
58402	//       "type": "string"
58403	//     },
58404	//     "project": {
58405	//       "description": "Project ID for this request.",
58406	//       "location": "path",
58407	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58408	//       "required": true,
58409	//       "type": "string"
58410	//     },
58411	//     "region": {
58412	//       "description": "Name of the region scoping this request.",
58413	//       "location": "path",
58414	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58415	//       "required": true,
58416	//       "type": "string"
58417	//     }
58418	//   },
58419	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
58420	//   "response": {
58421	//     "$ref": "BackendService"
58422	//   },
58423	//   "scopes": [
58424	//     "https://www.googleapis.com/auth/cloud-platform",
58425	//     "https://www.googleapis.com/auth/compute",
58426	//     "https://www.googleapis.com/auth/compute.readonly"
58427	//   ]
58428	// }
58429
58430}
58431
58432// method id "compute.regionBackendServices.getHealth":
58433
58434type RegionBackendServicesGetHealthCall struct {
58435	s                      *Service
58436	project                string
58437	region                 string
58438	backendService         string
58439	resourcegroupreference *ResourceGroupReference
58440	urlParams_             gensupport.URLParams
58441	ctx_                   context.Context
58442	header_                http.Header
58443}
58444
58445// GetHealth: Gets the most recent health check results for this
58446// regional BackendService.
58447func (r *RegionBackendServicesService) GetHealth(project string, region string, backendService string, resourcegroupreference *ResourceGroupReference) *RegionBackendServicesGetHealthCall {
58448	c := &RegionBackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58449	c.project = project
58450	c.region = region
58451	c.backendService = backendService
58452	c.resourcegroupreference = resourcegroupreference
58453	return c
58454}
58455
58456// Fields allows partial responses to be retrieved. See
58457// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58458// for more information.
58459func (c *RegionBackendServicesGetHealthCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetHealthCall {
58460	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58461	return c
58462}
58463
58464// Context sets the context to be used in this call's Do method. Any
58465// pending HTTP request will be aborted if the provided context is
58466// canceled.
58467func (c *RegionBackendServicesGetHealthCall) Context(ctx context.Context) *RegionBackendServicesGetHealthCall {
58468	c.ctx_ = ctx
58469	return c
58470}
58471
58472// Header returns an http.Header that can be modified by the caller to
58473// add HTTP headers to the request.
58474func (c *RegionBackendServicesGetHealthCall) Header() http.Header {
58475	if c.header_ == nil {
58476		c.header_ = make(http.Header)
58477	}
58478	return c.header_
58479}
58480
58481func (c *RegionBackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
58482	reqHeaders := make(http.Header)
58483	for k, v := range c.header_ {
58484		reqHeaders[k] = v
58485	}
58486	reqHeaders.Set("User-Agent", c.s.userAgent())
58487	var body io.Reader = nil
58488	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
58489	if err != nil {
58490		return nil, err
58491	}
58492	reqHeaders.Set("Content-Type", "application/json")
58493	c.urlParams_.Set("alt", alt)
58494	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}/getHealth")
58495	urls += "?" + c.urlParams_.Encode()
58496	req, _ := http.NewRequest("POST", urls, body)
58497	req.Header = reqHeaders
58498	googleapi.Expand(req.URL, map[string]string{
58499		"project":        c.project,
58500		"region":         c.region,
58501		"backendService": c.backendService,
58502	})
58503	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58504}
58505
58506// Do executes the "compute.regionBackendServices.getHealth" call.
58507// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
58508// Any non-2xx status code is an error. Response headers are in either
58509// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
58510// was returned at all) in error.(*googleapi.Error).Header. Use
58511// googleapi.IsNotModified to check whether the returned error was
58512// because http.StatusNotModified was returned.
58513func (c *RegionBackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
58514	gensupport.SetOptions(c.urlParams_, opts...)
58515	res, err := c.doRequest("json")
58516	if res != nil && res.StatusCode == http.StatusNotModified {
58517		if res.Body != nil {
58518			res.Body.Close()
58519		}
58520		return nil, &googleapi.Error{
58521			Code:   res.StatusCode,
58522			Header: res.Header,
58523		}
58524	}
58525	if err != nil {
58526		return nil, err
58527	}
58528	defer googleapi.CloseBody(res)
58529	if err := googleapi.CheckResponse(res); err != nil {
58530		return nil, err
58531	}
58532	ret := &BackendServiceGroupHealth{
58533		ServerResponse: googleapi.ServerResponse{
58534			Header:         res.Header,
58535			HTTPStatusCode: res.StatusCode,
58536		},
58537	}
58538	target := &ret
58539	if err := gensupport.DecodeResponse(target, res); err != nil {
58540		return nil, err
58541	}
58542	return ret, nil
58543	// {
58544	//   "description": "Gets the most recent health check results for this regional BackendService.",
58545	//   "httpMethod": "POST",
58546	//   "id": "compute.regionBackendServices.getHealth",
58547	//   "parameterOrder": [
58548	//     "project",
58549	//     "region",
58550	//     "backendService"
58551	//   ],
58552	//   "parameters": {
58553	//     "backendService": {
58554	//       "description": "Name of the BackendService resource for which to get health.",
58555	//       "location": "path",
58556	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58557	//       "required": true,
58558	//       "type": "string"
58559	//     },
58560	//     "project": {
58561	//       "location": "path",
58562	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58563	//       "required": true,
58564	//       "type": "string"
58565	//     },
58566	//     "region": {
58567	//       "description": "Name of the region scoping this request.",
58568	//       "location": "path",
58569	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58570	//       "required": true,
58571	//       "type": "string"
58572	//     }
58573	//   },
58574	//   "path": "{project}/regions/{region}/backendServices/{backendService}/getHealth",
58575	//   "request": {
58576	//     "$ref": "ResourceGroupReference"
58577	//   },
58578	//   "response": {
58579	//     "$ref": "BackendServiceGroupHealth"
58580	//   },
58581	//   "scopes": [
58582	//     "https://www.googleapis.com/auth/cloud-platform",
58583	//     "https://www.googleapis.com/auth/compute",
58584	//     "https://www.googleapis.com/auth/compute.readonly"
58585	//   ]
58586	// }
58587
58588}
58589
58590// method id "compute.regionBackendServices.insert":
58591
58592type RegionBackendServicesInsertCall struct {
58593	s              *Service
58594	project        string
58595	region         string
58596	backendservice *BackendService
58597	urlParams_     gensupport.URLParams
58598	ctx_           context.Context
58599	header_        http.Header
58600}
58601
58602// Insert: Creates a regional BackendService resource in the specified
58603// project using the data included in the request. There are several
58604// restrictions and guidelines to keep in mind when creating a regional
58605// backend service. Read  Restrictions and Guidelines for more
58606// information.
58607func (r *RegionBackendServicesService) Insert(project string, region string, backendservice *BackendService) *RegionBackendServicesInsertCall {
58608	c := &RegionBackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58609	c.project = project
58610	c.region = region
58611	c.backendservice = backendservice
58612	return c
58613}
58614
58615// RequestId sets the optional parameter "requestId": An optional
58616// request ID to identify requests. Specify a unique request ID so that
58617// if you must retry your request, the server will know to ignore the
58618// request if it has already been completed.
58619//
58620// For example, consider a situation where you make an initial request
58621// and the request times out. If you make the request again with the
58622// same request ID, the server can check if original operation with the
58623// same request ID was received, and if so, will ignore the second
58624// request. This prevents clients from accidentally creating duplicate
58625// commitments.
58626//
58627// The request ID must be a valid UUID with the exception that zero UUID
58628// is not supported (00000000-0000-0000-0000-000000000000).
58629func (c *RegionBackendServicesInsertCall) RequestId(requestId string) *RegionBackendServicesInsertCall {
58630	c.urlParams_.Set("requestId", requestId)
58631	return c
58632}
58633
58634// Fields allows partial responses to be retrieved. See
58635// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58636// for more information.
58637func (c *RegionBackendServicesInsertCall) Fields(s ...googleapi.Field) *RegionBackendServicesInsertCall {
58638	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58639	return c
58640}
58641
58642// Context sets the context to be used in this call's Do method. Any
58643// pending HTTP request will be aborted if the provided context is
58644// canceled.
58645func (c *RegionBackendServicesInsertCall) Context(ctx context.Context) *RegionBackendServicesInsertCall {
58646	c.ctx_ = ctx
58647	return c
58648}
58649
58650// Header returns an http.Header that can be modified by the caller to
58651// add HTTP headers to the request.
58652func (c *RegionBackendServicesInsertCall) Header() http.Header {
58653	if c.header_ == nil {
58654		c.header_ = make(http.Header)
58655	}
58656	return c.header_
58657}
58658
58659func (c *RegionBackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
58660	reqHeaders := make(http.Header)
58661	for k, v := range c.header_ {
58662		reqHeaders[k] = v
58663	}
58664	reqHeaders.Set("User-Agent", c.s.userAgent())
58665	var body io.Reader = nil
58666	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
58667	if err != nil {
58668		return nil, err
58669	}
58670	reqHeaders.Set("Content-Type", "application/json")
58671	c.urlParams_.Set("alt", alt)
58672	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices")
58673	urls += "?" + c.urlParams_.Encode()
58674	req, _ := http.NewRequest("POST", urls, body)
58675	req.Header = reqHeaders
58676	googleapi.Expand(req.URL, map[string]string{
58677		"project": c.project,
58678		"region":  c.region,
58679	})
58680	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58681}
58682
58683// Do executes the "compute.regionBackendServices.insert" call.
58684// Exactly one of *Operation or error will be non-nil. Any non-2xx
58685// status code is an error. Response headers are in either
58686// *Operation.ServerResponse.Header or (if a response was returned at
58687// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58688// to check whether the returned error was because
58689// http.StatusNotModified was returned.
58690func (c *RegionBackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58691	gensupport.SetOptions(c.urlParams_, opts...)
58692	res, err := c.doRequest("json")
58693	if res != nil && res.StatusCode == http.StatusNotModified {
58694		if res.Body != nil {
58695			res.Body.Close()
58696		}
58697		return nil, &googleapi.Error{
58698			Code:   res.StatusCode,
58699			Header: res.Header,
58700		}
58701	}
58702	if err != nil {
58703		return nil, err
58704	}
58705	defer googleapi.CloseBody(res)
58706	if err := googleapi.CheckResponse(res); err != nil {
58707		return nil, err
58708	}
58709	ret := &Operation{
58710		ServerResponse: googleapi.ServerResponse{
58711			Header:         res.Header,
58712			HTTPStatusCode: res.StatusCode,
58713		},
58714	}
58715	target := &ret
58716	if err := gensupport.DecodeResponse(target, res); err != nil {
58717		return nil, err
58718	}
58719	return ret, nil
58720	// {
58721	//   "description": "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.",
58722	//   "httpMethod": "POST",
58723	//   "id": "compute.regionBackendServices.insert",
58724	//   "parameterOrder": [
58725	//     "project",
58726	//     "region"
58727	//   ],
58728	//   "parameters": {
58729	//     "project": {
58730	//       "description": "Project ID for this request.",
58731	//       "location": "path",
58732	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58733	//       "required": true,
58734	//       "type": "string"
58735	//     },
58736	//     "region": {
58737	//       "description": "Name of the region scoping this request.",
58738	//       "location": "path",
58739	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58740	//       "required": true,
58741	//       "type": "string"
58742	//     },
58743	//     "requestId": {
58744	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58745	//       "location": "query",
58746	//       "type": "string"
58747	//     }
58748	//   },
58749	//   "path": "{project}/regions/{region}/backendServices",
58750	//   "request": {
58751	//     "$ref": "BackendService"
58752	//   },
58753	//   "response": {
58754	//     "$ref": "Operation"
58755	//   },
58756	//   "scopes": [
58757	//     "https://www.googleapis.com/auth/cloud-platform",
58758	//     "https://www.googleapis.com/auth/compute"
58759	//   ]
58760	// }
58761
58762}
58763
58764// method id "compute.regionBackendServices.list":
58765
58766type RegionBackendServicesListCall struct {
58767	s            *Service
58768	project      string
58769	region       string
58770	urlParams_   gensupport.URLParams
58771	ifNoneMatch_ string
58772	ctx_         context.Context
58773	header_      http.Header
58774}
58775
58776// List: Retrieves the list of regional BackendService resources
58777// available to the specified project in the given region.
58778func (r *RegionBackendServicesService) List(project string, region string) *RegionBackendServicesListCall {
58779	c := &RegionBackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58780	c.project = project
58781	c.region = region
58782	return c
58783}
58784
58785// Filter sets the optional parameter "filter": Sets a filter
58786// {expression} for filtering listed resources. Your {expression} must
58787// be in the format: field_name comparison_string literal_string.
58788//
58789// The field_name is the name of the field you want to compare. Only
58790// atomic field types are supported (string, number, boolean). The
58791// comparison_string must be either eq (equals) or ne (not equals). The
58792// literal_string is the string value to filter to. The literal value
58793// must be valid for the type of field you are filtering by (string,
58794// number, boolean). For string fields, the literal value is interpreted
58795// as a regular expression using RE2 syntax. The literal value must
58796// match the entire field.
58797//
58798// For example, to filter for instances that do not have a name of
58799// example-instance, you would use name ne example-instance.
58800//
58801// You can filter on nested fields. For example, you could filter on
58802// instances that have set the scheduling.automaticRestart field to
58803// true. Use filtering on nested fields to take advantage of labels to
58804// organize and search for results based on label values.
58805//
58806// To filter on multiple expressions, provide each separate expression
58807// within parentheses. For example, (scheduling.automaticRestart eq
58808// true) (zone eq us-central1-f). Multiple expressions are treated as
58809// AND expressions, meaning that resources must match all expressions to
58810// pass the filters.
58811func (c *RegionBackendServicesListCall) Filter(filter string) *RegionBackendServicesListCall {
58812	c.urlParams_.Set("filter", filter)
58813	return c
58814}
58815
58816// MaxResults sets the optional parameter "maxResults": The maximum
58817// number of results per page that should be returned. If the number of
58818// available results is larger than maxResults, Compute Engine returns a
58819// nextPageToken that can be used to get the next page of results in
58820// subsequent list requests. Acceptable values are 0 to 500, inclusive.
58821// (Default: 500)
58822func (c *RegionBackendServicesListCall) MaxResults(maxResults int64) *RegionBackendServicesListCall {
58823	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
58824	return c
58825}
58826
58827// OrderBy sets the optional parameter "orderBy": Sorts list results by
58828// a certain order. By default, results are returned in alphanumerical
58829// order based on the resource name.
58830//
58831// You can also sort results in descending order based on the creation
58832// timestamp using orderBy="creationTimestamp desc". This sorts results
58833// based on the creationTimestamp field in reverse chronological order
58834// (newest result first). Use this to sort resources like operations so
58835// that the newest operation is returned first.
58836//
58837// Currently, only sorting by name or creationTimestamp desc is
58838// supported.
58839func (c *RegionBackendServicesListCall) OrderBy(orderBy string) *RegionBackendServicesListCall {
58840	c.urlParams_.Set("orderBy", orderBy)
58841	return c
58842}
58843
58844// PageToken sets the optional parameter "pageToken": Specifies a page
58845// token to use. Set pageToken to the nextPageToken returned by a
58846// previous list request to get the next page of results.
58847func (c *RegionBackendServicesListCall) PageToken(pageToken string) *RegionBackendServicesListCall {
58848	c.urlParams_.Set("pageToken", pageToken)
58849	return c
58850}
58851
58852// Fields allows partial responses to be retrieved. See
58853// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58854// for more information.
58855func (c *RegionBackendServicesListCall) Fields(s ...googleapi.Field) *RegionBackendServicesListCall {
58856	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58857	return c
58858}
58859
58860// IfNoneMatch sets the optional parameter which makes the operation
58861// fail if the object's ETag matches the given value. This is useful for
58862// getting updates only after the object has changed since the last
58863// request. Use googleapi.IsNotModified to check whether the response
58864// error from Do is the result of In-None-Match.
58865func (c *RegionBackendServicesListCall) IfNoneMatch(entityTag string) *RegionBackendServicesListCall {
58866	c.ifNoneMatch_ = entityTag
58867	return c
58868}
58869
58870// Context sets the context to be used in this call's Do method. Any
58871// pending HTTP request will be aborted if the provided context is
58872// canceled.
58873func (c *RegionBackendServicesListCall) Context(ctx context.Context) *RegionBackendServicesListCall {
58874	c.ctx_ = ctx
58875	return c
58876}
58877
58878// Header returns an http.Header that can be modified by the caller to
58879// add HTTP headers to the request.
58880func (c *RegionBackendServicesListCall) Header() http.Header {
58881	if c.header_ == nil {
58882		c.header_ = make(http.Header)
58883	}
58884	return c.header_
58885}
58886
58887func (c *RegionBackendServicesListCall) doRequest(alt string) (*http.Response, error) {
58888	reqHeaders := make(http.Header)
58889	for k, v := range c.header_ {
58890		reqHeaders[k] = v
58891	}
58892	reqHeaders.Set("User-Agent", c.s.userAgent())
58893	if c.ifNoneMatch_ != "" {
58894		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58895	}
58896	var body io.Reader = nil
58897	c.urlParams_.Set("alt", alt)
58898	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices")
58899	urls += "?" + c.urlParams_.Encode()
58900	req, _ := http.NewRequest("GET", urls, body)
58901	req.Header = reqHeaders
58902	googleapi.Expand(req.URL, map[string]string{
58903		"project": c.project,
58904		"region":  c.region,
58905	})
58906	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58907}
58908
58909// Do executes the "compute.regionBackendServices.list" call.
58910// Exactly one of *BackendServiceList or error will be non-nil. Any
58911// non-2xx status code is an error. Response headers are in either
58912// *BackendServiceList.ServerResponse.Header or (if a response was
58913// returned at all) in error.(*googleapi.Error).Header. Use
58914// googleapi.IsNotModified to check whether the returned error was
58915// because http.StatusNotModified was returned.
58916func (c *RegionBackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
58917	gensupport.SetOptions(c.urlParams_, opts...)
58918	res, err := c.doRequest("json")
58919	if res != nil && res.StatusCode == http.StatusNotModified {
58920		if res.Body != nil {
58921			res.Body.Close()
58922		}
58923		return nil, &googleapi.Error{
58924			Code:   res.StatusCode,
58925			Header: res.Header,
58926		}
58927	}
58928	if err != nil {
58929		return nil, err
58930	}
58931	defer googleapi.CloseBody(res)
58932	if err := googleapi.CheckResponse(res); err != nil {
58933		return nil, err
58934	}
58935	ret := &BackendServiceList{
58936		ServerResponse: googleapi.ServerResponse{
58937			Header:         res.Header,
58938			HTTPStatusCode: res.StatusCode,
58939		},
58940	}
58941	target := &ret
58942	if err := gensupport.DecodeResponse(target, res); err != nil {
58943		return nil, err
58944	}
58945	return ret, nil
58946	// {
58947	//   "description": "Retrieves the list of regional BackendService resources available to the specified project in the given region.",
58948	//   "httpMethod": "GET",
58949	//   "id": "compute.regionBackendServices.list",
58950	//   "parameterOrder": [
58951	//     "project",
58952	//     "region"
58953	//   ],
58954	//   "parameters": {
58955	//     "filter": {
58956	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
58957	//       "location": "query",
58958	//       "type": "string"
58959	//     },
58960	//     "maxResults": {
58961	//       "default": "500",
58962	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
58963	//       "format": "uint32",
58964	//       "location": "query",
58965	//       "minimum": "0",
58966	//       "type": "integer"
58967	//     },
58968	//     "orderBy": {
58969	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
58970	//       "location": "query",
58971	//       "type": "string"
58972	//     },
58973	//     "pageToken": {
58974	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
58975	//       "location": "query",
58976	//       "type": "string"
58977	//     },
58978	//     "project": {
58979	//       "description": "Project ID for this request.",
58980	//       "location": "path",
58981	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58982	//       "required": true,
58983	//       "type": "string"
58984	//     },
58985	//     "region": {
58986	//       "description": "Name of the region scoping this request.",
58987	//       "location": "path",
58988	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58989	//       "required": true,
58990	//       "type": "string"
58991	//     }
58992	//   },
58993	//   "path": "{project}/regions/{region}/backendServices",
58994	//   "response": {
58995	//     "$ref": "BackendServiceList"
58996	//   },
58997	//   "scopes": [
58998	//     "https://www.googleapis.com/auth/cloud-platform",
58999	//     "https://www.googleapis.com/auth/compute",
59000	//     "https://www.googleapis.com/auth/compute.readonly"
59001	//   ]
59002	// }
59003
59004}
59005
59006// Pages invokes f for each page of results.
59007// A non-nil error returned from f will halt the iteration.
59008// The provided context supersedes any context provided to the Context method.
59009func (c *RegionBackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
59010	c.ctx_ = ctx
59011	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
59012	for {
59013		x, err := c.Do()
59014		if err != nil {
59015			return err
59016		}
59017		if err := f(x); err != nil {
59018			return err
59019		}
59020		if x.NextPageToken == "" {
59021			return nil
59022		}
59023		c.PageToken(x.NextPageToken)
59024	}
59025}
59026
59027// method id "compute.regionBackendServices.patch":
59028
59029type RegionBackendServicesPatchCall struct {
59030	s              *Service
59031	project        string
59032	region         string
59033	backendService string
59034	backendservice *BackendService
59035	urlParams_     gensupport.URLParams
59036	ctx_           context.Context
59037	header_        http.Header
59038}
59039
59040// Patch: Updates the specified regional BackendService resource with
59041// the data included in the request. There are several restrictions and
59042// guidelines to keep in mind when updating a backend service. Read
59043// Restrictions and Guidelines for more information. This method
59044// supports PATCH semantics and uses the JSON merge patch format and
59045// processing rules.
59046func (r *RegionBackendServicesService) Patch(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesPatchCall {
59047	c := &RegionBackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59048	c.project = project
59049	c.region = region
59050	c.backendService = backendService
59051	c.backendservice = backendservice
59052	return c
59053}
59054
59055// RequestId sets the optional parameter "requestId": An optional
59056// request ID to identify requests. Specify a unique request ID so that
59057// if you must retry your request, the server will know to ignore the
59058// request if it has already been completed.
59059//
59060// For example, consider a situation where you make an initial request
59061// and the request times out. If you make the request again with the
59062// same request ID, the server can check if original operation with the
59063// same request ID was received, and if so, will ignore the second
59064// request. This prevents clients from accidentally creating duplicate
59065// commitments.
59066//
59067// The request ID must be a valid UUID with the exception that zero UUID
59068// is not supported (00000000-0000-0000-0000-000000000000).
59069func (c *RegionBackendServicesPatchCall) RequestId(requestId string) *RegionBackendServicesPatchCall {
59070	c.urlParams_.Set("requestId", requestId)
59071	return c
59072}
59073
59074// Fields allows partial responses to be retrieved. See
59075// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59076// for more information.
59077func (c *RegionBackendServicesPatchCall) Fields(s ...googleapi.Field) *RegionBackendServicesPatchCall {
59078	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59079	return c
59080}
59081
59082// Context sets the context to be used in this call's Do method. Any
59083// pending HTTP request will be aborted if the provided context is
59084// canceled.
59085func (c *RegionBackendServicesPatchCall) Context(ctx context.Context) *RegionBackendServicesPatchCall {
59086	c.ctx_ = ctx
59087	return c
59088}
59089
59090// Header returns an http.Header that can be modified by the caller to
59091// add HTTP headers to the request.
59092func (c *RegionBackendServicesPatchCall) Header() http.Header {
59093	if c.header_ == nil {
59094		c.header_ = make(http.Header)
59095	}
59096	return c.header_
59097}
59098
59099func (c *RegionBackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
59100	reqHeaders := make(http.Header)
59101	for k, v := range c.header_ {
59102		reqHeaders[k] = v
59103	}
59104	reqHeaders.Set("User-Agent", c.s.userAgent())
59105	var body io.Reader = nil
59106	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
59107	if err != nil {
59108		return nil, err
59109	}
59110	reqHeaders.Set("Content-Type", "application/json")
59111	c.urlParams_.Set("alt", alt)
59112	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
59113	urls += "?" + c.urlParams_.Encode()
59114	req, _ := http.NewRequest("PATCH", urls, body)
59115	req.Header = reqHeaders
59116	googleapi.Expand(req.URL, map[string]string{
59117		"project":        c.project,
59118		"region":         c.region,
59119		"backendService": c.backendService,
59120	})
59121	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59122}
59123
59124// Do executes the "compute.regionBackendServices.patch" call.
59125// Exactly one of *Operation or error will be non-nil. Any non-2xx
59126// status code is an error. Response headers are in either
59127// *Operation.ServerResponse.Header or (if a response was returned at
59128// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59129// to check whether the returned error was because
59130// http.StatusNotModified was returned.
59131func (c *RegionBackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59132	gensupport.SetOptions(c.urlParams_, opts...)
59133	res, err := c.doRequest("json")
59134	if res != nil && res.StatusCode == http.StatusNotModified {
59135		if res.Body != nil {
59136			res.Body.Close()
59137		}
59138		return nil, &googleapi.Error{
59139			Code:   res.StatusCode,
59140			Header: res.Header,
59141		}
59142	}
59143	if err != nil {
59144		return nil, err
59145	}
59146	defer googleapi.CloseBody(res)
59147	if err := googleapi.CheckResponse(res); err != nil {
59148		return nil, err
59149	}
59150	ret := &Operation{
59151		ServerResponse: googleapi.ServerResponse{
59152			Header:         res.Header,
59153			HTTPStatusCode: res.StatusCode,
59154		},
59155	}
59156	target := &ret
59157	if err := gensupport.DecodeResponse(target, res); err != nil {
59158		return nil, err
59159	}
59160	return ret, nil
59161	// {
59162	//   "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.",
59163	//   "httpMethod": "PATCH",
59164	//   "id": "compute.regionBackendServices.patch",
59165	//   "parameterOrder": [
59166	//     "project",
59167	//     "region",
59168	//     "backendService"
59169	//   ],
59170	//   "parameters": {
59171	//     "backendService": {
59172	//       "description": "Name of the BackendService resource to patch.",
59173	//       "location": "path",
59174	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59175	//       "required": true,
59176	//       "type": "string"
59177	//     },
59178	//     "project": {
59179	//       "description": "Project ID for this request.",
59180	//       "location": "path",
59181	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59182	//       "required": true,
59183	//       "type": "string"
59184	//     },
59185	//     "region": {
59186	//       "description": "Name of the region scoping this request.",
59187	//       "location": "path",
59188	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59189	//       "required": true,
59190	//       "type": "string"
59191	//     },
59192	//     "requestId": {
59193	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59194	//       "location": "query",
59195	//       "type": "string"
59196	//     }
59197	//   },
59198	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
59199	//   "request": {
59200	//     "$ref": "BackendService"
59201	//   },
59202	//   "response": {
59203	//     "$ref": "Operation"
59204	//   },
59205	//   "scopes": [
59206	//     "https://www.googleapis.com/auth/cloud-platform",
59207	//     "https://www.googleapis.com/auth/compute"
59208	//   ]
59209	// }
59210
59211}
59212
59213// method id "compute.regionBackendServices.update":
59214
59215type RegionBackendServicesUpdateCall struct {
59216	s              *Service
59217	project        string
59218	region         string
59219	backendService string
59220	backendservice *BackendService
59221	urlParams_     gensupport.URLParams
59222	ctx_           context.Context
59223	header_        http.Header
59224}
59225
59226// Update: Updates the specified regional BackendService resource with
59227// the data included in the request. There are several restrictions and
59228// guidelines to keep in mind when updating a backend service. Read
59229// Restrictions and Guidelines for more information.
59230func (r *RegionBackendServicesService) Update(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesUpdateCall {
59231	c := &RegionBackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59232	c.project = project
59233	c.region = region
59234	c.backendService = backendService
59235	c.backendservice = backendservice
59236	return c
59237}
59238
59239// RequestId sets the optional parameter "requestId": An optional
59240// request ID to identify requests. Specify a unique request ID so that
59241// if you must retry your request, the server will know to ignore the
59242// request if it has already been completed.
59243//
59244// For example, consider a situation where you make an initial request
59245// and the request times out. If you make the request again with the
59246// same request ID, the server can check if original operation with the
59247// same request ID was received, and if so, will ignore the second
59248// request. This prevents clients from accidentally creating duplicate
59249// commitments.
59250//
59251// The request ID must be a valid UUID with the exception that zero UUID
59252// is not supported (00000000-0000-0000-0000-000000000000).
59253func (c *RegionBackendServicesUpdateCall) RequestId(requestId string) *RegionBackendServicesUpdateCall {
59254	c.urlParams_.Set("requestId", requestId)
59255	return c
59256}
59257
59258// Fields allows partial responses to be retrieved. See
59259// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59260// for more information.
59261func (c *RegionBackendServicesUpdateCall) Fields(s ...googleapi.Field) *RegionBackendServicesUpdateCall {
59262	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59263	return c
59264}
59265
59266// Context sets the context to be used in this call's Do method. Any
59267// pending HTTP request will be aborted if the provided context is
59268// canceled.
59269func (c *RegionBackendServicesUpdateCall) Context(ctx context.Context) *RegionBackendServicesUpdateCall {
59270	c.ctx_ = ctx
59271	return c
59272}
59273
59274// Header returns an http.Header that can be modified by the caller to
59275// add HTTP headers to the request.
59276func (c *RegionBackendServicesUpdateCall) Header() http.Header {
59277	if c.header_ == nil {
59278		c.header_ = make(http.Header)
59279	}
59280	return c.header_
59281}
59282
59283func (c *RegionBackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
59284	reqHeaders := make(http.Header)
59285	for k, v := range c.header_ {
59286		reqHeaders[k] = v
59287	}
59288	reqHeaders.Set("User-Agent", c.s.userAgent())
59289	var body io.Reader = nil
59290	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
59291	if err != nil {
59292		return nil, err
59293	}
59294	reqHeaders.Set("Content-Type", "application/json")
59295	c.urlParams_.Set("alt", alt)
59296	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
59297	urls += "?" + c.urlParams_.Encode()
59298	req, _ := http.NewRequest("PUT", urls, body)
59299	req.Header = reqHeaders
59300	googleapi.Expand(req.URL, map[string]string{
59301		"project":        c.project,
59302		"region":         c.region,
59303		"backendService": c.backendService,
59304	})
59305	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59306}
59307
59308// Do executes the "compute.regionBackendServices.update" call.
59309// Exactly one of *Operation or error will be non-nil. Any non-2xx
59310// status code is an error. Response headers are in either
59311// *Operation.ServerResponse.Header or (if a response was returned at
59312// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59313// to check whether the returned error was because
59314// http.StatusNotModified was returned.
59315func (c *RegionBackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59316	gensupport.SetOptions(c.urlParams_, opts...)
59317	res, err := c.doRequest("json")
59318	if res != nil && res.StatusCode == http.StatusNotModified {
59319		if res.Body != nil {
59320			res.Body.Close()
59321		}
59322		return nil, &googleapi.Error{
59323			Code:   res.StatusCode,
59324			Header: res.Header,
59325		}
59326	}
59327	if err != nil {
59328		return nil, err
59329	}
59330	defer googleapi.CloseBody(res)
59331	if err := googleapi.CheckResponse(res); err != nil {
59332		return nil, err
59333	}
59334	ret := &Operation{
59335		ServerResponse: googleapi.ServerResponse{
59336			Header:         res.Header,
59337			HTTPStatusCode: res.StatusCode,
59338		},
59339	}
59340	target := &ret
59341	if err := gensupport.DecodeResponse(target, res); err != nil {
59342		return nil, err
59343	}
59344	return ret, nil
59345	// {
59346	//   "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.",
59347	//   "httpMethod": "PUT",
59348	//   "id": "compute.regionBackendServices.update",
59349	//   "parameterOrder": [
59350	//     "project",
59351	//     "region",
59352	//     "backendService"
59353	//   ],
59354	//   "parameters": {
59355	//     "backendService": {
59356	//       "description": "Name of the BackendService resource to update.",
59357	//       "location": "path",
59358	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59359	//       "required": true,
59360	//       "type": "string"
59361	//     },
59362	//     "project": {
59363	//       "description": "Project ID for this request.",
59364	//       "location": "path",
59365	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59366	//       "required": true,
59367	//       "type": "string"
59368	//     },
59369	//     "region": {
59370	//       "description": "Name of the region scoping this request.",
59371	//       "location": "path",
59372	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59373	//       "required": true,
59374	//       "type": "string"
59375	//     },
59376	//     "requestId": {
59377	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59378	//       "location": "query",
59379	//       "type": "string"
59380	//     }
59381	//   },
59382	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
59383	//   "request": {
59384	//     "$ref": "BackendService"
59385	//   },
59386	//   "response": {
59387	//     "$ref": "Operation"
59388	//   },
59389	//   "scopes": [
59390	//     "https://www.googleapis.com/auth/cloud-platform",
59391	//     "https://www.googleapis.com/auth/compute"
59392	//   ]
59393	// }
59394
59395}
59396
59397// method id "compute.regionCommitments.aggregatedList":
59398
59399type RegionCommitmentsAggregatedListCall struct {
59400	s            *Service
59401	project      string
59402	urlParams_   gensupport.URLParams
59403	ifNoneMatch_ string
59404	ctx_         context.Context
59405	header_      http.Header
59406}
59407
59408// AggregatedList: Retrieves an aggregated list of commitments.
59409func (r *RegionCommitmentsService) AggregatedList(project string) *RegionCommitmentsAggregatedListCall {
59410	c := &RegionCommitmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59411	c.project = project
59412	return c
59413}
59414
59415// Filter sets the optional parameter "filter": Sets a filter
59416// {expression} for filtering listed resources. Your {expression} must
59417// be in the format: field_name comparison_string literal_string.
59418//
59419// The field_name is the name of the field you want to compare. Only
59420// atomic field types are supported (string, number, boolean). The
59421// comparison_string must be either eq (equals) or ne (not equals). The
59422// literal_string is the string value to filter to. The literal value
59423// must be valid for the type of field you are filtering by (string,
59424// number, boolean). For string fields, the literal value is interpreted
59425// as a regular expression using RE2 syntax. The literal value must
59426// match the entire field.
59427//
59428// For example, to filter for instances that do not have a name of
59429// example-instance, you would use name ne example-instance.
59430//
59431// You can filter on nested fields. For example, you could filter on
59432// instances that have set the scheduling.automaticRestart field to
59433// true. Use filtering on nested fields to take advantage of labels to
59434// organize and search for results based on label values.
59435//
59436// To filter on multiple expressions, provide each separate expression
59437// within parentheses. For example, (scheduling.automaticRestart eq
59438// true) (zone eq us-central1-f). Multiple expressions are treated as
59439// AND expressions, meaning that resources must match all expressions to
59440// pass the filters.
59441func (c *RegionCommitmentsAggregatedListCall) Filter(filter string) *RegionCommitmentsAggregatedListCall {
59442	c.urlParams_.Set("filter", filter)
59443	return c
59444}
59445
59446// MaxResults sets the optional parameter "maxResults": The maximum
59447// number of results per page that should be returned. If the number of
59448// available results is larger than maxResults, Compute Engine returns a
59449// nextPageToken that can be used to get the next page of results in
59450// subsequent list requests. Acceptable values are 0 to 500, inclusive.
59451// (Default: 500)
59452func (c *RegionCommitmentsAggregatedListCall) MaxResults(maxResults int64) *RegionCommitmentsAggregatedListCall {
59453	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
59454	return c
59455}
59456
59457// OrderBy sets the optional parameter "orderBy": Sorts list results by
59458// a certain order. By default, results are returned in alphanumerical
59459// order based on the resource name.
59460//
59461// You can also sort results in descending order based on the creation
59462// timestamp using orderBy="creationTimestamp desc". This sorts results
59463// based on the creationTimestamp field in reverse chronological order
59464// (newest result first). Use this to sort resources like operations so
59465// that the newest operation is returned first.
59466//
59467// Currently, only sorting by name or creationTimestamp desc is
59468// supported.
59469func (c *RegionCommitmentsAggregatedListCall) OrderBy(orderBy string) *RegionCommitmentsAggregatedListCall {
59470	c.urlParams_.Set("orderBy", orderBy)
59471	return c
59472}
59473
59474// PageToken sets the optional parameter "pageToken": Specifies a page
59475// token to use. Set pageToken to the nextPageToken returned by a
59476// previous list request to get the next page of results.
59477func (c *RegionCommitmentsAggregatedListCall) PageToken(pageToken string) *RegionCommitmentsAggregatedListCall {
59478	c.urlParams_.Set("pageToken", pageToken)
59479	return c
59480}
59481
59482// Fields allows partial responses to be retrieved. See
59483// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59484// for more information.
59485func (c *RegionCommitmentsAggregatedListCall) Fields(s ...googleapi.Field) *RegionCommitmentsAggregatedListCall {
59486	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59487	return c
59488}
59489
59490// IfNoneMatch sets the optional parameter which makes the operation
59491// fail if the object's ETag matches the given value. This is useful for
59492// getting updates only after the object has changed since the last
59493// request. Use googleapi.IsNotModified to check whether the response
59494// error from Do is the result of In-None-Match.
59495func (c *RegionCommitmentsAggregatedListCall) IfNoneMatch(entityTag string) *RegionCommitmentsAggregatedListCall {
59496	c.ifNoneMatch_ = entityTag
59497	return c
59498}
59499
59500// Context sets the context to be used in this call's Do method. Any
59501// pending HTTP request will be aborted if the provided context is
59502// canceled.
59503func (c *RegionCommitmentsAggregatedListCall) Context(ctx context.Context) *RegionCommitmentsAggregatedListCall {
59504	c.ctx_ = ctx
59505	return c
59506}
59507
59508// Header returns an http.Header that can be modified by the caller to
59509// add HTTP headers to the request.
59510func (c *RegionCommitmentsAggregatedListCall) Header() http.Header {
59511	if c.header_ == nil {
59512		c.header_ = make(http.Header)
59513	}
59514	return c.header_
59515}
59516
59517func (c *RegionCommitmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
59518	reqHeaders := make(http.Header)
59519	for k, v := range c.header_ {
59520		reqHeaders[k] = v
59521	}
59522	reqHeaders.Set("User-Agent", c.s.userAgent())
59523	if c.ifNoneMatch_ != "" {
59524		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59525	}
59526	var body io.Reader = nil
59527	c.urlParams_.Set("alt", alt)
59528	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/commitments")
59529	urls += "?" + c.urlParams_.Encode()
59530	req, _ := http.NewRequest("GET", urls, body)
59531	req.Header = reqHeaders
59532	googleapi.Expand(req.URL, map[string]string{
59533		"project": c.project,
59534	})
59535	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59536}
59537
59538// Do executes the "compute.regionCommitments.aggregatedList" call.
59539// Exactly one of *CommitmentAggregatedList or error will be non-nil.
59540// Any non-2xx status code is an error. Response headers are in either
59541// *CommitmentAggregatedList.ServerResponse.Header or (if a response was
59542// returned at all) in error.(*googleapi.Error).Header. Use
59543// googleapi.IsNotModified to check whether the returned error was
59544// because http.StatusNotModified was returned.
59545func (c *RegionCommitmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*CommitmentAggregatedList, error) {
59546	gensupport.SetOptions(c.urlParams_, opts...)
59547	res, err := c.doRequest("json")
59548	if res != nil && res.StatusCode == http.StatusNotModified {
59549		if res.Body != nil {
59550			res.Body.Close()
59551		}
59552		return nil, &googleapi.Error{
59553			Code:   res.StatusCode,
59554			Header: res.Header,
59555		}
59556	}
59557	if err != nil {
59558		return nil, err
59559	}
59560	defer googleapi.CloseBody(res)
59561	if err := googleapi.CheckResponse(res); err != nil {
59562		return nil, err
59563	}
59564	ret := &CommitmentAggregatedList{
59565		ServerResponse: googleapi.ServerResponse{
59566			Header:         res.Header,
59567			HTTPStatusCode: res.StatusCode,
59568		},
59569	}
59570	target := &ret
59571	if err := gensupport.DecodeResponse(target, res); err != nil {
59572		return nil, err
59573	}
59574	return ret, nil
59575	// {
59576	//   "description": "Retrieves an aggregated list of commitments.",
59577	//   "httpMethod": "GET",
59578	//   "id": "compute.regionCommitments.aggregatedList",
59579	//   "parameterOrder": [
59580	//     "project"
59581	//   ],
59582	//   "parameters": {
59583	//     "filter": {
59584	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
59585	//       "location": "query",
59586	//       "type": "string"
59587	//     },
59588	//     "maxResults": {
59589	//       "default": "500",
59590	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
59591	//       "format": "uint32",
59592	//       "location": "query",
59593	//       "minimum": "0",
59594	//       "type": "integer"
59595	//     },
59596	//     "orderBy": {
59597	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
59598	//       "location": "query",
59599	//       "type": "string"
59600	//     },
59601	//     "pageToken": {
59602	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
59603	//       "location": "query",
59604	//       "type": "string"
59605	//     },
59606	//     "project": {
59607	//       "description": "Project ID for this request.",
59608	//       "location": "path",
59609	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59610	//       "required": true,
59611	//       "type": "string"
59612	//     }
59613	//   },
59614	//   "path": "{project}/aggregated/commitments",
59615	//   "response": {
59616	//     "$ref": "CommitmentAggregatedList"
59617	//   },
59618	//   "scopes": [
59619	//     "https://www.googleapis.com/auth/cloud-platform",
59620	//     "https://www.googleapis.com/auth/compute",
59621	//     "https://www.googleapis.com/auth/compute.readonly"
59622	//   ]
59623	// }
59624
59625}
59626
59627// Pages invokes f for each page of results.
59628// A non-nil error returned from f will halt the iteration.
59629// The provided context supersedes any context provided to the Context method.
59630func (c *RegionCommitmentsAggregatedListCall) Pages(ctx context.Context, f func(*CommitmentAggregatedList) error) error {
59631	c.ctx_ = ctx
59632	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
59633	for {
59634		x, err := c.Do()
59635		if err != nil {
59636			return err
59637		}
59638		if err := f(x); err != nil {
59639			return err
59640		}
59641		if x.NextPageToken == "" {
59642			return nil
59643		}
59644		c.PageToken(x.NextPageToken)
59645	}
59646}
59647
59648// method id "compute.regionCommitments.get":
59649
59650type RegionCommitmentsGetCall struct {
59651	s            *Service
59652	project      string
59653	region       string
59654	commitment   string
59655	urlParams_   gensupport.URLParams
59656	ifNoneMatch_ string
59657	ctx_         context.Context
59658	header_      http.Header
59659}
59660
59661// Get: Returns the specified commitment resource. Get a list of
59662// available commitments by making a list() request.
59663func (r *RegionCommitmentsService) Get(project string, region string, commitment string) *RegionCommitmentsGetCall {
59664	c := &RegionCommitmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59665	c.project = project
59666	c.region = region
59667	c.commitment = commitment
59668	return c
59669}
59670
59671// Fields allows partial responses to be retrieved. See
59672// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59673// for more information.
59674func (c *RegionCommitmentsGetCall) Fields(s ...googleapi.Field) *RegionCommitmentsGetCall {
59675	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59676	return c
59677}
59678
59679// IfNoneMatch sets the optional parameter which makes the operation
59680// fail if the object's ETag matches the given value. This is useful for
59681// getting updates only after the object has changed since the last
59682// request. Use googleapi.IsNotModified to check whether the response
59683// error from Do is the result of In-None-Match.
59684func (c *RegionCommitmentsGetCall) IfNoneMatch(entityTag string) *RegionCommitmentsGetCall {
59685	c.ifNoneMatch_ = entityTag
59686	return c
59687}
59688
59689// Context sets the context to be used in this call's Do method. Any
59690// pending HTTP request will be aborted if the provided context is
59691// canceled.
59692func (c *RegionCommitmentsGetCall) Context(ctx context.Context) *RegionCommitmentsGetCall {
59693	c.ctx_ = ctx
59694	return c
59695}
59696
59697// Header returns an http.Header that can be modified by the caller to
59698// add HTTP headers to the request.
59699func (c *RegionCommitmentsGetCall) Header() http.Header {
59700	if c.header_ == nil {
59701		c.header_ = make(http.Header)
59702	}
59703	return c.header_
59704}
59705
59706func (c *RegionCommitmentsGetCall) doRequest(alt string) (*http.Response, error) {
59707	reqHeaders := make(http.Header)
59708	for k, v := range c.header_ {
59709		reqHeaders[k] = v
59710	}
59711	reqHeaders.Set("User-Agent", c.s.userAgent())
59712	if c.ifNoneMatch_ != "" {
59713		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59714	}
59715	var body io.Reader = nil
59716	c.urlParams_.Set("alt", alt)
59717	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments/{commitment}")
59718	urls += "?" + c.urlParams_.Encode()
59719	req, _ := http.NewRequest("GET", urls, body)
59720	req.Header = reqHeaders
59721	googleapi.Expand(req.URL, map[string]string{
59722		"project":    c.project,
59723		"region":     c.region,
59724		"commitment": c.commitment,
59725	})
59726	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59727}
59728
59729// Do executes the "compute.regionCommitments.get" call.
59730// Exactly one of *Commitment or error will be non-nil. Any non-2xx
59731// status code is an error. Response headers are in either
59732// *Commitment.ServerResponse.Header or (if a response was returned at
59733// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59734// to check whether the returned error was because
59735// http.StatusNotModified was returned.
59736func (c *RegionCommitmentsGetCall) Do(opts ...googleapi.CallOption) (*Commitment, error) {
59737	gensupport.SetOptions(c.urlParams_, opts...)
59738	res, err := c.doRequest("json")
59739	if res != nil && res.StatusCode == http.StatusNotModified {
59740		if res.Body != nil {
59741			res.Body.Close()
59742		}
59743		return nil, &googleapi.Error{
59744			Code:   res.StatusCode,
59745			Header: res.Header,
59746		}
59747	}
59748	if err != nil {
59749		return nil, err
59750	}
59751	defer googleapi.CloseBody(res)
59752	if err := googleapi.CheckResponse(res); err != nil {
59753		return nil, err
59754	}
59755	ret := &Commitment{
59756		ServerResponse: googleapi.ServerResponse{
59757			Header:         res.Header,
59758			HTTPStatusCode: res.StatusCode,
59759		},
59760	}
59761	target := &ret
59762	if err := gensupport.DecodeResponse(target, res); err != nil {
59763		return nil, err
59764	}
59765	return ret, nil
59766	// {
59767	//   "description": "Returns the specified commitment resource. Get a list of available commitments by making a list() request.",
59768	//   "httpMethod": "GET",
59769	//   "id": "compute.regionCommitments.get",
59770	//   "parameterOrder": [
59771	//     "project",
59772	//     "region",
59773	//     "commitment"
59774	//   ],
59775	//   "parameters": {
59776	//     "commitment": {
59777	//       "description": "Name of the commitment to return.",
59778	//       "location": "path",
59779	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59780	//       "required": true,
59781	//       "type": "string"
59782	//     },
59783	//     "project": {
59784	//       "description": "Project ID for this request.",
59785	//       "location": "path",
59786	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59787	//       "required": true,
59788	//       "type": "string"
59789	//     },
59790	//     "region": {
59791	//       "description": "Name of the region for this request.",
59792	//       "location": "path",
59793	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59794	//       "required": true,
59795	//       "type": "string"
59796	//     }
59797	//   },
59798	//   "path": "{project}/regions/{region}/commitments/{commitment}",
59799	//   "response": {
59800	//     "$ref": "Commitment"
59801	//   },
59802	//   "scopes": [
59803	//     "https://www.googleapis.com/auth/cloud-platform",
59804	//     "https://www.googleapis.com/auth/compute",
59805	//     "https://www.googleapis.com/auth/compute.readonly"
59806	//   ]
59807	// }
59808
59809}
59810
59811// method id "compute.regionCommitments.insert":
59812
59813type RegionCommitmentsInsertCall struct {
59814	s          *Service
59815	project    string
59816	region     string
59817	commitment *Commitment
59818	urlParams_ gensupport.URLParams
59819	ctx_       context.Context
59820	header_    http.Header
59821}
59822
59823// Insert: Creates a commitment in the specified project using the data
59824// included in the request.
59825func (r *RegionCommitmentsService) Insert(project string, region string, commitment *Commitment) *RegionCommitmentsInsertCall {
59826	c := &RegionCommitmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59827	c.project = project
59828	c.region = region
59829	c.commitment = commitment
59830	return c
59831}
59832
59833// RequestId sets the optional parameter "requestId": An optional
59834// request ID to identify requests. Specify a unique request ID so that
59835// if you must retry your request, the server will know to ignore the
59836// request if it has already been completed.
59837//
59838// For example, consider a situation where you make an initial request
59839// and the request times out. If you make the request again with the
59840// same request ID, the server can check if original operation with the
59841// same request ID was received, and if so, will ignore the second
59842// request. This prevents clients from accidentally creating duplicate
59843// commitments.
59844//
59845// The request ID must be a valid UUID with the exception that zero UUID
59846// is not supported (00000000-0000-0000-0000-000000000000).
59847func (c *RegionCommitmentsInsertCall) RequestId(requestId string) *RegionCommitmentsInsertCall {
59848	c.urlParams_.Set("requestId", requestId)
59849	return c
59850}
59851
59852// Fields allows partial responses to be retrieved. See
59853// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59854// for more information.
59855func (c *RegionCommitmentsInsertCall) Fields(s ...googleapi.Field) *RegionCommitmentsInsertCall {
59856	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59857	return c
59858}
59859
59860// Context sets the context to be used in this call's Do method. Any
59861// pending HTTP request will be aborted if the provided context is
59862// canceled.
59863func (c *RegionCommitmentsInsertCall) Context(ctx context.Context) *RegionCommitmentsInsertCall {
59864	c.ctx_ = ctx
59865	return c
59866}
59867
59868// Header returns an http.Header that can be modified by the caller to
59869// add HTTP headers to the request.
59870func (c *RegionCommitmentsInsertCall) Header() http.Header {
59871	if c.header_ == nil {
59872		c.header_ = make(http.Header)
59873	}
59874	return c.header_
59875}
59876
59877func (c *RegionCommitmentsInsertCall) doRequest(alt string) (*http.Response, error) {
59878	reqHeaders := make(http.Header)
59879	for k, v := range c.header_ {
59880		reqHeaders[k] = v
59881	}
59882	reqHeaders.Set("User-Agent", c.s.userAgent())
59883	var body io.Reader = nil
59884	body, err := googleapi.WithoutDataWrapper.JSONReader(c.commitment)
59885	if err != nil {
59886		return nil, err
59887	}
59888	reqHeaders.Set("Content-Type", "application/json")
59889	c.urlParams_.Set("alt", alt)
59890	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments")
59891	urls += "?" + c.urlParams_.Encode()
59892	req, _ := http.NewRequest("POST", urls, body)
59893	req.Header = reqHeaders
59894	googleapi.Expand(req.URL, map[string]string{
59895		"project": c.project,
59896		"region":  c.region,
59897	})
59898	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59899}
59900
59901// Do executes the "compute.regionCommitments.insert" call.
59902// Exactly one of *Operation or error will be non-nil. Any non-2xx
59903// status code is an error. Response headers are in either
59904// *Operation.ServerResponse.Header or (if a response was returned at
59905// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59906// to check whether the returned error was because
59907// http.StatusNotModified was returned.
59908func (c *RegionCommitmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59909	gensupport.SetOptions(c.urlParams_, opts...)
59910	res, err := c.doRequest("json")
59911	if res != nil && res.StatusCode == http.StatusNotModified {
59912		if res.Body != nil {
59913			res.Body.Close()
59914		}
59915		return nil, &googleapi.Error{
59916			Code:   res.StatusCode,
59917			Header: res.Header,
59918		}
59919	}
59920	if err != nil {
59921		return nil, err
59922	}
59923	defer googleapi.CloseBody(res)
59924	if err := googleapi.CheckResponse(res); err != nil {
59925		return nil, err
59926	}
59927	ret := &Operation{
59928		ServerResponse: googleapi.ServerResponse{
59929			Header:         res.Header,
59930			HTTPStatusCode: res.StatusCode,
59931		},
59932	}
59933	target := &ret
59934	if err := gensupport.DecodeResponse(target, res); err != nil {
59935		return nil, err
59936	}
59937	return ret, nil
59938	// {
59939	//   "description": "Creates a commitment in the specified project using the data included in the request.",
59940	//   "httpMethod": "POST",
59941	//   "id": "compute.regionCommitments.insert",
59942	//   "parameterOrder": [
59943	//     "project",
59944	//     "region"
59945	//   ],
59946	//   "parameters": {
59947	//     "project": {
59948	//       "description": "Project ID for this request.",
59949	//       "location": "path",
59950	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59951	//       "required": true,
59952	//       "type": "string"
59953	//     },
59954	//     "region": {
59955	//       "description": "Name of the region for this request.",
59956	//       "location": "path",
59957	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
59958	//       "required": true,
59959	//       "type": "string"
59960	//     },
59961	//     "requestId": {
59962	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59963	//       "location": "query",
59964	//       "type": "string"
59965	//     }
59966	//   },
59967	//   "path": "{project}/regions/{region}/commitments",
59968	//   "request": {
59969	//     "$ref": "Commitment"
59970	//   },
59971	//   "response": {
59972	//     "$ref": "Operation"
59973	//   },
59974	//   "scopes": [
59975	//     "https://www.googleapis.com/auth/cloud-platform",
59976	//     "https://www.googleapis.com/auth/compute"
59977	//   ]
59978	// }
59979
59980}
59981
59982// method id "compute.regionCommitments.list":
59983
59984type RegionCommitmentsListCall struct {
59985	s            *Service
59986	project      string
59987	region       string
59988	urlParams_   gensupport.URLParams
59989	ifNoneMatch_ string
59990	ctx_         context.Context
59991	header_      http.Header
59992}
59993
59994// List: Retrieves a list of commitments contained within the specified
59995// region.
59996func (r *RegionCommitmentsService) List(project string, region string) *RegionCommitmentsListCall {
59997	c := &RegionCommitmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59998	c.project = project
59999	c.region = region
60000	return c
60001}
60002
60003// Filter sets the optional parameter "filter": Sets a filter
60004// {expression} for filtering listed resources. Your {expression} must
60005// be in the format: field_name comparison_string literal_string.
60006//
60007// The field_name is the name of the field you want to compare. Only
60008// atomic field types are supported (string, number, boolean). The
60009// comparison_string must be either eq (equals) or ne (not equals). The
60010// literal_string is the string value to filter to. The literal value
60011// must be valid for the type of field you are filtering by (string,
60012// number, boolean). For string fields, the literal value is interpreted
60013// as a regular expression using RE2 syntax. The literal value must
60014// match the entire field.
60015//
60016// For example, to filter for instances that do not have a name of
60017// example-instance, you would use name ne example-instance.
60018//
60019// You can filter on nested fields. For example, you could filter on
60020// instances that have set the scheduling.automaticRestart field to
60021// true. Use filtering on nested fields to take advantage of labels to
60022// organize and search for results based on label values.
60023//
60024// To filter on multiple expressions, provide each separate expression
60025// within parentheses. For example, (scheduling.automaticRestart eq
60026// true) (zone eq us-central1-f). Multiple expressions are treated as
60027// AND expressions, meaning that resources must match all expressions to
60028// pass the filters.
60029func (c *RegionCommitmentsListCall) Filter(filter string) *RegionCommitmentsListCall {
60030	c.urlParams_.Set("filter", filter)
60031	return c
60032}
60033
60034// MaxResults sets the optional parameter "maxResults": The maximum
60035// number of results per page that should be returned. If the number of
60036// available results is larger than maxResults, Compute Engine returns a
60037// nextPageToken that can be used to get the next page of results in
60038// subsequent list requests. Acceptable values are 0 to 500, inclusive.
60039// (Default: 500)
60040func (c *RegionCommitmentsListCall) MaxResults(maxResults int64) *RegionCommitmentsListCall {
60041	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
60042	return c
60043}
60044
60045// OrderBy sets the optional parameter "orderBy": Sorts list results by
60046// a certain order. By default, results are returned in alphanumerical
60047// order based on the resource name.
60048//
60049// You can also sort results in descending order based on the creation
60050// timestamp using orderBy="creationTimestamp desc". This sorts results
60051// based on the creationTimestamp field in reverse chronological order
60052// (newest result first). Use this to sort resources like operations so
60053// that the newest operation is returned first.
60054//
60055// Currently, only sorting by name or creationTimestamp desc is
60056// supported.
60057func (c *RegionCommitmentsListCall) OrderBy(orderBy string) *RegionCommitmentsListCall {
60058	c.urlParams_.Set("orderBy", orderBy)
60059	return c
60060}
60061
60062// PageToken sets the optional parameter "pageToken": Specifies a page
60063// token to use. Set pageToken to the nextPageToken returned by a
60064// previous list request to get the next page of results.
60065func (c *RegionCommitmentsListCall) PageToken(pageToken string) *RegionCommitmentsListCall {
60066	c.urlParams_.Set("pageToken", pageToken)
60067	return c
60068}
60069
60070// Fields allows partial responses to be retrieved. See
60071// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60072// for more information.
60073func (c *RegionCommitmentsListCall) Fields(s ...googleapi.Field) *RegionCommitmentsListCall {
60074	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60075	return c
60076}
60077
60078// IfNoneMatch sets the optional parameter which makes the operation
60079// fail if the object's ETag matches the given value. This is useful for
60080// getting updates only after the object has changed since the last
60081// request. Use googleapi.IsNotModified to check whether the response
60082// error from Do is the result of In-None-Match.
60083func (c *RegionCommitmentsListCall) IfNoneMatch(entityTag string) *RegionCommitmentsListCall {
60084	c.ifNoneMatch_ = entityTag
60085	return c
60086}
60087
60088// Context sets the context to be used in this call's Do method. Any
60089// pending HTTP request will be aborted if the provided context is
60090// canceled.
60091func (c *RegionCommitmentsListCall) Context(ctx context.Context) *RegionCommitmentsListCall {
60092	c.ctx_ = ctx
60093	return c
60094}
60095
60096// Header returns an http.Header that can be modified by the caller to
60097// add HTTP headers to the request.
60098func (c *RegionCommitmentsListCall) Header() http.Header {
60099	if c.header_ == nil {
60100		c.header_ = make(http.Header)
60101	}
60102	return c.header_
60103}
60104
60105func (c *RegionCommitmentsListCall) doRequest(alt string) (*http.Response, error) {
60106	reqHeaders := make(http.Header)
60107	for k, v := range c.header_ {
60108		reqHeaders[k] = v
60109	}
60110	reqHeaders.Set("User-Agent", c.s.userAgent())
60111	if c.ifNoneMatch_ != "" {
60112		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60113	}
60114	var body io.Reader = nil
60115	c.urlParams_.Set("alt", alt)
60116	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments")
60117	urls += "?" + c.urlParams_.Encode()
60118	req, _ := http.NewRequest("GET", urls, body)
60119	req.Header = reqHeaders
60120	googleapi.Expand(req.URL, map[string]string{
60121		"project": c.project,
60122		"region":  c.region,
60123	})
60124	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60125}
60126
60127// Do executes the "compute.regionCommitments.list" call.
60128// Exactly one of *CommitmentList or error will be non-nil. Any non-2xx
60129// status code is an error. Response headers are in either
60130// *CommitmentList.ServerResponse.Header or (if a response was returned
60131// at all) in error.(*googleapi.Error).Header. Use
60132// googleapi.IsNotModified to check whether the returned error was
60133// because http.StatusNotModified was returned.
60134func (c *RegionCommitmentsListCall) Do(opts ...googleapi.CallOption) (*CommitmentList, error) {
60135	gensupport.SetOptions(c.urlParams_, opts...)
60136	res, err := c.doRequest("json")
60137	if res != nil && res.StatusCode == http.StatusNotModified {
60138		if res.Body != nil {
60139			res.Body.Close()
60140		}
60141		return nil, &googleapi.Error{
60142			Code:   res.StatusCode,
60143			Header: res.Header,
60144		}
60145	}
60146	if err != nil {
60147		return nil, err
60148	}
60149	defer googleapi.CloseBody(res)
60150	if err := googleapi.CheckResponse(res); err != nil {
60151		return nil, err
60152	}
60153	ret := &CommitmentList{
60154		ServerResponse: googleapi.ServerResponse{
60155			Header:         res.Header,
60156			HTTPStatusCode: res.StatusCode,
60157		},
60158	}
60159	target := &ret
60160	if err := gensupport.DecodeResponse(target, res); err != nil {
60161		return nil, err
60162	}
60163	return ret, nil
60164	// {
60165	//   "description": "Retrieves a list of commitments contained within the specified region.",
60166	//   "httpMethod": "GET",
60167	//   "id": "compute.regionCommitments.list",
60168	//   "parameterOrder": [
60169	//     "project",
60170	//     "region"
60171	//   ],
60172	//   "parameters": {
60173	//     "filter": {
60174	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
60175	//       "location": "query",
60176	//       "type": "string"
60177	//     },
60178	//     "maxResults": {
60179	//       "default": "500",
60180	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
60181	//       "format": "uint32",
60182	//       "location": "query",
60183	//       "minimum": "0",
60184	//       "type": "integer"
60185	//     },
60186	//     "orderBy": {
60187	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
60188	//       "location": "query",
60189	//       "type": "string"
60190	//     },
60191	//     "pageToken": {
60192	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
60193	//       "location": "query",
60194	//       "type": "string"
60195	//     },
60196	//     "project": {
60197	//       "description": "Project ID for this request.",
60198	//       "location": "path",
60199	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60200	//       "required": true,
60201	//       "type": "string"
60202	//     },
60203	//     "region": {
60204	//       "description": "Name of the region for this request.",
60205	//       "location": "path",
60206	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
60207	//       "required": true,
60208	//       "type": "string"
60209	//     }
60210	//   },
60211	//   "path": "{project}/regions/{region}/commitments",
60212	//   "response": {
60213	//     "$ref": "CommitmentList"
60214	//   },
60215	//   "scopes": [
60216	//     "https://www.googleapis.com/auth/cloud-platform",
60217	//     "https://www.googleapis.com/auth/compute",
60218	//     "https://www.googleapis.com/auth/compute.readonly"
60219	//   ]
60220	// }
60221
60222}
60223
60224// Pages invokes f for each page of results.
60225// A non-nil error returned from f will halt the iteration.
60226// The provided context supersedes any context provided to the Context method.
60227func (c *RegionCommitmentsListCall) Pages(ctx context.Context, f func(*CommitmentList) error) error {
60228	c.ctx_ = ctx
60229	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
60230	for {
60231		x, err := c.Do()
60232		if err != nil {
60233			return err
60234		}
60235		if err := f(x); err != nil {
60236			return err
60237		}
60238		if x.NextPageToken == "" {
60239			return nil
60240		}
60241		c.PageToken(x.NextPageToken)
60242	}
60243}
60244
60245// method id "compute.regionInstanceGroupManagers.abandonInstances":
60246
60247type RegionInstanceGroupManagersAbandonInstancesCall struct {
60248	s                                                  *Service
60249	project                                            string
60250	region                                             string
60251	instanceGroupManager                               string
60252	regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest
60253	urlParams_                                         gensupport.URLParams
60254	ctx_                                               context.Context
60255	header_                                            http.Header
60256}
60257
60258// AbandonInstances: Schedules a group action to remove the specified
60259// instances from the managed instance group. Abandoning an instance
60260// does not delete the instance, but it does remove the instance from
60261// any target pools that are applied by the managed instance group. This
60262// method reduces the targetSize of the managed instance group by the
60263// number of instances that you abandon. This operation is marked as
60264// DONE when the action is scheduled even if the instances have not yet
60265// been removed from the group. You must separately verify the status of
60266// the abandoning action with the listmanagedinstances method.
60267//
60268// If the group is part of a backend service that has enabled connection
60269// draining, it can take up to 60 seconds after the connection draining
60270// duration has elapsed before the VM instance is removed or
60271// deleted.
60272//
60273// You can specify a maximum of 1000 instances with this method per
60274// request.
60275func (r *RegionInstanceGroupManagersService) AbandonInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest) *RegionInstanceGroupManagersAbandonInstancesCall {
60276	c := &RegionInstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60277	c.project = project
60278	c.region = region
60279	c.instanceGroupManager = instanceGroupManager
60280	c.regioninstancegroupmanagersabandoninstancesrequest = regioninstancegroupmanagersabandoninstancesrequest
60281	return c
60282}
60283
60284// RequestId sets the optional parameter "requestId": An optional
60285// request ID to identify requests. Specify a unique request ID so that
60286// if you must retry your request, the server will know to ignore the
60287// request if it has already been completed.
60288//
60289// For example, consider a situation where you make an initial request
60290// and the request times out. If you make the request again with the
60291// same request ID, the server can check if original operation with the
60292// same request ID was received, and if so, will ignore the second
60293// request. This prevents clients from accidentally creating duplicate
60294// commitments.
60295//
60296// The request ID must be a valid UUID with the exception that zero UUID
60297// is not supported (00000000-0000-0000-0000-000000000000).
60298func (c *RegionInstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersAbandonInstancesCall {
60299	c.urlParams_.Set("requestId", requestId)
60300	return c
60301}
60302
60303// Fields allows partial responses to be retrieved. See
60304// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60305// for more information.
60306func (c *RegionInstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersAbandonInstancesCall {
60307	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60308	return c
60309}
60310
60311// Context sets the context to be used in this call's Do method. Any
60312// pending HTTP request will be aborted if the provided context is
60313// canceled.
60314func (c *RegionInstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersAbandonInstancesCall {
60315	c.ctx_ = ctx
60316	return c
60317}
60318
60319// Header returns an http.Header that can be modified by the caller to
60320// add HTTP headers to the request.
60321func (c *RegionInstanceGroupManagersAbandonInstancesCall) Header() http.Header {
60322	if c.header_ == nil {
60323		c.header_ = make(http.Header)
60324	}
60325	return c.header_
60326}
60327
60328func (c *RegionInstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
60329	reqHeaders := make(http.Header)
60330	for k, v := range c.header_ {
60331		reqHeaders[k] = v
60332	}
60333	reqHeaders.Set("User-Agent", c.s.userAgent())
60334	var body io.Reader = nil
60335	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersabandoninstancesrequest)
60336	if err != nil {
60337		return nil, err
60338	}
60339	reqHeaders.Set("Content-Type", "application/json")
60340	c.urlParams_.Set("alt", alt)
60341	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
60342	urls += "?" + c.urlParams_.Encode()
60343	req, _ := http.NewRequest("POST", urls, body)
60344	req.Header = reqHeaders
60345	googleapi.Expand(req.URL, map[string]string{
60346		"project":              c.project,
60347		"region":               c.region,
60348		"instanceGroupManager": c.instanceGroupManager,
60349	})
60350	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60351}
60352
60353// Do executes the "compute.regionInstanceGroupManagers.abandonInstances" call.
60354// Exactly one of *Operation or error will be non-nil. Any non-2xx
60355// status code is an error. Response headers are in either
60356// *Operation.ServerResponse.Header or (if a response was returned at
60357// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60358// to check whether the returned error was because
60359// http.StatusNotModified was returned.
60360func (c *RegionInstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60361	gensupport.SetOptions(c.urlParams_, opts...)
60362	res, err := c.doRequest("json")
60363	if res != nil && res.StatusCode == http.StatusNotModified {
60364		if res.Body != nil {
60365			res.Body.Close()
60366		}
60367		return nil, &googleapi.Error{
60368			Code:   res.StatusCode,
60369			Header: res.Header,
60370		}
60371	}
60372	if err != nil {
60373		return nil, err
60374	}
60375	defer googleapi.CloseBody(res)
60376	if err := googleapi.CheckResponse(res); err != nil {
60377		return nil, err
60378	}
60379	ret := &Operation{
60380		ServerResponse: googleapi.ServerResponse{
60381			Header:         res.Header,
60382			HTTPStatusCode: res.StatusCode,
60383		},
60384	}
60385	target := &ret
60386	if err := gensupport.DecodeResponse(target, res); err != nil {
60387		return nil, err
60388	}
60389	return ret, nil
60390	// {
60391	//   "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.",
60392	//   "httpMethod": "POST",
60393	//   "id": "compute.regionInstanceGroupManagers.abandonInstances",
60394	//   "parameterOrder": [
60395	//     "project",
60396	//     "region",
60397	//     "instanceGroupManager"
60398	//   ],
60399	//   "parameters": {
60400	//     "instanceGroupManager": {
60401	//       "description": "Name of the managed instance group.",
60402	//       "location": "path",
60403	//       "required": true,
60404	//       "type": "string"
60405	//     },
60406	//     "project": {
60407	//       "description": "Project ID for this request.",
60408	//       "location": "path",
60409	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60410	//       "required": true,
60411	//       "type": "string"
60412	//     },
60413	//     "region": {
60414	//       "description": "Name of the region scoping this request.",
60415	//       "location": "path",
60416	//       "required": true,
60417	//       "type": "string"
60418	//     },
60419	//     "requestId": {
60420	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60421	//       "location": "query",
60422	//       "type": "string"
60423	//     }
60424	//   },
60425	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
60426	//   "request": {
60427	//     "$ref": "RegionInstanceGroupManagersAbandonInstancesRequest"
60428	//   },
60429	//   "response": {
60430	//     "$ref": "Operation"
60431	//   },
60432	//   "scopes": [
60433	//     "https://www.googleapis.com/auth/cloud-platform",
60434	//     "https://www.googleapis.com/auth/compute"
60435	//   ]
60436	// }
60437
60438}
60439
60440// method id "compute.regionInstanceGroupManagers.delete":
60441
60442type RegionInstanceGroupManagersDeleteCall struct {
60443	s                    *Service
60444	project              string
60445	region               string
60446	instanceGroupManager string
60447	urlParams_           gensupport.URLParams
60448	ctx_                 context.Context
60449	header_              http.Header
60450}
60451
60452// Delete: Deletes the specified managed instance group and all of the
60453// instances in that group.
60454func (r *RegionInstanceGroupManagersService) Delete(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersDeleteCall {
60455	c := &RegionInstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60456	c.project = project
60457	c.region = region
60458	c.instanceGroupManager = instanceGroupManager
60459	return c
60460}
60461
60462// RequestId sets the optional parameter "requestId": An optional
60463// request ID to identify requests. Specify a unique request ID so that
60464// if you must retry your request, the server will know to ignore the
60465// request if it has already been completed.
60466//
60467// For example, consider a situation where you make an initial request
60468// and the request times out. If you make the request again with the
60469// same request ID, the server can check if original operation with the
60470// same request ID was received, and if so, will ignore the second
60471// request. This prevents clients from accidentally creating duplicate
60472// commitments.
60473//
60474// The request ID must be a valid UUID with the exception that zero UUID
60475// is not supported (00000000-0000-0000-0000-000000000000).
60476func (c *RegionInstanceGroupManagersDeleteCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteCall {
60477	c.urlParams_.Set("requestId", requestId)
60478	return c
60479}
60480
60481// Fields allows partial responses to be retrieved. See
60482// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60483// for more information.
60484func (c *RegionInstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteCall {
60485	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60486	return c
60487}
60488
60489// Context sets the context to be used in this call's Do method. Any
60490// pending HTTP request will be aborted if the provided context is
60491// canceled.
60492func (c *RegionInstanceGroupManagersDeleteCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteCall {
60493	c.ctx_ = ctx
60494	return c
60495}
60496
60497// Header returns an http.Header that can be modified by the caller to
60498// add HTTP headers to the request.
60499func (c *RegionInstanceGroupManagersDeleteCall) Header() http.Header {
60500	if c.header_ == nil {
60501		c.header_ = make(http.Header)
60502	}
60503	return c.header_
60504}
60505
60506func (c *RegionInstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
60507	reqHeaders := make(http.Header)
60508	for k, v := range c.header_ {
60509		reqHeaders[k] = v
60510	}
60511	reqHeaders.Set("User-Agent", c.s.userAgent())
60512	var body io.Reader = nil
60513	c.urlParams_.Set("alt", alt)
60514	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
60515	urls += "?" + c.urlParams_.Encode()
60516	req, _ := http.NewRequest("DELETE", urls, body)
60517	req.Header = reqHeaders
60518	googleapi.Expand(req.URL, map[string]string{
60519		"project":              c.project,
60520		"region":               c.region,
60521		"instanceGroupManager": c.instanceGroupManager,
60522	})
60523	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60524}
60525
60526// Do executes the "compute.regionInstanceGroupManagers.delete" call.
60527// Exactly one of *Operation or error will be non-nil. Any non-2xx
60528// status code is an error. Response headers are in either
60529// *Operation.ServerResponse.Header or (if a response was returned at
60530// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60531// to check whether the returned error was because
60532// http.StatusNotModified was returned.
60533func (c *RegionInstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60534	gensupport.SetOptions(c.urlParams_, opts...)
60535	res, err := c.doRequest("json")
60536	if res != nil && res.StatusCode == http.StatusNotModified {
60537		if res.Body != nil {
60538			res.Body.Close()
60539		}
60540		return nil, &googleapi.Error{
60541			Code:   res.StatusCode,
60542			Header: res.Header,
60543		}
60544	}
60545	if err != nil {
60546		return nil, err
60547	}
60548	defer googleapi.CloseBody(res)
60549	if err := googleapi.CheckResponse(res); err != nil {
60550		return nil, err
60551	}
60552	ret := &Operation{
60553		ServerResponse: googleapi.ServerResponse{
60554			Header:         res.Header,
60555			HTTPStatusCode: res.StatusCode,
60556		},
60557	}
60558	target := &ret
60559	if err := gensupport.DecodeResponse(target, res); err != nil {
60560		return nil, err
60561	}
60562	return ret, nil
60563	// {
60564	//   "description": "Deletes the specified managed instance group and all of the instances in that group.",
60565	//   "httpMethod": "DELETE",
60566	//   "id": "compute.regionInstanceGroupManagers.delete",
60567	//   "parameterOrder": [
60568	//     "project",
60569	//     "region",
60570	//     "instanceGroupManager"
60571	//   ],
60572	//   "parameters": {
60573	//     "instanceGroupManager": {
60574	//       "description": "Name of the managed instance group to delete.",
60575	//       "location": "path",
60576	//       "required": true,
60577	//       "type": "string"
60578	//     },
60579	//     "project": {
60580	//       "description": "Project ID for this request.",
60581	//       "location": "path",
60582	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60583	//       "required": true,
60584	//       "type": "string"
60585	//     },
60586	//     "region": {
60587	//       "description": "Name of the region scoping this request.",
60588	//       "location": "path",
60589	//       "required": true,
60590	//       "type": "string"
60591	//     },
60592	//     "requestId": {
60593	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60594	//       "location": "query",
60595	//       "type": "string"
60596	//     }
60597	//   },
60598	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
60599	//   "response": {
60600	//     "$ref": "Operation"
60601	//   },
60602	//   "scopes": [
60603	//     "https://www.googleapis.com/auth/cloud-platform",
60604	//     "https://www.googleapis.com/auth/compute"
60605	//   ]
60606	// }
60607
60608}
60609
60610// method id "compute.regionInstanceGroupManagers.deleteInstances":
60611
60612type RegionInstanceGroupManagersDeleteInstancesCall struct {
60613	s                                                 *Service
60614	project                                           string
60615	region                                            string
60616	instanceGroupManager                              string
60617	regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest
60618	urlParams_                                        gensupport.URLParams
60619	ctx_                                              context.Context
60620	header_                                           http.Header
60621}
60622
60623// DeleteInstances: Schedules a group action to delete the specified
60624// instances in the managed instance group. The instances are also
60625// removed from any target pools of which they were a member. This
60626// method reduces the targetSize of the managed instance group by the
60627// number of instances that you delete. This operation is marked as DONE
60628// when the action is scheduled even if the instances are still being
60629// deleted. You must separately verify the status of the deleting action
60630// with the listmanagedinstances method.
60631//
60632// If the group is part of a backend service that has enabled connection
60633// draining, it can take up to 60 seconds after the connection draining
60634// duration has elapsed before the VM instance is removed or
60635// deleted.
60636//
60637// You can specify a maximum of 1000 instances with this method per
60638// request.
60639func (r *RegionInstanceGroupManagersService) DeleteInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest) *RegionInstanceGroupManagersDeleteInstancesCall {
60640	c := &RegionInstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60641	c.project = project
60642	c.region = region
60643	c.instanceGroupManager = instanceGroupManager
60644	c.regioninstancegroupmanagersdeleteinstancesrequest = regioninstancegroupmanagersdeleteinstancesrequest
60645	return c
60646}
60647
60648// RequestId sets the optional parameter "requestId": An optional
60649// request ID to identify requests. Specify a unique request ID so that
60650// if you must retry your request, the server will know to ignore the
60651// request if it has already been completed.
60652//
60653// For example, consider a situation where you make an initial request
60654// and the request times out. If you make the request again with the
60655// same request ID, the server can check if original operation with the
60656// same request ID was received, and if so, will ignore the second
60657// request. This prevents clients from accidentally creating duplicate
60658// commitments.
60659//
60660// The request ID must be a valid UUID with the exception that zero UUID
60661// is not supported (00000000-0000-0000-0000-000000000000).
60662func (c *RegionInstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteInstancesCall {
60663	c.urlParams_.Set("requestId", requestId)
60664	return c
60665}
60666
60667// Fields allows partial responses to be retrieved. See
60668// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60669// for more information.
60670func (c *RegionInstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteInstancesCall {
60671	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60672	return c
60673}
60674
60675// Context sets the context to be used in this call's Do method. Any
60676// pending HTTP request will be aborted if the provided context is
60677// canceled.
60678func (c *RegionInstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteInstancesCall {
60679	c.ctx_ = ctx
60680	return c
60681}
60682
60683// Header returns an http.Header that can be modified by the caller to
60684// add HTTP headers to the request.
60685func (c *RegionInstanceGroupManagersDeleteInstancesCall) Header() http.Header {
60686	if c.header_ == nil {
60687		c.header_ = make(http.Header)
60688	}
60689	return c.header_
60690}
60691
60692func (c *RegionInstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
60693	reqHeaders := make(http.Header)
60694	for k, v := range c.header_ {
60695		reqHeaders[k] = v
60696	}
60697	reqHeaders.Set("User-Agent", c.s.userAgent())
60698	var body io.Reader = nil
60699	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersdeleteinstancesrequest)
60700	if err != nil {
60701		return nil, err
60702	}
60703	reqHeaders.Set("Content-Type", "application/json")
60704	c.urlParams_.Set("alt", alt)
60705	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
60706	urls += "?" + c.urlParams_.Encode()
60707	req, _ := http.NewRequest("POST", urls, body)
60708	req.Header = reqHeaders
60709	googleapi.Expand(req.URL, map[string]string{
60710		"project":              c.project,
60711		"region":               c.region,
60712		"instanceGroupManager": c.instanceGroupManager,
60713	})
60714	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60715}
60716
60717// Do executes the "compute.regionInstanceGroupManagers.deleteInstances" call.
60718// Exactly one of *Operation or error will be non-nil. Any non-2xx
60719// status code is an error. Response headers are in either
60720// *Operation.ServerResponse.Header or (if a response was returned at
60721// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60722// to check whether the returned error was because
60723// http.StatusNotModified was returned.
60724func (c *RegionInstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60725	gensupport.SetOptions(c.urlParams_, opts...)
60726	res, err := c.doRequest("json")
60727	if res != nil && res.StatusCode == http.StatusNotModified {
60728		if res.Body != nil {
60729			res.Body.Close()
60730		}
60731		return nil, &googleapi.Error{
60732			Code:   res.StatusCode,
60733			Header: res.Header,
60734		}
60735	}
60736	if err != nil {
60737		return nil, err
60738	}
60739	defer googleapi.CloseBody(res)
60740	if err := googleapi.CheckResponse(res); err != nil {
60741		return nil, err
60742	}
60743	ret := &Operation{
60744		ServerResponse: googleapi.ServerResponse{
60745			Header:         res.Header,
60746			HTTPStatusCode: res.StatusCode,
60747		},
60748	}
60749	target := &ret
60750	if err := gensupport.DecodeResponse(target, res); err != nil {
60751		return nil, err
60752	}
60753	return ret, nil
60754	// {
60755	//   "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.",
60756	//   "httpMethod": "POST",
60757	//   "id": "compute.regionInstanceGroupManagers.deleteInstances",
60758	//   "parameterOrder": [
60759	//     "project",
60760	//     "region",
60761	//     "instanceGroupManager"
60762	//   ],
60763	//   "parameters": {
60764	//     "instanceGroupManager": {
60765	//       "description": "Name of the managed instance group.",
60766	//       "location": "path",
60767	//       "required": true,
60768	//       "type": "string"
60769	//     },
60770	//     "project": {
60771	//       "description": "Project ID for this request.",
60772	//       "location": "path",
60773	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60774	//       "required": true,
60775	//       "type": "string"
60776	//     },
60777	//     "region": {
60778	//       "description": "Name of the region scoping this request.",
60779	//       "location": "path",
60780	//       "required": true,
60781	//       "type": "string"
60782	//     },
60783	//     "requestId": {
60784	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60785	//       "location": "query",
60786	//       "type": "string"
60787	//     }
60788	//   },
60789	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
60790	//   "request": {
60791	//     "$ref": "RegionInstanceGroupManagersDeleteInstancesRequest"
60792	//   },
60793	//   "response": {
60794	//     "$ref": "Operation"
60795	//   },
60796	//   "scopes": [
60797	//     "https://www.googleapis.com/auth/cloud-platform",
60798	//     "https://www.googleapis.com/auth/compute"
60799	//   ]
60800	// }
60801
60802}
60803
60804// method id "compute.regionInstanceGroupManagers.get":
60805
60806type RegionInstanceGroupManagersGetCall struct {
60807	s                    *Service
60808	project              string
60809	region               string
60810	instanceGroupManager string
60811	urlParams_           gensupport.URLParams
60812	ifNoneMatch_         string
60813	ctx_                 context.Context
60814	header_              http.Header
60815}
60816
60817// Get: Returns all of the details about the specified managed instance
60818// group.
60819func (r *RegionInstanceGroupManagersService) Get(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersGetCall {
60820	c := &RegionInstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60821	c.project = project
60822	c.region = region
60823	c.instanceGroupManager = instanceGroupManager
60824	return c
60825}
60826
60827// Fields allows partial responses to be retrieved. See
60828// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60829// for more information.
60830func (c *RegionInstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersGetCall {
60831	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60832	return c
60833}
60834
60835// IfNoneMatch sets the optional parameter which makes the operation
60836// fail if the object's ETag matches the given value. This is useful for
60837// getting updates only after the object has changed since the last
60838// request. Use googleapi.IsNotModified to check whether the response
60839// error from Do is the result of In-None-Match.
60840func (c *RegionInstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersGetCall {
60841	c.ifNoneMatch_ = entityTag
60842	return c
60843}
60844
60845// Context sets the context to be used in this call's Do method. Any
60846// pending HTTP request will be aborted if the provided context is
60847// canceled.
60848func (c *RegionInstanceGroupManagersGetCall) Context(ctx context.Context) *RegionInstanceGroupManagersGetCall {
60849	c.ctx_ = ctx
60850	return c
60851}
60852
60853// Header returns an http.Header that can be modified by the caller to
60854// add HTTP headers to the request.
60855func (c *RegionInstanceGroupManagersGetCall) Header() http.Header {
60856	if c.header_ == nil {
60857		c.header_ = make(http.Header)
60858	}
60859	return c.header_
60860}
60861
60862func (c *RegionInstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
60863	reqHeaders := make(http.Header)
60864	for k, v := range c.header_ {
60865		reqHeaders[k] = v
60866	}
60867	reqHeaders.Set("User-Agent", c.s.userAgent())
60868	if c.ifNoneMatch_ != "" {
60869		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60870	}
60871	var body io.Reader = nil
60872	c.urlParams_.Set("alt", alt)
60873	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
60874	urls += "?" + c.urlParams_.Encode()
60875	req, _ := http.NewRequest("GET", urls, body)
60876	req.Header = reqHeaders
60877	googleapi.Expand(req.URL, map[string]string{
60878		"project":              c.project,
60879		"region":               c.region,
60880		"instanceGroupManager": c.instanceGroupManager,
60881	})
60882	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60883}
60884
60885// Do executes the "compute.regionInstanceGroupManagers.get" call.
60886// Exactly one of *InstanceGroupManager or error will be non-nil. Any
60887// non-2xx status code is an error. Response headers are in either
60888// *InstanceGroupManager.ServerResponse.Header or (if a response was
60889// returned at all) in error.(*googleapi.Error).Header. Use
60890// googleapi.IsNotModified to check whether the returned error was
60891// because http.StatusNotModified was returned.
60892func (c *RegionInstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
60893	gensupport.SetOptions(c.urlParams_, opts...)
60894	res, err := c.doRequest("json")
60895	if res != nil && res.StatusCode == http.StatusNotModified {
60896		if res.Body != nil {
60897			res.Body.Close()
60898		}
60899		return nil, &googleapi.Error{
60900			Code:   res.StatusCode,
60901			Header: res.Header,
60902		}
60903	}
60904	if err != nil {
60905		return nil, err
60906	}
60907	defer googleapi.CloseBody(res)
60908	if err := googleapi.CheckResponse(res); err != nil {
60909		return nil, err
60910	}
60911	ret := &InstanceGroupManager{
60912		ServerResponse: googleapi.ServerResponse{
60913			Header:         res.Header,
60914			HTTPStatusCode: res.StatusCode,
60915		},
60916	}
60917	target := &ret
60918	if err := gensupport.DecodeResponse(target, res); err != nil {
60919		return nil, err
60920	}
60921	return ret, nil
60922	// {
60923	//   "description": "Returns all of the details about the specified managed instance group.",
60924	//   "httpMethod": "GET",
60925	//   "id": "compute.regionInstanceGroupManagers.get",
60926	//   "parameterOrder": [
60927	//     "project",
60928	//     "region",
60929	//     "instanceGroupManager"
60930	//   ],
60931	//   "parameters": {
60932	//     "instanceGroupManager": {
60933	//       "description": "Name of the managed instance group to return.",
60934	//       "location": "path",
60935	//       "required": true,
60936	//       "type": "string"
60937	//     },
60938	//     "project": {
60939	//       "description": "Project ID for this request.",
60940	//       "location": "path",
60941	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60942	//       "required": true,
60943	//       "type": "string"
60944	//     },
60945	//     "region": {
60946	//       "description": "Name of the region scoping this request.",
60947	//       "location": "path",
60948	//       "required": true,
60949	//       "type": "string"
60950	//     }
60951	//   },
60952	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
60953	//   "response": {
60954	//     "$ref": "InstanceGroupManager"
60955	//   },
60956	//   "scopes": [
60957	//     "https://www.googleapis.com/auth/cloud-platform",
60958	//     "https://www.googleapis.com/auth/compute",
60959	//     "https://www.googleapis.com/auth/compute.readonly"
60960	//   ]
60961	// }
60962
60963}
60964
60965// method id "compute.regionInstanceGroupManagers.insert":
60966
60967type RegionInstanceGroupManagersInsertCall struct {
60968	s                    *Service
60969	project              string
60970	region               string
60971	instancegroupmanager *InstanceGroupManager
60972	urlParams_           gensupport.URLParams
60973	ctx_                 context.Context
60974	header_              http.Header
60975}
60976
60977// Insert: Creates a managed instance group using the information that
60978// you specify in the request. After the group is created, it schedules
60979// an action to create instances in the group using the specified
60980// instance template. This operation is marked as DONE when the group is
60981// created even if the instances in the group have not yet been created.
60982// You must separately verify the status of the individual instances
60983// with the listmanagedinstances method.
60984//
60985// A regional managed instance group can contain up to 2000 instances.
60986func (r *RegionInstanceGroupManagersService) Insert(project string, region string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersInsertCall {
60987	c := &RegionInstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60988	c.project = project
60989	c.region = region
60990	c.instancegroupmanager = instancegroupmanager
60991	return c
60992}
60993
60994// RequestId sets the optional parameter "requestId": An optional
60995// request ID to identify requests. Specify a unique request ID so that
60996// if you must retry your request, the server will know to ignore the
60997// request if it has already been completed.
60998//
60999// For example, consider a situation where you make an initial request
61000// and the request times out. If you make the request again with the
61001// same request ID, the server can check if original operation with the
61002// same request ID was received, and if so, will ignore the second
61003// request. This prevents clients from accidentally creating duplicate
61004// commitments.
61005//
61006// The request ID must be a valid UUID with the exception that zero UUID
61007// is not supported (00000000-0000-0000-0000-000000000000).
61008func (c *RegionInstanceGroupManagersInsertCall) RequestId(requestId string) *RegionInstanceGroupManagersInsertCall {
61009	c.urlParams_.Set("requestId", requestId)
61010	return c
61011}
61012
61013// Fields allows partial responses to be retrieved. See
61014// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61015// for more information.
61016func (c *RegionInstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersInsertCall {
61017	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61018	return c
61019}
61020
61021// Context sets the context to be used in this call's Do method. Any
61022// pending HTTP request will be aborted if the provided context is
61023// canceled.
61024func (c *RegionInstanceGroupManagersInsertCall) Context(ctx context.Context) *RegionInstanceGroupManagersInsertCall {
61025	c.ctx_ = ctx
61026	return c
61027}
61028
61029// Header returns an http.Header that can be modified by the caller to
61030// add HTTP headers to the request.
61031func (c *RegionInstanceGroupManagersInsertCall) Header() http.Header {
61032	if c.header_ == nil {
61033		c.header_ = make(http.Header)
61034	}
61035	return c.header_
61036}
61037
61038func (c *RegionInstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
61039	reqHeaders := make(http.Header)
61040	for k, v := range c.header_ {
61041		reqHeaders[k] = v
61042	}
61043	reqHeaders.Set("User-Agent", c.s.userAgent())
61044	var body io.Reader = nil
61045	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
61046	if err != nil {
61047		return nil, err
61048	}
61049	reqHeaders.Set("Content-Type", "application/json")
61050	c.urlParams_.Set("alt", alt)
61051	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers")
61052	urls += "?" + c.urlParams_.Encode()
61053	req, _ := http.NewRequest("POST", urls, body)
61054	req.Header = reqHeaders
61055	googleapi.Expand(req.URL, map[string]string{
61056		"project": c.project,
61057		"region":  c.region,
61058	})
61059	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61060}
61061
61062// Do executes the "compute.regionInstanceGroupManagers.insert" call.
61063// Exactly one of *Operation or error will be non-nil. Any non-2xx
61064// status code is an error. Response headers are in either
61065// *Operation.ServerResponse.Header or (if a response was returned at
61066// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61067// to check whether the returned error was because
61068// http.StatusNotModified was returned.
61069func (c *RegionInstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61070	gensupport.SetOptions(c.urlParams_, opts...)
61071	res, err := c.doRequest("json")
61072	if res != nil && res.StatusCode == http.StatusNotModified {
61073		if res.Body != nil {
61074			res.Body.Close()
61075		}
61076		return nil, &googleapi.Error{
61077			Code:   res.StatusCode,
61078			Header: res.Header,
61079		}
61080	}
61081	if err != nil {
61082		return nil, err
61083	}
61084	defer googleapi.CloseBody(res)
61085	if err := googleapi.CheckResponse(res); err != nil {
61086		return nil, err
61087	}
61088	ret := &Operation{
61089		ServerResponse: googleapi.ServerResponse{
61090			Header:         res.Header,
61091			HTTPStatusCode: res.StatusCode,
61092		},
61093	}
61094	target := &ret
61095	if err := gensupport.DecodeResponse(target, res); err != nil {
61096		return nil, err
61097	}
61098	return ret, nil
61099	// {
61100	//   "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.",
61101	//   "httpMethod": "POST",
61102	//   "id": "compute.regionInstanceGroupManagers.insert",
61103	//   "parameterOrder": [
61104	//     "project",
61105	//     "region"
61106	//   ],
61107	//   "parameters": {
61108	//     "project": {
61109	//       "description": "Project ID for this request.",
61110	//       "location": "path",
61111	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61112	//       "required": true,
61113	//       "type": "string"
61114	//     },
61115	//     "region": {
61116	//       "description": "Name of the region scoping this request.",
61117	//       "location": "path",
61118	//       "required": true,
61119	//       "type": "string"
61120	//     },
61121	//     "requestId": {
61122	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61123	//       "location": "query",
61124	//       "type": "string"
61125	//     }
61126	//   },
61127	//   "path": "{project}/regions/{region}/instanceGroupManagers",
61128	//   "request": {
61129	//     "$ref": "InstanceGroupManager"
61130	//   },
61131	//   "response": {
61132	//     "$ref": "Operation"
61133	//   },
61134	//   "scopes": [
61135	//     "https://www.googleapis.com/auth/cloud-platform",
61136	//     "https://www.googleapis.com/auth/compute"
61137	//   ]
61138	// }
61139
61140}
61141
61142// method id "compute.regionInstanceGroupManagers.list":
61143
61144type RegionInstanceGroupManagersListCall struct {
61145	s            *Service
61146	project      string
61147	region       string
61148	urlParams_   gensupport.URLParams
61149	ifNoneMatch_ string
61150	ctx_         context.Context
61151	header_      http.Header
61152}
61153
61154// List: Retrieves the list of managed instance groups that are
61155// contained within the specified region.
61156func (r *RegionInstanceGroupManagersService) List(project string, region string) *RegionInstanceGroupManagersListCall {
61157	c := &RegionInstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61158	c.project = project
61159	c.region = region
61160	return c
61161}
61162
61163// Filter sets the optional parameter "filter": Sets a filter
61164// {expression} for filtering listed resources. Your {expression} must
61165// be in the format: field_name comparison_string literal_string.
61166//
61167// The field_name is the name of the field you want to compare. Only
61168// atomic field types are supported (string, number, boolean). The
61169// comparison_string must be either eq (equals) or ne (not equals). The
61170// literal_string is the string value to filter to. The literal value
61171// must be valid for the type of field you are filtering by (string,
61172// number, boolean). For string fields, the literal value is interpreted
61173// as a regular expression using RE2 syntax. The literal value must
61174// match the entire field.
61175//
61176// For example, to filter for instances that do not have a name of
61177// example-instance, you would use name ne example-instance.
61178//
61179// You can filter on nested fields. For example, you could filter on
61180// instances that have set the scheduling.automaticRestart field to
61181// true. Use filtering on nested fields to take advantage of labels to
61182// organize and search for results based on label values.
61183//
61184// To filter on multiple expressions, provide each separate expression
61185// within parentheses. For example, (scheduling.automaticRestart eq
61186// true) (zone eq us-central1-f). Multiple expressions are treated as
61187// AND expressions, meaning that resources must match all expressions to
61188// pass the filters.
61189func (c *RegionInstanceGroupManagersListCall) Filter(filter string) *RegionInstanceGroupManagersListCall {
61190	c.urlParams_.Set("filter", filter)
61191	return c
61192}
61193
61194// MaxResults sets the optional parameter "maxResults": The maximum
61195// number of results per page that should be returned. If the number of
61196// available results is larger than maxResults, Compute Engine returns a
61197// nextPageToken that can be used to get the next page of results in
61198// subsequent list requests. Acceptable values are 0 to 500, inclusive.
61199// (Default: 500)
61200func (c *RegionInstanceGroupManagersListCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListCall {
61201	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
61202	return c
61203}
61204
61205// OrderBy sets the optional parameter "orderBy": Sorts list results by
61206// a certain order. By default, results are returned in alphanumerical
61207// order based on the resource name.
61208//
61209// You can also sort results in descending order based on the creation
61210// timestamp using orderBy="creationTimestamp desc". This sorts results
61211// based on the creationTimestamp field in reverse chronological order
61212// (newest result first). Use this to sort resources like operations so
61213// that the newest operation is returned first.
61214//
61215// Currently, only sorting by name or creationTimestamp desc is
61216// supported.
61217func (c *RegionInstanceGroupManagersListCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListCall {
61218	c.urlParams_.Set("orderBy", orderBy)
61219	return c
61220}
61221
61222// PageToken sets the optional parameter "pageToken": Specifies a page
61223// token to use. Set pageToken to the nextPageToken returned by a
61224// previous list request to get the next page of results.
61225func (c *RegionInstanceGroupManagersListCall) PageToken(pageToken string) *RegionInstanceGroupManagersListCall {
61226	c.urlParams_.Set("pageToken", pageToken)
61227	return c
61228}
61229
61230// Fields allows partial responses to be retrieved. See
61231// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61232// for more information.
61233func (c *RegionInstanceGroupManagersListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListCall {
61234	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61235	return c
61236}
61237
61238// IfNoneMatch sets the optional parameter which makes the operation
61239// fail if the object's ETag matches the given value. This is useful for
61240// getting updates only after the object has changed since the last
61241// request. Use googleapi.IsNotModified to check whether the response
61242// error from Do is the result of In-None-Match.
61243func (c *RegionInstanceGroupManagersListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListCall {
61244	c.ifNoneMatch_ = entityTag
61245	return c
61246}
61247
61248// Context sets the context to be used in this call's Do method. Any
61249// pending HTTP request will be aborted if the provided context is
61250// canceled.
61251func (c *RegionInstanceGroupManagersListCall) Context(ctx context.Context) *RegionInstanceGroupManagersListCall {
61252	c.ctx_ = ctx
61253	return c
61254}
61255
61256// Header returns an http.Header that can be modified by the caller to
61257// add HTTP headers to the request.
61258func (c *RegionInstanceGroupManagersListCall) Header() http.Header {
61259	if c.header_ == nil {
61260		c.header_ = make(http.Header)
61261	}
61262	return c.header_
61263}
61264
61265func (c *RegionInstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
61266	reqHeaders := make(http.Header)
61267	for k, v := range c.header_ {
61268		reqHeaders[k] = v
61269	}
61270	reqHeaders.Set("User-Agent", c.s.userAgent())
61271	if c.ifNoneMatch_ != "" {
61272		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
61273	}
61274	var body io.Reader = nil
61275	c.urlParams_.Set("alt", alt)
61276	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers")
61277	urls += "?" + c.urlParams_.Encode()
61278	req, _ := http.NewRequest("GET", urls, body)
61279	req.Header = reqHeaders
61280	googleapi.Expand(req.URL, map[string]string{
61281		"project": c.project,
61282		"region":  c.region,
61283	})
61284	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61285}
61286
61287// Do executes the "compute.regionInstanceGroupManagers.list" call.
61288// Exactly one of *RegionInstanceGroupManagerList or error will be
61289// non-nil. Any non-2xx status code is an error. Response headers are in
61290// either *RegionInstanceGroupManagerList.ServerResponse.Header or (if a
61291// response was returned at all) in error.(*googleapi.Error).Header. Use
61292// googleapi.IsNotModified to check whether the returned error was
61293// because http.StatusNotModified was returned.
61294func (c *RegionInstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagerList, error) {
61295	gensupport.SetOptions(c.urlParams_, opts...)
61296	res, err := c.doRequest("json")
61297	if res != nil && res.StatusCode == http.StatusNotModified {
61298		if res.Body != nil {
61299			res.Body.Close()
61300		}
61301		return nil, &googleapi.Error{
61302			Code:   res.StatusCode,
61303			Header: res.Header,
61304		}
61305	}
61306	if err != nil {
61307		return nil, err
61308	}
61309	defer googleapi.CloseBody(res)
61310	if err := googleapi.CheckResponse(res); err != nil {
61311		return nil, err
61312	}
61313	ret := &RegionInstanceGroupManagerList{
61314		ServerResponse: googleapi.ServerResponse{
61315			Header:         res.Header,
61316			HTTPStatusCode: res.StatusCode,
61317		},
61318	}
61319	target := &ret
61320	if err := gensupport.DecodeResponse(target, res); err != nil {
61321		return nil, err
61322	}
61323	return ret, nil
61324	// {
61325	//   "description": "Retrieves the list of managed instance groups that are contained within the specified region.",
61326	//   "httpMethod": "GET",
61327	//   "id": "compute.regionInstanceGroupManagers.list",
61328	//   "parameterOrder": [
61329	//     "project",
61330	//     "region"
61331	//   ],
61332	//   "parameters": {
61333	//     "filter": {
61334	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
61335	//       "location": "query",
61336	//       "type": "string"
61337	//     },
61338	//     "maxResults": {
61339	//       "default": "500",
61340	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
61341	//       "format": "uint32",
61342	//       "location": "query",
61343	//       "minimum": "0",
61344	//       "type": "integer"
61345	//     },
61346	//     "orderBy": {
61347	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
61348	//       "location": "query",
61349	//       "type": "string"
61350	//     },
61351	//     "pageToken": {
61352	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
61353	//       "location": "query",
61354	//       "type": "string"
61355	//     },
61356	//     "project": {
61357	//       "description": "Project ID for this request.",
61358	//       "location": "path",
61359	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61360	//       "required": true,
61361	//       "type": "string"
61362	//     },
61363	//     "region": {
61364	//       "description": "Name of the region scoping this request.",
61365	//       "location": "path",
61366	//       "required": true,
61367	//       "type": "string"
61368	//     }
61369	//   },
61370	//   "path": "{project}/regions/{region}/instanceGroupManagers",
61371	//   "response": {
61372	//     "$ref": "RegionInstanceGroupManagerList"
61373	//   },
61374	//   "scopes": [
61375	//     "https://www.googleapis.com/auth/cloud-platform",
61376	//     "https://www.googleapis.com/auth/compute",
61377	//     "https://www.googleapis.com/auth/compute.readonly"
61378	//   ]
61379	// }
61380
61381}
61382
61383// Pages invokes f for each page of results.
61384// A non-nil error returned from f will halt the iteration.
61385// The provided context supersedes any context provided to the Context method.
61386func (c *RegionInstanceGroupManagersListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagerList) error) error {
61387	c.ctx_ = ctx
61388	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
61389	for {
61390		x, err := c.Do()
61391		if err != nil {
61392			return err
61393		}
61394		if err := f(x); err != nil {
61395			return err
61396		}
61397		if x.NextPageToken == "" {
61398			return nil
61399		}
61400		c.PageToken(x.NextPageToken)
61401	}
61402}
61403
61404// method id "compute.regionInstanceGroupManagers.listManagedInstances":
61405
61406type RegionInstanceGroupManagersListManagedInstancesCall struct {
61407	s                    *Service
61408	project              string
61409	region               string
61410	instanceGroupManager string
61411	urlParams_           gensupport.URLParams
61412	ctx_                 context.Context
61413	header_              http.Header
61414}
61415
61416// ListManagedInstances: Lists the instances in the managed instance
61417// group and instances that are scheduled to be created. The list
61418// includes any current actions that the group has scheduled for its
61419// instances.
61420func (r *RegionInstanceGroupManagersService) ListManagedInstances(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListManagedInstancesCall {
61421	c := &RegionInstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61422	c.project = project
61423	c.region = region
61424	c.instanceGroupManager = instanceGroupManager
61425	return c
61426}
61427
61428// Filter sets the optional parameter "filter":
61429func (c *RegionInstanceGroupManagersListManagedInstancesCall) Filter(filter string) *RegionInstanceGroupManagersListManagedInstancesCall {
61430	c.urlParams_.Set("filter", filter)
61431	return c
61432}
61433
61434// MaxResults sets the optional parameter "maxResults":
61435func (c *RegionInstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListManagedInstancesCall {
61436	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
61437	return c
61438}
61439
61440// OrderBy sets the optional parameter "order_by":
61441func (c *RegionInstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListManagedInstancesCall {
61442	c.urlParams_.Set("order_by", orderBy)
61443	return c
61444}
61445
61446// PageToken sets the optional parameter "pageToken":
61447func (c *RegionInstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *RegionInstanceGroupManagersListManagedInstancesCall {
61448	c.urlParams_.Set("pageToken", pageToken)
61449	return c
61450}
61451
61452// Fields allows partial responses to be retrieved. See
61453// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61454// for more information.
61455func (c *RegionInstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListManagedInstancesCall {
61456	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61457	return c
61458}
61459
61460// Context sets the context to be used in this call's Do method. Any
61461// pending HTTP request will be aborted if the provided context is
61462// canceled.
61463func (c *RegionInstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersListManagedInstancesCall {
61464	c.ctx_ = ctx
61465	return c
61466}
61467
61468// Header returns an http.Header that can be modified by the caller to
61469// add HTTP headers to the request.
61470func (c *RegionInstanceGroupManagersListManagedInstancesCall) Header() http.Header {
61471	if c.header_ == nil {
61472		c.header_ = make(http.Header)
61473	}
61474	return c.header_
61475}
61476
61477func (c *RegionInstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
61478	reqHeaders := make(http.Header)
61479	for k, v := range c.header_ {
61480		reqHeaders[k] = v
61481	}
61482	reqHeaders.Set("User-Agent", c.s.userAgent())
61483	var body io.Reader = nil
61484	c.urlParams_.Set("alt", alt)
61485	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
61486	urls += "?" + c.urlParams_.Encode()
61487	req, _ := http.NewRequest("POST", urls, body)
61488	req.Header = reqHeaders
61489	googleapi.Expand(req.URL, map[string]string{
61490		"project":              c.project,
61491		"region":               c.region,
61492		"instanceGroupManager": c.instanceGroupManager,
61493	})
61494	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61495}
61496
61497// Do executes the "compute.regionInstanceGroupManagers.listManagedInstances" call.
61498// Exactly one of *RegionInstanceGroupManagersListInstancesResponse or
61499// error will be non-nil. Any non-2xx status code is an error. Response
61500// headers are in either
61501// *RegionInstanceGroupManagersListInstancesResponse.ServerResponse.Heade
61502// r or (if a response was returned at all) in
61503// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
61504// whether the returned error was because http.StatusNotModified was
61505// returned.
61506func (c *RegionInstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstancesResponse, error) {
61507	gensupport.SetOptions(c.urlParams_, opts...)
61508	res, err := c.doRequest("json")
61509	if res != nil && res.StatusCode == http.StatusNotModified {
61510		if res.Body != nil {
61511			res.Body.Close()
61512		}
61513		return nil, &googleapi.Error{
61514			Code:   res.StatusCode,
61515			Header: res.Header,
61516		}
61517	}
61518	if err != nil {
61519		return nil, err
61520	}
61521	defer googleapi.CloseBody(res)
61522	if err := googleapi.CheckResponse(res); err != nil {
61523		return nil, err
61524	}
61525	ret := &RegionInstanceGroupManagersListInstancesResponse{
61526		ServerResponse: googleapi.ServerResponse{
61527			Header:         res.Header,
61528			HTTPStatusCode: res.StatusCode,
61529		},
61530	}
61531	target := &ret
61532	if err := gensupport.DecodeResponse(target, res); err != nil {
61533		return nil, err
61534	}
61535	return ret, nil
61536	// {
61537	//   "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.",
61538	//   "httpMethod": "POST",
61539	//   "id": "compute.regionInstanceGroupManagers.listManagedInstances",
61540	//   "parameterOrder": [
61541	//     "project",
61542	//     "region",
61543	//     "instanceGroupManager"
61544	//   ],
61545	//   "parameters": {
61546	//     "filter": {
61547	//       "location": "query",
61548	//       "type": "string"
61549	//     },
61550	//     "instanceGroupManager": {
61551	//       "description": "The name of the managed instance group.",
61552	//       "location": "path",
61553	//       "required": true,
61554	//       "type": "string"
61555	//     },
61556	//     "maxResults": {
61557	//       "default": "500",
61558	//       "format": "uint32",
61559	//       "location": "query",
61560	//       "minimum": "0",
61561	//       "type": "integer"
61562	//     },
61563	//     "order_by": {
61564	//       "location": "query",
61565	//       "type": "string"
61566	//     },
61567	//     "pageToken": {
61568	//       "location": "query",
61569	//       "type": "string"
61570	//     },
61571	//     "project": {
61572	//       "description": "Project ID for this request.",
61573	//       "location": "path",
61574	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61575	//       "required": true,
61576	//       "type": "string"
61577	//     },
61578	//     "region": {
61579	//       "description": "Name of the region scoping this request.",
61580	//       "location": "path",
61581	//       "required": true,
61582	//       "type": "string"
61583	//     }
61584	//   },
61585	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
61586	//   "response": {
61587	//     "$ref": "RegionInstanceGroupManagersListInstancesResponse"
61588	//   },
61589	//   "scopes": [
61590	//     "https://www.googleapis.com/auth/cloud-platform",
61591	//     "https://www.googleapis.com/auth/compute",
61592	//     "https://www.googleapis.com/auth/compute.readonly"
61593	//   ]
61594	// }
61595
61596}
61597
61598// method id "compute.regionInstanceGroupManagers.recreateInstances":
61599
61600type RegionInstanceGroupManagersRecreateInstancesCall struct {
61601	s                                          *Service
61602	project                                    string
61603	region                                     string
61604	instanceGroupManager                       string
61605	regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest
61606	urlParams_                                 gensupport.URLParams
61607	ctx_                                       context.Context
61608	header_                                    http.Header
61609}
61610
61611// RecreateInstances: Schedules a group action to recreate the specified
61612// instances in the managed instance group. The instances are deleted
61613// and recreated using the current instance template for the managed
61614// instance group. This operation is marked as DONE when the action is
61615// scheduled even if the instances have not yet been recreated. You must
61616// separately verify the status of the recreating action with the
61617// listmanagedinstances method.
61618//
61619// If the group is part of a backend service that has enabled connection
61620// draining, it can take up to 60 seconds after the connection draining
61621// duration has elapsed before the VM instance is removed or
61622// deleted.
61623//
61624// You can specify a maximum of 1000 instances with this method per
61625// request.
61626func (r *RegionInstanceGroupManagersService) RecreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest) *RegionInstanceGroupManagersRecreateInstancesCall {
61627	c := &RegionInstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61628	c.project = project
61629	c.region = region
61630	c.instanceGroupManager = instanceGroupManager
61631	c.regioninstancegroupmanagersrecreaterequest = regioninstancegroupmanagersrecreaterequest
61632	return c
61633}
61634
61635// RequestId sets the optional parameter "requestId": An optional
61636// request ID to identify requests. Specify a unique request ID so that
61637// if you must retry your request, the server will know to ignore the
61638// request if it has already been completed.
61639//
61640// For example, consider a situation where you make an initial request
61641// and the request times out. If you make the request again with the
61642// same request ID, the server can check if original operation with the
61643// same request ID was received, and if so, will ignore the second
61644// request. This prevents clients from accidentally creating duplicate
61645// commitments.
61646//
61647// The request ID must be a valid UUID with the exception that zero UUID
61648// is not supported (00000000-0000-0000-0000-000000000000).
61649func (c *RegionInstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersRecreateInstancesCall {
61650	c.urlParams_.Set("requestId", requestId)
61651	return c
61652}
61653
61654// Fields allows partial responses to be retrieved. See
61655// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61656// for more information.
61657func (c *RegionInstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersRecreateInstancesCall {
61658	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61659	return c
61660}
61661
61662// Context sets the context to be used in this call's Do method. Any
61663// pending HTTP request will be aborted if the provided context is
61664// canceled.
61665func (c *RegionInstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersRecreateInstancesCall {
61666	c.ctx_ = ctx
61667	return c
61668}
61669
61670// Header returns an http.Header that can be modified by the caller to
61671// add HTTP headers to the request.
61672func (c *RegionInstanceGroupManagersRecreateInstancesCall) Header() http.Header {
61673	if c.header_ == nil {
61674		c.header_ = make(http.Header)
61675	}
61676	return c.header_
61677}
61678
61679func (c *RegionInstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
61680	reqHeaders := make(http.Header)
61681	for k, v := range c.header_ {
61682		reqHeaders[k] = v
61683	}
61684	reqHeaders.Set("User-Agent", c.s.userAgent())
61685	var body io.Reader = nil
61686	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersrecreaterequest)
61687	if err != nil {
61688		return nil, err
61689	}
61690	reqHeaders.Set("Content-Type", "application/json")
61691	c.urlParams_.Set("alt", alt)
61692	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
61693	urls += "?" + c.urlParams_.Encode()
61694	req, _ := http.NewRequest("POST", urls, body)
61695	req.Header = reqHeaders
61696	googleapi.Expand(req.URL, map[string]string{
61697		"project":              c.project,
61698		"region":               c.region,
61699		"instanceGroupManager": c.instanceGroupManager,
61700	})
61701	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61702}
61703
61704// Do executes the "compute.regionInstanceGroupManagers.recreateInstances" call.
61705// Exactly one of *Operation or error will be non-nil. Any non-2xx
61706// status code is an error. Response headers are in either
61707// *Operation.ServerResponse.Header or (if a response was returned at
61708// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61709// to check whether the returned error was because
61710// http.StatusNotModified was returned.
61711func (c *RegionInstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61712	gensupport.SetOptions(c.urlParams_, opts...)
61713	res, err := c.doRequest("json")
61714	if res != nil && res.StatusCode == http.StatusNotModified {
61715		if res.Body != nil {
61716			res.Body.Close()
61717		}
61718		return nil, &googleapi.Error{
61719			Code:   res.StatusCode,
61720			Header: res.Header,
61721		}
61722	}
61723	if err != nil {
61724		return nil, err
61725	}
61726	defer googleapi.CloseBody(res)
61727	if err := googleapi.CheckResponse(res); err != nil {
61728		return nil, err
61729	}
61730	ret := &Operation{
61731		ServerResponse: googleapi.ServerResponse{
61732			Header:         res.Header,
61733			HTTPStatusCode: res.StatusCode,
61734		},
61735	}
61736	target := &ret
61737	if err := gensupport.DecodeResponse(target, res); err != nil {
61738		return nil, err
61739	}
61740	return ret, nil
61741	// {
61742	//   "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.",
61743	//   "httpMethod": "POST",
61744	//   "id": "compute.regionInstanceGroupManagers.recreateInstances",
61745	//   "parameterOrder": [
61746	//     "project",
61747	//     "region",
61748	//     "instanceGroupManager"
61749	//   ],
61750	//   "parameters": {
61751	//     "instanceGroupManager": {
61752	//       "description": "Name of the managed instance group.",
61753	//       "location": "path",
61754	//       "required": true,
61755	//       "type": "string"
61756	//     },
61757	//     "project": {
61758	//       "description": "Project ID for this request.",
61759	//       "location": "path",
61760	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61761	//       "required": true,
61762	//       "type": "string"
61763	//     },
61764	//     "region": {
61765	//       "description": "Name of the region scoping this request.",
61766	//       "location": "path",
61767	//       "required": true,
61768	//       "type": "string"
61769	//     },
61770	//     "requestId": {
61771	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61772	//       "location": "query",
61773	//       "type": "string"
61774	//     }
61775	//   },
61776	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
61777	//   "request": {
61778	//     "$ref": "RegionInstanceGroupManagersRecreateRequest"
61779	//   },
61780	//   "response": {
61781	//     "$ref": "Operation"
61782	//   },
61783	//   "scopes": [
61784	//     "https://www.googleapis.com/auth/cloud-platform",
61785	//     "https://www.googleapis.com/auth/compute"
61786	//   ]
61787	// }
61788
61789}
61790
61791// method id "compute.regionInstanceGroupManagers.resize":
61792
61793type RegionInstanceGroupManagersResizeCall struct {
61794	s                    *Service
61795	project              string
61796	region               string
61797	instanceGroupManager string
61798	urlParams_           gensupport.URLParams
61799	ctx_                 context.Context
61800	header_              http.Header
61801}
61802
61803// Resize: Changes the intended size for the managed instance group. If
61804// you increase the size, the group schedules actions to create new
61805// instances using the current instance template. If you decrease the
61806// size, the group schedules delete actions on one or more instances.
61807// The resize operation is marked DONE when the resize actions are
61808// scheduled even if the group has not yet added or deleted any
61809// instances. You must separately verify the status of the creating or
61810// deleting actions with the listmanagedinstances method.
61811//
61812// If the group is part of a backend service that has enabled connection
61813// draining, it can take up to 60 seconds after the connection draining
61814// duration has elapsed before the VM instance is removed or deleted.
61815func (r *RegionInstanceGroupManagersService) Resize(project string, region string, instanceGroupManager string, size int64) *RegionInstanceGroupManagersResizeCall {
61816	c := &RegionInstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61817	c.project = project
61818	c.region = region
61819	c.instanceGroupManager = instanceGroupManager
61820	c.urlParams_.Set("size", fmt.Sprint(size))
61821	return c
61822}
61823
61824// RequestId sets the optional parameter "requestId": An optional
61825// request ID to identify requests. Specify a unique request ID so that
61826// if you must retry your request, the server will know to ignore the
61827// request if it has already been completed.
61828//
61829// For example, consider a situation where you make an initial request
61830// and the request times out. If you make the request again with the
61831// same request ID, the server can check if original operation with the
61832// same request ID was received, and if so, will ignore the second
61833// request. This prevents clients from accidentally creating duplicate
61834// commitments.
61835//
61836// The request ID must be a valid UUID with the exception that zero UUID
61837// is not supported (00000000-0000-0000-0000-000000000000).
61838func (c *RegionInstanceGroupManagersResizeCall) RequestId(requestId string) *RegionInstanceGroupManagersResizeCall {
61839	c.urlParams_.Set("requestId", requestId)
61840	return c
61841}
61842
61843// Fields allows partial responses to be retrieved. See
61844// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61845// for more information.
61846func (c *RegionInstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersResizeCall {
61847	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61848	return c
61849}
61850
61851// Context sets the context to be used in this call's Do method. Any
61852// pending HTTP request will be aborted if the provided context is
61853// canceled.
61854func (c *RegionInstanceGroupManagersResizeCall) Context(ctx context.Context) *RegionInstanceGroupManagersResizeCall {
61855	c.ctx_ = ctx
61856	return c
61857}
61858
61859// Header returns an http.Header that can be modified by the caller to
61860// add HTTP headers to the request.
61861func (c *RegionInstanceGroupManagersResizeCall) Header() http.Header {
61862	if c.header_ == nil {
61863		c.header_ = make(http.Header)
61864	}
61865	return c.header_
61866}
61867
61868func (c *RegionInstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
61869	reqHeaders := make(http.Header)
61870	for k, v := range c.header_ {
61871		reqHeaders[k] = v
61872	}
61873	reqHeaders.Set("User-Agent", c.s.userAgent())
61874	var body io.Reader = nil
61875	c.urlParams_.Set("alt", alt)
61876	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize")
61877	urls += "?" + c.urlParams_.Encode()
61878	req, _ := http.NewRequest("POST", urls, body)
61879	req.Header = reqHeaders
61880	googleapi.Expand(req.URL, map[string]string{
61881		"project":              c.project,
61882		"region":               c.region,
61883		"instanceGroupManager": c.instanceGroupManager,
61884	})
61885	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61886}
61887
61888// Do executes the "compute.regionInstanceGroupManagers.resize" call.
61889// Exactly one of *Operation or error will be non-nil. Any non-2xx
61890// status code is an error. Response headers are in either
61891// *Operation.ServerResponse.Header or (if a response was returned at
61892// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61893// to check whether the returned error was because
61894// http.StatusNotModified was returned.
61895func (c *RegionInstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61896	gensupport.SetOptions(c.urlParams_, opts...)
61897	res, err := c.doRequest("json")
61898	if res != nil && res.StatusCode == http.StatusNotModified {
61899		if res.Body != nil {
61900			res.Body.Close()
61901		}
61902		return nil, &googleapi.Error{
61903			Code:   res.StatusCode,
61904			Header: res.Header,
61905		}
61906	}
61907	if err != nil {
61908		return nil, err
61909	}
61910	defer googleapi.CloseBody(res)
61911	if err := googleapi.CheckResponse(res); err != nil {
61912		return nil, err
61913	}
61914	ret := &Operation{
61915		ServerResponse: googleapi.ServerResponse{
61916			Header:         res.Header,
61917			HTTPStatusCode: res.StatusCode,
61918		},
61919	}
61920	target := &ret
61921	if err := gensupport.DecodeResponse(target, res); err != nil {
61922		return nil, err
61923	}
61924	return ret, nil
61925	// {
61926	//   "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.",
61927	//   "httpMethod": "POST",
61928	//   "id": "compute.regionInstanceGroupManagers.resize",
61929	//   "parameterOrder": [
61930	//     "project",
61931	//     "region",
61932	//     "instanceGroupManager",
61933	//     "size"
61934	//   ],
61935	//   "parameters": {
61936	//     "instanceGroupManager": {
61937	//       "description": "Name of the managed instance group.",
61938	//       "location": "path",
61939	//       "required": true,
61940	//       "type": "string"
61941	//     },
61942	//     "project": {
61943	//       "description": "Project ID for this request.",
61944	//       "location": "path",
61945	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61946	//       "required": true,
61947	//       "type": "string"
61948	//     },
61949	//     "region": {
61950	//       "description": "Name of the region scoping this request.",
61951	//       "location": "path",
61952	//       "required": true,
61953	//       "type": "string"
61954	//     },
61955	//     "requestId": {
61956	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61957	//       "location": "query",
61958	//       "type": "string"
61959	//     },
61960	//     "size": {
61961	//       "description": "Number of instances that should exist in this instance group manager.",
61962	//       "format": "int32",
61963	//       "location": "query",
61964	//       "minimum": "0",
61965	//       "required": true,
61966	//       "type": "integer"
61967	//     }
61968	//   },
61969	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize",
61970	//   "response": {
61971	//     "$ref": "Operation"
61972	//   },
61973	//   "scopes": [
61974	//     "https://www.googleapis.com/auth/cloud-platform",
61975	//     "https://www.googleapis.com/auth/compute"
61976	//   ]
61977	// }
61978
61979}
61980
61981// method id "compute.regionInstanceGroupManagers.setInstanceTemplate":
61982
61983type RegionInstanceGroupManagersSetInstanceTemplateCall struct {
61984	s                                             *Service
61985	project                                       string
61986	region                                        string
61987	instanceGroupManager                          string
61988	regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest
61989	urlParams_                                    gensupport.URLParams
61990	ctx_                                          context.Context
61991	header_                                       http.Header
61992}
61993
61994// SetInstanceTemplate: Sets the instance template to use when creating
61995// new instances or recreating instances in this group. Existing
61996// instances are not affected.
61997func (r *RegionInstanceGroupManagersService) SetInstanceTemplate(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest) *RegionInstanceGroupManagersSetInstanceTemplateCall {
61998	c := &RegionInstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61999	c.project = project
62000	c.region = region
62001	c.instanceGroupManager = instanceGroupManager
62002	c.regioninstancegroupmanagerssettemplaterequest = regioninstancegroupmanagerssettemplaterequest
62003	return c
62004}
62005
62006// RequestId sets the optional parameter "requestId": An optional
62007// request ID to identify requests. Specify a unique request ID so that
62008// if you must retry your request, the server will know to ignore the
62009// request if it has already been completed.
62010//
62011// For example, consider a situation where you make an initial request
62012// and the request times out. If you make the request again with the
62013// same request ID, the server can check if original operation with the
62014// same request ID was received, and if so, will ignore the second
62015// request. This prevents clients from accidentally creating duplicate
62016// commitments.
62017//
62018// The request ID must be a valid UUID with the exception that zero UUID
62019// is not supported (00000000-0000-0000-0000-000000000000).
62020func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *RegionInstanceGroupManagersSetInstanceTemplateCall {
62021	c.urlParams_.Set("requestId", requestId)
62022	return c
62023}
62024
62025// Fields allows partial responses to be retrieved. See
62026// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62027// for more information.
62028func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetInstanceTemplateCall {
62029	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62030	return c
62031}
62032
62033// Context sets the context to be used in this call's Do method. Any
62034// pending HTTP request will be aborted if the provided context is
62035// canceled.
62036func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetInstanceTemplateCall {
62037	c.ctx_ = ctx
62038	return c
62039}
62040
62041// Header returns an http.Header that can be modified by the caller to
62042// add HTTP headers to the request.
62043func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
62044	if c.header_ == nil {
62045		c.header_ = make(http.Header)
62046	}
62047	return c.header_
62048}
62049
62050func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
62051	reqHeaders := make(http.Header)
62052	for k, v := range c.header_ {
62053		reqHeaders[k] = v
62054	}
62055	reqHeaders.Set("User-Agent", c.s.userAgent())
62056	var body io.Reader = nil
62057	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettemplaterequest)
62058	if err != nil {
62059		return nil, err
62060	}
62061	reqHeaders.Set("Content-Type", "application/json")
62062	c.urlParams_.Set("alt", alt)
62063	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
62064	urls += "?" + c.urlParams_.Encode()
62065	req, _ := http.NewRequest("POST", urls, body)
62066	req.Header = reqHeaders
62067	googleapi.Expand(req.URL, map[string]string{
62068		"project":              c.project,
62069		"region":               c.region,
62070		"instanceGroupManager": c.instanceGroupManager,
62071	})
62072	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62073}
62074
62075// Do executes the "compute.regionInstanceGroupManagers.setInstanceTemplate" call.
62076// Exactly one of *Operation or error will be non-nil. Any non-2xx
62077// status code is an error. Response headers are in either
62078// *Operation.ServerResponse.Header or (if a response was returned at
62079// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62080// to check whether the returned error was because
62081// http.StatusNotModified was returned.
62082func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62083	gensupport.SetOptions(c.urlParams_, opts...)
62084	res, err := c.doRequest("json")
62085	if res != nil && res.StatusCode == http.StatusNotModified {
62086		if res.Body != nil {
62087			res.Body.Close()
62088		}
62089		return nil, &googleapi.Error{
62090			Code:   res.StatusCode,
62091			Header: res.Header,
62092		}
62093	}
62094	if err != nil {
62095		return nil, err
62096	}
62097	defer googleapi.CloseBody(res)
62098	if err := googleapi.CheckResponse(res); err != nil {
62099		return nil, err
62100	}
62101	ret := &Operation{
62102		ServerResponse: googleapi.ServerResponse{
62103			Header:         res.Header,
62104			HTTPStatusCode: res.StatusCode,
62105		},
62106	}
62107	target := &ret
62108	if err := gensupport.DecodeResponse(target, res); err != nil {
62109		return nil, err
62110	}
62111	return ret, nil
62112	// {
62113	//   "description": "Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected.",
62114	//   "httpMethod": "POST",
62115	//   "id": "compute.regionInstanceGroupManagers.setInstanceTemplate",
62116	//   "parameterOrder": [
62117	//     "project",
62118	//     "region",
62119	//     "instanceGroupManager"
62120	//   ],
62121	//   "parameters": {
62122	//     "instanceGroupManager": {
62123	//       "description": "The name of the managed instance group.",
62124	//       "location": "path",
62125	//       "required": true,
62126	//       "type": "string"
62127	//     },
62128	//     "project": {
62129	//       "description": "Project ID for this request.",
62130	//       "location": "path",
62131	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62132	//       "required": true,
62133	//       "type": "string"
62134	//     },
62135	//     "region": {
62136	//       "description": "Name of the region scoping this request.",
62137	//       "location": "path",
62138	//       "required": true,
62139	//       "type": "string"
62140	//     },
62141	//     "requestId": {
62142	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62143	//       "location": "query",
62144	//       "type": "string"
62145	//     }
62146	//   },
62147	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
62148	//   "request": {
62149	//     "$ref": "RegionInstanceGroupManagersSetTemplateRequest"
62150	//   },
62151	//   "response": {
62152	//     "$ref": "Operation"
62153	//   },
62154	//   "scopes": [
62155	//     "https://www.googleapis.com/auth/cloud-platform",
62156	//     "https://www.googleapis.com/auth/compute"
62157	//   ]
62158	// }
62159
62160}
62161
62162// method id "compute.regionInstanceGroupManagers.setTargetPools":
62163
62164type RegionInstanceGroupManagersSetTargetPoolsCall struct {
62165	s                                                *Service
62166	project                                          string
62167	region                                           string
62168	instanceGroupManager                             string
62169	regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest
62170	urlParams_                                       gensupport.URLParams
62171	ctx_                                             context.Context
62172	header_                                          http.Header
62173}
62174
62175// SetTargetPools: Modifies the target pools to which all new instances
62176// in this group are assigned. Existing instances in the group are not
62177// affected.
62178func (r *RegionInstanceGroupManagersService) SetTargetPools(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest) *RegionInstanceGroupManagersSetTargetPoolsCall {
62179	c := &RegionInstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62180	c.project = project
62181	c.region = region
62182	c.instanceGroupManager = instanceGroupManager
62183	c.regioninstancegroupmanagerssettargetpoolsrequest = regioninstancegroupmanagerssettargetpoolsrequest
62184	return c
62185}
62186
62187// RequestId sets the optional parameter "requestId": An optional
62188// request ID to identify requests. Specify a unique request ID so that
62189// if you must retry your request, the server will know to ignore the
62190// request if it has already been completed.
62191//
62192// For example, consider a situation where you make an initial request
62193// and the request times out. If you make the request again with the
62194// same request ID, the server can check if original operation with the
62195// same request ID was received, and if so, will ignore the second
62196// request. This prevents clients from accidentally creating duplicate
62197// commitments.
62198//
62199// The request ID must be a valid UUID with the exception that zero UUID
62200// is not supported (00000000-0000-0000-0000-000000000000).
62201func (c *RegionInstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *RegionInstanceGroupManagersSetTargetPoolsCall {
62202	c.urlParams_.Set("requestId", requestId)
62203	return c
62204}
62205
62206// Fields allows partial responses to be retrieved. See
62207// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62208// for more information.
62209func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetTargetPoolsCall {
62210	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62211	return c
62212}
62213
62214// Context sets the context to be used in this call's Do method. Any
62215// pending HTTP request will be aborted if the provided context is
62216// canceled.
62217func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetTargetPoolsCall {
62218	c.ctx_ = ctx
62219	return c
62220}
62221
62222// Header returns an http.Header that can be modified by the caller to
62223// add HTTP headers to the request.
62224func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
62225	if c.header_ == nil {
62226		c.header_ = make(http.Header)
62227	}
62228	return c.header_
62229}
62230
62231func (c *RegionInstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
62232	reqHeaders := make(http.Header)
62233	for k, v := range c.header_ {
62234		reqHeaders[k] = v
62235	}
62236	reqHeaders.Set("User-Agent", c.s.userAgent())
62237	var body io.Reader = nil
62238	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettargetpoolsrequest)
62239	if err != nil {
62240		return nil, err
62241	}
62242	reqHeaders.Set("Content-Type", "application/json")
62243	c.urlParams_.Set("alt", alt)
62244	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
62245	urls += "?" + c.urlParams_.Encode()
62246	req, _ := http.NewRequest("POST", urls, body)
62247	req.Header = reqHeaders
62248	googleapi.Expand(req.URL, map[string]string{
62249		"project":              c.project,
62250		"region":               c.region,
62251		"instanceGroupManager": c.instanceGroupManager,
62252	})
62253	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62254}
62255
62256// Do executes the "compute.regionInstanceGroupManagers.setTargetPools" call.
62257// Exactly one of *Operation or error will be non-nil. Any non-2xx
62258// status code is an error. Response headers are in either
62259// *Operation.ServerResponse.Header or (if a response was returned at
62260// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62261// to check whether the returned error was because
62262// http.StatusNotModified was returned.
62263func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62264	gensupport.SetOptions(c.urlParams_, opts...)
62265	res, err := c.doRequest("json")
62266	if res != nil && res.StatusCode == http.StatusNotModified {
62267		if res.Body != nil {
62268			res.Body.Close()
62269		}
62270		return nil, &googleapi.Error{
62271			Code:   res.StatusCode,
62272			Header: res.Header,
62273		}
62274	}
62275	if err != nil {
62276		return nil, err
62277	}
62278	defer googleapi.CloseBody(res)
62279	if err := googleapi.CheckResponse(res); err != nil {
62280		return nil, err
62281	}
62282	ret := &Operation{
62283		ServerResponse: googleapi.ServerResponse{
62284			Header:         res.Header,
62285			HTTPStatusCode: res.StatusCode,
62286		},
62287	}
62288	target := &ret
62289	if err := gensupport.DecodeResponse(target, res); err != nil {
62290		return nil, err
62291	}
62292	return ret, nil
62293	// {
62294	//   "description": "Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.",
62295	//   "httpMethod": "POST",
62296	//   "id": "compute.regionInstanceGroupManagers.setTargetPools",
62297	//   "parameterOrder": [
62298	//     "project",
62299	//     "region",
62300	//     "instanceGroupManager"
62301	//   ],
62302	//   "parameters": {
62303	//     "instanceGroupManager": {
62304	//       "description": "Name of the managed instance group.",
62305	//       "location": "path",
62306	//       "required": true,
62307	//       "type": "string"
62308	//     },
62309	//     "project": {
62310	//       "description": "Project ID for this request.",
62311	//       "location": "path",
62312	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62313	//       "required": true,
62314	//       "type": "string"
62315	//     },
62316	//     "region": {
62317	//       "description": "Name of the region scoping this request.",
62318	//       "location": "path",
62319	//       "required": true,
62320	//       "type": "string"
62321	//     },
62322	//     "requestId": {
62323	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62324	//       "location": "query",
62325	//       "type": "string"
62326	//     }
62327	//   },
62328	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
62329	//   "request": {
62330	//     "$ref": "RegionInstanceGroupManagersSetTargetPoolsRequest"
62331	//   },
62332	//   "response": {
62333	//     "$ref": "Operation"
62334	//   },
62335	//   "scopes": [
62336	//     "https://www.googleapis.com/auth/cloud-platform",
62337	//     "https://www.googleapis.com/auth/compute"
62338	//   ]
62339	// }
62340
62341}
62342
62343// method id "compute.regionInstanceGroups.get":
62344
62345type RegionInstanceGroupsGetCall struct {
62346	s             *Service
62347	project       string
62348	region        string
62349	instanceGroup string
62350	urlParams_    gensupport.URLParams
62351	ifNoneMatch_  string
62352	ctx_          context.Context
62353	header_       http.Header
62354}
62355
62356// Get: Returns the specified instance group resource.
62357func (r *RegionInstanceGroupsService) Get(project string, region string, instanceGroup string) *RegionInstanceGroupsGetCall {
62358	c := &RegionInstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62359	c.project = project
62360	c.region = region
62361	c.instanceGroup = instanceGroup
62362	return c
62363}
62364
62365// Fields allows partial responses to be retrieved. See
62366// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62367// for more information.
62368func (c *RegionInstanceGroupsGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsGetCall {
62369	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62370	return c
62371}
62372
62373// IfNoneMatch sets the optional parameter which makes the operation
62374// fail if the object's ETag matches the given value. This is useful for
62375// getting updates only after the object has changed since the last
62376// request. Use googleapi.IsNotModified to check whether the response
62377// error from Do is the result of In-None-Match.
62378func (c *RegionInstanceGroupsGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsGetCall {
62379	c.ifNoneMatch_ = entityTag
62380	return c
62381}
62382
62383// Context sets the context to be used in this call's Do method. Any
62384// pending HTTP request will be aborted if the provided context is
62385// canceled.
62386func (c *RegionInstanceGroupsGetCall) Context(ctx context.Context) *RegionInstanceGroupsGetCall {
62387	c.ctx_ = ctx
62388	return c
62389}
62390
62391// Header returns an http.Header that can be modified by the caller to
62392// add HTTP headers to the request.
62393func (c *RegionInstanceGroupsGetCall) Header() http.Header {
62394	if c.header_ == nil {
62395		c.header_ = make(http.Header)
62396	}
62397	return c.header_
62398}
62399
62400func (c *RegionInstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
62401	reqHeaders := make(http.Header)
62402	for k, v := range c.header_ {
62403		reqHeaders[k] = v
62404	}
62405	reqHeaders.Set("User-Agent", c.s.userAgent())
62406	if c.ifNoneMatch_ != "" {
62407		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62408	}
62409	var body io.Reader = nil
62410	c.urlParams_.Set("alt", alt)
62411	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}")
62412	urls += "?" + c.urlParams_.Encode()
62413	req, _ := http.NewRequest("GET", urls, body)
62414	req.Header = reqHeaders
62415	googleapi.Expand(req.URL, map[string]string{
62416		"project":       c.project,
62417		"region":        c.region,
62418		"instanceGroup": c.instanceGroup,
62419	})
62420	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62421}
62422
62423// Do executes the "compute.regionInstanceGroups.get" call.
62424// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
62425// status code is an error. Response headers are in either
62426// *InstanceGroup.ServerResponse.Header or (if a response was returned
62427// at all) in error.(*googleapi.Error).Header. Use
62428// googleapi.IsNotModified to check whether the returned error was
62429// because http.StatusNotModified was returned.
62430func (c *RegionInstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
62431	gensupport.SetOptions(c.urlParams_, opts...)
62432	res, err := c.doRequest("json")
62433	if res != nil && res.StatusCode == http.StatusNotModified {
62434		if res.Body != nil {
62435			res.Body.Close()
62436		}
62437		return nil, &googleapi.Error{
62438			Code:   res.StatusCode,
62439			Header: res.Header,
62440		}
62441	}
62442	if err != nil {
62443		return nil, err
62444	}
62445	defer googleapi.CloseBody(res)
62446	if err := googleapi.CheckResponse(res); err != nil {
62447		return nil, err
62448	}
62449	ret := &InstanceGroup{
62450		ServerResponse: googleapi.ServerResponse{
62451			Header:         res.Header,
62452			HTTPStatusCode: res.StatusCode,
62453		},
62454	}
62455	target := &ret
62456	if err := gensupport.DecodeResponse(target, res); err != nil {
62457		return nil, err
62458	}
62459	return ret, nil
62460	// {
62461	//   "description": "Returns the specified instance group resource.",
62462	//   "httpMethod": "GET",
62463	//   "id": "compute.regionInstanceGroups.get",
62464	//   "parameterOrder": [
62465	//     "project",
62466	//     "region",
62467	//     "instanceGroup"
62468	//   ],
62469	//   "parameters": {
62470	//     "instanceGroup": {
62471	//       "description": "Name of the instance group resource to return.",
62472	//       "location": "path",
62473	//       "required": true,
62474	//       "type": "string"
62475	//     },
62476	//     "project": {
62477	//       "description": "Project ID for this request.",
62478	//       "location": "path",
62479	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62480	//       "required": true,
62481	//       "type": "string"
62482	//     },
62483	//     "region": {
62484	//       "description": "Name of the region scoping this request.",
62485	//       "location": "path",
62486	//       "required": true,
62487	//       "type": "string"
62488	//     }
62489	//   },
62490	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}",
62491	//   "response": {
62492	//     "$ref": "InstanceGroup"
62493	//   },
62494	//   "scopes": [
62495	//     "https://www.googleapis.com/auth/cloud-platform",
62496	//     "https://www.googleapis.com/auth/compute",
62497	//     "https://www.googleapis.com/auth/compute.readonly"
62498	//   ]
62499	// }
62500
62501}
62502
62503// method id "compute.regionInstanceGroups.list":
62504
62505type RegionInstanceGroupsListCall struct {
62506	s            *Service
62507	project      string
62508	region       string
62509	urlParams_   gensupport.URLParams
62510	ifNoneMatch_ string
62511	ctx_         context.Context
62512	header_      http.Header
62513}
62514
62515// List: Retrieves the list of instance group resources contained within
62516// the specified region.
62517func (r *RegionInstanceGroupsService) List(project string, region string) *RegionInstanceGroupsListCall {
62518	c := &RegionInstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62519	c.project = project
62520	c.region = region
62521	return c
62522}
62523
62524// Filter sets the optional parameter "filter": Sets a filter
62525// {expression} for filtering listed resources. Your {expression} must
62526// be in the format: field_name comparison_string literal_string.
62527//
62528// The field_name is the name of the field you want to compare. Only
62529// atomic field types are supported (string, number, boolean). The
62530// comparison_string must be either eq (equals) or ne (not equals). The
62531// literal_string is the string value to filter to. The literal value
62532// must be valid for the type of field you are filtering by (string,
62533// number, boolean). For string fields, the literal value is interpreted
62534// as a regular expression using RE2 syntax. The literal value must
62535// match the entire field.
62536//
62537// For example, to filter for instances that do not have a name of
62538// example-instance, you would use name ne example-instance.
62539//
62540// You can filter on nested fields. For example, you could filter on
62541// instances that have set the scheduling.automaticRestart field to
62542// true. Use filtering on nested fields to take advantage of labels to
62543// organize and search for results based on label values.
62544//
62545// To filter on multiple expressions, provide each separate expression
62546// within parentheses. For example, (scheduling.automaticRestart eq
62547// true) (zone eq us-central1-f). Multiple expressions are treated as
62548// AND expressions, meaning that resources must match all expressions to
62549// pass the filters.
62550func (c *RegionInstanceGroupsListCall) Filter(filter string) *RegionInstanceGroupsListCall {
62551	c.urlParams_.Set("filter", filter)
62552	return c
62553}
62554
62555// MaxResults sets the optional parameter "maxResults": The maximum
62556// number of results per page that should be returned. If the number of
62557// available results is larger than maxResults, Compute Engine returns a
62558// nextPageToken that can be used to get the next page of results in
62559// subsequent list requests. Acceptable values are 0 to 500, inclusive.
62560// (Default: 500)
62561func (c *RegionInstanceGroupsListCall) MaxResults(maxResults int64) *RegionInstanceGroupsListCall {
62562	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
62563	return c
62564}
62565
62566// OrderBy sets the optional parameter "orderBy": Sorts list results by
62567// a certain order. By default, results are returned in alphanumerical
62568// order based on the resource name.
62569//
62570// You can also sort results in descending order based on the creation
62571// timestamp using orderBy="creationTimestamp desc". This sorts results
62572// based on the creationTimestamp field in reverse chronological order
62573// (newest result first). Use this to sort resources like operations so
62574// that the newest operation is returned first.
62575//
62576// Currently, only sorting by name or creationTimestamp desc is
62577// supported.
62578func (c *RegionInstanceGroupsListCall) OrderBy(orderBy string) *RegionInstanceGroupsListCall {
62579	c.urlParams_.Set("orderBy", orderBy)
62580	return c
62581}
62582
62583// PageToken sets the optional parameter "pageToken": Specifies a page
62584// token to use. Set pageToken to the nextPageToken returned by a
62585// previous list request to get the next page of results.
62586func (c *RegionInstanceGroupsListCall) PageToken(pageToken string) *RegionInstanceGroupsListCall {
62587	c.urlParams_.Set("pageToken", pageToken)
62588	return c
62589}
62590
62591// Fields allows partial responses to be retrieved. See
62592// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62593// for more information.
62594func (c *RegionInstanceGroupsListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListCall {
62595	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62596	return c
62597}
62598
62599// IfNoneMatch sets the optional parameter which makes the operation
62600// fail if the object's ETag matches the given value. This is useful for
62601// getting updates only after the object has changed since the last
62602// request. Use googleapi.IsNotModified to check whether the response
62603// error from Do is the result of In-None-Match.
62604func (c *RegionInstanceGroupsListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsListCall {
62605	c.ifNoneMatch_ = entityTag
62606	return c
62607}
62608
62609// Context sets the context to be used in this call's Do method. Any
62610// pending HTTP request will be aborted if the provided context is
62611// canceled.
62612func (c *RegionInstanceGroupsListCall) Context(ctx context.Context) *RegionInstanceGroupsListCall {
62613	c.ctx_ = ctx
62614	return c
62615}
62616
62617// Header returns an http.Header that can be modified by the caller to
62618// add HTTP headers to the request.
62619func (c *RegionInstanceGroupsListCall) Header() http.Header {
62620	if c.header_ == nil {
62621		c.header_ = make(http.Header)
62622	}
62623	return c.header_
62624}
62625
62626func (c *RegionInstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
62627	reqHeaders := make(http.Header)
62628	for k, v := range c.header_ {
62629		reqHeaders[k] = v
62630	}
62631	reqHeaders.Set("User-Agent", c.s.userAgent())
62632	if c.ifNoneMatch_ != "" {
62633		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62634	}
62635	var body io.Reader = nil
62636	c.urlParams_.Set("alt", alt)
62637	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups")
62638	urls += "?" + c.urlParams_.Encode()
62639	req, _ := http.NewRequest("GET", urls, body)
62640	req.Header = reqHeaders
62641	googleapi.Expand(req.URL, map[string]string{
62642		"project": c.project,
62643		"region":  c.region,
62644	})
62645	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62646}
62647
62648// Do executes the "compute.regionInstanceGroups.list" call.
62649// Exactly one of *RegionInstanceGroupList or error will be non-nil. Any
62650// non-2xx status code is an error. Response headers are in either
62651// *RegionInstanceGroupList.ServerResponse.Header or (if a response was
62652// returned at all) in error.(*googleapi.Error).Header. Use
62653// googleapi.IsNotModified to check whether the returned error was
62654// because http.StatusNotModified was returned.
62655func (c *RegionInstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupList, error) {
62656	gensupport.SetOptions(c.urlParams_, opts...)
62657	res, err := c.doRequest("json")
62658	if res != nil && res.StatusCode == http.StatusNotModified {
62659		if res.Body != nil {
62660			res.Body.Close()
62661		}
62662		return nil, &googleapi.Error{
62663			Code:   res.StatusCode,
62664			Header: res.Header,
62665		}
62666	}
62667	if err != nil {
62668		return nil, err
62669	}
62670	defer googleapi.CloseBody(res)
62671	if err := googleapi.CheckResponse(res); err != nil {
62672		return nil, err
62673	}
62674	ret := &RegionInstanceGroupList{
62675		ServerResponse: googleapi.ServerResponse{
62676			Header:         res.Header,
62677			HTTPStatusCode: res.StatusCode,
62678		},
62679	}
62680	target := &ret
62681	if err := gensupport.DecodeResponse(target, res); err != nil {
62682		return nil, err
62683	}
62684	return ret, nil
62685	// {
62686	//   "description": "Retrieves the list of instance group resources contained within the specified region.",
62687	//   "httpMethod": "GET",
62688	//   "id": "compute.regionInstanceGroups.list",
62689	//   "parameterOrder": [
62690	//     "project",
62691	//     "region"
62692	//   ],
62693	//   "parameters": {
62694	//     "filter": {
62695	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
62696	//       "location": "query",
62697	//       "type": "string"
62698	//     },
62699	//     "maxResults": {
62700	//       "default": "500",
62701	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
62702	//       "format": "uint32",
62703	//       "location": "query",
62704	//       "minimum": "0",
62705	//       "type": "integer"
62706	//     },
62707	//     "orderBy": {
62708	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
62709	//       "location": "query",
62710	//       "type": "string"
62711	//     },
62712	//     "pageToken": {
62713	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
62714	//       "location": "query",
62715	//       "type": "string"
62716	//     },
62717	//     "project": {
62718	//       "description": "Project ID for this request.",
62719	//       "location": "path",
62720	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62721	//       "required": true,
62722	//       "type": "string"
62723	//     },
62724	//     "region": {
62725	//       "description": "Name of the region scoping this request.",
62726	//       "location": "path",
62727	//       "required": true,
62728	//       "type": "string"
62729	//     }
62730	//   },
62731	//   "path": "{project}/regions/{region}/instanceGroups",
62732	//   "response": {
62733	//     "$ref": "RegionInstanceGroupList"
62734	//   },
62735	//   "scopes": [
62736	//     "https://www.googleapis.com/auth/cloud-platform",
62737	//     "https://www.googleapis.com/auth/compute",
62738	//     "https://www.googleapis.com/auth/compute.readonly"
62739	//   ]
62740	// }
62741
62742}
62743
62744// Pages invokes f for each page of results.
62745// A non-nil error returned from f will halt the iteration.
62746// The provided context supersedes any context provided to the Context method.
62747func (c *RegionInstanceGroupsListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupList) error) error {
62748	c.ctx_ = ctx
62749	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
62750	for {
62751		x, err := c.Do()
62752		if err != nil {
62753			return err
62754		}
62755		if err := f(x); err != nil {
62756			return err
62757		}
62758		if x.NextPageToken == "" {
62759			return nil
62760		}
62761		c.PageToken(x.NextPageToken)
62762	}
62763}
62764
62765// method id "compute.regionInstanceGroups.listInstances":
62766
62767type RegionInstanceGroupsListInstancesCall struct {
62768	s                                        *Service
62769	project                                  string
62770	region                                   string
62771	instanceGroup                            string
62772	regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest
62773	urlParams_                               gensupport.URLParams
62774	ctx_                                     context.Context
62775	header_                                  http.Header
62776}
62777
62778// ListInstances: Lists the instances in the specified instance group
62779// and displays information about the named ports. Depending on the
62780// specified options, this method can list all instances or only the
62781// instances that are running.
62782func (r *RegionInstanceGroupsService) ListInstances(project string, region string, instanceGroup string, regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest) *RegionInstanceGroupsListInstancesCall {
62783	c := &RegionInstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62784	c.project = project
62785	c.region = region
62786	c.instanceGroup = instanceGroup
62787	c.regioninstancegroupslistinstancesrequest = regioninstancegroupslistinstancesrequest
62788	return c
62789}
62790
62791// Filter sets the optional parameter "filter": Sets a filter
62792// {expression} for filtering listed resources. Your {expression} must
62793// be in the format: field_name comparison_string literal_string.
62794//
62795// The field_name is the name of the field you want to compare. Only
62796// atomic field types are supported (string, number, boolean). The
62797// comparison_string must be either eq (equals) or ne (not equals). The
62798// literal_string is the string value to filter to. The literal value
62799// must be valid for the type of field you are filtering by (string,
62800// number, boolean). For string fields, the literal value is interpreted
62801// as a regular expression using RE2 syntax. The literal value must
62802// match the entire field.
62803//
62804// For example, to filter for instances that do not have a name of
62805// example-instance, you would use name ne example-instance.
62806//
62807// You can filter on nested fields. For example, you could filter on
62808// instances that have set the scheduling.automaticRestart field to
62809// true. Use filtering on nested fields to take advantage of labels to
62810// organize and search for results based on label values.
62811//
62812// To filter on multiple expressions, provide each separate expression
62813// within parentheses. For example, (scheduling.automaticRestart eq
62814// true) (zone eq us-central1-f). Multiple expressions are treated as
62815// AND expressions, meaning that resources must match all expressions to
62816// pass the filters.
62817func (c *RegionInstanceGroupsListInstancesCall) Filter(filter string) *RegionInstanceGroupsListInstancesCall {
62818	c.urlParams_.Set("filter", filter)
62819	return c
62820}
62821
62822// MaxResults sets the optional parameter "maxResults": The maximum
62823// number of results per page that should be returned. If the number of
62824// available results is larger than maxResults, Compute Engine returns a
62825// nextPageToken that can be used to get the next page of results in
62826// subsequent list requests. Acceptable values are 0 to 500, inclusive.
62827// (Default: 500)
62828func (c *RegionInstanceGroupsListInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupsListInstancesCall {
62829	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
62830	return c
62831}
62832
62833// OrderBy sets the optional parameter "orderBy": Sorts list results by
62834// a certain order. By default, results are returned in alphanumerical
62835// order based on the resource name.
62836//
62837// You can also sort results in descending order based on the creation
62838// timestamp using orderBy="creationTimestamp desc". This sorts results
62839// based on the creationTimestamp field in reverse chronological order
62840// (newest result first). Use this to sort resources like operations so
62841// that the newest operation is returned first.
62842//
62843// Currently, only sorting by name or creationTimestamp desc is
62844// supported.
62845func (c *RegionInstanceGroupsListInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupsListInstancesCall {
62846	c.urlParams_.Set("orderBy", orderBy)
62847	return c
62848}
62849
62850// PageToken sets the optional parameter "pageToken": Specifies a page
62851// token to use. Set pageToken to the nextPageToken returned by a
62852// previous list request to get the next page of results.
62853func (c *RegionInstanceGroupsListInstancesCall) PageToken(pageToken string) *RegionInstanceGroupsListInstancesCall {
62854	c.urlParams_.Set("pageToken", pageToken)
62855	return c
62856}
62857
62858// Fields allows partial responses to be retrieved. See
62859// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62860// for more information.
62861func (c *RegionInstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListInstancesCall {
62862	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62863	return c
62864}
62865
62866// Context sets the context to be used in this call's Do method. Any
62867// pending HTTP request will be aborted if the provided context is
62868// canceled.
62869func (c *RegionInstanceGroupsListInstancesCall) Context(ctx context.Context) *RegionInstanceGroupsListInstancesCall {
62870	c.ctx_ = ctx
62871	return c
62872}
62873
62874// Header returns an http.Header that can be modified by the caller to
62875// add HTTP headers to the request.
62876func (c *RegionInstanceGroupsListInstancesCall) Header() http.Header {
62877	if c.header_ == nil {
62878		c.header_ = make(http.Header)
62879	}
62880	return c.header_
62881}
62882
62883func (c *RegionInstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
62884	reqHeaders := make(http.Header)
62885	for k, v := range c.header_ {
62886		reqHeaders[k] = v
62887	}
62888	reqHeaders.Set("User-Agent", c.s.userAgent())
62889	var body io.Reader = nil
62890	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupslistinstancesrequest)
62891	if err != nil {
62892		return nil, err
62893	}
62894	reqHeaders.Set("Content-Type", "application/json")
62895	c.urlParams_.Set("alt", alt)
62896	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances")
62897	urls += "?" + c.urlParams_.Encode()
62898	req, _ := http.NewRequest("POST", urls, body)
62899	req.Header = reqHeaders
62900	googleapi.Expand(req.URL, map[string]string{
62901		"project":       c.project,
62902		"region":        c.region,
62903		"instanceGroup": c.instanceGroup,
62904	})
62905	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62906}
62907
62908// Do executes the "compute.regionInstanceGroups.listInstances" call.
62909// Exactly one of *RegionInstanceGroupsListInstances or error will be
62910// non-nil. Any non-2xx status code is an error. Response headers are in
62911// either *RegionInstanceGroupsListInstances.ServerResponse.Header or
62912// (if a response was returned at all) in
62913// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
62914// whether the returned error was because http.StatusNotModified was
62915// returned.
62916func (c *RegionInstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupsListInstances, error) {
62917	gensupport.SetOptions(c.urlParams_, opts...)
62918	res, err := c.doRequest("json")
62919	if res != nil && res.StatusCode == http.StatusNotModified {
62920		if res.Body != nil {
62921			res.Body.Close()
62922		}
62923		return nil, &googleapi.Error{
62924			Code:   res.StatusCode,
62925			Header: res.Header,
62926		}
62927	}
62928	if err != nil {
62929		return nil, err
62930	}
62931	defer googleapi.CloseBody(res)
62932	if err := googleapi.CheckResponse(res); err != nil {
62933		return nil, err
62934	}
62935	ret := &RegionInstanceGroupsListInstances{
62936		ServerResponse: googleapi.ServerResponse{
62937			Header:         res.Header,
62938			HTTPStatusCode: res.StatusCode,
62939		},
62940	}
62941	target := &ret
62942	if err := gensupport.DecodeResponse(target, res); err != nil {
62943		return nil, err
62944	}
62945	return ret, nil
62946	// {
62947	//   "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.",
62948	//   "httpMethod": "POST",
62949	//   "id": "compute.regionInstanceGroups.listInstances",
62950	//   "parameterOrder": [
62951	//     "project",
62952	//     "region",
62953	//     "instanceGroup"
62954	//   ],
62955	//   "parameters": {
62956	//     "filter": {
62957	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
62958	//       "location": "query",
62959	//       "type": "string"
62960	//     },
62961	//     "instanceGroup": {
62962	//       "description": "Name of the regional instance group for which we want to list the instances.",
62963	//       "location": "path",
62964	//       "required": true,
62965	//       "type": "string"
62966	//     },
62967	//     "maxResults": {
62968	//       "default": "500",
62969	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
62970	//       "format": "uint32",
62971	//       "location": "query",
62972	//       "minimum": "0",
62973	//       "type": "integer"
62974	//     },
62975	//     "orderBy": {
62976	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
62977	//       "location": "query",
62978	//       "type": "string"
62979	//     },
62980	//     "pageToken": {
62981	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
62982	//       "location": "query",
62983	//       "type": "string"
62984	//     },
62985	//     "project": {
62986	//       "description": "Project ID for this request.",
62987	//       "location": "path",
62988	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62989	//       "required": true,
62990	//       "type": "string"
62991	//     },
62992	//     "region": {
62993	//       "description": "Name of the region scoping this request.",
62994	//       "location": "path",
62995	//       "required": true,
62996	//       "type": "string"
62997	//     }
62998	//   },
62999	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances",
63000	//   "request": {
63001	//     "$ref": "RegionInstanceGroupsListInstancesRequest"
63002	//   },
63003	//   "response": {
63004	//     "$ref": "RegionInstanceGroupsListInstances"
63005	//   },
63006	//   "scopes": [
63007	//     "https://www.googleapis.com/auth/cloud-platform",
63008	//     "https://www.googleapis.com/auth/compute",
63009	//     "https://www.googleapis.com/auth/compute.readonly"
63010	//   ]
63011	// }
63012
63013}
63014
63015// Pages invokes f for each page of results.
63016// A non-nil error returned from f will halt the iteration.
63017// The provided context supersedes any context provided to the Context method.
63018func (c *RegionInstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupsListInstances) error) error {
63019	c.ctx_ = ctx
63020	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
63021	for {
63022		x, err := c.Do()
63023		if err != nil {
63024			return err
63025		}
63026		if err := f(x); err != nil {
63027			return err
63028		}
63029		if x.NextPageToken == "" {
63030			return nil
63031		}
63032		c.PageToken(x.NextPageToken)
63033	}
63034}
63035
63036// method id "compute.regionInstanceGroups.setNamedPorts":
63037
63038type RegionInstanceGroupsSetNamedPortsCall struct {
63039	s                                        *Service
63040	project                                  string
63041	region                                   string
63042	instanceGroup                            string
63043	regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest
63044	urlParams_                               gensupport.URLParams
63045	ctx_                                     context.Context
63046	header_                                  http.Header
63047}
63048
63049// SetNamedPorts: Sets the named ports for the specified regional
63050// instance group.
63051func (r *RegionInstanceGroupsService) SetNamedPorts(project string, region string, instanceGroup string, regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest) *RegionInstanceGroupsSetNamedPortsCall {
63052	c := &RegionInstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63053	c.project = project
63054	c.region = region
63055	c.instanceGroup = instanceGroup
63056	c.regioninstancegroupssetnamedportsrequest = regioninstancegroupssetnamedportsrequest
63057	return c
63058}
63059
63060// RequestId sets the optional parameter "requestId": An optional
63061// request ID to identify requests. Specify a unique request ID so that
63062// if you must retry your request, the server will know to ignore the
63063// request if it has already been completed.
63064//
63065// For example, consider a situation where you make an initial request
63066// and the request times out. If you make the request again with the
63067// same request ID, the server can check if original operation with the
63068// same request ID was received, and if so, will ignore the second
63069// request. This prevents clients from accidentally creating duplicate
63070// commitments.
63071//
63072// The request ID must be a valid UUID with the exception that zero UUID
63073// is not supported (00000000-0000-0000-0000-000000000000).
63074func (c *RegionInstanceGroupsSetNamedPortsCall) RequestId(requestId string) *RegionInstanceGroupsSetNamedPortsCall {
63075	c.urlParams_.Set("requestId", requestId)
63076	return c
63077}
63078
63079// Fields allows partial responses to be retrieved. See
63080// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63081// for more information.
63082func (c *RegionInstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsSetNamedPortsCall {
63083	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63084	return c
63085}
63086
63087// Context sets the context to be used in this call's Do method. Any
63088// pending HTTP request will be aborted if the provided context is
63089// canceled.
63090func (c *RegionInstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *RegionInstanceGroupsSetNamedPortsCall {
63091	c.ctx_ = ctx
63092	return c
63093}
63094
63095// Header returns an http.Header that can be modified by the caller to
63096// add HTTP headers to the request.
63097func (c *RegionInstanceGroupsSetNamedPortsCall) Header() http.Header {
63098	if c.header_ == nil {
63099		c.header_ = make(http.Header)
63100	}
63101	return c.header_
63102}
63103
63104func (c *RegionInstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
63105	reqHeaders := make(http.Header)
63106	for k, v := range c.header_ {
63107		reqHeaders[k] = v
63108	}
63109	reqHeaders.Set("User-Agent", c.s.userAgent())
63110	var body io.Reader = nil
63111	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupssetnamedportsrequest)
63112	if err != nil {
63113		return nil, err
63114	}
63115	reqHeaders.Set("Content-Type", "application/json")
63116	c.urlParams_.Set("alt", alt)
63117	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts")
63118	urls += "?" + c.urlParams_.Encode()
63119	req, _ := http.NewRequest("POST", urls, body)
63120	req.Header = reqHeaders
63121	googleapi.Expand(req.URL, map[string]string{
63122		"project":       c.project,
63123		"region":        c.region,
63124		"instanceGroup": c.instanceGroup,
63125	})
63126	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63127}
63128
63129// Do executes the "compute.regionInstanceGroups.setNamedPorts" call.
63130// Exactly one of *Operation or error will be non-nil. Any non-2xx
63131// status code is an error. Response headers are in either
63132// *Operation.ServerResponse.Header or (if a response was returned at
63133// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63134// to check whether the returned error was because
63135// http.StatusNotModified was returned.
63136func (c *RegionInstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63137	gensupport.SetOptions(c.urlParams_, opts...)
63138	res, err := c.doRequest("json")
63139	if res != nil && res.StatusCode == http.StatusNotModified {
63140		if res.Body != nil {
63141			res.Body.Close()
63142		}
63143		return nil, &googleapi.Error{
63144			Code:   res.StatusCode,
63145			Header: res.Header,
63146		}
63147	}
63148	if err != nil {
63149		return nil, err
63150	}
63151	defer googleapi.CloseBody(res)
63152	if err := googleapi.CheckResponse(res); err != nil {
63153		return nil, err
63154	}
63155	ret := &Operation{
63156		ServerResponse: googleapi.ServerResponse{
63157			Header:         res.Header,
63158			HTTPStatusCode: res.StatusCode,
63159		},
63160	}
63161	target := &ret
63162	if err := gensupport.DecodeResponse(target, res); err != nil {
63163		return nil, err
63164	}
63165	return ret, nil
63166	// {
63167	//   "description": "Sets the named ports for the specified regional instance group.",
63168	//   "httpMethod": "POST",
63169	//   "id": "compute.regionInstanceGroups.setNamedPorts",
63170	//   "parameterOrder": [
63171	//     "project",
63172	//     "region",
63173	//     "instanceGroup"
63174	//   ],
63175	//   "parameters": {
63176	//     "instanceGroup": {
63177	//       "description": "The name of the regional instance group where the named ports are updated.",
63178	//       "location": "path",
63179	//       "required": true,
63180	//       "type": "string"
63181	//     },
63182	//     "project": {
63183	//       "description": "Project ID for this request.",
63184	//       "location": "path",
63185	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63186	//       "required": true,
63187	//       "type": "string"
63188	//     },
63189	//     "region": {
63190	//       "description": "Name of the region scoping this request.",
63191	//       "location": "path",
63192	//       "required": true,
63193	//       "type": "string"
63194	//     },
63195	//     "requestId": {
63196	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63197	//       "location": "query",
63198	//       "type": "string"
63199	//     }
63200	//   },
63201	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts",
63202	//   "request": {
63203	//     "$ref": "RegionInstanceGroupsSetNamedPortsRequest"
63204	//   },
63205	//   "response": {
63206	//     "$ref": "Operation"
63207	//   },
63208	//   "scopes": [
63209	//     "https://www.googleapis.com/auth/cloud-platform",
63210	//     "https://www.googleapis.com/auth/compute"
63211	//   ]
63212	// }
63213
63214}
63215
63216// method id "compute.regionOperations.delete":
63217
63218type RegionOperationsDeleteCall struct {
63219	s          *Service
63220	project    string
63221	region     string
63222	operation  string
63223	urlParams_ gensupport.URLParams
63224	ctx_       context.Context
63225	header_    http.Header
63226}
63227
63228// Delete: Deletes the specified region-specific Operations resource.
63229// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/delete
63230func (r *RegionOperationsService) Delete(project string, region string, operation string) *RegionOperationsDeleteCall {
63231	c := &RegionOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63232	c.project = project
63233	c.region = region
63234	c.operation = operation
63235	return c
63236}
63237
63238// Fields allows partial responses to be retrieved. See
63239// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63240// for more information.
63241func (c *RegionOperationsDeleteCall) Fields(s ...googleapi.Field) *RegionOperationsDeleteCall {
63242	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63243	return c
63244}
63245
63246// Context sets the context to be used in this call's Do method. Any
63247// pending HTTP request will be aborted if the provided context is
63248// canceled.
63249func (c *RegionOperationsDeleteCall) Context(ctx context.Context) *RegionOperationsDeleteCall {
63250	c.ctx_ = ctx
63251	return c
63252}
63253
63254// Header returns an http.Header that can be modified by the caller to
63255// add HTTP headers to the request.
63256func (c *RegionOperationsDeleteCall) Header() http.Header {
63257	if c.header_ == nil {
63258		c.header_ = make(http.Header)
63259	}
63260	return c.header_
63261}
63262
63263func (c *RegionOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
63264	reqHeaders := make(http.Header)
63265	for k, v := range c.header_ {
63266		reqHeaders[k] = v
63267	}
63268	reqHeaders.Set("User-Agent", c.s.userAgent())
63269	var body io.Reader = nil
63270	c.urlParams_.Set("alt", alt)
63271	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}")
63272	urls += "?" + c.urlParams_.Encode()
63273	req, _ := http.NewRequest("DELETE", urls, body)
63274	req.Header = reqHeaders
63275	googleapi.Expand(req.URL, map[string]string{
63276		"project":   c.project,
63277		"region":    c.region,
63278		"operation": c.operation,
63279	})
63280	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63281}
63282
63283// Do executes the "compute.regionOperations.delete" call.
63284func (c *RegionOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
63285	gensupport.SetOptions(c.urlParams_, opts...)
63286	res, err := c.doRequest("json")
63287	if err != nil {
63288		return err
63289	}
63290	defer googleapi.CloseBody(res)
63291	if err := googleapi.CheckResponse(res); err != nil {
63292		return err
63293	}
63294	return nil
63295	// {
63296	//   "description": "Deletes the specified region-specific Operations resource.",
63297	//   "httpMethod": "DELETE",
63298	//   "id": "compute.regionOperations.delete",
63299	//   "parameterOrder": [
63300	//     "project",
63301	//     "region",
63302	//     "operation"
63303	//   ],
63304	//   "parameters": {
63305	//     "operation": {
63306	//       "description": "Name of the Operations resource to delete.",
63307	//       "location": "path",
63308	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
63309	//       "required": true,
63310	//       "type": "string"
63311	//     },
63312	//     "project": {
63313	//       "description": "Project ID for this request.",
63314	//       "location": "path",
63315	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63316	//       "required": true,
63317	//       "type": "string"
63318	//     },
63319	//     "region": {
63320	//       "description": "Name of the region for this request.",
63321	//       "location": "path",
63322	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
63323	//       "required": true,
63324	//       "type": "string"
63325	//     }
63326	//   },
63327	//   "path": "{project}/regions/{region}/operations/{operation}",
63328	//   "scopes": [
63329	//     "https://www.googleapis.com/auth/cloud-platform",
63330	//     "https://www.googleapis.com/auth/compute"
63331	//   ]
63332	// }
63333
63334}
63335
63336// method id "compute.regionOperations.get":
63337
63338type RegionOperationsGetCall struct {
63339	s            *Service
63340	project      string
63341	region       string
63342	operation    string
63343	urlParams_   gensupport.URLParams
63344	ifNoneMatch_ string
63345	ctx_         context.Context
63346	header_      http.Header
63347}
63348
63349// Get: Retrieves the specified region-specific Operations resource.
63350// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/get
63351func (r *RegionOperationsService) Get(project string, region string, operation string) *RegionOperationsGetCall {
63352	c := &RegionOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63353	c.project = project
63354	c.region = region
63355	c.operation = operation
63356	return c
63357}
63358
63359// Fields allows partial responses to be retrieved. See
63360// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63361// for more information.
63362func (c *RegionOperationsGetCall) Fields(s ...googleapi.Field) *RegionOperationsGetCall {
63363	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63364	return c
63365}
63366
63367// IfNoneMatch sets the optional parameter which makes the operation
63368// fail if the object's ETag matches the given value. This is useful for
63369// getting updates only after the object has changed since the last
63370// request. Use googleapi.IsNotModified to check whether the response
63371// error from Do is the result of In-None-Match.
63372func (c *RegionOperationsGetCall) IfNoneMatch(entityTag string) *RegionOperationsGetCall {
63373	c.ifNoneMatch_ = entityTag
63374	return c
63375}
63376
63377// Context sets the context to be used in this call's Do method. Any
63378// pending HTTP request will be aborted if the provided context is
63379// canceled.
63380func (c *RegionOperationsGetCall) Context(ctx context.Context) *RegionOperationsGetCall {
63381	c.ctx_ = ctx
63382	return c
63383}
63384
63385// Header returns an http.Header that can be modified by the caller to
63386// add HTTP headers to the request.
63387func (c *RegionOperationsGetCall) Header() http.Header {
63388	if c.header_ == nil {
63389		c.header_ = make(http.Header)
63390	}
63391	return c.header_
63392}
63393
63394func (c *RegionOperationsGetCall) doRequest(alt string) (*http.Response, error) {
63395	reqHeaders := make(http.Header)
63396	for k, v := range c.header_ {
63397		reqHeaders[k] = v
63398	}
63399	reqHeaders.Set("User-Agent", c.s.userAgent())
63400	if c.ifNoneMatch_ != "" {
63401		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63402	}
63403	var body io.Reader = nil
63404	c.urlParams_.Set("alt", alt)
63405	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}")
63406	urls += "?" + c.urlParams_.Encode()
63407	req, _ := http.NewRequest("GET", urls, body)
63408	req.Header = reqHeaders
63409	googleapi.Expand(req.URL, map[string]string{
63410		"project":   c.project,
63411		"region":    c.region,
63412		"operation": c.operation,
63413	})
63414	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63415}
63416
63417// Do executes the "compute.regionOperations.get" call.
63418// Exactly one of *Operation or error will be non-nil. Any non-2xx
63419// status code is an error. Response headers are in either
63420// *Operation.ServerResponse.Header or (if a response was returned at
63421// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63422// to check whether the returned error was because
63423// http.StatusNotModified was returned.
63424func (c *RegionOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63425	gensupport.SetOptions(c.urlParams_, opts...)
63426	res, err := c.doRequest("json")
63427	if res != nil && res.StatusCode == http.StatusNotModified {
63428		if res.Body != nil {
63429			res.Body.Close()
63430		}
63431		return nil, &googleapi.Error{
63432			Code:   res.StatusCode,
63433			Header: res.Header,
63434		}
63435	}
63436	if err != nil {
63437		return nil, err
63438	}
63439	defer googleapi.CloseBody(res)
63440	if err := googleapi.CheckResponse(res); err != nil {
63441		return nil, err
63442	}
63443	ret := &Operation{
63444		ServerResponse: googleapi.ServerResponse{
63445			Header:         res.Header,
63446			HTTPStatusCode: res.StatusCode,
63447		},
63448	}
63449	target := &ret
63450	if err := gensupport.DecodeResponse(target, res); err != nil {
63451		return nil, err
63452	}
63453	return ret, nil
63454	// {
63455	//   "description": "Retrieves the specified region-specific Operations resource.",
63456	//   "httpMethod": "GET",
63457	//   "id": "compute.regionOperations.get",
63458	//   "parameterOrder": [
63459	//     "project",
63460	//     "region",
63461	//     "operation"
63462	//   ],
63463	//   "parameters": {
63464	//     "operation": {
63465	//       "description": "Name of the Operations resource to return.",
63466	//       "location": "path",
63467	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
63468	//       "required": true,
63469	//       "type": "string"
63470	//     },
63471	//     "project": {
63472	//       "description": "Project ID for this request.",
63473	//       "location": "path",
63474	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63475	//       "required": true,
63476	//       "type": "string"
63477	//     },
63478	//     "region": {
63479	//       "description": "Name of the region for this request.",
63480	//       "location": "path",
63481	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
63482	//       "required": true,
63483	//       "type": "string"
63484	//     }
63485	//   },
63486	//   "path": "{project}/regions/{region}/operations/{operation}",
63487	//   "response": {
63488	//     "$ref": "Operation"
63489	//   },
63490	//   "scopes": [
63491	//     "https://www.googleapis.com/auth/cloud-platform",
63492	//     "https://www.googleapis.com/auth/compute",
63493	//     "https://www.googleapis.com/auth/compute.readonly"
63494	//   ]
63495	// }
63496
63497}
63498
63499// method id "compute.regionOperations.list":
63500
63501type RegionOperationsListCall struct {
63502	s            *Service
63503	project      string
63504	region       string
63505	urlParams_   gensupport.URLParams
63506	ifNoneMatch_ string
63507	ctx_         context.Context
63508	header_      http.Header
63509}
63510
63511// List: Retrieves a list of Operation resources contained within the
63512// specified region.
63513// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/list
63514func (r *RegionOperationsService) List(project string, region string) *RegionOperationsListCall {
63515	c := &RegionOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63516	c.project = project
63517	c.region = region
63518	return c
63519}
63520
63521// Filter sets the optional parameter "filter": Sets a filter
63522// {expression} for filtering listed resources. Your {expression} must
63523// be in the format: field_name comparison_string literal_string.
63524//
63525// The field_name is the name of the field you want to compare. Only
63526// atomic field types are supported (string, number, boolean). The
63527// comparison_string must be either eq (equals) or ne (not equals). The
63528// literal_string is the string value to filter to. The literal value
63529// must be valid for the type of field you are filtering by (string,
63530// number, boolean). For string fields, the literal value is interpreted
63531// as a regular expression using RE2 syntax. The literal value must
63532// match the entire field.
63533//
63534// For example, to filter for instances that do not have a name of
63535// example-instance, you would use name ne example-instance.
63536//
63537// You can filter on nested fields. For example, you could filter on
63538// instances that have set the scheduling.automaticRestart field to
63539// true. Use filtering on nested fields to take advantage of labels to
63540// organize and search for results based on label values.
63541//
63542// To filter on multiple expressions, provide each separate expression
63543// within parentheses. For example, (scheduling.automaticRestart eq
63544// true) (zone eq us-central1-f). Multiple expressions are treated as
63545// AND expressions, meaning that resources must match all expressions to
63546// pass the filters.
63547func (c *RegionOperationsListCall) Filter(filter string) *RegionOperationsListCall {
63548	c.urlParams_.Set("filter", filter)
63549	return c
63550}
63551
63552// MaxResults sets the optional parameter "maxResults": The maximum
63553// number of results per page that should be returned. If the number of
63554// available results is larger than maxResults, Compute Engine returns a
63555// nextPageToken that can be used to get the next page of results in
63556// subsequent list requests. Acceptable values are 0 to 500, inclusive.
63557// (Default: 500)
63558func (c *RegionOperationsListCall) MaxResults(maxResults int64) *RegionOperationsListCall {
63559	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
63560	return c
63561}
63562
63563// OrderBy sets the optional parameter "orderBy": Sorts list results by
63564// a certain order. By default, results are returned in alphanumerical
63565// order based on the resource name.
63566//
63567// You can also sort results in descending order based on the creation
63568// timestamp using orderBy="creationTimestamp desc". This sorts results
63569// based on the creationTimestamp field in reverse chronological order
63570// (newest result first). Use this to sort resources like operations so
63571// that the newest operation is returned first.
63572//
63573// Currently, only sorting by name or creationTimestamp desc is
63574// supported.
63575func (c *RegionOperationsListCall) OrderBy(orderBy string) *RegionOperationsListCall {
63576	c.urlParams_.Set("orderBy", orderBy)
63577	return c
63578}
63579
63580// PageToken sets the optional parameter "pageToken": Specifies a page
63581// token to use. Set pageToken to the nextPageToken returned by a
63582// previous list request to get the next page of results.
63583func (c *RegionOperationsListCall) PageToken(pageToken string) *RegionOperationsListCall {
63584	c.urlParams_.Set("pageToken", pageToken)
63585	return c
63586}
63587
63588// Fields allows partial responses to be retrieved. See
63589// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63590// for more information.
63591func (c *RegionOperationsListCall) Fields(s ...googleapi.Field) *RegionOperationsListCall {
63592	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63593	return c
63594}
63595
63596// IfNoneMatch sets the optional parameter which makes the operation
63597// fail if the object's ETag matches the given value. This is useful for
63598// getting updates only after the object has changed since the last
63599// request. Use googleapi.IsNotModified to check whether the response
63600// error from Do is the result of In-None-Match.
63601func (c *RegionOperationsListCall) IfNoneMatch(entityTag string) *RegionOperationsListCall {
63602	c.ifNoneMatch_ = entityTag
63603	return c
63604}
63605
63606// Context sets the context to be used in this call's Do method. Any
63607// pending HTTP request will be aborted if the provided context is
63608// canceled.
63609func (c *RegionOperationsListCall) Context(ctx context.Context) *RegionOperationsListCall {
63610	c.ctx_ = ctx
63611	return c
63612}
63613
63614// Header returns an http.Header that can be modified by the caller to
63615// add HTTP headers to the request.
63616func (c *RegionOperationsListCall) Header() http.Header {
63617	if c.header_ == nil {
63618		c.header_ = make(http.Header)
63619	}
63620	return c.header_
63621}
63622
63623func (c *RegionOperationsListCall) doRequest(alt string) (*http.Response, error) {
63624	reqHeaders := make(http.Header)
63625	for k, v := range c.header_ {
63626		reqHeaders[k] = v
63627	}
63628	reqHeaders.Set("User-Agent", c.s.userAgent())
63629	if c.ifNoneMatch_ != "" {
63630		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63631	}
63632	var body io.Reader = nil
63633	c.urlParams_.Set("alt", alt)
63634	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations")
63635	urls += "?" + c.urlParams_.Encode()
63636	req, _ := http.NewRequest("GET", urls, body)
63637	req.Header = reqHeaders
63638	googleapi.Expand(req.URL, map[string]string{
63639		"project": c.project,
63640		"region":  c.region,
63641	})
63642	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63643}
63644
63645// Do executes the "compute.regionOperations.list" call.
63646// Exactly one of *OperationList or error will be non-nil. Any non-2xx
63647// status code is an error. Response headers are in either
63648// *OperationList.ServerResponse.Header or (if a response was returned
63649// at all) in error.(*googleapi.Error).Header. Use
63650// googleapi.IsNotModified to check whether the returned error was
63651// because http.StatusNotModified was returned.
63652func (c *RegionOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
63653	gensupport.SetOptions(c.urlParams_, opts...)
63654	res, err := c.doRequest("json")
63655	if res != nil && res.StatusCode == http.StatusNotModified {
63656		if res.Body != nil {
63657			res.Body.Close()
63658		}
63659		return nil, &googleapi.Error{
63660			Code:   res.StatusCode,
63661			Header: res.Header,
63662		}
63663	}
63664	if err != nil {
63665		return nil, err
63666	}
63667	defer googleapi.CloseBody(res)
63668	if err := googleapi.CheckResponse(res); err != nil {
63669		return nil, err
63670	}
63671	ret := &OperationList{
63672		ServerResponse: googleapi.ServerResponse{
63673			Header:         res.Header,
63674			HTTPStatusCode: res.StatusCode,
63675		},
63676	}
63677	target := &ret
63678	if err := gensupport.DecodeResponse(target, res); err != nil {
63679		return nil, err
63680	}
63681	return ret, nil
63682	// {
63683	//   "description": "Retrieves a list of Operation resources contained within the specified region.",
63684	//   "httpMethod": "GET",
63685	//   "id": "compute.regionOperations.list",
63686	//   "parameterOrder": [
63687	//     "project",
63688	//     "region"
63689	//   ],
63690	//   "parameters": {
63691	//     "filter": {
63692	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
63693	//       "location": "query",
63694	//       "type": "string"
63695	//     },
63696	//     "maxResults": {
63697	//       "default": "500",
63698	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
63699	//       "format": "uint32",
63700	//       "location": "query",
63701	//       "minimum": "0",
63702	//       "type": "integer"
63703	//     },
63704	//     "orderBy": {
63705	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
63706	//       "location": "query",
63707	//       "type": "string"
63708	//     },
63709	//     "pageToken": {
63710	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
63711	//       "location": "query",
63712	//       "type": "string"
63713	//     },
63714	//     "project": {
63715	//       "description": "Project ID for this request.",
63716	//       "location": "path",
63717	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63718	//       "required": true,
63719	//       "type": "string"
63720	//     },
63721	//     "region": {
63722	//       "description": "Name of the region for this request.",
63723	//       "location": "path",
63724	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
63725	//       "required": true,
63726	//       "type": "string"
63727	//     }
63728	//   },
63729	//   "path": "{project}/regions/{region}/operations",
63730	//   "response": {
63731	//     "$ref": "OperationList"
63732	//   },
63733	//   "scopes": [
63734	//     "https://www.googleapis.com/auth/cloud-platform",
63735	//     "https://www.googleapis.com/auth/compute",
63736	//     "https://www.googleapis.com/auth/compute.readonly"
63737	//   ]
63738	// }
63739
63740}
63741
63742// Pages invokes f for each page of results.
63743// A non-nil error returned from f will halt the iteration.
63744// The provided context supersedes any context provided to the Context method.
63745func (c *RegionOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
63746	c.ctx_ = ctx
63747	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
63748	for {
63749		x, err := c.Do()
63750		if err != nil {
63751			return err
63752		}
63753		if err := f(x); err != nil {
63754			return err
63755		}
63756		if x.NextPageToken == "" {
63757			return nil
63758		}
63759		c.PageToken(x.NextPageToken)
63760	}
63761}
63762
63763// method id "compute.regions.get":
63764
63765type RegionsGetCall struct {
63766	s            *Service
63767	project      string
63768	region       string
63769	urlParams_   gensupport.URLParams
63770	ifNoneMatch_ string
63771	ctx_         context.Context
63772	header_      http.Header
63773}
63774
63775// Get: Returns the specified Region resource. Get a list of available
63776// regions by making a list() request.
63777// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/get
63778func (r *RegionsService) Get(project string, region string) *RegionsGetCall {
63779	c := &RegionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63780	c.project = project
63781	c.region = region
63782	return c
63783}
63784
63785// Fields allows partial responses to be retrieved. See
63786// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63787// for more information.
63788func (c *RegionsGetCall) Fields(s ...googleapi.Field) *RegionsGetCall {
63789	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63790	return c
63791}
63792
63793// IfNoneMatch sets the optional parameter which makes the operation
63794// fail if the object's ETag matches the given value. This is useful for
63795// getting updates only after the object has changed since the last
63796// request. Use googleapi.IsNotModified to check whether the response
63797// error from Do is the result of In-None-Match.
63798func (c *RegionsGetCall) IfNoneMatch(entityTag string) *RegionsGetCall {
63799	c.ifNoneMatch_ = entityTag
63800	return c
63801}
63802
63803// Context sets the context to be used in this call's Do method. Any
63804// pending HTTP request will be aborted if the provided context is
63805// canceled.
63806func (c *RegionsGetCall) Context(ctx context.Context) *RegionsGetCall {
63807	c.ctx_ = ctx
63808	return c
63809}
63810
63811// Header returns an http.Header that can be modified by the caller to
63812// add HTTP headers to the request.
63813func (c *RegionsGetCall) Header() http.Header {
63814	if c.header_ == nil {
63815		c.header_ = make(http.Header)
63816	}
63817	return c.header_
63818}
63819
63820func (c *RegionsGetCall) doRequest(alt string) (*http.Response, error) {
63821	reqHeaders := make(http.Header)
63822	for k, v := range c.header_ {
63823		reqHeaders[k] = v
63824	}
63825	reqHeaders.Set("User-Agent", c.s.userAgent())
63826	if c.ifNoneMatch_ != "" {
63827		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63828	}
63829	var body io.Reader = nil
63830	c.urlParams_.Set("alt", alt)
63831	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}")
63832	urls += "?" + c.urlParams_.Encode()
63833	req, _ := http.NewRequest("GET", urls, body)
63834	req.Header = reqHeaders
63835	googleapi.Expand(req.URL, map[string]string{
63836		"project": c.project,
63837		"region":  c.region,
63838	})
63839	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63840}
63841
63842// Do executes the "compute.regions.get" call.
63843// Exactly one of *Region or error will be non-nil. Any non-2xx status
63844// code is an error. Response headers are in either
63845// *Region.ServerResponse.Header or (if a response was returned at all)
63846// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
63847// check whether the returned error was because http.StatusNotModified
63848// was returned.
63849func (c *RegionsGetCall) Do(opts ...googleapi.CallOption) (*Region, error) {
63850	gensupport.SetOptions(c.urlParams_, opts...)
63851	res, err := c.doRequest("json")
63852	if res != nil && res.StatusCode == http.StatusNotModified {
63853		if res.Body != nil {
63854			res.Body.Close()
63855		}
63856		return nil, &googleapi.Error{
63857			Code:   res.StatusCode,
63858			Header: res.Header,
63859		}
63860	}
63861	if err != nil {
63862		return nil, err
63863	}
63864	defer googleapi.CloseBody(res)
63865	if err := googleapi.CheckResponse(res); err != nil {
63866		return nil, err
63867	}
63868	ret := &Region{
63869		ServerResponse: googleapi.ServerResponse{
63870			Header:         res.Header,
63871			HTTPStatusCode: res.StatusCode,
63872		},
63873	}
63874	target := &ret
63875	if err := gensupport.DecodeResponse(target, res); err != nil {
63876		return nil, err
63877	}
63878	return ret, nil
63879	// {
63880	//   "description": "Returns the specified Region resource. Get a list of available regions by making a list() request.",
63881	//   "httpMethod": "GET",
63882	//   "id": "compute.regions.get",
63883	//   "parameterOrder": [
63884	//     "project",
63885	//     "region"
63886	//   ],
63887	//   "parameters": {
63888	//     "project": {
63889	//       "description": "Project ID for this request.",
63890	//       "location": "path",
63891	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63892	//       "required": true,
63893	//       "type": "string"
63894	//     },
63895	//     "region": {
63896	//       "description": "Name of the region resource to return.",
63897	//       "location": "path",
63898	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
63899	//       "required": true,
63900	//       "type": "string"
63901	//     }
63902	//   },
63903	//   "path": "{project}/regions/{region}",
63904	//   "response": {
63905	//     "$ref": "Region"
63906	//   },
63907	//   "scopes": [
63908	//     "https://www.googleapis.com/auth/cloud-platform",
63909	//     "https://www.googleapis.com/auth/compute",
63910	//     "https://www.googleapis.com/auth/compute.readonly"
63911	//   ]
63912	// }
63913
63914}
63915
63916// method id "compute.regions.list":
63917
63918type RegionsListCall struct {
63919	s            *Service
63920	project      string
63921	urlParams_   gensupport.URLParams
63922	ifNoneMatch_ string
63923	ctx_         context.Context
63924	header_      http.Header
63925}
63926
63927// List: Retrieves the list of region resources available to the
63928// specified project.
63929// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/list
63930func (r *RegionsService) List(project string) *RegionsListCall {
63931	c := &RegionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63932	c.project = project
63933	return c
63934}
63935
63936// Filter sets the optional parameter "filter": Sets a filter
63937// {expression} for filtering listed resources. Your {expression} must
63938// be in the format: field_name comparison_string literal_string.
63939//
63940// The field_name is the name of the field you want to compare. Only
63941// atomic field types are supported (string, number, boolean). The
63942// comparison_string must be either eq (equals) or ne (not equals). The
63943// literal_string is the string value to filter to. The literal value
63944// must be valid for the type of field you are filtering by (string,
63945// number, boolean). For string fields, the literal value is interpreted
63946// as a regular expression using RE2 syntax. The literal value must
63947// match the entire field.
63948//
63949// For example, to filter for instances that do not have a name of
63950// example-instance, you would use name ne example-instance.
63951//
63952// You can filter on nested fields. For example, you could filter on
63953// instances that have set the scheduling.automaticRestart field to
63954// true. Use filtering on nested fields to take advantage of labels to
63955// organize and search for results based on label values.
63956//
63957// To filter on multiple expressions, provide each separate expression
63958// within parentheses. For example, (scheduling.automaticRestart eq
63959// true) (zone eq us-central1-f). Multiple expressions are treated as
63960// AND expressions, meaning that resources must match all expressions to
63961// pass the filters.
63962func (c *RegionsListCall) Filter(filter string) *RegionsListCall {
63963	c.urlParams_.Set("filter", filter)
63964	return c
63965}
63966
63967// MaxResults sets the optional parameter "maxResults": The maximum
63968// number of results per page that should be returned. If the number of
63969// available results is larger than maxResults, Compute Engine returns a
63970// nextPageToken that can be used to get the next page of results in
63971// subsequent list requests. Acceptable values are 0 to 500, inclusive.
63972// (Default: 500)
63973func (c *RegionsListCall) MaxResults(maxResults int64) *RegionsListCall {
63974	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
63975	return c
63976}
63977
63978// OrderBy sets the optional parameter "orderBy": Sorts list results by
63979// a certain order. By default, results are returned in alphanumerical
63980// order based on the resource name.
63981//
63982// You can also sort results in descending order based on the creation
63983// timestamp using orderBy="creationTimestamp desc". This sorts results
63984// based on the creationTimestamp field in reverse chronological order
63985// (newest result first). Use this to sort resources like operations so
63986// that the newest operation is returned first.
63987//
63988// Currently, only sorting by name or creationTimestamp desc is
63989// supported.
63990func (c *RegionsListCall) OrderBy(orderBy string) *RegionsListCall {
63991	c.urlParams_.Set("orderBy", orderBy)
63992	return c
63993}
63994
63995// PageToken sets the optional parameter "pageToken": Specifies a page
63996// token to use. Set pageToken to the nextPageToken returned by a
63997// previous list request to get the next page of results.
63998func (c *RegionsListCall) PageToken(pageToken string) *RegionsListCall {
63999	c.urlParams_.Set("pageToken", pageToken)
64000	return c
64001}
64002
64003// Fields allows partial responses to be retrieved. See
64004// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64005// for more information.
64006func (c *RegionsListCall) Fields(s ...googleapi.Field) *RegionsListCall {
64007	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64008	return c
64009}
64010
64011// IfNoneMatch sets the optional parameter which makes the operation
64012// fail if the object's ETag matches the given value. This is useful for
64013// getting updates only after the object has changed since the last
64014// request. Use googleapi.IsNotModified to check whether the response
64015// error from Do is the result of In-None-Match.
64016func (c *RegionsListCall) IfNoneMatch(entityTag string) *RegionsListCall {
64017	c.ifNoneMatch_ = entityTag
64018	return c
64019}
64020
64021// Context sets the context to be used in this call's Do method. Any
64022// pending HTTP request will be aborted if the provided context is
64023// canceled.
64024func (c *RegionsListCall) Context(ctx context.Context) *RegionsListCall {
64025	c.ctx_ = ctx
64026	return c
64027}
64028
64029// Header returns an http.Header that can be modified by the caller to
64030// add HTTP headers to the request.
64031func (c *RegionsListCall) Header() http.Header {
64032	if c.header_ == nil {
64033		c.header_ = make(http.Header)
64034	}
64035	return c.header_
64036}
64037
64038func (c *RegionsListCall) doRequest(alt string) (*http.Response, error) {
64039	reqHeaders := make(http.Header)
64040	for k, v := range c.header_ {
64041		reqHeaders[k] = v
64042	}
64043	reqHeaders.Set("User-Agent", c.s.userAgent())
64044	if c.ifNoneMatch_ != "" {
64045		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64046	}
64047	var body io.Reader = nil
64048	c.urlParams_.Set("alt", alt)
64049	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions")
64050	urls += "?" + c.urlParams_.Encode()
64051	req, _ := http.NewRequest("GET", urls, body)
64052	req.Header = reqHeaders
64053	googleapi.Expand(req.URL, map[string]string{
64054		"project": c.project,
64055	})
64056	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64057}
64058
64059// Do executes the "compute.regions.list" call.
64060// Exactly one of *RegionList or error will be non-nil. Any non-2xx
64061// status code is an error. Response headers are in either
64062// *RegionList.ServerResponse.Header or (if a response was returned at
64063// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64064// to check whether the returned error was because
64065// http.StatusNotModified was returned.
64066func (c *RegionsListCall) Do(opts ...googleapi.CallOption) (*RegionList, error) {
64067	gensupport.SetOptions(c.urlParams_, opts...)
64068	res, err := c.doRequest("json")
64069	if res != nil && res.StatusCode == http.StatusNotModified {
64070		if res.Body != nil {
64071			res.Body.Close()
64072		}
64073		return nil, &googleapi.Error{
64074			Code:   res.StatusCode,
64075			Header: res.Header,
64076		}
64077	}
64078	if err != nil {
64079		return nil, err
64080	}
64081	defer googleapi.CloseBody(res)
64082	if err := googleapi.CheckResponse(res); err != nil {
64083		return nil, err
64084	}
64085	ret := &RegionList{
64086		ServerResponse: googleapi.ServerResponse{
64087			Header:         res.Header,
64088			HTTPStatusCode: res.StatusCode,
64089		},
64090	}
64091	target := &ret
64092	if err := gensupport.DecodeResponse(target, res); err != nil {
64093		return nil, err
64094	}
64095	return ret, nil
64096	// {
64097	//   "description": "Retrieves the list of region resources available to the specified project.",
64098	//   "httpMethod": "GET",
64099	//   "id": "compute.regions.list",
64100	//   "parameterOrder": [
64101	//     "project"
64102	//   ],
64103	//   "parameters": {
64104	//     "filter": {
64105	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
64106	//       "location": "query",
64107	//       "type": "string"
64108	//     },
64109	//     "maxResults": {
64110	//       "default": "500",
64111	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
64112	//       "format": "uint32",
64113	//       "location": "query",
64114	//       "minimum": "0",
64115	//       "type": "integer"
64116	//     },
64117	//     "orderBy": {
64118	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
64119	//       "location": "query",
64120	//       "type": "string"
64121	//     },
64122	//     "pageToken": {
64123	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
64124	//       "location": "query",
64125	//       "type": "string"
64126	//     },
64127	//     "project": {
64128	//       "description": "Project ID for this request.",
64129	//       "location": "path",
64130	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64131	//       "required": true,
64132	//       "type": "string"
64133	//     }
64134	//   },
64135	//   "path": "{project}/regions",
64136	//   "response": {
64137	//     "$ref": "RegionList"
64138	//   },
64139	//   "scopes": [
64140	//     "https://www.googleapis.com/auth/cloud-platform",
64141	//     "https://www.googleapis.com/auth/compute",
64142	//     "https://www.googleapis.com/auth/compute.readonly"
64143	//   ]
64144	// }
64145
64146}
64147
64148// Pages invokes f for each page of results.
64149// A non-nil error returned from f will halt the iteration.
64150// The provided context supersedes any context provided to the Context method.
64151func (c *RegionsListCall) Pages(ctx context.Context, f func(*RegionList) error) error {
64152	c.ctx_ = ctx
64153	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
64154	for {
64155		x, err := c.Do()
64156		if err != nil {
64157			return err
64158		}
64159		if err := f(x); err != nil {
64160			return err
64161		}
64162		if x.NextPageToken == "" {
64163			return nil
64164		}
64165		c.PageToken(x.NextPageToken)
64166	}
64167}
64168
64169// method id "compute.routers.aggregatedList":
64170
64171type RoutersAggregatedListCall struct {
64172	s            *Service
64173	project      string
64174	urlParams_   gensupport.URLParams
64175	ifNoneMatch_ string
64176	ctx_         context.Context
64177	header_      http.Header
64178}
64179
64180// AggregatedList: Retrieves an aggregated list of routers.
64181func (r *RoutersService) AggregatedList(project string) *RoutersAggregatedListCall {
64182	c := &RoutersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64183	c.project = project
64184	return c
64185}
64186
64187// Filter sets the optional parameter "filter": Sets a filter
64188// {expression} for filtering listed resources. Your {expression} must
64189// be in the format: field_name comparison_string literal_string.
64190//
64191// The field_name is the name of the field you want to compare. Only
64192// atomic field types are supported (string, number, boolean). The
64193// comparison_string must be either eq (equals) or ne (not equals). The
64194// literal_string is the string value to filter to. The literal value
64195// must be valid for the type of field you are filtering by (string,
64196// number, boolean). For string fields, the literal value is interpreted
64197// as a regular expression using RE2 syntax. The literal value must
64198// match the entire field.
64199//
64200// For example, to filter for instances that do not have a name of
64201// example-instance, you would use name ne example-instance.
64202//
64203// You can filter on nested fields. For example, you could filter on
64204// instances that have set the scheduling.automaticRestart field to
64205// true. Use filtering on nested fields to take advantage of labels to
64206// organize and search for results based on label values.
64207//
64208// To filter on multiple expressions, provide each separate expression
64209// within parentheses. For example, (scheduling.automaticRestart eq
64210// true) (zone eq us-central1-f). Multiple expressions are treated as
64211// AND expressions, meaning that resources must match all expressions to
64212// pass the filters.
64213func (c *RoutersAggregatedListCall) Filter(filter string) *RoutersAggregatedListCall {
64214	c.urlParams_.Set("filter", filter)
64215	return c
64216}
64217
64218// MaxResults sets the optional parameter "maxResults": The maximum
64219// number of results per page that should be returned. If the number of
64220// available results is larger than maxResults, Compute Engine returns a
64221// nextPageToken that can be used to get the next page of results in
64222// subsequent list requests. Acceptable values are 0 to 500, inclusive.
64223// (Default: 500)
64224func (c *RoutersAggregatedListCall) MaxResults(maxResults int64) *RoutersAggregatedListCall {
64225	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
64226	return c
64227}
64228
64229// OrderBy sets the optional parameter "orderBy": Sorts list results by
64230// a certain order. By default, results are returned in alphanumerical
64231// order based on the resource name.
64232//
64233// You can also sort results in descending order based on the creation
64234// timestamp using orderBy="creationTimestamp desc". This sorts results
64235// based on the creationTimestamp field in reverse chronological order
64236// (newest result first). Use this to sort resources like operations so
64237// that the newest operation is returned first.
64238//
64239// Currently, only sorting by name or creationTimestamp desc is
64240// supported.
64241func (c *RoutersAggregatedListCall) OrderBy(orderBy string) *RoutersAggregatedListCall {
64242	c.urlParams_.Set("orderBy", orderBy)
64243	return c
64244}
64245
64246// PageToken sets the optional parameter "pageToken": Specifies a page
64247// token to use. Set pageToken to the nextPageToken returned by a
64248// previous list request to get the next page of results.
64249func (c *RoutersAggregatedListCall) PageToken(pageToken string) *RoutersAggregatedListCall {
64250	c.urlParams_.Set("pageToken", pageToken)
64251	return c
64252}
64253
64254// Fields allows partial responses to be retrieved. See
64255// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64256// for more information.
64257func (c *RoutersAggregatedListCall) Fields(s ...googleapi.Field) *RoutersAggregatedListCall {
64258	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64259	return c
64260}
64261
64262// IfNoneMatch sets the optional parameter which makes the operation
64263// fail if the object's ETag matches the given value. This is useful for
64264// getting updates only after the object has changed since the last
64265// request. Use googleapi.IsNotModified to check whether the response
64266// error from Do is the result of In-None-Match.
64267func (c *RoutersAggregatedListCall) IfNoneMatch(entityTag string) *RoutersAggregatedListCall {
64268	c.ifNoneMatch_ = entityTag
64269	return c
64270}
64271
64272// Context sets the context to be used in this call's Do method. Any
64273// pending HTTP request will be aborted if the provided context is
64274// canceled.
64275func (c *RoutersAggregatedListCall) Context(ctx context.Context) *RoutersAggregatedListCall {
64276	c.ctx_ = ctx
64277	return c
64278}
64279
64280// Header returns an http.Header that can be modified by the caller to
64281// add HTTP headers to the request.
64282func (c *RoutersAggregatedListCall) Header() http.Header {
64283	if c.header_ == nil {
64284		c.header_ = make(http.Header)
64285	}
64286	return c.header_
64287}
64288
64289func (c *RoutersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
64290	reqHeaders := make(http.Header)
64291	for k, v := range c.header_ {
64292		reqHeaders[k] = v
64293	}
64294	reqHeaders.Set("User-Agent", c.s.userAgent())
64295	if c.ifNoneMatch_ != "" {
64296		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64297	}
64298	var body io.Reader = nil
64299	c.urlParams_.Set("alt", alt)
64300	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/routers")
64301	urls += "?" + c.urlParams_.Encode()
64302	req, _ := http.NewRequest("GET", urls, body)
64303	req.Header = reqHeaders
64304	googleapi.Expand(req.URL, map[string]string{
64305		"project": c.project,
64306	})
64307	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64308}
64309
64310// Do executes the "compute.routers.aggregatedList" call.
64311// Exactly one of *RouterAggregatedList or error will be non-nil. Any
64312// non-2xx status code is an error. Response headers are in either
64313// *RouterAggregatedList.ServerResponse.Header or (if a response was
64314// returned at all) in error.(*googleapi.Error).Header. Use
64315// googleapi.IsNotModified to check whether the returned error was
64316// because http.StatusNotModified was returned.
64317func (c *RoutersAggregatedListCall) Do(opts ...googleapi.CallOption) (*RouterAggregatedList, error) {
64318	gensupport.SetOptions(c.urlParams_, opts...)
64319	res, err := c.doRequest("json")
64320	if res != nil && res.StatusCode == http.StatusNotModified {
64321		if res.Body != nil {
64322			res.Body.Close()
64323		}
64324		return nil, &googleapi.Error{
64325			Code:   res.StatusCode,
64326			Header: res.Header,
64327		}
64328	}
64329	if err != nil {
64330		return nil, err
64331	}
64332	defer googleapi.CloseBody(res)
64333	if err := googleapi.CheckResponse(res); err != nil {
64334		return nil, err
64335	}
64336	ret := &RouterAggregatedList{
64337		ServerResponse: googleapi.ServerResponse{
64338			Header:         res.Header,
64339			HTTPStatusCode: res.StatusCode,
64340		},
64341	}
64342	target := &ret
64343	if err := gensupport.DecodeResponse(target, res); err != nil {
64344		return nil, err
64345	}
64346	return ret, nil
64347	// {
64348	//   "description": "Retrieves an aggregated list of routers.",
64349	//   "httpMethod": "GET",
64350	//   "id": "compute.routers.aggregatedList",
64351	//   "parameterOrder": [
64352	//     "project"
64353	//   ],
64354	//   "parameters": {
64355	//     "filter": {
64356	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
64357	//       "location": "query",
64358	//       "type": "string"
64359	//     },
64360	//     "maxResults": {
64361	//       "default": "500",
64362	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
64363	//       "format": "uint32",
64364	//       "location": "query",
64365	//       "minimum": "0",
64366	//       "type": "integer"
64367	//     },
64368	//     "orderBy": {
64369	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
64370	//       "location": "query",
64371	//       "type": "string"
64372	//     },
64373	//     "pageToken": {
64374	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
64375	//       "location": "query",
64376	//       "type": "string"
64377	//     },
64378	//     "project": {
64379	//       "description": "Project ID for this request.",
64380	//       "location": "path",
64381	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64382	//       "required": true,
64383	//       "type": "string"
64384	//     }
64385	//   },
64386	//   "path": "{project}/aggregated/routers",
64387	//   "response": {
64388	//     "$ref": "RouterAggregatedList"
64389	//   },
64390	//   "scopes": [
64391	//     "https://www.googleapis.com/auth/cloud-platform",
64392	//     "https://www.googleapis.com/auth/compute",
64393	//     "https://www.googleapis.com/auth/compute.readonly"
64394	//   ]
64395	// }
64396
64397}
64398
64399// Pages invokes f for each page of results.
64400// A non-nil error returned from f will halt the iteration.
64401// The provided context supersedes any context provided to the Context method.
64402func (c *RoutersAggregatedListCall) Pages(ctx context.Context, f func(*RouterAggregatedList) error) error {
64403	c.ctx_ = ctx
64404	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
64405	for {
64406		x, err := c.Do()
64407		if err != nil {
64408			return err
64409		}
64410		if err := f(x); err != nil {
64411			return err
64412		}
64413		if x.NextPageToken == "" {
64414			return nil
64415		}
64416		c.PageToken(x.NextPageToken)
64417	}
64418}
64419
64420// method id "compute.routers.delete":
64421
64422type RoutersDeleteCall struct {
64423	s          *Service
64424	project    string
64425	region     string
64426	router     string
64427	urlParams_ gensupport.URLParams
64428	ctx_       context.Context
64429	header_    http.Header
64430}
64431
64432// Delete: Deletes the specified Router resource.
64433func (r *RoutersService) Delete(project string, region string, router string) *RoutersDeleteCall {
64434	c := &RoutersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64435	c.project = project
64436	c.region = region
64437	c.router = router
64438	return c
64439}
64440
64441// RequestId sets the optional parameter "requestId": An optional
64442// request ID to identify requests. Specify a unique request ID so that
64443// if you must retry your request, the server will know to ignore the
64444// request if it has already been completed.
64445//
64446// For example, consider a situation where you make an initial request
64447// and the request times out. If you make the request again with the
64448// same request ID, the server can check if original operation with the
64449// same request ID was received, and if so, will ignore the second
64450// request. This prevents clients from accidentally creating duplicate
64451// commitments.
64452//
64453// The request ID must be a valid UUID with the exception that zero UUID
64454// is not supported (00000000-0000-0000-0000-000000000000).
64455func (c *RoutersDeleteCall) RequestId(requestId string) *RoutersDeleteCall {
64456	c.urlParams_.Set("requestId", requestId)
64457	return c
64458}
64459
64460// Fields allows partial responses to be retrieved. See
64461// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64462// for more information.
64463func (c *RoutersDeleteCall) Fields(s ...googleapi.Field) *RoutersDeleteCall {
64464	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64465	return c
64466}
64467
64468// Context sets the context to be used in this call's Do method. Any
64469// pending HTTP request will be aborted if the provided context is
64470// canceled.
64471func (c *RoutersDeleteCall) Context(ctx context.Context) *RoutersDeleteCall {
64472	c.ctx_ = ctx
64473	return c
64474}
64475
64476// Header returns an http.Header that can be modified by the caller to
64477// add HTTP headers to the request.
64478func (c *RoutersDeleteCall) Header() http.Header {
64479	if c.header_ == nil {
64480		c.header_ = make(http.Header)
64481	}
64482	return c.header_
64483}
64484
64485func (c *RoutersDeleteCall) doRequest(alt string) (*http.Response, error) {
64486	reqHeaders := make(http.Header)
64487	for k, v := range c.header_ {
64488		reqHeaders[k] = v
64489	}
64490	reqHeaders.Set("User-Agent", c.s.userAgent())
64491	var body io.Reader = nil
64492	c.urlParams_.Set("alt", alt)
64493	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
64494	urls += "?" + c.urlParams_.Encode()
64495	req, _ := http.NewRequest("DELETE", urls, body)
64496	req.Header = reqHeaders
64497	googleapi.Expand(req.URL, map[string]string{
64498		"project": c.project,
64499		"region":  c.region,
64500		"router":  c.router,
64501	})
64502	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64503}
64504
64505// Do executes the "compute.routers.delete" call.
64506// Exactly one of *Operation or error will be non-nil. Any non-2xx
64507// status code is an error. Response headers are in either
64508// *Operation.ServerResponse.Header or (if a response was returned at
64509// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64510// to check whether the returned error was because
64511// http.StatusNotModified was returned.
64512func (c *RoutersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64513	gensupport.SetOptions(c.urlParams_, opts...)
64514	res, err := c.doRequest("json")
64515	if res != nil && res.StatusCode == http.StatusNotModified {
64516		if res.Body != nil {
64517			res.Body.Close()
64518		}
64519		return nil, &googleapi.Error{
64520			Code:   res.StatusCode,
64521			Header: res.Header,
64522		}
64523	}
64524	if err != nil {
64525		return nil, err
64526	}
64527	defer googleapi.CloseBody(res)
64528	if err := googleapi.CheckResponse(res); err != nil {
64529		return nil, err
64530	}
64531	ret := &Operation{
64532		ServerResponse: googleapi.ServerResponse{
64533			Header:         res.Header,
64534			HTTPStatusCode: res.StatusCode,
64535		},
64536	}
64537	target := &ret
64538	if err := gensupport.DecodeResponse(target, res); err != nil {
64539		return nil, err
64540	}
64541	return ret, nil
64542	// {
64543	//   "description": "Deletes the specified Router resource.",
64544	//   "httpMethod": "DELETE",
64545	//   "id": "compute.routers.delete",
64546	//   "parameterOrder": [
64547	//     "project",
64548	//     "region",
64549	//     "router"
64550	//   ],
64551	//   "parameters": {
64552	//     "project": {
64553	//       "description": "Project ID for this request.",
64554	//       "location": "path",
64555	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64556	//       "required": true,
64557	//       "type": "string"
64558	//     },
64559	//     "region": {
64560	//       "description": "Name of the region for this request.",
64561	//       "location": "path",
64562	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
64563	//       "required": true,
64564	//       "type": "string"
64565	//     },
64566	//     "requestId": {
64567	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64568	//       "location": "query",
64569	//       "type": "string"
64570	//     },
64571	//     "router": {
64572	//       "description": "Name of the Router resource to delete.",
64573	//       "location": "path",
64574	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
64575	//       "required": true,
64576	//       "type": "string"
64577	//     }
64578	//   },
64579	//   "path": "{project}/regions/{region}/routers/{router}",
64580	//   "response": {
64581	//     "$ref": "Operation"
64582	//   },
64583	//   "scopes": [
64584	//     "https://www.googleapis.com/auth/cloud-platform",
64585	//     "https://www.googleapis.com/auth/compute"
64586	//   ]
64587	// }
64588
64589}
64590
64591// method id "compute.routers.get":
64592
64593type RoutersGetCall struct {
64594	s            *Service
64595	project      string
64596	region       string
64597	router       string
64598	urlParams_   gensupport.URLParams
64599	ifNoneMatch_ string
64600	ctx_         context.Context
64601	header_      http.Header
64602}
64603
64604// Get: Returns the specified Router resource. Get a list of available
64605// routers by making a list() request.
64606func (r *RoutersService) Get(project string, region string, router string) *RoutersGetCall {
64607	c := &RoutersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64608	c.project = project
64609	c.region = region
64610	c.router = router
64611	return c
64612}
64613
64614// Fields allows partial responses to be retrieved. See
64615// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64616// for more information.
64617func (c *RoutersGetCall) Fields(s ...googleapi.Field) *RoutersGetCall {
64618	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64619	return c
64620}
64621
64622// IfNoneMatch sets the optional parameter which makes the operation
64623// fail if the object's ETag matches the given value. This is useful for
64624// getting updates only after the object has changed since the last
64625// request. Use googleapi.IsNotModified to check whether the response
64626// error from Do is the result of In-None-Match.
64627func (c *RoutersGetCall) IfNoneMatch(entityTag string) *RoutersGetCall {
64628	c.ifNoneMatch_ = entityTag
64629	return c
64630}
64631
64632// Context sets the context to be used in this call's Do method. Any
64633// pending HTTP request will be aborted if the provided context is
64634// canceled.
64635func (c *RoutersGetCall) Context(ctx context.Context) *RoutersGetCall {
64636	c.ctx_ = ctx
64637	return c
64638}
64639
64640// Header returns an http.Header that can be modified by the caller to
64641// add HTTP headers to the request.
64642func (c *RoutersGetCall) Header() http.Header {
64643	if c.header_ == nil {
64644		c.header_ = make(http.Header)
64645	}
64646	return c.header_
64647}
64648
64649func (c *RoutersGetCall) doRequest(alt string) (*http.Response, error) {
64650	reqHeaders := make(http.Header)
64651	for k, v := range c.header_ {
64652		reqHeaders[k] = v
64653	}
64654	reqHeaders.Set("User-Agent", c.s.userAgent())
64655	if c.ifNoneMatch_ != "" {
64656		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64657	}
64658	var body io.Reader = nil
64659	c.urlParams_.Set("alt", alt)
64660	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
64661	urls += "?" + c.urlParams_.Encode()
64662	req, _ := http.NewRequest("GET", urls, body)
64663	req.Header = reqHeaders
64664	googleapi.Expand(req.URL, map[string]string{
64665		"project": c.project,
64666		"region":  c.region,
64667		"router":  c.router,
64668	})
64669	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64670}
64671
64672// Do executes the "compute.routers.get" call.
64673// Exactly one of *Router or error will be non-nil. Any non-2xx status
64674// code is an error. Response headers are in either
64675// *Router.ServerResponse.Header or (if a response was returned at all)
64676// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
64677// check whether the returned error was because http.StatusNotModified
64678// was returned.
64679func (c *RoutersGetCall) Do(opts ...googleapi.CallOption) (*Router, error) {
64680	gensupport.SetOptions(c.urlParams_, opts...)
64681	res, err := c.doRequest("json")
64682	if res != nil && res.StatusCode == http.StatusNotModified {
64683		if res.Body != nil {
64684			res.Body.Close()
64685		}
64686		return nil, &googleapi.Error{
64687			Code:   res.StatusCode,
64688			Header: res.Header,
64689		}
64690	}
64691	if err != nil {
64692		return nil, err
64693	}
64694	defer googleapi.CloseBody(res)
64695	if err := googleapi.CheckResponse(res); err != nil {
64696		return nil, err
64697	}
64698	ret := &Router{
64699		ServerResponse: googleapi.ServerResponse{
64700			Header:         res.Header,
64701			HTTPStatusCode: res.StatusCode,
64702		},
64703	}
64704	target := &ret
64705	if err := gensupport.DecodeResponse(target, res); err != nil {
64706		return nil, err
64707	}
64708	return ret, nil
64709	// {
64710	//   "description": "Returns the specified Router resource. Get a list of available routers by making a list() request.",
64711	//   "httpMethod": "GET",
64712	//   "id": "compute.routers.get",
64713	//   "parameterOrder": [
64714	//     "project",
64715	//     "region",
64716	//     "router"
64717	//   ],
64718	//   "parameters": {
64719	//     "project": {
64720	//       "description": "Project ID for this request.",
64721	//       "location": "path",
64722	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64723	//       "required": true,
64724	//       "type": "string"
64725	//     },
64726	//     "region": {
64727	//       "description": "Name of the region for this request.",
64728	//       "location": "path",
64729	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
64730	//       "required": true,
64731	//       "type": "string"
64732	//     },
64733	//     "router": {
64734	//       "description": "Name of the Router resource to return.",
64735	//       "location": "path",
64736	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
64737	//       "required": true,
64738	//       "type": "string"
64739	//     }
64740	//   },
64741	//   "path": "{project}/regions/{region}/routers/{router}",
64742	//   "response": {
64743	//     "$ref": "Router"
64744	//   },
64745	//   "scopes": [
64746	//     "https://www.googleapis.com/auth/cloud-platform",
64747	//     "https://www.googleapis.com/auth/compute",
64748	//     "https://www.googleapis.com/auth/compute.readonly"
64749	//   ]
64750	// }
64751
64752}
64753
64754// method id "compute.routers.getRouterStatus":
64755
64756type RoutersGetRouterStatusCall struct {
64757	s            *Service
64758	project      string
64759	region       string
64760	router       string
64761	urlParams_   gensupport.URLParams
64762	ifNoneMatch_ string
64763	ctx_         context.Context
64764	header_      http.Header
64765}
64766
64767// GetRouterStatus: Retrieves runtime information of the specified
64768// router.
64769func (r *RoutersService) GetRouterStatus(project string, region string, router string) *RoutersGetRouterStatusCall {
64770	c := &RoutersGetRouterStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64771	c.project = project
64772	c.region = region
64773	c.router = router
64774	return c
64775}
64776
64777// Fields allows partial responses to be retrieved. See
64778// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64779// for more information.
64780func (c *RoutersGetRouterStatusCall) Fields(s ...googleapi.Field) *RoutersGetRouterStatusCall {
64781	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64782	return c
64783}
64784
64785// IfNoneMatch sets the optional parameter which makes the operation
64786// fail if the object's ETag matches the given value. This is useful for
64787// getting updates only after the object has changed since the last
64788// request. Use googleapi.IsNotModified to check whether the response
64789// error from Do is the result of In-None-Match.
64790func (c *RoutersGetRouterStatusCall) IfNoneMatch(entityTag string) *RoutersGetRouterStatusCall {
64791	c.ifNoneMatch_ = entityTag
64792	return c
64793}
64794
64795// Context sets the context to be used in this call's Do method. Any
64796// pending HTTP request will be aborted if the provided context is
64797// canceled.
64798func (c *RoutersGetRouterStatusCall) Context(ctx context.Context) *RoutersGetRouterStatusCall {
64799	c.ctx_ = ctx
64800	return c
64801}
64802
64803// Header returns an http.Header that can be modified by the caller to
64804// add HTTP headers to the request.
64805func (c *RoutersGetRouterStatusCall) Header() http.Header {
64806	if c.header_ == nil {
64807		c.header_ = make(http.Header)
64808	}
64809	return c.header_
64810}
64811
64812func (c *RoutersGetRouterStatusCall) doRequest(alt string) (*http.Response, error) {
64813	reqHeaders := make(http.Header)
64814	for k, v := range c.header_ {
64815		reqHeaders[k] = v
64816	}
64817	reqHeaders.Set("User-Agent", c.s.userAgent())
64818	if c.ifNoneMatch_ != "" {
64819		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64820	}
64821	var body io.Reader = nil
64822	c.urlParams_.Set("alt", alt)
64823	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/getRouterStatus")
64824	urls += "?" + c.urlParams_.Encode()
64825	req, _ := http.NewRequest("GET", urls, body)
64826	req.Header = reqHeaders
64827	googleapi.Expand(req.URL, map[string]string{
64828		"project": c.project,
64829		"region":  c.region,
64830		"router":  c.router,
64831	})
64832	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64833}
64834
64835// Do executes the "compute.routers.getRouterStatus" call.
64836// Exactly one of *RouterStatusResponse or error will be non-nil. Any
64837// non-2xx status code is an error. Response headers are in either
64838// *RouterStatusResponse.ServerResponse.Header or (if a response was
64839// returned at all) in error.(*googleapi.Error).Header. Use
64840// googleapi.IsNotModified to check whether the returned error was
64841// because http.StatusNotModified was returned.
64842func (c *RoutersGetRouterStatusCall) Do(opts ...googleapi.CallOption) (*RouterStatusResponse, error) {
64843	gensupport.SetOptions(c.urlParams_, opts...)
64844	res, err := c.doRequest("json")
64845	if res != nil && res.StatusCode == http.StatusNotModified {
64846		if res.Body != nil {
64847			res.Body.Close()
64848		}
64849		return nil, &googleapi.Error{
64850			Code:   res.StatusCode,
64851			Header: res.Header,
64852		}
64853	}
64854	if err != nil {
64855		return nil, err
64856	}
64857	defer googleapi.CloseBody(res)
64858	if err := googleapi.CheckResponse(res); err != nil {
64859		return nil, err
64860	}
64861	ret := &RouterStatusResponse{
64862		ServerResponse: googleapi.ServerResponse{
64863			Header:         res.Header,
64864			HTTPStatusCode: res.StatusCode,
64865		},
64866	}
64867	target := &ret
64868	if err := gensupport.DecodeResponse(target, res); err != nil {
64869		return nil, err
64870	}
64871	return ret, nil
64872	// {
64873	//   "description": "Retrieves runtime information of the specified router.",
64874	//   "httpMethod": "GET",
64875	//   "id": "compute.routers.getRouterStatus",
64876	//   "parameterOrder": [
64877	//     "project",
64878	//     "region",
64879	//     "router"
64880	//   ],
64881	//   "parameters": {
64882	//     "project": {
64883	//       "description": "Project ID for this request.",
64884	//       "location": "path",
64885	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64886	//       "required": true,
64887	//       "type": "string"
64888	//     },
64889	//     "region": {
64890	//       "description": "Name of the region for this request.",
64891	//       "location": "path",
64892	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
64893	//       "required": true,
64894	//       "type": "string"
64895	//     },
64896	//     "router": {
64897	//       "description": "Name of the Router resource to query.",
64898	//       "location": "path",
64899	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
64900	//       "required": true,
64901	//       "type": "string"
64902	//     }
64903	//   },
64904	//   "path": "{project}/regions/{region}/routers/{router}/getRouterStatus",
64905	//   "response": {
64906	//     "$ref": "RouterStatusResponse"
64907	//   },
64908	//   "scopes": [
64909	//     "https://www.googleapis.com/auth/cloud-platform",
64910	//     "https://www.googleapis.com/auth/compute",
64911	//     "https://www.googleapis.com/auth/compute.readonly"
64912	//   ]
64913	// }
64914
64915}
64916
64917// method id "compute.routers.insert":
64918
64919type RoutersInsertCall struct {
64920	s          *Service
64921	project    string
64922	region     string
64923	router     *Router
64924	urlParams_ gensupport.URLParams
64925	ctx_       context.Context
64926	header_    http.Header
64927}
64928
64929// Insert: Creates a Router resource in the specified project and region
64930// using the data included in the request.
64931func (r *RoutersService) Insert(project string, region string, router *Router) *RoutersInsertCall {
64932	c := &RoutersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64933	c.project = project
64934	c.region = region
64935	c.router = router
64936	return c
64937}
64938
64939// RequestId sets the optional parameter "requestId": An optional
64940// request ID to identify requests. Specify a unique request ID so that
64941// if you must retry your request, the server will know to ignore the
64942// request if it has already been completed.
64943//
64944// For example, consider a situation where you make an initial request
64945// and the request times out. If you make the request again with the
64946// same request ID, the server can check if original operation with the
64947// same request ID was received, and if so, will ignore the second
64948// request. This prevents clients from accidentally creating duplicate
64949// commitments.
64950//
64951// The request ID must be a valid UUID with the exception that zero UUID
64952// is not supported (00000000-0000-0000-0000-000000000000).
64953func (c *RoutersInsertCall) RequestId(requestId string) *RoutersInsertCall {
64954	c.urlParams_.Set("requestId", requestId)
64955	return c
64956}
64957
64958// Fields allows partial responses to be retrieved. See
64959// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64960// for more information.
64961func (c *RoutersInsertCall) Fields(s ...googleapi.Field) *RoutersInsertCall {
64962	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64963	return c
64964}
64965
64966// Context sets the context to be used in this call's Do method. Any
64967// pending HTTP request will be aborted if the provided context is
64968// canceled.
64969func (c *RoutersInsertCall) Context(ctx context.Context) *RoutersInsertCall {
64970	c.ctx_ = ctx
64971	return c
64972}
64973
64974// Header returns an http.Header that can be modified by the caller to
64975// add HTTP headers to the request.
64976func (c *RoutersInsertCall) Header() http.Header {
64977	if c.header_ == nil {
64978		c.header_ = make(http.Header)
64979	}
64980	return c.header_
64981}
64982
64983func (c *RoutersInsertCall) doRequest(alt string) (*http.Response, error) {
64984	reqHeaders := make(http.Header)
64985	for k, v := range c.header_ {
64986		reqHeaders[k] = v
64987	}
64988	reqHeaders.Set("User-Agent", c.s.userAgent())
64989	var body io.Reader = nil
64990	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router)
64991	if err != nil {
64992		return nil, err
64993	}
64994	reqHeaders.Set("Content-Type", "application/json")
64995	c.urlParams_.Set("alt", alt)
64996	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers")
64997	urls += "?" + c.urlParams_.Encode()
64998	req, _ := http.NewRequest("POST", urls, body)
64999	req.Header = reqHeaders
65000	googleapi.Expand(req.URL, map[string]string{
65001		"project": c.project,
65002		"region":  c.region,
65003	})
65004	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65005}
65006
65007// Do executes the "compute.routers.insert" call.
65008// Exactly one of *Operation or error will be non-nil. Any non-2xx
65009// status code is an error. Response headers are in either
65010// *Operation.ServerResponse.Header or (if a response was returned at
65011// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65012// to check whether the returned error was because
65013// http.StatusNotModified was returned.
65014func (c *RoutersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65015	gensupport.SetOptions(c.urlParams_, opts...)
65016	res, err := c.doRequest("json")
65017	if res != nil && res.StatusCode == http.StatusNotModified {
65018		if res.Body != nil {
65019			res.Body.Close()
65020		}
65021		return nil, &googleapi.Error{
65022			Code:   res.StatusCode,
65023			Header: res.Header,
65024		}
65025	}
65026	if err != nil {
65027		return nil, err
65028	}
65029	defer googleapi.CloseBody(res)
65030	if err := googleapi.CheckResponse(res); err != nil {
65031		return nil, err
65032	}
65033	ret := &Operation{
65034		ServerResponse: googleapi.ServerResponse{
65035			Header:         res.Header,
65036			HTTPStatusCode: res.StatusCode,
65037		},
65038	}
65039	target := &ret
65040	if err := gensupport.DecodeResponse(target, res); err != nil {
65041		return nil, err
65042	}
65043	return ret, nil
65044	// {
65045	//   "description": "Creates a Router resource in the specified project and region using the data included in the request.",
65046	//   "httpMethod": "POST",
65047	//   "id": "compute.routers.insert",
65048	//   "parameterOrder": [
65049	//     "project",
65050	//     "region"
65051	//   ],
65052	//   "parameters": {
65053	//     "project": {
65054	//       "description": "Project ID for this request.",
65055	//       "location": "path",
65056	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65057	//       "required": true,
65058	//       "type": "string"
65059	//     },
65060	//     "region": {
65061	//       "description": "Name of the region for this request.",
65062	//       "location": "path",
65063	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
65064	//       "required": true,
65065	//       "type": "string"
65066	//     },
65067	//     "requestId": {
65068	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65069	//       "location": "query",
65070	//       "type": "string"
65071	//     }
65072	//   },
65073	//   "path": "{project}/regions/{region}/routers",
65074	//   "request": {
65075	//     "$ref": "Router"
65076	//   },
65077	//   "response": {
65078	//     "$ref": "Operation"
65079	//   },
65080	//   "scopes": [
65081	//     "https://www.googleapis.com/auth/cloud-platform",
65082	//     "https://www.googleapis.com/auth/compute"
65083	//   ]
65084	// }
65085
65086}
65087
65088// method id "compute.routers.list":
65089
65090type RoutersListCall struct {
65091	s            *Service
65092	project      string
65093	region       string
65094	urlParams_   gensupport.URLParams
65095	ifNoneMatch_ string
65096	ctx_         context.Context
65097	header_      http.Header
65098}
65099
65100// List: Retrieves a list of Router resources available to the specified
65101// project.
65102func (r *RoutersService) List(project string, region string) *RoutersListCall {
65103	c := &RoutersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65104	c.project = project
65105	c.region = region
65106	return c
65107}
65108
65109// Filter sets the optional parameter "filter": Sets a filter
65110// {expression} for filtering listed resources. Your {expression} must
65111// be in the format: field_name comparison_string literal_string.
65112//
65113// The field_name is the name of the field you want to compare. Only
65114// atomic field types are supported (string, number, boolean). The
65115// comparison_string must be either eq (equals) or ne (not equals). The
65116// literal_string is the string value to filter to. The literal value
65117// must be valid for the type of field you are filtering by (string,
65118// number, boolean). For string fields, the literal value is interpreted
65119// as a regular expression using RE2 syntax. The literal value must
65120// match the entire field.
65121//
65122// For example, to filter for instances that do not have a name of
65123// example-instance, you would use name ne example-instance.
65124//
65125// You can filter on nested fields. For example, you could filter on
65126// instances that have set the scheduling.automaticRestart field to
65127// true. Use filtering on nested fields to take advantage of labels to
65128// organize and search for results based on label values.
65129//
65130// To filter on multiple expressions, provide each separate expression
65131// within parentheses. For example, (scheduling.automaticRestart eq
65132// true) (zone eq us-central1-f). Multiple expressions are treated as
65133// AND expressions, meaning that resources must match all expressions to
65134// pass the filters.
65135func (c *RoutersListCall) Filter(filter string) *RoutersListCall {
65136	c.urlParams_.Set("filter", filter)
65137	return c
65138}
65139
65140// MaxResults sets the optional parameter "maxResults": The maximum
65141// number of results per page that should be returned. If the number of
65142// available results is larger than maxResults, Compute Engine returns a
65143// nextPageToken that can be used to get the next page of results in
65144// subsequent list requests. Acceptable values are 0 to 500, inclusive.
65145// (Default: 500)
65146func (c *RoutersListCall) MaxResults(maxResults int64) *RoutersListCall {
65147	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
65148	return c
65149}
65150
65151// OrderBy sets the optional parameter "orderBy": Sorts list results by
65152// a certain order. By default, results are returned in alphanumerical
65153// order based on the resource name.
65154//
65155// You can also sort results in descending order based on the creation
65156// timestamp using orderBy="creationTimestamp desc". This sorts results
65157// based on the creationTimestamp field in reverse chronological order
65158// (newest result first). Use this to sort resources like operations so
65159// that the newest operation is returned first.
65160//
65161// Currently, only sorting by name or creationTimestamp desc is
65162// supported.
65163func (c *RoutersListCall) OrderBy(orderBy string) *RoutersListCall {
65164	c.urlParams_.Set("orderBy", orderBy)
65165	return c
65166}
65167
65168// PageToken sets the optional parameter "pageToken": Specifies a page
65169// token to use. Set pageToken to the nextPageToken returned by a
65170// previous list request to get the next page of results.
65171func (c *RoutersListCall) PageToken(pageToken string) *RoutersListCall {
65172	c.urlParams_.Set("pageToken", pageToken)
65173	return c
65174}
65175
65176// Fields allows partial responses to be retrieved. See
65177// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65178// for more information.
65179func (c *RoutersListCall) Fields(s ...googleapi.Field) *RoutersListCall {
65180	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65181	return c
65182}
65183
65184// IfNoneMatch sets the optional parameter which makes the operation
65185// fail if the object's ETag matches the given value. This is useful for
65186// getting updates only after the object has changed since the last
65187// request. Use googleapi.IsNotModified to check whether the response
65188// error from Do is the result of In-None-Match.
65189func (c *RoutersListCall) IfNoneMatch(entityTag string) *RoutersListCall {
65190	c.ifNoneMatch_ = entityTag
65191	return c
65192}
65193
65194// Context sets the context to be used in this call's Do method. Any
65195// pending HTTP request will be aborted if the provided context is
65196// canceled.
65197func (c *RoutersListCall) Context(ctx context.Context) *RoutersListCall {
65198	c.ctx_ = ctx
65199	return c
65200}
65201
65202// Header returns an http.Header that can be modified by the caller to
65203// add HTTP headers to the request.
65204func (c *RoutersListCall) Header() http.Header {
65205	if c.header_ == nil {
65206		c.header_ = make(http.Header)
65207	}
65208	return c.header_
65209}
65210
65211func (c *RoutersListCall) doRequest(alt string) (*http.Response, error) {
65212	reqHeaders := make(http.Header)
65213	for k, v := range c.header_ {
65214		reqHeaders[k] = v
65215	}
65216	reqHeaders.Set("User-Agent", c.s.userAgent())
65217	if c.ifNoneMatch_ != "" {
65218		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65219	}
65220	var body io.Reader = nil
65221	c.urlParams_.Set("alt", alt)
65222	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers")
65223	urls += "?" + c.urlParams_.Encode()
65224	req, _ := http.NewRequest("GET", urls, body)
65225	req.Header = reqHeaders
65226	googleapi.Expand(req.URL, map[string]string{
65227		"project": c.project,
65228		"region":  c.region,
65229	})
65230	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65231}
65232
65233// Do executes the "compute.routers.list" call.
65234// Exactly one of *RouterList or error will be non-nil. Any non-2xx
65235// status code is an error. Response headers are in either
65236// *RouterList.ServerResponse.Header or (if a response was returned at
65237// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65238// to check whether the returned error was because
65239// http.StatusNotModified was returned.
65240func (c *RoutersListCall) Do(opts ...googleapi.CallOption) (*RouterList, error) {
65241	gensupport.SetOptions(c.urlParams_, opts...)
65242	res, err := c.doRequest("json")
65243	if res != nil && res.StatusCode == http.StatusNotModified {
65244		if res.Body != nil {
65245			res.Body.Close()
65246		}
65247		return nil, &googleapi.Error{
65248			Code:   res.StatusCode,
65249			Header: res.Header,
65250		}
65251	}
65252	if err != nil {
65253		return nil, err
65254	}
65255	defer googleapi.CloseBody(res)
65256	if err := googleapi.CheckResponse(res); err != nil {
65257		return nil, err
65258	}
65259	ret := &RouterList{
65260		ServerResponse: googleapi.ServerResponse{
65261			Header:         res.Header,
65262			HTTPStatusCode: res.StatusCode,
65263		},
65264	}
65265	target := &ret
65266	if err := gensupport.DecodeResponse(target, res); err != nil {
65267		return nil, err
65268	}
65269	return ret, nil
65270	// {
65271	//   "description": "Retrieves a list of Router resources available to the specified project.",
65272	//   "httpMethod": "GET",
65273	//   "id": "compute.routers.list",
65274	//   "parameterOrder": [
65275	//     "project",
65276	//     "region"
65277	//   ],
65278	//   "parameters": {
65279	//     "filter": {
65280	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
65281	//       "location": "query",
65282	//       "type": "string"
65283	//     },
65284	//     "maxResults": {
65285	//       "default": "500",
65286	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
65287	//       "format": "uint32",
65288	//       "location": "query",
65289	//       "minimum": "0",
65290	//       "type": "integer"
65291	//     },
65292	//     "orderBy": {
65293	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
65294	//       "location": "query",
65295	//       "type": "string"
65296	//     },
65297	//     "pageToken": {
65298	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
65299	//       "location": "query",
65300	//       "type": "string"
65301	//     },
65302	//     "project": {
65303	//       "description": "Project ID for this request.",
65304	//       "location": "path",
65305	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65306	//       "required": true,
65307	//       "type": "string"
65308	//     },
65309	//     "region": {
65310	//       "description": "Name of the region for this request.",
65311	//       "location": "path",
65312	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
65313	//       "required": true,
65314	//       "type": "string"
65315	//     }
65316	//   },
65317	//   "path": "{project}/regions/{region}/routers",
65318	//   "response": {
65319	//     "$ref": "RouterList"
65320	//   },
65321	//   "scopes": [
65322	//     "https://www.googleapis.com/auth/cloud-platform",
65323	//     "https://www.googleapis.com/auth/compute",
65324	//     "https://www.googleapis.com/auth/compute.readonly"
65325	//   ]
65326	// }
65327
65328}
65329
65330// Pages invokes f for each page of results.
65331// A non-nil error returned from f will halt the iteration.
65332// The provided context supersedes any context provided to the Context method.
65333func (c *RoutersListCall) Pages(ctx context.Context, f func(*RouterList) error) error {
65334	c.ctx_ = ctx
65335	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
65336	for {
65337		x, err := c.Do()
65338		if err != nil {
65339			return err
65340		}
65341		if err := f(x); err != nil {
65342			return err
65343		}
65344		if x.NextPageToken == "" {
65345			return nil
65346		}
65347		c.PageToken(x.NextPageToken)
65348	}
65349}
65350
65351// method id "compute.routers.patch":
65352
65353type RoutersPatchCall struct {
65354	s          *Service
65355	project    string
65356	region     string
65357	router     string
65358	router2    *Router
65359	urlParams_ gensupport.URLParams
65360	ctx_       context.Context
65361	header_    http.Header
65362}
65363
65364// Patch: Patches the specified Router resource with the data included
65365// in the request. This method supports PATCH semantics and uses JSON
65366// merge patch format and processing rules.
65367func (r *RoutersService) Patch(project string, region string, router string, router2 *Router) *RoutersPatchCall {
65368	c := &RoutersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65369	c.project = project
65370	c.region = region
65371	c.router = router
65372	c.router2 = router2
65373	return c
65374}
65375
65376// RequestId sets the optional parameter "requestId": An optional
65377// request ID to identify requests. Specify a unique request ID so that
65378// if you must retry your request, the server will know to ignore the
65379// request if it has already been completed.
65380//
65381// For example, consider a situation where you make an initial request
65382// and the request times out. If you make the request again with the
65383// same request ID, the server can check if original operation with the
65384// same request ID was received, and if so, will ignore the second
65385// request. This prevents clients from accidentally creating duplicate
65386// commitments.
65387//
65388// The request ID must be a valid UUID with the exception that zero UUID
65389// is not supported (00000000-0000-0000-0000-000000000000).
65390func (c *RoutersPatchCall) RequestId(requestId string) *RoutersPatchCall {
65391	c.urlParams_.Set("requestId", requestId)
65392	return c
65393}
65394
65395// Fields allows partial responses to be retrieved. See
65396// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65397// for more information.
65398func (c *RoutersPatchCall) Fields(s ...googleapi.Field) *RoutersPatchCall {
65399	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65400	return c
65401}
65402
65403// Context sets the context to be used in this call's Do method. Any
65404// pending HTTP request will be aborted if the provided context is
65405// canceled.
65406func (c *RoutersPatchCall) Context(ctx context.Context) *RoutersPatchCall {
65407	c.ctx_ = ctx
65408	return c
65409}
65410
65411// Header returns an http.Header that can be modified by the caller to
65412// add HTTP headers to the request.
65413func (c *RoutersPatchCall) Header() http.Header {
65414	if c.header_ == nil {
65415		c.header_ = make(http.Header)
65416	}
65417	return c.header_
65418}
65419
65420func (c *RoutersPatchCall) doRequest(alt string) (*http.Response, error) {
65421	reqHeaders := make(http.Header)
65422	for k, v := range c.header_ {
65423		reqHeaders[k] = v
65424	}
65425	reqHeaders.Set("User-Agent", c.s.userAgent())
65426	var body io.Reader = nil
65427	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
65428	if err != nil {
65429		return nil, err
65430	}
65431	reqHeaders.Set("Content-Type", "application/json")
65432	c.urlParams_.Set("alt", alt)
65433	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
65434	urls += "?" + c.urlParams_.Encode()
65435	req, _ := http.NewRequest("PATCH", urls, body)
65436	req.Header = reqHeaders
65437	googleapi.Expand(req.URL, map[string]string{
65438		"project": c.project,
65439		"region":  c.region,
65440		"router":  c.router,
65441	})
65442	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65443}
65444
65445// Do executes the "compute.routers.patch" call.
65446// Exactly one of *Operation or error will be non-nil. Any non-2xx
65447// status code is an error. Response headers are in either
65448// *Operation.ServerResponse.Header or (if a response was returned at
65449// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65450// to check whether the returned error was because
65451// http.StatusNotModified was returned.
65452func (c *RoutersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65453	gensupport.SetOptions(c.urlParams_, opts...)
65454	res, err := c.doRequest("json")
65455	if res != nil && res.StatusCode == http.StatusNotModified {
65456		if res.Body != nil {
65457			res.Body.Close()
65458		}
65459		return nil, &googleapi.Error{
65460			Code:   res.StatusCode,
65461			Header: res.Header,
65462		}
65463	}
65464	if err != nil {
65465		return nil, err
65466	}
65467	defer googleapi.CloseBody(res)
65468	if err := googleapi.CheckResponse(res); err != nil {
65469		return nil, err
65470	}
65471	ret := &Operation{
65472		ServerResponse: googleapi.ServerResponse{
65473			Header:         res.Header,
65474			HTTPStatusCode: res.StatusCode,
65475		},
65476	}
65477	target := &ret
65478	if err := gensupport.DecodeResponse(target, res); err != nil {
65479		return nil, err
65480	}
65481	return ret, nil
65482	// {
65483	//   "description": "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.",
65484	//   "httpMethod": "PATCH",
65485	//   "id": "compute.routers.patch",
65486	//   "parameterOrder": [
65487	//     "project",
65488	//     "region",
65489	//     "router"
65490	//   ],
65491	//   "parameters": {
65492	//     "project": {
65493	//       "description": "Project ID for this request.",
65494	//       "location": "path",
65495	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65496	//       "required": true,
65497	//       "type": "string"
65498	//     },
65499	//     "region": {
65500	//       "description": "Name of the region for this request.",
65501	//       "location": "path",
65502	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
65503	//       "required": true,
65504	//       "type": "string"
65505	//     },
65506	//     "requestId": {
65507	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65508	//       "location": "query",
65509	//       "type": "string"
65510	//     },
65511	//     "router": {
65512	//       "description": "Name of the Router resource to patch.",
65513	//       "location": "path",
65514	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
65515	//       "required": true,
65516	//       "type": "string"
65517	//     }
65518	//   },
65519	//   "path": "{project}/regions/{region}/routers/{router}",
65520	//   "request": {
65521	//     "$ref": "Router"
65522	//   },
65523	//   "response": {
65524	//     "$ref": "Operation"
65525	//   },
65526	//   "scopes": [
65527	//     "https://www.googleapis.com/auth/cloud-platform",
65528	//     "https://www.googleapis.com/auth/compute"
65529	//   ]
65530	// }
65531
65532}
65533
65534// method id "compute.routers.preview":
65535
65536type RoutersPreviewCall struct {
65537	s          *Service
65538	project    string
65539	region     string
65540	router     string
65541	router2    *Router
65542	urlParams_ gensupport.URLParams
65543	ctx_       context.Context
65544	header_    http.Header
65545}
65546
65547// Preview: Preview fields auto-generated during router create and
65548// update operations. Calling this method does NOT create or update the
65549// router.
65550func (r *RoutersService) Preview(project string, region string, router string, router2 *Router) *RoutersPreviewCall {
65551	c := &RoutersPreviewCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65552	c.project = project
65553	c.region = region
65554	c.router = router
65555	c.router2 = router2
65556	return c
65557}
65558
65559// Fields allows partial responses to be retrieved. See
65560// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65561// for more information.
65562func (c *RoutersPreviewCall) Fields(s ...googleapi.Field) *RoutersPreviewCall {
65563	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65564	return c
65565}
65566
65567// Context sets the context to be used in this call's Do method. Any
65568// pending HTTP request will be aborted if the provided context is
65569// canceled.
65570func (c *RoutersPreviewCall) Context(ctx context.Context) *RoutersPreviewCall {
65571	c.ctx_ = ctx
65572	return c
65573}
65574
65575// Header returns an http.Header that can be modified by the caller to
65576// add HTTP headers to the request.
65577func (c *RoutersPreviewCall) Header() http.Header {
65578	if c.header_ == nil {
65579		c.header_ = make(http.Header)
65580	}
65581	return c.header_
65582}
65583
65584func (c *RoutersPreviewCall) doRequest(alt string) (*http.Response, error) {
65585	reqHeaders := make(http.Header)
65586	for k, v := range c.header_ {
65587		reqHeaders[k] = v
65588	}
65589	reqHeaders.Set("User-Agent", c.s.userAgent())
65590	var body io.Reader = nil
65591	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
65592	if err != nil {
65593		return nil, err
65594	}
65595	reqHeaders.Set("Content-Type", "application/json")
65596	c.urlParams_.Set("alt", alt)
65597	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/preview")
65598	urls += "?" + c.urlParams_.Encode()
65599	req, _ := http.NewRequest("POST", urls, body)
65600	req.Header = reqHeaders
65601	googleapi.Expand(req.URL, map[string]string{
65602		"project": c.project,
65603		"region":  c.region,
65604		"router":  c.router,
65605	})
65606	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65607}
65608
65609// Do executes the "compute.routers.preview" call.
65610// Exactly one of *RoutersPreviewResponse or error will be non-nil. Any
65611// non-2xx status code is an error. Response headers are in either
65612// *RoutersPreviewResponse.ServerResponse.Header or (if a response was
65613// returned at all) in error.(*googleapi.Error).Header. Use
65614// googleapi.IsNotModified to check whether the returned error was
65615// because http.StatusNotModified was returned.
65616func (c *RoutersPreviewCall) Do(opts ...googleapi.CallOption) (*RoutersPreviewResponse, error) {
65617	gensupport.SetOptions(c.urlParams_, opts...)
65618	res, err := c.doRequest("json")
65619	if res != nil && res.StatusCode == http.StatusNotModified {
65620		if res.Body != nil {
65621			res.Body.Close()
65622		}
65623		return nil, &googleapi.Error{
65624			Code:   res.StatusCode,
65625			Header: res.Header,
65626		}
65627	}
65628	if err != nil {
65629		return nil, err
65630	}
65631	defer googleapi.CloseBody(res)
65632	if err := googleapi.CheckResponse(res); err != nil {
65633		return nil, err
65634	}
65635	ret := &RoutersPreviewResponse{
65636		ServerResponse: googleapi.ServerResponse{
65637			Header:         res.Header,
65638			HTTPStatusCode: res.StatusCode,
65639		},
65640	}
65641	target := &ret
65642	if err := gensupport.DecodeResponse(target, res); err != nil {
65643		return nil, err
65644	}
65645	return ret, nil
65646	// {
65647	//   "description": "Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router.",
65648	//   "httpMethod": "POST",
65649	//   "id": "compute.routers.preview",
65650	//   "parameterOrder": [
65651	//     "project",
65652	//     "region",
65653	//     "router"
65654	//   ],
65655	//   "parameters": {
65656	//     "project": {
65657	//       "description": "Project ID for this request.",
65658	//       "location": "path",
65659	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65660	//       "required": true,
65661	//       "type": "string"
65662	//     },
65663	//     "region": {
65664	//       "description": "Name of the region for this request.",
65665	//       "location": "path",
65666	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
65667	//       "required": true,
65668	//       "type": "string"
65669	//     },
65670	//     "router": {
65671	//       "description": "Name of the Router resource to query.",
65672	//       "location": "path",
65673	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
65674	//       "required": true,
65675	//       "type": "string"
65676	//     }
65677	//   },
65678	//   "path": "{project}/regions/{region}/routers/{router}/preview",
65679	//   "request": {
65680	//     "$ref": "Router"
65681	//   },
65682	//   "response": {
65683	//     "$ref": "RoutersPreviewResponse"
65684	//   },
65685	//   "scopes": [
65686	//     "https://www.googleapis.com/auth/cloud-platform",
65687	//     "https://www.googleapis.com/auth/compute",
65688	//     "https://www.googleapis.com/auth/compute.readonly"
65689	//   ]
65690	// }
65691
65692}
65693
65694// method id "compute.routers.update":
65695
65696type RoutersUpdateCall struct {
65697	s          *Service
65698	project    string
65699	region     string
65700	router     string
65701	router2    *Router
65702	urlParams_ gensupport.URLParams
65703	ctx_       context.Context
65704	header_    http.Header
65705}
65706
65707// Update: Updates the specified Router resource with the data included
65708// in the request.
65709func (r *RoutersService) Update(project string, region string, router string, router2 *Router) *RoutersUpdateCall {
65710	c := &RoutersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65711	c.project = project
65712	c.region = region
65713	c.router = router
65714	c.router2 = router2
65715	return c
65716}
65717
65718// RequestId sets the optional parameter "requestId": An optional
65719// request ID to identify requests. Specify a unique request ID so that
65720// if you must retry your request, the server will know to ignore the
65721// request if it has already been completed.
65722//
65723// For example, consider a situation where you make an initial request
65724// and the request times out. If you make the request again with the
65725// same request ID, the server can check if original operation with the
65726// same request ID was received, and if so, will ignore the second
65727// request. This prevents clients from accidentally creating duplicate
65728// commitments.
65729//
65730// The request ID must be a valid UUID with the exception that zero UUID
65731// is not supported (00000000-0000-0000-0000-000000000000).
65732func (c *RoutersUpdateCall) RequestId(requestId string) *RoutersUpdateCall {
65733	c.urlParams_.Set("requestId", requestId)
65734	return c
65735}
65736
65737// Fields allows partial responses to be retrieved. See
65738// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65739// for more information.
65740func (c *RoutersUpdateCall) Fields(s ...googleapi.Field) *RoutersUpdateCall {
65741	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65742	return c
65743}
65744
65745// Context sets the context to be used in this call's Do method. Any
65746// pending HTTP request will be aborted if the provided context is
65747// canceled.
65748func (c *RoutersUpdateCall) Context(ctx context.Context) *RoutersUpdateCall {
65749	c.ctx_ = ctx
65750	return c
65751}
65752
65753// Header returns an http.Header that can be modified by the caller to
65754// add HTTP headers to the request.
65755func (c *RoutersUpdateCall) Header() http.Header {
65756	if c.header_ == nil {
65757		c.header_ = make(http.Header)
65758	}
65759	return c.header_
65760}
65761
65762func (c *RoutersUpdateCall) doRequest(alt string) (*http.Response, error) {
65763	reqHeaders := make(http.Header)
65764	for k, v := range c.header_ {
65765		reqHeaders[k] = v
65766	}
65767	reqHeaders.Set("User-Agent", c.s.userAgent())
65768	var body io.Reader = nil
65769	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
65770	if err != nil {
65771		return nil, err
65772	}
65773	reqHeaders.Set("Content-Type", "application/json")
65774	c.urlParams_.Set("alt", alt)
65775	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
65776	urls += "?" + c.urlParams_.Encode()
65777	req, _ := http.NewRequest("PUT", urls, body)
65778	req.Header = reqHeaders
65779	googleapi.Expand(req.URL, map[string]string{
65780		"project": c.project,
65781		"region":  c.region,
65782		"router":  c.router,
65783	})
65784	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65785}
65786
65787// Do executes the "compute.routers.update" call.
65788// Exactly one of *Operation or error will be non-nil. Any non-2xx
65789// status code is an error. Response headers are in either
65790// *Operation.ServerResponse.Header or (if a response was returned at
65791// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65792// to check whether the returned error was because
65793// http.StatusNotModified was returned.
65794func (c *RoutersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65795	gensupport.SetOptions(c.urlParams_, opts...)
65796	res, err := c.doRequest("json")
65797	if res != nil && res.StatusCode == http.StatusNotModified {
65798		if res.Body != nil {
65799			res.Body.Close()
65800		}
65801		return nil, &googleapi.Error{
65802			Code:   res.StatusCode,
65803			Header: res.Header,
65804		}
65805	}
65806	if err != nil {
65807		return nil, err
65808	}
65809	defer googleapi.CloseBody(res)
65810	if err := googleapi.CheckResponse(res); err != nil {
65811		return nil, err
65812	}
65813	ret := &Operation{
65814		ServerResponse: googleapi.ServerResponse{
65815			Header:         res.Header,
65816			HTTPStatusCode: res.StatusCode,
65817		},
65818	}
65819	target := &ret
65820	if err := gensupport.DecodeResponse(target, res); err != nil {
65821		return nil, err
65822	}
65823	return ret, nil
65824	// {
65825	//   "description": "Updates the specified Router resource with the data included in the request.",
65826	//   "httpMethod": "PUT",
65827	//   "id": "compute.routers.update",
65828	//   "parameterOrder": [
65829	//     "project",
65830	//     "region",
65831	//     "router"
65832	//   ],
65833	//   "parameters": {
65834	//     "project": {
65835	//       "description": "Project ID for this request.",
65836	//       "location": "path",
65837	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65838	//       "required": true,
65839	//       "type": "string"
65840	//     },
65841	//     "region": {
65842	//       "description": "Name of the region for this request.",
65843	//       "location": "path",
65844	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
65845	//       "required": true,
65846	//       "type": "string"
65847	//     },
65848	//     "requestId": {
65849	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65850	//       "location": "query",
65851	//       "type": "string"
65852	//     },
65853	//     "router": {
65854	//       "description": "Name of the Router resource to update.",
65855	//       "location": "path",
65856	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
65857	//       "required": true,
65858	//       "type": "string"
65859	//     }
65860	//   },
65861	//   "path": "{project}/regions/{region}/routers/{router}",
65862	//   "request": {
65863	//     "$ref": "Router"
65864	//   },
65865	//   "response": {
65866	//     "$ref": "Operation"
65867	//   },
65868	//   "scopes": [
65869	//     "https://www.googleapis.com/auth/cloud-platform",
65870	//     "https://www.googleapis.com/auth/compute"
65871	//   ]
65872	// }
65873
65874}
65875
65876// method id "compute.routes.delete":
65877
65878type RoutesDeleteCall struct {
65879	s          *Service
65880	project    string
65881	route      string
65882	urlParams_ gensupport.URLParams
65883	ctx_       context.Context
65884	header_    http.Header
65885}
65886
65887// Delete: Deletes the specified Route resource.
65888// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/delete
65889func (r *RoutesService) Delete(project string, route string) *RoutesDeleteCall {
65890	c := &RoutesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65891	c.project = project
65892	c.route = route
65893	return c
65894}
65895
65896// RequestId sets the optional parameter "requestId": An optional
65897// request ID to identify requests. Specify a unique request ID so that
65898// if you must retry your request, the server will know to ignore the
65899// request if it has already been completed.
65900//
65901// For example, consider a situation where you make an initial request
65902// and the request times out. If you make the request again with the
65903// same request ID, the server can check if original operation with the
65904// same request ID was received, and if so, will ignore the second
65905// request. This prevents clients from accidentally creating duplicate
65906// commitments.
65907//
65908// The request ID must be a valid UUID with the exception that zero UUID
65909// is not supported (00000000-0000-0000-0000-000000000000).
65910func (c *RoutesDeleteCall) RequestId(requestId string) *RoutesDeleteCall {
65911	c.urlParams_.Set("requestId", requestId)
65912	return c
65913}
65914
65915// Fields allows partial responses to be retrieved. See
65916// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65917// for more information.
65918func (c *RoutesDeleteCall) Fields(s ...googleapi.Field) *RoutesDeleteCall {
65919	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65920	return c
65921}
65922
65923// Context sets the context to be used in this call's Do method. Any
65924// pending HTTP request will be aborted if the provided context is
65925// canceled.
65926func (c *RoutesDeleteCall) Context(ctx context.Context) *RoutesDeleteCall {
65927	c.ctx_ = ctx
65928	return c
65929}
65930
65931// Header returns an http.Header that can be modified by the caller to
65932// add HTTP headers to the request.
65933func (c *RoutesDeleteCall) Header() http.Header {
65934	if c.header_ == nil {
65935		c.header_ = make(http.Header)
65936	}
65937	return c.header_
65938}
65939
65940func (c *RoutesDeleteCall) doRequest(alt string) (*http.Response, error) {
65941	reqHeaders := make(http.Header)
65942	for k, v := range c.header_ {
65943		reqHeaders[k] = v
65944	}
65945	reqHeaders.Set("User-Agent", c.s.userAgent())
65946	var body io.Reader = nil
65947	c.urlParams_.Set("alt", alt)
65948	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{route}")
65949	urls += "?" + c.urlParams_.Encode()
65950	req, _ := http.NewRequest("DELETE", urls, body)
65951	req.Header = reqHeaders
65952	googleapi.Expand(req.URL, map[string]string{
65953		"project": c.project,
65954		"route":   c.route,
65955	})
65956	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65957}
65958
65959// Do executes the "compute.routes.delete" call.
65960// Exactly one of *Operation or error will be non-nil. Any non-2xx
65961// status code is an error. Response headers are in either
65962// *Operation.ServerResponse.Header or (if a response was returned at
65963// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65964// to check whether the returned error was because
65965// http.StatusNotModified was returned.
65966func (c *RoutesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65967	gensupport.SetOptions(c.urlParams_, opts...)
65968	res, err := c.doRequest("json")
65969	if res != nil && res.StatusCode == http.StatusNotModified {
65970		if res.Body != nil {
65971			res.Body.Close()
65972		}
65973		return nil, &googleapi.Error{
65974			Code:   res.StatusCode,
65975			Header: res.Header,
65976		}
65977	}
65978	if err != nil {
65979		return nil, err
65980	}
65981	defer googleapi.CloseBody(res)
65982	if err := googleapi.CheckResponse(res); err != nil {
65983		return nil, err
65984	}
65985	ret := &Operation{
65986		ServerResponse: googleapi.ServerResponse{
65987			Header:         res.Header,
65988			HTTPStatusCode: res.StatusCode,
65989		},
65990	}
65991	target := &ret
65992	if err := gensupport.DecodeResponse(target, res); err != nil {
65993		return nil, err
65994	}
65995	return ret, nil
65996	// {
65997	//   "description": "Deletes the specified Route resource.",
65998	//   "httpMethod": "DELETE",
65999	//   "id": "compute.routes.delete",
66000	//   "parameterOrder": [
66001	//     "project",
66002	//     "route"
66003	//   ],
66004	//   "parameters": {
66005	//     "project": {
66006	//       "description": "Project ID for this request.",
66007	//       "location": "path",
66008	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66009	//       "required": true,
66010	//       "type": "string"
66011	//     },
66012	//     "requestId": {
66013	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66014	//       "location": "query",
66015	//       "type": "string"
66016	//     },
66017	//     "route": {
66018	//       "description": "Name of the Route resource to delete.",
66019	//       "location": "path",
66020	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
66021	//       "required": true,
66022	//       "type": "string"
66023	//     }
66024	//   },
66025	//   "path": "{project}/global/routes/{route}",
66026	//   "response": {
66027	//     "$ref": "Operation"
66028	//   },
66029	//   "scopes": [
66030	//     "https://www.googleapis.com/auth/cloud-platform",
66031	//     "https://www.googleapis.com/auth/compute"
66032	//   ]
66033	// }
66034
66035}
66036
66037// method id "compute.routes.get":
66038
66039type RoutesGetCall struct {
66040	s            *Service
66041	project      string
66042	route        string
66043	urlParams_   gensupport.URLParams
66044	ifNoneMatch_ string
66045	ctx_         context.Context
66046	header_      http.Header
66047}
66048
66049// Get: Returns the specified Route resource. Get a list of available
66050// routes by making a list() request.
66051// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/get
66052func (r *RoutesService) Get(project string, route string) *RoutesGetCall {
66053	c := &RoutesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66054	c.project = project
66055	c.route = route
66056	return c
66057}
66058
66059// Fields allows partial responses to be retrieved. See
66060// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66061// for more information.
66062func (c *RoutesGetCall) Fields(s ...googleapi.Field) *RoutesGetCall {
66063	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66064	return c
66065}
66066
66067// IfNoneMatch sets the optional parameter which makes the operation
66068// fail if the object's ETag matches the given value. This is useful for
66069// getting updates only after the object has changed since the last
66070// request. Use googleapi.IsNotModified to check whether the response
66071// error from Do is the result of In-None-Match.
66072func (c *RoutesGetCall) IfNoneMatch(entityTag string) *RoutesGetCall {
66073	c.ifNoneMatch_ = entityTag
66074	return c
66075}
66076
66077// Context sets the context to be used in this call's Do method. Any
66078// pending HTTP request will be aborted if the provided context is
66079// canceled.
66080func (c *RoutesGetCall) Context(ctx context.Context) *RoutesGetCall {
66081	c.ctx_ = ctx
66082	return c
66083}
66084
66085// Header returns an http.Header that can be modified by the caller to
66086// add HTTP headers to the request.
66087func (c *RoutesGetCall) Header() http.Header {
66088	if c.header_ == nil {
66089		c.header_ = make(http.Header)
66090	}
66091	return c.header_
66092}
66093
66094func (c *RoutesGetCall) doRequest(alt string) (*http.Response, error) {
66095	reqHeaders := make(http.Header)
66096	for k, v := range c.header_ {
66097		reqHeaders[k] = v
66098	}
66099	reqHeaders.Set("User-Agent", c.s.userAgent())
66100	if c.ifNoneMatch_ != "" {
66101		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66102	}
66103	var body io.Reader = nil
66104	c.urlParams_.Set("alt", alt)
66105	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{route}")
66106	urls += "?" + c.urlParams_.Encode()
66107	req, _ := http.NewRequest("GET", urls, body)
66108	req.Header = reqHeaders
66109	googleapi.Expand(req.URL, map[string]string{
66110		"project": c.project,
66111		"route":   c.route,
66112	})
66113	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66114}
66115
66116// Do executes the "compute.routes.get" call.
66117// Exactly one of *Route or error will be non-nil. Any non-2xx status
66118// code is an error. Response headers are in either
66119// *Route.ServerResponse.Header or (if a response was returned at all)
66120// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
66121// check whether the returned error was because http.StatusNotModified
66122// was returned.
66123func (c *RoutesGetCall) Do(opts ...googleapi.CallOption) (*Route, error) {
66124	gensupport.SetOptions(c.urlParams_, opts...)
66125	res, err := c.doRequest("json")
66126	if res != nil && res.StatusCode == http.StatusNotModified {
66127		if res.Body != nil {
66128			res.Body.Close()
66129		}
66130		return nil, &googleapi.Error{
66131			Code:   res.StatusCode,
66132			Header: res.Header,
66133		}
66134	}
66135	if err != nil {
66136		return nil, err
66137	}
66138	defer googleapi.CloseBody(res)
66139	if err := googleapi.CheckResponse(res); err != nil {
66140		return nil, err
66141	}
66142	ret := &Route{
66143		ServerResponse: googleapi.ServerResponse{
66144			Header:         res.Header,
66145			HTTPStatusCode: res.StatusCode,
66146		},
66147	}
66148	target := &ret
66149	if err := gensupport.DecodeResponse(target, res); err != nil {
66150		return nil, err
66151	}
66152	return ret, nil
66153	// {
66154	//   "description": "Returns the specified Route resource. Get a list of available routes by making a list() request.",
66155	//   "httpMethod": "GET",
66156	//   "id": "compute.routes.get",
66157	//   "parameterOrder": [
66158	//     "project",
66159	//     "route"
66160	//   ],
66161	//   "parameters": {
66162	//     "project": {
66163	//       "description": "Project ID for this request.",
66164	//       "location": "path",
66165	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66166	//       "required": true,
66167	//       "type": "string"
66168	//     },
66169	//     "route": {
66170	//       "description": "Name of the Route resource to return.",
66171	//       "location": "path",
66172	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
66173	//       "required": true,
66174	//       "type": "string"
66175	//     }
66176	//   },
66177	//   "path": "{project}/global/routes/{route}",
66178	//   "response": {
66179	//     "$ref": "Route"
66180	//   },
66181	//   "scopes": [
66182	//     "https://www.googleapis.com/auth/cloud-platform",
66183	//     "https://www.googleapis.com/auth/compute",
66184	//     "https://www.googleapis.com/auth/compute.readonly"
66185	//   ]
66186	// }
66187
66188}
66189
66190// method id "compute.routes.insert":
66191
66192type RoutesInsertCall struct {
66193	s          *Service
66194	project    string
66195	route      *Route
66196	urlParams_ gensupport.URLParams
66197	ctx_       context.Context
66198	header_    http.Header
66199}
66200
66201// Insert: Creates a Route resource in the specified project using the
66202// data included in the request.
66203// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/insert
66204func (r *RoutesService) Insert(project string, route *Route) *RoutesInsertCall {
66205	c := &RoutesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66206	c.project = project
66207	c.route = route
66208	return c
66209}
66210
66211// RequestId sets the optional parameter "requestId": An optional
66212// request ID to identify requests. Specify a unique request ID so that
66213// if you must retry your request, the server will know to ignore the
66214// request if it has already been completed.
66215//
66216// For example, consider a situation where you make an initial request
66217// and the request times out. If you make the request again with the
66218// same request ID, the server can check if original operation with the
66219// same request ID was received, and if so, will ignore the second
66220// request. This prevents clients from accidentally creating duplicate
66221// commitments.
66222//
66223// The request ID must be a valid UUID with the exception that zero UUID
66224// is not supported (00000000-0000-0000-0000-000000000000).
66225func (c *RoutesInsertCall) RequestId(requestId string) *RoutesInsertCall {
66226	c.urlParams_.Set("requestId", requestId)
66227	return c
66228}
66229
66230// Fields allows partial responses to be retrieved. See
66231// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66232// for more information.
66233func (c *RoutesInsertCall) Fields(s ...googleapi.Field) *RoutesInsertCall {
66234	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66235	return c
66236}
66237
66238// Context sets the context to be used in this call's Do method. Any
66239// pending HTTP request will be aborted if the provided context is
66240// canceled.
66241func (c *RoutesInsertCall) Context(ctx context.Context) *RoutesInsertCall {
66242	c.ctx_ = ctx
66243	return c
66244}
66245
66246// Header returns an http.Header that can be modified by the caller to
66247// add HTTP headers to the request.
66248func (c *RoutesInsertCall) Header() http.Header {
66249	if c.header_ == nil {
66250		c.header_ = make(http.Header)
66251	}
66252	return c.header_
66253}
66254
66255func (c *RoutesInsertCall) doRequest(alt string) (*http.Response, error) {
66256	reqHeaders := make(http.Header)
66257	for k, v := range c.header_ {
66258		reqHeaders[k] = v
66259	}
66260	reqHeaders.Set("User-Agent", c.s.userAgent())
66261	var body io.Reader = nil
66262	body, err := googleapi.WithoutDataWrapper.JSONReader(c.route)
66263	if err != nil {
66264		return nil, err
66265	}
66266	reqHeaders.Set("Content-Type", "application/json")
66267	c.urlParams_.Set("alt", alt)
66268	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes")
66269	urls += "?" + c.urlParams_.Encode()
66270	req, _ := http.NewRequest("POST", urls, body)
66271	req.Header = reqHeaders
66272	googleapi.Expand(req.URL, map[string]string{
66273		"project": c.project,
66274	})
66275	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66276}
66277
66278// Do executes the "compute.routes.insert" call.
66279// Exactly one of *Operation or error will be non-nil. Any non-2xx
66280// status code is an error. Response headers are in either
66281// *Operation.ServerResponse.Header or (if a response was returned at
66282// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66283// to check whether the returned error was because
66284// http.StatusNotModified was returned.
66285func (c *RoutesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66286	gensupport.SetOptions(c.urlParams_, opts...)
66287	res, err := c.doRequest("json")
66288	if res != nil && res.StatusCode == http.StatusNotModified {
66289		if res.Body != nil {
66290			res.Body.Close()
66291		}
66292		return nil, &googleapi.Error{
66293			Code:   res.StatusCode,
66294			Header: res.Header,
66295		}
66296	}
66297	if err != nil {
66298		return nil, err
66299	}
66300	defer googleapi.CloseBody(res)
66301	if err := googleapi.CheckResponse(res); err != nil {
66302		return nil, err
66303	}
66304	ret := &Operation{
66305		ServerResponse: googleapi.ServerResponse{
66306			Header:         res.Header,
66307			HTTPStatusCode: res.StatusCode,
66308		},
66309	}
66310	target := &ret
66311	if err := gensupport.DecodeResponse(target, res); err != nil {
66312		return nil, err
66313	}
66314	return ret, nil
66315	// {
66316	//   "description": "Creates a Route resource in the specified project using the data included in the request.",
66317	//   "httpMethod": "POST",
66318	//   "id": "compute.routes.insert",
66319	//   "parameterOrder": [
66320	//     "project"
66321	//   ],
66322	//   "parameters": {
66323	//     "project": {
66324	//       "description": "Project ID for this request.",
66325	//       "location": "path",
66326	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66327	//       "required": true,
66328	//       "type": "string"
66329	//     },
66330	//     "requestId": {
66331	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66332	//       "location": "query",
66333	//       "type": "string"
66334	//     }
66335	//   },
66336	//   "path": "{project}/global/routes",
66337	//   "request": {
66338	//     "$ref": "Route"
66339	//   },
66340	//   "response": {
66341	//     "$ref": "Operation"
66342	//   },
66343	//   "scopes": [
66344	//     "https://www.googleapis.com/auth/cloud-platform",
66345	//     "https://www.googleapis.com/auth/compute"
66346	//   ]
66347	// }
66348
66349}
66350
66351// method id "compute.routes.list":
66352
66353type RoutesListCall struct {
66354	s            *Service
66355	project      string
66356	urlParams_   gensupport.URLParams
66357	ifNoneMatch_ string
66358	ctx_         context.Context
66359	header_      http.Header
66360}
66361
66362// List: Retrieves the list of Route resources available to the
66363// specified project.
66364// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/list
66365func (r *RoutesService) List(project string) *RoutesListCall {
66366	c := &RoutesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66367	c.project = project
66368	return c
66369}
66370
66371// Filter sets the optional parameter "filter": Sets a filter
66372// {expression} for filtering listed resources. Your {expression} must
66373// be in the format: field_name comparison_string literal_string.
66374//
66375// The field_name is the name of the field you want to compare. Only
66376// atomic field types are supported (string, number, boolean). The
66377// comparison_string must be either eq (equals) or ne (not equals). The
66378// literal_string is the string value to filter to. The literal value
66379// must be valid for the type of field you are filtering by (string,
66380// number, boolean). For string fields, the literal value is interpreted
66381// as a regular expression using RE2 syntax. The literal value must
66382// match the entire field.
66383//
66384// For example, to filter for instances that do not have a name of
66385// example-instance, you would use name ne example-instance.
66386//
66387// You can filter on nested fields. For example, you could filter on
66388// instances that have set the scheduling.automaticRestart field to
66389// true. Use filtering on nested fields to take advantage of labels to
66390// organize and search for results based on label values.
66391//
66392// To filter on multiple expressions, provide each separate expression
66393// within parentheses. For example, (scheduling.automaticRestart eq
66394// true) (zone eq us-central1-f). Multiple expressions are treated as
66395// AND expressions, meaning that resources must match all expressions to
66396// pass the filters.
66397func (c *RoutesListCall) Filter(filter string) *RoutesListCall {
66398	c.urlParams_.Set("filter", filter)
66399	return c
66400}
66401
66402// MaxResults sets the optional parameter "maxResults": The maximum
66403// number of results per page that should be returned. If the number of
66404// available results is larger than maxResults, Compute Engine returns a
66405// nextPageToken that can be used to get the next page of results in
66406// subsequent list requests. Acceptable values are 0 to 500, inclusive.
66407// (Default: 500)
66408func (c *RoutesListCall) MaxResults(maxResults int64) *RoutesListCall {
66409	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
66410	return c
66411}
66412
66413// OrderBy sets the optional parameter "orderBy": Sorts list results by
66414// a certain order. By default, results are returned in alphanumerical
66415// order based on the resource name.
66416//
66417// You can also sort results in descending order based on the creation
66418// timestamp using orderBy="creationTimestamp desc". This sorts results
66419// based on the creationTimestamp field in reverse chronological order
66420// (newest result first). Use this to sort resources like operations so
66421// that the newest operation is returned first.
66422//
66423// Currently, only sorting by name or creationTimestamp desc is
66424// supported.
66425func (c *RoutesListCall) OrderBy(orderBy string) *RoutesListCall {
66426	c.urlParams_.Set("orderBy", orderBy)
66427	return c
66428}
66429
66430// PageToken sets the optional parameter "pageToken": Specifies a page
66431// token to use. Set pageToken to the nextPageToken returned by a
66432// previous list request to get the next page of results.
66433func (c *RoutesListCall) PageToken(pageToken string) *RoutesListCall {
66434	c.urlParams_.Set("pageToken", pageToken)
66435	return c
66436}
66437
66438// Fields allows partial responses to be retrieved. See
66439// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66440// for more information.
66441func (c *RoutesListCall) Fields(s ...googleapi.Field) *RoutesListCall {
66442	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66443	return c
66444}
66445
66446// IfNoneMatch sets the optional parameter which makes the operation
66447// fail if the object's ETag matches the given value. This is useful for
66448// getting updates only after the object has changed since the last
66449// request. Use googleapi.IsNotModified to check whether the response
66450// error from Do is the result of In-None-Match.
66451func (c *RoutesListCall) IfNoneMatch(entityTag string) *RoutesListCall {
66452	c.ifNoneMatch_ = entityTag
66453	return c
66454}
66455
66456// Context sets the context to be used in this call's Do method. Any
66457// pending HTTP request will be aborted if the provided context is
66458// canceled.
66459func (c *RoutesListCall) Context(ctx context.Context) *RoutesListCall {
66460	c.ctx_ = ctx
66461	return c
66462}
66463
66464// Header returns an http.Header that can be modified by the caller to
66465// add HTTP headers to the request.
66466func (c *RoutesListCall) Header() http.Header {
66467	if c.header_ == nil {
66468		c.header_ = make(http.Header)
66469	}
66470	return c.header_
66471}
66472
66473func (c *RoutesListCall) doRequest(alt string) (*http.Response, error) {
66474	reqHeaders := make(http.Header)
66475	for k, v := range c.header_ {
66476		reqHeaders[k] = v
66477	}
66478	reqHeaders.Set("User-Agent", c.s.userAgent())
66479	if c.ifNoneMatch_ != "" {
66480		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66481	}
66482	var body io.Reader = nil
66483	c.urlParams_.Set("alt", alt)
66484	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes")
66485	urls += "?" + c.urlParams_.Encode()
66486	req, _ := http.NewRequest("GET", urls, body)
66487	req.Header = reqHeaders
66488	googleapi.Expand(req.URL, map[string]string{
66489		"project": c.project,
66490	})
66491	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66492}
66493
66494// Do executes the "compute.routes.list" call.
66495// Exactly one of *RouteList or error will be non-nil. Any non-2xx
66496// status code is an error. Response headers are in either
66497// *RouteList.ServerResponse.Header or (if a response was returned at
66498// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66499// to check whether the returned error was because
66500// http.StatusNotModified was returned.
66501func (c *RoutesListCall) Do(opts ...googleapi.CallOption) (*RouteList, error) {
66502	gensupport.SetOptions(c.urlParams_, opts...)
66503	res, err := c.doRequest("json")
66504	if res != nil && res.StatusCode == http.StatusNotModified {
66505		if res.Body != nil {
66506			res.Body.Close()
66507		}
66508		return nil, &googleapi.Error{
66509			Code:   res.StatusCode,
66510			Header: res.Header,
66511		}
66512	}
66513	if err != nil {
66514		return nil, err
66515	}
66516	defer googleapi.CloseBody(res)
66517	if err := googleapi.CheckResponse(res); err != nil {
66518		return nil, err
66519	}
66520	ret := &RouteList{
66521		ServerResponse: googleapi.ServerResponse{
66522			Header:         res.Header,
66523			HTTPStatusCode: res.StatusCode,
66524		},
66525	}
66526	target := &ret
66527	if err := gensupport.DecodeResponse(target, res); err != nil {
66528		return nil, err
66529	}
66530	return ret, nil
66531	// {
66532	//   "description": "Retrieves the list of Route resources available to the specified project.",
66533	//   "httpMethod": "GET",
66534	//   "id": "compute.routes.list",
66535	//   "parameterOrder": [
66536	//     "project"
66537	//   ],
66538	//   "parameters": {
66539	//     "filter": {
66540	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
66541	//       "location": "query",
66542	//       "type": "string"
66543	//     },
66544	//     "maxResults": {
66545	//       "default": "500",
66546	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
66547	//       "format": "uint32",
66548	//       "location": "query",
66549	//       "minimum": "0",
66550	//       "type": "integer"
66551	//     },
66552	//     "orderBy": {
66553	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
66554	//       "location": "query",
66555	//       "type": "string"
66556	//     },
66557	//     "pageToken": {
66558	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
66559	//       "location": "query",
66560	//       "type": "string"
66561	//     },
66562	//     "project": {
66563	//       "description": "Project ID for this request.",
66564	//       "location": "path",
66565	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66566	//       "required": true,
66567	//       "type": "string"
66568	//     }
66569	//   },
66570	//   "path": "{project}/global/routes",
66571	//   "response": {
66572	//     "$ref": "RouteList"
66573	//   },
66574	//   "scopes": [
66575	//     "https://www.googleapis.com/auth/cloud-platform",
66576	//     "https://www.googleapis.com/auth/compute",
66577	//     "https://www.googleapis.com/auth/compute.readonly"
66578	//   ]
66579	// }
66580
66581}
66582
66583// Pages invokes f for each page of results.
66584// A non-nil error returned from f will halt the iteration.
66585// The provided context supersedes any context provided to the Context method.
66586func (c *RoutesListCall) Pages(ctx context.Context, f func(*RouteList) error) error {
66587	c.ctx_ = ctx
66588	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
66589	for {
66590		x, err := c.Do()
66591		if err != nil {
66592			return err
66593		}
66594		if err := f(x); err != nil {
66595			return err
66596		}
66597		if x.NextPageToken == "" {
66598			return nil
66599		}
66600		c.PageToken(x.NextPageToken)
66601	}
66602}
66603
66604// method id "compute.snapshots.delete":
66605
66606type SnapshotsDeleteCall struct {
66607	s          *Service
66608	project    string
66609	snapshot   string
66610	urlParams_ gensupport.URLParams
66611	ctx_       context.Context
66612	header_    http.Header
66613}
66614
66615// Delete: Deletes the specified Snapshot resource. Keep in mind that
66616// deleting a single snapshot might not necessarily delete all the data
66617// on that snapshot. If any data on the snapshot that is marked for
66618// deletion is needed for subsequent snapshots, the data will be moved
66619// to the next corresponding snapshot.
66620//
66621// For more information, see Deleting snaphots.
66622// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/delete
66623func (r *SnapshotsService) Delete(project string, snapshot string) *SnapshotsDeleteCall {
66624	c := &SnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66625	c.project = project
66626	c.snapshot = snapshot
66627	return c
66628}
66629
66630// RequestId sets the optional parameter "requestId": An optional
66631// request ID to identify requests. Specify a unique request ID so that
66632// if you must retry your request, the server will know to ignore the
66633// request if it has already been completed.
66634//
66635// For example, consider a situation where you make an initial request
66636// and the request times out. If you make the request again with the
66637// same request ID, the server can check if original operation with the
66638// same request ID was received, and if so, will ignore the second
66639// request. This prevents clients from accidentally creating duplicate
66640// commitments.
66641//
66642// The request ID must be a valid UUID with the exception that zero UUID
66643// is not supported (00000000-0000-0000-0000-000000000000).
66644func (c *SnapshotsDeleteCall) RequestId(requestId string) *SnapshotsDeleteCall {
66645	c.urlParams_.Set("requestId", requestId)
66646	return c
66647}
66648
66649// Fields allows partial responses to be retrieved. See
66650// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66651// for more information.
66652func (c *SnapshotsDeleteCall) Fields(s ...googleapi.Field) *SnapshotsDeleteCall {
66653	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66654	return c
66655}
66656
66657// Context sets the context to be used in this call's Do method. Any
66658// pending HTTP request will be aborted if the provided context is
66659// canceled.
66660func (c *SnapshotsDeleteCall) Context(ctx context.Context) *SnapshotsDeleteCall {
66661	c.ctx_ = ctx
66662	return c
66663}
66664
66665// Header returns an http.Header that can be modified by the caller to
66666// add HTTP headers to the request.
66667func (c *SnapshotsDeleteCall) Header() http.Header {
66668	if c.header_ == nil {
66669		c.header_ = make(http.Header)
66670	}
66671	return c.header_
66672}
66673
66674func (c *SnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) {
66675	reqHeaders := make(http.Header)
66676	for k, v := range c.header_ {
66677		reqHeaders[k] = v
66678	}
66679	reqHeaders.Set("User-Agent", c.s.userAgent())
66680	var body io.Reader = nil
66681	c.urlParams_.Set("alt", alt)
66682	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{snapshot}")
66683	urls += "?" + c.urlParams_.Encode()
66684	req, _ := http.NewRequest("DELETE", urls, body)
66685	req.Header = reqHeaders
66686	googleapi.Expand(req.URL, map[string]string{
66687		"project":  c.project,
66688		"snapshot": c.snapshot,
66689	})
66690	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66691}
66692
66693// Do executes the "compute.snapshots.delete" call.
66694// Exactly one of *Operation or error will be non-nil. Any non-2xx
66695// status code is an error. Response headers are in either
66696// *Operation.ServerResponse.Header or (if a response was returned at
66697// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66698// to check whether the returned error was because
66699// http.StatusNotModified was returned.
66700func (c *SnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66701	gensupport.SetOptions(c.urlParams_, opts...)
66702	res, err := c.doRequest("json")
66703	if res != nil && res.StatusCode == http.StatusNotModified {
66704		if res.Body != nil {
66705			res.Body.Close()
66706		}
66707		return nil, &googleapi.Error{
66708			Code:   res.StatusCode,
66709			Header: res.Header,
66710		}
66711	}
66712	if err != nil {
66713		return nil, err
66714	}
66715	defer googleapi.CloseBody(res)
66716	if err := googleapi.CheckResponse(res); err != nil {
66717		return nil, err
66718	}
66719	ret := &Operation{
66720		ServerResponse: googleapi.ServerResponse{
66721			Header:         res.Header,
66722			HTTPStatusCode: res.StatusCode,
66723		},
66724	}
66725	target := &ret
66726	if err := gensupport.DecodeResponse(target, res); err != nil {
66727		return nil, err
66728	}
66729	return ret, nil
66730	// {
66731	//   "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.",
66732	//   "httpMethod": "DELETE",
66733	//   "id": "compute.snapshots.delete",
66734	//   "parameterOrder": [
66735	//     "project",
66736	//     "snapshot"
66737	//   ],
66738	//   "parameters": {
66739	//     "project": {
66740	//       "description": "Project ID for this request.",
66741	//       "location": "path",
66742	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66743	//       "required": true,
66744	//       "type": "string"
66745	//     },
66746	//     "requestId": {
66747	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66748	//       "location": "query",
66749	//       "type": "string"
66750	//     },
66751	//     "snapshot": {
66752	//       "description": "Name of the Snapshot resource to delete.",
66753	//       "location": "path",
66754	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
66755	//       "required": true,
66756	//       "type": "string"
66757	//     }
66758	//   },
66759	//   "path": "{project}/global/snapshots/{snapshot}",
66760	//   "response": {
66761	//     "$ref": "Operation"
66762	//   },
66763	//   "scopes": [
66764	//     "https://www.googleapis.com/auth/cloud-platform",
66765	//     "https://www.googleapis.com/auth/compute"
66766	//   ]
66767	// }
66768
66769}
66770
66771// method id "compute.snapshots.get":
66772
66773type SnapshotsGetCall struct {
66774	s            *Service
66775	project      string
66776	snapshot     string
66777	urlParams_   gensupport.URLParams
66778	ifNoneMatch_ string
66779	ctx_         context.Context
66780	header_      http.Header
66781}
66782
66783// Get: Returns the specified Snapshot resource. Get a list of available
66784// snapshots by making a list() request.
66785// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/get
66786func (r *SnapshotsService) Get(project string, snapshot string) *SnapshotsGetCall {
66787	c := &SnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66788	c.project = project
66789	c.snapshot = snapshot
66790	return c
66791}
66792
66793// Fields allows partial responses to be retrieved. See
66794// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66795// for more information.
66796func (c *SnapshotsGetCall) Fields(s ...googleapi.Field) *SnapshotsGetCall {
66797	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66798	return c
66799}
66800
66801// IfNoneMatch sets the optional parameter which makes the operation
66802// fail if the object's ETag matches the given value. This is useful for
66803// getting updates only after the object has changed since the last
66804// request. Use googleapi.IsNotModified to check whether the response
66805// error from Do is the result of In-None-Match.
66806func (c *SnapshotsGetCall) IfNoneMatch(entityTag string) *SnapshotsGetCall {
66807	c.ifNoneMatch_ = entityTag
66808	return c
66809}
66810
66811// Context sets the context to be used in this call's Do method. Any
66812// pending HTTP request will be aborted if the provided context is
66813// canceled.
66814func (c *SnapshotsGetCall) Context(ctx context.Context) *SnapshotsGetCall {
66815	c.ctx_ = ctx
66816	return c
66817}
66818
66819// Header returns an http.Header that can be modified by the caller to
66820// add HTTP headers to the request.
66821func (c *SnapshotsGetCall) Header() http.Header {
66822	if c.header_ == nil {
66823		c.header_ = make(http.Header)
66824	}
66825	return c.header_
66826}
66827
66828func (c *SnapshotsGetCall) doRequest(alt string) (*http.Response, error) {
66829	reqHeaders := make(http.Header)
66830	for k, v := range c.header_ {
66831		reqHeaders[k] = v
66832	}
66833	reqHeaders.Set("User-Agent", c.s.userAgent())
66834	if c.ifNoneMatch_ != "" {
66835		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66836	}
66837	var body io.Reader = nil
66838	c.urlParams_.Set("alt", alt)
66839	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{snapshot}")
66840	urls += "?" + c.urlParams_.Encode()
66841	req, _ := http.NewRequest("GET", urls, body)
66842	req.Header = reqHeaders
66843	googleapi.Expand(req.URL, map[string]string{
66844		"project":  c.project,
66845		"snapshot": c.snapshot,
66846	})
66847	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66848}
66849
66850// Do executes the "compute.snapshots.get" call.
66851// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
66852// code is an error. Response headers are in either
66853// *Snapshot.ServerResponse.Header or (if a response was returned at
66854// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66855// to check whether the returned error was because
66856// http.StatusNotModified was returned.
66857func (c *SnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
66858	gensupport.SetOptions(c.urlParams_, opts...)
66859	res, err := c.doRequest("json")
66860	if res != nil && res.StatusCode == http.StatusNotModified {
66861		if res.Body != nil {
66862			res.Body.Close()
66863		}
66864		return nil, &googleapi.Error{
66865			Code:   res.StatusCode,
66866			Header: res.Header,
66867		}
66868	}
66869	if err != nil {
66870		return nil, err
66871	}
66872	defer googleapi.CloseBody(res)
66873	if err := googleapi.CheckResponse(res); err != nil {
66874		return nil, err
66875	}
66876	ret := &Snapshot{
66877		ServerResponse: googleapi.ServerResponse{
66878			Header:         res.Header,
66879			HTTPStatusCode: res.StatusCode,
66880		},
66881	}
66882	target := &ret
66883	if err := gensupport.DecodeResponse(target, res); err != nil {
66884		return nil, err
66885	}
66886	return ret, nil
66887	// {
66888	//   "description": "Returns the specified Snapshot resource. Get a list of available snapshots by making a list() request.",
66889	//   "httpMethod": "GET",
66890	//   "id": "compute.snapshots.get",
66891	//   "parameterOrder": [
66892	//     "project",
66893	//     "snapshot"
66894	//   ],
66895	//   "parameters": {
66896	//     "project": {
66897	//       "description": "Project ID for this request.",
66898	//       "location": "path",
66899	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66900	//       "required": true,
66901	//       "type": "string"
66902	//     },
66903	//     "snapshot": {
66904	//       "description": "Name of the Snapshot resource to return.",
66905	//       "location": "path",
66906	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
66907	//       "required": true,
66908	//       "type": "string"
66909	//     }
66910	//   },
66911	//   "path": "{project}/global/snapshots/{snapshot}",
66912	//   "response": {
66913	//     "$ref": "Snapshot"
66914	//   },
66915	//   "scopes": [
66916	//     "https://www.googleapis.com/auth/cloud-platform",
66917	//     "https://www.googleapis.com/auth/compute",
66918	//     "https://www.googleapis.com/auth/compute.readonly"
66919	//   ]
66920	// }
66921
66922}
66923
66924// method id "compute.snapshots.list":
66925
66926type SnapshotsListCall struct {
66927	s            *Service
66928	project      string
66929	urlParams_   gensupport.URLParams
66930	ifNoneMatch_ string
66931	ctx_         context.Context
66932	header_      http.Header
66933}
66934
66935// List: Retrieves the list of Snapshot resources contained within the
66936// specified project.
66937// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/list
66938func (r *SnapshotsService) List(project string) *SnapshotsListCall {
66939	c := &SnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66940	c.project = project
66941	return c
66942}
66943
66944// Filter sets the optional parameter "filter": Sets a filter
66945// {expression} for filtering listed resources. Your {expression} must
66946// be in the format: field_name comparison_string literal_string.
66947//
66948// The field_name is the name of the field you want to compare. Only
66949// atomic field types are supported (string, number, boolean). The
66950// comparison_string must be either eq (equals) or ne (not equals). The
66951// literal_string is the string value to filter to. The literal value
66952// must be valid for the type of field you are filtering by (string,
66953// number, boolean). For string fields, the literal value is interpreted
66954// as a regular expression using RE2 syntax. The literal value must
66955// match the entire field.
66956//
66957// For example, to filter for instances that do not have a name of
66958// example-instance, you would use name ne example-instance.
66959//
66960// You can filter on nested fields. For example, you could filter on
66961// instances that have set the scheduling.automaticRestart field to
66962// true. Use filtering on nested fields to take advantage of labels to
66963// organize and search for results based on label values.
66964//
66965// To filter on multiple expressions, provide each separate expression
66966// within parentheses. For example, (scheduling.automaticRestart eq
66967// true) (zone eq us-central1-f). Multiple expressions are treated as
66968// AND expressions, meaning that resources must match all expressions to
66969// pass the filters.
66970func (c *SnapshotsListCall) Filter(filter string) *SnapshotsListCall {
66971	c.urlParams_.Set("filter", filter)
66972	return c
66973}
66974
66975// MaxResults sets the optional parameter "maxResults": The maximum
66976// number of results per page that should be returned. If the number of
66977// available results is larger than maxResults, Compute Engine returns a
66978// nextPageToken that can be used to get the next page of results in
66979// subsequent list requests. Acceptable values are 0 to 500, inclusive.
66980// (Default: 500)
66981func (c *SnapshotsListCall) MaxResults(maxResults int64) *SnapshotsListCall {
66982	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
66983	return c
66984}
66985
66986// OrderBy sets the optional parameter "orderBy": Sorts list results by
66987// a certain order. By default, results are returned in alphanumerical
66988// order based on the resource name.
66989//
66990// You can also sort results in descending order based on the creation
66991// timestamp using orderBy="creationTimestamp desc". This sorts results
66992// based on the creationTimestamp field in reverse chronological order
66993// (newest result first). Use this to sort resources like operations so
66994// that the newest operation is returned first.
66995//
66996// Currently, only sorting by name or creationTimestamp desc is
66997// supported.
66998func (c *SnapshotsListCall) OrderBy(orderBy string) *SnapshotsListCall {
66999	c.urlParams_.Set("orderBy", orderBy)
67000	return c
67001}
67002
67003// PageToken sets the optional parameter "pageToken": Specifies a page
67004// token to use. Set pageToken to the nextPageToken returned by a
67005// previous list request to get the next page of results.
67006func (c *SnapshotsListCall) PageToken(pageToken string) *SnapshotsListCall {
67007	c.urlParams_.Set("pageToken", pageToken)
67008	return c
67009}
67010
67011// Fields allows partial responses to be retrieved. See
67012// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67013// for more information.
67014func (c *SnapshotsListCall) Fields(s ...googleapi.Field) *SnapshotsListCall {
67015	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67016	return c
67017}
67018
67019// IfNoneMatch sets the optional parameter which makes the operation
67020// fail if the object's ETag matches the given value. This is useful for
67021// getting updates only after the object has changed since the last
67022// request. Use googleapi.IsNotModified to check whether the response
67023// error from Do is the result of In-None-Match.
67024func (c *SnapshotsListCall) IfNoneMatch(entityTag string) *SnapshotsListCall {
67025	c.ifNoneMatch_ = entityTag
67026	return c
67027}
67028
67029// Context sets the context to be used in this call's Do method. Any
67030// pending HTTP request will be aborted if the provided context is
67031// canceled.
67032func (c *SnapshotsListCall) Context(ctx context.Context) *SnapshotsListCall {
67033	c.ctx_ = ctx
67034	return c
67035}
67036
67037// Header returns an http.Header that can be modified by the caller to
67038// add HTTP headers to the request.
67039func (c *SnapshotsListCall) Header() http.Header {
67040	if c.header_ == nil {
67041		c.header_ = make(http.Header)
67042	}
67043	return c.header_
67044}
67045
67046func (c *SnapshotsListCall) doRequest(alt string) (*http.Response, error) {
67047	reqHeaders := make(http.Header)
67048	for k, v := range c.header_ {
67049		reqHeaders[k] = v
67050	}
67051	reqHeaders.Set("User-Agent", c.s.userAgent())
67052	if c.ifNoneMatch_ != "" {
67053		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67054	}
67055	var body io.Reader = nil
67056	c.urlParams_.Set("alt", alt)
67057	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots")
67058	urls += "?" + c.urlParams_.Encode()
67059	req, _ := http.NewRequest("GET", urls, body)
67060	req.Header = reqHeaders
67061	googleapi.Expand(req.URL, map[string]string{
67062		"project": c.project,
67063	})
67064	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67065}
67066
67067// Do executes the "compute.snapshots.list" call.
67068// Exactly one of *SnapshotList or error will be non-nil. Any non-2xx
67069// status code is an error. Response headers are in either
67070// *SnapshotList.ServerResponse.Header or (if a response was returned at
67071// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67072// to check whether the returned error was because
67073// http.StatusNotModified was returned.
67074func (c *SnapshotsListCall) Do(opts ...googleapi.CallOption) (*SnapshotList, error) {
67075	gensupport.SetOptions(c.urlParams_, opts...)
67076	res, err := c.doRequest("json")
67077	if res != nil && res.StatusCode == http.StatusNotModified {
67078		if res.Body != nil {
67079			res.Body.Close()
67080		}
67081		return nil, &googleapi.Error{
67082			Code:   res.StatusCode,
67083			Header: res.Header,
67084		}
67085	}
67086	if err != nil {
67087		return nil, err
67088	}
67089	defer googleapi.CloseBody(res)
67090	if err := googleapi.CheckResponse(res); err != nil {
67091		return nil, err
67092	}
67093	ret := &SnapshotList{
67094		ServerResponse: googleapi.ServerResponse{
67095			Header:         res.Header,
67096			HTTPStatusCode: res.StatusCode,
67097		},
67098	}
67099	target := &ret
67100	if err := gensupport.DecodeResponse(target, res); err != nil {
67101		return nil, err
67102	}
67103	return ret, nil
67104	// {
67105	//   "description": "Retrieves the list of Snapshot resources contained within the specified project.",
67106	//   "httpMethod": "GET",
67107	//   "id": "compute.snapshots.list",
67108	//   "parameterOrder": [
67109	//     "project"
67110	//   ],
67111	//   "parameters": {
67112	//     "filter": {
67113	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
67114	//       "location": "query",
67115	//       "type": "string"
67116	//     },
67117	//     "maxResults": {
67118	//       "default": "500",
67119	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
67120	//       "format": "uint32",
67121	//       "location": "query",
67122	//       "minimum": "0",
67123	//       "type": "integer"
67124	//     },
67125	//     "orderBy": {
67126	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
67127	//       "location": "query",
67128	//       "type": "string"
67129	//     },
67130	//     "pageToken": {
67131	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
67132	//       "location": "query",
67133	//       "type": "string"
67134	//     },
67135	//     "project": {
67136	//       "description": "Project ID for this request.",
67137	//       "location": "path",
67138	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67139	//       "required": true,
67140	//       "type": "string"
67141	//     }
67142	//   },
67143	//   "path": "{project}/global/snapshots",
67144	//   "response": {
67145	//     "$ref": "SnapshotList"
67146	//   },
67147	//   "scopes": [
67148	//     "https://www.googleapis.com/auth/cloud-platform",
67149	//     "https://www.googleapis.com/auth/compute",
67150	//     "https://www.googleapis.com/auth/compute.readonly"
67151	//   ]
67152	// }
67153
67154}
67155
67156// Pages invokes f for each page of results.
67157// A non-nil error returned from f will halt the iteration.
67158// The provided context supersedes any context provided to the Context method.
67159func (c *SnapshotsListCall) Pages(ctx context.Context, f func(*SnapshotList) error) error {
67160	c.ctx_ = ctx
67161	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
67162	for {
67163		x, err := c.Do()
67164		if err != nil {
67165			return err
67166		}
67167		if err := f(x); err != nil {
67168			return err
67169		}
67170		if x.NextPageToken == "" {
67171			return nil
67172		}
67173		c.PageToken(x.NextPageToken)
67174	}
67175}
67176
67177// method id "compute.snapshots.setLabels":
67178
67179type SnapshotsSetLabelsCall struct {
67180	s                      *Service
67181	project                string
67182	resource               string
67183	globalsetlabelsrequest *GlobalSetLabelsRequest
67184	urlParams_             gensupport.URLParams
67185	ctx_                   context.Context
67186	header_                http.Header
67187}
67188
67189// SetLabels: Sets the labels on a snapshot. To learn more about labels,
67190// read the Labeling Resources documentation.
67191func (r *SnapshotsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SnapshotsSetLabelsCall {
67192	c := &SnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67193	c.project = project
67194	c.resource = resource
67195	c.globalsetlabelsrequest = globalsetlabelsrequest
67196	return c
67197}
67198
67199// Fields allows partial responses to be retrieved. See
67200// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67201// for more information.
67202func (c *SnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *SnapshotsSetLabelsCall {
67203	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67204	return c
67205}
67206
67207// Context sets the context to be used in this call's Do method. Any
67208// pending HTTP request will be aborted if the provided context is
67209// canceled.
67210func (c *SnapshotsSetLabelsCall) Context(ctx context.Context) *SnapshotsSetLabelsCall {
67211	c.ctx_ = ctx
67212	return c
67213}
67214
67215// Header returns an http.Header that can be modified by the caller to
67216// add HTTP headers to the request.
67217func (c *SnapshotsSetLabelsCall) Header() http.Header {
67218	if c.header_ == nil {
67219		c.header_ = make(http.Header)
67220	}
67221	return c.header_
67222}
67223
67224func (c *SnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
67225	reqHeaders := make(http.Header)
67226	for k, v := range c.header_ {
67227		reqHeaders[k] = v
67228	}
67229	reqHeaders.Set("User-Agent", c.s.userAgent())
67230	var body io.Reader = nil
67231	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
67232	if err != nil {
67233		return nil, err
67234	}
67235	reqHeaders.Set("Content-Type", "application/json")
67236	c.urlParams_.Set("alt", alt)
67237	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/setLabels")
67238	urls += "?" + c.urlParams_.Encode()
67239	req, _ := http.NewRequest("POST", urls, body)
67240	req.Header = reqHeaders
67241	googleapi.Expand(req.URL, map[string]string{
67242		"project":  c.project,
67243		"resource": c.resource,
67244	})
67245	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67246}
67247
67248// Do executes the "compute.snapshots.setLabels" call.
67249// Exactly one of *Operation or error will be non-nil. Any non-2xx
67250// status code is an error. Response headers are in either
67251// *Operation.ServerResponse.Header or (if a response was returned at
67252// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67253// to check whether the returned error was because
67254// http.StatusNotModified was returned.
67255func (c *SnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67256	gensupport.SetOptions(c.urlParams_, opts...)
67257	res, err := c.doRequest("json")
67258	if res != nil && res.StatusCode == http.StatusNotModified {
67259		if res.Body != nil {
67260			res.Body.Close()
67261		}
67262		return nil, &googleapi.Error{
67263			Code:   res.StatusCode,
67264			Header: res.Header,
67265		}
67266	}
67267	if err != nil {
67268		return nil, err
67269	}
67270	defer googleapi.CloseBody(res)
67271	if err := googleapi.CheckResponse(res); err != nil {
67272		return nil, err
67273	}
67274	ret := &Operation{
67275		ServerResponse: googleapi.ServerResponse{
67276			Header:         res.Header,
67277			HTTPStatusCode: res.StatusCode,
67278		},
67279	}
67280	target := &ret
67281	if err := gensupport.DecodeResponse(target, res); err != nil {
67282		return nil, err
67283	}
67284	return ret, nil
67285	// {
67286	//   "description": "Sets the labels on a snapshot. To learn more about labels, read the Labeling Resources documentation.",
67287	//   "httpMethod": "POST",
67288	//   "id": "compute.snapshots.setLabels",
67289	//   "parameterOrder": [
67290	//     "project",
67291	//     "resource"
67292	//   ],
67293	//   "parameters": {
67294	//     "project": {
67295	//       "description": "Project ID for this request.",
67296	//       "location": "path",
67297	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67298	//       "required": true,
67299	//       "type": "string"
67300	//     },
67301	//     "resource": {
67302	//       "description": "Name of the resource for this request.",
67303	//       "location": "path",
67304	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?",
67305	//       "required": true,
67306	//       "type": "string"
67307	//     }
67308	//   },
67309	//   "path": "{project}/global/snapshots/{resource}/setLabels",
67310	//   "request": {
67311	//     "$ref": "GlobalSetLabelsRequest"
67312	//   },
67313	//   "response": {
67314	//     "$ref": "Operation"
67315	//   },
67316	//   "scopes": [
67317	//     "https://www.googleapis.com/auth/cloud-platform",
67318	//     "https://www.googleapis.com/auth/compute"
67319	//   ]
67320	// }
67321
67322}
67323
67324// method id "compute.sslCertificates.delete":
67325
67326type SslCertificatesDeleteCall struct {
67327	s              *Service
67328	project        string
67329	sslCertificate string
67330	urlParams_     gensupport.URLParams
67331	ctx_           context.Context
67332	header_        http.Header
67333}
67334
67335// Delete: Deletes the specified SslCertificate resource.
67336func (r *SslCertificatesService) Delete(project string, sslCertificate string) *SslCertificatesDeleteCall {
67337	c := &SslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67338	c.project = project
67339	c.sslCertificate = sslCertificate
67340	return c
67341}
67342
67343// RequestId sets the optional parameter "requestId": An optional
67344// request ID to identify requests. Specify a unique request ID so that
67345// if you must retry your request, the server will know to ignore the
67346// request if it has already been completed.
67347//
67348// For example, consider a situation where you make an initial request
67349// and the request times out. If you make the request again with the
67350// same request ID, the server can check if original operation with the
67351// same request ID was received, and if so, will ignore the second
67352// request. This prevents clients from accidentally creating duplicate
67353// commitments.
67354//
67355// The request ID must be a valid UUID with the exception that zero UUID
67356// is not supported (00000000-0000-0000-0000-000000000000).
67357func (c *SslCertificatesDeleteCall) RequestId(requestId string) *SslCertificatesDeleteCall {
67358	c.urlParams_.Set("requestId", requestId)
67359	return c
67360}
67361
67362// Fields allows partial responses to be retrieved. See
67363// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67364// for more information.
67365func (c *SslCertificatesDeleteCall) Fields(s ...googleapi.Field) *SslCertificatesDeleteCall {
67366	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67367	return c
67368}
67369
67370// Context sets the context to be used in this call's Do method. Any
67371// pending HTTP request will be aborted if the provided context is
67372// canceled.
67373func (c *SslCertificatesDeleteCall) Context(ctx context.Context) *SslCertificatesDeleteCall {
67374	c.ctx_ = ctx
67375	return c
67376}
67377
67378// Header returns an http.Header that can be modified by the caller to
67379// add HTTP headers to the request.
67380func (c *SslCertificatesDeleteCall) Header() http.Header {
67381	if c.header_ == nil {
67382		c.header_ = make(http.Header)
67383	}
67384	return c.header_
67385}
67386
67387func (c *SslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
67388	reqHeaders := make(http.Header)
67389	for k, v := range c.header_ {
67390		reqHeaders[k] = v
67391	}
67392	reqHeaders.Set("User-Agent", c.s.userAgent())
67393	var body io.Reader = nil
67394	c.urlParams_.Set("alt", alt)
67395	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{sslCertificate}")
67396	urls += "?" + c.urlParams_.Encode()
67397	req, _ := http.NewRequest("DELETE", urls, body)
67398	req.Header = reqHeaders
67399	googleapi.Expand(req.URL, map[string]string{
67400		"project":        c.project,
67401		"sslCertificate": c.sslCertificate,
67402	})
67403	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67404}
67405
67406// Do executes the "compute.sslCertificates.delete" call.
67407// Exactly one of *Operation or error will be non-nil. Any non-2xx
67408// status code is an error. Response headers are in either
67409// *Operation.ServerResponse.Header or (if a response was returned at
67410// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67411// to check whether the returned error was because
67412// http.StatusNotModified was returned.
67413func (c *SslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67414	gensupport.SetOptions(c.urlParams_, opts...)
67415	res, err := c.doRequest("json")
67416	if res != nil && res.StatusCode == http.StatusNotModified {
67417		if res.Body != nil {
67418			res.Body.Close()
67419		}
67420		return nil, &googleapi.Error{
67421			Code:   res.StatusCode,
67422			Header: res.Header,
67423		}
67424	}
67425	if err != nil {
67426		return nil, err
67427	}
67428	defer googleapi.CloseBody(res)
67429	if err := googleapi.CheckResponse(res); err != nil {
67430		return nil, err
67431	}
67432	ret := &Operation{
67433		ServerResponse: googleapi.ServerResponse{
67434			Header:         res.Header,
67435			HTTPStatusCode: res.StatusCode,
67436		},
67437	}
67438	target := &ret
67439	if err := gensupport.DecodeResponse(target, res); err != nil {
67440		return nil, err
67441	}
67442	return ret, nil
67443	// {
67444	//   "description": "Deletes the specified SslCertificate resource.",
67445	//   "httpMethod": "DELETE",
67446	//   "id": "compute.sslCertificates.delete",
67447	//   "parameterOrder": [
67448	//     "project",
67449	//     "sslCertificate"
67450	//   ],
67451	//   "parameters": {
67452	//     "project": {
67453	//       "description": "Project ID for this request.",
67454	//       "location": "path",
67455	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67456	//       "required": true,
67457	//       "type": "string"
67458	//     },
67459	//     "requestId": {
67460	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67461	//       "location": "query",
67462	//       "type": "string"
67463	//     },
67464	//     "sslCertificate": {
67465	//       "description": "Name of the SslCertificate resource to delete.",
67466	//       "location": "path",
67467	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67468	//       "required": true,
67469	//       "type": "string"
67470	//     }
67471	//   },
67472	//   "path": "{project}/global/sslCertificates/{sslCertificate}",
67473	//   "response": {
67474	//     "$ref": "Operation"
67475	//   },
67476	//   "scopes": [
67477	//     "https://www.googleapis.com/auth/cloud-platform",
67478	//     "https://www.googleapis.com/auth/compute"
67479	//   ]
67480	// }
67481
67482}
67483
67484// method id "compute.sslCertificates.get":
67485
67486type SslCertificatesGetCall struct {
67487	s              *Service
67488	project        string
67489	sslCertificate string
67490	urlParams_     gensupport.URLParams
67491	ifNoneMatch_   string
67492	ctx_           context.Context
67493	header_        http.Header
67494}
67495
67496// Get: Returns the specified SslCertificate resource. Get a list of
67497// available SSL certificates by making a list() request.
67498func (r *SslCertificatesService) Get(project string, sslCertificate string) *SslCertificatesGetCall {
67499	c := &SslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67500	c.project = project
67501	c.sslCertificate = sslCertificate
67502	return c
67503}
67504
67505// Fields allows partial responses to be retrieved. See
67506// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67507// for more information.
67508func (c *SslCertificatesGetCall) Fields(s ...googleapi.Field) *SslCertificatesGetCall {
67509	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67510	return c
67511}
67512
67513// IfNoneMatch sets the optional parameter which makes the operation
67514// fail if the object's ETag matches the given value. This is useful for
67515// getting updates only after the object has changed since the last
67516// request. Use googleapi.IsNotModified to check whether the response
67517// error from Do is the result of In-None-Match.
67518func (c *SslCertificatesGetCall) IfNoneMatch(entityTag string) *SslCertificatesGetCall {
67519	c.ifNoneMatch_ = entityTag
67520	return c
67521}
67522
67523// Context sets the context to be used in this call's Do method. Any
67524// pending HTTP request will be aborted if the provided context is
67525// canceled.
67526func (c *SslCertificatesGetCall) Context(ctx context.Context) *SslCertificatesGetCall {
67527	c.ctx_ = ctx
67528	return c
67529}
67530
67531// Header returns an http.Header that can be modified by the caller to
67532// add HTTP headers to the request.
67533func (c *SslCertificatesGetCall) Header() http.Header {
67534	if c.header_ == nil {
67535		c.header_ = make(http.Header)
67536	}
67537	return c.header_
67538}
67539
67540func (c *SslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
67541	reqHeaders := make(http.Header)
67542	for k, v := range c.header_ {
67543		reqHeaders[k] = v
67544	}
67545	reqHeaders.Set("User-Agent", c.s.userAgent())
67546	if c.ifNoneMatch_ != "" {
67547		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67548	}
67549	var body io.Reader = nil
67550	c.urlParams_.Set("alt", alt)
67551	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{sslCertificate}")
67552	urls += "?" + c.urlParams_.Encode()
67553	req, _ := http.NewRequest("GET", urls, body)
67554	req.Header = reqHeaders
67555	googleapi.Expand(req.URL, map[string]string{
67556		"project":        c.project,
67557		"sslCertificate": c.sslCertificate,
67558	})
67559	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67560}
67561
67562// Do executes the "compute.sslCertificates.get" call.
67563// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
67564// status code is an error. Response headers are in either
67565// *SslCertificate.ServerResponse.Header or (if a response was returned
67566// at all) in error.(*googleapi.Error).Header. Use
67567// googleapi.IsNotModified to check whether the returned error was
67568// because http.StatusNotModified was returned.
67569func (c *SslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
67570	gensupport.SetOptions(c.urlParams_, opts...)
67571	res, err := c.doRequest("json")
67572	if res != nil && res.StatusCode == http.StatusNotModified {
67573		if res.Body != nil {
67574			res.Body.Close()
67575		}
67576		return nil, &googleapi.Error{
67577			Code:   res.StatusCode,
67578			Header: res.Header,
67579		}
67580	}
67581	if err != nil {
67582		return nil, err
67583	}
67584	defer googleapi.CloseBody(res)
67585	if err := googleapi.CheckResponse(res); err != nil {
67586		return nil, err
67587	}
67588	ret := &SslCertificate{
67589		ServerResponse: googleapi.ServerResponse{
67590			Header:         res.Header,
67591			HTTPStatusCode: res.StatusCode,
67592		},
67593	}
67594	target := &ret
67595	if err := gensupport.DecodeResponse(target, res); err != nil {
67596		return nil, err
67597	}
67598	return ret, nil
67599	// {
67600	//   "description": "Returns the specified SslCertificate resource. Get a list of available SSL certificates by making a list() request.",
67601	//   "httpMethod": "GET",
67602	//   "id": "compute.sslCertificates.get",
67603	//   "parameterOrder": [
67604	//     "project",
67605	//     "sslCertificate"
67606	//   ],
67607	//   "parameters": {
67608	//     "project": {
67609	//       "description": "Project ID for this request.",
67610	//       "location": "path",
67611	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67612	//       "required": true,
67613	//       "type": "string"
67614	//     },
67615	//     "sslCertificate": {
67616	//       "description": "Name of the SslCertificate resource to return.",
67617	//       "location": "path",
67618	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
67619	//       "required": true,
67620	//       "type": "string"
67621	//     }
67622	//   },
67623	//   "path": "{project}/global/sslCertificates/{sslCertificate}",
67624	//   "response": {
67625	//     "$ref": "SslCertificate"
67626	//   },
67627	//   "scopes": [
67628	//     "https://www.googleapis.com/auth/cloud-platform",
67629	//     "https://www.googleapis.com/auth/compute",
67630	//     "https://www.googleapis.com/auth/compute.readonly"
67631	//   ]
67632	// }
67633
67634}
67635
67636// method id "compute.sslCertificates.insert":
67637
67638type SslCertificatesInsertCall struct {
67639	s              *Service
67640	project        string
67641	sslcertificate *SslCertificate
67642	urlParams_     gensupport.URLParams
67643	ctx_           context.Context
67644	header_        http.Header
67645}
67646
67647// Insert: Creates a SslCertificate resource in the specified project
67648// using the data included in the request.
67649func (r *SslCertificatesService) Insert(project string, sslcertificate *SslCertificate) *SslCertificatesInsertCall {
67650	c := &SslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67651	c.project = project
67652	c.sslcertificate = sslcertificate
67653	return c
67654}
67655
67656// RequestId sets the optional parameter "requestId": An optional
67657// request ID to identify requests. Specify a unique request ID so that
67658// if you must retry your request, the server will know to ignore the
67659// request if it has already been completed.
67660//
67661// For example, consider a situation where you make an initial request
67662// and the request times out. If you make the request again with the
67663// same request ID, the server can check if original operation with the
67664// same request ID was received, and if so, will ignore the second
67665// request. This prevents clients from accidentally creating duplicate
67666// commitments.
67667//
67668// The request ID must be a valid UUID with the exception that zero UUID
67669// is not supported (00000000-0000-0000-0000-000000000000).
67670func (c *SslCertificatesInsertCall) RequestId(requestId string) *SslCertificatesInsertCall {
67671	c.urlParams_.Set("requestId", requestId)
67672	return c
67673}
67674
67675// Fields allows partial responses to be retrieved. See
67676// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67677// for more information.
67678func (c *SslCertificatesInsertCall) Fields(s ...googleapi.Field) *SslCertificatesInsertCall {
67679	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67680	return c
67681}
67682
67683// Context sets the context to be used in this call's Do method. Any
67684// pending HTTP request will be aborted if the provided context is
67685// canceled.
67686func (c *SslCertificatesInsertCall) Context(ctx context.Context) *SslCertificatesInsertCall {
67687	c.ctx_ = ctx
67688	return c
67689}
67690
67691// Header returns an http.Header that can be modified by the caller to
67692// add HTTP headers to the request.
67693func (c *SslCertificatesInsertCall) Header() http.Header {
67694	if c.header_ == nil {
67695		c.header_ = make(http.Header)
67696	}
67697	return c.header_
67698}
67699
67700func (c *SslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
67701	reqHeaders := make(http.Header)
67702	for k, v := range c.header_ {
67703		reqHeaders[k] = v
67704	}
67705	reqHeaders.Set("User-Agent", c.s.userAgent())
67706	var body io.Reader = nil
67707	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
67708	if err != nil {
67709		return nil, err
67710	}
67711	reqHeaders.Set("Content-Type", "application/json")
67712	c.urlParams_.Set("alt", alt)
67713	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates")
67714	urls += "?" + c.urlParams_.Encode()
67715	req, _ := http.NewRequest("POST", urls, body)
67716	req.Header = reqHeaders
67717	googleapi.Expand(req.URL, map[string]string{
67718		"project": c.project,
67719	})
67720	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67721}
67722
67723// Do executes the "compute.sslCertificates.insert" call.
67724// Exactly one of *Operation or error will be non-nil. Any non-2xx
67725// status code is an error. Response headers are in either
67726// *Operation.ServerResponse.Header or (if a response was returned at
67727// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67728// to check whether the returned error was because
67729// http.StatusNotModified was returned.
67730func (c *SslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67731	gensupport.SetOptions(c.urlParams_, opts...)
67732	res, err := c.doRequest("json")
67733	if res != nil && res.StatusCode == http.StatusNotModified {
67734		if res.Body != nil {
67735			res.Body.Close()
67736		}
67737		return nil, &googleapi.Error{
67738			Code:   res.StatusCode,
67739			Header: res.Header,
67740		}
67741	}
67742	if err != nil {
67743		return nil, err
67744	}
67745	defer googleapi.CloseBody(res)
67746	if err := googleapi.CheckResponse(res); err != nil {
67747		return nil, err
67748	}
67749	ret := &Operation{
67750		ServerResponse: googleapi.ServerResponse{
67751			Header:         res.Header,
67752			HTTPStatusCode: res.StatusCode,
67753		},
67754	}
67755	target := &ret
67756	if err := gensupport.DecodeResponse(target, res); err != nil {
67757		return nil, err
67758	}
67759	return ret, nil
67760	// {
67761	//   "description": "Creates a SslCertificate resource in the specified project using the data included in the request.",
67762	//   "httpMethod": "POST",
67763	//   "id": "compute.sslCertificates.insert",
67764	//   "parameterOrder": [
67765	//     "project"
67766	//   ],
67767	//   "parameters": {
67768	//     "project": {
67769	//       "description": "Project ID for this request.",
67770	//       "location": "path",
67771	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67772	//       "required": true,
67773	//       "type": "string"
67774	//     },
67775	//     "requestId": {
67776	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67777	//       "location": "query",
67778	//       "type": "string"
67779	//     }
67780	//   },
67781	//   "path": "{project}/global/sslCertificates",
67782	//   "request": {
67783	//     "$ref": "SslCertificate"
67784	//   },
67785	//   "response": {
67786	//     "$ref": "Operation"
67787	//   },
67788	//   "scopes": [
67789	//     "https://www.googleapis.com/auth/cloud-platform",
67790	//     "https://www.googleapis.com/auth/compute"
67791	//   ]
67792	// }
67793
67794}
67795
67796// method id "compute.sslCertificates.list":
67797
67798type SslCertificatesListCall struct {
67799	s            *Service
67800	project      string
67801	urlParams_   gensupport.URLParams
67802	ifNoneMatch_ string
67803	ctx_         context.Context
67804	header_      http.Header
67805}
67806
67807// List: Retrieves the list of SslCertificate resources available to the
67808// specified project.
67809func (r *SslCertificatesService) List(project string) *SslCertificatesListCall {
67810	c := &SslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67811	c.project = project
67812	return c
67813}
67814
67815// Filter sets the optional parameter "filter": Sets a filter
67816// {expression} for filtering listed resources. Your {expression} must
67817// be in the format: field_name comparison_string literal_string.
67818//
67819// The field_name is the name of the field you want to compare. Only
67820// atomic field types are supported (string, number, boolean). The
67821// comparison_string must be either eq (equals) or ne (not equals). The
67822// literal_string is the string value to filter to. The literal value
67823// must be valid for the type of field you are filtering by (string,
67824// number, boolean). For string fields, the literal value is interpreted
67825// as a regular expression using RE2 syntax. The literal value must
67826// match the entire field.
67827//
67828// For example, to filter for instances that do not have a name of
67829// example-instance, you would use name ne example-instance.
67830//
67831// You can filter on nested fields. For example, you could filter on
67832// instances that have set the scheduling.automaticRestart field to
67833// true. Use filtering on nested fields to take advantage of labels to
67834// organize and search for results based on label values.
67835//
67836// To filter on multiple expressions, provide each separate expression
67837// within parentheses. For example, (scheduling.automaticRestart eq
67838// true) (zone eq us-central1-f). Multiple expressions are treated as
67839// AND expressions, meaning that resources must match all expressions to
67840// pass the filters.
67841func (c *SslCertificatesListCall) Filter(filter string) *SslCertificatesListCall {
67842	c.urlParams_.Set("filter", filter)
67843	return c
67844}
67845
67846// MaxResults sets the optional parameter "maxResults": The maximum
67847// number of results per page that should be returned. If the number of
67848// available results is larger than maxResults, Compute Engine returns a
67849// nextPageToken that can be used to get the next page of results in
67850// subsequent list requests. Acceptable values are 0 to 500, inclusive.
67851// (Default: 500)
67852func (c *SslCertificatesListCall) MaxResults(maxResults int64) *SslCertificatesListCall {
67853	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
67854	return c
67855}
67856
67857// OrderBy sets the optional parameter "orderBy": Sorts list results by
67858// a certain order. By default, results are returned in alphanumerical
67859// order based on the resource name.
67860//
67861// You can also sort results in descending order based on the creation
67862// timestamp using orderBy="creationTimestamp desc". This sorts results
67863// based on the creationTimestamp field in reverse chronological order
67864// (newest result first). Use this to sort resources like operations so
67865// that the newest operation is returned first.
67866//
67867// Currently, only sorting by name or creationTimestamp desc is
67868// supported.
67869func (c *SslCertificatesListCall) OrderBy(orderBy string) *SslCertificatesListCall {
67870	c.urlParams_.Set("orderBy", orderBy)
67871	return c
67872}
67873
67874// PageToken sets the optional parameter "pageToken": Specifies a page
67875// token to use. Set pageToken to the nextPageToken returned by a
67876// previous list request to get the next page of results.
67877func (c *SslCertificatesListCall) PageToken(pageToken string) *SslCertificatesListCall {
67878	c.urlParams_.Set("pageToken", pageToken)
67879	return c
67880}
67881
67882// Fields allows partial responses to be retrieved. See
67883// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67884// for more information.
67885func (c *SslCertificatesListCall) Fields(s ...googleapi.Field) *SslCertificatesListCall {
67886	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67887	return c
67888}
67889
67890// IfNoneMatch sets the optional parameter which makes the operation
67891// fail if the object's ETag matches the given value. This is useful for
67892// getting updates only after the object has changed since the last
67893// request. Use googleapi.IsNotModified to check whether the response
67894// error from Do is the result of In-None-Match.
67895func (c *SslCertificatesListCall) IfNoneMatch(entityTag string) *SslCertificatesListCall {
67896	c.ifNoneMatch_ = entityTag
67897	return c
67898}
67899
67900// Context sets the context to be used in this call's Do method. Any
67901// pending HTTP request will be aborted if the provided context is
67902// canceled.
67903func (c *SslCertificatesListCall) Context(ctx context.Context) *SslCertificatesListCall {
67904	c.ctx_ = ctx
67905	return c
67906}
67907
67908// Header returns an http.Header that can be modified by the caller to
67909// add HTTP headers to the request.
67910func (c *SslCertificatesListCall) Header() http.Header {
67911	if c.header_ == nil {
67912		c.header_ = make(http.Header)
67913	}
67914	return c.header_
67915}
67916
67917func (c *SslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
67918	reqHeaders := make(http.Header)
67919	for k, v := range c.header_ {
67920		reqHeaders[k] = v
67921	}
67922	reqHeaders.Set("User-Agent", c.s.userAgent())
67923	if c.ifNoneMatch_ != "" {
67924		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67925	}
67926	var body io.Reader = nil
67927	c.urlParams_.Set("alt", alt)
67928	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates")
67929	urls += "?" + c.urlParams_.Encode()
67930	req, _ := http.NewRequest("GET", urls, body)
67931	req.Header = reqHeaders
67932	googleapi.Expand(req.URL, map[string]string{
67933		"project": c.project,
67934	})
67935	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67936}
67937
67938// Do executes the "compute.sslCertificates.list" call.
67939// Exactly one of *SslCertificateList or error will be non-nil. Any
67940// non-2xx status code is an error. Response headers are in either
67941// *SslCertificateList.ServerResponse.Header or (if a response was
67942// returned at all) in error.(*googleapi.Error).Header. Use
67943// googleapi.IsNotModified to check whether the returned error was
67944// because http.StatusNotModified was returned.
67945func (c *SslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
67946	gensupport.SetOptions(c.urlParams_, opts...)
67947	res, err := c.doRequest("json")
67948	if res != nil && res.StatusCode == http.StatusNotModified {
67949		if res.Body != nil {
67950			res.Body.Close()
67951		}
67952		return nil, &googleapi.Error{
67953			Code:   res.StatusCode,
67954			Header: res.Header,
67955		}
67956	}
67957	if err != nil {
67958		return nil, err
67959	}
67960	defer googleapi.CloseBody(res)
67961	if err := googleapi.CheckResponse(res); err != nil {
67962		return nil, err
67963	}
67964	ret := &SslCertificateList{
67965		ServerResponse: googleapi.ServerResponse{
67966			Header:         res.Header,
67967			HTTPStatusCode: res.StatusCode,
67968		},
67969	}
67970	target := &ret
67971	if err := gensupport.DecodeResponse(target, res); err != nil {
67972		return nil, err
67973	}
67974	return ret, nil
67975	// {
67976	//   "description": "Retrieves the list of SslCertificate resources available to the specified project.",
67977	//   "httpMethod": "GET",
67978	//   "id": "compute.sslCertificates.list",
67979	//   "parameterOrder": [
67980	//     "project"
67981	//   ],
67982	//   "parameters": {
67983	//     "filter": {
67984	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
67985	//       "location": "query",
67986	//       "type": "string"
67987	//     },
67988	//     "maxResults": {
67989	//       "default": "500",
67990	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
67991	//       "format": "uint32",
67992	//       "location": "query",
67993	//       "minimum": "0",
67994	//       "type": "integer"
67995	//     },
67996	//     "orderBy": {
67997	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
67998	//       "location": "query",
67999	//       "type": "string"
68000	//     },
68001	//     "pageToken": {
68002	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
68003	//       "location": "query",
68004	//       "type": "string"
68005	//     },
68006	//     "project": {
68007	//       "description": "Project ID for this request.",
68008	//       "location": "path",
68009	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68010	//       "required": true,
68011	//       "type": "string"
68012	//     }
68013	//   },
68014	//   "path": "{project}/global/sslCertificates",
68015	//   "response": {
68016	//     "$ref": "SslCertificateList"
68017	//   },
68018	//   "scopes": [
68019	//     "https://www.googleapis.com/auth/cloud-platform",
68020	//     "https://www.googleapis.com/auth/compute",
68021	//     "https://www.googleapis.com/auth/compute.readonly"
68022	//   ]
68023	// }
68024
68025}
68026
68027// Pages invokes f for each page of results.
68028// A non-nil error returned from f will halt the iteration.
68029// The provided context supersedes any context provided to the Context method.
68030func (c *SslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
68031	c.ctx_ = ctx
68032	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
68033	for {
68034		x, err := c.Do()
68035		if err != nil {
68036			return err
68037		}
68038		if err := f(x); err != nil {
68039			return err
68040		}
68041		if x.NextPageToken == "" {
68042			return nil
68043		}
68044		c.PageToken(x.NextPageToken)
68045	}
68046}
68047
68048// method id "compute.subnetworks.aggregatedList":
68049
68050type SubnetworksAggregatedListCall struct {
68051	s            *Service
68052	project      string
68053	urlParams_   gensupport.URLParams
68054	ifNoneMatch_ string
68055	ctx_         context.Context
68056	header_      http.Header
68057}
68058
68059// AggregatedList: Retrieves an aggregated list of subnetworks.
68060func (r *SubnetworksService) AggregatedList(project string) *SubnetworksAggregatedListCall {
68061	c := &SubnetworksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68062	c.project = project
68063	return c
68064}
68065
68066// Filter sets the optional parameter "filter": Sets a filter
68067// {expression} for filtering listed resources. Your {expression} must
68068// be in the format: field_name comparison_string literal_string.
68069//
68070// The field_name is the name of the field you want to compare. Only
68071// atomic field types are supported (string, number, boolean). The
68072// comparison_string must be either eq (equals) or ne (not equals). The
68073// literal_string is the string value to filter to. The literal value
68074// must be valid for the type of field you are filtering by (string,
68075// number, boolean). For string fields, the literal value is interpreted
68076// as a regular expression using RE2 syntax. The literal value must
68077// match the entire field.
68078//
68079// For example, to filter for instances that do not have a name of
68080// example-instance, you would use name ne example-instance.
68081//
68082// You can filter on nested fields. For example, you could filter on
68083// instances that have set the scheduling.automaticRestart field to
68084// true. Use filtering on nested fields to take advantage of labels to
68085// organize and search for results based on label values.
68086//
68087// To filter on multiple expressions, provide each separate expression
68088// within parentheses. For example, (scheduling.automaticRestart eq
68089// true) (zone eq us-central1-f). Multiple expressions are treated as
68090// AND expressions, meaning that resources must match all expressions to
68091// pass the filters.
68092func (c *SubnetworksAggregatedListCall) Filter(filter string) *SubnetworksAggregatedListCall {
68093	c.urlParams_.Set("filter", filter)
68094	return c
68095}
68096
68097// MaxResults sets the optional parameter "maxResults": The maximum
68098// number of results per page that should be returned. If the number of
68099// available results is larger than maxResults, Compute Engine returns a
68100// nextPageToken that can be used to get the next page of results in
68101// subsequent list requests. Acceptable values are 0 to 500, inclusive.
68102// (Default: 500)
68103func (c *SubnetworksAggregatedListCall) MaxResults(maxResults int64) *SubnetworksAggregatedListCall {
68104	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
68105	return c
68106}
68107
68108// OrderBy sets the optional parameter "orderBy": Sorts list results by
68109// a certain order. By default, results are returned in alphanumerical
68110// order based on the resource name.
68111//
68112// You can also sort results in descending order based on the creation
68113// timestamp using orderBy="creationTimestamp desc". This sorts results
68114// based on the creationTimestamp field in reverse chronological order
68115// (newest result first). Use this to sort resources like operations so
68116// that the newest operation is returned first.
68117//
68118// Currently, only sorting by name or creationTimestamp desc is
68119// supported.
68120func (c *SubnetworksAggregatedListCall) OrderBy(orderBy string) *SubnetworksAggregatedListCall {
68121	c.urlParams_.Set("orderBy", orderBy)
68122	return c
68123}
68124
68125// PageToken sets the optional parameter "pageToken": Specifies a page
68126// token to use. Set pageToken to the nextPageToken returned by a
68127// previous list request to get the next page of results.
68128func (c *SubnetworksAggregatedListCall) PageToken(pageToken string) *SubnetworksAggregatedListCall {
68129	c.urlParams_.Set("pageToken", pageToken)
68130	return c
68131}
68132
68133// Fields allows partial responses to be retrieved. See
68134// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68135// for more information.
68136func (c *SubnetworksAggregatedListCall) Fields(s ...googleapi.Field) *SubnetworksAggregatedListCall {
68137	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68138	return c
68139}
68140
68141// IfNoneMatch sets the optional parameter which makes the operation
68142// fail if the object's ETag matches the given value. This is useful for
68143// getting updates only after the object has changed since the last
68144// request. Use googleapi.IsNotModified to check whether the response
68145// error from Do is the result of In-None-Match.
68146func (c *SubnetworksAggregatedListCall) IfNoneMatch(entityTag string) *SubnetworksAggregatedListCall {
68147	c.ifNoneMatch_ = entityTag
68148	return c
68149}
68150
68151// Context sets the context to be used in this call's Do method. Any
68152// pending HTTP request will be aborted if the provided context is
68153// canceled.
68154func (c *SubnetworksAggregatedListCall) Context(ctx context.Context) *SubnetworksAggregatedListCall {
68155	c.ctx_ = ctx
68156	return c
68157}
68158
68159// Header returns an http.Header that can be modified by the caller to
68160// add HTTP headers to the request.
68161func (c *SubnetworksAggregatedListCall) Header() http.Header {
68162	if c.header_ == nil {
68163		c.header_ = make(http.Header)
68164	}
68165	return c.header_
68166}
68167
68168func (c *SubnetworksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
68169	reqHeaders := make(http.Header)
68170	for k, v := range c.header_ {
68171		reqHeaders[k] = v
68172	}
68173	reqHeaders.Set("User-Agent", c.s.userAgent())
68174	if c.ifNoneMatch_ != "" {
68175		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68176	}
68177	var body io.Reader = nil
68178	c.urlParams_.Set("alt", alt)
68179	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/subnetworks")
68180	urls += "?" + c.urlParams_.Encode()
68181	req, _ := http.NewRequest("GET", urls, body)
68182	req.Header = reqHeaders
68183	googleapi.Expand(req.URL, map[string]string{
68184		"project": c.project,
68185	})
68186	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68187}
68188
68189// Do executes the "compute.subnetworks.aggregatedList" call.
68190// Exactly one of *SubnetworkAggregatedList or error will be non-nil.
68191// Any non-2xx status code is an error. Response headers are in either
68192// *SubnetworkAggregatedList.ServerResponse.Header or (if a response was
68193// returned at all) in error.(*googleapi.Error).Header. Use
68194// googleapi.IsNotModified to check whether the returned error was
68195// because http.StatusNotModified was returned.
68196func (c *SubnetworksAggregatedListCall) Do(opts ...googleapi.CallOption) (*SubnetworkAggregatedList, error) {
68197	gensupport.SetOptions(c.urlParams_, opts...)
68198	res, err := c.doRequest("json")
68199	if res != nil && res.StatusCode == http.StatusNotModified {
68200		if res.Body != nil {
68201			res.Body.Close()
68202		}
68203		return nil, &googleapi.Error{
68204			Code:   res.StatusCode,
68205			Header: res.Header,
68206		}
68207	}
68208	if err != nil {
68209		return nil, err
68210	}
68211	defer googleapi.CloseBody(res)
68212	if err := googleapi.CheckResponse(res); err != nil {
68213		return nil, err
68214	}
68215	ret := &SubnetworkAggregatedList{
68216		ServerResponse: googleapi.ServerResponse{
68217			Header:         res.Header,
68218			HTTPStatusCode: res.StatusCode,
68219		},
68220	}
68221	target := &ret
68222	if err := gensupport.DecodeResponse(target, res); err != nil {
68223		return nil, err
68224	}
68225	return ret, nil
68226	// {
68227	//   "description": "Retrieves an aggregated list of subnetworks.",
68228	//   "httpMethod": "GET",
68229	//   "id": "compute.subnetworks.aggregatedList",
68230	//   "parameterOrder": [
68231	//     "project"
68232	//   ],
68233	//   "parameters": {
68234	//     "filter": {
68235	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
68236	//       "location": "query",
68237	//       "type": "string"
68238	//     },
68239	//     "maxResults": {
68240	//       "default": "500",
68241	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
68242	//       "format": "uint32",
68243	//       "location": "query",
68244	//       "minimum": "0",
68245	//       "type": "integer"
68246	//     },
68247	//     "orderBy": {
68248	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
68249	//       "location": "query",
68250	//       "type": "string"
68251	//     },
68252	//     "pageToken": {
68253	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
68254	//       "location": "query",
68255	//       "type": "string"
68256	//     },
68257	//     "project": {
68258	//       "description": "Project ID for this request.",
68259	//       "location": "path",
68260	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68261	//       "required": true,
68262	//       "type": "string"
68263	//     }
68264	//   },
68265	//   "path": "{project}/aggregated/subnetworks",
68266	//   "response": {
68267	//     "$ref": "SubnetworkAggregatedList"
68268	//   },
68269	//   "scopes": [
68270	//     "https://www.googleapis.com/auth/cloud-platform",
68271	//     "https://www.googleapis.com/auth/compute",
68272	//     "https://www.googleapis.com/auth/compute.readonly"
68273	//   ]
68274	// }
68275
68276}
68277
68278// Pages invokes f for each page of results.
68279// A non-nil error returned from f will halt the iteration.
68280// The provided context supersedes any context provided to the Context method.
68281func (c *SubnetworksAggregatedListCall) Pages(ctx context.Context, f func(*SubnetworkAggregatedList) error) error {
68282	c.ctx_ = ctx
68283	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
68284	for {
68285		x, err := c.Do()
68286		if err != nil {
68287			return err
68288		}
68289		if err := f(x); err != nil {
68290			return err
68291		}
68292		if x.NextPageToken == "" {
68293			return nil
68294		}
68295		c.PageToken(x.NextPageToken)
68296	}
68297}
68298
68299// method id "compute.subnetworks.delete":
68300
68301type SubnetworksDeleteCall struct {
68302	s          *Service
68303	project    string
68304	region     string
68305	subnetwork string
68306	urlParams_ gensupport.URLParams
68307	ctx_       context.Context
68308	header_    http.Header
68309}
68310
68311// Delete: Deletes the specified subnetwork.
68312func (r *SubnetworksService) Delete(project string, region string, subnetwork string) *SubnetworksDeleteCall {
68313	c := &SubnetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68314	c.project = project
68315	c.region = region
68316	c.subnetwork = subnetwork
68317	return c
68318}
68319
68320// RequestId sets the optional parameter "requestId": An optional
68321// request ID to identify requests. Specify a unique request ID so that
68322// if you must retry your request, the server will know to ignore the
68323// request if it has already been completed.
68324//
68325// For example, consider a situation where you make an initial request
68326// and the request times out. If you make the request again with the
68327// same request ID, the server can check if original operation with the
68328// same request ID was received, and if so, will ignore the second
68329// request. This prevents clients from accidentally creating duplicate
68330// commitments.
68331//
68332// The request ID must be a valid UUID with the exception that zero UUID
68333// is not supported (00000000-0000-0000-0000-000000000000).
68334func (c *SubnetworksDeleteCall) RequestId(requestId string) *SubnetworksDeleteCall {
68335	c.urlParams_.Set("requestId", requestId)
68336	return c
68337}
68338
68339// Fields allows partial responses to be retrieved. See
68340// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68341// for more information.
68342func (c *SubnetworksDeleteCall) Fields(s ...googleapi.Field) *SubnetworksDeleteCall {
68343	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68344	return c
68345}
68346
68347// Context sets the context to be used in this call's Do method. Any
68348// pending HTTP request will be aborted if the provided context is
68349// canceled.
68350func (c *SubnetworksDeleteCall) Context(ctx context.Context) *SubnetworksDeleteCall {
68351	c.ctx_ = ctx
68352	return c
68353}
68354
68355// Header returns an http.Header that can be modified by the caller to
68356// add HTTP headers to the request.
68357func (c *SubnetworksDeleteCall) Header() http.Header {
68358	if c.header_ == nil {
68359		c.header_ = make(http.Header)
68360	}
68361	return c.header_
68362}
68363
68364func (c *SubnetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
68365	reqHeaders := make(http.Header)
68366	for k, v := range c.header_ {
68367		reqHeaders[k] = v
68368	}
68369	reqHeaders.Set("User-Agent", c.s.userAgent())
68370	var body io.Reader = nil
68371	c.urlParams_.Set("alt", alt)
68372	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
68373	urls += "?" + c.urlParams_.Encode()
68374	req, _ := http.NewRequest("DELETE", urls, body)
68375	req.Header = reqHeaders
68376	googleapi.Expand(req.URL, map[string]string{
68377		"project":    c.project,
68378		"region":     c.region,
68379		"subnetwork": c.subnetwork,
68380	})
68381	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68382}
68383
68384// Do executes the "compute.subnetworks.delete" call.
68385// Exactly one of *Operation or error will be non-nil. Any non-2xx
68386// status code is an error. Response headers are in either
68387// *Operation.ServerResponse.Header or (if a response was returned at
68388// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68389// to check whether the returned error was because
68390// http.StatusNotModified was returned.
68391func (c *SubnetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68392	gensupport.SetOptions(c.urlParams_, opts...)
68393	res, err := c.doRequest("json")
68394	if res != nil && res.StatusCode == http.StatusNotModified {
68395		if res.Body != nil {
68396			res.Body.Close()
68397		}
68398		return nil, &googleapi.Error{
68399			Code:   res.StatusCode,
68400			Header: res.Header,
68401		}
68402	}
68403	if err != nil {
68404		return nil, err
68405	}
68406	defer googleapi.CloseBody(res)
68407	if err := googleapi.CheckResponse(res); err != nil {
68408		return nil, err
68409	}
68410	ret := &Operation{
68411		ServerResponse: googleapi.ServerResponse{
68412			Header:         res.Header,
68413			HTTPStatusCode: res.StatusCode,
68414		},
68415	}
68416	target := &ret
68417	if err := gensupport.DecodeResponse(target, res); err != nil {
68418		return nil, err
68419	}
68420	return ret, nil
68421	// {
68422	//   "description": "Deletes the specified subnetwork.",
68423	//   "httpMethod": "DELETE",
68424	//   "id": "compute.subnetworks.delete",
68425	//   "parameterOrder": [
68426	//     "project",
68427	//     "region",
68428	//     "subnetwork"
68429	//   ],
68430	//   "parameters": {
68431	//     "project": {
68432	//       "description": "Project ID for this request.",
68433	//       "location": "path",
68434	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68435	//       "required": true,
68436	//       "type": "string"
68437	//     },
68438	//     "region": {
68439	//       "description": "Name of the region scoping this request.",
68440	//       "location": "path",
68441	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
68442	//       "required": true,
68443	//       "type": "string"
68444	//     },
68445	//     "requestId": {
68446	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68447	//       "location": "query",
68448	//       "type": "string"
68449	//     },
68450	//     "subnetwork": {
68451	//       "description": "Name of the Subnetwork resource to delete.",
68452	//       "location": "path",
68453	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
68454	//       "required": true,
68455	//       "type": "string"
68456	//     }
68457	//   },
68458	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
68459	//   "response": {
68460	//     "$ref": "Operation"
68461	//   },
68462	//   "scopes": [
68463	//     "https://www.googleapis.com/auth/cloud-platform",
68464	//     "https://www.googleapis.com/auth/compute"
68465	//   ]
68466	// }
68467
68468}
68469
68470// method id "compute.subnetworks.expandIpCidrRange":
68471
68472type SubnetworksExpandIpCidrRangeCall struct {
68473	s                                   *Service
68474	project                             string
68475	region                              string
68476	subnetwork                          string
68477	subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest
68478	urlParams_                          gensupport.URLParams
68479	ctx_                                context.Context
68480	header_                             http.Header
68481}
68482
68483// ExpandIpCidrRange: Expands the IP CIDR range of the subnetwork to a
68484// specified value.
68485func (r *SubnetworksService) ExpandIpCidrRange(project string, region string, subnetwork string, subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest) *SubnetworksExpandIpCidrRangeCall {
68486	c := &SubnetworksExpandIpCidrRangeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68487	c.project = project
68488	c.region = region
68489	c.subnetwork = subnetwork
68490	c.subnetworksexpandipcidrrangerequest = subnetworksexpandipcidrrangerequest
68491	return c
68492}
68493
68494// RequestId sets the optional parameter "requestId": An optional
68495// request ID to identify requests. Specify a unique request ID so that
68496// if you must retry your request, the server will know to ignore the
68497// request if it has already been completed.
68498//
68499// For example, consider a situation where you make an initial request
68500// and the request times out. If you make the request again with the
68501// same request ID, the server can check if original operation with the
68502// same request ID was received, and if so, will ignore the second
68503// request. This prevents clients from accidentally creating duplicate
68504// commitments.
68505//
68506// The request ID must be a valid UUID with the exception that zero UUID
68507// is not supported (00000000-0000-0000-0000-000000000000).
68508func (c *SubnetworksExpandIpCidrRangeCall) RequestId(requestId string) *SubnetworksExpandIpCidrRangeCall {
68509	c.urlParams_.Set("requestId", requestId)
68510	return c
68511}
68512
68513// Fields allows partial responses to be retrieved. See
68514// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68515// for more information.
68516func (c *SubnetworksExpandIpCidrRangeCall) Fields(s ...googleapi.Field) *SubnetworksExpandIpCidrRangeCall {
68517	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68518	return c
68519}
68520
68521// Context sets the context to be used in this call's Do method. Any
68522// pending HTTP request will be aborted if the provided context is
68523// canceled.
68524func (c *SubnetworksExpandIpCidrRangeCall) Context(ctx context.Context) *SubnetworksExpandIpCidrRangeCall {
68525	c.ctx_ = ctx
68526	return c
68527}
68528
68529// Header returns an http.Header that can be modified by the caller to
68530// add HTTP headers to the request.
68531func (c *SubnetworksExpandIpCidrRangeCall) Header() http.Header {
68532	if c.header_ == nil {
68533		c.header_ = make(http.Header)
68534	}
68535	return c.header_
68536}
68537
68538func (c *SubnetworksExpandIpCidrRangeCall) doRequest(alt string) (*http.Response, error) {
68539	reqHeaders := make(http.Header)
68540	for k, v := range c.header_ {
68541		reqHeaders[k] = v
68542	}
68543	reqHeaders.Set("User-Agent", c.s.userAgent())
68544	var body io.Reader = nil
68545	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworksexpandipcidrrangerequest)
68546	if err != nil {
68547		return nil, err
68548	}
68549	reqHeaders.Set("Content-Type", "application/json")
68550	c.urlParams_.Set("alt", alt)
68551	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange")
68552	urls += "?" + c.urlParams_.Encode()
68553	req, _ := http.NewRequest("POST", urls, body)
68554	req.Header = reqHeaders
68555	googleapi.Expand(req.URL, map[string]string{
68556		"project":    c.project,
68557		"region":     c.region,
68558		"subnetwork": c.subnetwork,
68559	})
68560	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68561}
68562
68563// Do executes the "compute.subnetworks.expandIpCidrRange" call.
68564// Exactly one of *Operation or error will be non-nil. Any non-2xx
68565// status code is an error. Response headers are in either
68566// *Operation.ServerResponse.Header or (if a response was returned at
68567// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68568// to check whether the returned error was because
68569// http.StatusNotModified was returned.
68570func (c *SubnetworksExpandIpCidrRangeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68571	gensupport.SetOptions(c.urlParams_, opts...)
68572	res, err := c.doRequest("json")
68573	if res != nil && res.StatusCode == http.StatusNotModified {
68574		if res.Body != nil {
68575			res.Body.Close()
68576		}
68577		return nil, &googleapi.Error{
68578			Code:   res.StatusCode,
68579			Header: res.Header,
68580		}
68581	}
68582	if err != nil {
68583		return nil, err
68584	}
68585	defer googleapi.CloseBody(res)
68586	if err := googleapi.CheckResponse(res); err != nil {
68587		return nil, err
68588	}
68589	ret := &Operation{
68590		ServerResponse: googleapi.ServerResponse{
68591			Header:         res.Header,
68592			HTTPStatusCode: res.StatusCode,
68593		},
68594	}
68595	target := &ret
68596	if err := gensupport.DecodeResponse(target, res); err != nil {
68597		return nil, err
68598	}
68599	return ret, nil
68600	// {
68601	//   "description": "Expands the IP CIDR range of the subnetwork to a specified value.",
68602	//   "httpMethod": "POST",
68603	//   "id": "compute.subnetworks.expandIpCidrRange",
68604	//   "parameterOrder": [
68605	//     "project",
68606	//     "region",
68607	//     "subnetwork"
68608	//   ],
68609	//   "parameters": {
68610	//     "project": {
68611	//       "description": "Project ID for this request.",
68612	//       "location": "path",
68613	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68614	//       "required": true,
68615	//       "type": "string"
68616	//     },
68617	//     "region": {
68618	//       "description": "Name of the region scoping this request.",
68619	//       "location": "path",
68620	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
68621	//       "required": true,
68622	//       "type": "string"
68623	//     },
68624	//     "requestId": {
68625	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68626	//       "location": "query",
68627	//       "type": "string"
68628	//     },
68629	//     "subnetwork": {
68630	//       "description": "Name of the Subnetwork resource to update.",
68631	//       "location": "path",
68632	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
68633	//       "required": true,
68634	//       "type": "string"
68635	//     }
68636	//   },
68637	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange",
68638	//   "request": {
68639	//     "$ref": "SubnetworksExpandIpCidrRangeRequest"
68640	//   },
68641	//   "response": {
68642	//     "$ref": "Operation"
68643	//   },
68644	//   "scopes": [
68645	//     "https://www.googleapis.com/auth/cloud-platform",
68646	//     "https://www.googleapis.com/auth/compute"
68647	//   ]
68648	// }
68649
68650}
68651
68652// method id "compute.subnetworks.get":
68653
68654type SubnetworksGetCall struct {
68655	s            *Service
68656	project      string
68657	region       string
68658	subnetwork   string
68659	urlParams_   gensupport.URLParams
68660	ifNoneMatch_ string
68661	ctx_         context.Context
68662	header_      http.Header
68663}
68664
68665// Get: Returns the specified subnetwork. Get a list of available
68666// subnetworks list() request.
68667func (r *SubnetworksService) Get(project string, region string, subnetwork string) *SubnetworksGetCall {
68668	c := &SubnetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68669	c.project = project
68670	c.region = region
68671	c.subnetwork = subnetwork
68672	return c
68673}
68674
68675// Fields allows partial responses to be retrieved. See
68676// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68677// for more information.
68678func (c *SubnetworksGetCall) Fields(s ...googleapi.Field) *SubnetworksGetCall {
68679	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68680	return c
68681}
68682
68683// IfNoneMatch sets the optional parameter which makes the operation
68684// fail if the object's ETag matches the given value. This is useful for
68685// getting updates only after the object has changed since the last
68686// request. Use googleapi.IsNotModified to check whether the response
68687// error from Do is the result of In-None-Match.
68688func (c *SubnetworksGetCall) IfNoneMatch(entityTag string) *SubnetworksGetCall {
68689	c.ifNoneMatch_ = entityTag
68690	return c
68691}
68692
68693// Context sets the context to be used in this call's Do method. Any
68694// pending HTTP request will be aborted if the provided context is
68695// canceled.
68696func (c *SubnetworksGetCall) Context(ctx context.Context) *SubnetworksGetCall {
68697	c.ctx_ = ctx
68698	return c
68699}
68700
68701// Header returns an http.Header that can be modified by the caller to
68702// add HTTP headers to the request.
68703func (c *SubnetworksGetCall) Header() http.Header {
68704	if c.header_ == nil {
68705		c.header_ = make(http.Header)
68706	}
68707	return c.header_
68708}
68709
68710func (c *SubnetworksGetCall) doRequest(alt string) (*http.Response, error) {
68711	reqHeaders := make(http.Header)
68712	for k, v := range c.header_ {
68713		reqHeaders[k] = v
68714	}
68715	reqHeaders.Set("User-Agent", c.s.userAgent())
68716	if c.ifNoneMatch_ != "" {
68717		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68718	}
68719	var body io.Reader = nil
68720	c.urlParams_.Set("alt", alt)
68721	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
68722	urls += "?" + c.urlParams_.Encode()
68723	req, _ := http.NewRequest("GET", urls, body)
68724	req.Header = reqHeaders
68725	googleapi.Expand(req.URL, map[string]string{
68726		"project":    c.project,
68727		"region":     c.region,
68728		"subnetwork": c.subnetwork,
68729	})
68730	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68731}
68732
68733// Do executes the "compute.subnetworks.get" call.
68734// Exactly one of *Subnetwork or error will be non-nil. Any non-2xx
68735// status code is an error. Response headers are in either
68736// *Subnetwork.ServerResponse.Header or (if a response was returned at
68737// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68738// to check whether the returned error was because
68739// http.StatusNotModified was returned.
68740func (c *SubnetworksGetCall) Do(opts ...googleapi.CallOption) (*Subnetwork, error) {
68741	gensupport.SetOptions(c.urlParams_, opts...)
68742	res, err := c.doRequest("json")
68743	if res != nil && res.StatusCode == http.StatusNotModified {
68744		if res.Body != nil {
68745			res.Body.Close()
68746		}
68747		return nil, &googleapi.Error{
68748			Code:   res.StatusCode,
68749			Header: res.Header,
68750		}
68751	}
68752	if err != nil {
68753		return nil, err
68754	}
68755	defer googleapi.CloseBody(res)
68756	if err := googleapi.CheckResponse(res); err != nil {
68757		return nil, err
68758	}
68759	ret := &Subnetwork{
68760		ServerResponse: googleapi.ServerResponse{
68761			Header:         res.Header,
68762			HTTPStatusCode: res.StatusCode,
68763		},
68764	}
68765	target := &ret
68766	if err := gensupport.DecodeResponse(target, res); err != nil {
68767		return nil, err
68768	}
68769	return ret, nil
68770	// {
68771	//   "description": "Returns the specified subnetwork. Get a list of available subnetworks list() request.",
68772	//   "httpMethod": "GET",
68773	//   "id": "compute.subnetworks.get",
68774	//   "parameterOrder": [
68775	//     "project",
68776	//     "region",
68777	//     "subnetwork"
68778	//   ],
68779	//   "parameters": {
68780	//     "project": {
68781	//       "description": "Project ID for this request.",
68782	//       "location": "path",
68783	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68784	//       "required": true,
68785	//       "type": "string"
68786	//     },
68787	//     "region": {
68788	//       "description": "Name of the region scoping this request.",
68789	//       "location": "path",
68790	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
68791	//       "required": true,
68792	//       "type": "string"
68793	//     },
68794	//     "subnetwork": {
68795	//       "description": "Name of the Subnetwork resource to return.",
68796	//       "location": "path",
68797	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
68798	//       "required": true,
68799	//       "type": "string"
68800	//     }
68801	//   },
68802	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
68803	//   "response": {
68804	//     "$ref": "Subnetwork"
68805	//   },
68806	//   "scopes": [
68807	//     "https://www.googleapis.com/auth/cloud-platform",
68808	//     "https://www.googleapis.com/auth/compute",
68809	//     "https://www.googleapis.com/auth/compute.readonly"
68810	//   ]
68811	// }
68812
68813}
68814
68815// method id "compute.subnetworks.insert":
68816
68817type SubnetworksInsertCall struct {
68818	s          *Service
68819	project    string
68820	region     string
68821	subnetwork *Subnetwork
68822	urlParams_ gensupport.URLParams
68823	ctx_       context.Context
68824	header_    http.Header
68825}
68826
68827// Insert: Creates a subnetwork in the specified project using the data
68828// included in the request.
68829func (r *SubnetworksService) Insert(project string, region string, subnetwork *Subnetwork) *SubnetworksInsertCall {
68830	c := &SubnetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68831	c.project = project
68832	c.region = region
68833	c.subnetwork = subnetwork
68834	return c
68835}
68836
68837// RequestId sets the optional parameter "requestId": An optional
68838// request ID to identify requests. Specify a unique request ID so that
68839// if you must retry your request, the server will know to ignore the
68840// request if it has already been completed.
68841//
68842// For example, consider a situation where you make an initial request
68843// and the request times out. If you make the request again with the
68844// same request ID, the server can check if original operation with the
68845// same request ID was received, and if so, will ignore the second
68846// request. This prevents clients from accidentally creating duplicate
68847// commitments.
68848//
68849// The request ID must be a valid UUID with the exception that zero UUID
68850// is not supported (00000000-0000-0000-0000-000000000000).
68851func (c *SubnetworksInsertCall) RequestId(requestId string) *SubnetworksInsertCall {
68852	c.urlParams_.Set("requestId", requestId)
68853	return c
68854}
68855
68856// Fields allows partial responses to be retrieved. See
68857// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68858// for more information.
68859func (c *SubnetworksInsertCall) Fields(s ...googleapi.Field) *SubnetworksInsertCall {
68860	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68861	return c
68862}
68863
68864// Context sets the context to be used in this call's Do method. Any
68865// pending HTTP request will be aborted if the provided context is
68866// canceled.
68867func (c *SubnetworksInsertCall) Context(ctx context.Context) *SubnetworksInsertCall {
68868	c.ctx_ = ctx
68869	return c
68870}
68871
68872// Header returns an http.Header that can be modified by the caller to
68873// add HTTP headers to the request.
68874func (c *SubnetworksInsertCall) Header() http.Header {
68875	if c.header_ == nil {
68876		c.header_ = make(http.Header)
68877	}
68878	return c.header_
68879}
68880
68881func (c *SubnetworksInsertCall) doRequest(alt string) (*http.Response, error) {
68882	reqHeaders := make(http.Header)
68883	for k, v := range c.header_ {
68884		reqHeaders[k] = v
68885	}
68886	reqHeaders.Set("User-Agent", c.s.userAgent())
68887	var body io.Reader = nil
68888	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork)
68889	if err != nil {
68890		return nil, err
68891	}
68892	reqHeaders.Set("Content-Type", "application/json")
68893	c.urlParams_.Set("alt", alt)
68894	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks")
68895	urls += "?" + c.urlParams_.Encode()
68896	req, _ := http.NewRequest("POST", urls, body)
68897	req.Header = reqHeaders
68898	googleapi.Expand(req.URL, map[string]string{
68899		"project": c.project,
68900		"region":  c.region,
68901	})
68902	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68903}
68904
68905// Do executes the "compute.subnetworks.insert" call.
68906// Exactly one of *Operation or error will be non-nil. Any non-2xx
68907// status code is an error. Response headers are in either
68908// *Operation.ServerResponse.Header or (if a response was returned at
68909// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68910// to check whether the returned error was because
68911// http.StatusNotModified was returned.
68912func (c *SubnetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68913	gensupport.SetOptions(c.urlParams_, opts...)
68914	res, err := c.doRequest("json")
68915	if res != nil && res.StatusCode == http.StatusNotModified {
68916		if res.Body != nil {
68917			res.Body.Close()
68918		}
68919		return nil, &googleapi.Error{
68920			Code:   res.StatusCode,
68921			Header: res.Header,
68922		}
68923	}
68924	if err != nil {
68925		return nil, err
68926	}
68927	defer googleapi.CloseBody(res)
68928	if err := googleapi.CheckResponse(res); err != nil {
68929		return nil, err
68930	}
68931	ret := &Operation{
68932		ServerResponse: googleapi.ServerResponse{
68933			Header:         res.Header,
68934			HTTPStatusCode: res.StatusCode,
68935		},
68936	}
68937	target := &ret
68938	if err := gensupport.DecodeResponse(target, res); err != nil {
68939		return nil, err
68940	}
68941	return ret, nil
68942	// {
68943	//   "description": "Creates a subnetwork in the specified project using the data included in the request.",
68944	//   "httpMethod": "POST",
68945	//   "id": "compute.subnetworks.insert",
68946	//   "parameterOrder": [
68947	//     "project",
68948	//     "region"
68949	//   ],
68950	//   "parameters": {
68951	//     "project": {
68952	//       "description": "Project ID for this request.",
68953	//       "location": "path",
68954	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68955	//       "required": true,
68956	//       "type": "string"
68957	//     },
68958	//     "region": {
68959	//       "description": "Name of the region scoping this request.",
68960	//       "location": "path",
68961	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
68962	//       "required": true,
68963	//       "type": "string"
68964	//     },
68965	//     "requestId": {
68966	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68967	//       "location": "query",
68968	//       "type": "string"
68969	//     }
68970	//   },
68971	//   "path": "{project}/regions/{region}/subnetworks",
68972	//   "request": {
68973	//     "$ref": "Subnetwork"
68974	//   },
68975	//   "response": {
68976	//     "$ref": "Operation"
68977	//   },
68978	//   "scopes": [
68979	//     "https://www.googleapis.com/auth/cloud-platform",
68980	//     "https://www.googleapis.com/auth/compute"
68981	//   ]
68982	// }
68983
68984}
68985
68986// method id "compute.subnetworks.list":
68987
68988type SubnetworksListCall struct {
68989	s            *Service
68990	project      string
68991	region       string
68992	urlParams_   gensupport.URLParams
68993	ifNoneMatch_ string
68994	ctx_         context.Context
68995	header_      http.Header
68996}
68997
68998// List: Retrieves a list of subnetworks available to the specified
68999// project.
69000func (r *SubnetworksService) List(project string, region string) *SubnetworksListCall {
69001	c := &SubnetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69002	c.project = project
69003	c.region = region
69004	return c
69005}
69006
69007// Filter sets the optional parameter "filter": Sets a filter
69008// {expression} for filtering listed resources. Your {expression} must
69009// be in the format: field_name comparison_string literal_string.
69010//
69011// The field_name is the name of the field you want to compare. Only
69012// atomic field types are supported (string, number, boolean). The
69013// comparison_string must be either eq (equals) or ne (not equals). The
69014// literal_string is the string value to filter to. The literal value
69015// must be valid for the type of field you are filtering by (string,
69016// number, boolean). For string fields, the literal value is interpreted
69017// as a regular expression using RE2 syntax. The literal value must
69018// match the entire field.
69019//
69020// For example, to filter for instances that do not have a name of
69021// example-instance, you would use name ne example-instance.
69022//
69023// You can filter on nested fields. For example, you could filter on
69024// instances that have set the scheduling.automaticRestart field to
69025// true. Use filtering on nested fields to take advantage of labels to
69026// organize and search for results based on label values.
69027//
69028// To filter on multiple expressions, provide each separate expression
69029// within parentheses. For example, (scheduling.automaticRestart eq
69030// true) (zone eq us-central1-f). Multiple expressions are treated as
69031// AND expressions, meaning that resources must match all expressions to
69032// pass the filters.
69033func (c *SubnetworksListCall) Filter(filter string) *SubnetworksListCall {
69034	c.urlParams_.Set("filter", filter)
69035	return c
69036}
69037
69038// MaxResults sets the optional parameter "maxResults": The maximum
69039// number of results per page that should be returned. If the number of
69040// available results is larger than maxResults, Compute Engine returns a
69041// nextPageToken that can be used to get the next page of results in
69042// subsequent list requests. Acceptable values are 0 to 500, inclusive.
69043// (Default: 500)
69044func (c *SubnetworksListCall) MaxResults(maxResults int64) *SubnetworksListCall {
69045	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
69046	return c
69047}
69048
69049// OrderBy sets the optional parameter "orderBy": Sorts list results by
69050// a certain order. By default, results are returned in alphanumerical
69051// order based on the resource name.
69052//
69053// You can also sort results in descending order based on the creation
69054// timestamp using orderBy="creationTimestamp desc". This sorts results
69055// based on the creationTimestamp field in reverse chronological order
69056// (newest result first). Use this to sort resources like operations so
69057// that the newest operation is returned first.
69058//
69059// Currently, only sorting by name or creationTimestamp desc is
69060// supported.
69061func (c *SubnetworksListCall) OrderBy(orderBy string) *SubnetworksListCall {
69062	c.urlParams_.Set("orderBy", orderBy)
69063	return c
69064}
69065
69066// PageToken sets the optional parameter "pageToken": Specifies a page
69067// token to use. Set pageToken to the nextPageToken returned by a
69068// previous list request to get the next page of results.
69069func (c *SubnetworksListCall) PageToken(pageToken string) *SubnetworksListCall {
69070	c.urlParams_.Set("pageToken", pageToken)
69071	return c
69072}
69073
69074// Fields allows partial responses to be retrieved. See
69075// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69076// for more information.
69077func (c *SubnetworksListCall) Fields(s ...googleapi.Field) *SubnetworksListCall {
69078	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69079	return c
69080}
69081
69082// IfNoneMatch sets the optional parameter which makes the operation
69083// fail if the object's ETag matches the given value. This is useful for
69084// getting updates only after the object has changed since the last
69085// request. Use googleapi.IsNotModified to check whether the response
69086// error from Do is the result of In-None-Match.
69087func (c *SubnetworksListCall) IfNoneMatch(entityTag string) *SubnetworksListCall {
69088	c.ifNoneMatch_ = entityTag
69089	return c
69090}
69091
69092// Context sets the context to be used in this call's Do method. Any
69093// pending HTTP request will be aborted if the provided context is
69094// canceled.
69095func (c *SubnetworksListCall) Context(ctx context.Context) *SubnetworksListCall {
69096	c.ctx_ = ctx
69097	return c
69098}
69099
69100// Header returns an http.Header that can be modified by the caller to
69101// add HTTP headers to the request.
69102func (c *SubnetworksListCall) Header() http.Header {
69103	if c.header_ == nil {
69104		c.header_ = make(http.Header)
69105	}
69106	return c.header_
69107}
69108
69109func (c *SubnetworksListCall) doRequest(alt string) (*http.Response, error) {
69110	reqHeaders := make(http.Header)
69111	for k, v := range c.header_ {
69112		reqHeaders[k] = v
69113	}
69114	reqHeaders.Set("User-Agent", c.s.userAgent())
69115	if c.ifNoneMatch_ != "" {
69116		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69117	}
69118	var body io.Reader = nil
69119	c.urlParams_.Set("alt", alt)
69120	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks")
69121	urls += "?" + c.urlParams_.Encode()
69122	req, _ := http.NewRequest("GET", urls, body)
69123	req.Header = reqHeaders
69124	googleapi.Expand(req.URL, map[string]string{
69125		"project": c.project,
69126		"region":  c.region,
69127	})
69128	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69129}
69130
69131// Do executes the "compute.subnetworks.list" call.
69132// Exactly one of *SubnetworkList or error will be non-nil. Any non-2xx
69133// status code is an error. Response headers are in either
69134// *SubnetworkList.ServerResponse.Header or (if a response was returned
69135// at all) in error.(*googleapi.Error).Header. Use
69136// googleapi.IsNotModified to check whether the returned error was
69137// because http.StatusNotModified was returned.
69138func (c *SubnetworksListCall) Do(opts ...googleapi.CallOption) (*SubnetworkList, error) {
69139	gensupport.SetOptions(c.urlParams_, opts...)
69140	res, err := c.doRequest("json")
69141	if res != nil && res.StatusCode == http.StatusNotModified {
69142		if res.Body != nil {
69143			res.Body.Close()
69144		}
69145		return nil, &googleapi.Error{
69146			Code:   res.StatusCode,
69147			Header: res.Header,
69148		}
69149	}
69150	if err != nil {
69151		return nil, err
69152	}
69153	defer googleapi.CloseBody(res)
69154	if err := googleapi.CheckResponse(res); err != nil {
69155		return nil, err
69156	}
69157	ret := &SubnetworkList{
69158		ServerResponse: googleapi.ServerResponse{
69159			Header:         res.Header,
69160			HTTPStatusCode: res.StatusCode,
69161		},
69162	}
69163	target := &ret
69164	if err := gensupport.DecodeResponse(target, res); err != nil {
69165		return nil, err
69166	}
69167	return ret, nil
69168	// {
69169	//   "description": "Retrieves a list of subnetworks available to the specified project.",
69170	//   "httpMethod": "GET",
69171	//   "id": "compute.subnetworks.list",
69172	//   "parameterOrder": [
69173	//     "project",
69174	//     "region"
69175	//   ],
69176	//   "parameters": {
69177	//     "filter": {
69178	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
69179	//       "location": "query",
69180	//       "type": "string"
69181	//     },
69182	//     "maxResults": {
69183	//       "default": "500",
69184	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
69185	//       "format": "uint32",
69186	//       "location": "query",
69187	//       "minimum": "0",
69188	//       "type": "integer"
69189	//     },
69190	//     "orderBy": {
69191	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
69192	//       "location": "query",
69193	//       "type": "string"
69194	//     },
69195	//     "pageToken": {
69196	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
69197	//       "location": "query",
69198	//       "type": "string"
69199	//     },
69200	//     "project": {
69201	//       "description": "Project ID for this request.",
69202	//       "location": "path",
69203	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69204	//       "required": true,
69205	//       "type": "string"
69206	//     },
69207	//     "region": {
69208	//       "description": "Name of the region scoping this request.",
69209	//       "location": "path",
69210	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
69211	//       "required": true,
69212	//       "type": "string"
69213	//     }
69214	//   },
69215	//   "path": "{project}/regions/{region}/subnetworks",
69216	//   "response": {
69217	//     "$ref": "SubnetworkList"
69218	//   },
69219	//   "scopes": [
69220	//     "https://www.googleapis.com/auth/cloud-platform",
69221	//     "https://www.googleapis.com/auth/compute",
69222	//     "https://www.googleapis.com/auth/compute.readonly"
69223	//   ]
69224	// }
69225
69226}
69227
69228// Pages invokes f for each page of results.
69229// A non-nil error returned from f will halt the iteration.
69230// The provided context supersedes any context provided to the Context method.
69231func (c *SubnetworksListCall) Pages(ctx context.Context, f func(*SubnetworkList) error) error {
69232	c.ctx_ = ctx
69233	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
69234	for {
69235		x, err := c.Do()
69236		if err != nil {
69237			return err
69238		}
69239		if err := f(x); err != nil {
69240			return err
69241		}
69242		if x.NextPageToken == "" {
69243			return nil
69244		}
69245		c.PageToken(x.NextPageToken)
69246	}
69247}
69248
69249// method id "compute.subnetworks.setPrivateIpGoogleAccess":
69250
69251type SubnetworksSetPrivateIpGoogleAccessCall struct {
69252	s                                          *Service
69253	project                                    string
69254	region                                     string
69255	subnetwork                                 string
69256	subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest
69257	urlParams_                                 gensupport.URLParams
69258	ctx_                                       context.Context
69259	header_                                    http.Header
69260}
69261
69262// SetPrivateIpGoogleAccess: Set whether VMs in this subnet can access
69263// Google services without assigning external IP addresses through
69264// Private Google Access.
69265func (r *SubnetworksService) SetPrivateIpGoogleAccess(project string, region string, subnetwork string, subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest) *SubnetworksSetPrivateIpGoogleAccessCall {
69266	c := &SubnetworksSetPrivateIpGoogleAccessCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69267	c.project = project
69268	c.region = region
69269	c.subnetwork = subnetwork
69270	c.subnetworkssetprivateipgoogleaccessrequest = subnetworkssetprivateipgoogleaccessrequest
69271	return c
69272}
69273
69274// RequestId sets the optional parameter "requestId": An optional
69275// request ID to identify requests. Specify a unique request ID so that
69276// if you must retry your request, the server will know to ignore the
69277// request if it has already been completed.
69278//
69279// For example, consider a situation where you make an initial request
69280// and the request times out. If you make the request again with the
69281// same request ID, the server can check if original operation with the
69282// same request ID was received, and if so, will ignore the second
69283// request. This prevents clients from accidentally creating duplicate
69284// commitments.
69285//
69286// The request ID must be a valid UUID with the exception that zero UUID
69287// is not supported (00000000-0000-0000-0000-000000000000).
69288func (c *SubnetworksSetPrivateIpGoogleAccessCall) RequestId(requestId string) *SubnetworksSetPrivateIpGoogleAccessCall {
69289	c.urlParams_.Set("requestId", requestId)
69290	return c
69291}
69292
69293// Fields allows partial responses to be retrieved. See
69294// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69295// for more information.
69296func (c *SubnetworksSetPrivateIpGoogleAccessCall) Fields(s ...googleapi.Field) *SubnetworksSetPrivateIpGoogleAccessCall {
69297	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69298	return c
69299}
69300
69301// Context sets the context to be used in this call's Do method. Any
69302// pending HTTP request will be aborted if the provided context is
69303// canceled.
69304func (c *SubnetworksSetPrivateIpGoogleAccessCall) Context(ctx context.Context) *SubnetworksSetPrivateIpGoogleAccessCall {
69305	c.ctx_ = ctx
69306	return c
69307}
69308
69309// Header returns an http.Header that can be modified by the caller to
69310// add HTTP headers to the request.
69311func (c *SubnetworksSetPrivateIpGoogleAccessCall) Header() http.Header {
69312	if c.header_ == nil {
69313		c.header_ = make(http.Header)
69314	}
69315	return c.header_
69316}
69317
69318func (c *SubnetworksSetPrivateIpGoogleAccessCall) doRequest(alt string) (*http.Response, error) {
69319	reqHeaders := make(http.Header)
69320	for k, v := range c.header_ {
69321		reqHeaders[k] = v
69322	}
69323	reqHeaders.Set("User-Agent", c.s.userAgent())
69324	var body io.Reader = nil
69325	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworkssetprivateipgoogleaccessrequest)
69326	if err != nil {
69327		return nil, err
69328	}
69329	reqHeaders.Set("Content-Type", "application/json")
69330	c.urlParams_.Set("alt", alt)
69331	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess")
69332	urls += "?" + c.urlParams_.Encode()
69333	req, _ := http.NewRequest("POST", urls, body)
69334	req.Header = reqHeaders
69335	googleapi.Expand(req.URL, map[string]string{
69336		"project":    c.project,
69337		"region":     c.region,
69338		"subnetwork": c.subnetwork,
69339	})
69340	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69341}
69342
69343// Do executes the "compute.subnetworks.setPrivateIpGoogleAccess" call.
69344// Exactly one of *Operation or error will be non-nil. Any non-2xx
69345// status code is an error. Response headers are in either
69346// *Operation.ServerResponse.Header or (if a response was returned at
69347// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69348// to check whether the returned error was because
69349// http.StatusNotModified was returned.
69350func (c *SubnetworksSetPrivateIpGoogleAccessCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69351	gensupport.SetOptions(c.urlParams_, opts...)
69352	res, err := c.doRequest("json")
69353	if res != nil && res.StatusCode == http.StatusNotModified {
69354		if res.Body != nil {
69355			res.Body.Close()
69356		}
69357		return nil, &googleapi.Error{
69358			Code:   res.StatusCode,
69359			Header: res.Header,
69360		}
69361	}
69362	if err != nil {
69363		return nil, err
69364	}
69365	defer googleapi.CloseBody(res)
69366	if err := googleapi.CheckResponse(res); err != nil {
69367		return nil, err
69368	}
69369	ret := &Operation{
69370		ServerResponse: googleapi.ServerResponse{
69371			Header:         res.Header,
69372			HTTPStatusCode: res.StatusCode,
69373		},
69374	}
69375	target := &ret
69376	if err := gensupport.DecodeResponse(target, res); err != nil {
69377		return nil, err
69378	}
69379	return ret, nil
69380	// {
69381	//   "description": "Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.",
69382	//   "httpMethod": "POST",
69383	//   "id": "compute.subnetworks.setPrivateIpGoogleAccess",
69384	//   "parameterOrder": [
69385	//     "project",
69386	//     "region",
69387	//     "subnetwork"
69388	//   ],
69389	//   "parameters": {
69390	//     "project": {
69391	//       "description": "Project ID for this request.",
69392	//       "location": "path",
69393	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69394	//       "required": true,
69395	//       "type": "string"
69396	//     },
69397	//     "region": {
69398	//       "description": "Name of the region scoping this request.",
69399	//       "location": "path",
69400	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
69401	//       "required": true,
69402	//       "type": "string"
69403	//     },
69404	//     "requestId": {
69405	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69406	//       "location": "query",
69407	//       "type": "string"
69408	//     },
69409	//     "subnetwork": {
69410	//       "description": "Name of the Subnetwork resource.",
69411	//       "location": "path",
69412	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
69413	//       "required": true,
69414	//       "type": "string"
69415	//     }
69416	//   },
69417	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess",
69418	//   "request": {
69419	//     "$ref": "SubnetworksSetPrivateIpGoogleAccessRequest"
69420	//   },
69421	//   "response": {
69422	//     "$ref": "Operation"
69423	//   },
69424	//   "scopes": [
69425	//     "https://www.googleapis.com/auth/cloud-platform",
69426	//     "https://www.googleapis.com/auth/compute"
69427	//   ]
69428	// }
69429
69430}
69431
69432// method id "compute.targetHttpProxies.delete":
69433
69434type TargetHttpProxiesDeleteCall struct {
69435	s               *Service
69436	project         string
69437	targetHttpProxy string
69438	urlParams_      gensupport.URLParams
69439	ctx_            context.Context
69440	header_         http.Header
69441}
69442
69443// Delete: Deletes the specified TargetHttpProxy resource.
69444// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/delete
69445func (r *TargetHttpProxiesService) Delete(project string, targetHttpProxy string) *TargetHttpProxiesDeleteCall {
69446	c := &TargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69447	c.project = project
69448	c.targetHttpProxy = targetHttpProxy
69449	return c
69450}
69451
69452// RequestId sets the optional parameter "requestId": An optional
69453// request ID to identify requests. Specify a unique request ID so that
69454// if you must retry your request, the server will know to ignore the
69455// request if it has already been completed.
69456//
69457// For example, consider a situation where you make an initial request
69458// and the request times out. If you make the request again with the
69459// same request ID, the server can check if original operation with the
69460// same request ID was received, and if so, will ignore the second
69461// request. This prevents clients from accidentally creating duplicate
69462// commitments.
69463//
69464// The request ID must be a valid UUID with the exception that zero UUID
69465// is not supported (00000000-0000-0000-0000-000000000000).
69466func (c *TargetHttpProxiesDeleteCall) RequestId(requestId string) *TargetHttpProxiesDeleteCall {
69467	c.urlParams_.Set("requestId", requestId)
69468	return c
69469}
69470
69471// Fields allows partial responses to be retrieved. See
69472// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69473// for more information.
69474func (c *TargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpProxiesDeleteCall {
69475	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69476	return c
69477}
69478
69479// Context sets the context to be used in this call's Do method. Any
69480// pending HTTP request will be aborted if the provided context is
69481// canceled.
69482func (c *TargetHttpProxiesDeleteCall) Context(ctx context.Context) *TargetHttpProxiesDeleteCall {
69483	c.ctx_ = ctx
69484	return c
69485}
69486
69487// Header returns an http.Header that can be modified by the caller to
69488// add HTTP headers to the request.
69489func (c *TargetHttpProxiesDeleteCall) Header() http.Header {
69490	if c.header_ == nil {
69491		c.header_ = make(http.Header)
69492	}
69493	return c.header_
69494}
69495
69496func (c *TargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
69497	reqHeaders := make(http.Header)
69498	for k, v := range c.header_ {
69499		reqHeaders[k] = v
69500	}
69501	reqHeaders.Set("User-Agent", c.s.userAgent())
69502	var body io.Reader = nil
69503	c.urlParams_.Set("alt", alt)
69504	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{targetHttpProxy}")
69505	urls += "?" + c.urlParams_.Encode()
69506	req, _ := http.NewRequest("DELETE", urls, body)
69507	req.Header = reqHeaders
69508	googleapi.Expand(req.URL, map[string]string{
69509		"project":         c.project,
69510		"targetHttpProxy": c.targetHttpProxy,
69511	})
69512	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69513}
69514
69515// Do executes the "compute.targetHttpProxies.delete" call.
69516// Exactly one of *Operation or error will be non-nil. Any non-2xx
69517// status code is an error. Response headers are in either
69518// *Operation.ServerResponse.Header or (if a response was returned at
69519// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69520// to check whether the returned error was because
69521// http.StatusNotModified was returned.
69522func (c *TargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69523	gensupport.SetOptions(c.urlParams_, opts...)
69524	res, err := c.doRequest("json")
69525	if res != nil && res.StatusCode == http.StatusNotModified {
69526		if res.Body != nil {
69527			res.Body.Close()
69528		}
69529		return nil, &googleapi.Error{
69530			Code:   res.StatusCode,
69531			Header: res.Header,
69532		}
69533	}
69534	if err != nil {
69535		return nil, err
69536	}
69537	defer googleapi.CloseBody(res)
69538	if err := googleapi.CheckResponse(res); err != nil {
69539		return nil, err
69540	}
69541	ret := &Operation{
69542		ServerResponse: googleapi.ServerResponse{
69543			Header:         res.Header,
69544			HTTPStatusCode: res.StatusCode,
69545		},
69546	}
69547	target := &ret
69548	if err := gensupport.DecodeResponse(target, res); err != nil {
69549		return nil, err
69550	}
69551	return ret, nil
69552	// {
69553	//   "description": "Deletes the specified TargetHttpProxy resource.",
69554	//   "httpMethod": "DELETE",
69555	//   "id": "compute.targetHttpProxies.delete",
69556	//   "parameterOrder": [
69557	//     "project",
69558	//     "targetHttpProxy"
69559	//   ],
69560	//   "parameters": {
69561	//     "project": {
69562	//       "description": "Project ID for this request.",
69563	//       "location": "path",
69564	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69565	//       "required": true,
69566	//       "type": "string"
69567	//     },
69568	//     "requestId": {
69569	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69570	//       "location": "query",
69571	//       "type": "string"
69572	//     },
69573	//     "targetHttpProxy": {
69574	//       "description": "Name of the TargetHttpProxy resource to delete.",
69575	//       "location": "path",
69576	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
69577	//       "required": true,
69578	//       "type": "string"
69579	//     }
69580	//   },
69581	//   "path": "{project}/global/targetHttpProxies/{targetHttpProxy}",
69582	//   "response": {
69583	//     "$ref": "Operation"
69584	//   },
69585	//   "scopes": [
69586	//     "https://www.googleapis.com/auth/cloud-platform",
69587	//     "https://www.googleapis.com/auth/compute"
69588	//   ]
69589	// }
69590
69591}
69592
69593// method id "compute.targetHttpProxies.get":
69594
69595type TargetHttpProxiesGetCall struct {
69596	s               *Service
69597	project         string
69598	targetHttpProxy string
69599	urlParams_      gensupport.URLParams
69600	ifNoneMatch_    string
69601	ctx_            context.Context
69602	header_         http.Header
69603}
69604
69605// Get: Returns the specified TargetHttpProxy resource. Get a list of
69606// available target HTTP proxies by making a list() request.
69607// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/get
69608func (r *TargetHttpProxiesService) Get(project string, targetHttpProxy string) *TargetHttpProxiesGetCall {
69609	c := &TargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69610	c.project = project
69611	c.targetHttpProxy = targetHttpProxy
69612	return c
69613}
69614
69615// Fields allows partial responses to be retrieved. See
69616// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69617// for more information.
69618func (c *TargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpProxiesGetCall {
69619	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69620	return c
69621}
69622
69623// IfNoneMatch sets the optional parameter which makes the operation
69624// fail if the object's ETag matches the given value. This is useful for
69625// getting updates only after the object has changed since the last
69626// request. Use googleapi.IsNotModified to check whether the response
69627// error from Do is the result of In-None-Match.
69628func (c *TargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpProxiesGetCall {
69629	c.ifNoneMatch_ = entityTag
69630	return c
69631}
69632
69633// Context sets the context to be used in this call's Do method. Any
69634// pending HTTP request will be aborted if the provided context is
69635// canceled.
69636func (c *TargetHttpProxiesGetCall) Context(ctx context.Context) *TargetHttpProxiesGetCall {
69637	c.ctx_ = ctx
69638	return c
69639}
69640
69641// Header returns an http.Header that can be modified by the caller to
69642// add HTTP headers to the request.
69643func (c *TargetHttpProxiesGetCall) Header() http.Header {
69644	if c.header_ == nil {
69645		c.header_ = make(http.Header)
69646	}
69647	return c.header_
69648}
69649
69650func (c *TargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
69651	reqHeaders := make(http.Header)
69652	for k, v := range c.header_ {
69653		reqHeaders[k] = v
69654	}
69655	reqHeaders.Set("User-Agent", c.s.userAgent())
69656	if c.ifNoneMatch_ != "" {
69657		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69658	}
69659	var body io.Reader = nil
69660	c.urlParams_.Set("alt", alt)
69661	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{targetHttpProxy}")
69662	urls += "?" + c.urlParams_.Encode()
69663	req, _ := http.NewRequest("GET", urls, body)
69664	req.Header = reqHeaders
69665	googleapi.Expand(req.URL, map[string]string{
69666		"project":         c.project,
69667		"targetHttpProxy": c.targetHttpProxy,
69668	})
69669	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69670}
69671
69672// Do executes the "compute.targetHttpProxies.get" call.
69673// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
69674// status code is an error. Response headers are in either
69675// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
69676// at all) in error.(*googleapi.Error).Header. Use
69677// googleapi.IsNotModified to check whether the returned error was
69678// because http.StatusNotModified was returned.
69679func (c *TargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
69680	gensupport.SetOptions(c.urlParams_, opts...)
69681	res, err := c.doRequest("json")
69682	if res != nil && res.StatusCode == http.StatusNotModified {
69683		if res.Body != nil {
69684			res.Body.Close()
69685		}
69686		return nil, &googleapi.Error{
69687			Code:   res.StatusCode,
69688			Header: res.Header,
69689		}
69690	}
69691	if err != nil {
69692		return nil, err
69693	}
69694	defer googleapi.CloseBody(res)
69695	if err := googleapi.CheckResponse(res); err != nil {
69696		return nil, err
69697	}
69698	ret := &TargetHttpProxy{
69699		ServerResponse: googleapi.ServerResponse{
69700			Header:         res.Header,
69701			HTTPStatusCode: res.StatusCode,
69702		},
69703	}
69704	target := &ret
69705	if err := gensupport.DecodeResponse(target, res); err != nil {
69706		return nil, err
69707	}
69708	return ret, nil
69709	// {
69710	//   "description": "Returns the specified TargetHttpProxy resource. Get a list of available target HTTP proxies by making a list() request.",
69711	//   "httpMethod": "GET",
69712	//   "id": "compute.targetHttpProxies.get",
69713	//   "parameterOrder": [
69714	//     "project",
69715	//     "targetHttpProxy"
69716	//   ],
69717	//   "parameters": {
69718	//     "project": {
69719	//       "description": "Project ID for this request.",
69720	//       "location": "path",
69721	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69722	//       "required": true,
69723	//       "type": "string"
69724	//     },
69725	//     "targetHttpProxy": {
69726	//       "description": "Name of the TargetHttpProxy resource to return.",
69727	//       "location": "path",
69728	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
69729	//       "required": true,
69730	//       "type": "string"
69731	//     }
69732	//   },
69733	//   "path": "{project}/global/targetHttpProxies/{targetHttpProxy}",
69734	//   "response": {
69735	//     "$ref": "TargetHttpProxy"
69736	//   },
69737	//   "scopes": [
69738	//     "https://www.googleapis.com/auth/cloud-platform",
69739	//     "https://www.googleapis.com/auth/compute",
69740	//     "https://www.googleapis.com/auth/compute.readonly"
69741	//   ]
69742	// }
69743
69744}
69745
69746// method id "compute.targetHttpProxies.insert":
69747
69748type TargetHttpProxiesInsertCall struct {
69749	s               *Service
69750	project         string
69751	targethttpproxy *TargetHttpProxy
69752	urlParams_      gensupport.URLParams
69753	ctx_            context.Context
69754	header_         http.Header
69755}
69756
69757// Insert: Creates a TargetHttpProxy resource in the specified project
69758// using the data included in the request.
69759// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/insert
69760func (r *TargetHttpProxiesService) Insert(project string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesInsertCall {
69761	c := &TargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69762	c.project = project
69763	c.targethttpproxy = targethttpproxy
69764	return c
69765}
69766
69767// RequestId sets the optional parameter "requestId": An optional
69768// request ID to identify requests. Specify a unique request ID so that
69769// if you must retry your request, the server will know to ignore the
69770// request if it has already been completed.
69771//
69772// For example, consider a situation where you make an initial request
69773// and the request times out. If you make the request again with the
69774// same request ID, the server can check if original operation with the
69775// same request ID was received, and if so, will ignore the second
69776// request. This prevents clients from accidentally creating duplicate
69777// commitments.
69778//
69779// The request ID must be a valid UUID with the exception that zero UUID
69780// is not supported (00000000-0000-0000-0000-000000000000).
69781func (c *TargetHttpProxiesInsertCall) RequestId(requestId string) *TargetHttpProxiesInsertCall {
69782	c.urlParams_.Set("requestId", requestId)
69783	return c
69784}
69785
69786// Fields allows partial responses to be retrieved. See
69787// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69788// for more information.
69789func (c *TargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpProxiesInsertCall {
69790	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69791	return c
69792}
69793
69794// Context sets the context to be used in this call's Do method. Any
69795// pending HTTP request will be aborted if the provided context is
69796// canceled.
69797func (c *TargetHttpProxiesInsertCall) Context(ctx context.Context) *TargetHttpProxiesInsertCall {
69798	c.ctx_ = ctx
69799	return c
69800}
69801
69802// Header returns an http.Header that can be modified by the caller to
69803// add HTTP headers to the request.
69804func (c *TargetHttpProxiesInsertCall) Header() http.Header {
69805	if c.header_ == nil {
69806		c.header_ = make(http.Header)
69807	}
69808	return c.header_
69809}
69810
69811func (c *TargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
69812	reqHeaders := make(http.Header)
69813	for k, v := range c.header_ {
69814		reqHeaders[k] = v
69815	}
69816	reqHeaders.Set("User-Agent", c.s.userAgent())
69817	var body io.Reader = nil
69818	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
69819	if err != nil {
69820		return nil, err
69821	}
69822	reqHeaders.Set("Content-Type", "application/json")
69823	c.urlParams_.Set("alt", alt)
69824	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies")
69825	urls += "?" + c.urlParams_.Encode()
69826	req, _ := http.NewRequest("POST", urls, body)
69827	req.Header = reqHeaders
69828	googleapi.Expand(req.URL, map[string]string{
69829		"project": c.project,
69830	})
69831	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69832}
69833
69834// Do executes the "compute.targetHttpProxies.insert" call.
69835// Exactly one of *Operation or error will be non-nil. Any non-2xx
69836// status code is an error. Response headers are in either
69837// *Operation.ServerResponse.Header or (if a response was returned at
69838// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69839// to check whether the returned error was because
69840// http.StatusNotModified was returned.
69841func (c *TargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69842	gensupport.SetOptions(c.urlParams_, opts...)
69843	res, err := c.doRequest("json")
69844	if res != nil && res.StatusCode == http.StatusNotModified {
69845		if res.Body != nil {
69846			res.Body.Close()
69847		}
69848		return nil, &googleapi.Error{
69849			Code:   res.StatusCode,
69850			Header: res.Header,
69851		}
69852	}
69853	if err != nil {
69854		return nil, err
69855	}
69856	defer googleapi.CloseBody(res)
69857	if err := googleapi.CheckResponse(res); err != nil {
69858		return nil, err
69859	}
69860	ret := &Operation{
69861		ServerResponse: googleapi.ServerResponse{
69862			Header:         res.Header,
69863			HTTPStatusCode: res.StatusCode,
69864		},
69865	}
69866	target := &ret
69867	if err := gensupport.DecodeResponse(target, res); err != nil {
69868		return nil, err
69869	}
69870	return ret, nil
69871	// {
69872	//   "description": "Creates a TargetHttpProxy resource in the specified project using the data included in the request.",
69873	//   "httpMethod": "POST",
69874	//   "id": "compute.targetHttpProxies.insert",
69875	//   "parameterOrder": [
69876	//     "project"
69877	//   ],
69878	//   "parameters": {
69879	//     "project": {
69880	//       "description": "Project ID for this request.",
69881	//       "location": "path",
69882	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69883	//       "required": true,
69884	//       "type": "string"
69885	//     },
69886	//     "requestId": {
69887	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69888	//       "location": "query",
69889	//       "type": "string"
69890	//     }
69891	//   },
69892	//   "path": "{project}/global/targetHttpProxies",
69893	//   "request": {
69894	//     "$ref": "TargetHttpProxy"
69895	//   },
69896	//   "response": {
69897	//     "$ref": "Operation"
69898	//   },
69899	//   "scopes": [
69900	//     "https://www.googleapis.com/auth/cloud-platform",
69901	//     "https://www.googleapis.com/auth/compute"
69902	//   ]
69903	// }
69904
69905}
69906
69907// method id "compute.targetHttpProxies.list":
69908
69909type TargetHttpProxiesListCall struct {
69910	s            *Service
69911	project      string
69912	urlParams_   gensupport.URLParams
69913	ifNoneMatch_ string
69914	ctx_         context.Context
69915	header_      http.Header
69916}
69917
69918// List: Retrieves the list of TargetHttpProxy resources available to
69919// the specified project.
69920// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/list
69921func (r *TargetHttpProxiesService) List(project string) *TargetHttpProxiesListCall {
69922	c := &TargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69923	c.project = project
69924	return c
69925}
69926
69927// Filter sets the optional parameter "filter": Sets a filter
69928// {expression} for filtering listed resources. Your {expression} must
69929// be in the format: field_name comparison_string literal_string.
69930//
69931// The field_name is the name of the field you want to compare. Only
69932// atomic field types are supported (string, number, boolean). The
69933// comparison_string must be either eq (equals) or ne (not equals). The
69934// literal_string is the string value to filter to. The literal value
69935// must be valid for the type of field you are filtering by (string,
69936// number, boolean). For string fields, the literal value is interpreted
69937// as a regular expression using RE2 syntax. The literal value must
69938// match the entire field.
69939//
69940// For example, to filter for instances that do not have a name of
69941// example-instance, you would use name ne example-instance.
69942//
69943// You can filter on nested fields. For example, you could filter on
69944// instances that have set the scheduling.automaticRestart field to
69945// true. Use filtering on nested fields to take advantage of labels to
69946// organize and search for results based on label values.
69947//
69948// To filter on multiple expressions, provide each separate expression
69949// within parentheses. For example, (scheduling.automaticRestart eq
69950// true) (zone eq us-central1-f). Multiple expressions are treated as
69951// AND expressions, meaning that resources must match all expressions to
69952// pass the filters.
69953func (c *TargetHttpProxiesListCall) Filter(filter string) *TargetHttpProxiesListCall {
69954	c.urlParams_.Set("filter", filter)
69955	return c
69956}
69957
69958// MaxResults sets the optional parameter "maxResults": The maximum
69959// number of results per page that should be returned. If the number of
69960// available results is larger than maxResults, Compute Engine returns a
69961// nextPageToken that can be used to get the next page of results in
69962// subsequent list requests. Acceptable values are 0 to 500, inclusive.
69963// (Default: 500)
69964func (c *TargetHttpProxiesListCall) MaxResults(maxResults int64) *TargetHttpProxiesListCall {
69965	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
69966	return c
69967}
69968
69969// OrderBy sets the optional parameter "orderBy": Sorts list results by
69970// a certain order. By default, results are returned in alphanumerical
69971// order based on the resource name.
69972//
69973// You can also sort results in descending order based on the creation
69974// timestamp using orderBy="creationTimestamp desc". This sorts results
69975// based on the creationTimestamp field in reverse chronological order
69976// (newest result first). Use this to sort resources like operations so
69977// that the newest operation is returned first.
69978//
69979// Currently, only sorting by name or creationTimestamp desc is
69980// supported.
69981func (c *TargetHttpProxiesListCall) OrderBy(orderBy string) *TargetHttpProxiesListCall {
69982	c.urlParams_.Set("orderBy", orderBy)
69983	return c
69984}
69985
69986// PageToken sets the optional parameter "pageToken": Specifies a page
69987// token to use. Set pageToken to the nextPageToken returned by a
69988// previous list request to get the next page of results.
69989func (c *TargetHttpProxiesListCall) PageToken(pageToken string) *TargetHttpProxiesListCall {
69990	c.urlParams_.Set("pageToken", pageToken)
69991	return c
69992}
69993
69994// Fields allows partial responses to be retrieved. See
69995// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69996// for more information.
69997func (c *TargetHttpProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesListCall {
69998	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69999	return c
70000}
70001
70002// IfNoneMatch sets the optional parameter which makes the operation
70003// fail if the object's ETag matches the given value. This is useful for
70004// getting updates only after the object has changed since the last
70005// request. Use googleapi.IsNotModified to check whether the response
70006// error from Do is the result of In-None-Match.
70007func (c *TargetHttpProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesListCall {
70008	c.ifNoneMatch_ = entityTag
70009	return c
70010}
70011
70012// Context sets the context to be used in this call's Do method. Any
70013// pending HTTP request will be aborted if the provided context is
70014// canceled.
70015func (c *TargetHttpProxiesListCall) Context(ctx context.Context) *TargetHttpProxiesListCall {
70016	c.ctx_ = ctx
70017	return c
70018}
70019
70020// Header returns an http.Header that can be modified by the caller to
70021// add HTTP headers to the request.
70022func (c *TargetHttpProxiesListCall) Header() http.Header {
70023	if c.header_ == nil {
70024		c.header_ = make(http.Header)
70025	}
70026	return c.header_
70027}
70028
70029func (c *TargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
70030	reqHeaders := make(http.Header)
70031	for k, v := range c.header_ {
70032		reqHeaders[k] = v
70033	}
70034	reqHeaders.Set("User-Agent", c.s.userAgent())
70035	if c.ifNoneMatch_ != "" {
70036		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70037	}
70038	var body io.Reader = nil
70039	c.urlParams_.Set("alt", alt)
70040	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies")
70041	urls += "?" + c.urlParams_.Encode()
70042	req, _ := http.NewRequest("GET", urls, body)
70043	req.Header = reqHeaders
70044	googleapi.Expand(req.URL, map[string]string{
70045		"project": c.project,
70046	})
70047	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70048}
70049
70050// Do executes the "compute.targetHttpProxies.list" call.
70051// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
70052// non-2xx status code is an error. Response headers are in either
70053// *TargetHttpProxyList.ServerResponse.Header or (if a response was
70054// returned at all) in error.(*googleapi.Error).Header. Use
70055// googleapi.IsNotModified to check whether the returned error was
70056// because http.StatusNotModified was returned.
70057func (c *TargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
70058	gensupport.SetOptions(c.urlParams_, opts...)
70059	res, err := c.doRequest("json")
70060	if res != nil && res.StatusCode == http.StatusNotModified {
70061		if res.Body != nil {
70062			res.Body.Close()
70063		}
70064		return nil, &googleapi.Error{
70065			Code:   res.StatusCode,
70066			Header: res.Header,
70067		}
70068	}
70069	if err != nil {
70070		return nil, err
70071	}
70072	defer googleapi.CloseBody(res)
70073	if err := googleapi.CheckResponse(res); err != nil {
70074		return nil, err
70075	}
70076	ret := &TargetHttpProxyList{
70077		ServerResponse: googleapi.ServerResponse{
70078			Header:         res.Header,
70079			HTTPStatusCode: res.StatusCode,
70080		},
70081	}
70082	target := &ret
70083	if err := gensupport.DecodeResponse(target, res); err != nil {
70084		return nil, err
70085	}
70086	return ret, nil
70087	// {
70088	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project.",
70089	//   "httpMethod": "GET",
70090	//   "id": "compute.targetHttpProxies.list",
70091	//   "parameterOrder": [
70092	//     "project"
70093	//   ],
70094	//   "parameters": {
70095	//     "filter": {
70096	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
70097	//       "location": "query",
70098	//       "type": "string"
70099	//     },
70100	//     "maxResults": {
70101	//       "default": "500",
70102	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
70103	//       "format": "uint32",
70104	//       "location": "query",
70105	//       "minimum": "0",
70106	//       "type": "integer"
70107	//     },
70108	//     "orderBy": {
70109	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
70110	//       "location": "query",
70111	//       "type": "string"
70112	//     },
70113	//     "pageToken": {
70114	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
70115	//       "location": "query",
70116	//       "type": "string"
70117	//     },
70118	//     "project": {
70119	//       "description": "Project ID for this request.",
70120	//       "location": "path",
70121	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70122	//       "required": true,
70123	//       "type": "string"
70124	//     }
70125	//   },
70126	//   "path": "{project}/global/targetHttpProxies",
70127	//   "response": {
70128	//     "$ref": "TargetHttpProxyList"
70129	//   },
70130	//   "scopes": [
70131	//     "https://www.googleapis.com/auth/cloud-platform",
70132	//     "https://www.googleapis.com/auth/compute",
70133	//     "https://www.googleapis.com/auth/compute.readonly"
70134	//   ]
70135	// }
70136
70137}
70138
70139// Pages invokes f for each page of results.
70140// A non-nil error returned from f will halt the iteration.
70141// The provided context supersedes any context provided to the Context method.
70142func (c *TargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
70143	c.ctx_ = ctx
70144	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
70145	for {
70146		x, err := c.Do()
70147		if err != nil {
70148			return err
70149		}
70150		if err := f(x); err != nil {
70151			return err
70152		}
70153		if x.NextPageToken == "" {
70154			return nil
70155		}
70156		c.PageToken(x.NextPageToken)
70157	}
70158}
70159
70160// method id "compute.targetHttpProxies.setUrlMap":
70161
70162type TargetHttpProxiesSetUrlMapCall struct {
70163	s               *Service
70164	project         string
70165	targetHttpProxy string
70166	urlmapreference *UrlMapReference
70167	urlParams_      gensupport.URLParams
70168	ctx_            context.Context
70169	header_         http.Header
70170}
70171
70172// SetUrlMap: Changes the URL map for TargetHttpProxy.
70173// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/setUrlMap
70174func (r *TargetHttpProxiesService) SetUrlMap(project string, targetHttpProxy string, urlmapreference *UrlMapReference) *TargetHttpProxiesSetUrlMapCall {
70175	c := &TargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70176	c.project = project
70177	c.targetHttpProxy = targetHttpProxy
70178	c.urlmapreference = urlmapreference
70179	return c
70180}
70181
70182// RequestId sets the optional parameter "requestId": An optional
70183// request ID to identify requests. Specify a unique request ID so that
70184// if you must retry your request, the server will know to ignore the
70185// request if it has already been completed.
70186//
70187// For example, consider a situation where you make an initial request
70188// and the request times out. If you make the request again with the
70189// same request ID, the server can check if original operation with the
70190// same request ID was received, and if so, will ignore the second
70191// request. This prevents clients from accidentally creating duplicate
70192// commitments.
70193//
70194// The request ID must be a valid UUID with the exception that zero UUID
70195// is not supported (00000000-0000-0000-0000-000000000000).
70196func (c *TargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpProxiesSetUrlMapCall {
70197	c.urlParams_.Set("requestId", requestId)
70198	return c
70199}
70200
70201// Fields allows partial responses to be retrieved. See
70202// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70203// for more information.
70204func (c *TargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpProxiesSetUrlMapCall {
70205	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70206	return c
70207}
70208
70209// Context sets the context to be used in this call's Do method. Any
70210// pending HTTP request will be aborted if the provided context is
70211// canceled.
70212func (c *TargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpProxiesSetUrlMapCall {
70213	c.ctx_ = ctx
70214	return c
70215}
70216
70217// Header returns an http.Header that can be modified by the caller to
70218// add HTTP headers to the request.
70219func (c *TargetHttpProxiesSetUrlMapCall) Header() http.Header {
70220	if c.header_ == nil {
70221		c.header_ = make(http.Header)
70222	}
70223	return c.header_
70224}
70225
70226func (c *TargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
70227	reqHeaders := make(http.Header)
70228	for k, v := range c.header_ {
70229		reqHeaders[k] = v
70230	}
70231	reqHeaders.Set("User-Agent", c.s.userAgent())
70232	var body io.Reader = nil
70233	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
70234	if err != nil {
70235		return nil, err
70236	}
70237	reqHeaders.Set("Content-Type", "application/json")
70238	c.urlParams_.Set("alt", alt)
70239	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
70240	urls += "?" + c.urlParams_.Encode()
70241	req, _ := http.NewRequest("POST", urls, body)
70242	req.Header = reqHeaders
70243	googleapi.Expand(req.URL, map[string]string{
70244		"project":         c.project,
70245		"targetHttpProxy": c.targetHttpProxy,
70246	})
70247	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70248}
70249
70250// Do executes the "compute.targetHttpProxies.setUrlMap" call.
70251// Exactly one of *Operation or error will be non-nil. Any non-2xx
70252// status code is an error. Response headers are in either
70253// *Operation.ServerResponse.Header or (if a response was returned at
70254// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70255// to check whether the returned error was because
70256// http.StatusNotModified was returned.
70257func (c *TargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70258	gensupport.SetOptions(c.urlParams_, opts...)
70259	res, err := c.doRequest("json")
70260	if res != nil && res.StatusCode == http.StatusNotModified {
70261		if res.Body != nil {
70262			res.Body.Close()
70263		}
70264		return nil, &googleapi.Error{
70265			Code:   res.StatusCode,
70266			Header: res.Header,
70267		}
70268	}
70269	if err != nil {
70270		return nil, err
70271	}
70272	defer googleapi.CloseBody(res)
70273	if err := googleapi.CheckResponse(res); err != nil {
70274		return nil, err
70275	}
70276	ret := &Operation{
70277		ServerResponse: googleapi.ServerResponse{
70278			Header:         res.Header,
70279			HTTPStatusCode: res.StatusCode,
70280		},
70281	}
70282	target := &ret
70283	if err := gensupport.DecodeResponse(target, res); err != nil {
70284		return nil, err
70285	}
70286	return ret, nil
70287	// {
70288	//   "description": "Changes the URL map for TargetHttpProxy.",
70289	//   "httpMethod": "POST",
70290	//   "id": "compute.targetHttpProxies.setUrlMap",
70291	//   "parameterOrder": [
70292	//     "project",
70293	//     "targetHttpProxy"
70294	//   ],
70295	//   "parameters": {
70296	//     "project": {
70297	//       "description": "Project ID for this request.",
70298	//       "location": "path",
70299	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70300	//       "required": true,
70301	//       "type": "string"
70302	//     },
70303	//     "requestId": {
70304	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70305	//       "location": "query",
70306	//       "type": "string"
70307	//     },
70308	//     "targetHttpProxy": {
70309	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
70310	//       "location": "path",
70311	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
70312	//       "required": true,
70313	//       "type": "string"
70314	//     }
70315	//   },
70316	//   "path": "{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
70317	//   "request": {
70318	//     "$ref": "UrlMapReference"
70319	//   },
70320	//   "response": {
70321	//     "$ref": "Operation"
70322	//   },
70323	//   "scopes": [
70324	//     "https://www.googleapis.com/auth/cloud-platform",
70325	//     "https://www.googleapis.com/auth/compute"
70326	//   ]
70327	// }
70328
70329}
70330
70331// method id "compute.targetHttpsProxies.delete":
70332
70333type TargetHttpsProxiesDeleteCall struct {
70334	s                *Service
70335	project          string
70336	targetHttpsProxy string
70337	urlParams_       gensupport.URLParams
70338	ctx_             context.Context
70339	header_          http.Header
70340}
70341
70342// Delete: Deletes the specified TargetHttpsProxy resource.
70343func (r *TargetHttpsProxiesService) Delete(project string, targetHttpsProxy string) *TargetHttpsProxiesDeleteCall {
70344	c := &TargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70345	c.project = project
70346	c.targetHttpsProxy = targetHttpsProxy
70347	return c
70348}
70349
70350// RequestId sets the optional parameter "requestId": An optional
70351// request ID to identify requests. Specify a unique request ID so that
70352// if you must retry your request, the server will know to ignore the
70353// request if it has already been completed.
70354//
70355// For example, consider a situation where you make an initial request
70356// and the request times out. If you make the request again with the
70357// same request ID, the server can check if original operation with the
70358// same request ID was received, and if so, will ignore the second
70359// request. This prevents clients from accidentally creating duplicate
70360// commitments.
70361//
70362// The request ID must be a valid UUID with the exception that zero UUID
70363// is not supported (00000000-0000-0000-0000-000000000000).
70364func (c *TargetHttpsProxiesDeleteCall) RequestId(requestId string) *TargetHttpsProxiesDeleteCall {
70365	c.urlParams_.Set("requestId", requestId)
70366	return c
70367}
70368
70369// Fields allows partial responses to be retrieved. See
70370// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70371// for more information.
70372func (c *TargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesDeleteCall {
70373	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70374	return c
70375}
70376
70377// Context sets the context to be used in this call's Do method. Any
70378// pending HTTP request will be aborted if the provided context is
70379// canceled.
70380func (c *TargetHttpsProxiesDeleteCall) Context(ctx context.Context) *TargetHttpsProxiesDeleteCall {
70381	c.ctx_ = ctx
70382	return c
70383}
70384
70385// Header returns an http.Header that can be modified by the caller to
70386// add HTTP headers to the request.
70387func (c *TargetHttpsProxiesDeleteCall) Header() http.Header {
70388	if c.header_ == nil {
70389		c.header_ = make(http.Header)
70390	}
70391	return c.header_
70392}
70393
70394func (c *TargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
70395	reqHeaders := make(http.Header)
70396	for k, v := range c.header_ {
70397		reqHeaders[k] = v
70398	}
70399	reqHeaders.Set("User-Agent", c.s.userAgent())
70400	var body io.Reader = nil
70401	c.urlParams_.Set("alt", alt)
70402	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}")
70403	urls += "?" + c.urlParams_.Encode()
70404	req, _ := http.NewRequest("DELETE", urls, body)
70405	req.Header = reqHeaders
70406	googleapi.Expand(req.URL, map[string]string{
70407		"project":          c.project,
70408		"targetHttpsProxy": c.targetHttpsProxy,
70409	})
70410	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70411}
70412
70413// Do executes the "compute.targetHttpsProxies.delete" call.
70414// Exactly one of *Operation or error will be non-nil. Any non-2xx
70415// status code is an error. Response headers are in either
70416// *Operation.ServerResponse.Header or (if a response was returned at
70417// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70418// to check whether the returned error was because
70419// http.StatusNotModified was returned.
70420func (c *TargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70421	gensupport.SetOptions(c.urlParams_, opts...)
70422	res, err := c.doRequest("json")
70423	if res != nil && res.StatusCode == http.StatusNotModified {
70424		if res.Body != nil {
70425			res.Body.Close()
70426		}
70427		return nil, &googleapi.Error{
70428			Code:   res.StatusCode,
70429			Header: res.Header,
70430		}
70431	}
70432	if err != nil {
70433		return nil, err
70434	}
70435	defer googleapi.CloseBody(res)
70436	if err := googleapi.CheckResponse(res); err != nil {
70437		return nil, err
70438	}
70439	ret := &Operation{
70440		ServerResponse: googleapi.ServerResponse{
70441			Header:         res.Header,
70442			HTTPStatusCode: res.StatusCode,
70443		},
70444	}
70445	target := &ret
70446	if err := gensupport.DecodeResponse(target, res); err != nil {
70447		return nil, err
70448	}
70449	return ret, nil
70450	// {
70451	//   "description": "Deletes the specified TargetHttpsProxy resource.",
70452	//   "httpMethod": "DELETE",
70453	//   "id": "compute.targetHttpsProxies.delete",
70454	//   "parameterOrder": [
70455	//     "project",
70456	//     "targetHttpsProxy"
70457	//   ],
70458	//   "parameters": {
70459	//     "project": {
70460	//       "description": "Project ID for this request.",
70461	//       "location": "path",
70462	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70463	//       "required": true,
70464	//       "type": "string"
70465	//     },
70466	//     "requestId": {
70467	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70468	//       "location": "query",
70469	//       "type": "string"
70470	//     },
70471	//     "targetHttpsProxy": {
70472	//       "description": "Name of the TargetHttpsProxy resource to delete.",
70473	//       "location": "path",
70474	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
70475	//       "required": true,
70476	//       "type": "string"
70477	//     }
70478	//   },
70479	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}",
70480	//   "response": {
70481	//     "$ref": "Operation"
70482	//   },
70483	//   "scopes": [
70484	//     "https://www.googleapis.com/auth/cloud-platform",
70485	//     "https://www.googleapis.com/auth/compute"
70486	//   ]
70487	// }
70488
70489}
70490
70491// method id "compute.targetHttpsProxies.get":
70492
70493type TargetHttpsProxiesGetCall struct {
70494	s                *Service
70495	project          string
70496	targetHttpsProxy string
70497	urlParams_       gensupport.URLParams
70498	ifNoneMatch_     string
70499	ctx_             context.Context
70500	header_          http.Header
70501}
70502
70503// Get: Returns the specified TargetHttpsProxy resource. Get a list of
70504// available target HTTPS proxies by making a list() request.
70505func (r *TargetHttpsProxiesService) Get(project string, targetHttpsProxy string) *TargetHttpsProxiesGetCall {
70506	c := &TargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70507	c.project = project
70508	c.targetHttpsProxy = targetHttpsProxy
70509	return c
70510}
70511
70512// Fields allows partial responses to be retrieved. See
70513// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70514// for more information.
70515func (c *TargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesGetCall {
70516	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70517	return c
70518}
70519
70520// IfNoneMatch sets the optional parameter which makes the operation
70521// fail if the object's ETag matches the given value. This is useful for
70522// getting updates only after the object has changed since the last
70523// request. Use googleapi.IsNotModified to check whether the response
70524// error from Do is the result of In-None-Match.
70525func (c *TargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesGetCall {
70526	c.ifNoneMatch_ = entityTag
70527	return c
70528}
70529
70530// Context sets the context to be used in this call's Do method. Any
70531// pending HTTP request will be aborted if the provided context is
70532// canceled.
70533func (c *TargetHttpsProxiesGetCall) Context(ctx context.Context) *TargetHttpsProxiesGetCall {
70534	c.ctx_ = ctx
70535	return c
70536}
70537
70538// Header returns an http.Header that can be modified by the caller to
70539// add HTTP headers to the request.
70540func (c *TargetHttpsProxiesGetCall) Header() http.Header {
70541	if c.header_ == nil {
70542		c.header_ = make(http.Header)
70543	}
70544	return c.header_
70545}
70546
70547func (c *TargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
70548	reqHeaders := make(http.Header)
70549	for k, v := range c.header_ {
70550		reqHeaders[k] = v
70551	}
70552	reqHeaders.Set("User-Agent", c.s.userAgent())
70553	if c.ifNoneMatch_ != "" {
70554		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70555	}
70556	var body io.Reader = nil
70557	c.urlParams_.Set("alt", alt)
70558	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}")
70559	urls += "?" + c.urlParams_.Encode()
70560	req, _ := http.NewRequest("GET", urls, body)
70561	req.Header = reqHeaders
70562	googleapi.Expand(req.URL, map[string]string{
70563		"project":          c.project,
70564		"targetHttpsProxy": c.targetHttpsProxy,
70565	})
70566	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70567}
70568
70569// Do executes the "compute.targetHttpsProxies.get" call.
70570// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
70571// non-2xx status code is an error. Response headers are in either
70572// *TargetHttpsProxy.ServerResponse.Header or (if a response was
70573// returned at all) in error.(*googleapi.Error).Header. Use
70574// googleapi.IsNotModified to check whether the returned error was
70575// because http.StatusNotModified was returned.
70576func (c *TargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
70577	gensupport.SetOptions(c.urlParams_, opts...)
70578	res, err := c.doRequest("json")
70579	if res != nil && res.StatusCode == http.StatusNotModified {
70580		if res.Body != nil {
70581			res.Body.Close()
70582		}
70583		return nil, &googleapi.Error{
70584			Code:   res.StatusCode,
70585			Header: res.Header,
70586		}
70587	}
70588	if err != nil {
70589		return nil, err
70590	}
70591	defer googleapi.CloseBody(res)
70592	if err := googleapi.CheckResponse(res); err != nil {
70593		return nil, err
70594	}
70595	ret := &TargetHttpsProxy{
70596		ServerResponse: googleapi.ServerResponse{
70597			Header:         res.Header,
70598			HTTPStatusCode: res.StatusCode,
70599		},
70600	}
70601	target := &ret
70602	if err := gensupport.DecodeResponse(target, res); err != nil {
70603		return nil, err
70604	}
70605	return ret, nil
70606	// {
70607	//   "description": "Returns the specified TargetHttpsProxy resource. Get a list of available target HTTPS proxies by making a list() request.",
70608	//   "httpMethod": "GET",
70609	//   "id": "compute.targetHttpsProxies.get",
70610	//   "parameterOrder": [
70611	//     "project",
70612	//     "targetHttpsProxy"
70613	//   ],
70614	//   "parameters": {
70615	//     "project": {
70616	//       "description": "Project ID for this request.",
70617	//       "location": "path",
70618	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70619	//       "required": true,
70620	//       "type": "string"
70621	//     },
70622	//     "targetHttpsProxy": {
70623	//       "description": "Name of the TargetHttpsProxy resource to return.",
70624	//       "location": "path",
70625	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
70626	//       "required": true,
70627	//       "type": "string"
70628	//     }
70629	//   },
70630	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}",
70631	//   "response": {
70632	//     "$ref": "TargetHttpsProxy"
70633	//   },
70634	//   "scopes": [
70635	//     "https://www.googleapis.com/auth/cloud-platform",
70636	//     "https://www.googleapis.com/auth/compute",
70637	//     "https://www.googleapis.com/auth/compute.readonly"
70638	//   ]
70639	// }
70640
70641}
70642
70643// method id "compute.targetHttpsProxies.insert":
70644
70645type TargetHttpsProxiesInsertCall struct {
70646	s                *Service
70647	project          string
70648	targethttpsproxy *TargetHttpsProxy
70649	urlParams_       gensupport.URLParams
70650	ctx_             context.Context
70651	header_          http.Header
70652}
70653
70654// Insert: Creates a TargetHttpsProxy resource in the specified project
70655// using the data included in the request.
70656func (r *TargetHttpsProxiesService) Insert(project string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesInsertCall {
70657	c := &TargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70658	c.project = project
70659	c.targethttpsproxy = targethttpsproxy
70660	return c
70661}
70662
70663// RequestId sets the optional parameter "requestId": An optional
70664// request ID to identify requests. Specify a unique request ID so that
70665// if you must retry your request, the server will know to ignore the
70666// request if it has already been completed.
70667//
70668// For example, consider a situation where you make an initial request
70669// and the request times out. If you make the request again with the
70670// same request ID, the server can check if original operation with the
70671// same request ID was received, and if so, will ignore the second
70672// request. This prevents clients from accidentally creating duplicate
70673// commitments.
70674//
70675// The request ID must be a valid UUID with the exception that zero UUID
70676// is not supported (00000000-0000-0000-0000-000000000000).
70677func (c *TargetHttpsProxiesInsertCall) RequestId(requestId string) *TargetHttpsProxiesInsertCall {
70678	c.urlParams_.Set("requestId", requestId)
70679	return c
70680}
70681
70682// Fields allows partial responses to be retrieved. See
70683// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70684// for more information.
70685func (c *TargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesInsertCall {
70686	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70687	return c
70688}
70689
70690// Context sets the context to be used in this call's Do method. Any
70691// pending HTTP request will be aborted if the provided context is
70692// canceled.
70693func (c *TargetHttpsProxiesInsertCall) Context(ctx context.Context) *TargetHttpsProxiesInsertCall {
70694	c.ctx_ = ctx
70695	return c
70696}
70697
70698// Header returns an http.Header that can be modified by the caller to
70699// add HTTP headers to the request.
70700func (c *TargetHttpsProxiesInsertCall) Header() http.Header {
70701	if c.header_ == nil {
70702		c.header_ = make(http.Header)
70703	}
70704	return c.header_
70705}
70706
70707func (c *TargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
70708	reqHeaders := make(http.Header)
70709	for k, v := range c.header_ {
70710		reqHeaders[k] = v
70711	}
70712	reqHeaders.Set("User-Agent", c.s.userAgent())
70713	var body io.Reader = nil
70714	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
70715	if err != nil {
70716		return nil, err
70717	}
70718	reqHeaders.Set("Content-Type", "application/json")
70719	c.urlParams_.Set("alt", alt)
70720	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies")
70721	urls += "?" + c.urlParams_.Encode()
70722	req, _ := http.NewRequest("POST", urls, body)
70723	req.Header = reqHeaders
70724	googleapi.Expand(req.URL, map[string]string{
70725		"project": c.project,
70726	})
70727	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70728}
70729
70730// Do executes the "compute.targetHttpsProxies.insert" call.
70731// Exactly one of *Operation or error will be non-nil. Any non-2xx
70732// status code is an error. Response headers are in either
70733// *Operation.ServerResponse.Header or (if a response was returned at
70734// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70735// to check whether the returned error was because
70736// http.StatusNotModified was returned.
70737func (c *TargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70738	gensupport.SetOptions(c.urlParams_, opts...)
70739	res, err := c.doRequest("json")
70740	if res != nil && res.StatusCode == http.StatusNotModified {
70741		if res.Body != nil {
70742			res.Body.Close()
70743		}
70744		return nil, &googleapi.Error{
70745			Code:   res.StatusCode,
70746			Header: res.Header,
70747		}
70748	}
70749	if err != nil {
70750		return nil, err
70751	}
70752	defer googleapi.CloseBody(res)
70753	if err := googleapi.CheckResponse(res); err != nil {
70754		return nil, err
70755	}
70756	ret := &Operation{
70757		ServerResponse: googleapi.ServerResponse{
70758			Header:         res.Header,
70759			HTTPStatusCode: res.StatusCode,
70760		},
70761	}
70762	target := &ret
70763	if err := gensupport.DecodeResponse(target, res); err != nil {
70764		return nil, err
70765	}
70766	return ret, nil
70767	// {
70768	//   "description": "Creates a TargetHttpsProxy resource in the specified project using the data included in the request.",
70769	//   "httpMethod": "POST",
70770	//   "id": "compute.targetHttpsProxies.insert",
70771	//   "parameterOrder": [
70772	//     "project"
70773	//   ],
70774	//   "parameters": {
70775	//     "project": {
70776	//       "description": "Project ID for this request.",
70777	//       "location": "path",
70778	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70779	//       "required": true,
70780	//       "type": "string"
70781	//     },
70782	//     "requestId": {
70783	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70784	//       "location": "query",
70785	//       "type": "string"
70786	//     }
70787	//   },
70788	//   "path": "{project}/global/targetHttpsProxies",
70789	//   "request": {
70790	//     "$ref": "TargetHttpsProxy"
70791	//   },
70792	//   "response": {
70793	//     "$ref": "Operation"
70794	//   },
70795	//   "scopes": [
70796	//     "https://www.googleapis.com/auth/cloud-platform",
70797	//     "https://www.googleapis.com/auth/compute"
70798	//   ]
70799	// }
70800
70801}
70802
70803// method id "compute.targetHttpsProxies.list":
70804
70805type TargetHttpsProxiesListCall struct {
70806	s            *Service
70807	project      string
70808	urlParams_   gensupport.URLParams
70809	ifNoneMatch_ string
70810	ctx_         context.Context
70811	header_      http.Header
70812}
70813
70814// List: Retrieves the list of TargetHttpsProxy resources available to
70815// the specified project.
70816func (r *TargetHttpsProxiesService) List(project string) *TargetHttpsProxiesListCall {
70817	c := &TargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70818	c.project = project
70819	return c
70820}
70821
70822// Filter sets the optional parameter "filter": Sets a filter
70823// {expression} for filtering listed resources. Your {expression} must
70824// be in the format: field_name comparison_string literal_string.
70825//
70826// The field_name is the name of the field you want to compare. Only
70827// atomic field types are supported (string, number, boolean). The
70828// comparison_string must be either eq (equals) or ne (not equals). The
70829// literal_string is the string value to filter to. The literal value
70830// must be valid for the type of field you are filtering by (string,
70831// number, boolean). For string fields, the literal value is interpreted
70832// as a regular expression using RE2 syntax. The literal value must
70833// match the entire field.
70834//
70835// For example, to filter for instances that do not have a name of
70836// example-instance, you would use name ne example-instance.
70837//
70838// You can filter on nested fields. For example, you could filter on
70839// instances that have set the scheduling.automaticRestart field to
70840// true. Use filtering on nested fields to take advantage of labels to
70841// organize and search for results based on label values.
70842//
70843// To filter on multiple expressions, provide each separate expression
70844// within parentheses. For example, (scheduling.automaticRestart eq
70845// true) (zone eq us-central1-f). Multiple expressions are treated as
70846// AND expressions, meaning that resources must match all expressions to
70847// pass the filters.
70848func (c *TargetHttpsProxiesListCall) Filter(filter string) *TargetHttpsProxiesListCall {
70849	c.urlParams_.Set("filter", filter)
70850	return c
70851}
70852
70853// MaxResults sets the optional parameter "maxResults": The maximum
70854// number of results per page that should be returned. If the number of
70855// available results is larger than maxResults, Compute Engine returns a
70856// nextPageToken that can be used to get the next page of results in
70857// subsequent list requests. Acceptable values are 0 to 500, inclusive.
70858// (Default: 500)
70859func (c *TargetHttpsProxiesListCall) MaxResults(maxResults int64) *TargetHttpsProxiesListCall {
70860	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
70861	return c
70862}
70863
70864// OrderBy sets the optional parameter "orderBy": Sorts list results by
70865// a certain order. By default, results are returned in alphanumerical
70866// order based on the resource name.
70867//
70868// You can also sort results in descending order based on the creation
70869// timestamp using orderBy="creationTimestamp desc". This sorts results
70870// based on the creationTimestamp field in reverse chronological order
70871// (newest result first). Use this to sort resources like operations so
70872// that the newest operation is returned first.
70873//
70874// Currently, only sorting by name or creationTimestamp desc is
70875// supported.
70876func (c *TargetHttpsProxiesListCall) OrderBy(orderBy string) *TargetHttpsProxiesListCall {
70877	c.urlParams_.Set("orderBy", orderBy)
70878	return c
70879}
70880
70881// PageToken sets the optional parameter "pageToken": Specifies a page
70882// token to use. Set pageToken to the nextPageToken returned by a
70883// previous list request to get the next page of results.
70884func (c *TargetHttpsProxiesListCall) PageToken(pageToken string) *TargetHttpsProxiesListCall {
70885	c.urlParams_.Set("pageToken", pageToken)
70886	return c
70887}
70888
70889// Fields allows partial responses to be retrieved. See
70890// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70891// for more information.
70892func (c *TargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesListCall {
70893	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70894	return c
70895}
70896
70897// IfNoneMatch sets the optional parameter which makes the operation
70898// fail if the object's ETag matches the given value. This is useful for
70899// getting updates only after the object has changed since the last
70900// request. Use googleapi.IsNotModified to check whether the response
70901// error from Do is the result of In-None-Match.
70902func (c *TargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesListCall {
70903	c.ifNoneMatch_ = entityTag
70904	return c
70905}
70906
70907// Context sets the context to be used in this call's Do method. Any
70908// pending HTTP request will be aborted if the provided context is
70909// canceled.
70910func (c *TargetHttpsProxiesListCall) Context(ctx context.Context) *TargetHttpsProxiesListCall {
70911	c.ctx_ = ctx
70912	return c
70913}
70914
70915// Header returns an http.Header that can be modified by the caller to
70916// add HTTP headers to the request.
70917func (c *TargetHttpsProxiesListCall) Header() http.Header {
70918	if c.header_ == nil {
70919		c.header_ = make(http.Header)
70920	}
70921	return c.header_
70922}
70923
70924func (c *TargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
70925	reqHeaders := make(http.Header)
70926	for k, v := range c.header_ {
70927		reqHeaders[k] = v
70928	}
70929	reqHeaders.Set("User-Agent", c.s.userAgent())
70930	if c.ifNoneMatch_ != "" {
70931		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70932	}
70933	var body io.Reader = nil
70934	c.urlParams_.Set("alt", alt)
70935	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies")
70936	urls += "?" + c.urlParams_.Encode()
70937	req, _ := http.NewRequest("GET", urls, body)
70938	req.Header = reqHeaders
70939	googleapi.Expand(req.URL, map[string]string{
70940		"project": c.project,
70941	})
70942	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70943}
70944
70945// Do executes the "compute.targetHttpsProxies.list" call.
70946// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
70947// non-2xx status code is an error. Response headers are in either
70948// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
70949// returned at all) in error.(*googleapi.Error).Header. Use
70950// googleapi.IsNotModified to check whether the returned error was
70951// because http.StatusNotModified was returned.
70952func (c *TargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
70953	gensupport.SetOptions(c.urlParams_, opts...)
70954	res, err := c.doRequest("json")
70955	if res != nil && res.StatusCode == http.StatusNotModified {
70956		if res.Body != nil {
70957			res.Body.Close()
70958		}
70959		return nil, &googleapi.Error{
70960			Code:   res.StatusCode,
70961			Header: res.Header,
70962		}
70963	}
70964	if err != nil {
70965		return nil, err
70966	}
70967	defer googleapi.CloseBody(res)
70968	if err := googleapi.CheckResponse(res); err != nil {
70969		return nil, err
70970	}
70971	ret := &TargetHttpsProxyList{
70972		ServerResponse: googleapi.ServerResponse{
70973			Header:         res.Header,
70974			HTTPStatusCode: res.StatusCode,
70975		},
70976	}
70977	target := &ret
70978	if err := gensupport.DecodeResponse(target, res); err != nil {
70979		return nil, err
70980	}
70981	return ret, nil
70982	// {
70983	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project.",
70984	//   "httpMethod": "GET",
70985	//   "id": "compute.targetHttpsProxies.list",
70986	//   "parameterOrder": [
70987	//     "project"
70988	//   ],
70989	//   "parameters": {
70990	//     "filter": {
70991	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
70992	//       "location": "query",
70993	//       "type": "string"
70994	//     },
70995	//     "maxResults": {
70996	//       "default": "500",
70997	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
70998	//       "format": "uint32",
70999	//       "location": "query",
71000	//       "minimum": "0",
71001	//       "type": "integer"
71002	//     },
71003	//     "orderBy": {
71004	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
71005	//       "location": "query",
71006	//       "type": "string"
71007	//     },
71008	//     "pageToken": {
71009	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
71010	//       "location": "query",
71011	//       "type": "string"
71012	//     },
71013	//     "project": {
71014	//       "description": "Project ID for this request.",
71015	//       "location": "path",
71016	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71017	//       "required": true,
71018	//       "type": "string"
71019	//     }
71020	//   },
71021	//   "path": "{project}/global/targetHttpsProxies",
71022	//   "response": {
71023	//     "$ref": "TargetHttpsProxyList"
71024	//   },
71025	//   "scopes": [
71026	//     "https://www.googleapis.com/auth/cloud-platform",
71027	//     "https://www.googleapis.com/auth/compute",
71028	//     "https://www.googleapis.com/auth/compute.readonly"
71029	//   ]
71030	// }
71031
71032}
71033
71034// Pages invokes f for each page of results.
71035// A non-nil error returned from f will halt the iteration.
71036// The provided context supersedes any context provided to the Context method.
71037func (c *TargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
71038	c.ctx_ = ctx
71039	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
71040	for {
71041		x, err := c.Do()
71042		if err != nil {
71043			return err
71044		}
71045		if err := f(x); err != nil {
71046			return err
71047		}
71048		if x.NextPageToken == "" {
71049			return nil
71050		}
71051		c.PageToken(x.NextPageToken)
71052	}
71053}
71054
71055// method id "compute.targetHttpsProxies.setSslCertificates":
71056
71057type TargetHttpsProxiesSetSslCertificatesCall struct {
71058	s                                           *Service
71059	project                                     string
71060	targetHttpsProxy                            string
71061	targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest
71062	urlParams_                                  gensupport.URLParams
71063	ctx_                                        context.Context
71064	header_                                     http.Header
71065}
71066
71067// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
71068func (r *TargetHttpsProxiesService) SetSslCertificates(project string, targetHttpsProxy string, targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest) *TargetHttpsProxiesSetSslCertificatesCall {
71069	c := &TargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71070	c.project = project
71071	c.targetHttpsProxy = targetHttpsProxy
71072	c.targethttpsproxiessetsslcertificatesrequest = targethttpsproxiessetsslcertificatesrequest
71073	return c
71074}
71075
71076// RequestId sets the optional parameter "requestId": An optional
71077// request ID to identify requests. Specify a unique request ID so that
71078// if you must retry your request, the server will know to ignore the
71079// request if it has already been completed.
71080//
71081// For example, consider a situation where you make an initial request
71082// and the request times out. If you make the request again with the
71083// same request ID, the server can check if original operation with the
71084// same request ID was received, and if so, will ignore the second
71085// request. This prevents clients from accidentally creating duplicate
71086// commitments.
71087//
71088// The request ID must be a valid UUID with the exception that zero UUID
71089// is not supported (00000000-0000-0000-0000-000000000000).
71090func (c *TargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetHttpsProxiesSetSslCertificatesCall {
71091	c.urlParams_.Set("requestId", requestId)
71092	return c
71093}
71094
71095// Fields allows partial responses to be retrieved. See
71096// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71097// for more information.
71098func (c *TargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslCertificatesCall {
71099	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71100	return c
71101}
71102
71103// Context sets the context to be used in this call's Do method. Any
71104// pending HTTP request will be aborted if the provided context is
71105// canceled.
71106func (c *TargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslCertificatesCall {
71107	c.ctx_ = ctx
71108	return c
71109}
71110
71111// Header returns an http.Header that can be modified by the caller to
71112// add HTTP headers to the request.
71113func (c *TargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
71114	if c.header_ == nil {
71115		c.header_ = make(http.Header)
71116	}
71117	return c.header_
71118}
71119
71120func (c *TargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
71121	reqHeaders := make(http.Header)
71122	for k, v := range c.header_ {
71123		reqHeaders[k] = v
71124	}
71125	reqHeaders.Set("User-Agent", c.s.userAgent())
71126	var body io.Reader = nil
71127	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetsslcertificatesrequest)
71128	if err != nil {
71129		return nil, err
71130	}
71131	reqHeaders.Set("Content-Type", "application/json")
71132	c.urlParams_.Set("alt", alt)
71133	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
71134	urls += "?" + c.urlParams_.Encode()
71135	req, _ := http.NewRequest("POST", urls, body)
71136	req.Header = reqHeaders
71137	googleapi.Expand(req.URL, map[string]string{
71138		"project":          c.project,
71139		"targetHttpsProxy": c.targetHttpsProxy,
71140	})
71141	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71142}
71143
71144// Do executes the "compute.targetHttpsProxies.setSslCertificates" call.
71145// Exactly one of *Operation or error will be non-nil. Any non-2xx
71146// status code is an error. Response headers are in either
71147// *Operation.ServerResponse.Header or (if a response was returned at
71148// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71149// to check whether the returned error was because
71150// http.StatusNotModified was returned.
71151func (c *TargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71152	gensupport.SetOptions(c.urlParams_, opts...)
71153	res, err := c.doRequest("json")
71154	if res != nil && res.StatusCode == http.StatusNotModified {
71155		if res.Body != nil {
71156			res.Body.Close()
71157		}
71158		return nil, &googleapi.Error{
71159			Code:   res.StatusCode,
71160			Header: res.Header,
71161		}
71162	}
71163	if err != nil {
71164		return nil, err
71165	}
71166	defer googleapi.CloseBody(res)
71167	if err := googleapi.CheckResponse(res); err != nil {
71168		return nil, err
71169	}
71170	ret := &Operation{
71171		ServerResponse: googleapi.ServerResponse{
71172			Header:         res.Header,
71173			HTTPStatusCode: res.StatusCode,
71174		},
71175	}
71176	target := &ret
71177	if err := gensupport.DecodeResponse(target, res); err != nil {
71178		return nil, err
71179	}
71180	return ret, nil
71181	// {
71182	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
71183	//   "httpMethod": "POST",
71184	//   "id": "compute.targetHttpsProxies.setSslCertificates",
71185	//   "parameterOrder": [
71186	//     "project",
71187	//     "targetHttpsProxy"
71188	//   ],
71189	//   "parameters": {
71190	//     "project": {
71191	//       "description": "Project ID for this request.",
71192	//       "location": "path",
71193	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71194	//       "required": true,
71195	//       "type": "string"
71196	//     },
71197	//     "requestId": {
71198	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71199	//       "location": "query",
71200	//       "type": "string"
71201	//     },
71202	//     "targetHttpsProxy": {
71203	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
71204	//       "location": "path",
71205	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
71206	//       "required": true,
71207	//       "type": "string"
71208	//     }
71209	//   },
71210	//   "path": "{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
71211	//   "request": {
71212	//     "$ref": "TargetHttpsProxiesSetSslCertificatesRequest"
71213	//   },
71214	//   "response": {
71215	//     "$ref": "Operation"
71216	//   },
71217	//   "scopes": [
71218	//     "https://www.googleapis.com/auth/cloud-platform",
71219	//     "https://www.googleapis.com/auth/compute"
71220	//   ]
71221	// }
71222
71223}
71224
71225// method id "compute.targetHttpsProxies.setUrlMap":
71226
71227type TargetHttpsProxiesSetUrlMapCall struct {
71228	s                *Service
71229	project          string
71230	targetHttpsProxy string
71231	urlmapreference  *UrlMapReference
71232	urlParams_       gensupport.URLParams
71233	ctx_             context.Context
71234	header_          http.Header
71235}
71236
71237// SetUrlMap: Changes the URL map for TargetHttpsProxy.
71238func (r *TargetHttpsProxiesService) SetUrlMap(project string, targetHttpsProxy string, urlmapreference *UrlMapReference) *TargetHttpsProxiesSetUrlMapCall {
71239	c := &TargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71240	c.project = project
71241	c.targetHttpsProxy = targetHttpsProxy
71242	c.urlmapreference = urlmapreference
71243	return c
71244}
71245
71246// RequestId sets the optional parameter "requestId": An optional
71247// request ID to identify requests. Specify a unique request ID so that
71248// if you must retry your request, the server will know to ignore the
71249// request if it has already been completed.
71250//
71251// For example, consider a situation where you make an initial request
71252// and the request times out. If you make the request again with the
71253// same request ID, the server can check if original operation with the
71254// same request ID was received, and if so, will ignore the second
71255// request. This prevents clients from accidentally creating duplicate
71256// commitments.
71257//
71258// The request ID must be a valid UUID with the exception that zero UUID
71259// is not supported (00000000-0000-0000-0000-000000000000).
71260func (c *TargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpsProxiesSetUrlMapCall {
71261	c.urlParams_.Set("requestId", requestId)
71262	return c
71263}
71264
71265// Fields allows partial responses to be retrieved. See
71266// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71267// for more information.
71268func (c *TargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetUrlMapCall {
71269	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71270	return c
71271}
71272
71273// Context sets the context to be used in this call's Do method. Any
71274// pending HTTP request will be aborted if the provided context is
71275// canceled.
71276func (c *TargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpsProxiesSetUrlMapCall {
71277	c.ctx_ = ctx
71278	return c
71279}
71280
71281// Header returns an http.Header that can be modified by the caller to
71282// add HTTP headers to the request.
71283func (c *TargetHttpsProxiesSetUrlMapCall) Header() http.Header {
71284	if c.header_ == nil {
71285		c.header_ = make(http.Header)
71286	}
71287	return c.header_
71288}
71289
71290func (c *TargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
71291	reqHeaders := make(http.Header)
71292	for k, v := range c.header_ {
71293		reqHeaders[k] = v
71294	}
71295	reqHeaders.Set("User-Agent", c.s.userAgent())
71296	var body io.Reader = nil
71297	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
71298	if err != nil {
71299		return nil, err
71300	}
71301	reqHeaders.Set("Content-Type", "application/json")
71302	c.urlParams_.Set("alt", alt)
71303	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
71304	urls += "?" + c.urlParams_.Encode()
71305	req, _ := http.NewRequest("POST", urls, body)
71306	req.Header = reqHeaders
71307	googleapi.Expand(req.URL, map[string]string{
71308		"project":          c.project,
71309		"targetHttpsProxy": c.targetHttpsProxy,
71310	})
71311	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71312}
71313
71314// Do executes the "compute.targetHttpsProxies.setUrlMap" call.
71315// Exactly one of *Operation or error will be non-nil. Any non-2xx
71316// status code is an error. Response headers are in either
71317// *Operation.ServerResponse.Header or (if a response was returned at
71318// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71319// to check whether the returned error was because
71320// http.StatusNotModified was returned.
71321func (c *TargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71322	gensupport.SetOptions(c.urlParams_, opts...)
71323	res, err := c.doRequest("json")
71324	if res != nil && res.StatusCode == http.StatusNotModified {
71325		if res.Body != nil {
71326			res.Body.Close()
71327		}
71328		return nil, &googleapi.Error{
71329			Code:   res.StatusCode,
71330			Header: res.Header,
71331		}
71332	}
71333	if err != nil {
71334		return nil, err
71335	}
71336	defer googleapi.CloseBody(res)
71337	if err := googleapi.CheckResponse(res); err != nil {
71338		return nil, err
71339	}
71340	ret := &Operation{
71341		ServerResponse: googleapi.ServerResponse{
71342			Header:         res.Header,
71343			HTTPStatusCode: res.StatusCode,
71344		},
71345	}
71346	target := &ret
71347	if err := gensupport.DecodeResponse(target, res); err != nil {
71348		return nil, err
71349	}
71350	return ret, nil
71351	// {
71352	//   "description": "Changes the URL map for TargetHttpsProxy.",
71353	//   "httpMethod": "POST",
71354	//   "id": "compute.targetHttpsProxies.setUrlMap",
71355	//   "parameterOrder": [
71356	//     "project",
71357	//     "targetHttpsProxy"
71358	//   ],
71359	//   "parameters": {
71360	//     "project": {
71361	//       "description": "Project ID for this request.",
71362	//       "location": "path",
71363	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71364	//       "required": true,
71365	//       "type": "string"
71366	//     },
71367	//     "requestId": {
71368	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71369	//       "location": "query",
71370	//       "type": "string"
71371	//     },
71372	//     "targetHttpsProxy": {
71373	//       "description": "Name of the TargetHttpsProxy resource whose URL map is to be set.",
71374	//       "location": "path",
71375	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
71376	//       "required": true,
71377	//       "type": "string"
71378	//     }
71379	//   },
71380	//   "path": "{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
71381	//   "request": {
71382	//     "$ref": "UrlMapReference"
71383	//   },
71384	//   "response": {
71385	//     "$ref": "Operation"
71386	//   },
71387	//   "scopes": [
71388	//     "https://www.googleapis.com/auth/cloud-platform",
71389	//     "https://www.googleapis.com/auth/compute"
71390	//   ]
71391	// }
71392
71393}
71394
71395// method id "compute.targetInstances.aggregatedList":
71396
71397type TargetInstancesAggregatedListCall struct {
71398	s            *Service
71399	project      string
71400	urlParams_   gensupport.URLParams
71401	ifNoneMatch_ string
71402	ctx_         context.Context
71403	header_      http.Header
71404}
71405
71406// AggregatedList: Retrieves an aggregated list of target instances.
71407// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/aggregatedList
71408func (r *TargetInstancesService) AggregatedList(project string) *TargetInstancesAggregatedListCall {
71409	c := &TargetInstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71410	c.project = project
71411	return c
71412}
71413
71414// Filter sets the optional parameter "filter": Sets a filter
71415// {expression} for filtering listed resources. Your {expression} must
71416// be in the format: field_name comparison_string literal_string.
71417//
71418// The field_name is the name of the field you want to compare. Only
71419// atomic field types are supported (string, number, boolean). The
71420// comparison_string must be either eq (equals) or ne (not equals). The
71421// literal_string is the string value to filter to. The literal value
71422// must be valid for the type of field you are filtering by (string,
71423// number, boolean). For string fields, the literal value is interpreted
71424// as a regular expression using RE2 syntax. The literal value must
71425// match the entire field.
71426//
71427// For example, to filter for instances that do not have a name of
71428// example-instance, you would use name ne example-instance.
71429//
71430// You can filter on nested fields. For example, you could filter on
71431// instances that have set the scheduling.automaticRestart field to
71432// true. Use filtering on nested fields to take advantage of labels to
71433// organize and search for results based on label values.
71434//
71435// To filter on multiple expressions, provide each separate expression
71436// within parentheses. For example, (scheduling.automaticRestart eq
71437// true) (zone eq us-central1-f). Multiple expressions are treated as
71438// AND expressions, meaning that resources must match all expressions to
71439// pass the filters.
71440func (c *TargetInstancesAggregatedListCall) Filter(filter string) *TargetInstancesAggregatedListCall {
71441	c.urlParams_.Set("filter", filter)
71442	return c
71443}
71444
71445// MaxResults sets the optional parameter "maxResults": The maximum
71446// number of results per page that should be returned. If the number of
71447// available results is larger than maxResults, Compute Engine returns a
71448// nextPageToken that can be used to get the next page of results in
71449// subsequent list requests. Acceptable values are 0 to 500, inclusive.
71450// (Default: 500)
71451func (c *TargetInstancesAggregatedListCall) MaxResults(maxResults int64) *TargetInstancesAggregatedListCall {
71452	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
71453	return c
71454}
71455
71456// OrderBy sets the optional parameter "orderBy": Sorts list results by
71457// a certain order. By default, results are returned in alphanumerical
71458// order based on the resource name.
71459//
71460// You can also sort results in descending order based on the creation
71461// timestamp using orderBy="creationTimestamp desc". This sorts results
71462// based on the creationTimestamp field in reverse chronological order
71463// (newest result first). Use this to sort resources like operations so
71464// that the newest operation is returned first.
71465//
71466// Currently, only sorting by name or creationTimestamp desc is
71467// supported.
71468func (c *TargetInstancesAggregatedListCall) OrderBy(orderBy string) *TargetInstancesAggregatedListCall {
71469	c.urlParams_.Set("orderBy", orderBy)
71470	return c
71471}
71472
71473// PageToken sets the optional parameter "pageToken": Specifies a page
71474// token to use. Set pageToken to the nextPageToken returned by a
71475// previous list request to get the next page of results.
71476func (c *TargetInstancesAggregatedListCall) PageToken(pageToken string) *TargetInstancesAggregatedListCall {
71477	c.urlParams_.Set("pageToken", pageToken)
71478	return c
71479}
71480
71481// Fields allows partial responses to be retrieved. See
71482// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71483// for more information.
71484func (c *TargetInstancesAggregatedListCall) Fields(s ...googleapi.Field) *TargetInstancesAggregatedListCall {
71485	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71486	return c
71487}
71488
71489// IfNoneMatch sets the optional parameter which makes the operation
71490// fail if the object's ETag matches the given value. This is useful for
71491// getting updates only after the object has changed since the last
71492// request. Use googleapi.IsNotModified to check whether the response
71493// error from Do is the result of In-None-Match.
71494func (c *TargetInstancesAggregatedListCall) IfNoneMatch(entityTag string) *TargetInstancesAggregatedListCall {
71495	c.ifNoneMatch_ = entityTag
71496	return c
71497}
71498
71499// Context sets the context to be used in this call's Do method. Any
71500// pending HTTP request will be aborted if the provided context is
71501// canceled.
71502func (c *TargetInstancesAggregatedListCall) Context(ctx context.Context) *TargetInstancesAggregatedListCall {
71503	c.ctx_ = ctx
71504	return c
71505}
71506
71507// Header returns an http.Header that can be modified by the caller to
71508// add HTTP headers to the request.
71509func (c *TargetInstancesAggregatedListCall) Header() http.Header {
71510	if c.header_ == nil {
71511		c.header_ = make(http.Header)
71512	}
71513	return c.header_
71514}
71515
71516func (c *TargetInstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
71517	reqHeaders := make(http.Header)
71518	for k, v := range c.header_ {
71519		reqHeaders[k] = v
71520	}
71521	reqHeaders.Set("User-Agent", c.s.userAgent())
71522	if c.ifNoneMatch_ != "" {
71523		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71524	}
71525	var body io.Reader = nil
71526	c.urlParams_.Set("alt", alt)
71527	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetInstances")
71528	urls += "?" + c.urlParams_.Encode()
71529	req, _ := http.NewRequest("GET", urls, body)
71530	req.Header = reqHeaders
71531	googleapi.Expand(req.URL, map[string]string{
71532		"project": c.project,
71533	})
71534	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71535}
71536
71537// Do executes the "compute.targetInstances.aggregatedList" call.
71538// Exactly one of *TargetInstanceAggregatedList or error will be
71539// non-nil. Any non-2xx status code is an error. Response headers are in
71540// either *TargetInstanceAggregatedList.ServerResponse.Header or (if a
71541// response was returned at all) in error.(*googleapi.Error).Header. Use
71542// googleapi.IsNotModified to check whether the returned error was
71543// because http.StatusNotModified was returned.
71544func (c *TargetInstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceAggregatedList, error) {
71545	gensupport.SetOptions(c.urlParams_, opts...)
71546	res, err := c.doRequest("json")
71547	if res != nil && res.StatusCode == http.StatusNotModified {
71548		if res.Body != nil {
71549			res.Body.Close()
71550		}
71551		return nil, &googleapi.Error{
71552			Code:   res.StatusCode,
71553			Header: res.Header,
71554		}
71555	}
71556	if err != nil {
71557		return nil, err
71558	}
71559	defer googleapi.CloseBody(res)
71560	if err := googleapi.CheckResponse(res); err != nil {
71561		return nil, err
71562	}
71563	ret := &TargetInstanceAggregatedList{
71564		ServerResponse: googleapi.ServerResponse{
71565			Header:         res.Header,
71566			HTTPStatusCode: res.StatusCode,
71567		},
71568	}
71569	target := &ret
71570	if err := gensupport.DecodeResponse(target, res); err != nil {
71571		return nil, err
71572	}
71573	return ret, nil
71574	// {
71575	//   "description": "Retrieves an aggregated list of target instances.",
71576	//   "httpMethod": "GET",
71577	//   "id": "compute.targetInstances.aggregatedList",
71578	//   "parameterOrder": [
71579	//     "project"
71580	//   ],
71581	//   "parameters": {
71582	//     "filter": {
71583	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
71584	//       "location": "query",
71585	//       "type": "string"
71586	//     },
71587	//     "maxResults": {
71588	//       "default": "500",
71589	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
71590	//       "format": "uint32",
71591	//       "location": "query",
71592	//       "minimum": "0",
71593	//       "type": "integer"
71594	//     },
71595	//     "orderBy": {
71596	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
71597	//       "location": "query",
71598	//       "type": "string"
71599	//     },
71600	//     "pageToken": {
71601	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
71602	//       "location": "query",
71603	//       "type": "string"
71604	//     },
71605	//     "project": {
71606	//       "description": "Project ID for this request.",
71607	//       "location": "path",
71608	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71609	//       "required": true,
71610	//       "type": "string"
71611	//     }
71612	//   },
71613	//   "path": "{project}/aggregated/targetInstances",
71614	//   "response": {
71615	//     "$ref": "TargetInstanceAggregatedList"
71616	//   },
71617	//   "scopes": [
71618	//     "https://www.googleapis.com/auth/cloud-platform",
71619	//     "https://www.googleapis.com/auth/compute",
71620	//     "https://www.googleapis.com/auth/compute.readonly"
71621	//   ]
71622	// }
71623
71624}
71625
71626// Pages invokes f for each page of results.
71627// A non-nil error returned from f will halt the iteration.
71628// The provided context supersedes any context provided to the Context method.
71629func (c *TargetInstancesAggregatedListCall) Pages(ctx context.Context, f func(*TargetInstanceAggregatedList) error) error {
71630	c.ctx_ = ctx
71631	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
71632	for {
71633		x, err := c.Do()
71634		if err != nil {
71635			return err
71636		}
71637		if err := f(x); err != nil {
71638			return err
71639		}
71640		if x.NextPageToken == "" {
71641			return nil
71642		}
71643		c.PageToken(x.NextPageToken)
71644	}
71645}
71646
71647// method id "compute.targetInstances.delete":
71648
71649type TargetInstancesDeleteCall struct {
71650	s              *Service
71651	project        string
71652	zone           string
71653	targetInstance string
71654	urlParams_     gensupport.URLParams
71655	ctx_           context.Context
71656	header_        http.Header
71657}
71658
71659// Delete: Deletes the specified TargetInstance resource.
71660// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/delete
71661func (r *TargetInstancesService) Delete(project string, zone string, targetInstance string) *TargetInstancesDeleteCall {
71662	c := &TargetInstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71663	c.project = project
71664	c.zone = zone
71665	c.targetInstance = targetInstance
71666	return c
71667}
71668
71669// RequestId sets the optional parameter "requestId": An optional
71670// request ID to identify requests. Specify a unique request ID so that
71671// if you must retry your request, the server will know to ignore the
71672// request if it has already been completed.
71673//
71674// For example, consider a situation where you make an initial request
71675// and the request times out. If you make the request again with the
71676// same request ID, the server can check if original operation with the
71677// same request ID was received, and if so, will ignore the second
71678// request. This prevents clients from accidentally creating duplicate
71679// commitments.
71680//
71681// The request ID must be a valid UUID with the exception that zero UUID
71682// is not supported (00000000-0000-0000-0000-000000000000).
71683func (c *TargetInstancesDeleteCall) RequestId(requestId string) *TargetInstancesDeleteCall {
71684	c.urlParams_.Set("requestId", requestId)
71685	return c
71686}
71687
71688// Fields allows partial responses to be retrieved. See
71689// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71690// for more information.
71691func (c *TargetInstancesDeleteCall) Fields(s ...googleapi.Field) *TargetInstancesDeleteCall {
71692	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71693	return c
71694}
71695
71696// Context sets the context to be used in this call's Do method. Any
71697// pending HTTP request will be aborted if the provided context is
71698// canceled.
71699func (c *TargetInstancesDeleteCall) Context(ctx context.Context) *TargetInstancesDeleteCall {
71700	c.ctx_ = ctx
71701	return c
71702}
71703
71704// Header returns an http.Header that can be modified by the caller to
71705// add HTTP headers to the request.
71706func (c *TargetInstancesDeleteCall) Header() http.Header {
71707	if c.header_ == nil {
71708		c.header_ = make(http.Header)
71709	}
71710	return c.header_
71711}
71712
71713func (c *TargetInstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
71714	reqHeaders := make(http.Header)
71715	for k, v := range c.header_ {
71716		reqHeaders[k] = v
71717	}
71718	reqHeaders.Set("User-Agent", c.s.userAgent())
71719	var body io.Reader = nil
71720	c.urlParams_.Set("alt", alt)
71721	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{targetInstance}")
71722	urls += "?" + c.urlParams_.Encode()
71723	req, _ := http.NewRequest("DELETE", urls, body)
71724	req.Header = reqHeaders
71725	googleapi.Expand(req.URL, map[string]string{
71726		"project":        c.project,
71727		"zone":           c.zone,
71728		"targetInstance": c.targetInstance,
71729	})
71730	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71731}
71732
71733// Do executes the "compute.targetInstances.delete" call.
71734// Exactly one of *Operation or error will be non-nil. Any non-2xx
71735// status code is an error. Response headers are in either
71736// *Operation.ServerResponse.Header or (if a response was returned at
71737// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71738// to check whether the returned error was because
71739// http.StatusNotModified was returned.
71740func (c *TargetInstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71741	gensupport.SetOptions(c.urlParams_, opts...)
71742	res, err := c.doRequest("json")
71743	if res != nil && res.StatusCode == http.StatusNotModified {
71744		if res.Body != nil {
71745			res.Body.Close()
71746		}
71747		return nil, &googleapi.Error{
71748			Code:   res.StatusCode,
71749			Header: res.Header,
71750		}
71751	}
71752	if err != nil {
71753		return nil, err
71754	}
71755	defer googleapi.CloseBody(res)
71756	if err := googleapi.CheckResponse(res); err != nil {
71757		return nil, err
71758	}
71759	ret := &Operation{
71760		ServerResponse: googleapi.ServerResponse{
71761			Header:         res.Header,
71762			HTTPStatusCode: res.StatusCode,
71763		},
71764	}
71765	target := &ret
71766	if err := gensupport.DecodeResponse(target, res); err != nil {
71767		return nil, err
71768	}
71769	return ret, nil
71770	// {
71771	//   "description": "Deletes the specified TargetInstance resource.",
71772	//   "httpMethod": "DELETE",
71773	//   "id": "compute.targetInstances.delete",
71774	//   "parameterOrder": [
71775	//     "project",
71776	//     "zone",
71777	//     "targetInstance"
71778	//   ],
71779	//   "parameters": {
71780	//     "project": {
71781	//       "description": "Project ID for this request.",
71782	//       "location": "path",
71783	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71784	//       "required": true,
71785	//       "type": "string"
71786	//     },
71787	//     "requestId": {
71788	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71789	//       "location": "query",
71790	//       "type": "string"
71791	//     },
71792	//     "targetInstance": {
71793	//       "description": "Name of the TargetInstance resource to delete.",
71794	//       "location": "path",
71795	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
71796	//       "required": true,
71797	//       "type": "string"
71798	//     },
71799	//     "zone": {
71800	//       "description": "Name of the zone scoping this request.",
71801	//       "location": "path",
71802	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
71803	//       "required": true,
71804	//       "type": "string"
71805	//     }
71806	//   },
71807	//   "path": "{project}/zones/{zone}/targetInstances/{targetInstance}",
71808	//   "response": {
71809	//     "$ref": "Operation"
71810	//   },
71811	//   "scopes": [
71812	//     "https://www.googleapis.com/auth/cloud-platform",
71813	//     "https://www.googleapis.com/auth/compute"
71814	//   ]
71815	// }
71816
71817}
71818
71819// method id "compute.targetInstances.get":
71820
71821type TargetInstancesGetCall struct {
71822	s              *Service
71823	project        string
71824	zone           string
71825	targetInstance string
71826	urlParams_     gensupport.URLParams
71827	ifNoneMatch_   string
71828	ctx_           context.Context
71829	header_        http.Header
71830}
71831
71832// Get: Returns the specified TargetInstance resource. Get a list of
71833// available target instances by making a list() request.
71834// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/get
71835func (r *TargetInstancesService) Get(project string, zone string, targetInstance string) *TargetInstancesGetCall {
71836	c := &TargetInstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71837	c.project = project
71838	c.zone = zone
71839	c.targetInstance = targetInstance
71840	return c
71841}
71842
71843// Fields allows partial responses to be retrieved. See
71844// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71845// for more information.
71846func (c *TargetInstancesGetCall) Fields(s ...googleapi.Field) *TargetInstancesGetCall {
71847	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71848	return c
71849}
71850
71851// IfNoneMatch sets the optional parameter which makes the operation
71852// fail if the object's ETag matches the given value. This is useful for
71853// getting updates only after the object has changed since the last
71854// request. Use googleapi.IsNotModified to check whether the response
71855// error from Do is the result of In-None-Match.
71856func (c *TargetInstancesGetCall) IfNoneMatch(entityTag string) *TargetInstancesGetCall {
71857	c.ifNoneMatch_ = entityTag
71858	return c
71859}
71860
71861// Context sets the context to be used in this call's Do method. Any
71862// pending HTTP request will be aborted if the provided context is
71863// canceled.
71864func (c *TargetInstancesGetCall) Context(ctx context.Context) *TargetInstancesGetCall {
71865	c.ctx_ = ctx
71866	return c
71867}
71868
71869// Header returns an http.Header that can be modified by the caller to
71870// add HTTP headers to the request.
71871func (c *TargetInstancesGetCall) Header() http.Header {
71872	if c.header_ == nil {
71873		c.header_ = make(http.Header)
71874	}
71875	return c.header_
71876}
71877
71878func (c *TargetInstancesGetCall) doRequest(alt string) (*http.Response, error) {
71879	reqHeaders := make(http.Header)
71880	for k, v := range c.header_ {
71881		reqHeaders[k] = v
71882	}
71883	reqHeaders.Set("User-Agent", c.s.userAgent())
71884	if c.ifNoneMatch_ != "" {
71885		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71886	}
71887	var body io.Reader = nil
71888	c.urlParams_.Set("alt", alt)
71889	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{targetInstance}")
71890	urls += "?" + c.urlParams_.Encode()
71891	req, _ := http.NewRequest("GET", urls, body)
71892	req.Header = reqHeaders
71893	googleapi.Expand(req.URL, map[string]string{
71894		"project":        c.project,
71895		"zone":           c.zone,
71896		"targetInstance": c.targetInstance,
71897	})
71898	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71899}
71900
71901// Do executes the "compute.targetInstances.get" call.
71902// Exactly one of *TargetInstance or error will be non-nil. Any non-2xx
71903// status code is an error. Response headers are in either
71904// *TargetInstance.ServerResponse.Header or (if a response was returned
71905// at all) in error.(*googleapi.Error).Header. Use
71906// googleapi.IsNotModified to check whether the returned error was
71907// because http.StatusNotModified was returned.
71908func (c *TargetInstancesGetCall) Do(opts ...googleapi.CallOption) (*TargetInstance, error) {
71909	gensupport.SetOptions(c.urlParams_, opts...)
71910	res, err := c.doRequest("json")
71911	if res != nil && res.StatusCode == http.StatusNotModified {
71912		if res.Body != nil {
71913			res.Body.Close()
71914		}
71915		return nil, &googleapi.Error{
71916			Code:   res.StatusCode,
71917			Header: res.Header,
71918		}
71919	}
71920	if err != nil {
71921		return nil, err
71922	}
71923	defer googleapi.CloseBody(res)
71924	if err := googleapi.CheckResponse(res); err != nil {
71925		return nil, err
71926	}
71927	ret := &TargetInstance{
71928		ServerResponse: googleapi.ServerResponse{
71929			Header:         res.Header,
71930			HTTPStatusCode: res.StatusCode,
71931		},
71932	}
71933	target := &ret
71934	if err := gensupport.DecodeResponse(target, res); err != nil {
71935		return nil, err
71936	}
71937	return ret, nil
71938	// {
71939	//   "description": "Returns the specified TargetInstance resource. Get a list of available target instances by making a list() request.",
71940	//   "httpMethod": "GET",
71941	//   "id": "compute.targetInstances.get",
71942	//   "parameterOrder": [
71943	//     "project",
71944	//     "zone",
71945	//     "targetInstance"
71946	//   ],
71947	//   "parameters": {
71948	//     "project": {
71949	//       "description": "Project ID for this request.",
71950	//       "location": "path",
71951	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71952	//       "required": true,
71953	//       "type": "string"
71954	//     },
71955	//     "targetInstance": {
71956	//       "description": "Name of the TargetInstance resource to return.",
71957	//       "location": "path",
71958	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
71959	//       "required": true,
71960	//       "type": "string"
71961	//     },
71962	//     "zone": {
71963	//       "description": "Name of the zone scoping this request.",
71964	//       "location": "path",
71965	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
71966	//       "required": true,
71967	//       "type": "string"
71968	//     }
71969	//   },
71970	//   "path": "{project}/zones/{zone}/targetInstances/{targetInstance}",
71971	//   "response": {
71972	//     "$ref": "TargetInstance"
71973	//   },
71974	//   "scopes": [
71975	//     "https://www.googleapis.com/auth/cloud-platform",
71976	//     "https://www.googleapis.com/auth/compute",
71977	//     "https://www.googleapis.com/auth/compute.readonly"
71978	//   ]
71979	// }
71980
71981}
71982
71983// method id "compute.targetInstances.insert":
71984
71985type TargetInstancesInsertCall struct {
71986	s              *Service
71987	project        string
71988	zone           string
71989	targetinstance *TargetInstance
71990	urlParams_     gensupport.URLParams
71991	ctx_           context.Context
71992	header_        http.Header
71993}
71994
71995// Insert: Creates a TargetInstance resource in the specified project
71996// and zone using the data included in the request.
71997// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/insert
71998func (r *TargetInstancesService) Insert(project string, zone string, targetinstance *TargetInstance) *TargetInstancesInsertCall {
71999	c := &TargetInstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72000	c.project = project
72001	c.zone = zone
72002	c.targetinstance = targetinstance
72003	return c
72004}
72005
72006// RequestId sets the optional parameter "requestId": An optional
72007// request ID to identify requests. Specify a unique request ID so that
72008// if you must retry your request, the server will know to ignore the
72009// request if it has already been completed.
72010//
72011// For example, consider a situation where you make an initial request
72012// and the request times out. If you make the request again with the
72013// same request ID, the server can check if original operation with the
72014// same request ID was received, and if so, will ignore the second
72015// request. This prevents clients from accidentally creating duplicate
72016// commitments.
72017//
72018// The request ID must be a valid UUID with the exception that zero UUID
72019// is not supported (00000000-0000-0000-0000-000000000000).
72020func (c *TargetInstancesInsertCall) RequestId(requestId string) *TargetInstancesInsertCall {
72021	c.urlParams_.Set("requestId", requestId)
72022	return c
72023}
72024
72025// Fields allows partial responses to be retrieved. See
72026// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72027// for more information.
72028func (c *TargetInstancesInsertCall) Fields(s ...googleapi.Field) *TargetInstancesInsertCall {
72029	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72030	return c
72031}
72032
72033// Context sets the context to be used in this call's Do method. Any
72034// pending HTTP request will be aborted if the provided context is
72035// canceled.
72036func (c *TargetInstancesInsertCall) Context(ctx context.Context) *TargetInstancesInsertCall {
72037	c.ctx_ = ctx
72038	return c
72039}
72040
72041// Header returns an http.Header that can be modified by the caller to
72042// add HTTP headers to the request.
72043func (c *TargetInstancesInsertCall) Header() http.Header {
72044	if c.header_ == nil {
72045		c.header_ = make(http.Header)
72046	}
72047	return c.header_
72048}
72049
72050func (c *TargetInstancesInsertCall) doRequest(alt string) (*http.Response, error) {
72051	reqHeaders := make(http.Header)
72052	for k, v := range c.header_ {
72053		reqHeaders[k] = v
72054	}
72055	reqHeaders.Set("User-Agent", c.s.userAgent())
72056	var body io.Reader = nil
72057	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetinstance)
72058	if err != nil {
72059		return nil, err
72060	}
72061	reqHeaders.Set("Content-Type", "application/json")
72062	c.urlParams_.Set("alt", alt)
72063	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances")
72064	urls += "?" + c.urlParams_.Encode()
72065	req, _ := http.NewRequest("POST", urls, body)
72066	req.Header = reqHeaders
72067	googleapi.Expand(req.URL, map[string]string{
72068		"project": c.project,
72069		"zone":    c.zone,
72070	})
72071	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72072}
72073
72074// Do executes the "compute.targetInstances.insert" call.
72075// Exactly one of *Operation or error will be non-nil. Any non-2xx
72076// status code is an error. Response headers are in either
72077// *Operation.ServerResponse.Header or (if a response was returned at
72078// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72079// to check whether the returned error was because
72080// http.StatusNotModified was returned.
72081func (c *TargetInstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72082	gensupport.SetOptions(c.urlParams_, opts...)
72083	res, err := c.doRequest("json")
72084	if res != nil && res.StatusCode == http.StatusNotModified {
72085		if res.Body != nil {
72086			res.Body.Close()
72087		}
72088		return nil, &googleapi.Error{
72089			Code:   res.StatusCode,
72090			Header: res.Header,
72091		}
72092	}
72093	if err != nil {
72094		return nil, err
72095	}
72096	defer googleapi.CloseBody(res)
72097	if err := googleapi.CheckResponse(res); err != nil {
72098		return nil, err
72099	}
72100	ret := &Operation{
72101		ServerResponse: googleapi.ServerResponse{
72102			Header:         res.Header,
72103			HTTPStatusCode: res.StatusCode,
72104		},
72105	}
72106	target := &ret
72107	if err := gensupport.DecodeResponse(target, res); err != nil {
72108		return nil, err
72109	}
72110	return ret, nil
72111	// {
72112	//   "description": "Creates a TargetInstance resource in the specified project and zone using the data included in the request.",
72113	//   "httpMethod": "POST",
72114	//   "id": "compute.targetInstances.insert",
72115	//   "parameterOrder": [
72116	//     "project",
72117	//     "zone"
72118	//   ],
72119	//   "parameters": {
72120	//     "project": {
72121	//       "description": "Project ID for this request.",
72122	//       "location": "path",
72123	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72124	//       "required": true,
72125	//       "type": "string"
72126	//     },
72127	//     "requestId": {
72128	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72129	//       "location": "query",
72130	//       "type": "string"
72131	//     },
72132	//     "zone": {
72133	//       "description": "Name of the zone scoping this request.",
72134	//       "location": "path",
72135	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72136	//       "required": true,
72137	//       "type": "string"
72138	//     }
72139	//   },
72140	//   "path": "{project}/zones/{zone}/targetInstances",
72141	//   "request": {
72142	//     "$ref": "TargetInstance"
72143	//   },
72144	//   "response": {
72145	//     "$ref": "Operation"
72146	//   },
72147	//   "scopes": [
72148	//     "https://www.googleapis.com/auth/cloud-platform",
72149	//     "https://www.googleapis.com/auth/compute"
72150	//   ]
72151	// }
72152
72153}
72154
72155// method id "compute.targetInstances.list":
72156
72157type TargetInstancesListCall struct {
72158	s            *Service
72159	project      string
72160	zone         string
72161	urlParams_   gensupport.URLParams
72162	ifNoneMatch_ string
72163	ctx_         context.Context
72164	header_      http.Header
72165}
72166
72167// List: Retrieves a list of TargetInstance resources available to the
72168// specified project and zone.
72169// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/list
72170func (r *TargetInstancesService) List(project string, zone string) *TargetInstancesListCall {
72171	c := &TargetInstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72172	c.project = project
72173	c.zone = zone
72174	return c
72175}
72176
72177// Filter sets the optional parameter "filter": Sets a filter
72178// {expression} for filtering listed resources. Your {expression} must
72179// be in the format: field_name comparison_string literal_string.
72180//
72181// The field_name is the name of the field you want to compare. Only
72182// atomic field types are supported (string, number, boolean). The
72183// comparison_string must be either eq (equals) or ne (not equals). The
72184// literal_string is the string value to filter to. The literal value
72185// must be valid for the type of field you are filtering by (string,
72186// number, boolean). For string fields, the literal value is interpreted
72187// as a regular expression using RE2 syntax. The literal value must
72188// match the entire field.
72189//
72190// For example, to filter for instances that do not have a name of
72191// example-instance, you would use name ne example-instance.
72192//
72193// You can filter on nested fields. For example, you could filter on
72194// instances that have set the scheduling.automaticRestart field to
72195// true. Use filtering on nested fields to take advantage of labels to
72196// organize and search for results based on label values.
72197//
72198// To filter on multiple expressions, provide each separate expression
72199// within parentheses. For example, (scheduling.automaticRestart eq
72200// true) (zone eq us-central1-f). Multiple expressions are treated as
72201// AND expressions, meaning that resources must match all expressions to
72202// pass the filters.
72203func (c *TargetInstancesListCall) Filter(filter string) *TargetInstancesListCall {
72204	c.urlParams_.Set("filter", filter)
72205	return c
72206}
72207
72208// MaxResults sets the optional parameter "maxResults": The maximum
72209// number of results per page that should be returned. If the number of
72210// available results is larger than maxResults, Compute Engine returns a
72211// nextPageToken that can be used to get the next page of results in
72212// subsequent list requests. Acceptable values are 0 to 500, inclusive.
72213// (Default: 500)
72214func (c *TargetInstancesListCall) MaxResults(maxResults int64) *TargetInstancesListCall {
72215	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
72216	return c
72217}
72218
72219// OrderBy sets the optional parameter "orderBy": Sorts list results by
72220// a certain order. By default, results are returned in alphanumerical
72221// order based on the resource name.
72222//
72223// You can also sort results in descending order based on the creation
72224// timestamp using orderBy="creationTimestamp desc". This sorts results
72225// based on the creationTimestamp field in reverse chronological order
72226// (newest result first). Use this to sort resources like operations so
72227// that the newest operation is returned first.
72228//
72229// Currently, only sorting by name or creationTimestamp desc is
72230// supported.
72231func (c *TargetInstancesListCall) OrderBy(orderBy string) *TargetInstancesListCall {
72232	c.urlParams_.Set("orderBy", orderBy)
72233	return c
72234}
72235
72236// PageToken sets the optional parameter "pageToken": Specifies a page
72237// token to use. Set pageToken to the nextPageToken returned by a
72238// previous list request to get the next page of results.
72239func (c *TargetInstancesListCall) PageToken(pageToken string) *TargetInstancesListCall {
72240	c.urlParams_.Set("pageToken", pageToken)
72241	return c
72242}
72243
72244// Fields allows partial responses to be retrieved. See
72245// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72246// for more information.
72247func (c *TargetInstancesListCall) Fields(s ...googleapi.Field) *TargetInstancesListCall {
72248	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72249	return c
72250}
72251
72252// IfNoneMatch sets the optional parameter which makes the operation
72253// fail if the object's ETag matches the given value. This is useful for
72254// getting updates only after the object has changed since the last
72255// request. Use googleapi.IsNotModified to check whether the response
72256// error from Do is the result of In-None-Match.
72257func (c *TargetInstancesListCall) IfNoneMatch(entityTag string) *TargetInstancesListCall {
72258	c.ifNoneMatch_ = entityTag
72259	return c
72260}
72261
72262// Context sets the context to be used in this call's Do method. Any
72263// pending HTTP request will be aborted if the provided context is
72264// canceled.
72265func (c *TargetInstancesListCall) Context(ctx context.Context) *TargetInstancesListCall {
72266	c.ctx_ = ctx
72267	return c
72268}
72269
72270// Header returns an http.Header that can be modified by the caller to
72271// add HTTP headers to the request.
72272func (c *TargetInstancesListCall) Header() http.Header {
72273	if c.header_ == nil {
72274		c.header_ = make(http.Header)
72275	}
72276	return c.header_
72277}
72278
72279func (c *TargetInstancesListCall) doRequest(alt string) (*http.Response, error) {
72280	reqHeaders := make(http.Header)
72281	for k, v := range c.header_ {
72282		reqHeaders[k] = v
72283	}
72284	reqHeaders.Set("User-Agent", c.s.userAgent())
72285	if c.ifNoneMatch_ != "" {
72286		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72287	}
72288	var body io.Reader = nil
72289	c.urlParams_.Set("alt", alt)
72290	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances")
72291	urls += "?" + c.urlParams_.Encode()
72292	req, _ := http.NewRequest("GET", urls, body)
72293	req.Header = reqHeaders
72294	googleapi.Expand(req.URL, map[string]string{
72295		"project": c.project,
72296		"zone":    c.zone,
72297	})
72298	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72299}
72300
72301// Do executes the "compute.targetInstances.list" call.
72302// Exactly one of *TargetInstanceList or error will be non-nil. Any
72303// non-2xx status code is an error. Response headers are in either
72304// *TargetInstanceList.ServerResponse.Header or (if a response was
72305// returned at all) in error.(*googleapi.Error).Header. Use
72306// googleapi.IsNotModified to check whether the returned error was
72307// because http.StatusNotModified was returned.
72308func (c *TargetInstancesListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceList, error) {
72309	gensupport.SetOptions(c.urlParams_, opts...)
72310	res, err := c.doRequest("json")
72311	if res != nil && res.StatusCode == http.StatusNotModified {
72312		if res.Body != nil {
72313			res.Body.Close()
72314		}
72315		return nil, &googleapi.Error{
72316			Code:   res.StatusCode,
72317			Header: res.Header,
72318		}
72319	}
72320	if err != nil {
72321		return nil, err
72322	}
72323	defer googleapi.CloseBody(res)
72324	if err := googleapi.CheckResponse(res); err != nil {
72325		return nil, err
72326	}
72327	ret := &TargetInstanceList{
72328		ServerResponse: googleapi.ServerResponse{
72329			Header:         res.Header,
72330			HTTPStatusCode: res.StatusCode,
72331		},
72332	}
72333	target := &ret
72334	if err := gensupport.DecodeResponse(target, res); err != nil {
72335		return nil, err
72336	}
72337	return ret, nil
72338	// {
72339	//   "description": "Retrieves a list of TargetInstance resources available to the specified project and zone.",
72340	//   "httpMethod": "GET",
72341	//   "id": "compute.targetInstances.list",
72342	//   "parameterOrder": [
72343	//     "project",
72344	//     "zone"
72345	//   ],
72346	//   "parameters": {
72347	//     "filter": {
72348	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
72349	//       "location": "query",
72350	//       "type": "string"
72351	//     },
72352	//     "maxResults": {
72353	//       "default": "500",
72354	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
72355	//       "format": "uint32",
72356	//       "location": "query",
72357	//       "minimum": "0",
72358	//       "type": "integer"
72359	//     },
72360	//     "orderBy": {
72361	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
72362	//       "location": "query",
72363	//       "type": "string"
72364	//     },
72365	//     "pageToken": {
72366	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
72367	//       "location": "query",
72368	//       "type": "string"
72369	//     },
72370	//     "project": {
72371	//       "description": "Project ID for this request.",
72372	//       "location": "path",
72373	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72374	//       "required": true,
72375	//       "type": "string"
72376	//     },
72377	//     "zone": {
72378	//       "description": "Name of the zone scoping this request.",
72379	//       "location": "path",
72380	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72381	//       "required": true,
72382	//       "type": "string"
72383	//     }
72384	//   },
72385	//   "path": "{project}/zones/{zone}/targetInstances",
72386	//   "response": {
72387	//     "$ref": "TargetInstanceList"
72388	//   },
72389	//   "scopes": [
72390	//     "https://www.googleapis.com/auth/cloud-platform",
72391	//     "https://www.googleapis.com/auth/compute",
72392	//     "https://www.googleapis.com/auth/compute.readonly"
72393	//   ]
72394	// }
72395
72396}
72397
72398// Pages invokes f for each page of results.
72399// A non-nil error returned from f will halt the iteration.
72400// The provided context supersedes any context provided to the Context method.
72401func (c *TargetInstancesListCall) Pages(ctx context.Context, f func(*TargetInstanceList) error) error {
72402	c.ctx_ = ctx
72403	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
72404	for {
72405		x, err := c.Do()
72406		if err != nil {
72407			return err
72408		}
72409		if err := f(x); err != nil {
72410			return err
72411		}
72412		if x.NextPageToken == "" {
72413			return nil
72414		}
72415		c.PageToken(x.NextPageToken)
72416	}
72417}
72418
72419// method id "compute.targetPools.addHealthCheck":
72420
72421type TargetPoolsAddHealthCheckCall struct {
72422	s                                *Service
72423	project                          string
72424	region                           string
72425	targetPool                       string
72426	targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest
72427	urlParams_                       gensupport.URLParams
72428	ctx_                             context.Context
72429	header_                          http.Header
72430}
72431
72432// AddHealthCheck: Adds health check URLs to a target pool.
72433// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addHealthCheck
72434func (r *TargetPoolsService) AddHealthCheck(project string, region string, targetPool string, targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest) *TargetPoolsAddHealthCheckCall {
72435	c := &TargetPoolsAddHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72436	c.project = project
72437	c.region = region
72438	c.targetPool = targetPool
72439	c.targetpoolsaddhealthcheckrequest = targetpoolsaddhealthcheckrequest
72440	return c
72441}
72442
72443// RequestId sets the optional parameter "requestId": An optional
72444// request ID to identify requests. Specify a unique request ID so that
72445// if you must retry your request, the server will know to ignore the
72446// request if it has already been completed.
72447//
72448// For example, consider a situation where you make an initial request
72449// and the request times out. If you make the request again with the
72450// same request ID, the server can check if original operation with the
72451// same request ID was received, and if so, will ignore the second
72452// request. This prevents clients from accidentally creating duplicate
72453// commitments.
72454//
72455// The request ID must be a valid UUID with the exception that zero UUID
72456// is not supported (00000000-0000-0000-0000-000000000000).
72457func (c *TargetPoolsAddHealthCheckCall) RequestId(requestId string) *TargetPoolsAddHealthCheckCall {
72458	c.urlParams_.Set("requestId", requestId)
72459	return c
72460}
72461
72462// Fields allows partial responses to be retrieved. See
72463// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72464// for more information.
72465func (c *TargetPoolsAddHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsAddHealthCheckCall {
72466	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72467	return c
72468}
72469
72470// Context sets the context to be used in this call's Do method. Any
72471// pending HTTP request will be aborted if the provided context is
72472// canceled.
72473func (c *TargetPoolsAddHealthCheckCall) Context(ctx context.Context) *TargetPoolsAddHealthCheckCall {
72474	c.ctx_ = ctx
72475	return c
72476}
72477
72478// Header returns an http.Header that can be modified by the caller to
72479// add HTTP headers to the request.
72480func (c *TargetPoolsAddHealthCheckCall) Header() http.Header {
72481	if c.header_ == nil {
72482		c.header_ = make(http.Header)
72483	}
72484	return c.header_
72485}
72486
72487func (c *TargetPoolsAddHealthCheckCall) doRequest(alt string) (*http.Response, error) {
72488	reqHeaders := make(http.Header)
72489	for k, v := range c.header_ {
72490		reqHeaders[k] = v
72491	}
72492	reqHeaders.Set("User-Agent", c.s.userAgent())
72493	var body io.Reader = nil
72494	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddhealthcheckrequest)
72495	if err != nil {
72496		return nil, err
72497	}
72498	reqHeaders.Set("Content-Type", "application/json")
72499	c.urlParams_.Set("alt", alt)
72500	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck")
72501	urls += "?" + c.urlParams_.Encode()
72502	req, _ := http.NewRequest("POST", urls, body)
72503	req.Header = reqHeaders
72504	googleapi.Expand(req.URL, map[string]string{
72505		"project":    c.project,
72506		"region":     c.region,
72507		"targetPool": c.targetPool,
72508	})
72509	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72510}
72511
72512// Do executes the "compute.targetPools.addHealthCheck" call.
72513// Exactly one of *Operation or error will be non-nil. Any non-2xx
72514// status code is an error. Response headers are in either
72515// *Operation.ServerResponse.Header or (if a response was returned at
72516// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72517// to check whether the returned error was because
72518// http.StatusNotModified was returned.
72519func (c *TargetPoolsAddHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72520	gensupport.SetOptions(c.urlParams_, opts...)
72521	res, err := c.doRequest("json")
72522	if res != nil && res.StatusCode == http.StatusNotModified {
72523		if res.Body != nil {
72524			res.Body.Close()
72525		}
72526		return nil, &googleapi.Error{
72527			Code:   res.StatusCode,
72528			Header: res.Header,
72529		}
72530	}
72531	if err != nil {
72532		return nil, err
72533	}
72534	defer googleapi.CloseBody(res)
72535	if err := googleapi.CheckResponse(res); err != nil {
72536		return nil, err
72537	}
72538	ret := &Operation{
72539		ServerResponse: googleapi.ServerResponse{
72540			Header:         res.Header,
72541			HTTPStatusCode: res.StatusCode,
72542		},
72543	}
72544	target := &ret
72545	if err := gensupport.DecodeResponse(target, res); err != nil {
72546		return nil, err
72547	}
72548	return ret, nil
72549	// {
72550	//   "description": "Adds health check URLs to a target pool.",
72551	//   "httpMethod": "POST",
72552	//   "id": "compute.targetPools.addHealthCheck",
72553	//   "parameterOrder": [
72554	//     "project",
72555	//     "region",
72556	//     "targetPool"
72557	//   ],
72558	//   "parameters": {
72559	//     "project": {
72560	//       "description": "Project ID for this request.",
72561	//       "location": "path",
72562	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72563	//       "required": true,
72564	//       "type": "string"
72565	//     },
72566	//     "region": {
72567	//       "description": "Name of the region scoping this request.",
72568	//       "location": "path",
72569	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72570	//       "required": true,
72571	//       "type": "string"
72572	//     },
72573	//     "requestId": {
72574	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72575	//       "location": "query",
72576	//       "type": "string"
72577	//     },
72578	//     "targetPool": {
72579	//       "description": "Name of the target pool to add a health check to.",
72580	//       "location": "path",
72581	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72582	//       "required": true,
72583	//       "type": "string"
72584	//     }
72585	//   },
72586	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck",
72587	//   "request": {
72588	//     "$ref": "TargetPoolsAddHealthCheckRequest"
72589	//   },
72590	//   "response": {
72591	//     "$ref": "Operation"
72592	//   },
72593	//   "scopes": [
72594	//     "https://www.googleapis.com/auth/cloud-platform",
72595	//     "https://www.googleapis.com/auth/compute"
72596	//   ]
72597	// }
72598
72599}
72600
72601// method id "compute.targetPools.addInstance":
72602
72603type TargetPoolsAddInstanceCall struct {
72604	s                             *Service
72605	project                       string
72606	region                        string
72607	targetPool                    string
72608	targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest
72609	urlParams_                    gensupport.URLParams
72610	ctx_                          context.Context
72611	header_                       http.Header
72612}
72613
72614// AddInstance: Adds an instance to a target pool.
72615// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addInstance
72616func (r *TargetPoolsService) AddInstance(project string, region string, targetPool string, targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest) *TargetPoolsAddInstanceCall {
72617	c := &TargetPoolsAddInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72618	c.project = project
72619	c.region = region
72620	c.targetPool = targetPool
72621	c.targetpoolsaddinstancerequest = targetpoolsaddinstancerequest
72622	return c
72623}
72624
72625// RequestId sets the optional parameter "requestId": An optional
72626// request ID to identify requests. Specify a unique request ID so that
72627// if you must retry your request, the server will know to ignore the
72628// request if it has already been completed.
72629//
72630// For example, consider a situation where you make an initial request
72631// and the request times out. If you make the request again with the
72632// same request ID, the server can check if original operation with the
72633// same request ID was received, and if so, will ignore the second
72634// request. This prevents clients from accidentally creating duplicate
72635// commitments.
72636//
72637// The request ID must be a valid UUID with the exception that zero UUID
72638// is not supported (00000000-0000-0000-0000-000000000000).
72639func (c *TargetPoolsAddInstanceCall) RequestId(requestId string) *TargetPoolsAddInstanceCall {
72640	c.urlParams_.Set("requestId", requestId)
72641	return c
72642}
72643
72644// Fields allows partial responses to be retrieved. See
72645// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72646// for more information.
72647func (c *TargetPoolsAddInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsAddInstanceCall {
72648	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72649	return c
72650}
72651
72652// Context sets the context to be used in this call's Do method. Any
72653// pending HTTP request will be aborted if the provided context is
72654// canceled.
72655func (c *TargetPoolsAddInstanceCall) Context(ctx context.Context) *TargetPoolsAddInstanceCall {
72656	c.ctx_ = ctx
72657	return c
72658}
72659
72660// Header returns an http.Header that can be modified by the caller to
72661// add HTTP headers to the request.
72662func (c *TargetPoolsAddInstanceCall) Header() http.Header {
72663	if c.header_ == nil {
72664		c.header_ = make(http.Header)
72665	}
72666	return c.header_
72667}
72668
72669func (c *TargetPoolsAddInstanceCall) doRequest(alt string) (*http.Response, error) {
72670	reqHeaders := make(http.Header)
72671	for k, v := range c.header_ {
72672		reqHeaders[k] = v
72673	}
72674	reqHeaders.Set("User-Agent", c.s.userAgent())
72675	var body io.Reader = nil
72676	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddinstancerequest)
72677	if err != nil {
72678		return nil, err
72679	}
72680	reqHeaders.Set("Content-Type", "application/json")
72681	c.urlParams_.Set("alt", alt)
72682	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/addInstance")
72683	urls += "?" + c.urlParams_.Encode()
72684	req, _ := http.NewRequest("POST", urls, body)
72685	req.Header = reqHeaders
72686	googleapi.Expand(req.URL, map[string]string{
72687		"project":    c.project,
72688		"region":     c.region,
72689		"targetPool": c.targetPool,
72690	})
72691	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72692}
72693
72694// Do executes the "compute.targetPools.addInstance" call.
72695// Exactly one of *Operation or error will be non-nil. Any non-2xx
72696// status code is an error. Response headers are in either
72697// *Operation.ServerResponse.Header or (if a response was returned at
72698// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72699// to check whether the returned error was because
72700// http.StatusNotModified was returned.
72701func (c *TargetPoolsAddInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72702	gensupport.SetOptions(c.urlParams_, opts...)
72703	res, err := c.doRequest("json")
72704	if res != nil && res.StatusCode == http.StatusNotModified {
72705		if res.Body != nil {
72706			res.Body.Close()
72707		}
72708		return nil, &googleapi.Error{
72709			Code:   res.StatusCode,
72710			Header: res.Header,
72711		}
72712	}
72713	if err != nil {
72714		return nil, err
72715	}
72716	defer googleapi.CloseBody(res)
72717	if err := googleapi.CheckResponse(res); err != nil {
72718		return nil, err
72719	}
72720	ret := &Operation{
72721		ServerResponse: googleapi.ServerResponse{
72722			Header:         res.Header,
72723			HTTPStatusCode: res.StatusCode,
72724		},
72725	}
72726	target := &ret
72727	if err := gensupport.DecodeResponse(target, res); err != nil {
72728		return nil, err
72729	}
72730	return ret, nil
72731	// {
72732	//   "description": "Adds an instance to a target pool.",
72733	//   "httpMethod": "POST",
72734	//   "id": "compute.targetPools.addInstance",
72735	//   "parameterOrder": [
72736	//     "project",
72737	//     "region",
72738	//     "targetPool"
72739	//   ],
72740	//   "parameters": {
72741	//     "project": {
72742	//       "description": "Project ID for this request.",
72743	//       "location": "path",
72744	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72745	//       "required": true,
72746	//       "type": "string"
72747	//     },
72748	//     "region": {
72749	//       "description": "Name of the region scoping this request.",
72750	//       "location": "path",
72751	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72752	//       "required": true,
72753	//       "type": "string"
72754	//     },
72755	//     "requestId": {
72756	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72757	//       "location": "query",
72758	//       "type": "string"
72759	//     },
72760	//     "targetPool": {
72761	//       "description": "Name of the TargetPool resource to add instances to.",
72762	//       "location": "path",
72763	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
72764	//       "required": true,
72765	//       "type": "string"
72766	//     }
72767	//   },
72768	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/addInstance",
72769	//   "request": {
72770	//     "$ref": "TargetPoolsAddInstanceRequest"
72771	//   },
72772	//   "response": {
72773	//     "$ref": "Operation"
72774	//   },
72775	//   "scopes": [
72776	//     "https://www.googleapis.com/auth/cloud-platform",
72777	//     "https://www.googleapis.com/auth/compute"
72778	//   ]
72779	// }
72780
72781}
72782
72783// method id "compute.targetPools.aggregatedList":
72784
72785type TargetPoolsAggregatedListCall struct {
72786	s            *Service
72787	project      string
72788	urlParams_   gensupport.URLParams
72789	ifNoneMatch_ string
72790	ctx_         context.Context
72791	header_      http.Header
72792}
72793
72794// AggregatedList: Retrieves an aggregated list of target pools.
72795// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/aggregatedList
72796func (r *TargetPoolsService) AggregatedList(project string) *TargetPoolsAggregatedListCall {
72797	c := &TargetPoolsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72798	c.project = project
72799	return c
72800}
72801
72802// Filter sets the optional parameter "filter": Sets a filter
72803// {expression} for filtering listed resources. Your {expression} must
72804// be in the format: field_name comparison_string literal_string.
72805//
72806// The field_name is the name of the field you want to compare. Only
72807// atomic field types are supported (string, number, boolean). The
72808// comparison_string must be either eq (equals) or ne (not equals). The
72809// literal_string is the string value to filter to. The literal value
72810// must be valid for the type of field you are filtering by (string,
72811// number, boolean). For string fields, the literal value is interpreted
72812// as a regular expression using RE2 syntax. The literal value must
72813// match the entire field.
72814//
72815// For example, to filter for instances that do not have a name of
72816// example-instance, you would use name ne example-instance.
72817//
72818// You can filter on nested fields. For example, you could filter on
72819// instances that have set the scheduling.automaticRestart field to
72820// true. Use filtering on nested fields to take advantage of labels to
72821// organize and search for results based on label values.
72822//
72823// To filter on multiple expressions, provide each separate expression
72824// within parentheses. For example, (scheduling.automaticRestart eq
72825// true) (zone eq us-central1-f). Multiple expressions are treated as
72826// AND expressions, meaning that resources must match all expressions to
72827// pass the filters.
72828func (c *TargetPoolsAggregatedListCall) Filter(filter string) *TargetPoolsAggregatedListCall {
72829	c.urlParams_.Set("filter", filter)
72830	return c
72831}
72832
72833// MaxResults sets the optional parameter "maxResults": The maximum
72834// number of results per page that should be returned. If the number of
72835// available results is larger than maxResults, Compute Engine returns a
72836// nextPageToken that can be used to get the next page of results in
72837// subsequent list requests. Acceptable values are 0 to 500, inclusive.
72838// (Default: 500)
72839func (c *TargetPoolsAggregatedListCall) MaxResults(maxResults int64) *TargetPoolsAggregatedListCall {
72840	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
72841	return c
72842}
72843
72844// OrderBy sets the optional parameter "orderBy": Sorts list results by
72845// a certain order. By default, results are returned in alphanumerical
72846// order based on the resource name.
72847//
72848// You can also sort results in descending order based on the creation
72849// timestamp using orderBy="creationTimestamp desc". This sorts results
72850// based on the creationTimestamp field in reverse chronological order
72851// (newest result first). Use this to sort resources like operations so
72852// that the newest operation is returned first.
72853//
72854// Currently, only sorting by name or creationTimestamp desc is
72855// supported.
72856func (c *TargetPoolsAggregatedListCall) OrderBy(orderBy string) *TargetPoolsAggregatedListCall {
72857	c.urlParams_.Set("orderBy", orderBy)
72858	return c
72859}
72860
72861// PageToken sets the optional parameter "pageToken": Specifies a page
72862// token to use. Set pageToken to the nextPageToken returned by a
72863// previous list request to get the next page of results.
72864func (c *TargetPoolsAggregatedListCall) PageToken(pageToken string) *TargetPoolsAggregatedListCall {
72865	c.urlParams_.Set("pageToken", pageToken)
72866	return c
72867}
72868
72869// Fields allows partial responses to be retrieved. See
72870// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72871// for more information.
72872func (c *TargetPoolsAggregatedListCall) Fields(s ...googleapi.Field) *TargetPoolsAggregatedListCall {
72873	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72874	return c
72875}
72876
72877// IfNoneMatch sets the optional parameter which makes the operation
72878// fail if the object's ETag matches the given value. This is useful for
72879// getting updates only after the object has changed since the last
72880// request. Use googleapi.IsNotModified to check whether the response
72881// error from Do is the result of In-None-Match.
72882func (c *TargetPoolsAggregatedListCall) IfNoneMatch(entityTag string) *TargetPoolsAggregatedListCall {
72883	c.ifNoneMatch_ = entityTag
72884	return c
72885}
72886
72887// Context sets the context to be used in this call's Do method. Any
72888// pending HTTP request will be aborted if the provided context is
72889// canceled.
72890func (c *TargetPoolsAggregatedListCall) Context(ctx context.Context) *TargetPoolsAggregatedListCall {
72891	c.ctx_ = ctx
72892	return c
72893}
72894
72895// Header returns an http.Header that can be modified by the caller to
72896// add HTTP headers to the request.
72897func (c *TargetPoolsAggregatedListCall) Header() http.Header {
72898	if c.header_ == nil {
72899		c.header_ = make(http.Header)
72900	}
72901	return c.header_
72902}
72903
72904func (c *TargetPoolsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
72905	reqHeaders := make(http.Header)
72906	for k, v := range c.header_ {
72907		reqHeaders[k] = v
72908	}
72909	reqHeaders.Set("User-Agent", c.s.userAgent())
72910	if c.ifNoneMatch_ != "" {
72911		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72912	}
72913	var body io.Reader = nil
72914	c.urlParams_.Set("alt", alt)
72915	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetPools")
72916	urls += "?" + c.urlParams_.Encode()
72917	req, _ := http.NewRequest("GET", urls, body)
72918	req.Header = reqHeaders
72919	googleapi.Expand(req.URL, map[string]string{
72920		"project": c.project,
72921	})
72922	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72923}
72924
72925// Do executes the "compute.targetPools.aggregatedList" call.
72926// Exactly one of *TargetPoolAggregatedList or error will be non-nil.
72927// Any non-2xx status code is an error. Response headers are in either
72928// *TargetPoolAggregatedList.ServerResponse.Header or (if a response was
72929// returned at all) in error.(*googleapi.Error).Header. Use
72930// googleapi.IsNotModified to check whether the returned error was
72931// because http.StatusNotModified was returned.
72932func (c *TargetPoolsAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetPoolAggregatedList, error) {
72933	gensupport.SetOptions(c.urlParams_, opts...)
72934	res, err := c.doRequest("json")
72935	if res != nil && res.StatusCode == http.StatusNotModified {
72936		if res.Body != nil {
72937			res.Body.Close()
72938		}
72939		return nil, &googleapi.Error{
72940			Code:   res.StatusCode,
72941			Header: res.Header,
72942		}
72943	}
72944	if err != nil {
72945		return nil, err
72946	}
72947	defer googleapi.CloseBody(res)
72948	if err := googleapi.CheckResponse(res); err != nil {
72949		return nil, err
72950	}
72951	ret := &TargetPoolAggregatedList{
72952		ServerResponse: googleapi.ServerResponse{
72953			Header:         res.Header,
72954			HTTPStatusCode: res.StatusCode,
72955		},
72956	}
72957	target := &ret
72958	if err := gensupport.DecodeResponse(target, res); err != nil {
72959		return nil, err
72960	}
72961	return ret, nil
72962	// {
72963	//   "description": "Retrieves an aggregated list of target pools.",
72964	//   "httpMethod": "GET",
72965	//   "id": "compute.targetPools.aggregatedList",
72966	//   "parameterOrder": [
72967	//     "project"
72968	//   ],
72969	//   "parameters": {
72970	//     "filter": {
72971	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
72972	//       "location": "query",
72973	//       "type": "string"
72974	//     },
72975	//     "maxResults": {
72976	//       "default": "500",
72977	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
72978	//       "format": "uint32",
72979	//       "location": "query",
72980	//       "minimum": "0",
72981	//       "type": "integer"
72982	//     },
72983	//     "orderBy": {
72984	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
72985	//       "location": "query",
72986	//       "type": "string"
72987	//     },
72988	//     "pageToken": {
72989	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
72990	//       "location": "query",
72991	//       "type": "string"
72992	//     },
72993	//     "project": {
72994	//       "description": "Project ID for this request.",
72995	//       "location": "path",
72996	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72997	//       "required": true,
72998	//       "type": "string"
72999	//     }
73000	//   },
73001	//   "path": "{project}/aggregated/targetPools",
73002	//   "response": {
73003	//     "$ref": "TargetPoolAggregatedList"
73004	//   },
73005	//   "scopes": [
73006	//     "https://www.googleapis.com/auth/cloud-platform",
73007	//     "https://www.googleapis.com/auth/compute",
73008	//     "https://www.googleapis.com/auth/compute.readonly"
73009	//   ]
73010	// }
73011
73012}
73013
73014// Pages invokes f for each page of results.
73015// A non-nil error returned from f will halt the iteration.
73016// The provided context supersedes any context provided to the Context method.
73017func (c *TargetPoolsAggregatedListCall) Pages(ctx context.Context, f func(*TargetPoolAggregatedList) error) error {
73018	c.ctx_ = ctx
73019	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
73020	for {
73021		x, err := c.Do()
73022		if err != nil {
73023			return err
73024		}
73025		if err := f(x); err != nil {
73026			return err
73027		}
73028		if x.NextPageToken == "" {
73029			return nil
73030		}
73031		c.PageToken(x.NextPageToken)
73032	}
73033}
73034
73035// method id "compute.targetPools.delete":
73036
73037type TargetPoolsDeleteCall struct {
73038	s          *Service
73039	project    string
73040	region     string
73041	targetPool string
73042	urlParams_ gensupport.URLParams
73043	ctx_       context.Context
73044	header_    http.Header
73045}
73046
73047// Delete: Deletes the specified target pool.
73048// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/delete
73049func (r *TargetPoolsService) Delete(project string, region string, targetPool string) *TargetPoolsDeleteCall {
73050	c := &TargetPoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73051	c.project = project
73052	c.region = region
73053	c.targetPool = targetPool
73054	return c
73055}
73056
73057// RequestId sets the optional parameter "requestId": An optional
73058// request ID to identify requests. Specify a unique request ID so that
73059// if you must retry your request, the server will know to ignore the
73060// request if it has already been completed.
73061//
73062// For example, consider a situation where you make an initial request
73063// and the request times out. If you make the request again with the
73064// same request ID, the server can check if original operation with the
73065// same request ID was received, and if so, will ignore the second
73066// request. This prevents clients from accidentally creating duplicate
73067// commitments.
73068//
73069// The request ID must be a valid UUID with the exception that zero UUID
73070// is not supported (00000000-0000-0000-0000-000000000000).
73071func (c *TargetPoolsDeleteCall) RequestId(requestId string) *TargetPoolsDeleteCall {
73072	c.urlParams_.Set("requestId", requestId)
73073	return c
73074}
73075
73076// Fields allows partial responses to be retrieved. See
73077// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73078// for more information.
73079func (c *TargetPoolsDeleteCall) Fields(s ...googleapi.Field) *TargetPoolsDeleteCall {
73080	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73081	return c
73082}
73083
73084// Context sets the context to be used in this call's Do method. Any
73085// pending HTTP request will be aborted if the provided context is
73086// canceled.
73087func (c *TargetPoolsDeleteCall) Context(ctx context.Context) *TargetPoolsDeleteCall {
73088	c.ctx_ = ctx
73089	return c
73090}
73091
73092// Header returns an http.Header that can be modified by the caller to
73093// add HTTP headers to the request.
73094func (c *TargetPoolsDeleteCall) Header() http.Header {
73095	if c.header_ == nil {
73096		c.header_ = make(http.Header)
73097	}
73098	return c.header_
73099}
73100
73101func (c *TargetPoolsDeleteCall) doRequest(alt string) (*http.Response, error) {
73102	reqHeaders := make(http.Header)
73103	for k, v := range c.header_ {
73104		reqHeaders[k] = v
73105	}
73106	reqHeaders.Set("User-Agent", c.s.userAgent())
73107	var body io.Reader = nil
73108	c.urlParams_.Set("alt", alt)
73109	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}")
73110	urls += "?" + c.urlParams_.Encode()
73111	req, _ := http.NewRequest("DELETE", urls, body)
73112	req.Header = reqHeaders
73113	googleapi.Expand(req.URL, map[string]string{
73114		"project":    c.project,
73115		"region":     c.region,
73116		"targetPool": c.targetPool,
73117	})
73118	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73119}
73120
73121// Do executes the "compute.targetPools.delete" call.
73122// Exactly one of *Operation or error will be non-nil. Any non-2xx
73123// status code is an error. Response headers are in either
73124// *Operation.ServerResponse.Header or (if a response was returned at
73125// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73126// to check whether the returned error was because
73127// http.StatusNotModified was returned.
73128func (c *TargetPoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73129	gensupport.SetOptions(c.urlParams_, opts...)
73130	res, err := c.doRequest("json")
73131	if res != nil && res.StatusCode == http.StatusNotModified {
73132		if res.Body != nil {
73133			res.Body.Close()
73134		}
73135		return nil, &googleapi.Error{
73136			Code:   res.StatusCode,
73137			Header: res.Header,
73138		}
73139	}
73140	if err != nil {
73141		return nil, err
73142	}
73143	defer googleapi.CloseBody(res)
73144	if err := googleapi.CheckResponse(res); err != nil {
73145		return nil, err
73146	}
73147	ret := &Operation{
73148		ServerResponse: googleapi.ServerResponse{
73149			Header:         res.Header,
73150			HTTPStatusCode: res.StatusCode,
73151		},
73152	}
73153	target := &ret
73154	if err := gensupport.DecodeResponse(target, res); err != nil {
73155		return nil, err
73156	}
73157	return ret, nil
73158	// {
73159	//   "description": "Deletes the specified target pool.",
73160	//   "httpMethod": "DELETE",
73161	//   "id": "compute.targetPools.delete",
73162	//   "parameterOrder": [
73163	//     "project",
73164	//     "region",
73165	//     "targetPool"
73166	//   ],
73167	//   "parameters": {
73168	//     "project": {
73169	//       "description": "Project ID for this request.",
73170	//       "location": "path",
73171	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73172	//       "required": true,
73173	//       "type": "string"
73174	//     },
73175	//     "region": {
73176	//       "description": "Name of the region scoping this request.",
73177	//       "location": "path",
73178	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73179	//       "required": true,
73180	//       "type": "string"
73181	//     },
73182	//     "requestId": {
73183	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73184	//       "location": "query",
73185	//       "type": "string"
73186	//     },
73187	//     "targetPool": {
73188	//       "description": "Name of the TargetPool resource to delete.",
73189	//       "location": "path",
73190	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73191	//       "required": true,
73192	//       "type": "string"
73193	//     }
73194	//   },
73195	//   "path": "{project}/regions/{region}/targetPools/{targetPool}",
73196	//   "response": {
73197	//     "$ref": "Operation"
73198	//   },
73199	//   "scopes": [
73200	//     "https://www.googleapis.com/auth/cloud-platform",
73201	//     "https://www.googleapis.com/auth/compute"
73202	//   ]
73203	// }
73204
73205}
73206
73207// method id "compute.targetPools.get":
73208
73209type TargetPoolsGetCall struct {
73210	s            *Service
73211	project      string
73212	region       string
73213	targetPool   string
73214	urlParams_   gensupport.URLParams
73215	ifNoneMatch_ string
73216	ctx_         context.Context
73217	header_      http.Header
73218}
73219
73220// Get: Returns the specified target pool. Get a list of available
73221// target pools by making a list() request.
73222// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/get
73223func (r *TargetPoolsService) Get(project string, region string, targetPool string) *TargetPoolsGetCall {
73224	c := &TargetPoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73225	c.project = project
73226	c.region = region
73227	c.targetPool = targetPool
73228	return c
73229}
73230
73231// Fields allows partial responses to be retrieved. See
73232// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73233// for more information.
73234func (c *TargetPoolsGetCall) Fields(s ...googleapi.Field) *TargetPoolsGetCall {
73235	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73236	return c
73237}
73238
73239// IfNoneMatch sets the optional parameter which makes the operation
73240// fail if the object's ETag matches the given value. This is useful for
73241// getting updates only after the object has changed since the last
73242// request. Use googleapi.IsNotModified to check whether the response
73243// error from Do is the result of In-None-Match.
73244func (c *TargetPoolsGetCall) IfNoneMatch(entityTag string) *TargetPoolsGetCall {
73245	c.ifNoneMatch_ = entityTag
73246	return c
73247}
73248
73249// Context sets the context to be used in this call's Do method. Any
73250// pending HTTP request will be aborted if the provided context is
73251// canceled.
73252func (c *TargetPoolsGetCall) Context(ctx context.Context) *TargetPoolsGetCall {
73253	c.ctx_ = ctx
73254	return c
73255}
73256
73257// Header returns an http.Header that can be modified by the caller to
73258// add HTTP headers to the request.
73259func (c *TargetPoolsGetCall) Header() http.Header {
73260	if c.header_ == nil {
73261		c.header_ = make(http.Header)
73262	}
73263	return c.header_
73264}
73265
73266func (c *TargetPoolsGetCall) doRequest(alt string) (*http.Response, error) {
73267	reqHeaders := make(http.Header)
73268	for k, v := range c.header_ {
73269		reqHeaders[k] = v
73270	}
73271	reqHeaders.Set("User-Agent", c.s.userAgent())
73272	if c.ifNoneMatch_ != "" {
73273		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73274	}
73275	var body io.Reader = nil
73276	c.urlParams_.Set("alt", alt)
73277	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}")
73278	urls += "?" + c.urlParams_.Encode()
73279	req, _ := http.NewRequest("GET", urls, body)
73280	req.Header = reqHeaders
73281	googleapi.Expand(req.URL, map[string]string{
73282		"project":    c.project,
73283		"region":     c.region,
73284		"targetPool": c.targetPool,
73285	})
73286	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73287}
73288
73289// Do executes the "compute.targetPools.get" call.
73290// Exactly one of *TargetPool or error will be non-nil. Any non-2xx
73291// status code is an error. Response headers are in either
73292// *TargetPool.ServerResponse.Header or (if a response was returned at
73293// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73294// to check whether the returned error was because
73295// http.StatusNotModified was returned.
73296func (c *TargetPoolsGetCall) Do(opts ...googleapi.CallOption) (*TargetPool, error) {
73297	gensupport.SetOptions(c.urlParams_, opts...)
73298	res, err := c.doRequest("json")
73299	if res != nil && res.StatusCode == http.StatusNotModified {
73300		if res.Body != nil {
73301			res.Body.Close()
73302		}
73303		return nil, &googleapi.Error{
73304			Code:   res.StatusCode,
73305			Header: res.Header,
73306		}
73307	}
73308	if err != nil {
73309		return nil, err
73310	}
73311	defer googleapi.CloseBody(res)
73312	if err := googleapi.CheckResponse(res); err != nil {
73313		return nil, err
73314	}
73315	ret := &TargetPool{
73316		ServerResponse: googleapi.ServerResponse{
73317			Header:         res.Header,
73318			HTTPStatusCode: res.StatusCode,
73319		},
73320	}
73321	target := &ret
73322	if err := gensupport.DecodeResponse(target, res); err != nil {
73323		return nil, err
73324	}
73325	return ret, nil
73326	// {
73327	//   "description": "Returns the specified target pool. Get a list of available target pools by making a list() request.",
73328	//   "httpMethod": "GET",
73329	//   "id": "compute.targetPools.get",
73330	//   "parameterOrder": [
73331	//     "project",
73332	//     "region",
73333	//     "targetPool"
73334	//   ],
73335	//   "parameters": {
73336	//     "project": {
73337	//       "description": "Project ID for this request.",
73338	//       "location": "path",
73339	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73340	//       "required": true,
73341	//       "type": "string"
73342	//     },
73343	//     "region": {
73344	//       "description": "Name of the region scoping this request.",
73345	//       "location": "path",
73346	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73347	//       "required": true,
73348	//       "type": "string"
73349	//     },
73350	//     "targetPool": {
73351	//       "description": "Name of the TargetPool resource to return.",
73352	//       "location": "path",
73353	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73354	//       "required": true,
73355	//       "type": "string"
73356	//     }
73357	//   },
73358	//   "path": "{project}/regions/{region}/targetPools/{targetPool}",
73359	//   "response": {
73360	//     "$ref": "TargetPool"
73361	//   },
73362	//   "scopes": [
73363	//     "https://www.googleapis.com/auth/cloud-platform",
73364	//     "https://www.googleapis.com/auth/compute",
73365	//     "https://www.googleapis.com/auth/compute.readonly"
73366	//   ]
73367	// }
73368
73369}
73370
73371// method id "compute.targetPools.getHealth":
73372
73373type TargetPoolsGetHealthCall struct {
73374	s                 *Service
73375	project           string
73376	region            string
73377	targetPool        string
73378	instancereference *InstanceReference
73379	urlParams_        gensupport.URLParams
73380	ctx_              context.Context
73381	header_           http.Header
73382}
73383
73384// GetHealth: Gets the most recent health check results for each IP for
73385// the instance that is referenced by the given target pool.
73386// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/getHealth
73387func (r *TargetPoolsService) GetHealth(project string, region string, targetPool string, instancereference *InstanceReference) *TargetPoolsGetHealthCall {
73388	c := &TargetPoolsGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73389	c.project = project
73390	c.region = region
73391	c.targetPool = targetPool
73392	c.instancereference = instancereference
73393	return c
73394}
73395
73396// Fields allows partial responses to be retrieved. See
73397// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73398// for more information.
73399func (c *TargetPoolsGetHealthCall) Fields(s ...googleapi.Field) *TargetPoolsGetHealthCall {
73400	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73401	return c
73402}
73403
73404// Context sets the context to be used in this call's Do method. Any
73405// pending HTTP request will be aborted if the provided context is
73406// canceled.
73407func (c *TargetPoolsGetHealthCall) Context(ctx context.Context) *TargetPoolsGetHealthCall {
73408	c.ctx_ = ctx
73409	return c
73410}
73411
73412// Header returns an http.Header that can be modified by the caller to
73413// add HTTP headers to the request.
73414func (c *TargetPoolsGetHealthCall) Header() http.Header {
73415	if c.header_ == nil {
73416		c.header_ = make(http.Header)
73417	}
73418	return c.header_
73419}
73420
73421func (c *TargetPoolsGetHealthCall) doRequest(alt string) (*http.Response, error) {
73422	reqHeaders := make(http.Header)
73423	for k, v := range c.header_ {
73424		reqHeaders[k] = v
73425	}
73426	reqHeaders.Set("User-Agent", c.s.userAgent())
73427	var body io.Reader = nil
73428	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancereference)
73429	if err != nil {
73430		return nil, err
73431	}
73432	reqHeaders.Set("Content-Type", "application/json")
73433	c.urlParams_.Set("alt", alt)
73434	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/getHealth")
73435	urls += "?" + c.urlParams_.Encode()
73436	req, _ := http.NewRequest("POST", urls, body)
73437	req.Header = reqHeaders
73438	googleapi.Expand(req.URL, map[string]string{
73439		"project":    c.project,
73440		"region":     c.region,
73441		"targetPool": c.targetPool,
73442	})
73443	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73444}
73445
73446// Do executes the "compute.targetPools.getHealth" call.
73447// Exactly one of *TargetPoolInstanceHealth or error will be non-nil.
73448// Any non-2xx status code is an error. Response headers are in either
73449// *TargetPoolInstanceHealth.ServerResponse.Header or (if a response was
73450// returned at all) in error.(*googleapi.Error).Header. Use
73451// googleapi.IsNotModified to check whether the returned error was
73452// because http.StatusNotModified was returned.
73453func (c *TargetPoolsGetHealthCall) Do(opts ...googleapi.CallOption) (*TargetPoolInstanceHealth, error) {
73454	gensupport.SetOptions(c.urlParams_, opts...)
73455	res, err := c.doRequest("json")
73456	if res != nil && res.StatusCode == http.StatusNotModified {
73457		if res.Body != nil {
73458			res.Body.Close()
73459		}
73460		return nil, &googleapi.Error{
73461			Code:   res.StatusCode,
73462			Header: res.Header,
73463		}
73464	}
73465	if err != nil {
73466		return nil, err
73467	}
73468	defer googleapi.CloseBody(res)
73469	if err := googleapi.CheckResponse(res); err != nil {
73470		return nil, err
73471	}
73472	ret := &TargetPoolInstanceHealth{
73473		ServerResponse: googleapi.ServerResponse{
73474			Header:         res.Header,
73475			HTTPStatusCode: res.StatusCode,
73476		},
73477	}
73478	target := &ret
73479	if err := gensupport.DecodeResponse(target, res); err != nil {
73480		return nil, err
73481	}
73482	return ret, nil
73483	// {
73484	//   "description": "Gets the most recent health check results for each IP for the instance that is referenced by the given target pool.",
73485	//   "httpMethod": "POST",
73486	//   "id": "compute.targetPools.getHealth",
73487	//   "parameterOrder": [
73488	//     "project",
73489	//     "region",
73490	//     "targetPool"
73491	//   ],
73492	//   "parameters": {
73493	//     "project": {
73494	//       "description": "Project ID for this request.",
73495	//       "location": "path",
73496	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73497	//       "required": true,
73498	//       "type": "string"
73499	//     },
73500	//     "region": {
73501	//       "description": "Name of the region scoping this request.",
73502	//       "location": "path",
73503	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73504	//       "required": true,
73505	//       "type": "string"
73506	//     },
73507	//     "targetPool": {
73508	//       "description": "Name of the TargetPool resource to which the queried instance belongs.",
73509	//       "location": "path",
73510	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73511	//       "required": true,
73512	//       "type": "string"
73513	//     }
73514	//   },
73515	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/getHealth",
73516	//   "request": {
73517	//     "$ref": "InstanceReference"
73518	//   },
73519	//   "response": {
73520	//     "$ref": "TargetPoolInstanceHealth"
73521	//   },
73522	//   "scopes": [
73523	//     "https://www.googleapis.com/auth/cloud-platform",
73524	//     "https://www.googleapis.com/auth/compute",
73525	//     "https://www.googleapis.com/auth/compute.readonly"
73526	//   ]
73527	// }
73528
73529}
73530
73531// method id "compute.targetPools.insert":
73532
73533type TargetPoolsInsertCall struct {
73534	s          *Service
73535	project    string
73536	region     string
73537	targetpool *TargetPool
73538	urlParams_ gensupport.URLParams
73539	ctx_       context.Context
73540	header_    http.Header
73541}
73542
73543// Insert: Creates a target pool in the specified project and region
73544// using the data included in the request.
73545// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/insert
73546func (r *TargetPoolsService) Insert(project string, region string, targetpool *TargetPool) *TargetPoolsInsertCall {
73547	c := &TargetPoolsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73548	c.project = project
73549	c.region = region
73550	c.targetpool = targetpool
73551	return c
73552}
73553
73554// RequestId sets the optional parameter "requestId": An optional
73555// request ID to identify requests. Specify a unique request ID so that
73556// if you must retry your request, the server will know to ignore the
73557// request if it has already been completed.
73558//
73559// For example, consider a situation where you make an initial request
73560// and the request times out. If you make the request again with the
73561// same request ID, the server can check if original operation with the
73562// same request ID was received, and if so, will ignore the second
73563// request. This prevents clients from accidentally creating duplicate
73564// commitments.
73565//
73566// The request ID must be a valid UUID with the exception that zero UUID
73567// is not supported (00000000-0000-0000-0000-000000000000).
73568func (c *TargetPoolsInsertCall) RequestId(requestId string) *TargetPoolsInsertCall {
73569	c.urlParams_.Set("requestId", requestId)
73570	return c
73571}
73572
73573// Fields allows partial responses to be retrieved. See
73574// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73575// for more information.
73576func (c *TargetPoolsInsertCall) Fields(s ...googleapi.Field) *TargetPoolsInsertCall {
73577	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73578	return c
73579}
73580
73581// Context sets the context to be used in this call's Do method. Any
73582// pending HTTP request will be aborted if the provided context is
73583// canceled.
73584func (c *TargetPoolsInsertCall) Context(ctx context.Context) *TargetPoolsInsertCall {
73585	c.ctx_ = ctx
73586	return c
73587}
73588
73589// Header returns an http.Header that can be modified by the caller to
73590// add HTTP headers to the request.
73591func (c *TargetPoolsInsertCall) Header() http.Header {
73592	if c.header_ == nil {
73593		c.header_ = make(http.Header)
73594	}
73595	return c.header_
73596}
73597
73598func (c *TargetPoolsInsertCall) doRequest(alt string) (*http.Response, error) {
73599	reqHeaders := make(http.Header)
73600	for k, v := range c.header_ {
73601		reqHeaders[k] = v
73602	}
73603	reqHeaders.Set("User-Agent", c.s.userAgent())
73604	var body io.Reader = nil
73605	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpool)
73606	if err != nil {
73607		return nil, err
73608	}
73609	reqHeaders.Set("Content-Type", "application/json")
73610	c.urlParams_.Set("alt", alt)
73611	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools")
73612	urls += "?" + c.urlParams_.Encode()
73613	req, _ := http.NewRequest("POST", urls, body)
73614	req.Header = reqHeaders
73615	googleapi.Expand(req.URL, map[string]string{
73616		"project": c.project,
73617		"region":  c.region,
73618	})
73619	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73620}
73621
73622// Do executes the "compute.targetPools.insert" call.
73623// Exactly one of *Operation or error will be non-nil. Any non-2xx
73624// status code is an error. Response headers are in either
73625// *Operation.ServerResponse.Header or (if a response was returned at
73626// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73627// to check whether the returned error was because
73628// http.StatusNotModified was returned.
73629func (c *TargetPoolsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73630	gensupport.SetOptions(c.urlParams_, opts...)
73631	res, err := c.doRequest("json")
73632	if res != nil && res.StatusCode == http.StatusNotModified {
73633		if res.Body != nil {
73634			res.Body.Close()
73635		}
73636		return nil, &googleapi.Error{
73637			Code:   res.StatusCode,
73638			Header: res.Header,
73639		}
73640	}
73641	if err != nil {
73642		return nil, err
73643	}
73644	defer googleapi.CloseBody(res)
73645	if err := googleapi.CheckResponse(res); err != nil {
73646		return nil, err
73647	}
73648	ret := &Operation{
73649		ServerResponse: googleapi.ServerResponse{
73650			Header:         res.Header,
73651			HTTPStatusCode: res.StatusCode,
73652		},
73653	}
73654	target := &ret
73655	if err := gensupport.DecodeResponse(target, res); err != nil {
73656		return nil, err
73657	}
73658	return ret, nil
73659	// {
73660	//   "description": "Creates a target pool in the specified project and region using the data included in the request.",
73661	//   "httpMethod": "POST",
73662	//   "id": "compute.targetPools.insert",
73663	//   "parameterOrder": [
73664	//     "project",
73665	//     "region"
73666	//   ],
73667	//   "parameters": {
73668	//     "project": {
73669	//       "description": "Project ID for this request.",
73670	//       "location": "path",
73671	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73672	//       "required": true,
73673	//       "type": "string"
73674	//     },
73675	//     "region": {
73676	//       "description": "Name of the region scoping this request.",
73677	//       "location": "path",
73678	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73679	//       "required": true,
73680	//       "type": "string"
73681	//     },
73682	//     "requestId": {
73683	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73684	//       "location": "query",
73685	//       "type": "string"
73686	//     }
73687	//   },
73688	//   "path": "{project}/regions/{region}/targetPools",
73689	//   "request": {
73690	//     "$ref": "TargetPool"
73691	//   },
73692	//   "response": {
73693	//     "$ref": "Operation"
73694	//   },
73695	//   "scopes": [
73696	//     "https://www.googleapis.com/auth/cloud-platform",
73697	//     "https://www.googleapis.com/auth/compute"
73698	//   ]
73699	// }
73700
73701}
73702
73703// method id "compute.targetPools.list":
73704
73705type TargetPoolsListCall struct {
73706	s            *Service
73707	project      string
73708	region       string
73709	urlParams_   gensupport.URLParams
73710	ifNoneMatch_ string
73711	ctx_         context.Context
73712	header_      http.Header
73713}
73714
73715// List: Retrieves a list of target pools available to the specified
73716// project and region.
73717// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/list
73718func (r *TargetPoolsService) List(project string, region string) *TargetPoolsListCall {
73719	c := &TargetPoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73720	c.project = project
73721	c.region = region
73722	return c
73723}
73724
73725// Filter sets the optional parameter "filter": Sets a filter
73726// {expression} for filtering listed resources. Your {expression} must
73727// be in the format: field_name comparison_string literal_string.
73728//
73729// The field_name is the name of the field you want to compare. Only
73730// atomic field types are supported (string, number, boolean). The
73731// comparison_string must be either eq (equals) or ne (not equals). The
73732// literal_string is the string value to filter to. The literal value
73733// must be valid for the type of field you are filtering by (string,
73734// number, boolean). For string fields, the literal value is interpreted
73735// as a regular expression using RE2 syntax. The literal value must
73736// match the entire field.
73737//
73738// For example, to filter for instances that do not have a name of
73739// example-instance, you would use name ne example-instance.
73740//
73741// You can filter on nested fields. For example, you could filter on
73742// instances that have set the scheduling.automaticRestart field to
73743// true. Use filtering on nested fields to take advantage of labels to
73744// organize and search for results based on label values.
73745//
73746// To filter on multiple expressions, provide each separate expression
73747// within parentheses. For example, (scheduling.automaticRestart eq
73748// true) (zone eq us-central1-f). Multiple expressions are treated as
73749// AND expressions, meaning that resources must match all expressions to
73750// pass the filters.
73751func (c *TargetPoolsListCall) Filter(filter string) *TargetPoolsListCall {
73752	c.urlParams_.Set("filter", filter)
73753	return c
73754}
73755
73756// MaxResults sets the optional parameter "maxResults": The maximum
73757// number of results per page that should be returned. If the number of
73758// available results is larger than maxResults, Compute Engine returns a
73759// nextPageToken that can be used to get the next page of results in
73760// subsequent list requests. Acceptable values are 0 to 500, inclusive.
73761// (Default: 500)
73762func (c *TargetPoolsListCall) MaxResults(maxResults int64) *TargetPoolsListCall {
73763	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
73764	return c
73765}
73766
73767// OrderBy sets the optional parameter "orderBy": Sorts list results by
73768// a certain order. By default, results are returned in alphanumerical
73769// order based on the resource name.
73770//
73771// You can also sort results in descending order based on the creation
73772// timestamp using orderBy="creationTimestamp desc". This sorts results
73773// based on the creationTimestamp field in reverse chronological order
73774// (newest result first). Use this to sort resources like operations so
73775// that the newest operation is returned first.
73776//
73777// Currently, only sorting by name or creationTimestamp desc is
73778// supported.
73779func (c *TargetPoolsListCall) OrderBy(orderBy string) *TargetPoolsListCall {
73780	c.urlParams_.Set("orderBy", orderBy)
73781	return c
73782}
73783
73784// PageToken sets the optional parameter "pageToken": Specifies a page
73785// token to use. Set pageToken to the nextPageToken returned by a
73786// previous list request to get the next page of results.
73787func (c *TargetPoolsListCall) PageToken(pageToken string) *TargetPoolsListCall {
73788	c.urlParams_.Set("pageToken", pageToken)
73789	return c
73790}
73791
73792// Fields allows partial responses to be retrieved. See
73793// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73794// for more information.
73795func (c *TargetPoolsListCall) Fields(s ...googleapi.Field) *TargetPoolsListCall {
73796	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73797	return c
73798}
73799
73800// IfNoneMatch sets the optional parameter which makes the operation
73801// fail if the object's ETag matches the given value. This is useful for
73802// getting updates only after the object has changed since the last
73803// request. Use googleapi.IsNotModified to check whether the response
73804// error from Do is the result of In-None-Match.
73805func (c *TargetPoolsListCall) IfNoneMatch(entityTag string) *TargetPoolsListCall {
73806	c.ifNoneMatch_ = entityTag
73807	return c
73808}
73809
73810// Context sets the context to be used in this call's Do method. Any
73811// pending HTTP request will be aborted if the provided context is
73812// canceled.
73813func (c *TargetPoolsListCall) Context(ctx context.Context) *TargetPoolsListCall {
73814	c.ctx_ = ctx
73815	return c
73816}
73817
73818// Header returns an http.Header that can be modified by the caller to
73819// add HTTP headers to the request.
73820func (c *TargetPoolsListCall) Header() http.Header {
73821	if c.header_ == nil {
73822		c.header_ = make(http.Header)
73823	}
73824	return c.header_
73825}
73826
73827func (c *TargetPoolsListCall) doRequest(alt string) (*http.Response, error) {
73828	reqHeaders := make(http.Header)
73829	for k, v := range c.header_ {
73830		reqHeaders[k] = v
73831	}
73832	reqHeaders.Set("User-Agent", c.s.userAgent())
73833	if c.ifNoneMatch_ != "" {
73834		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73835	}
73836	var body io.Reader = nil
73837	c.urlParams_.Set("alt", alt)
73838	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools")
73839	urls += "?" + c.urlParams_.Encode()
73840	req, _ := http.NewRequest("GET", urls, body)
73841	req.Header = reqHeaders
73842	googleapi.Expand(req.URL, map[string]string{
73843		"project": c.project,
73844		"region":  c.region,
73845	})
73846	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73847}
73848
73849// Do executes the "compute.targetPools.list" call.
73850// Exactly one of *TargetPoolList or error will be non-nil. Any non-2xx
73851// status code is an error. Response headers are in either
73852// *TargetPoolList.ServerResponse.Header or (if a response was returned
73853// at all) in error.(*googleapi.Error).Header. Use
73854// googleapi.IsNotModified to check whether the returned error was
73855// because http.StatusNotModified was returned.
73856func (c *TargetPoolsListCall) Do(opts ...googleapi.CallOption) (*TargetPoolList, error) {
73857	gensupport.SetOptions(c.urlParams_, opts...)
73858	res, err := c.doRequest("json")
73859	if res != nil && res.StatusCode == http.StatusNotModified {
73860		if res.Body != nil {
73861			res.Body.Close()
73862		}
73863		return nil, &googleapi.Error{
73864			Code:   res.StatusCode,
73865			Header: res.Header,
73866		}
73867	}
73868	if err != nil {
73869		return nil, err
73870	}
73871	defer googleapi.CloseBody(res)
73872	if err := googleapi.CheckResponse(res); err != nil {
73873		return nil, err
73874	}
73875	ret := &TargetPoolList{
73876		ServerResponse: googleapi.ServerResponse{
73877			Header:         res.Header,
73878			HTTPStatusCode: res.StatusCode,
73879		},
73880	}
73881	target := &ret
73882	if err := gensupport.DecodeResponse(target, res); err != nil {
73883		return nil, err
73884	}
73885	return ret, nil
73886	// {
73887	//   "description": "Retrieves a list of target pools available to the specified project and region.",
73888	//   "httpMethod": "GET",
73889	//   "id": "compute.targetPools.list",
73890	//   "parameterOrder": [
73891	//     "project",
73892	//     "region"
73893	//   ],
73894	//   "parameters": {
73895	//     "filter": {
73896	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
73897	//       "location": "query",
73898	//       "type": "string"
73899	//     },
73900	//     "maxResults": {
73901	//       "default": "500",
73902	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
73903	//       "format": "uint32",
73904	//       "location": "query",
73905	//       "minimum": "0",
73906	//       "type": "integer"
73907	//     },
73908	//     "orderBy": {
73909	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
73910	//       "location": "query",
73911	//       "type": "string"
73912	//     },
73913	//     "pageToken": {
73914	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
73915	//       "location": "query",
73916	//       "type": "string"
73917	//     },
73918	//     "project": {
73919	//       "description": "Project ID for this request.",
73920	//       "location": "path",
73921	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73922	//       "required": true,
73923	//       "type": "string"
73924	//     },
73925	//     "region": {
73926	//       "description": "Name of the region scoping this request.",
73927	//       "location": "path",
73928	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73929	//       "required": true,
73930	//       "type": "string"
73931	//     }
73932	//   },
73933	//   "path": "{project}/regions/{region}/targetPools",
73934	//   "response": {
73935	//     "$ref": "TargetPoolList"
73936	//   },
73937	//   "scopes": [
73938	//     "https://www.googleapis.com/auth/cloud-platform",
73939	//     "https://www.googleapis.com/auth/compute",
73940	//     "https://www.googleapis.com/auth/compute.readonly"
73941	//   ]
73942	// }
73943
73944}
73945
73946// Pages invokes f for each page of results.
73947// A non-nil error returned from f will halt the iteration.
73948// The provided context supersedes any context provided to the Context method.
73949func (c *TargetPoolsListCall) Pages(ctx context.Context, f func(*TargetPoolList) error) error {
73950	c.ctx_ = ctx
73951	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
73952	for {
73953		x, err := c.Do()
73954		if err != nil {
73955			return err
73956		}
73957		if err := f(x); err != nil {
73958			return err
73959		}
73960		if x.NextPageToken == "" {
73961			return nil
73962		}
73963		c.PageToken(x.NextPageToken)
73964	}
73965}
73966
73967// method id "compute.targetPools.removeHealthCheck":
73968
73969type TargetPoolsRemoveHealthCheckCall struct {
73970	s                                   *Service
73971	project                             string
73972	region                              string
73973	targetPool                          string
73974	targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest
73975	urlParams_                          gensupport.URLParams
73976	ctx_                                context.Context
73977	header_                             http.Header
73978}
73979
73980// RemoveHealthCheck: Removes health check URL from a target pool.
73981// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeHealthCheck
73982func (r *TargetPoolsService) RemoveHealthCheck(project string, region string, targetPool string, targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest) *TargetPoolsRemoveHealthCheckCall {
73983	c := &TargetPoolsRemoveHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73984	c.project = project
73985	c.region = region
73986	c.targetPool = targetPool
73987	c.targetpoolsremovehealthcheckrequest = targetpoolsremovehealthcheckrequest
73988	return c
73989}
73990
73991// RequestId sets the optional parameter "requestId": An optional
73992// request ID to identify requests. Specify a unique request ID so that
73993// if you must retry your request, the server will know to ignore the
73994// request if it has already been completed.
73995//
73996// For example, consider a situation where you make an initial request
73997// and the request times out. If you make the request again with the
73998// same request ID, the server can check if original operation with the
73999// same request ID was received, and if so, will ignore the second
74000// request. This prevents clients from accidentally creating duplicate
74001// commitments.
74002//
74003// The request ID must be a valid UUID with the exception that zero UUID
74004// is not supported (00000000-0000-0000-0000-000000000000).
74005func (c *TargetPoolsRemoveHealthCheckCall) RequestId(requestId string) *TargetPoolsRemoveHealthCheckCall {
74006	c.urlParams_.Set("requestId", requestId)
74007	return c
74008}
74009
74010// Fields allows partial responses to be retrieved. See
74011// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74012// for more information.
74013func (c *TargetPoolsRemoveHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveHealthCheckCall {
74014	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74015	return c
74016}
74017
74018// Context sets the context to be used in this call's Do method. Any
74019// pending HTTP request will be aborted if the provided context is
74020// canceled.
74021func (c *TargetPoolsRemoveHealthCheckCall) Context(ctx context.Context) *TargetPoolsRemoveHealthCheckCall {
74022	c.ctx_ = ctx
74023	return c
74024}
74025
74026// Header returns an http.Header that can be modified by the caller to
74027// add HTTP headers to the request.
74028func (c *TargetPoolsRemoveHealthCheckCall) Header() http.Header {
74029	if c.header_ == nil {
74030		c.header_ = make(http.Header)
74031	}
74032	return c.header_
74033}
74034
74035func (c *TargetPoolsRemoveHealthCheckCall) doRequest(alt string) (*http.Response, error) {
74036	reqHeaders := make(http.Header)
74037	for k, v := range c.header_ {
74038		reqHeaders[k] = v
74039	}
74040	reqHeaders.Set("User-Agent", c.s.userAgent())
74041	var body io.Reader = nil
74042	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremovehealthcheckrequest)
74043	if err != nil {
74044		return nil, err
74045	}
74046	reqHeaders.Set("Content-Type", "application/json")
74047	c.urlParams_.Set("alt", alt)
74048	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck")
74049	urls += "?" + c.urlParams_.Encode()
74050	req, _ := http.NewRequest("POST", urls, body)
74051	req.Header = reqHeaders
74052	googleapi.Expand(req.URL, map[string]string{
74053		"project":    c.project,
74054		"region":     c.region,
74055		"targetPool": c.targetPool,
74056	})
74057	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74058}
74059
74060// Do executes the "compute.targetPools.removeHealthCheck" call.
74061// Exactly one of *Operation or error will be non-nil. Any non-2xx
74062// status code is an error. Response headers are in either
74063// *Operation.ServerResponse.Header or (if a response was returned at
74064// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74065// to check whether the returned error was because
74066// http.StatusNotModified was returned.
74067func (c *TargetPoolsRemoveHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74068	gensupport.SetOptions(c.urlParams_, opts...)
74069	res, err := c.doRequest("json")
74070	if res != nil && res.StatusCode == http.StatusNotModified {
74071		if res.Body != nil {
74072			res.Body.Close()
74073		}
74074		return nil, &googleapi.Error{
74075			Code:   res.StatusCode,
74076			Header: res.Header,
74077		}
74078	}
74079	if err != nil {
74080		return nil, err
74081	}
74082	defer googleapi.CloseBody(res)
74083	if err := googleapi.CheckResponse(res); err != nil {
74084		return nil, err
74085	}
74086	ret := &Operation{
74087		ServerResponse: googleapi.ServerResponse{
74088			Header:         res.Header,
74089			HTTPStatusCode: res.StatusCode,
74090		},
74091	}
74092	target := &ret
74093	if err := gensupport.DecodeResponse(target, res); err != nil {
74094		return nil, err
74095	}
74096	return ret, nil
74097	// {
74098	//   "description": "Removes health check URL from a target pool.",
74099	//   "httpMethod": "POST",
74100	//   "id": "compute.targetPools.removeHealthCheck",
74101	//   "parameterOrder": [
74102	//     "project",
74103	//     "region",
74104	//     "targetPool"
74105	//   ],
74106	//   "parameters": {
74107	//     "project": {
74108	//       "description": "Project ID for this request.",
74109	//       "location": "path",
74110	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74111	//       "required": true,
74112	//       "type": "string"
74113	//     },
74114	//     "region": {
74115	//       "description": "Name of the region for this request.",
74116	//       "location": "path",
74117	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
74118	//       "required": true,
74119	//       "type": "string"
74120	//     },
74121	//     "requestId": {
74122	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74123	//       "location": "query",
74124	//       "type": "string"
74125	//     },
74126	//     "targetPool": {
74127	//       "description": "Name of the target pool to remove health checks from.",
74128	//       "location": "path",
74129	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
74130	//       "required": true,
74131	//       "type": "string"
74132	//     }
74133	//   },
74134	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck",
74135	//   "request": {
74136	//     "$ref": "TargetPoolsRemoveHealthCheckRequest"
74137	//   },
74138	//   "response": {
74139	//     "$ref": "Operation"
74140	//   },
74141	//   "scopes": [
74142	//     "https://www.googleapis.com/auth/cloud-platform",
74143	//     "https://www.googleapis.com/auth/compute"
74144	//   ]
74145	// }
74146
74147}
74148
74149// method id "compute.targetPools.removeInstance":
74150
74151type TargetPoolsRemoveInstanceCall struct {
74152	s                                *Service
74153	project                          string
74154	region                           string
74155	targetPool                       string
74156	targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest
74157	urlParams_                       gensupport.URLParams
74158	ctx_                             context.Context
74159	header_                          http.Header
74160}
74161
74162// RemoveInstance: Removes instance URL from a target pool.
74163// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeInstance
74164func (r *TargetPoolsService) RemoveInstance(project string, region string, targetPool string, targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest) *TargetPoolsRemoveInstanceCall {
74165	c := &TargetPoolsRemoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74166	c.project = project
74167	c.region = region
74168	c.targetPool = targetPool
74169	c.targetpoolsremoveinstancerequest = targetpoolsremoveinstancerequest
74170	return c
74171}
74172
74173// RequestId sets the optional parameter "requestId": An optional
74174// request ID to identify requests. Specify a unique request ID so that
74175// if you must retry your request, the server will know to ignore the
74176// request if it has already been completed.
74177//
74178// For example, consider a situation where you make an initial request
74179// and the request times out. If you make the request again with the
74180// same request ID, the server can check if original operation with the
74181// same request ID was received, and if so, will ignore the second
74182// request. This prevents clients from accidentally creating duplicate
74183// commitments.
74184//
74185// The request ID must be a valid UUID with the exception that zero UUID
74186// is not supported (00000000-0000-0000-0000-000000000000).
74187func (c *TargetPoolsRemoveInstanceCall) RequestId(requestId string) *TargetPoolsRemoveInstanceCall {
74188	c.urlParams_.Set("requestId", requestId)
74189	return c
74190}
74191
74192// Fields allows partial responses to be retrieved. See
74193// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74194// for more information.
74195func (c *TargetPoolsRemoveInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveInstanceCall {
74196	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74197	return c
74198}
74199
74200// Context sets the context to be used in this call's Do method. Any
74201// pending HTTP request will be aborted if the provided context is
74202// canceled.
74203func (c *TargetPoolsRemoveInstanceCall) Context(ctx context.Context) *TargetPoolsRemoveInstanceCall {
74204	c.ctx_ = ctx
74205	return c
74206}
74207
74208// Header returns an http.Header that can be modified by the caller to
74209// add HTTP headers to the request.
74210func (c *TargetPoolsRemoveInstanceCall) Header() http.Header {
74211	if c.header_ == nil {
74212		c.header_ = make(http.Header)
74213	}
74214	return c.header_
74215}
74216
74217func (c *TargetPoolsRemoveInstanceCall) doRequest(alt string) (*http.Response, error) {
74218	reqHeaders := make(http.Header)
74219	for k, v := range c.header_ {
74220		reqHeaders[k] = v
74221	}
74222	reqHeaders.Set("User-Agent", c.s.userAgent())
74223	var body io.Reader = nil
74224	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremoveinstancerequest)
74225	if err != nil {
74226		return nil, err
74227	}
74228	reqHeaders.Set("Content-Type", "application/json")
74229	c.urlParams_.Set("alt", alt)
74230	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/removeInstance")
74231	urls += "?" + c.urlParams_.Encode()
74232	req, _ := http.NewRequest("POST", urls, body)
74233	req.Header = reqHeaders
74234	googleapi.Expand(req.URL, map[string]string{
74235		"project":    c.project,
74236		"region":     c.region,
74237		"targetPool": c.targetPool,
74238	})
74239	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74240}
74241
74242// Do executes the "compute.targetPools.removeInstance" call.
74243// Exactly one of *Operation or error will be non-nil. Any non-2xx
74244// status code is an error. Response headers are in either
74245// *Operation.ServerResponse.Header or (if a response was returned at
74246// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74247// to check whether the returned error was because
74248// http.StatusNotModified was returned.
74249func (c *TargetPoolsRemoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74250	gensupport.SetOptions(c.urlParams_, opts...)
74251	res, err := c.doRequest("json")
74252	if res != nil && res.StatusCode == http.StatusNotModified {
74253		if res.Body != nil {
74254			res.Body.Close()
74255		}
74256		return nil, &googleapi.Error{
74257			Code:   res.StatusCode,
74258			Header: res.Header,
74259		}
74260	}
74261	if err != nil {
74262		return nil, err
74263	}
74264	defer googleapi.CloseBody(res)
74265	if err := googleapi.CheckResponse(res); err != nil {
74266		return nil, err
74267	}
74268	ret := &Operation{
74269		ServerResponse: googleapi.ServerResponse{
74270			Header:         res.Header,
74271			HTTPStatusCode: res.StatusCode,
74272		},
74273	}
74274	target := &ret
74275	if err := gensupport.DecodeResponse(target, res); err != nil {
74276		return nil, err
74277	}
74278	return ret, nil
74279	// {
74280	//   "description": "Removes instance URL from a target pool.",
74281	//   "httpMethod": "POST",
74282	//   "id": "compute.targetPools.removeInstance",
74283	//   "parameterOrder": [
74284	//     "project",
74285	//     "region",
74286	//     "targetPool"
74287	//   ],
74288	//   "parameters": {
74289	//     "project": {
74290	//       "description": "Project ID for this request.",
74291	//       "location": "path",
74292	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74293	//       "required": true,
74294	//       "type": "string"
74295	//     },
74296	//     "region": {
74297	//       "description": "Name of the region scoping this request.",
74298	//       "location": "path",
74299	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
74300	//       "required": true,
74301	//       "type": "string"
74302	//     },
74303	//     "requestId": {
74304	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74305	//       "location": "query",
74306	//       "type": "string"
74307	//     },
74308	//     "targetPool": {
74309	//       "description": "Name of the TargetPool resource to remove instances from.",
74310	//       "location": "path",
74311	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
74312	//       "required": true,
74313	//       "type": "string"
74314	//     }
74315	//   },
74316	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/removeInstance",
74317	//   "request": {
74318	//     "$ref": "TargetPoolsRemoveInstanceRequest"
74319	//   },
74320	//   "response": {
74321	//     "$ref": "Operation"
74322	//   },
74323	//   "scopes": [
74324	//     "https://www.googleapis.com/auth/cloud-platform",
74325	//     "https://www.googleapis.com/auth/compute"
74326	//   ]
74327	// }
74328
74329}
74330
74331// method id "compute.targetPools.setBackup":
74332
74333type TargetPoolsSetBackupCall struct {
74334	s               *Service
74335	project         string
74336	region          string
74337	targetPool      string
74338	targetreference *TargetReference
74339	urlParams_      gensupport.URLParams
74340	ctx_            context.Context
74341	header_         http.Header
74342}
74343
74344// SetBackup: Changes a backup target pool's configurations.
74345// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/setBackup
74346func (r *TargetPoolsService) SetBackup(project string, region string, targetPool string, targetreference *TargetReference) *TargetPoolsSetBackupCall {
74347	c := &TargetPoolsSetBackupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74348	c.project = project
74349	c.region = region
74350	c.targetPool = targetPool
74351	c.targetreference = targetreference
74352	return c
74353}
74354
74355// FailoverRatio sets the optional parameter "failoverRatio": New
74356// failoverRatio value for the target pool.
74357func (c *TargetPoolsSetBackupCall) FailoverRatio(failoverRatio float64) *TargetPoolsSetBackupCall {
74358	c.urlParams_.Set("failoverRatio", fmt.Sprint(failoverRatio))
74359	return c
74360}
74361
74362// RequestId sets the optional parameter "requestId": An optional
74363// request ID to identify requests. Specify a unique request ID so that
74364// if you must retry your request, the server will know to ignore the
74365// request if it has already been completed.
74366//
74367// For example, consider a situation where you make an initial request
74368// and the request times out. If you make the request again with the
74369// same request ID, the server can check if original operation with the
74370// same request ID was received, and if so, will ignore the second
74371// request. This prevents clients from accidentally creating duplicate
74372// commitments.
74373//
74374// The request ID must be a valid UUID with the exception that zero UUID
74375// is not supported (00000000-0000-0000-0000-000000000000).
74376func (c *TargetPoolsSetBackupCall) RequestId(requestId string) *TargetPoolsSetBackupCall {
74377	c.urlParams_.Set("requestId", requestId)
74378	return c
74379}
74380
74381// Fields allows partial responses to be retrieved. See
74382// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74383// for more information.
74384func (c *TargetPoolsSetBackupCall) Fields(s ...googleapi.Field) *TargetPoolsSetBackupCall {
74385	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74386	return c
74387}
74388
74389// Context sets the context to be used in this call's Do method. Any
74390// pending HTTP request will be aborted if the provided context is
74391// canceled.
74392func (c *TargetPoolsSetBackupCall) Context(ctx context.Context) *TargetPoolsSetBackupCall {
74393	c.ctx_ = ctx
74394	return c
74395}
74396
74397// Header returns an http.Header that can be modified by the caller to
74398// add HTTP headers to the request.
74399func (c *TargetPoolsSetBackupCall) Header() http.Header {
74400	if c.header_ == nil {
74401		c.header_ = make(http.Header)
74402	}
74403	return c.header_
74404}
74405
74406func (c *TargetPoolsSetBackupCall) doRequest(alt string) (*http.Response, error) {
74407	reqHeaders := make(http.Header)
74408	for k, v := range c.header_ {
74409		reqHeaders[k] = v
74410	}
74411	reqHeaders.Set("User-Agent", c.s.userAgent())
74412	var body io.Reader = nil
74413	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
74414	if err != nil {
74415		return nil, err
74416	}
74417	reqHeaders.Set("Content-Type", "application/json")
74418	c.urlParams_.Set("alt", alt)
74419	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/setBackup")
74420	urls += "?" + c.urlParams_.Encode()
74421	req, _ := http.NewRequest("POST", urls, body)
74422	req.Header = reqHeaders
74423	googleapi.Expand(req.URL, map[string]string{
74424		"project":    c.project,
74425		"region":     c.region,
74426		"targetPool": c.targetPool,
74427	})
74428	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74429}
74430
74431// Do executes the "compute.targetPools.setBackup" call.
74432// Exactly one of *Operation or error will be non-nil. Any non-2xx
74433// status code is an error. Response headers are in either
74434// *Operation.ServerResponse.Header or (if a response was returned at
74435// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74436// to check whether the returned error was because
74437// http.StatusNotModified was returned.
74438func (c *TargetPoolsSetBackupCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74439	gensupport.SetOptions(c.urlParams_, opts...)
74440	res, err := c.doRequest("json")
74441	if res != nil && res.StatusCode == http.StatusNotModified {
74442		if res.Body != nil {
74443			res.Body.Close()
74444		}
74445		return nil, &googleapi.Error{
74446			Code:   res.StatusCode,
74447			Header: res.Header,
74448		}
74449	}
74450	if err != nil {
74451		return nil, err
74452	}
74453	defer googleapi.CloseBody(res)
74454	if err := googleapi.CheckResponse(res); err != nil {
74455		return nil, err
74456	}
74457	ret := &Operation{
74458		ServerResponse: googleapi.ServerResponse{
74459			Header:         res.Header,
74460			HTTPStatusCode: res.StatusCode,
74461		},
74462	}
74463	target := &ret
74464	if err := gensupport.DecodeResponse(target, res); err != nil {
74465		return nil, err
74466	}
74467	return ret, nil
74468	// {
74469	//   "description": "Changes a backup target pool's configurations.",
74470	//   "httpMethod": "POST",
74471	//   "id": "compute.targetPools.setBackup",
74472	//   "parameterOrder": [
74473	//     "project",
74474	//     "region",
74475	//     "targetPool"
74476	//   ],
74477	//   "parameters": {
74478	//     "failoverRatio": {
74479	//       "description": "New failoverRatio value for the target pool.",
74480	//       "format": "float",
74481	//       "location": "query",
74482	//       "type": "number"
74483	//     },
74484	//     "project": {
74485	//       "description": "Project ID for this request.",
74486	//       "location": "path",
74487	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74488	//       "required": true,
74489	//       "type": "string"
74490	//     },
74491	//     "region": {
74492	//       "description": "Name of the region scoping this request.",
74493	//       "location": "path",
74494	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
74495	//       "required": true,
74496	//       "type": "string"
74497	//     },
74498	//     "requestId": {
74499	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74500	//       "location": "query",
74501	//       "type": "string"
74502	//     },
74503	//     "targetPool": {
74504	//       "description": "Name of the TargetPool resource to set a backup pool for.",
74505	//       "location": "path",
74506	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
74507	//       "required": true,
74508	//       "type": "string"
74509	//     }
74510	//   },
74511	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/setBackup",
74512	//   "request": {
74513	//     "$ref": "TargetReference"
74514	//   },
74515	//   "response": {
74516	//     "$ref": "Operation"
74517	//   },
74518	//   "scopes": [
74519	//     "https://www.googleapis.com/auth/cloud-platform",
74520	//     "https://www.googleapis.com/auth/compute"
74521	//   ]
74522	// }
74523
74524}
74525
74526// method id "compute.targetSslProxies.delete":
74527
74528type TargetSslProxiesDeleteCall struct {
74529	s              *Service
74530	project        string
74531	targetSslProxy string
74532	urlParams_     gensupport.URLParams
74533	ctx_           context.Context
74534	header_        http.Header
74535}
74536
74537// Delete: Deletes the specified TargetSslProxy resource.
74538func (r *TargetSslProxiesService) Delete(project string, targetSslProxy string) *TargetSslProxiesDeleteCall {
74539	c := &TargetSslProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74540	c.project = project
74541	c.targetSslProxy = targetSslProxy
74542	return c
74543}
74544
74545// RequestId sets the optional parameter "requestId": An optional
74546// request ID to identify requests. Specify a unique request ID so that
74547// if you must retry your request, the server will know to ignore the
74548// request if it has already been completed.
74549//
74550// For example, consider a situation where you make an initial request
74551// and the request times out. If you make the request again with the
74552// same request ID, the server can check if original operation with the
74553// same request ID was received, and if so, will ignore the second
74554// request. This prevents clients from accidentally creating duplicate
74555// commitments.
74556//
74557// The request ID must be a valid UUID with the exception that zero UUID
74558// is not supported (00000000-0000-0000-0000-000000000000).
74559func (c *TargetSslProxiesDeleteCall) RequestId(requestId string) *TargetSslProxiesDeleteCall {
74560	c.urlParams_.Set("requestId", requestId)
74561	return c
74562}
74563
74564// Fields allows partial responses to be retrieved. See
74565// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74566// for more information.
74567func (c *TargetSslProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetSslProxiesDeleteCall {
74568	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74569	return c
74570}
74571
74572// Context sets the context to be used in this call's Do method. Any
74573// pending HTTP request will be aborted if the provided context is
74574// canceled.
74575func (c *TargetSslProxiesDeleteCall) Context(ctx context.Context) *TargetSslProxiesDeleteCall {
74576	c.ctx_ = ctx
74577	return c
74578}
74579
74580// Header returns an http.Header that can be modified by the caller to
74581// add HTTP headers to the request.
74582func (c *TargetSslProxiesDeleteCall) Header() http.Header {
74583	if c.header_ == nil {
74584		c.header_ = make(http.Header)
74585	}
74586	return c.header_
74587}
74588
74589func (c *TargetSslProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
74590	reqHeaders := make(http.Header)
74591	for k, v := range c.header_ {
74592		reqHeaders[k] = v
74593	}
74594	reqHeaders.Set("User-Agent", c.s.userAgent())
74595	var body io.Reader = nil
74596	c.urlParams_.Set("alt", alt)
74597	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}")
74598	urls += "?" + c.urlParams_.Encode()
74599	req, _ := http.NewRequest("DELETE", urls, body)
74600	req.Header = reqHeaders
74601	googleapi.Expand(req.URL, map[string]string{
74602		"project":        c.project,
74603		"targetSslProxy": c.targetSslProxy,
74604	})
74605	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74606}
74607
74608// Do executes the "compute.targetSslProxies.delete" call.
74609// Exactly one of *Operation or error will be non-nil. Any non-2xx
74610// status code is an error. Response headers are in either
74611// *Operation.ServerResponse.Header or (if a response was returned at
74612// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74613// to check whether the returned error was because
74614// http.StatusNotModified was returned.
74615func (c *TargetSslProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74616	gensupport.SetOptions(c.urlParams_, opts...)
74617	res, err := c.doRequest("json")
74618	if res != nil && res.StatusCode == http.StatusNotModified {
74619		if res.Body != nil {
74620			res.Body.Close()
74621		}
74622		return nil, &googleapi.Error{
74623			Code:   res.StatusCode,
74624			Header: res.Header,
74625		}
74626	}
74627	if err != nil {
74628		return nil, err
74629	}
74630	defer googleapi.CloseBody(res)
74631	if err := googleapi.CheckResponse(res); err != nil {
74632		return nil, err
74633	}
74634	ret := &Operation{
74635		ServerResponse: googleapi.ServerResponse{
74636			Header:         res.Header,
74637			HTTPStatusCode: res.StatusCode,
74638		},
74639	}
74640	target := &ret
74641	if err := gensupport.DecodeResponse(target, res); err != nil {
74642		return nil, err
74643	}
74644	return ret, nil
74645	// {
74646	//   "description": "Deletes the specified TargetSslProxy resource.",
74647	//   "httpMethod": "DELETE",
74648	//   "id": "compute.targetSslProxies.delete",
74649	//   "parameterOrder": [
74650	//     "project",
74651	//     "targetSslProxy"
74652	//   ],
74653	//   "parameters": {
74654	//     "project": {
74655	//       "description": "Project ID for this request.",
74656	//       "location": "path",
74657	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74658	//       "required": true,
74659	//       "type": "string"
74660	//     },
74661	//     "requestId": {
74662	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74663	//       "location": "query",
74664	//       "type": "string"
74665	//     },
74666	//     "targetSslProxy": {
74667	//       "description": "Name of the TargetSslProxy resource to delete.",
74668	//       "location": "path",
74669	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
74670	//       "required": true,
74671	//       "type": "string"
74672	//     }
74673	//   },
74674	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}",
74675	//   "response": {
74676	//     "$ref": "Operation"
74677	//   },
74678	//   "scopes": [
74679	//     "https://www.googleapis.com/auth/cloud-platform",
74680	//     "https://www.googleapis.com/auth/compute"
74681	//   ]
74682	// }
74683
74684}
74685
74686// method id "compute.targetSslProxies.get":
74687
74688type TargetSslProxiesGetCall struct {
74689	s              *Service
74690	project        string
74691	targetSslProxy string
74692	urlParams_     gensupport.URLParams
74693	ifNoneMatch_   string
74694	ctx_           context.Context
74695	header_        http.Header
74696}
74697
74698// Get: Returns the specified TargetSslProxy resource. Get a list of
74699// available target SSL proxies by making a list() request.
74700func (r *TargetSslProxiesService) Get(project string, targetSslProxy string) *TargetSslProxiesGetCall {
74701	c := &TargetSslProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74702	c.project = project
74703	c.targetSslProxy = targetSslProxy
74704	return c
74705}
74706
74707// Fields allows partial responses to be retrieved. See
74708// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74709// for more information.
74710func (c *TargetSslProxiesGetCall) Fields(s ...googleapi.Field) *TargetSslProxiesGetCall {
74711	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74712	return c
74713}
74714
74715// IfNoneMatch sets the optional parameter which makes the operation
74716// fail if the object's ETag matches the given value. This is useful for
74717// getting updates only after the object has changed since the last
74718// request. Use googleapi.IsNotModified to check whether the response
74719// error from Do is the result of In-None-Match.
74720func (c *TargetSslProxiesGetCall) IfNoneMatch(entityTag string) *TargetSslProxiesGetCall {
74721	c.ifNoneMatch_ = entityTag
74722	return c
74723}
74724
74725// Context sets the context to be used in this call's Do method. Any
74726// pending HTTP request will be aborted if the provided context is
74727// canceled.
74728func (c *TargetSslProxiesGetCall) Context(ctx context.Context) *TargetSslProxiesGetCall {
74729	c.ctx_ = ctx
74730	return c
74731}
74732
74733// Header returns an http.Header that can be modified by the caller to
74734// add HTTP headers to the request.
74735func (c *TargetSslProxiesGetCall) Header() http.Header {
74736	if c.header_ == nil {
74737		c.header_ = make(http.Header)
74738	}
74739	return c.header_
74740}
74741
74742func (c *TargetSslProxiesGetCall) doRequest(alt string) (*http.Response, error) {
74743	reqHeaders := make(http.Header)
74744	for k, v := range c.header_ {
74745		reqHeaders[k] = v
74746	}
74747	reqHeaders.Set("User-Agent", c.s.userAgent())
74748	if c.ifNoneMatch_ != "" {
74749		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74750	}
74751	var body io.Reader = nil
74752	c.urlParams_.Set("alt", alt)
74753	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}")
74754	urls += "?" + c.urlParams_.Encode()
74755	req, _ := http.NewRequest("GET", urls, body)
74756	req.Header = reqHeaders
74757	googleapi.Expand(req.URL, map[string]string{
74758		"project":        c.project,
74759		"targetSslProxy": c.targetSslProxy,
74760	})
74761	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74762}
74763
74764// Do executes the "compute.targetSslProxies.get" call.
74765// Exactly one of *TargetSslProxy or error will be non-nil. Any non-2xx
74766// status code is an error. Response headers are in either
74767// *TargetSslProxy.ServerResponse.Header or (if a response was returned
74768// at all) in error.(*googleapi.Error).Header. Use
74769// googleapi.IsNotModified to check whether the returned error was
74770// because http.StatusNotModified was returned.
74771func (c *TargetSslProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetSslProxy, error) {
74772	gensupport.SetOptions(c.urlParams_, opts...)
74773	res, err := c.doRequest("json")
74774	if res != nil && res.StatusCode == http.StatusNotModified {
74775		if res.Body != nil {
74776			res.Body.Close()
74777		}
74778		return nil, &googleapi.Error{
74779			Code:   res.StatusCode,
74780			Header: res.Header,
74781		}
74782	}
74783	if err != nil {
74784		return nil, err
74785	}
74786	defer googleapi.CloseBody(res)
74787	if err := googleapi.CheckResponse(res); err != nil {
74788		return nil, err
74789	}
74790	ret := &TargetSslProxy{
74791		ServerResponse: googleapi.ServerResponse{
74792			Header:         res.Header,
74793			HTTPStatusCode: res.StatusCode,
74794		},
74795	}
74796	target := &ret
74797	if err := gensupport.DecodeResponse(target, res); err != nil {
74798		return nil, err
74799	}
74800	return ret, nil
74801	// {
74802	//   "description": "Returns the specified TargetSslProxy resource. Get a list of available target SSL proxies by making a list() request.",
74803	//   "httpMethod": "GET",
74804	//   "id": "compute.targetSslProxies.get",
74805	//   "parameterOrder": [
74806	//     "project",
74807	//     "targetSslProxy"
74808	//   ],
74809	//   "parameters": {
74810	//     "project": {
74811	//       "description": "Project ID for this request.",
74812	//       "location": "path",
74813	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74814	//       "required": true,
74815	//       "type": "string"
74816	//     },
74817	//     "targetSslProxy": {
74818	//       "description": "Name of the TargetSslProxy resource to return.",
74819	//       "location": "path",
74820	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
74821	//       "required": true,
74822	//       "type": "string"
74823	//     }
74824	//   },
74825	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}",
74826	//   "response": {
74827	//     "$ref": "TargetSslProxy"
74828	//   },
74829	//   "scopes": [
74830	//     "https://www.googleapis.com/auth/cloud-platform",
74831	//     "https://www.googleapis.com/auth/compute",
74832	//     "https://www.googleapis.com/auth/compute.readonly"
74833	//   ]
74834	// }
74835
74836}
74837
74838// method id "compute.targetSslProxies.insert":
74839
74840type TargetSslProxiesInsertCall struct {
74841	s              *Service
74842	project        string
74843	targetsslproxy *TargetSslProxy
74844	urlParams_     gensupport.URLParams
74845	ctx_           context.Context
74846	header_        http.Header
74847}
74848
74849// Insert: Creates a TargetSslProxy resource in the specified project
74850// using the data included in the request.
74851func (r *TargetSslProxiesService) Insert(project string, targetsslproxy *TargetSslProxy) *TargetSslProxiesInsertCall {
74852	c := &TargetSslProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74853	c.project = project
74854	c.targetsslproxy = targetsslproxy
74855	return c
74856}
74857
74858// RequestId sets the optional parameter "requestId": An optional
74859// request ID to identify requests. Specify a unique request ID so that
74860// if you must retry your request, the server will know to ignore the
74861// request if it has already been completed.
74862//
74863// For example, consider a situation where you make an initial request
74864// and the request times out. If you make the request again with the
74865// same request ID, the server can check if original operation with the
74866// same request ID was received, and if so, will ignore the second
74867// request. This prevents clients from accidentally creating duplicate
74868// commitments.
74869//
74870// The request ID must be a valid UUID with the exception that zero UUID
74871// is not supported (00000000-0000-0000-0000-000000000000).
74872func (c *TargetSslProxiesInsertCall) RequestId(requestId string) *TargetSslProxiesInsertCall {
74873	c.urlParams_.Set("requestId", requestId)
74874	return c
74875}
74876
74877// Fields allows partial responses to be retrieved. See
74878// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74879// for more information.
74880func (c *TargetSslProxiesInsertCall) Fields(s ...googleapi.Field) *TargetSslProxiesInsertCall {
74881	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74882	return c
74883}
74884
74885// Context sets the context to be used in this call's Do method. Any
74886// pending HTTP request will be aborted if the provided context is
74887// canceled.
74888func (c *TargetSslProxiesInsertCall) Context(ctx context.Context) *TargetSslProxiesInsertCall {
74889	c.ctx_ = ctx
74890	return c
74891}
74892
74893// Header returns an http.Header that can be modified by the caller to
74894// add HTTP headers to the request.
74895func (c *TargetSslProxiesInsertCall) Header() http.Header {
74896	if c.header_ == nil {
74897		c.header_ = make(http.Header)
74898	}
74899	return c.header_
74900}
74901
74902func (c *TargetSslProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
74903	reqHeaders := make(http.Header)
74904	for k, v := range c.header_ {
74905		reqHeaders[k] = v
74906	}
74907	reqHeaders.Set("User-Agent", c.s.userAgent())
74908	var body io.Reader = nil
74909	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxy)
74910	if err != nil {
74911		return nil, err
74912	}
74913	reqHeaders.Set("Content-Type", "application/json")
74914	c.urlParams_.Set("alt", alt)
74915	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies")
74916	urls += "?" + c.urlParams_.Encode()
74917	req, _ := http.NewRequest("POST", urls, body)
74918	req.Header = reqHeaders
74919	googleapi.Expand(req.URL, map[string]string{
74920		"project": c.project,
74921	})
74922	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74923}
74924
74925// Do executes the "compute.targetSslProxies.insert" call.
74926// Exactly one of *Operation or error will be non-nil. Any non-2xx
74927// status code is an error. Response headers are in either
74928// *Operation.ServerResponse.Header or (if a response was returned at
74929// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74930// to check whether the returned error was because
74931// http.StatusNotModified was returned.
74932func (c *TargetSslProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74933	gensupport.SetOptions(c.urlParams_, opts...)
74934	res, err := c.doRequest("json")
74935	if res != nil && res.StatusCode == http.StatusNotModified {
74936		if res.Body != nil {
74937			res.Body.Close()
74938		}
74939		return nil, &googleapi.Error{
74940			Code:   res.StatusCode,
74941			Header: res.Header,
74942		}
74943	}
74944	if err != nil {
74945		return nil, err
74946	}
74947	defer googleapi.CloseBody(res)
74948	if err := googleapi.CheckResponse(res); err != nil {
74949		return nil, err
74950	}
74951	ret := &Operation{
74952		ServerResponse: googleapi.ServerResponse{
74953			Header:         res.Header,
74954			HTTPStatusCode: res.StatusCode,
74955		},
74956	}
74957	target := &ret
74958	if err := gensupport.DecodeResponse(target, res); err != nil {
74959		return nil, err
74960	}
74961	return ret, nil
74962	// {
74963	//   "description": "Creates a TargetSslProxy resource in the specified project using the data included in the request.",
74964	//   "httpMethod": "POST",
74965	//   "id": "compute.targetSslProxies.insert",
74966	//   "parameterOrder": [
74967	//     "project"
74968	//   ],
74969	//   "parameters": {
74970	//     "project": {
74971	//       "description": "Project ID for this request.",
74972	//       "location": "path",
74973	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74974	//       "required": true,
74975	//       "type": "string"
74976	//     },
74977	//     "requestId": {
74978	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74979	//       "location": "query",
74980	//       "type": "string"
74981	//     }
74982	//   },
74983	//   "path": "{project}/global/targetSslProxies",
74984	//   "request": {
74985	//     "$ref": "TargetSslProxy"
74986	//   },
74987	//   "response": {
74988	//     "$ref": "Operation"
74989	//   },
74990	//   "scopes": [
74991	//     "https://www.googleapis.com/auth/cloud-platform",
74992	//     "https://www.googleapis.com/auth/compute"
74993	//   ]
74994	// }
74995
74996}
74997
74998// method id "compute.targetSslProxies.list":
74999
75000type TargetSslProxiesListCall struct {
75001	s            *Service
75002	project      string
75003	urlParams_   gensupport.URLParams
75004	ifNoneMatch_ string
75005	ctx_         context.Context
75006	header_      http.Header
75007}
75008
75009// List: Retrieves the list of TargetSslProxy resources available to the
75010// specified project.
75011func (r *TargetSslProxiesService) List(project string) *TargetSslProxiesListCall {
75012	c := &TargetSslProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75013	c.project = project
75014	return c
75015}
75016
75017// Filter sets the optional parameter "filter": Sets a filter
75018// {expression} for filtering listed resources. Your {expression} must
75019// be in the format: field_name comparison_string literal_string.
75020//
75021// The field_name is the name of the field you want to compare. Only
75022// atomic field types are supported (string, number, boolean). The
75023// comparison_string must be either eq (equals) or ne (not equals). The
75024// literal_string is the string value to filter to. The literal value
75025// must be valid for the type of field you are filtering by (string,
75026// number, boolean). For string fields, the literal value is interpreted
75027// as a regular expression using RE2 syntax. The literal value must
75028// match the entire field.
75029//
75030// For example, to filter for instances that do not have a name of
75031// example-instance, you would use name ne example-instance.
75032//
75033// You can filter on nested fields. For example, you could filter on
75034// instances that have set the scheduling.automaticRestart field to
75035// true. Use filtering on nested fields to take advantage of labels to
75036// organize and search for results based on label values.
75037//
75038// To filter on multiple expressions, provide each separate expression
75039// within parentheses. For example, (scheduling.automaticRestart eq
75040// true) (zone eq us-central1-f). Multiple expressions are treated as
75041// AND expressions, meaning that resources must match all expressions to
75042// pass the filters.
75043func (c *TargetSslProxiesListCall) Filter(filter string) *TargetSslProxiesListCall {
75044	c.urlParams_.Set("filter", filter)
75045	return c
75046}
75047
75048// MaxResults sets the optional parameter "maxResults": The maximum
75049// number of results per page that should be returned. If the number of
75050// available results is larger than maxResults, Compute Engine returns a
75051// nextPageToken that can be used to get the next page of results in
75052// subsequent list requests. Acceptable values are 0 to 500, inclusive.
75053// (Default: 500)
75054func (c *TargetSslProxiesListCall) MaxResults(maxResults int64) *TargetSslProxiesListCall {
75055	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
75056	return c
75057}
75058
75059// OrderBy sets the optional parameter "orderBy": Sorts list results by
75060// a certain order. By default, results are returned in alphanumerical
75061// order based on the resource name.
75062//
75063// You can also sort results in descending order based on the creation
75064// timestamp using orderBy="creationTimestamp desc". This sorts results
75065// based on the creationTimestamp field in reverse chronological order
75066// (newest result first). Use this to sort resources like operations so
75067// that the newest operation is returned first.
75068//
75069// Currently, only sorting by name or creationTimestamp desc is
75070// supported.
75071func (c *TargetSslProxiesListCall) OrderBy(orderBy string) *TargetSslProxiesListCall {
75072	c.urlParams_.Set("orderBy", orderBy)
75073	return c
75074}
75075
75076// PageToken sets the optional parameter "pageToken": Specifies a page
75077// token to use. Set pageToken to the nextPageToken returned by a
75078// previous list request to get the next page of results.
75079func (c *TargetSslProxiesListCall) PageToken(pageToken string) *TargetSslProxiesListCall {
75080	c.urlParams_.Set("pageToken", pageToken)
75081	return c
75082}
75083
75084// Fields allows partial responses to be retrieved. See
75085// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75086// for more information.
75087func (c *TargetSslProxiesListCall) Fields(s ...googleapi.Field) *TargetSslProxiesListCall {
75088	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75089	return c
75090}
75091
75092// IfNoneMatch sets the optional parameter which makes the operation
75093// fail if the object's ETag matches the given value. This is useful for
75094// getting updates only after the object has changed since the last
75095// request. Use googleapi.IsNotModified to check whether the response
75096// error from Do is the result of In-None-Match.
75097func (c *TargetSslProxiesListCall) IfNoneMatch(entityTag string) *TargetSslProxiesListCall {
75098	c.ifNoneMatch_ = entityTag
75099	return c
75100}
75101
75102// Context sets the context to be used in this call's Do method. Any
75103// pending HTTP request will be aborted if the provided context is
75104// canceled.
75105func (c *TargetSslProxiesListCall) Context(ctx context.Context) *TargetSslProxiesListCall {
75106	c.ctx_ = ctx
75107	return c
75108}
75109
75110// Header returns an http.Header that can be modified by the caller to
75111// add HTTP headers to the request.
75112func (c *TargetSslProxiesListCall) Header() http.Header {
75113	if c.header_ == nil {
75114		c.header_ = make(http.Header)
75115	}
75116	return c.header_
75117}
75118
75119func (c *TargetSslProxiesListCall) doRequest(alt string) (*http.Response, error) {
75120	reqHeaders := make(http.Header)
75121	for k, v := range c.header_ {
75122		reqHeaders[k] = v
75123	}
75124	reqHeaders.Set("User-Agent", c.s.userAgent())
75125	if c.ifNoneMatch_ != "" {
75126		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
75127	}
75128	var body io.Reader = nil
75129	c.urlParams_.Set("alt", alt)
75130	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies")
75131	urls += "?" + c.urlParams_.Encode()
75132	req, _ := http.NewRequest("GET", urls, body)
75133	req.Header = reqHeaders
75134	googleapi.Expand(req.URL, map[string]string{
75135		"project": c.project,
75136	})
75137	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75138}
75139
75140// Do executes the "compute.targetSslProxies.list" call.
75141// Exactly one of *TargetSslProxyList or error will be non-nil. Any
75142// non-2xx status code is an error. Response headers are in either
75143// *TargetSslProxyList.ServerResponse.Header or (if a response was
75144// returned at all) in error.(*googleapi.Error).Header. Use
75145// googleapi.IsNotModified to check whether the returned error was
75146// because http.StatusNotModified was returned.
75147func (c *TargetSslProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetSslProxyList, error) {
75148	gensupport.SetOptions(c.urlParams_, opts...)
75149	res, err := c.doRequest("json")
75150	if res != nil && res.StatusCode == http.StatusNotModified {
75151		if res.Body != nil {
75152			res.Body.Close()
75153		}
75154		return nil, &googleapi.Error{
75155			Code:   res.StatusCode,
75156			Header: res.Header,
75157		}
75158	}
75159	if err != nil {
75160		return nil, err
75161	}
75162	defer googleapi.CloseBody(res)
75163	if err := googleapi.CheckResponse(res); err != nil {
75164		return nil, err
75165	}
75166	ret := &TargetSslProxyList{
75167		ServerResponse: googleapi.ServerResponse{
75168			Header:         res.Header,
75169			HTTPStatusCode: res.StatusCode,
75170		},
75171	}
75172	target := &ret
75173	if err := gensupport.DecodeResponse(target, res); err != nil {
75174		return nil, err
75175	}
75176	return ret, nil
75177	// {
75178	//   "description": "Retrieves the list of TargetSslProxy resources available to the specified project.",
75179	//   "httpMethod": "GET",
75180	//   "id": "compute.targetSslProxies.list",
75181	//   "parameterOrder": [
75182	//     "project"
75183	//   ],
75184	//   "parameters": {
75185	//     "filter": {
75186	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
75187	//       "location": "query",
75188	//       "type": "string"
75189	//     },
75190	//     "maxResults": {
75191	//       "default": "500",
75192	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
75193	//       "format": "uint32",
75194	//       "location": "query",
75195	//       "minimum": "0",
75196	//       "type": "integer"
75197	//     },
75198	//     "orderBy": {
75199	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
75200	//       "location": "query",
75201	//       "type": "string"
75202	//     },
75203	//     "pageToken": {
75204	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
75205	//       "location": "query",
75206	//       "type": "string"
75207	//     },
75208	//     "project": {
75209	//       "description": "Project ID for this request.",
75210	//       "location": "path",
75211	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75212	//       "required": true,
75213	//       "type": "string"
75214	//     }
75215	//   },
75216	//   "path": "{project}/global/targetSslProxies",
75217	//   "response": {
75218	//     "$ref": "TargetSslProxyList"
75219	//   },
75220	//   "scopes": [
75221	//     "https://www.googleapis.com/auth/cloud-platform",
75222	//     "https://www.googleapis.com/auth/compute",
75223	//     "https://www.googleapis.com/auth/compute.readonly"
75224	//   ]
75225	// }
75226
75227}
75228
75229// Pages invokes f for each page of results.
75230// A non-nil error returned from f will halt the iteration.
75231// The provided context supersedes any context provided to the Context method.
75232func (c *TargetSslProxiesListCall) Pages(ctx context.Context, f func(*TargetSslProxyList) error) error {
75233	c.ctx_ = ctx
75234	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
75235	for {
75236		x, err := c.Do()
75237		if err != nil {
75238			return err
75239		}
75240		if err := f(x); err != nil {
75241			return err
75242		}
75243		if x.NextPageToken == "" {
75244			return nil
75245		}
75246		c.PageToken(x.NextPageToken)
75247	}
75248}
75249
75250// method id "compute.targetSslProxies.setBackendService":
75251
75252type TargetSslProxiesSetBackendServiceCall struct {
75253	s                                        *Service
75254	project                                  string
75255	targetSslProxy                           string
75256	targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest
75257	urlParams_                               gensupport.URLParams
75258	ctx_                                     context.Context
75259	header_                                  http.Header
75260}
75261
75262// SetBackendService: Changes the BackendService for TargetSslProxy.
75263func (r *TargetSslProxiesService) SetBackendService(project string, targetSslProxy string, targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest) *TargetSslProxiesSetBackendServiceCall {
75264	c := &TargetSslProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75265	c.project = project
75266	c.targetSslProxy = targetSslProxy
75267	c.targetsslproxiessetbackendservicerequest = targetsslproxiessetbackendservicerequest
75268	return c
75269}
75270
75271// RequestId sets the optional parameter "requestId": An optional
75272// request ID to identify requests. Specify a unique request ID so that
75273// if you must retry your request, the server will know to ignore the
75274// request if it has already been completed.
75275//
75276// For example, consider a situation where you make an initial request
75277// and the request times out. If you make the request again with the
75278// same request ID, the server can check if original operation with the
75279// same request ID was received, and if so, will ignore the second
75280// request. This prevents clients from accidentally creating duplicate
75281// commitments.
75282//
75283// The request ID must be a valid UUID with the exception that zero UUID
75284// is not supported (00000000-0000-0000-0000-000000000000).
75285func (c *TargetSslProxiesSetBackendServiceCall) RequestId(requestId string) *TargetSslProxiesSetBackendServiceCall {
75286	c.urlParams_.Set("requestId", requestId)
75287	return c
75288}
75289
75290// Fields allows partial responses to be retrieved. See
75291// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75292// for more information.
75293func (c *TargetSslProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetBackendServiceCall {
75294	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75295	return c
75296}
75297
75298// Context sets the context to be used in this call's Do method. Any
75299// pending HTTP request will be aborted if the provided context is
75300// canceled.
75301func (c *TargetSslProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetSslProxiesSetBackendServiceCall {
75302	c.ctx_ = ctx
75303	return c
75304}
75305
75306// Header returns an http.Header that can be modified by the caller to
75307// add HTTP headers to the request.
75308func (c *TargetSslProxiesSetBackendServiceCall) Header() http.Header {
75309	if c.header_ == nil {
75310		c.header_ = make(http.Header)
75311	}
75312	return c.header_
75313}
75314
75315func (c *TargetSslProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
75316	reqHeaders := make(http.Header)
75317	for k, v := range c.header_ {
75318		reqHeaders[k] = v
75319	}
75320	reqHeaders.Set("User-Agent", c.s.userAgent())
75321	var body io.Reader = nil
75322	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetbackendservicerequest)
75323	if err != nil {
75324		return nil, err
75325	}
75326	reqHeaders.Set("Content-Type", "application/json")
75327	c.urlParams_.Set("alt", alt)
75328	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setBackendService")
75329	urls += "?" + c.urlParams_.Encode()
75330	req, _ := http.NewRequest("POST", urls, body)
75331	req.Header = reqHeaders
75332	googleapi.Expand(req.URL, map[string]string{
75333		"project":        c.project,
75334		"targetSslProxy": c.targetSslProxy,
75335	})
75336	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75337}
75338
75339// Do executes the "compute.targetSslProxies.setBackendService" call.
75340// Exactly one of *Operation or error will be non-nil. Any non-2xx
75341// status code is an error. Response headers are in either
75342// *Operation.ServerResponse.Header or (if a response was returned at
75343// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75344// to check whether the returned error was because
75345// http.StatusNotModified was returned.
75346func (c *TargetSslProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75347	gensupport.SetOptions(c.urlParams_, opts...)
75348	res, err := c.doRequest("json")
75349	if res != nil && res.StatusCode == http.StatusNotModified {
75350		if res.Body != nil {
75351			res.Body.Close()
75352		}
75353		return nil, &googleapi.Error{
75354			Code:   res.StatusCode,
75355			Header: res.Header,
75356		}
75357	}
75358	if err != nil {
75359		return nil, err
75360	}
75361	defer googleapi.CloseBody(res)
75362	if err := googleapi.CheckResponse(res); err != nil {
75363		return nil, err
75364	}
75365	ret := &Operation{
75366		ServerResponse: googleapi.ServerResponse{
75367			Header:         res.Header,
75368			HTTPStatusCode: res.StatusCode,
75369		},
75370	}
75371	target := &ret
75372	if err := gensupport.DecodeResponse(target, res); err != nil {
75373		return nil, err
75374	}
75375	return ret, nil
75376	// {
75377	//   "description": "Changes the BackendService for TargetSslProxy.",
75378	//   "httpMethod": "POST",
75379	//   "id": "compute.targetSslProxies.setBackendService",
75380	//   "parameterOrder": [
75381	//     "project",
75382	//     "targetSslProxy"
75383	//   ],
75384	//   "parameters": {
75385	//     "project": {
75386	//       "description": "Project ID for this request.",
75387	//       "location": "path",
75388	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75389	//       "required": true,
75390	//       "type": "string"
75391	//     },
75392	//     "requestId": {
75393	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75394	//       "location": "query",
75395	//       "type": "string"
75396	//     },
75397	//     "targetSslProxy": {
75398	//       "description": "Name of the TargetSslProxy resource whose BackendService resource is to be set.",
75399	//       "location": "path",
75400	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
75401	//       "required": true,
75402	//       "type": "string"
75403	//     }
75404	//   },
75405	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setBackendService",
75406	//   "request": {
75407	//     "$ref": "TargetSslProxiesSetBackendServiceRequest"
75408	//   },
75409	//   "response": {
75410	//     "$ref": "Operation"
75411	//   },
75412	//   "scopes": [
75413	//     "https://www.googleapis.com/auth/cloud-platform",
75414	//     "https://www.googleapis.com/auth/compute"
75415	//   ]
75416	// }
75417
75418}
75419
75420// method id "compute.targetSslProxies.setProxyHeader":
75421
75422type TargetSslProxiesSetProxyHeaderCall struct {
75423	s                                     *Service
75424	project                               string
75425	targetSslProxy                        string
75426	targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest
75427	urlParams_                            gensupport.URLParams
75428	ctx_                                  context.Context
75429	header_                               http.Header
75430}
75431
75432// SetProxyHeader: Changes the ProxyHeaderType for TargetSslProxy.
75433func (r *TargetSslProxiesService) SetProxyHeader(project string, targetSslProxy string, targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest) *TargetSslProxiesSetProxyHeaderCall {
75434	c := &TargetSslProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75435	c.project = project
75436	c.targetSslProxy = targetSslProxy
75437	c.targetsslproxiessetproxyheaderrequest = targetsslproxiessetproxyheaderrequest
75438	return c
75439}
75440
75441// RequestId sets the optional parameter "requestId": An optional
75442// request ID to identify requests. Specify a unique request ID so that
75443// if you must retry your request, the server will know to ignore the
75444// request if it has already been completed.
75445//
75446// For example, consider a situation where you make an initial request
75447// and the request times out. If you make the request again with the
75448// same request ID, the server can check if original operation with the
75449// same request ID was received, and if so, will ignore the second
75450// request. This prevents clients from accidentally creating duplicate
75451// commitments.
75452//
75453// The request ID must be a valid UUID with the exception that zero UUID
75454// is not supported (00000000-0000-0000-0000-000000000000).
75455func (c *TargetSslProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetSslProxiesSetProxyHeaderCall {
75456	c.urlParams_.Set("requestId", requestId)
75457	return c
75458}
75459
75460// Fields allows partial responses to be retrieved. See
75461// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75462// for more information.
75463func (c *TargetSslProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetProxyHeaderCall {
75464	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75465	return c
75466}
75467
75468// Context sets the context to be used in this call's Do method. Any
75469// pending HTTP request will be aborted if the provided context is
75470// canceled.
75471func (c *TargetSslProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetSslProxiesSetProxyHeaderCall {
75472	c.ctx_ = ctx
75473	return c
75474}
75475
75476// Header returns an http.Header that can be modified by the caller to
75477// add HTTP headers to the request.
75478func (c *TargetSslProxiesSetProxyHeaderCall) Header() http.Header {
75479	if c.header_ == nil {
75480		c.header_ = make(http.Header)
75481	}
75482	return c.header_
75483}
75484
75485func (c *TargetSslProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
75486	reqHeaders := make(http.Header)
75487	for k, v := range c.header_ {
75488		reqHeaders[k] = v
75489	}
75490	reqHeaders.Set("User-Agent", c.s.userAgent())
75491	var body io.Reader = nil
75492	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetproxyheaderrequest)
75493	if err != nil {
75494		return nil, err
75495	}
75496	reqHeaders.Set("Content-Type", "application/json")
75497	c.urlParams_.Set("alt", alt)
75498	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader")
75499	urls += "?" + c.urlParams_.Encode()
75500	req, _ := http.NewRequest("POST", urls, body)
75501	req.Header = reqHeaders
75502	googleapi.Expand(req.URL, map[string]string{
75503		"project":        c.project,
75504		"targetSslProxy": c.targetSslProxy,
75505	})
75506	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75507}
75508
75509// Do executes the "compute.targetSslProxies.setProxyHeader" call.
75510// Exactly one of *Operation or error will be non-nil. Any non-2xx
75511// status code is an error. Response headers are in either
75512// *Operation.ServerResponse.Header or (if a response was returned at
75513// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75514// to check whether the returned error was because
75515// http.StatusNotModified was returned.
75516func (c *TargetSslProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75517	gensupport.SetOptions(c.urlParams_, opts...)
75518	res, err := c.doRequest("json")
75519	if res != nil && res.StatusCode == http.StatusNotModified {
75520		if res.Body != nil {
75521			res.Body.Close()
75522		}
75523		return nil, &googleapi.Error{
75524			Code:   res.StatusCode,
75525			Header: res.Header,
75526		}
75527	}
75528	if err != nil {
75529		return nil, err
75530	}
75531	defer googleapi.CloseBody(res)
75532	if err := googleapi.CheckResponse(res); err != nil {
75533		return nil, err
75534	}
75535	ret := &Operation{
75536		ServerResponse: googleapi.ServerResponse{
75537			Header:         res.Header,
75538			HTTPStatusCode: res.StatusCode,
75539		},
75540	}
75541	target := &ret
75542	if err := gensupport.DecodeResponse(target, res); err != nil {
75543		return nil, err
75544	}
75545	return ret, nil
75546	// {
75547	//   "description": "Changes the ProxyHeaderType for TargetSslProxy.",
75548	//   "httpMethod": "POST",
75549	//   "id": "compute.targetSslProxies.setProxyHeader",
75550	//   "parameterOrder": [
75551	//     "project",
75552	//     "targetSslProxy"
75553	//   ],
75554	//   "parameters": {
75555	//     "project": {
75556	//       "description": "Project ID for this request.",
75557	//       "location": "path",
75558	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75559	//       "required": true,
75560	//       "type": "string"
75561	//     },
75562	//     "requestId": {
75563	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75564	//       "location": "query",
75565	//       "type": "string"
75566	//     },
75567	//     "targetSslProxy": {
75568	//       "description": "Name of the TargetSslProxy resource whose ProxyHeader is to be set.",
75569	//       "location": "path",
75570	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
75571	//       "required": true,
75572	//       "type": "string"
75573	//     }
75574	//   },
75575	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader",
75576	//   "request": {
75577	//     "$ref": "TargetSslProxiesSetProxyHeaderRequest"
75578	//   },
75579	//   "response": {
75580	//     "$ref": "Operation"
75581	//   },
75582	//   "scopes": [
75583	//     "https://www.googleapis.com/auth/cloud-platform",
75584	//     "https://www.googleapis.com/auth/compute"
75585	//   ]
75586	// }
75587
75588}
75589
75590// method id "compute.targetSslProxies.setSslCertificates":
75591
75592type TargetSslProxiesSetSslCertificatesCall struct {
75593	s                                         *Service
75594	project                                   string
75595	targetSslProxy                            string
75596	targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest
75597	urlParams_                                gensupport.URLParams
75598	ctx_                                      context.Context
75599	header_                                   http.Header
75600}
75601
75602// SetSslCertificates: Changes SslCertificates for TargetSslProxy.
75603func (r *TargetSslProxiesService) SetSslCertificates(project string, targetSslProxy string, targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest) *TargetSslProxiesSetSslCertificatesCall {
75604	c := &TargetSslProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75605	c.project = project
75606	c.targetSslProxy = targetSslProxy
75607	c.targetsslproxiessetsslcertificatesrequest = targetsslproxiessetsslcertificatesrequest
75608	return c
75609}
75610
75611// RequestId sets the optional parameter "requestId": An optional
75612// request ID to identify requests. Specify a unique request ID so that
75613// if you must retry your request, the server will know to ignore the
75614// request if it has already been completed.
75615//
75616// For example, consider a situation where you make an initial request
75617// and the request times out. If you make the request again with the
75618// same request ID, the server can check if original operation with the
75619// same request ID was received, and if so, will ignore the second
75620// request. This prevents clients from accidentally creating duplicate
75621// commitments.
75622//
75623// The request ID must be a valid UUID with the exception that zero UUID
75624// is not supported (00000000-0000-0000-0000-000000000000).
75625func (c *TargetSslProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetSslProxiesSetSslCertificatesCall {
75626	c.urlParams_.Set("requestId", requestId)
75627	return c
75628}
75629
75630// Fields allows partial responses to be retrieved. See
75631// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75632// for more information.
75633func (c *TargetSslProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslCertificatesCall {
75634	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75635	return c
75636}
75637
75638// Context sets the context to be used in this call's Do method. Any
75639// pending HTTP request will be aborted if the provided context is
75640// canceled.
75641func (c *TargetSslProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetSslProxiesSetSslCertificatesCall {
75642	c.ctx_ = ctx
75643	return c
75644}
75645
75646// Header returns an http.Header that can be modified by the caller to
75647// add HTTP headers to the request.
75648func (c *TargetSslProxiesSetSslCertificatesCall) Header() http.Header {
75649	if c.header_ == nil {
75650		c.header_ = make(http.Header)
75651	}
75652	return c.header_
75653}
75654
75655func (c *TargetSslProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
75656	reqHeaders := make(http.Header)
75657	for k, v := range c.header_ {
75658		reqHeaders[k] = v
75659	}
75660	reqHeaders.Set("User-Agent", c.s.userAgent())
75661	var body io.Reader = nil
75662	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetsslcertificatesrequest)
75663	if err != nil {
75664		return nil, err
75665	}
75666	reqHeaders.Set("Content-Type", "application/json")
75667	c.urlParams_.Set("alt", alt)
75668	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates")
75669	urls += "?" + c.urlParams_.Encode()
75670	req, _ := http.NewRequest("POST", urls, body)
75671	req.Header = reqHeaders
75672	googleapi.Expand(req.URL, map[string]string{
75673		"project":        c.project,
75674		"targetSslProxy": c.targetSslProxy,
75675	})
75676	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75677}
75678
75679// Do executes the "compute.targetSslProxies.setSslCertificates" call.
75680// Exactly one of *Operation or error will be non-nil. Any non-2xx
75681// status code is an error. Response headers are in either
75682// *Operation.ServerResponse.Header or (if a response was returned at
75683// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75684// to check whether the returned error was because
75685// http.StatusNotModified was returned.
75686func (c *TargetSslProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75687	gensupport.SetOptions(c.urlParams_, opts...)
75688	res, err := c.doRequest("json")
75689	if res != nil && res.StatusCode == http.StatusNotModified {
75690		if res.Body != nil {
75691			res.Body.Close()
75692		}
75693		return nil, &googleapi.Error{
75694			Code:   res.StatusCode,
75695			Header: res.Header,
75696		}
75697	}
75698	if err != nil {
75699		return nil, err
75700	}
75701	defer googleapi.CloseBody(res)
75702	if err := googleapi.CheckResponse(res); err != nil {
75703		return nil, err
75704	}
75705	ret := &Operation{
75706		ServerResponse: googleapi.ServerResponse{
75707			Header:         res.Header,
75708			HTTPStatusCode: res.StatusCode,
75709		},
75710	}
75711	target := &ret
75712	if err := gensupport.DecodeResponse(target, res); err != nil {
75713		return nil, err
75714	}
75715	return ret, nil
75716	// {
75717	//   "description": "Changes SslCertificates for TargetSslProxy.",
75718	//   "httpMethod": "POST",
75719	//   "id": "compute.targetSslProxies.setSslCertificates",
75720	//   "parameterOrder": [
75721	//     "project",
75722	//     "targetSslProxy"
75723	//   ],
75724	//   "parameters": {
75725	//     "project": {
75726	//       "description": "Project ID for this request.",
75727	//       "location": "path",
75728	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75729	//       "required": true,
75730	//       "type": "string"
75731	//     },
75732	//     "requestId": {
75733	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75734	//       "location": "query",
75735	//       "type": "string"
75736	//     },
75737	//     "targetSslProxy": {
75738	//       "description": "Name of the TargetSslProxy resource whose SslCertificate resource is to be set.",
75739	//       "location": "path",
75740	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
75741	//       "required": true,
75742	//       "type": "string"
75743	//     }
75744	//   },
75745	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates",
75746	//   "request": {
75747	//     "$ref": "TargetSslProxiesSetSslCertificatesRequest"
75748	//   },
75749	//   "response": {
75750	//     "$ref": "Operation"
75751	//   },
75752	//   "scopes": [
75753	//     "https://www.googleapis.com/auth/cloud-platform",
75754	//     "https://www.googleapis.com/auth/compute"
75755	//   ]
75756	// }
75757
75758}
75759
75760// method id "compute.targetTcpProxies.delete":
75761
75762type TargetTcpProxiesDeleteCall struct {
75763	s              *Service
75764	project        string
75765	targetTcpProxy string
75766	urlParams_     gensupport.URLParams
75767	ctx_           context.Context
75768	header_        http.Header
75769}
75770
75771// Delete: Deletes the specified TargetTcpProxy resource.
75772func (r *TargetTcpProxiesService) Delete(project string, targetTcpProxy string) *TargetTcpProxiesDeleteCall {
75773	c := &TargetTcpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75774	c.project = project
75775	c.targetTcpProxy = targetTcpProxy
75776	return c
75777}
75778
75779// RequestId sets the optional parameter "requestId": An optional
75780// request ID to identify requests. Specify a unique request ID so that
75781// if you must retry your request, the server will know to ignore the
75782// request if it has already been completed.
75783//
75784// For example, consider a situation where you make an initial request
75785// and the request times out. If you make the request again with the
75786// same request ID, the server can check if original operation with the
75787// same request ID was received, and if so, will ignore the second
75788// request. This prevents clients from accidentally creating duplicate
75789// commitments.
75790//
75791// The request ID must be a valid UUID with the exception that zero UUID
75792// is not supported (00000000-0000-0000-0000-000000000000).
75793func (c *TargetTcpProxiesDeleteCall) RequestId(requestId string) *TargetTcpProxiesDeleteCall {
75794	c.urlParams_.Set("requestId", requestId)
75795	return c
75796}
75797
75798// Fields allows partial responses to be retrieved. See
75799// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75800// for more information.
75801func (c *TargetTcpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetTcpProxiesDeleteCall {
75802	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75803	return c
75804}
75805
75806// Context sets the context to be used in this call's Do method. Any
75807// pending HTTP request will be aborted if the provided context is
75808// canceled.
75809func (c *TargetTcpProxiesDeleteCall) Context(ctx context.Context) *TargetTcpProxiesDeleteCall {
75810	c.ctx_ = ctx
75811	return c
75812}
75813
75814// Header returns an http.Header that can be modified by the caller to
75815// add HTTP headers to the request.
75816func (c *TargetTcpProxiesDeleteCall) Header() http.Header {
75817	if c.header_ == nil {
75818		c.header_ = make(http.Header)
75819	}
75820	return c.header_
75821}
75822
75823func (c *TargetTcpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
75824	reqHeaders := make(http.Header)
75825	for k, v := range c.header_ {
75826		reqHeaders[k] = v
75827	}
75828	reqHeaders.Set("User-Agent", c.s.userAgent())
75829	var body io.Reader = nil
75830	c.urlParams_.Set("alt", alt)
75831	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}")
75832	urls += "?" + c.urlParams_.Encode()
75833	req, _ := http.NewRequest("DELETE", urls, body)
75834	req.Header = reqHeaders
75835	googleapi.Expand(req.URL, map[string]string{
75836		"project":        c.project,
75837		"targetTcpProxy": c.targetTcpProxy,
75838	})
75839	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75840}
75841
75842// Do executes the "compute.targetTcpProxies.delete" call.
75843// Exactly one of *Operation or error will be non-nil. Any non-2xx
75844// status code is an error. Response headers are in either
75845// *Operation.ServerResponse.Header or (if a response was returned at
75846// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75847// to check whether the returned error was because
75848// http.StatusNotModified was returned.
75849func (c *TargetTcpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75850	gensupport.SetOptions(c.urlParams_, opts...)
75851	res, err := c.doRequest("json")
75852	if res != nil && res.StatusCode == http.StatusNotModified {
75853		if res.Body != nil {
75854			res.Body.Close()
75855		}
75856		return nil, &googleapi.Error{
75857			Code:   res.StatusCode,
75858			Header: res.Header,
75859		}
75860	}
75861	if err != nil {
75862		return nil, err
75863	}
75864	defer googleapi.CloseBody(res)
75865	if err := googleapi.CheckResponse(res); err != nil {
75866		return nil, err
75867	}
75868	ret := &Operation{
75869		ServerResponse: googleapi.ServerResponse{
75870			Header:         res.Header,
75871			HTTPStatusCode: res.StatusCode,
75872		},
75873	}
75874	target := &ret
75875	if err := gensupport.DecodeResponse(target, res); err != nil {
75876		return nil, err
75877	}
75878	return ret, nil
75879	// {
75880	//   "description": "Deletes the specified TargetTcpProxy resource.",
75881	//   "httpMethod": "DELETE",
75882	//   "id": "compute.targetTcpProxies.delete",
75883	//   "parameterOrder": [
75884	//     "project",
75885	//     "targetTcpProxy"
75886	//   ],
75887	//   "parameters": {
75888	//     "project": {
75889	//       "description": "Project ID for this request.",
75890	//       "location": "path",
75891	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75892	//       "required": true,
75893	//       "type": "string"
75894	//     },
75895	//     "requestId": {
75896	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75897	//       "location": "query",
75898	//       "type": "string"
75899	//     },
75900	//     "targetTcpProxy": {
75901	//       "description": "Name of the TargetTcpProxy resource to delete.",
75902	//       "location": "path",
75903	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
75904	//       "required": true,
75905	//       "type": "string"
75906	//     }
75907	//   },
75908	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}",
75909	//   "response": {
75910	//     "$ref": "Operation"
75911	//   },
75912	//   "scopes": [
75913	//     "https://www.googleapis.com/auth/cloud-platform",
75914	//     "https://www.googleapis.com/auth/compute"
75915	//   ]
75916	// }
75917
75918}
75919
75920// method id "compute.targetTcpProxies.get":
75921
75922type TargetTcpProxiesGetCall struct {
75923	s              *Service
75924	project        string
75925	targetTcpProxy string
75926	urlParams_     gensupport.URLParams
75927	ifNoneMatch_   string
75928	ctx_           context.Context
75929	header_        http.Header
75930}
75931
75932// Get: Returns the specified TargetTcpProxy resource. Get a list of
75933// available target TCP proxies by making a list() request.
75934func (r *TargetTcpProxiesService) Get(project string, targetTcpProxy string) *TargetTcpProxiesGetCall {
75935	c := &TargetTcpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75936	c.project = project
75937	c.targetTcpProxy = targetTcpProxy
75938	return c
75939}
75940
75941// Fields allows partial responses to be retrieved. See
75942// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75943// for more information.
75944func (c *TargetTcpProxiesGetCall) Fields(s ...googleapi.Field) *TargetTcpProxiesGetCall {
75945	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75946	return c
75947}
75948
75949// IfNoneMatch sets the optional parameter which makes the operation
75950// fail if the object's ETag matches the given value. This is useful for
75951// getting updates only after the object has changed since the last
75952// request. Use googleapi.IsNotModified to check whether the response
75953// error from Do is the result of In-None-Match.
75954func (c *TargetTcpProxiesGetCall) IfNoneMatch(entityTag string) *TargetTcpProxiesGetCall {
75955	c.ifNoneMatch_ = entityTag
75956	return c
75957}
75958
75959// Context sets the context to be used in this call's Do method. Any
75960// pending HTTP request will be aborted if the provided context is
75961// canceled.
75962func (c *TargetTcpProxiesGetCall) Context(ctx context.Context) *TargetTcpProxiesGetCall {
75963	c.ctx_ = ctx
75964	return c
75965}
75966
75967// Header returns an http.Header that can be modified by the caller to
75968// add HTTP headers to the request.
75969func (c *TargetTcpProxiesGetCall) Header() http.Header {
75970	if c.header_ == nil {
75971		c.header_ = make(http.Header)
75972	}
75973	return c.header_
75974}
75975
75976func (c *TargetTcpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
75977	reqHeaders := make(http.Header)
75978	for k, v := range c.header_ {
75979		reqHeaders[k] = v
75980	}
75981	reqHeaders.Set("User-Agent", c.s.userAgent())
75982	if c.ifNoneMatch_ != "" {
75983		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
75984	}
75985	var body io.Reader = nil
75986	c.urlParams_.Set("alt", alt)
75987	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}")
75988	urls += "?" + c.urlParams_.Encode()
75989	req, _ := http.NewRequest("GET", urls, body)
75990	req.Header = reqHeaders
75991	googleapi.Expand(req.URL, map[string]string{
75992		"project":        c.project,
75993		"targetTcpProxy": c.targetTcpProxy,
75994	})
75995	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75996}
75997
75998// Do executes the "compute.targetTcpProxies.get" call.
75999// Exactly one of *TargetTcpProxy or error will be non-nil. Any non-2xx
76000// status code is an error. Response headers are in either
76001// *TargetTcpProxy.ServerResponse.Header or (if a response was returned
76002// at all) in error.(*googleapi.Error).Header. Use
76003// googleapi.IsNotModified to check whether the returned error was
76004// because http.StatusNotModified was returned.
76005func (c *TargetTcpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxy, error) {
76006	gensupport.SetOptions(c.urlParams_, opts...)
76007	res, err := c.doRequest("json")
76008	if res != nil && res.StatusCode == http.StatusNotModified {
76009		if res.Body != nil {
76010			res.Body.Close()
76011		}
76012		return nil, &googleapi.Error{
76013			Code:   res.StatusCode,
76014			Header: res.Header,
76015		}
76016	}
76017	if err != nil {
76018		return nil, err
76019	}
76020	defer googleapi.CloseBody(res)
76021	if err := googleapi.CheckResponse(res); err != nil {
76022		return nil, err
76023	}
76024	ret := &TargetTcpProxy{
76025		ServerResponse: googleapi.ServerResponse{
76026			Header:         res.Header,
76027			HTTPStatusCode: res.StatusCode,
76028		},
76029	}
76030	target := &ret
76031	if err := gensupport.DecodeResponse(target, res); err != nil {
76032		return nil, err
76033	}
76034	return ret, nil
76035	// {
76036	//   "description": "Returns the specified TargetTcpProxy resource. Get a list of available target TCP proxies by making a list() request.",
76037	//   "httpMethod": "GET",
76038	//   "id": "compute.targetTcpProxies.get",
76039	//   "parameterOrder": [
76040	//     "project",
76041	//     "targetTcpProxy"
76042	//   ],
76043	//   "parameters": {
76044	//     "project": {
76045	//       "description": "Project ID for this request.",
76046	//       "location": "path",
76047	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76048	//       "required": true,
76049	//       "type": "string"
76050	//     },
76051	//     "targetTcpProxy": {
76052	//       "description": "Name of the TargetTcpProxy resource to return.",
76053	//       "location": "path",
76054	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
76055	//       "required": true,
76056	//       "type": "string"
76057	//     }
76058	//   },
76059	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}",
76060	//   "response": {
76061	//     "$ref": "TargetTcpProxy"
76062	//   },
76063	//   "scopes": [
76064	//     "https://www.googleapis.com/auth/cloud-platform",
76065	//     "https://www.googleapis.com/auth/compute",
76066	//     "https://www.googleapis.com/auth/compute.readonly"
76067	//   ]
76068	// }
76069
76070}
76071
76072// method id "compute.targetTcpProxies.insert":
76073
76074type TargetTcpProxiesInsertCall struct {
76075	s              *Service
76076	project        string
76077	targettcpproxy *TargetTcpProxy
76078	urlParams_     gensupport.URLParams
76079	ctx_           context.Context
76080	header_        http.Header
76081}
76082
76083// Insert: Creates a TargetTcpProxy resource in the specified project
76084// using the data included in the request.
76085func (r *TargetTcpProxiesService) Insert(project string, targettcpproxy *TargetTcpProxy) *TargetTcpProxiesInsertCall {
76086	c := &TargetTcpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76087	c.project = project
76088	c.targettcpproxy = targettcpproxy
76089	return c
76090}
76091
76092// RequestId sets the optional parameter "requestId": An optional
76093// request ID to identify requests. Specify a unique request ID so that
76094// if you must retry your request, the server will know to ignore the
76095// request if it has already been completed.
76096//
76097// For example, consider a situation where you make an initial request
76098// and the request times out. If you make the request again with the
76099// same request ID, the server can check if original operation with the
76100// same request ID was received, and if so, will ignore the second
76101// request. This prevents clients from accidentally creating duplicate
76102// commitments.
76103//
76104// The request ID must be a valid UUID with the exception that zero UUID
76105// is not supported (00000000-0000-0000-0000-000000000000).
76106func (c *TargetTcpProxiesInsertCall) RequestId(requestId string) *TargetTcpProxiesInsertCall {
76107	c.urlParams_.Set("requestId", requestId)
76108	return c
76109}
76110
76111// Fields allows partial responses to be retrieved. See
76112// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76113// for more information.
76114func (c *TargetTcpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetTcpProxiesInsertCall {
76115	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76116	return c
76117}
76118
76119// Context sets the context to be used in this call's Do method. Any
76120// pending HTTP request will be aborted if the provided context is
76121// canceled.
76122func (c *TargetTcpProxiesInsertCall) Context(ctx context.Context) *TargetTcpProxiesInsertCall {
76123	c.ctx_ = ctx
76124	return c
76125}
76126
76127// Header returns an http.Header that can be modified by the caller to
76128// add HTTP headers to the request.
76129func (c *TargetTcpProxiesInsertCall) Header() http.Header {
76130	if c.header_ == nil {
76131		c.header_ = make(http.Header)
76132	}
76133	return c.header_
76134}
76135
76136func (c *TargetTcpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
76137	reqHeaders := make(http.Header)
76138	for k, v := range c.header_ {
76139		reqHeaders[k] = v
76140	}
76141	reqHeaders.Set("User-Agent", c.s.userAgent())
76142	var body io.Reader = nil
76143	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxy)
76144	if err != nil {
76145		return nil, err
76146	}
76147	reqHeaders.Set("Content-Type", "application/json")
76148	c.urlParams_.Set("alt", alt)
76149	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies")
76150	urls += "?" + c.urlParams_.Encode()
76151	req, _ := http.NewRequest("POST", urls, body)
76152	req.Header = reqHeaders
76153	googleapi.Expand(req.URL, map[string]string{
76154		"project": c.project,
76155	})
76156	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76157}
76158
76159// Do executes the "compute.targetTcpProxies.insert" call.
76160// Exactly one of *Operation or error will be non-nil. Any non-2xx
76161// status code is an error. Response headers are in either
76162// *Operation.ServerResponse.Header or (if a response was returned at
76163// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76164// to check whether the returned error was because
76165// http.StatusNotModified was returned.
76166func (c *TargetTcpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76167	gensupport.SetOptions(c.urlParams_, opts...)
76168	res, err := c.doRequest("json")
76169	if res != nil && res.StatusCode == http.StatusNotModified {
76170		if res.Body != nil {
76171			res.Body.Close()
76172		}
76173		return nil, &googleapi.Error{
76174			Code:   res.StatusCode,
76175			Header: res.Header,
76176		}
76177	}
76178	if err != nil {
76179		return nil, err
76180	}
76181	defer googleapi.CloseBody(res)
76182	if err := googleapi.CheckResponse(res); err != nil {
76183		return nil, err
76184	}
76185	ret := &Operation{
76186		ServerResponse: googleapi.ServerResponse{
76187			Header:         res.Header,
76188			HTTPStatusCode: res.StatusCode,
76189		},
76190	}
76191	target := &ret
76192	if err := gensupport.DecodeResponse(target, res); err != nil {
76193		return nil, err
76194	}
76195	return ret, nil
76196	// {
76197	//   "description": "Creates a TargetTcpProxy resource in the specified project using the data included in the request.",
76198	//   "httpMethod": "POST",
76199	//   "id": "compute.targetTcpProxies.insert",
76200	//   "parameterOrder": [
76201	//     "project"
76202	//   ],
76203	//   "parameters": {
76204	//     "project": {
76205	//       "description": "Project ID for this request.",
76206	//       "location": "path",
76207	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76208	//       "required": true,
76209	//       "type": "string"
76210	//     },
76211	//     "requestId": {
76212	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76213	//       "location": "query",
76214	//       "type": "string"
76215	//     }
76216	//   },
76217	//   "path": "{project}/global/targetTcpProxies",
76218	//   "request": {
76219	//     "$ref": "TargetTcpProxy"
76220	//   },
76221	//   "response": {
76222	//     "$ref": "Operation"
76223	//   },
76224	//   "scopes": [
76225	//     "https://www.googleapis.com/auth/cloud-platform",
76226	//     "https://www.googleapis.com/auth/compute"
76227	//   ]
76228	// }
76229
76230}
76231
76232// method id "compute.targetTcpProxies.list":
76233
76234type TargetTcpProxiesListCall struct {
76235	s            *Service
76236	project      string
76237	urlParams_   gensupport.URLParams
76238	ifNoneMatch_ string
76239	ctx_         context.Context
76240	header_      http.Header
76241}
76242
76243// List: Retrieves the list of TargetTcpProxy resources available to the
76244// specified project.
76245func (r *TargetTcpProxiesService) List(project string) *TargetTcpProxiesListCall {
76246	c := &TargetTcpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76247	c.project = project
76248	return c
76249}
76250
76251// Filter sets the optional parameter "filter": Sets a filter
76252// {expression} for filtering listed resources. Your {expression} must
76253// be in the format: field_name comparison_string literal_string.
76254//
76255// The field_name is the name of the field you want to compare. Only
76256// atomic field types are supported (string, number, boolean). The
76257// comparison_string must be either eq (equals) or ne (not equals). The
76258// literal_string is the string value to filter to. The literal value
76259// must be valid for the type of field you are filtering by (string,
76260// number, boolean). For string fields, the literal value is interpreted
76261// as a regular expression using RE2 syntax. The literal value must
76262// match the entire field.
76263//
76264// For example, to filter for instances that do not have a name of
76265// example-instance, you would use name ne example-instance.
76266//
76267// You can filter on nested fields. For example, you could filter on
76268// instances that have set the scheduling.automaticRestart field to
76269// true. Use filtering on nested fields to take advantage of labels to
76270// organize and search for results based on label values.
76271//
76272// To filter on multiple expressions, provide each separate expression
76273// within parentheses. For example, (scheduling.automaticRestart eq
76274// true) (zone eq us-central1-f). Multiple expressions are treated as
76275// AND expressions, meaning that resources must match all expressions to
76276// pass the filters.
76277func (c *TargetTcpProxiesListCall) Filter(filter string) *TargetTcpProxiesListCall {
76278	c.urlParams_.Set("filter", filter)
76279	return c
76280}
76281
76282// MaxResults sets the optional parameter "maxResults": The maximum
76283// number of results per page that should be returned. If the number of
76284// available results is larger than maxResults, Compute Engine returns a
76285// nextPageToken that can be used to get the next page of results in
76286// subsequent list requests. Acceptable values are 0 to 500, inclusive.
76287// (Default: 500)
76288func (c *TargetTcpProxiesListCall) MaxResults(maxResults int64) *TargetTcpProxiesListCall {
76289	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
76290	return c
76291}
76292
76293// OrderBy sets the optional parameter "orderBy": Sorts list results by
76294// a certain order. By default, results are returned in alphanumerical
76295// order based on the resource name.
76296//
76297// You can also sort results in descending order based on the creation
76298// timestamp using orderBy="creationTimestamp desc". This sorts results
76299// based on the creationTimestamp field in reverse chronological order
76300// (newest result first). Use this to sort resources like operations so
76301// that the newest operation is returned first.
76302//
76303// Currently, only sorting by name or creationTimestamp desc is
76304// supported.
76305func (c *TargetTcpProxiesListCall) OrderBy(orderBy string) *TargetTcpProxiesListCall {
76306	c.urlParams_.Set("orderBy", orderBy)
76307	return c
76308}
76309
76310// PageToken sets the optional parameter "pageToken": Specifies a page
76311// token to use. Set pageToken to the nextPageToken returned by a
76312// previous list request to get the next page of results.
76313func (c *TargetTcpProxiesListCall) PageToken(pageToken string) *TargetTcpProxiesListCall {
76314	c.urlParams_.Set("pageToken", pageToken)
76315	return c
76316}
76317
76318// Fields allows partial responses to be retrieved. See
76319// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76320// for more information.
76321func (c *TargetTcpProxiesListCall) Fields(s ...googleapi.Field) *TargetTcpProxiesListCall {
76322	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76323	return c
76324}
76325
76326// IfNoneMatch sets the optional parameter which makes the operation
76327// fail if the object's ETag matches the given value. This is useful for
76328// getting updates only after the object has changed since the last
76329// request. Use googleapi.IsNotModified to check whether the response
76330// error from Do is the result of In-None-Match.
76331func (c *TargetTcpProxiesListCall) IfNoneMatch(entityTag string) *TargetTcpProxiesListCall {
76332	c.ifNoneMatch_ = entityTag
76333	return c
76334}
76335
76336// Context sets the context to be used in this call's Do method. Any
76337// pending HTTP request will be aborted if the provided context is
76338// canceled.
76339func (c *TargetTcpProxiesListCall) Context(ctx context.Context) *TargetTcpProxiesListCall {
76340	c.ctx_ = ctx
76341	return c
76342}
76343
76344// Header returns an http.Header that can be modified by the caller to
76345// add HTTP headers to the request.
76346func (c *TargetTcpProxiesListCall) Header() http.Header {
76347	if c.header_ == nil {
76348		c.header_ = make(http.Header)
76349	}
76350	return c.header_
76351}
76352
76353func (c *TargetTcpProxiesListCall) doRequest(alt string) (*http.Response, error) {
76354	reqHeaders := make(http.Header)
76355	for k, v := range c.header_ {
76356		reqHeaders[k] = v
76357	}
76358	reqHeaders.Set("User-Agent", c.s.userAgent())
76359	if c.ifNoneMatch_ != "" {
76360		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76361	}
76362	var body io.Reader = nil
76363	c.urlParams_.Set("alt", alt)
76364	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies")
76365	urls += "?" + c.urlParams_.Encode()
76366	req, _ := http.NewRequest("GET", urls, body)
76367	req.Header = reqHeaders
76368	googleapi.Expand(req.URL, map[string]string{
76369		"project": c.project,
76370	})
76371	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76372}
76373
76374// Do executes the "compute.targetTcpProxies.list" call.
76375// Exactly one of *TargetTcpProxyList or error will be non-nil. Any
76376// non-2xx status code is an error. Response headers are in either
76377// *TargetTcpProxyList.ServerResponse.Header or (if a response was
76378// returned at all) in error.(*googleapi.Error).Header. Use
76379// googleapi.IsNotModified to check whether the returned error was
76380// because http.StatusNotModified was returned.
76381func (c *TargetTcpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxyList, error) {
76382	gensupport.SetOptions(c.urlParams_, opts...)
76383	res, err := c.doRequest("json")
76384	if res != nil && res.StatusCode == http.StatusNotModified {
76385		if res.Body != nil {
76386			res.Body.Close()
76387		}
76388		return nil, &googleapi.Error{
76389			Code:   res.StatusCode,
76390			Header: res.Header,
76391		}
76392	}
76393	if err != nil {
76394		return nil, err
76395	}
76396	defer googleapi.CloseBody(res)
76397	if err := googleapi.CheckResponse(res); err != nil {
76398		return nil, err
76399	}
76400	ret := &TargetTcpProxyList{
76401		ServerResponse: googleapi.ServerResponse{
76402			Header:         res.Header,
76403			HTTPStatusCode: res.StatusCode,
76404		},
76405	}
76406	target := &ret
76407	if err := gensupport.DecodeResponse(target, res); err != nil {
76408		return nil, err
76409	}
76410	return ret, nil
76411	// {
76412	//   "description": "Retrieves the list of TargetTcpProxy resources available to the specified project.",
76413	//   "httpMethod": "GET",
76414	//   "id": "compute.targetTcpProxies.list",
76415	//   "parameterOrder": [
76416	//     "project"
76417	//   ],
76418	//   "parameters": {
76419	//     "filter": {
76420	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
76421	//       "location": "query",
76422	//       "type": "string"
76423	//     },
76424	//     "maxResults": {
76425	//       "default": "500",
76426	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
76427	//       "format": "uint32",
76428	//       "location": "query",
76429	//       "minimum": "0",
76430	//       "type": "integer"
76431	//     },
76432	//     "orderBy": {
76433	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
76434	//       "location": "query",
76435	//       "type": "string"
76436	//     },
76437	//     "pageToken": {
76438	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
76439	//       "location": "query",
76440	//       "type": "string"
76441	//     },
76442	//     "project": {
76443	//       "description": "Project ID for this request.",
76444	//       "location": "path",
76445	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76446	//       "required": true,
76447	//       "type": "string"
76448	//     }
76449	//   },
76450	//   "path": "{project}/global/targetTcpProxies",
76451	//   "response": {
76452	//     "$ref": "TargetTcpProxyList"
76453	//   },
76454	//   "scopes": [
76455	//     "https://www.googleapis.com/auth/cloud-platform",
76456	//     "https://www.googleapis.com/auth/compute",
76457	//     "https://www.googleapis.com/auth/compute.readonly"
76458	//   ]
76459	// }
76460
76461}
76462
76463// Pages invokes f for each page of results.
76464// A non-nil error returned from f will halt the iteration.
76465// The provided context supersedes any context provided to the Context method.
76466func (c *TargetTcpProxiesListCall) Pages(ctx context.Context, f func(*TargetTcpProxyList) error) error {
76467	c.ctx_ = ctx
76468	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
76469	for {
76470		x, err := c.Do()
76471		if err != nil {
76472			return err
76473		}
76474		if err := f(x); err != nil {
76475			return err
76476		}
76477		if x.NextPageToken == "" {
76478			return nil
76479		}
76480		c.PageToken(x.NextPageToken)
76481	}
76482}
76483
76484// method id "compute.targetTcpProxies.setBackendService":
76485
76486type TargetTcpProxiesSetBackendServiceCall struct {
76487	s                                        *Service
76488	project                                  string
76489	targetTcpProxy                           string
76490	targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest
76491	urlParams_                               gensupport.URLParams
76492	ctx_                                     context.Context
76493	header_                                  http.Header
76494}
76495
76496// SetBackendService: Changes the BackendService for TargetTcpProxy.
76497func (r *TargetTcpProxiesService) SetBackendService(project string, targetTcpProxy string, targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest) *TargetTcpProxiesSetBackendServiceCall {
76498	c := &TargetTcpProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76499	c.project = project
76500	c.targetTcpProxy = targetTcpProxy
76501	c.targettcpproxiessetbackendservicerequest = targettcpproxiessetbackendservicerequest
76502	return c
76503}
76504
76505// RequestId sets the optional parameter "requestId": An optional
76506// request ID to identify requests. Specify a unique request ID so that
76507// if you must retry your request, the server will know to ignore the
76508// request if it has already been completed.
76509//
76510// For example, consider a situation where you make an initial request
76511// and the request times out. If you make the request again with the
76512// same request ID, the server can check if original operation with the
76513// same request ID was received, and if so, will ignore the second
76514// request. This prevents clients from accidentally creating duplicate
76515// commitments.
76516//
76517// The request ID must be a valid UUID with the exception that zero UUID
76518// is not supported (00000000-0000-0000-0000-000000000000).
76519func (c *TargetTcpProxiesSetBackendServiceCall) RequestId(requestId string) *TargetTcpProxiesSetBackendServiceCall {
76520	c.urlParams_.Set("requestId", requestId)
76521	return c
76522}
76523
76524// Fields allows partial responses to be retrieved. See
76525// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76526// for more information.
76527func (c *TargetTcpProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetBackendServiceCall {
76528	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76529	return c
76530}
76531
76532// Context sets the context to be used in this call's Do method. Any
76533// pending HTTP request will be aborted if the provided context is
76534// canceled.
76535func (c *TargetTcpProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetTcpProxiesSetBackendServiceCall {
76536	c.ctx_ = ctx
76537	return c
76538}
76539
76540// Header returns an http.Header that can be modified by the caller to
76541// add HTTP headers to the request.
76542func (c *TargetTcpProxiesSetBackendServiceCall) Header() http.Header {
76543	if c.header_ == nil {
76544		c.header_ = make(http.Header)
76545	}
76546	return c.header_
76547}
76548
76549func (c *TargetTcpProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
76550	reqHeaders := make(http.Header)
76551	for k, v := range c.header_ {
76552		reqHeaders[k] = v
76553	}
76554	reqHeaders.Set("User-Agent", c.s.userAgent())
76555	var body io.Reader = nil
76556	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetbackendservicerequest)
76557	if err != nil {
76558		return nil, err
76559	}
76560	reqHeaders.Set("Content-Type", "application/json")
76561	c.urlParams_.Set("alt", alt)
76562	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService")
76563	urls += "?" + c.urlParams_.Encode()
76564	req, _ := http.NewRequest("POST", urls, body)
76565	req.Header = reqHeaders
76566	googleapi.Expand(req.URL, map[string]string{
76567		"project":        c.project,
76568		"targetTcpProxy": c.targetTcpProxy,
76569	})
76570	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76571}
76572
76573// Do executes the "compute.targetTcpProxies.setBackendService" call.
76574// Exactly one of *Operation or error will be non-nil. Any non-2xx
76575// status code is an error. Response headers are in either
76576// *Operation.ServerResponse.Header or (if a response was returned at
76577// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76578// to check whether the returned error was because
76579// http.StatusNotModified was returned.
76580func (c *TargetTcpProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76581	gensupport.SetOptions(c.urlParams_, opts...)
76582	res, err := c.doRequest("json")
76583	if res != nil && res.StatusCode == http.StatusNotModified {
76584		if res.Body != nil {
76585			res.Body.Close()
76586		}
76587		return nil, &googleapi.Error{
76588			Code:   res.StatusCode,
76589			Header: res.Header,
76590		}
76591	}
76592	if err != nil {
76593		return nil, err
76594	}
76595	defer googleapi.CloseBody(res)
76596	if err := googleapi.CheckResponse(res); err != nil {
76597		return nil, err
76598	}
76599	ret := &Operation{
76600		ServerResponse: googleapi.ServerResponse{
76601			Header:         res.Header,
76602			HTTPStatusCode: res.StatusCode,
76603		},
76604	}
76605	target := &ret
76606	if err := gensupport.DecodeResponse(target, res); err != nil {
76607		return nil, err
76608	}
76609	return ret, nil
76610	// {
76611	//   "description": "Changes the BackendService for TargetTcpProxy.",
76612	//   "httpMethod": "POST",
76613	//   "id": "compute.targetTcpProxies.setBackendService",
76614	//   "parameterOrder": [
76615	//     "project",
76616	//     "targetTcpProxy"
76617	//   ],
76618	//   "parameters": {
76619	//     "project": {
76620	//       "description": "Project ID for this request.",
76621	//       "location": "path",
76622	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76623	//       "required": true,
76624	//       "type": "string"
76625	//     },
76626	//     "requestId": {
76627	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76628	//       "location": "query",
76629	//       "type": "string"
76630	//     },
76631	//     "targetTcpProxy": {
76632	//       "description": "Name of the TargetTcpProxy resource whose BackendService resource is to be set.",
76633	//       "location": "path",
76634	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
76635	//       "required": true,
76636	//       "type": "string"
76637	//     }
76638	//   },
76639	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService",
76640	//   "request": {
76641	//     "$ref": "TargetTcpProxiesSetBackendServiceRequest"
76642	//   },
76643	//   "response": {
76644	//     "$ref": "Operation"
76645	//   },
76646	//   "scopes": [
76647	//     "https://www.googleapis.com/auth/cloud-platform",
76648	//     "https://www.googleapis.com/auth/compute"
76649	//   ]
76650	// }
76651
76652}
76653
76654// method id "compute.targetTcpProxies.setProxyHeader":
76655
76656type TargetTcpProxiesSetProxyHeaderCall struct {
76657	s                                     *Service
76658	project                               string
76659	targetTcpProxy                        string
76660	targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest
76661	urlParams_                            gensupport.URLParams
76662	ctx_                                  context.Context
76663	header_                               http.Header
76664}
76665
76666// SetProxyHeader: Changes the ProxyHeaderType for TargetTcpProxy.
76667func (r *TargetTcpProxiesService) SetProxyHeader(project string, targetTcpProxy string, targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest) *TargetTcpProxiesSetProxyHeaderCall {
76668	c := &TargetTcpProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76669	c.project = project
76670	c.targetTcpProxy = targetTcpProxy
76671	c.targettcpproxiessetproxyheaderrequest = targettcpproxiessetproxyheaderrequest
76672	return c
76673}
76674
76675// RequestId sets the optional parameter "requestId": An optional
76676// request ID to identify requests. Specify a unique request ID so that
76677// if you must retry your request, the server will know to ignore the
76678// request if it has already been completed.
76679//
76680// For example, consider a situation where you make an initial request
76681// and the request times out. If you make the request again with the
76682// same request ID, the server can check if original operation with the
76683// same request ID was received, and if so, will ignore the second
76684// request. This prevents clients from accidentally creating duplicate
76685// commitments.
76686//
76687// The request ID must be a valid UUID with the exception that zero UUID
76688// is not supported (00000000-0000-0000-0000-000000000000).
76689func (c *TargetTcpProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetTcpProxiesSetProxyHeaderCall {
76690	c.urlParams_.Set("requestId", requestId)
76691	return c
76692}
76693
76694// Fields allows partial responses to be retrieved. See
76695// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76696// for more information.
76697func (c *TargetTcpProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetProxyHeaderCall {
76698	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76699	return c
76700}
76701
76702// Context sets the context to be used in this call's Do method. Any
76703// pending HTTP request will be aborted if the provided context is
76704// canceled.
76705func (c *TargetTcpProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetTcpProxiesSetProxyHeaderCall {
76706	c.ctx_ = ctx
76707	return c
76708}
76709
76710// Header returns an http.Header that can be modified by the caller to
76711// add HTTP headers to the request.
76712func (c *TargetTcpProxiesSetProxyHeaderCall) Header() http.Header {
76713	if c.header_ == nil {
76714		c.header_ = make(http.Header)
76715	}
76716	return c.header_
76717}
76718
76719func (c *TargetTcpProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
76720	reqHeaders := make(http.Header)
76721	for k, v := range c.header_ {
76722		reqHeaders[k] = v
76723	}
76724	reqHeaders.Set("User-Agent", c.s.userAgent())
76725	var body io.Reader = nil
76726	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetproxyheaderrequest)
76727	if err != nil {
76728		return nil, err
76729	}
76730	reqHeaders.Set("Content-Type", "application/json")
76731	c.urlParams_.Set("alt", alt)
76732	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader")
76733	urls += "?" + c.urlParams_.Encode()
76734	req, _ := http.NewRequest("POST", urls, body)
76735	req.Header = reqHeaders
76736	googleapi.Expand(req.URL, map[string]string{
76737		"project":        c.project,
76738		"targetTcpProxy": c.targetTcpProxy,
76739	})
76740	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76741}
76742
76743// Do executes the "compute.targetTcpProxies.setProxyHeader" call.
76744// Exactly one of *Operation or error will be non-nil. Any non-2xx
76745// status code is an error. Response headers are in either
76746// *Operation.ServerResponse.Header or (if a response was returned at
76747// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76748// to check whether the returned error was because
76749// http.StatusNotModified was returned.
76750func (c *TargetTcpProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76751	gensupport.SetOptions(c.urlParams_, opts...)
76752	res, err := c.doRequest("json")
76753	if res != nil && res.StatusCode == http.StatusNotModified {
76754		if res.Body != nil {
76755			res.Body.Close()
76756		}
76757		return nil, &googleapi.Error{
76758			Code:   res.StatusCode,
76759			Header: res.Header,
76760		}
76761	}
76762	if err != nil {
76763		return nil, err
76764	}
76765	defer googleapi.CloseBody(res)
76766	if err := googleapi.CheckResponse(res); err != nil {
76767		return nil, err
76768	}
76769	ret := &Operation{
76770		ServerResponse: googleapi.ServerResponse{
76771			Header:         res.Header,
76772			HTTPStatusCode: res.StatusCode,
76773		},
76774	}
76775	target := &ret
76776	if err := gensupport.DecodeResponse(target, res); err != nil {
76777		return nil, err
76778	}
76779	return ret, nil
76780	// {
76781	//   "description": "Changes the ProxyHeaderType for TargetTcpProxy.",
76782	//   "httpMethod": "POST",
76783	//   "id": "compute.targetTcpProxies.setProxyHeader",
76784	//   "parameterOrder": [
76785	//     "project",
76786	//     "targetTcpProxy"
76787	//   ],
76788	//   "parameters": {
76789	//     "project": {
76790	//       "description": "Project ID for this request.",
76791	//       "location": "path",
76792	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76793	//       "required": true,
76794	//       "type": "string"
76795	//     },
76796	//     "requestId": {
76797	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76798	//       "location": "query",
76799	//       "type": "string"
76800	//     },
76801	//     "targetTcpProxy": {
76802	//       "description": "Name of the TargetTcpProxy resource whose ProxyHeader is to be set.",
76803	//       "location": "path",
76804	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
76805	//       "required": true,
76806	//       "type": "string"
76807	//     }
76808	//   },
76809	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader",
76810	//   "request": {
76811	//     "$ref": "TargetTcpProxiesSetProxyHeaderRequest"
76812	//   },
76813	//   "response": {
76814	//     "$ref": "Operation"
76815	//   },
76816	//   "scopes": [
76817	//     "https://www.googleapis.com/auth/cloud-platform",
76818	//     "https://www.googleapis.com/auth/compute"
76819	//   ]
76820	// }
76821
76822}
76823
76824// method id "compute.targetVpnGateways.aggregatedList":
76825
76826type TargetVpnGatewaysAggregatedListCall struct {
76827	s            *Service
76828	project      string
76829	urlParams_   gensupport.URLParams
76830	ifNoneMatch_ string
76831	ctx_         context.Context
76832	header_      http.Header
76833}
76834
76835// AggregatedList: Retrieves an aggregated list of target VPN gateways.
76836func (r *TargetVpnGatewaysService) AggregatedList(project string) *TargetVpnGatewaysAggregatedListCall {
76837	c := &TargetVpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76838	c.project = project
76839	return c
76840}
76841
76842// Filter sets the optional parameter "filter": Sets a filter
76843// {expression} for filtering listed resources. Your {expression} must
76844// be in the format: field_name comparison_string literal_string.
76845//
76846// The field_name is the name of the field you want to compare. Only
76847// atomic field types are supported (string, number, boolean). The
76848// comparison_string must be either eq (equals) or ne (not equals). The
76849// literal_string is the string value to filter to. The literal value
76850// must be valid for the type of field you are filtering by (string,
76851// number, boolean). For string fields, the literal value is interpreted
76852// as a regular expression using RE2 syntax. The literal value must
76853// match the entire field.
76854//
76855// For example, to filter for instances that do not have a name of
76856// example-instance, you would use name ne example-instance.
76857//
76858// You can filter on nested fields. For example, you could filter on
76859// instances that have set the scheduling.automaticRestart field to
76860// true. Use filtering on nested fields to take advantage of labels to
76861// organize and search for results based on label values.
76862//
76863// To filter on multiple expressions, provide each separate expression
76864// within parentheses. For example, (scheduling.automaticRestart eq
76865// true) (zone eq us-central1-f). Multiple expressions are treated as
76866// AND expressions, meaning that resources must match all expressions to
76867// pass the filters.
76868func (c *TargetVpnGatewaysAggregatedListCall) Filter(filter string) *TargetVpnGatewaysAggregatedListCall {
76869	c.urlParams_.Set("filter", filter)
76870	return c
76871}
76872
76873// MaxResults sets the optional parameter "maxResults": The maximum
76874// number of results per page that should be returned. If the number of
76875// available results is larger than maxResults, Compute Engine returns a
76876// nextPageToken that can be used to get the next page of results in
76877// subsequent list requests. Acceptable values are 0 to 500, inclusive.
76878// (Default: 500)
76879func (c *TargetVpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *TargetVpnGatewaysAggregatedListCall {
76880	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
76881	return c
76882}
76883
76884// OrderBy sets the optional parameter "orderBy": Sorts list results by
76885// a certain order. By default, results are returned in alphanumerical
76886// order based on the resource name.
76887//
76888// You can also sort results in descending order based on the creation
76889// timestamp using orderBy="creationTimestamp desc". This sorts results
76890// based on the creationTimestamp field in reverse chronological order
76891// (newest result first). Use this to sort resources like operations so
76892// that the newest operation is returned first.
76893//
76894// Currently, only sorting by name or creationTimestamp desc is
76895// supported.
76896func (c *TargetVpnGatewaysAggregatedListCall) OrderBy(orderBy string) *TargetVpnGatewaysAggregatedListCall {
76897	c.urlParams_.Set("orderBy", orderBy)
76898	return c
76899}
76900
76901// PageToken sets the optional parameter "pageToken": Specifies a page
76902// token to use. Set pageToken to the nextPageToken returned by a
76903// previous list request to get the next page of results.
76904func (c *TargetVpnGatewaysAggregatedListCall) PageToken(pageToken string) *TargetVpnGatewaysAggregatedListCall {
76905	c.urlParams_.Set("pageToken", pageToken)
76906	return c
76907}
76908
76909// Fields allows partial responses to be retrieved. See
76910// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76911// for more information.
76912func (c *TargetVpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysAggregatedListCall {
76913	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76914	return c
76915}
76916
76917// IfNoneMatch sets the optional parameter which makes the operation
76918// fail if the object's ETag matches the given value. This is useful for
76919// getting updates only after the object has changed since the last
76920// request. Use googleapi.IsNotModified to check whether the response
76921// error from Do is the result of In-None-Match.
76922func (c *TargetVpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysAggregatedListCall {
76923	c.ifNoneMatch_ = entityTag
76924	return c
76925}
76926
76927// Context sets the context to be used in this call's Do method. Any
76928// pending HTTP request will be aborted if the provided context is
76929// canceled.
76930func (c *TargetVpnGatewaysAggregatedListCall) Context(ctx context.Context) *TargetVpnGatewaysAggregatedListCall {
76931	c.ctx_ = ctx
76932	return c
76933}
76934
76935// Header returns an http.Header that can be modified by the caller to
76936// add HTTP headers to the request.
76937func (c *TargetVpnGatewaysAggregatedListCall) Header() http.Header {
76938	if c.header_ == nil {
76939		c.header_ = make(http.Header)
76940	}
76941	return c.header_
76942}
76943
76944func (c *TargetVpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
76945	reqHeaders := make(http.Header)
76946	for k, v := range c.header_ {
76947		reqHeaders[k] = v
76948	}
76949	reqHeaders.Set("User-Agent", c.s.userAgent())
76950	if c.ifNoneMatch_ != "" {
76951		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76952	}
76953	var body io.Reader = nil
76954	c.urlParams_.Set("alt", alt)
76955	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetVpnGateways")
76956	urls += "?" + c.urlParams_.Encode()
76957	req, _ := http.NewRequest("GET", urls, body)
76958	req.Header = reqHeaders
76959	googleapi.Expand(req.URL, map[string]string{
76960		"project": c.project,
76961	})
76962	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76963}
76964
76965// Do executes the "compute.targetVpnGateways.aggregatedList" call.
76966// Exactly one of *TargetVpnGatewayAggregatedList or error will be
76967// non-nil. Any non-2xx status code is an error. Response headers are in
76968// either *TargetVpnGatewayAggregatedList.ServerResponse.Header or (if a
76969// response was returned at all) in error.(*googleapi.Error).Header. Use
76970// googleapi.IsNotModified to check whether the returned error was
76971// because http.StatusNotModified was returned.
76972func (c *TargetVpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayAggregatedList, error) {
76973	gensupport.SetOptions(c.urlParams_, opts...)
76974	res, err := c.doRequest("json")
76975	if res != nil && res.StatusCode == http.StatusNotModified {
76976		if res.Body != nil {
76977			res.Body.Close()
76978		}
76979		return nil, &googleapi.Error{
76980			Code:   res.StatusCode,
76981			Header: res.Header,
76982		}
76983	}
76984	if err != nil {
76985		return nil, err
76986	}
76987	defer googleapi.CloseBody(res)
76988	if err := googleapi.CheckResponse(res); err != nil {
76989		return nil, err
76990	}
76991	ret := &TargetVpnGatewayAggregatedList{
76992		ServerResponse: googleapi.ServerResponse{
76993			Header:         res.Header,
76994			HTTPStatusCode: res.StatusCode,
76995		},
76996	}
76997	target := &ret
76998	if err := gensupport.DecodeResponse(target, res); err != nil {
76999		return nil, err
77000	}
77001	return ret, nil
77002	// {
77003	//   "description": "Retrieves an aggregated list of target VPN gateways.",
77004	//   "httpMethod": "GET",
77005	//   "id": "compute.targetVpnGateways.aggregatedList",
77006	//   "parameterOrder": [
77007	//     "project"
77008	//   ],
77009	//   "parameters": {
77010	//     "filter": {
77011	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
77012	//       "location": "query",
77013	//       "type": "string"
77014	//     },
77015	//     "maxResults": {
77016	//       "default": "500",
77017	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
77018	//       "format": "uint32",
77019	//       "location": "query",
77020	//       "minimum": "0",
77021	//       "type": "integer"
77022	//     },
77023	//     "orderBy": {
77024	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
77025	//       "location": "query",
77026	//       "type": "string"
77027	//     },
77028	//     "pageToken": {
77029	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
77030	//       "location": "query",
77031	//       "type": "string"
77032	//     },
77033	//     "project": {
77034	//       "description": "Project ID for this request.",
77035	//       "location": "path",
77036	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77037	//       "required": true,
77038	//       "type": "string"
77039	//     }
77040	//   },
77041	//   "path": "{project}/aggregated/targetVpnGateways",
77042	//   "response": {
77043	//     "$ref": "TargetVpnGatewayAggregatedList"
77044	//   },
77045	//   "scopes": [
77046	//     "https://www.googleapis.com/auth/cloud-platform",
77047	//     "https://www.googleapis.com/auth/compute",
77048	//     "https://www.googleapis.com/auth/compute.readonly"
77049	//   ]
77050	// }
77051
77052}
77053
77054// Pages invokes f for each page of results.
77055// A non-nil error returned from f will halt the iteration.
77056// The provided context supersedes any context provided to the Context method.
77057func (c *TargetVpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayAggregatedList) error) error {
77058	c.ctx_ = ctx
77059	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
77060	for {
77061		x, err := c.Do()
77062		if err != nil {
77063			return err
77064		}
77065		if err := f(x); err != nil {
77066			return err
77067		}
77068		if x.NextPageToken == "" {
77069			return nil
77070		}
77071		c.PageToken(x.NextPageToken)
77072	}
77073}
77074
77075// method id "compute.targetVpnGateways.delete":
77076
77077type TargetVpnGatewaysDeleteCall struct {
77078	s                *Service
77079	project          string
77080	region           string
77081	targetVpnGateway string
77082	urlParams_       gensupport.URLParams
77083	ctx_             context.Context
77084	header_          http.Header
77085}
77086
77087// Delete: Deletes the specified target VPN gateway.
77088func (r *TargetVpnGatewaysService) Delete(project string, region string, targetVpnGateway string) *TargetVpnGatewaysDeleteCall {
77089	c := &TargetVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77090	c.project = project
77091	c.region = region
77092	c.targetVpnGateway = targetVpnGateway
77093	return c
77094}
77095
77096// RequestId sets the optional parameter "requestId": An optional
77097// request ID to identify requests. Specify a unique request ID so that
77098// if you must retry your request, the server will know to ignore the
77099// request if it has already been completed.
77100//
77101// For example, consider a situation where you make an initial request
77102// and the request times out. If you make the request again with the
77103// same request ID, the server can check if original operation with the
77104// same request ID was received, and if so, will ignore the second
77105// request. This prevents clients from accidentally creating duplicate
77106// commitments.
77107//
77108// The request ID must be a valid UUID with the exception that zero UUID
77109// is not supported (00000000-0000-0000-0000-000000000000).
77110func (c *TargetVpnGatewaysDeleteCall) RequestId(requestId string) *TargetVpnGatewaysDeleteCall {
77111	c.urlParams_.Set("requestId", requestId)
77112	return c
77113}
77114
77115// Fields allows partial responses to be retrieved. See
77116// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77117// for more information.
77118func (c *TargetVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysDeleteCall {
77119	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77120	return c
77121}
77122
77123// Context sets the context to be used in this call's Do method. Any
77124// pending HTTP request will be aborted if the provided context is
77125// canceled.
77126func (c *TargetVpnGatewaysDeleteCall) Context(ctx context.Context) *TargetVpnGatewaysDeleteCall {
77127	c.ctx_ = ctx
77128	return c
77129}
77130
77131// Header returns an http.Header that can be modified by the caller to
77132// add HTTP headers to the request.
77133func (c *TargetVpnGatewaysDeleteCall) Header() http.Header {
77134	if c.header_ == nil {
77135		c.header_ = make(http.Header)
77136	}
77137	return c.header_
77138}
77139
77140func (c *TargetVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
77141	reqHeaders := make(http.Header)
77142	for k, v := range c.header_ {
77143		reqHeaders[k] = v
77144	}
77145	reqHeaders.Set("User-Agent", c.s.userAgent())
77146	var body io.Reader = nil
77147	c.urlParams_.Set("alt", alt)
77148	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
77149	urls += "?" + c.urlParams_.Encode()
77150	req, _ := http.NewRequest("DELETE", urls, body)
77151	req.Header = reqHeaders
77152	googleapi.Expand(req.URL, map[string]string{
77153		"project":          c.project,
77154		"region":           c.region,
77155		"targetVpnGateway": c.targetVpnGateway,
77156	})
77157	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77158}
77159
77160// Do executes the "compute.targetVpnGateways.delete" call.
77161// Exactly one of *Operation or error will be non-nil. Any non-2xx
77162// status code is an error. Response headers are in either
77163// *Operation.ServerResponse.Header or (if a response was returned at
77164// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77165// to check whether the returned error was because
77166// http.StatusNotModified was returned.
77167func (c *TargetVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77168	gensupport.SetOptions(c.urlParams_, opts...)
77169	res, err := c.doRequest("json")
77170	if res != nil && res.StatusCode == http.StatusNotModified {
77171		if res.Body != nil {
77172			res.Body.Close()
77173		}
77174		return nil, &googleapi.Error{
77175			Code:   res.StatusCode,
77176			Header: res.Header,
77177		}
77178	}
77179	if err != nil {
77180		return nil, err
77181	}
77182	defer googleapi.CloseBody(res)
77183	if err := googleapi.CheckResponse(res); err != nil {
77184		return nil, err
77185	}
77186	ret := &Operation{
77187		ServerResponse: googleapi.ServerResponse{
77188			Header:         res.Header,
77189			HTTPStatusCode: res.StatusCode,
77190		},
77191	}
77192	target := &ret
77193	if err := gensupport.DecodeResponse(target, res); err != nil {
77194		return nil, err
77195	}
77196	return ret, nil
77197	// {
77198	//   "description": "Deletes the specified target VPN gateway.",
77199	//   "httpMethod": "DELETE",
77200	//   "id": "compute.targetVpnGateways.delete",
77201	//   "parameterOrder": [
77202	//     "project",
77203	//     "region",
77204	//     "targetVpnGateway"
77205	//   ],
77206	//   "parameters": {
77207	//     "project": {
77208	//       "description": "Project ID for this request.",
77209	//       "location": "path",
77210	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77211	//       "required": true,
77212	//       "type": "string"
77213	//     },
77214	//     "region": {
77215	//       "description": "Name of the region for this request.",
77216	//       "location": "path",
77217	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77218	//       "required": true,
77219	//       "type": "string"
77220	//     },
77221	//     "requestId": {
77222	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77223	//       "location": "query",
77224	//       "type": "string"
77225	//     },
77226	//     "targetVpnGateway": {
77227	//       "description": "Name of the target VPN gateway to delete.",
77228	//       "location": "path",
77229	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77230	//       "required": true,
77231	//       "type": "string"
77232	//     }
77233	//   },
77234	//   "path": "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
77235	//   "response": {
77236	//     "$ref": "Operation"
77237	//   },
77238	//   "scopes": [
77239	//     "https://www.googleapis.com/auth/cloud-platform",
77240	//     "https://www.googleapis.com/auth/compute"
77241	//   ]
77242	// }
77243
77244}
77245
77246// method id "compute.targetVpnGateways.get":
77247
77248type TargetVpnGatewaysGetCall struct {
77249	s                *Service
77250	project          string
77251	region           string
77252	targetVpnGateway string
77253	urlParams_       gensupport.URLParams
77254	ifNoneMatch_     string
77255	ctx_             context.Context
77256	header_          http.Header
77257}
77258
77259// Get: Returns the specified target VPN gateway. Get a list of
77260// available target VPN gateways by making a list() request.
77261func (r *TargetVpnGatewaysService) Get(project string, region string, targetVpnGateway string) *TargetVpnGatewaysGetCall {
77262	c := &TargetVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77263	c.project = project
77264	c.region = region
77265	c.targetVpnGateway = targetVpnGateway
77266	return c
77267}
77268
77269// Fields allows partial responses to be retrieved. See
77270// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77271// for more information.
77272func (c *TargetVpnGatewaysGetCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysGetCall {
77273	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77274	return c
77275}
77276
77277// IfNoneMatch sets the optional parameter which makes the operation
77278// fail if the object's ETag matches the given value. This is useful for
77279// getting updates only after the object has changed since the last
77280// request. Use googleapi.IsNotModified to check whether the response
77281// error from Do is the result of In-None-Match.
77282func (c *TargetVpnGatewaysGetCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysGetCall {
77283	c.ifNoneMatch_ = entityTag
77284	return c
77285}
77286
77287// Context sets the context to be used in this call's Do method. Any
77288// pending HTTP request will be aborted if the provided context is
77289// canceled.
77290func (c *TargetVpnGatewaysGetCall) Context(ctx context.Context) *TargetVpnGatewaysGetCall {
77291	c.ctx_ = ctx
77292	return c
77293}
77294
77295// Header returns an http.Header that can be modified by the caller to
77296// add HTTP headers to the request.
77297func (c *TargetVpnGatewaysGetCall) Header() http.Header {
77298	if c.header_ == nil {
77299		c.header_ = make(http.Header)
77300	}
77301	return c.header_
77302}
77303
77304func (c *TargetVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
77305	reqHeaders := make(http.Header)
77306	for k, v := range c.header_ {
77307		reqHeaders[k] = v
77308	}
77309	reqHeaders.Set("User-Agent", c.s.userAgent())
77310	if c.ifNoneMatch_ != "" {
77311		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
77312	}
77313	var body io.Reader = nil
77314	c.urlParams_.Set("alt", alt)
77315	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
77316	urls += "?" + c.urlParams_.Encode()
77317	req, _ := http.NewRequest("GET", urls, body)
77318	req.Header = reqHeaders
77319	googleapi.Expand(req.URL, map[string]string{
77320		"project":          c.project,
77321		"region":           c.region,
77322		"targetVpnGateway": c.targetVpnGateway,
77323	})
77324	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77325}
77326
77327// Do executes the "compute.targetVpnGateways.get" call.
77328// Exactly one of *TargetVpnGateway or error will be non-nil. Any
77329// non-2xx status code is an error. Response headers are in either
77330// *TargetVpnGateway.ServerResponse.Header or (if a response was
77331// returned at all) in error.(*googleapi.Error).Header. Use
77332// googleapi.IsNotModified to check whether the returned error was
77333// because http.StatusNotModified was returned.
77334func (c *TargetVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*TargetVpnGateway, error) {
77335	gensupport.SetOptions(c.urlParams_, opts...)
77336	res, err := c.doRequest("json")
77337	if res != nil && res.StatusCode == http.StatusNotModified {
77338		if res.Body != nil {
77339			res.Body.Close()
77340		}
77341		return nil, &googleapi.Error{
77342			Code:   res.StatusCode,
77343			Header: res.Header,
77344		}
77345	}
77346	if err != nil {
77347		return nil, err
77348	}
77349	defer googleapi.CloseBody(res)
77350	if err := googleapi.CheckResponse(res); err != nil {
77351		return nil, err
77352	}
77353	ret := &TargetVpnGateway{
77354		ServerResponse: googleapi.ServerResponse{
77355			Header:         res.Header,
77356			HTTPStatusCode: res.StatusCode,
77357		},
77358	}
77359	target := &ret
77360	if err := gensupport.DecodeResponse(target, res); err != nil {
77361		return nil, err
77362	}
77363	return ret, nil
77364	// {
77365	//   "description": "Returns the specified target VPN gateway. Get a list of available target VPN gateways by making a list() request.",
77366	//   "httpMethod": "GET",
77367	//   "id": "compute.targetVpnGateways.get",
77368	//   "parameterOrder": [
77369	//     "project",
77370	//     "region",
77371	//     "targetVpnGateway"
77372	//   ],
77373	//   "parameters": {
77374	//     "project": {
77375	//       "description": "Project ID for this request.",
77376	//       "location": "path",
77377	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77378	//       "required": true,
77379	//       "type": "string"
77380	//     },
77381	//     "region": {
77382	//       "description": "Name of the region for this request.",
77383	//       "location": "path",
77384	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77385	//       "required": true,
77386	//       "type": "string"
77387	//     },
77388	//     "targetVpnGateway": {
77389	//       "description": "Name of the target VPN gateway to return.",
77390	//       "location": "path",
77391	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77392	//       "required": true,
77393	//       "type": "string"
77394	//     }
77395	//   },
77396	//   "path": "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
77397	//   "response": {
77398	//     "$ref": "TargetVpnGateway"
77399	//   },
77400	//   "scopes": [
77401	//     "https://www.googleapis.com/auth/cloud-platform",
77402	//     "https://www.googleapis.com/auth/compute",
77403	//     "https://www.googleapis.com/auth/compute.readonly"
77404	//   ]
77405	// }
77406
77407}
77408
77409// method id "compute.targetVpnGateways.insert":
77410
77411type TargetVpnGatewaysInsertCall struct {
77412	s                *Service
77413	project          string
77414	region           string
77415	targetvpngateway *TargetVpnGateway
77416	urlParams_       gensupport.URLParams
77417	ctx_             context.Context
77418	header_          http.Header
77419}
77420
77421// Insert: Creates a target VPN gateway in the specified project and
77422// region using the data included in the request.
77423func (r *TargetVpnGatewaysService) Insert(project string, region string, targetvpngateway *TargetVpnGateway) *TargetVpnGatewaysInsertCall {
77424	c := &TargetVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77425	c.project = project
77426	c.region = region
77427	c.targetvpngateway = targetvpngateway
77428	return c
77429}
77430
77431// RequestId sets the optional parameter "requestId": An optional
77432// request ID to identify requests. Specify a unique request ID so that
77433// if you must retry your request, the server will know to ignore the
77434// request if it has already been completed.
77435//
77436// For example, consider a situation where you make an initial request
77437// and the request times out. If you make the request again with the
77438// same request ID, the server can check if original operation with the
77439// same request ID was received, and if so, will ignore the second
77440// request. This prevents clients from accidentally creating duplicate
77441// commitments.
77442//
77443// The request ID must be a valid UUID with the exception that zero UUID
77444// is not supported (00000000-0000-0000-0000-000000000000).
77445func (c *TargetVpnGatewaysInsertCall) RequestId(requestId string) *TargetVpnGatewaysInsertCall {
77446	c.urlParams_.Set("requestId", requestId)
77447	return c
77448}
77449
77450// Fields allows partial responses to be retrieved. See
77451// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77452// for more information.
77453func (c *TargetVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysInsertCall {
77454	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77455	return c
77456}
77457
77458// Context sets the context to be used in this call's Do method. Any
77459// pending HTTP request will be aborted if the provided context is
77460// canceled.
77461func (c *TargetVpnGatewaysInsertCall) Context(ctx context.Context) *TargetVpnGatewaysInsertCall {
77462	c.ctx_ = ctx
77463	return c
77464}
77465
77466// Header returns an http.Header that can be modified by the caller to
77467// add HTTP headers to the request.
77468func (c *TargetVpnGatewaysInsertCall) Header() http.Header {
77469	if c.header_ == nil {
77470		c.header_ = make(http.Header)
77471	}
77472	return c.header_
77473}
77474
77475func (c *TargetVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
77476	reqHeaders := make(http.Header)
77477	for k, v := range c.header_ {
77478		reqHeaders[k] = v
77479	}
77480	reqHeaders.Set("User-Agent", c.s.userAgent())
77481	var body io.Reader = nil
77482	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetvpngateway)
77483	if err != nil {
77484		return nil, err
77485	}
77486	reqHeaders.Set("Content-Type", "application/json")
77487	c.urlParams_.Set("alt", alt)
77488	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways")
77489	urls += "?" + c.urlParams_.Encode()
77490	req, _ := http.NewRequest("POST", urls, body)
77491	req.Header = reqHeaders
77492	googleapi.Expand(req.URL, map[string]string{
77493		"project": c.project,
77494		"region":  c.region,
77495	})
77496	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77497}
77498
77499// Do executes the "compute.targetVpnGateways.insert" call.
77500// Exactly one of *Operation or error will be non-nil. Any non-2xx
77501// status code is an error. Response headers are in either
77502// *Operation.ServerResponse.Header or (if a response was returned at
77503// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77504// to check whether the returned error was because
77505// http.StatusNotModified was returned.
77506func (c *TargetVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77507	gensupport.SetOptions(c.urlParams_, opts...)
77508	res, err := c.doRequest("json")
77509	if res != nil && res.StatusCode == http.StatusNotModified {
77510		if res.Body != nil {
77511			res.Body.Close()
77512		}
77513		return nil, &googleapi.Error{
77514			Code:   res.StatusCode,
77515			Header: res.Header,
77516		}
77517	}
77518	if err != nil {
77519		return nil, err
77520	}
77521	defer googleapi.CloseBody(res)
77522	if err := googleapi.CheckResponse(res); err != nil {
77523		return nil, err
77524	}
77525	ret := &Operation{
77526		ServerResponse: googleapi.ServerResponse{
77527			Header:         res.Header,
77528			HTTPStatusCode: res.StatusCode,
77529		},
77530	}
77531	target := &ret
77532	if err := gensupport.DecodeResponse(target, res); err != nil {
77533		return nil, err
77534	}
77535	return ret, nil
77536	// {
77537	//   "description": "Creates a target VPN gateway in the specified project and region using the data included in the request.",
77538	//   "httpMethod": "POST",
77539	//   "id": "compute.targetVpnGateways.insert",
77540	//   "parameterOrder": [
77541	//     "project",
77542	//     "region"
77543	//   ],
77544	//   "parameters": {
77545	//     "project": {
77546	//       "description": "Project ID for this request.",
77547	//       "location": "path",
77548	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77549	//       "required": true,
77550	//       "type": "string"
77551	//     },
77552	//     "region": {
77553	//       "description": "Name of the region for this request.",
77554	//       "location": "path",
77555	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77556	//       "required": true,
77557	//       "type": "string"
77558	//     },
77559	//     "requestId": {
77560	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77561	//       "location": "query",
77562	//       "type": "string"
77563	//     }
77564	//   },
77565	//   "path": "{project}/regions/{region}/targetVpnGateways",
77566	//   "request": {
77567	//     "$ref": "TargetVpnGateway"
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.targetVpnGateways.list":
77581
77582type TargetVpnGatewaysListCall struct {
77583	s            *Service
77584	project      string
77585	region       string
77586	urlParams_   gensupport.URLParams
77587	ifNoneMatch_ string
77588	ctx_         context.Context
77589	header_      http.Header
77590}
77591
77592// List: Retrieves a list of target VPN gateways available to the
77593// specified project and region.
77594func (r *TargetVpnGatewaysService) List(project string, region string) *TargetVpnGatewaysListCall {
77595	c := &TargetVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77596	c.project = project
77597	c.region = region
77598	return c
77599}
77600
77601// Filter sets the optional parameter "filter": Sets a filter
77602// {expression} for filtering listed resources. Your {expression} must
77603// be in the format: field_name comparison_string literal_string.
77604//
77605// The field_name is the name of the field you want to compare. Only
77606// atomic field types are supported (string, number, boolean). The
77607// comparison_string must be either eq (equals) or ne (not equals). The
77608// literal_string is the string value to filter to. The literal value
77609// must be valid for the type of field you are filtering by (string,
77610// number, boolean). For string fields, the literal value is interpreted
77611// as a regular expression using RE2 syntax. The literal value must
77612// match the entire field.
77613//
77614// For example, to filter for instances that do not have a name of
77615// example-instance, you would use name ne example-instance.
77616//
77617// You can filter on nested fields. For example, you could filter on
77618// instances that have set the scheduling.automaticRestart field to
77619// true. Use filtering on nested fields to take advantage of labels to
77620// organize and search for results based on label values.
77621//
77622// To filter on multiple expressions, provide each separate expression
77623// within parentheses. For example, (scheduling.automaticRestart eq
77624// true) (zone eq us-central1-f). Multiple expressions are treated as
77625// AND expressions, meaning that resources must match all expressions to
77626// pass the filters.
77627func (c *TargetVpnGatewaysListCall) Filter(filter string) *TargetVpnGatewaysListCall {
77628	c.urlParams_.Set("filter", filter)
77629	return c
77630}
77631
77632// MaxResults sets the optional parameter "maxResults": The maximum
77633// number of results per page that should be returned. If the number of
77634// available results is larger than maxResults, Compute Engine returns a
77635// nextPageToken that can be used to get the next page of results in
77636// subsequent list requests. Acceptable values are 0 to 500, inclusive.
77637// (Default: 500)
77638func (c *TargetVpnGatewaysListCall) MaxResults(maxResults int64) *TargetVpnGatewaysListCall {
77639	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
77640	return c
77641}
77642
77643// OrderBy sets the optional parameter "orderBy": Sorts list results by
77644// a certain order. By default, results are returned in alphanumerical
77645// order based on the resource name.
77646//
77647// You can also sort results in descending order based on the creation
77648// timestamp using orderBy="creationTimestamp desc". This sorts results
77649// based on the creationTimestamp field in reverse chronological order
77650// (newest result first). Use this to sort resources like operations so
77651// that the newest operation is returned first.
77652//
77653// Currently, only sorting by name or creationTimestamp desc is
77654// supported.
77655func (c *TargetVpnGatewaysListCall) OrderBy(orderBy string) *TargetVpnGatewaysListCall {
77656	c.urlParams_.Set("orderBy", orderBy)
77657	return c
77658}
77659
77660// PageToken sets the optional parameter "pageToken": Specifies a page
77661// token to use. Set pageToken to the nextPageToken returned by a
77662// previous list request to get the next page of results.
77663func (c *TargetVpnGatewaysListCall) PageToken(pageToken string) *TargetVpnGatewaysListCall {
77664	c.urlParams_.Set("pageToken", pageToken)
77665	return c
77666}
77667
77668// Fields allows partial responses to be retrieved. See
77669// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77670// for more information.
77671func (c *TargetVpnGatewaysListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysListCall {
77672	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77673	return c
77674}
77675
77676// IfNoneMatch sets the optional parameter which makes the operation
77677// fail if the object's ETag matches the given value. This is useful for
77678// getting updates only after the object has changed since the last
77679// request. Use googleapi.IsNotModified to check whether the response
77680// error from Do is the result of In-None-Match.
77681func (c *TargetVpnGatewaysListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysListCall {
77682	c.ifNoneMatch_ = entityTag
77683	return c
77684}
77685
77686// Context sets the context to be used in this call's Do method. Any
77687// pending HTTP request will be aborted if the provided context is
77688// canceled.
77689func (c *TargetVpnGatewaysListCall) Context(ctx context.Context) *TargetVpnGatewaysListCall {
77690	c.ctx_ = ctx
77691	return c
77692}
77693
77694// Header returns an http.Header that can be modified by the caller to
77695// add HTTP headers to the request.
77696func (c *TargetVpnGatewaysListCall) Header() http.Header {
77697	if c.header_ == nil {
77698		c.header_ = make(http.Header)
77699	}
77700	return c.header_
77701}
77702
77703func (c *TargetVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
77704	reqHeaders := make(http.Header)
77705	for k, v := range c.header_ {
77706		reqHeaders[k] = v
77707	}
77708	reqHeaders.Set("User-Agent", c.s.userAgent())
77709	if c.ifNoneMatch_ != "" {
77710		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
77711	}
77712	var body io.Reader = nil
77713	c.urlParams_.Set("alt", alt)
77714	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways")
77715	urls += "?" + c.urlParams_.Encode()
77716	req, _ := http.NewRequest("GET", urls, body)
77717	req.Header = reqHeaders
77718	googleapi.Expand(req.URL, map[string]string{
77719		"project": c.project,
77720		"region":  c.region,
77721	})
77722	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77723}
77724
77725// Do executes the "compute.targetVpnGateways.list" call.
77726// Exactly one of *TargetVpnGatewayList or error will be non-nil. Any
77727// non-2xx status code is an error. Response headers are in either
77728// *TargetVpnGatewayList.ServerResponse.Header or (if a response was
77729// returned at all) in error.(*googleapi.Error).Header. Use
77730// googleapi.IsNotModified to check whether the returned error was
77731// because http.StatusNotModified was returned.
77732func (c *TargetVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayList, error) {
77733	gensupport.SetOptions(c.urlParams_, opts...)
77734	res, err := c.doRequest("json")
77735	if res != nil && res.StatusCode == http.StatusNotModified {
77736		if res.Body != nil {
77737			res.Body.Close()
77738		}
77739		return nil, &googleapi.Error{
77740			Code:   res.StatusCode,
77741			Header: res.Header,
77742		}
77743	}
77744	if err != nil {
77745		return nil, err
77746	}
77747	defer googleapi.CloseBody(res)
77748	if err := googleapi.CheckResponse(res); err != nil {
77749		return nil, err
77750	}
77751	ret := &TargetVpnGatewayList{
77752		ServerResponse: googleapi.ServerResponse{
77753			Header:         res.Header,
77754			HTTPStatusCode: res.StatusCode,
77755		},
77756	}
77757	target := &ret
77758	if err := gensupport.DecodeResponse(target, res); err != nil {
77759		return nil, err
77760	}
77761	return ret, nil
77762	// {
77763	//   "description": "Retrieves a list of target VPN gateways available to the specified project and region.",
77764	//   "httpMethod": "GET",
77765	//   "id": "compute.targetVpnGateways.list",
77766	//   "parameterOrder": [
77767	//     "project",
77768	//     "region"
77769	//   ],
77770	//   "parameters": {
77771	//     "filter": {
77772	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
77773	//       "location": "query",
77774	//       "type": "string"
77775	//     },
77776	//     "maxResults": {
77777	//       "default": "500",
77778	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
77779	//       "format": "uint32",
77780	//       "location": "query",
77781	//       "minimum": "0",
77782	//       "type": "integer"
77783	//     },
77784	//     "orderBy": {
77785	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
77786	//       "location": "query",
77787	//       "type": "string"
77788	//     },
77789	//     "pageToken": {
77790	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
77791	//       "location": "query",
77792	//       "type": "string"
77793	//     },
77794	//     "project": {
77795	//       "description": "Project ID for this request.",
77796	//       "location": "path",
77797	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77798	//       "required": true,
77799	//       "type": "string"
77800	//     },
77801	//     "region": {
77802	//       "description": "Name of the region for this request.",
77803	//       "location": "path",
77804	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77805	//       "required": true,
77806	//       "type": "string"
77807	//     }
77808	//   },
77809	//   "path": "{project}/regions/{region}/targetVpnGateways",
77810	//   "response": {
77811	//     "$ref": "TargetVpnGatewayList"
77812	//   },
77813	//   "scopes": [
77814	//     "https://www.googleapis.com/auth/cloud-platform",
77815	//     "https://www.googleapis.com/auth/compute",
77816	//     "https://www.googleapis.com/auth/compute.readonly"
77817	//   ]
77818	// }
77819
77820}
77821
77822// Pages invokes f for each page of results.
77823// A non-nil error returned from f will halt the iteration.
77824// The provided context supersedes any context provided to the Context method.
77825func (c *TargetVpnGatewaysListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayList) error) error {
77826	c.ctx_ = ctx
77827	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
77828	for {
77829		x, err := c.Do()
77830		if err != nil {
77831			return err
77832		}
77833		if err := f(x); err != nil {
77834			return err
77835		}
77836		if x.NextPageToken == "" {
77837			return nil
77838		}
77839		c.PageToken(x.NextPageToken)
77840	}
77841}
77842
77843// method id "compute.urlMaps.delete":
77844
77845type UrlMapsDeleteCall struct {
77846	s          *Service
77847	project    string
77848	urlMap     string
77849	urlParams_ gensupport.URLParams
77850	ctx_       context.Context
77851	header_    http.Header
77852}
77853
77854// Delete: Deletes the specified UrlMap resource.
77855// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/delete
77856func (r *UrlMapsService) Delete(project string, urlMap string) *UrlMapsDeleteCall {
77857	c := &UrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77858	c.project = project
77859	c.urlMap = urlMap
77860	return c
77861}
77862
77863// RequestId sets the optional parameter "requestId": An optional
77864// request ID to identify requests. Specify a unique request ID so that
77865// if you must retry your request, the server will know to ignore the
77866// request if it has already been completed.
77867//
77868// For example, consider a situation where you make an initial request
77869// and the request times out. If you make the request again with the
77870// same request ID, the server can check if original operation with the
77871// same request ID was received, and if so, will ignore the second
77872// request. This prevents clients from accidentally creating duplicate
77873// commitments.
77874//
77875// The request ID must be a valid UUID with the exception that zero UUID
77876// is not supported (00000000-0000-0000-0000-000000000000).
77877func (c *UrlMapsDeleteCall) RequestId(requestId string) *UrlMapsDeleteCall {
77878	c.urlParams_.Set("requestId", requestId)
77879	return c
77880}
77881
77882// Fields allows partial responses to be retrieved. See
77883// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77884// for more information.
77885func (c *UrlMapsDeleteCall) Fields(s ...googleapi.Field) *UrlMapsDeleteCall {
77886	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77887	return c
77888}
77889
77890// Context sets the context to be used in this call's Do method. Any
77891// pending HTTP request will be aborted if the provided context is
77892// canceled.
77893func (c *UrlMapsDeleteCall) Context(ctx context.Context) *UrlMapsDeleteCall {
77894	c.ctx_ = ctx
77895	return c
77896}
77897
77898// Header returns an http.Header that can be modified by the caller to
77899// add HTTP headers to the request.
77900func (c *UrlMapsDeleteCall) Header() http.Header {
77901	if c.header_ == nil {
77902		c.header_ = make(http.Header)
77903	}
77904	return c.header_
77905}
77906
77907func (c *UrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
77908	reqHeaders := make(http.Header)
77909	for k, v := range c.header_ {
77910		reqHeaders[k] = v
77911	}
77912	reqHeaders.Set("User-Agent", c.s.userAgent())
77913	var body io.Reader = nil
77914	c.urlParams_.Set("alt", alt)
77915	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
77916	urls += "?" + c.urlParams_.Encode()
77917	req, _ := http.NewRequest("DELETE", urls, body)
77918	req.Header = reqHeaders
77919	googleapi.Expand(req.URL, map[string]string{
77920		"project": c.project,
77921		"urlMap":  c.urlMap,
77922	})
77923	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77924}
77925
77926// Do executes the "compute.urlMaps.delete" call.
77927// Exactly one of *Operation or error will be non-nil. Any non-2xx
77928// status code is an error. Response headers are in either
77929// *Operation.ServerResponse.Header or (if a response was returned at
77930// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77931// to check whether the returned error was because
77932// http.StatusNotModified was returned.
77933func (c *UrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77934	gensupport.SetOptions(c.urlParams_, opts...)
77935	res, err := c.doRequest("json")
77936	if res != nil && res.StatusCode == http.StatusNotModified {
77937		if res.Body != nil {
77938			res.Body.Close()
77939		}
77940		return nil, &googleapi.Error{
77941			Code:   res.StatusCode,
77942			Header: res.Header,
77943		}
77944	}
77945	if err != nil {
77946		return nil, err
77947	}
77948	defer googleapi.CloseBody(res)
77949	if err := googleapi.CheckResponse(res); err != nil {
77950		return nil, err
77951	}
77952	ret := &Operation{
77953		ServerResponse: googleapi.ServerResponse{
77954			Header:         res.Header,
77955			HTTPStatusCode: res.StatusCode,
77956		},
77957	}
77958	target := &ret
77959	if err := gensupport.DecodeResponse(target, res); err != nil {
77960		return nil, err
77961	}
77962	return ret, nil
77963	// {
77964	//   "description": "Deletes the specified UrlMap resource.",
77965	//   "httpMethod": "DELETE",
77966	//   "id": "compute.urlMaps.delete",
77967	//   "parameterOrder": [
77968	//     "project",
77969	//     "urlMap"
77970	//   ],
77971	//   "parameters": {
77972	//     "project": {
77973	//       "description": "Project ID for this request.",
77974	//       "location": "path",
77975	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77976	//       "required": true,
77977	//       "type": "string"
77978	//     },
77979	//     "requestId": {
77980	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77981	//       "location": "query",
77982	//       "type": "string"
77983	//     },
77984	//     "urlMap": {
77985	//       "description": "Name of the UrlMap resource to delete.",
77986	//       "location": "path",
77987	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77988	//       "required": true,
77989	//       "type": "string"
77990	//     }
77991	//   },
77992	//   "path": "{project}/global/urlMaps/{urlMap}",
77993	//   "response": {
77994	//     "$ref": "Operation"
77995	//   },
77996	//   "scopes": [
77997	//     "https://www.googleapis.com/auth/cloud-platform",
77998	//     "https://www.googleapis.com/auth/compute"
77999	//   ]
78000	// }
78001
78002}
78003
78004// method id "compute.urlMaps.get":
78005
78006type UrlMapsGetCall struct {
78007	s            *Service
78008	project      string
78009	urlMap       string
78010	urlParams_   gensupport.URLParams
78011	ifNoneMatch_ string
78012	ctx_         context.Context
78013	header_      http.Header
78014}
78015
78016// Get: Returns the specified UrlMap resource. Get a list of available
78017// URL maps by making a list() request.
78018// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/get
78019func (r *UrlMapsService) Get(project string, urlMap string) *UrlMapsGetCall {
78020	c := &UrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78021	c.project = project
78022	c.urlMap = urlMap
78023	return c
78024}
78025
78026// Fields allows partial responses to be retrieved. See
78027// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78028// for more information.
78029func (c *UrlMapsGetCall) Fields(s ...googleapi.Field) *UrlMapsGetCall {
78030	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78031	return c
78032}
78033
78034// IfNoneMatch sets the optional parameter which makes the operation
78035// fail if the object's ETag matches the given value. This is useful for
78036// getting updates only after the object has changed since the last
78037// request. Use googleapi.IsNotModified to check whether the response
78038// error from Do is the result of In-None-Match.
78039func (c *UrlMapsGetCall) IfNoneMatch(entityTag string) *UrlMapsGetCall {
78040	c.ifNoneMatch_ = entityTag
78041	return c
78042}
78043
78044// Context sets the context to be used in this call's Do method. Any
78045// pending HTTP request will be aborted if the provided context is
78046// canceled.
78047func (c *UrlMapsGetCall) Context(ctx context.Context) *UrlMapsGetCall {
78048	c.ctx_ = ctx
78049	return c
78050}
78051
78052// Header returns an http.Header that can be modified by the caller to
78053// add HTTP headers to the request.
78054func (c *UrlMapsGetCall) Header() http.Header {
78055	if c.header_ == nil {
78056		c.header_ = make(http.Header)
78057	}
78058	return c.header_
78059}
78060
78061func (c *UrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
78062	reqHeaders := make(http.Header)
78063	for k, v := range c.header_ {
78064		reqHeaders[k] = v
78065	}
78066	reqHeaders.Set("User-Agent", c.s.userAgent())
78067	if c.ifNoneMatch_ != "" {
78068		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78069	}
78070	var body io.Reader = nil
78071	c.urlParams_.Set("alt", alt)
78072	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
78073	urls += "?" + c.urlParams_.Encode()
78074	req, _ := http.NewRequest("GET", urls, body)
78075	req.Header = reqHeaders
78076	googleapi.Expand(req.URL, map[string]string{
78077		"project": c.project,
78078		"urlMap":  c.urlMap,
78079	})
78080	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78081}
78082
78083// Do executes the "compute.urlMaps.get" call.
78084// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
78085// code is an error. Response headers are in either
78086// *UrlMap.ServerResponse.Header or (if a response was returned at all)
78087// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
78088// check whether the returned error was because http.StatusNotModified
78089// was returned.
78090func (c *UrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
78091	gensupport.SetOptions(c.urlParams_, opts...)
78092	res, err := c.doRequest("json")
78093	if res != nil && res.StatusCode == http.StatusNotModified {
78094		if res.Body != nil {
78095			res.Body.Close()
78096		}
78097		return nil, &googleapi.Error{
78098			Code:   res.StatusCode,
78099			Header: res.Header,
78100		}
78101	}
78102	if err != nil {
78103		return nil, err
78104	}
78105	defer googleapi.CloseBody(res)
78106	if err := googleapi.CheckResponse(res); err != nil {
78107		return nil, err
78108	}
78109	ret := &UrlMap{
78110		ServerResponse: googleapi.ServerResponse{
78111			Header:         res.Header,
78112			HTTPStatusCode: res.StatusCode,
78113		},
78114	}
78115	target := &ret
78116	if err := gensupport.DecodeResponse(target, res); err != nil {
78117		return nil, err
78118	}
78119	return ret, nil
78120	// {
78121	//   "description": "Returns the specified UrlMap resource. Get a list of available URL maps by making a list() request.",
78122	//   "httpMethod": "GET",
78123	//   "id": "compute.urlMaps.get",
78124	//   "parameterOrder": [
78125	//     "project",
78126	//     "urlMap"
78127	//   ],
78128	//   "parameters": {
78129	//     "project": {
78130	//       "description": "Project ID for this request.",
78131	//       "location": "path",
78132	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78133	//       "required": true,
78134	//       "type": "string"
78135	//     },
78136	//     "urlMap": {
78137	//       "description": "Name of the UrlMap resource to return.",
78138	//       "location": "path",
78139	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78140	//       "required": true,
78141	//       "type": "string"
78142	//     }
78143	//   },
78144	//   "path": "{project}/global/urlMaps/{urlMap}",
78145	//   "response": {
78146	//     "$ref": "UrlMap"
78147	//   },
78148	//   "scopes": [
78149	//     "https://www.googleapis.com/auth/cloud-platform",
78150	//     "https://www.googleapis.com/auth/compute",
78151	//     "https://www.googleapis.com/auth/compute.readonly"
78152	//   ]
78153	// }
78154
78155}
78156
78157// method id "compute.urlMaps.insert":
78158
78159type UrlMapsInsertCall struct {
78160	s          *Service
78161	project    string
78162	urlmap     *UrlMap
78163	urlParams_ gensupport.URLParams
78164	ctx_       context.Context
78165	header_    http.Header
78166}
78167
78168// Insert: Creates a UrlMap resource in the specified project using the
78169// data included in the request.
78170// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/insert
78171func (r *UrlMapsService) Insert(project string, urlmap *UrlMap) *UrlMapsInsertCall {
78172	c := &UrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78173	c.project = project
78174	c.urlmap = urlmap
78175	return c
78176}
78177
78178// RequestId sets the optional parameter "requestId": An optional
78179// request ID to identify requests. Specify a unique request ID so that
78180// if you must retry your request, the server will know to ignore the
78181// request if it has already been completed.
78182//
78183// For example, consider a situation where you make an initial request
78184// and the request times out. If you make the request again with the
78185// same request ID, the server can check if original operation with the
78186// same request ID was received, and if so, will ignore the second
78187// request. This prevents clients from accidentally creating duplicate
78188// commitments.
78189//
78190// The request ID must be a valid UUID with the exception that zero UUID
78191// is not supported (00000000-0000-0000-0000-000000000000).
78192func (c *UrlMapsInsertCall) RequestId(requestId string) *UrlMapsInsertCall {
78193	c.urlParams_.Set("requestId", requestId)
78194	return c
78195}
78196
78197// Fields allows partial responses to be retrieved. See
78198// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78199// for more information.
78200func (c *UrlMapsInsertCall) Fields(s ...googleapi.Field) *UrlMapsInsertCall {
78201	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78202	return c
78203}
78204
78205// Context sets the context to be used in this call's Do method. Any
78206// pending HTTP request will be aborted if the provided context is
78207// canceled.
78208func (c *UrlMapsInsertCall) Context(ctx context.Context) *UrlMapsInsertCall {
78209	c.ctx_ = ctx
78210	return c
78211}
78212
78213// Header returns an http.Header that can be modified by the caller to
78214// add HTTP headers to the request.
78215func (c *UrlMapsInsertCall) Header() http.Header {
78216	if c.header_ == nil {
78217		c.header_ = make(http.Header)
78218	}
78219	return c.header_
78220}
78221
78222func (c *UrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
78223	reqHeaders := make(http.Header)
78224	for k, v := range c.header_ {
78225		reqHeaders[k] = v
78226	}
78227	reqHeaders.Set("User-Agent", c.s.userAgent())
78228	var body io.Reader = nil
78229	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
78230	if err != nil {
78231		return nil, err
78232	}
78233	reqHeaders.Set("Content-Type", "application/json")
78234	c.urlParams_.Set("alt", alt)
78235	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps")
78236	urls += "?" + c.urlParams_.Encode()
78237	req, _ := http.NewRequest("POST", urls, body)
78238	req.Header = reqHeaders
78239	googleapi.Expand(req.URL, map[string]string{
78240		"project": c.project,
78241	})
78242	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78243}
78244
78245// Do executes the "compute.urlMaps.insert" call.
78246// Exactly one of *Operation or error will be non-nil. Any non-2xx
78247// status code is an error. Response headers are in either
78248// *Operation.ServerResponse.Header or (if a response was returned at
78249// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78250// to check whether the returned error was because
78251// http.StatusNotModified was returned.
78252func (c *UrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78253	gensupport.SetOptions(c.urlParams_, opts...)
78254	res, err := c.doRequest("json")
78255	if res != nil && res.StatusCode == http.StatusNotModified {
78256		if res.Body != nil {
78257			res.Body.Close()
78258		}
78259		return nil, &googleapi.Error{
78260			Code:   res.StatusCode,
78261			Header: res.Header,
78262		}
78263	}
78264	if err != nil {
78265		return nil, err
78266	}
78267	defer googleapi.CloseBody(res)
78268	if err := googleapi.CheckResponse(res); err != nil {
78269		return nil, err
78270	}
78271	ret := &Operation{
78272		ServerResponse: googleapi.ServerResponse{
78273			Header:         res.Header,
78274			HTTPStatusCode: res.StatusCode,
78275		},
78276	}
78277	target := &ret
78278	if err := gensupport.DecodeResponse(target, res); err != nil {
78279		return nil, err
78280	}
78281	return ret, nil
78282	// {
78283	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
78284	//   "httpMethod": "POST",
78285	//   "id": "compute.urlMaps.insert",
78286	//   "parameterOrder": [
78287	//     "project"
78288	//   ],
78289	//   "parameters": {
78290	//     "project": {
78291	//       "description": "Project ID for this request.",
78292	//       "location": "path",
78293	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78294	//       "required": true,
78295	//       "type": "string"
78296	//     },
78297	//     "requestId": {
78298	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78299	//       "location": "query",
78300	//       "type": "string"
78301	//     }
78302	//   },
78303	//   "path": "{project}/global/urlMaps",
78304	//   "request": {
78305	//     "$ref": "UrlMap"
78306	//   },
78307	//   "response": {
78308	//     "$ref": "Operation"
78309	//   },
78310	//   "scopes": [
78311	//     "https://www.googleapis.com/auth/cloud-platform",
78312	//     "https://www.googleapis.com/auth/compute"
78313	//   ]
78314	// }
78315
78316}
78317
78318// method id "compute.urlMaps.invalidateCache":
78319
78320type UrlMapsInvalidateCacheCall struct {
78321	s                     *Service
78322	project               string
78323	urlMap                string
78324	cacheinvalidationrule *CacheInvalidationRule
78325	urlParams_            gensupport.URLParams
78326	ctx_                  context.Context
78327	header_               http.Header
78328}
78329
78330// InvalidateCache: Initiates a cache invalidation operation,
78331// invalidating the specified path, scoped to the specified UrlMap.
78332func (r *UrlMapsService) InvalidateCache(project string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *UrlMapsInvalidateCacheCall {
78333	c := &UrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78334	c.project = project
78335	c.urlMap = urlMap
78336	c.cacheinvalidationrule = cacheinvalidationrule
78337	return c
78338}
78339
78340// RequestId sets the optional parameter "requestId": An optional
78341// request ID to identify requests. Specify a unique request ID so that
78342// if you must retry your request, the server will know to ignore the
78343// request if it has already been completed.
78344//
78345// For example, consider a situation where you make an initial request
78346// and the request times out. If you make the request again with the
78347// same request ID, the server can check if original operation with the
78348// same request ID was received, and if so, will ignore the second
78349// request. This prevents clients from accidentally creating duplicate
78350// commitments.
78351//
78352// The request ID must be a valid UUID with the exception that zero UUID
78353// is not supported (00000000-0000-0000-0000-000000000000).
78354func (c *UrlMapsInvalidateCacheCall) RequestId(requestId string) *UrlMapsInvalidateCacheCall {
78355	c.urlParams_.Set("requestId", requestId)
78356	return c
78357}
78358
78359// Fields allows partial responses to be retrieved. See
78360// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78361// for more information.
78362func (c *UrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *UrlMapsInvalidateCacheCall {
78363	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78364	return c
78365}
78366
78367// Context sets the context to be used in this call's Do method. Any
78368// pending HTTP request will be aborted if the provided context is
78369// canceled.
78370func (c *UrlMapsInvalidateCacheCall) Context(ctx context.Context) *UrlMapsInvalidateCacheCall {
78371	c.ctx_ = ctx
78372	return c
78373}
78374
78375// Header returns an http.Header that can be modified by the caller to
78376// add HTTP headers to the request.
78377func (c *UrlMapsInvalidateCacheCall) Header() http.Header {
78378	if c.header_ == nil {
78379		c.header_ = make(http.Header)
78380	}
78381	return c.header_
78382}
78383
78384func (c *UrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) {
78385	reqHeaders := make(http.Header)
78386	for k, v := range c.header_ {
78387		reqHeaders[k] = v
78388	}
78389	reqHeaders.Set("User-Agent", c.s.userAgent())
78390	var body io.Reader = nil
78391	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule)
78392	if err != nil {
78393		return nil, err
78394	}
78395	reqHeaders.Set("Content-Type", "application/json")
78396	c.urlParams_.Set("alt", alt)
78397	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}/invalidateCache")
78398	urls += "?" + c.urlParams_.Encode()
78399	req, _ := http.NewRequest("POST", urls, body)
78400	req.Header = reqHeaders
78401	googleapi.Expand(req.URL, map[string]string{
78402		"project": c.project,
78403		"urlMap":  c.urlMap,
78404	})
78405	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78406}
78407
78408// Do executes the "compute.urlMaps.invalidateCache" call.
78409// Exactly one of *Operation or error will be non-nil. Any non-2xx
78410// status code is an error. Response headers are in either
78411// *Operation.ServerResponse.Header or (if a response was returned at
78412// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78413// to check whether the returned error was because
78414// http.StatusNotModified was returned.
78415func (c *UrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78416	gensupport.SetOptions(c.urlParams_, opts...)
78417	res, err := c.doRequest("json")
78418	if res != nil && res.StatusCode == http.StatusNotModified {
78419		if res.Body != nil {
78420			res.Body.Close()
78421		}
78422		return nil, &googleapi.Error{
78423			Code:   res.StatusCode,
78424			Header: res.Header,
78425		}
78426	}
78427	if err != nil {
78428		return nil, err
78429	}
78430	defer googleapi.CloseBody(res)
78431	if err := googleapi.CheckResponse(res); err != nil {
78432		return nil, err
78433	}
78434	ret := &Operation{
78435		ServerResponse: googleapi.ServerResponse{
78436			Header:         res.Header,
78437			HTTPStatusCode: res.StatusCode,
78438		},
78439	}
78440	target := &ret
78441	if err := gensupport.DecodeResponse(target, res); err != nil {
78442		return nil, err
78443	}
78444	return ret, nil
78445	// {
78446	//   "description": "Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap.",
78447	//   "httpMethod": "POST",
78448	//   "id": "compute.urlMaps.invalidateCache",
78449	//   "parameterOrder": [
78450	//     "project",
78451	//     "urlMap"
78452	//   ],
78453	//   "parameters": {
78454	//     "project": {
78455	//       "description": "Project ID for this request.",
78456	//       "location": "path",
78457	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78458	//       "required": true,
78459	//       "type": "string"
78460	//     },
78461	//     "requestId": {
78462	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78463	//       "location": "query",
78464	//       "type": "string"
78465	//     },
78466	//     "urlMap": {
78467	//       "description": "Name of the UrlMap scoping this request.",
78468	//       "location": "path",
78469	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78470	//       "required": true,
78471	//       "type": "string"
78472	//     }
78473	//   },
78474	//   "path": "{project}/global/urlMaps/{urlMap}/invalidateCache",
78475	//   "request": {
78476	//     "$ref": "CacheInvalidationRule"
78477	//   },
78478	//   "response": {
78479	//     "$ref": "Operation"
78480	//   },
78481	//   "scopes": [
78482	//     "https://www.googleapis.com/auth/cloud-platform",
78483	//     "https://www.googleapis.com/auth/compute"
78484	//   ]
78485	// }
78486
78487}
78488
78489// method id "compute.urlMaps.list":
78490
78491type UrlMapsListCall struct {
78492	s            *Service
78493	project      string
78494	urlParams_   gensupport.URLParams
78495	ifNoneMatch_ string
78496	ctx_         context.Context
78497	header_      http.Header
78498}
78499
78500// List: Retrieves the list of UrlMap resources available to the
78501// specified project.
78502// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/list
78503func (r *UrlMapsService) List(project string) *UrlMapsListCall {
78504	c := &UrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78505	c.project = project
78506	return c
78507}
78508
78509// Filter sets the optional parameter "filter": Sets a filter
78510// {expression} for filtering listed resources. Your {expression} must
78511// be in the format: field_name comparison_string literal_string.
78512//
78513// The field_name is the name of the field you want to compare. Only
78514// atomic field types are supported (string, number, boolean). The
78515// comparison_string must be either eq (equals) or ne (not equals). The
78516// literal_string is the string value to filter to. The literal value
78517// must be valid for the type of field you are filtering by (string,
78518// number, boolean). For string fields, the literal value is interpreted
78519// as a regular expression using RE2 syntax. The literal value must
78520// match the entire field.
78521//
78522// For example, to filter for instances that do not have a name of
78523// example-instance, you would use name ne example-instance.
78524//
78525// You can filter on nested fields. For example, you could filter on
78526// instances that have set the scheduling.automaticRestart field to
78527// true. Use filtering on nested fields to take advantage of labels to
78528// organize and search for results based on label values.
78529//
78530// To filter on multiple expressions, provide each separate expression
78531// within parentheses. For example, (scheduling.automaticRestart eq
78532// true) (zone eq us-central1-f). Multiple expressions are treated as
78533// AND expressions, meaning that resources must match all expressions to
78534// pass the filters.
78535func (c *UrlMapsListCall) Filter(filter string) *UrlMapsListCall {
78536	c.urlParams_.Set("filter", filter)
78537	return c
78538}
78539
78540// MaxResults sets the optional parameter "maxResults": The maximum
78541// number of results per page that should be returned. If the number of
78542// available results is larger than maxResults, Compute Engine returns a
78543// nextPageToken that can be used to get the next page of results in
78544// subsequent list requests. Acceptable values are 0 to 500, inclusive.
78545// (Default: 500)
78546func (c *UrlMapsListCall) MaxResults(maxResults int64) *UrlMapsListCall {
78547	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
78548	return c
78549}
78550
78551// OrderBy sets the optional parameter "orderBy": Sorts list results by
78552// a certain order. By default, results are returned in alphanumerical
78553// order based on the resource name.
78554//
78555// You can also sort results in descending order based on the creation
78556// timestamp using orderBy="creationTimestamp desc". This sorts results
78557// based on the creationTimestamp field in reverse chronological order
78558// (newest result first). Use this to sort resources like operations so
78559// that the newest operation is returned first.
78560//
78561// Currently, only sorting by name or creationTimestamp desc is
78562// supported.
78563func (c *UrlMapsListCall) OrderBy(orderBy string) *UrlMapsListCall {
78564	c.urlParams_.Set("orderBy", orderBy)
78565	return c
78566}
78567
78568// PageToken sets the optional parameter "pageToken": Specifies a page
78569// token to use. Set pageToken to the nextPageToken returned by a
78570// previous list request to get the next page of results.
78571func (c *UrlMapsListCall) PageToken(pageToken string) *UrlMapsListCall {
78572	c.urlParams_.Set("pageToken", pageToken)
78573	return c
78574}
78575
78576// Fields allows partial responses to be retrieved. See
78577// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78578// for more information.
78579func (c *UrlMapsListCall) Fields(s ...googleapi.Field) *UrlMapsListCall {
78580	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78581	return c
78582}
78583
78584// IfNoneMatch sets the optional parameter which makes the operation
78585// fail if the object's ETag matches the given value. This is useful for
78586// getting updates only after the object has changed since the last
78587// request. Use googleapi.IsNotModified to check whether the response
78588// error from Do is the result of In-None-Match.
78589func (c *UrlMapsListCall) IfNoneMatch(entityTag string) *UrlMapsListCall {
78590	c.ifNoneMatch_ = entityTag
78591	return c
78592}
78593
78594// Context sets the context to be used in this call's Do method. Any
78595// pending HTTP request will be aborted if the provided context is
78596// canceled.
78597func (c *UrlMapsListCall) Context(ctx context.Context) *UrlMapsListCall {
78598	c.ctx_ = ctx
78599	return c
78600}
78601
78602// Header returns an http.Header that can be modified by the caller to
78603// add HTTP headers to the request.
78604func (c *UrlMapsListCall) Header() http.Header {
78605	if c.header_ == nil {
78606		c.header_ = make(http.Header)
78607	}
78608	return c.header_
78609}
78610
78611func (c *UrlMapsListCall) doRequest(alt string) (*http.Response, error) {
78612	reqHeaders := make(http.Header)
78613	for k, v := range c.header_ {
78614		reqHeaders[k] = v
78615	}
78616	reqHeaders.Set("User-Agent", c.s.userAgent())
78617	if c.ifNoneMatch_ != "" {
78618		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78619	}
78620	var body io.Reader = nil
78621	c.urlParams_.Set("alt", alt)
78622	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps")
78623	urls += "?" + c.urlParams_.Encode()
78624	req, _ := http.NewRequest("GET", urls, body)
78625	req.Header = reqHeaders
78626	googleapi.Expand(req.URL, map[string]string{
78627		"project": c.project,
78628	})
78629	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78630}
78631
78632// Do executes the "compute.urlMaps.list" call.
78633// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
78634// status code is an error. Response headers are in either
78635// *UrlMapList.ServerResponse.Header or (if a response was returned at
78636// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78637// to check whether the returned error was because
78638// http.StatusNotModified was returned.
78639func (c *UrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
78640	gensupport.SetOptions(c.urlParams_, opts...)
78641	res, err := c.doRequest("json")
78642	if res != nil && res.StatusCode == http.StatusNotModified {
78643		if res.Body != nil {
78644			res.Body.Close()
78645		}
78646		return nil, &googleapi.Error{
78647			Code:   res.StatusCode,
78648			Header: res.Header,
78649		}
78650	}
78651	if err != nil {
78652		return nil, err
78653	}
78654	defer googleapi.CloseBody(res)
78655	if err := googleapi.CheckResponse(res); err != nil {
78656		return nil, err
78657	}
78658	ret := &UrlMapList{
78659		ServerResponse: googleapi.ServerResponse{
78660			Header:         res.Header,
78661			HTTPStatusCode: res.StatusCode,
78662		},
78663	}
78664	target := &ret
78665	if err := gensupport.DecodeResponse(target, res); err != nil {
78666		return nil, err
78667	}
78668	return ret, nil
78669	// {
78670	//   "description": "Retrieves the list of UrlMap resources available to the specified project.",
78671	//   "httpMethod": "GET",
78672	//   "id": "compute.urlMaps.list",
78673	//   "parameterOrder": [
78674	//     "project"
78675	//   ],
78676	//   "parameters": {
78677	//     "filter": {
78678	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
78679	//       "location": "query",
78680	//       "type": "string"
78681	//     },
78682	//     "maxResults": {
78683	//       "default": "500",
78684	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
78685	//       "format": "uint32",
78686	//       "location": "query",
78687	//       "minimum": "0",
78688	//       "type": "integer"
78689	//     },
78690	//     "orderBy": {
78691	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
78692	//       "location": "query",
78693	//       "type": "string"
78694	//     },
78695	//     "pageToken": {
78696	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
78697	//       "location": "query",
78698	//       "type": "string"
78699	//     },
78700	//     "project": {
78701	//       "description": "Project ID for this request.",
78702	//       "location": "path",
78703	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78704	//       "required": true,
78705	//       "type": "string"
78706	//     }
78707	//   },
78708	//   "path": "{project}/global/urlMaps",
78709	//   "response": {
78710	//     "$ref": "UrlMapList"
78711	//   },
78712	//   "scopes": [
78713	//     "https://www.googleapis.com/auth/cloud-platform",
78714	//     "https://www.googleapis.com/auth/compute",
78715	//     "https://www.googleapis.com/auth/compute.readonly"
78716	//   ]
78717	// }
78718
78719}
78720
78721// Pages invokes f for each page of results.
78722// A non-nil error returned from f will halt the iteration.
78723// The provided context supersedes any context provided to the Context method.
78724func (c *UrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
78725	c.ctx_ = ctx
78726	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
78727	for {
78728		x, err := c.Do()
78729		if err != nil {
78730			return err
78731		}
78732		if err := f(x); err != nil {
78733			return err
78734		}
78735		if x.NextPageToken == "" {
78736			return nil
78737		}
78738		c.PageToken(x.NextPageToken)
78739	}
78740}
78741
78742// method id "compute.urlMaps.patch":
78743
78744type UrlMapsPatchCall struct {
78745	s          *Service
78746	project    string
78747	urlMap     string
78748	urlmap     *UrlMap
78749	urlParams_ gensupport.URLParams
78750	ctx_       context.Context
78751	header_    http.Header
78752}
78753
78754// Patch: Patches the specified UrlMap resource with the data included
78755// in the request. This method supports PATCH semantics and uses the
78756// JSON merge patch format and processing rules.
78757// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/patch
78758func (r *UrlMapsService) Patch(project string, urlMap string, urlmap *UrlMap) *UrlMapsPatchCall {
78759	c := &UrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78760	c.project = project
78761	c.urlMap = urlMap
78762	c.urlmap = urlmap
78763	return c
78764}
78765
78766// RequestId sets the optional parameter "requestId": An optional
78767// request ID to identify requests. Specify a unique request ID so that
78768// if you must retry your request, the server will know to ignore the
78769// request if it has already been completed.
78770//
78771// For example, consider a situation where you make an initial request
78772// and the request times out. If you make the request again with the
78773// same request ID, the server can check if original operation with the
78774// same request ID was received, and if so, will ignore the second
78775// request. This prevents clients from accidentally creating duplicate
78776// commitments.
78777//
78778// The request ID must be a valid UUID with the exception that zero UUID
78779// is not supported (00000000-0000-0000-0000-000000000000).
78780func (c *UrlMapsPatchCall) RequestId(requestId string) *UrlMapsPatchCall {
78781	c.urlParams_.Set("requestId", requestId)
78782	return c
78783}
78784
78785// Fields allows partial responses to be retrieved. See
78786// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78787// for more information.
78788func (c *UrlMapsPatchCall) Fields(s ...googleapi.Field) *UrlMapsPatchCall {
78789	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78790	return c
78791}
78792
78793// Context sets the context to be used in this call's Do method. Any
78794// pending HTTP request will be aborted if the provided context is
78795// canceled.
78796func (c *UrlMapsPatchCall) Context(ctx context.Context) *UrlMapsPatchCall {
78797	c.ctx_ = ctx
78798	return c
78799}
78800
78801// Header returns an http.Header that can be modified by the caller to
78802// add HTTP headers to the request.
78803func (c *UrlMapsPatchCall) Header() http.Header {
78804	if c.header_ == nil {
78805		c.header_ = make(http.Header)
78806	}
78807	return c.header_
78808}
78809
78810func (c *UrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
78811	reqHeaders := make(http.Header)
78812	for k, v := range c.header_ {
78813		reqHeaders[k] = v
78814	}
78815	reqHeaders.Set("User-Agent", c.s.userAgent())
78816	var body io.Reader = nil
78817	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
78818	if err != nil {
78819		return nil, err
78820	}
78821	reqHeaders.Set("Content-Type", "application/json")
78822	c.urlParams_.Set("alt", alt)
78823	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
78824	urls += "?" + c.urlParams_.Encode()
78825	req, _ := http.NewRequest("PATCH", urls, body)
78826	req.Header = reqHeaders
78827	googleapi.Expand(req.URL, map[string]string{
78828		"project": c.project,
78829		"urlMap":  c.urlMap,
78830	})
78831	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78832}
78833
78834// Do executes the "compute.urlMaps.patch" call.
78835// Exactly one of *Operation or error will be non-nil. Any non-2xx
78836// status code is an error. Response headers are in either
78837// *Operation.ServerResponse.Header or (if a response was returned at
78838// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78839// to check whether the returned error was because
78840// http.StatusNotModified was returned.
78841func (c *UrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78842	gensupport.SetOptions(c.urlParams_, opts...)
78843	res, err := c.doRequest("json")
78844	if res != nil && res.StatusCode == http.StatusNotModified {
78845		if res.Body != nil {
78846			res.Body.Close()
78847		}
78848		return nil, &googleapi.Error{
78849			Code:   res.StatusCode,
78850			Header: res.Header,
78851		}
78852	}
78853	if err != nil {
78854		return nil, err
78855	}
78856	defer googleapi.CloseBody(res)
78857	if err := googleapi.CheckResponse(res); err != nil {
78858		return nil, err
78859	}
78860	ret := &Operation{
78861		ServerResponse: googleapi.ServerResponse{
78862			Header:         res.Header,
78863			HTTPStatusCode: res.StatusCode,
78864		},
78865	}
78866	target := &ret
78867	if err := gensupport.DecodeResponse(target, res); err != nil {
78868		return nil, err
78869	}
78870	return ret, nil
78871	// {
78872	//   "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.",
78873	//   "httpMethod": "PATCH",
78874	//   "id": "compute.urlMaps.patch",
78875	//   "parameterOrder": [
78876	//     "project",
78877	//     "urlMap"
78878	//   ],
78879	//   "parameters": {
78880	//     "project": {
78881	//       "description": "Project ID for this request.",
78882	//       "location": "path",
78883	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78884	//       "required": true,
78885	//       "type": "string"
78886	//     },
78887	//     "requestId": {
78888	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78889	//       "location": "query",
78890	//       "type": "string"
78891	//     },
78892	//     "urlMap": {
78893	//       "description": "Name of the UrlMap resource to patch.",
78894	//       "location": "path",
78895	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78896	//       "required": true,
78897	//       "type": "string"
78898	//     }
78899	//   },
78900	//   "path": "{project}/global/urlMaps/{urlMap}",
78901	//   "request": {
78902	//     "$ref": "UrlMap"
78903	//   },
78904	//   "response": {
78905	//     "$ref": "Operation"
78906	//   },
78907	//   "scopes": [
78908	//     "https://www.googleapis.com/auth/cloud-platform",
78909	//     "https://www.googleapis.com/auth/compute"
78910	//   ]
78911	// }
78912
78913}
78914
78915// method id "compute.urlMaps.update":
78916
78917type UrlMapsUpdateCall struct {
78918	s          *Service
78919	project    string
78920	urlMap     string
78921	urlmap     *UrlMap
78922	urlParams_ gensupport.URLParams
78923	ctx_       context.Context
78924	header_    http.Header
78925}
78926
78927// Update: Updates the specified UrlMap resource with the data included
78928// in the request.
78929// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/update
78930func (r *UrlMapsService) Update(project string, urlMap string, urlmap *UrlMap) *UrlMapsUpdateCall {
78931	c := &UrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78932	c.project = project
78933	c.urlMap = urlMap
78934	c.urlmap = urlmap
78935	return c
78936}
78937
78938// RequestId sets the optional parameter "requestId": An optional
78939// request ID to identify requests. Specify a unique request ID so that
78940// if you must retry your request, the server will know to ignore the
78941// request if it has already been completed.
78942//
78943// For example, consider a situation where you make an initial request
78944// and the request times out. If you make the request again with the
78945// same request ID, the server can check if original operation with the
78946// same request ID was received, and if so, will ignore the second
78947// request. This prevents clients from accidentally creating duplicate
78948// commitments.
78949//
78950// The request ID must be a valid UUID with the exception that zero UUID
78951// is not supported (00000000-0000-0000-0000-000000000000).
78952func (c *UrlMapsUpdateCall) RequestId(requestId string) *UrlMapsUpdateCall {
78953	c.urlParams_.Set("requestId", requestId)
78954	return c
78955}
78956
78957// Fields allows partial responses to be retrieved. See
78958// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78959// for more information.
78960func (c *UrlMapsUpdateCall) Fields(s ...googleapi.Field) *UrlMapsUpdateCall {
78961	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78962	return c
78963}
78964
78965// Context sets the context to be used in this call's Do method. Any
78966// pending HTTP request will be aborted if the provided context is
78967// canceled.
78968func (c *UrlMapsUpdateCall) Context(ctx context.Context) *UrlMapsUpdateCall {
78969	c.ctx_ = ctx
78970	return c
78971}
78972
78973// Header returns an http.Header that can be modified by the caller to
78974// add HTTP headers to the request.
78975func (c *UrlMapsUpdateCall) Header() http.Header {
78976	if c.header_ == nil {
78977		c.header_ = make(http.Header)
78978	}
78979	return c.header_
78980}
78981
78982func (c *UrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
78983	reqHeaders := make(http.Header)
78984	for k, v := range c.header_ {
78985		reqHeaders[k] = v
78986	}
78987	reqHeaders.Set("User-Agent", c.s.userAgent())
78988	var body io.Reader = nil
78989	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
78990	if err != nil {
78991		return nil, err
78992	}
78993	reqHeaders.Set("Content-Type", "application/json")
78994	c.urlParams_.Set("alt", alt)
78995	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
78996	urls += "?" + c.urlParams_.Encode()
78997	req, _ := http.NewRequest("PUT", urls, body)
78998	req.Header = reqHeaders
78999	googleapi.Expand(req.URL, map[string]string{
79000		"project": c.project,
79001		"urlMap":  c.urlMap,
79002	})
79003	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79004}
79005
79006// Do executes the "compute.urlMaps.update" call.
79007// Exactly one of *Operation or error will be non-nil. Any non-2xx
79008// status code is an error. Response headers are in either
79009// *Operation.ServerResponse.Header or (if a response was returned at
79010// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79011// to check whether the returned error was because
79012// http.StatusNotModified was returned.
79013func (c *UrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79014	gensupport.SetOptions(c.urlParams_, opts...)
79015	res, err := c.doRequest("json")
79016	if res != nil && res.StatusCode == http.StatusNotModified {
79017		if res.Body != nil {
79018			res.Body.Close()
79019		}
79020		return nil, &googleapi.Error{
79021			Code:   res.StatusCode,
79022			Header: res.Header,
79023		}
79024	}
79025	if err != nil {
79026		return nil, err
79027	}
79028	defer googleapi.CloseBody(res)
79029	if err := googleapi.CheckResponse(res); err != nil {
79030		return nil, err
79031	}
79032	ret := &Operation{
79033		ServerResponse: googleapi.ServerResponse{
79034			Header:         res.Header,
79035			HTTPStatusCode: res.StatusCode,
79036		},
79037	}
79038	target := &ret
79039	if err := gensupport.DecodeResponse(target, res); err != nil {
79040		return nil, err
79041	}
79042	return ret, nil
79043	// {
79044	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
79045	//   "httpMethod": "PUT",
79046	//   "id": "compute.urlMaps.update",
79047	//   "parameterOrder": [
79048	//     "project",
79049	//     "urlMap"
79050	//   ],
79051	//   "parameters": {
79052	//     "project": {
79053	//       "description": "Project ID for this request.",
79054	//       "location": "path",
79055	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79056	//       "required": true,
79057	//       "type": "string"
79058	//     },
79059	//     "requestId": {
79060	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79061	//       "location": "query",
79062	//       "type": "string"
79063	//     },
79064	//     "urlMap": {
79065	//       "description": "Name of the UrlMap resource to update.",
79066	//       "location": "path",
79067	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79068	//       "required": true,
79069	//       "type": "string"
79070	//     }
79071	//   },
79072	//   "path": "{project}/global/urlMaps/{urlMap}",
79073	//   "request": {
79074	//     "$ref": "UrlMap"
79075	//   },
79076	//   "response": {
79077	//     "$ref": "Operation"
79078	//   },
79079	//   "scopes": [
79080	//     "https://www.googleapis.com/auth/cloud-platform",
79081	//     "https://www.googleapis.com/auth/compute"
79082	//   ]
79083	// }
79084
79085}
79086
79087// method id "compute.urlMaps.validate":
79088
79089type UrlMapsValidateCall struct {
79090	s                      *Service
79091	project                string
79092	urlMap                 string
79093	urlmapsvalidaterequest *UrlMapsValidateRequest
79094	urlParams_             gensupport.URLParams
79095	ctx_                   context.Context
79096	header_                http.Header
79097}
79098
79099// Validate: Runs static validation for the UrlMap. In particular, the
79100// tests of the provided UrlMap will be run. Calling this method does
79101// NOT create the UrlMap.
79102// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/validate
79103func (r *UrlMapsService) Validate(project string, urlMap string, urlmapsvalidaterequest *UrlMapsValidateRequest) *UrlMapsValidateCall {
79104	c := &UrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79105	c.project = project
79106	c.urlMap = urlMap
79107	c.urlmapsvalidaterequest = urlmapsvalidaterequest
79108	return c
79109}
79110
79111// Fields allows partial responses to be retrieved. See
79112// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79113// for more information.
79114func (c *UrlMapsValidateCall) Fields(s ...googleapi.Field) *UrlMapsValidateCall {
79115	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79116	return c
79117}
79118
79119// Context sets the context to be used in this call's Do method. Any
79120// pending HTTP request will be aborted if the provided context is
79121// canceled.
79122func (c *UrlMapsValidateCall) Context(ctx context.Context) *UrlMapsValidateCall {
79123	c.ctx_ = ctx
79124	return c
79125}
79126
79127// Header returns an http.Header that can be modified by the caller to
79128// add HTTP headers to the request.
79129func (c *UrlMapsValidateCall) Header() http.Header {
79130	if c.header_ == nil {
79131		c.header_ = make(http.Header)
79132	}
79133	return c.header_
79134}
79135
79136func (c *UrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
79137	reqHeaders := make(http.Header)
79138	for k, v := range c.header_ {
79139		reqHeaders[k] = v
79140	}
79141	reqHeaders.Set("User-Agent", c.s.userAgent())
79142	var body io.Reader = nil
79143	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapsvalidaterequest)
79144	if err != nil {
79145		return nil, err
79146	}
79147	reqHeaders.Set("Content-Type", "application/json")
79148	c.urlParams_.Set("alt", alt)
79149	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}/validate")
79150	urls += "?" + c.urlParams_.Encode()
79151	req, _ := http.NewRequest("POST", urls, body)
79152	req.Header = reqHeaders
79153	googleapi.Expand(req.URL, map[string]string{
79154		"project": c.project,
79155		"urlMap":  c.urlMap,
79156	})
79157	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79158}
79159
79160// Do executes the "compute.urlMaps.validate" call.
79161// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
79162// non-2xx status code is an error. Response headers are in either
79163// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
79164// returned at all) in error.(*googleapi.Error).Header. Use
79165// googleapi.IsNotModified to check whether the returned error was
79166// because http.StatusNotModified was returned.
79167func (c *UrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
79168	gensupport.SetOptions(c.urlParams_, opts...)
79169	res, err := c.doRequest("json")
79170	if res != nil && res.StatusCode == http.StatusNotModified {
79171		if res.Body != nil {
79172			res.Body.Close()
79173		}
79174		return nil, &googleapi.Error{
79175			Code:   res.StatusCode,
79176			Header: res.Header,
79177		}
79178	}
79179	if err != nil {
79180		return nil, err
79181	}
79182	defer googleapi.CloseBody(res)
79183	if err := googleapi.CheckResponse(res); err != nil {
79184		return nil, err
79185	}
79186	ret := &UrlMapsValidateResponse{
79187		ServerResponse: googleapi.ServerResponse{
79188			Header:         res.Header,
79189			HTTPStatusCode: res.StatusCode,
79190		},
79191	}
79192	target := &ret
79193	if err := gensupport.DecodeResponse(target, res); err != nil {
79194		return nil, err
79195	}
79196	return ret, nil
79197	// {
79198	//   "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.",
79199	//   "httpMethod": "POST",
79200	//   "id": "compute.urlMaps.validate",
79201	//   "parameterOrder": [
79202	//     "project",
79203	//     "urlMap"
79204	//   ],
79205	//   "parameters": {
79206	//     "project": {
79207	//       "description": "Project ID for this request.",
79208	//       "location": "path",
79209	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79210	//       "required": true,
79211	//       "type": "string"
79212	//     },
79213	//     "urlMap": {
79214	//       "description": "Name of the UrlMap resource to be validated as.",
79215	//       "location": "path",
79216	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79217	//       "required": true,
79218	//       "type": "string"
79219	//     }
79220	//   },
79221	//   "path": "{project}/global/urlMaps/{urlMap}/validate",
79222	//   "request": {
79223	//     "$ref": "UrlMapsValidateRequest"
79224	//   },
79225	//   "response": {
79226	//     "$ref": "UrlMapsValidateResponse"
79227	//   },
79228	//   "scopes": [
79229	//     "https://www.googleapis.com/auth/cloud-platform",
79230	//     "https://www.googleapis.com/auth/compute"
79231	//   ]
79232	// }
79233
79234}
79235
79236// method id "compute.vpnTunnels.aggregatedList":
79237
79238type VpnTunnelsAggregatedListCall struct {
79239	s            *Service
79240	project      string
79241	urlParams_   gensupport.URLParams
79242	ifNoneMatch_ string
79243	ctx_         context.Context
79244	header_      http.Header
79245}
79246
79247// AggregatedList: Retrieves an aggregated list of VPN tunnels.
79248func (r *VpnTunnelsService) AggregatedList(project string) *VpnTunnelsAggregatedListCall {
79249	c := &VpnTunnelsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79250	c.project = project
79251	return c
79252}
79253
79254// Filter sets the optional parameter "filter": Sets a filter
79255// {expression} for filtering listed resources. Your {expression} must
79256// be in the format: field_name comparison_string literal_string.
79257//
79258// The field_name is the name of the field you want to compare. Only
79259// atomic field types are supported (string, number, boolean). The
79260// comparison_string must be either eq (equals) or ne (not equals). The
79261// literal_string is the string value to filter to. The literal value
79262// must be valid for the type of field you are filtering by (string,
79263// number, boolean). For string fields, the literal value is interpreted
79264// as a regular expression using RE2 syntax. The literal value must
79265// match the entire field.
79266//
79267// For example, to filter for instances that do not have a name of
79268// example-instance, you would use name ne example-instance.
79269//
79270// You can filter on nested fields. For example, you could filter on
79271// instances that have set the scheduling.automaticRestart field to
79272// true. Use filtering on nested fields to take advantage of labels to
79273// organize and search for results based on label values.
79274//
79275// To filter on multiple expressions, provide each separate expression
79276// within parentheses. For example, (scheduling.automaticRestart eq
79277// true) (zone eq us-central1-f). Multiple expressions are treated as
79278// AND expressions, meaning that resources must match all expressions to
79279// pass the filters.
79280func (c *VpnTunnelsAggregatedListCall) Filter(filter string) *VpnTunnelsAggregatedListCall {
79281	c.urlParams_.Set("filter", filter)
79282	return c
79283}
79284
79285// MaxResults sets the optional parameter "maxResults": The maximum
79286// number of results per page that should be returned. If the number of
79287// available results is larger than maxResults, Compute Engine returns a
79288// nextPageToken that can be used to get the next page of results in
79289// subsequent list requests. Acceptable values are 0 to 500, inclusive.
79290// (Default: 500)
79291func (c *VpnTunnelsAggregatedListCall) MaxResults(maxResults int64) *VpnTunnelsAggregatedListCall {
79292	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
79293	return c
79294}
79295
79296// OrderBy sets the optional parameter "orderBy": Sorts list results by
79297// a certain order. By default, results are returned in alphanumerical
79298// order based on the resource name.
79299//
79300// You can also sort results in descending order based on the creation
79301// timestamp using orderBy="creationTimestamp desc". This sorts results
79302// based on the creationTimestamp field in reverse chronological order
79303// (newest result first). Use this to sort resources like operations so
79304// that the newest operation is returned first.
79305//
79306// Currently, only sorting by name or creationTimestamp desc is
79307// supported.
79308func (c *VpnTunnelsAggregatedListCall) OrderBy(orderBy string) *VpnTunnelsAggregatedListCall {
79309	c.urlParams_.Set("orderBy", orderBy)
79310	return c
79311}
79312
79313// PageToken sets the optional parameter "pageToken": Specifies a page
79314// token to use. Set pageToken to the nextPageToken returned by a
79315// previous list request to get the next page of results.
79316func (c *VpnTunnelsAggregatedListCall) PageToken(pageToken string) *VpnTunnelsAggregatedListCall {
79317	c.urlParams_.Set("pageToken", pageToken)
79318	return c
79319}
79320
79321// Fields allows partial responses to be retrieved. See
79322// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79323// for more information.
79324func (c *VpnTunnelsAggregatedListCall) Fields(s ...googleapi.Field) *VpnTunnelsAggregatedListCall {
79325	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79326	return c
79327}
79328
79329// IfNoneMatch sets the optional parameter which makes the operation
79330// fail if the object's ETag matches the given value. This is useful for
79331// getting updates only after the object has changed since the last
79332// request. Use googleapi.IsNotModified to check whether the response
79333// error from Do is the result of In-None-Match.
79334func (c *VpnTunnelsAggregatedListCall) IfNoneMatch(entityTag string) *VpnTunnelsAggregatedListCall {
79335	c.ifNoneMatch_ = entityTag
79336	return c
79337}
79338
79339// Context sets the context to be used in this call's Do method. Any
79340// pending HTTP request will be aborted if the provided context is
79341// canceled.
79342func (c *VpnTunnelsAggregatedListCall) Context(ctx context.Context) *VpnTunnelsAggregatedListCall {
79343	c.ctx_ = ctx
79344	return c
79345}
79346
79347// Header returns an http.Header that can be modified by the caller to
79348// add HTTP headers to the request.
79349func (c *VpnTunnelsAggregatedListCall) Header() http.Header {
79350	if c.header_ == nil {
79351		c.header_ = make(http.Header)
79352	}
79353	return c.header_
79354}
79355
79356func (c *VpnTunnelsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
79357	reqHeaders := make(http.Header)
79358	for k, v := range c.header_ {
79359		reqHeaders[k] = v
79360	}
79361	reqHeaders.Set("User-Agent", c.s.userAgent())
79362	if c.ifNoneMatch_ != "" {
79363		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79364	}
79365	var body io.Reader = nil
79366	c.urlParams_.Set("alt", alt)
79367	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/vpnTunnels")
79368	urls += "?" + c.urlParams_.Encode()
79369	req, _ := http.NewRequest("GET", urls, body)
79370	req.Header = reqHeaders
79371	googleapi.Expand(req.URL, map[string]string{
79372		"project": c.project,
79373	})
79374	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79375}
79376
79377// Do executes the "compute.vpnTunnels.aggregatedList" call.
79378// Exactly one of *VpnTunnelAggregatedList or error will be non-nil. Any
79379// non-2xx status code is an error. Response headers are in either
79380// *VpnTunnelAggregatedList.ServerResponse.Header or (if a response was
79381// returned at all) in error.(*googleapi.Error).Header. Use
79382// googleapi.IsNotModified to check whether the returned error was
79383// because http.StatusNotModified was returned.
79384func (c *VpnTunnelsAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelAggregatedList, error) {
79385	gensupport.SetOptions(c.urlParams_, opts...)
79386	res, err := c.doRequest("json")
79387	if res != nil && res.StatusCode == http.StatusNotModified {
79388		if res.Body != nil {
79389			res.Body.Close()
79390		}
79391		return nil, &googleapi.Error{
79392			Code:   res.StatusCode,
79393			Header: res.Header,
79394		}
79395	}
79396	if err != nil {
79397		return nil, err
79398	}
79399	defer googleapi.CloseBody(res)
79400	if err := googleapi.CheckResponse(res); err != nil {
79401		return nil, err
79402	}
79403	ret := &VpnTunnelAggregatedList{
79404		ServerResponse: googleapi.ServerResponse{
79405			Header:         res.Header,
79406			HTTPStatusCode: res.StatusCode,
79407		},
79408	}
79409	target := &ret
79410	if err := gensupport.DecodeResponse(target, res); err != nil {
79411		return nil, err
79412	}
79413	return ret, nil
79414	// {
79415	//   "description": "Retrieves an aggregated list of VPN tunnels.",
79416	//   "httpMethod": "GET",
79417	//   "id": "compute.vpnTunnels.aggregatedList",
79418	//   "parameterOrder": [
79419	//     "project"
79420	//   ],
79421	//   "parameters": {
79422	//     "filter": {
79423	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
79424	//       "location": "query",
79425	//       "type": "string"
79426	//     },
79427	//     "maxResults": {
79428	//       "default": "500",
79429	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
79430	//       "format": "uint32",
79431	//       "location": "query",
79432	//       "minimum": "0",
79433	//       "type": "integer"
79434	//     },
79435	//     "orderBy": {
79436	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
79437	//       "location": "query",
79438	//       "type": "string"
79439	//     },
79440	//     "pageToken": {
79441	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
79442	//       "location": "query",
79443	//       "type": "string"
79444	//     },
79445	//     "project": {
79446	//       "description": "Project ID for this request.",
79447	//       "location": "path",
79448	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79449	//       "required": true,
79450	//       "type": "string"
79451	//     }
79452	//   },
79453	//   "path": "{project}/aggregated/vpnTunnels",
79454	//   "response": {
79455	//     "$ref": "VpnTunnelAggregatedList"
79456	//   },
79457	//   "scopes": [
79458	//     "https://www.googleapis.com/auth/cloud-platform",
79459	//     "https://www.googleapis.com/auth/compute",
79460	//     "https://www.googleapis.com/auth/compute.readonly"
79461	//   ]
79462	// }
79463
79464}
79465
79466// Pages invokes f for each page of results.
79467// A non-nil error returned from f will halt the iteration.
79468// The provided context supersedes any context provided to the Context method.
79469func (c *VpnTunnelsAggregatedListCall) Pages(ctx context.Context, f func(*VpnTunnelAggregatedList) error) error {
79470	c.ctx_ = ctx
79471	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
79472	for {
79473		x, err := c.Do()
79474		if err != nil {
79475			return err
79476		}
79477		if err := f(x); err != nil {
79478			return err
79479		}
79480		if x.NextPageToken == "" {
79481			return nil
79482		}
79483		c.PageToken(x.NextPageToken)
79484	}
79485}
79486
79487// method id "compute.vpnTunnels.delete":
79488
79489type VpnTunnelsDeleteCall struct {
79490	s          *Service
79491	project    string
79492	region     string
79493	vpnTunnel  string
79494	urlParams_ gensupport.URLParams
79495	ctx_       context.Context
79496	header_    http.Header
79497}
79498
79499// Delete: Deletes the specified VpnTunnel resource.
79500func (r *VpnTunnelsService) Delete(project string, region string, vpnTunnel string) *VpnTunnelsDeleteCall {
79501	c := &VpnTunnelsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79502	c.project = project
79503	c.region = region
79504	c.vpnTunnel = vpnTunnel
79505	return c
79506}
79507
79508// RequestId sets the optional parameter "requestId": An optional
79509// request ID to identify requests. Specify a unique request ID so that
79510// if you must retry your request, the server will know to ignore the
79511// request if it has already been completed.
79512//
79513// For example, consider a situation where you make an initial request
79514// and the request times out. If you make the request again with the
79515// same request ID, the server can check if original operation with the
79516// same request ID was received, and if so, will ignore the second
79517// request. This prevents clients from accidentally creating duplicate
79518// commitments.
79519//
79520// The request ID must be a valid UUID with the exception that zero UUID
79521// is not supported (00000000-0000-0000-0000-000000000000).
79522func (c *VpnTunnelsDeleteCall) RequestId(requestId string) *VpnTunnelsDeleteCall {
79523	c.urlParams_.Set("requestId", requestId)
79524	return c
79525}
79526
79527// Fields allows partial responses to be retrieved. See
79528// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79529// for more information.
79530func (c *VpnTunnelsDeleteCall) Fields(s ...googleapi.Field) *VpnTunnelsDeleteCall {
79531	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79532	return c
79533}
79534
79535// Context sets the context to be used in this call's Do method. Any
79536// pending HTTP request will be aborted if the provided context is
79537// canceled.
79538func (c *VpnTunnelsDeleteCall) Context(ctx context.Context) *VpnTunnelsDeleteCall {
79539	c.ctx_ = ctx
79540	return c
79541}
79542
79543// Header returns an http.Header that can be modified by the caller to
79544// add HTTP headers to the request.
79545func (c *VpnTunnelsDeleteCall) Header() http.Header {
79546	if c.header_ == nil {
79547		c.header_ = make(http.Header)
79548	}
79549	return c.header_
79550}
79551
79552func (c *VpnTunnelsDeleteCall) doRequest(alt string) (*http.Response, error) {
79553	reqHeaders := make(http.Header)
79554	for k, v := range c.header_ {
79555		reqHeaders[k] = v
79556	}
79557	reqHeaders.Set("User-Agent", c.s.userAgent())
79558	var body io.Reader = nil
79559	c.urlParams_.Set("alt", alt)
79560	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
79561	urls += "?" + c.urlParams_.Encode()
79562	req, _ := http.NewRequest("DELETE", urls, body)
79563	req.Header = reqHeaders
79564	googleapi.Expand(req.URL, map[string]string{
79565		"project":   c.project,
79566		"region":    c.region,
79567		"vpnTunnel": c.vpnTunnel,
79568	})
79569	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79570}
79571
79572// Do executes the "compute.vpnTunnels.delete" call.
79573// Exactly one of *Operation or error will be non-nil. Any non-2xx
79574// status code is an error. Response headers are in either
79575// *Operation.ServerResponse.Header or (if a response was returned at
79576// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79577// to check whether the returned error was because
79578// http.StatusNotModified was returned.
79579func (c *VpnTunnelsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79580	gensupport.SetOptions(c.urlParams_, opts...)
79581	res, err := c.doRequest("json")
79582	if res != nil && res.StatusCode == http.StatusNotModified {
79583		if res.Body != nil {
79584			res.Body.Close()
79585		}
79586		return nil, &googleapi.Error{
79587			Code:   res.StatusCode,
79588			Header: res.Header,
79589		}
79590	}
79591	if err != nil {
79592		return nil, err
79593	}
79594	defer googleapi.CloseBody(res)
79595	if err := googleapi.CheckResponse(res); err != nil {
79596		return nil, err
79597	}
79598	ret := &Operation{
79599		ServerResponse: googleapi.ServerResponse{
79600			Header:         res.Header,
79601			HTTPStatusCode: res.StatusCode,
79602		},
79603	}
79604	target := &ret
79605	if err := gensupport.DecodeResponse(target, res); err != nil {
79606		return nil, err
79607	}
79608	return ret, nil
79609	// {
79610	//   "description": "Deletes the specified VpnTunnel resource.",
79611	//   "httpMethod": "DELETE",
79612	//   "id": "compute.vpnTunnels.delete",
79613	//   "parameterOrder": [
79614	//     "project",
79615	//     "region",
79616	//     "vpnTunnel"
79617	//   ],
79618	//   "parameters": {
79619	//     "project": {
79620	//       "description": "Project ID for this request.",
79621	//       "location": "path",
79622	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79623	//       "required": true,
79624	//       "type": "string"
79625	//     },
79626	//     "region": {
79627	//       "description": "Name of the region for this request.",
79628	//       "location": "path",
79629	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79630	//       "required": true,
79631	//       "type": "string"
79632	//     },
79633	//     "requestId": {
79634	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79635	//       "location": "query",
79636	//       "type": "string"
79637	//     },
79638	//     "vpnTunnel": {
79639	//       "description": "Name of the VpnTunnel resource to delete.",
79640	//       "location": "path",
79641	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79642	//       "required": true,
79643	//       "type": "string"
79644	//     }
79645	//   },
79646	//   "path": "{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
79647	//   "response": {
79648	//     "$ref": "Operation"
79649	//   },
79650	//   "scopes": [
79651	//     "https://www.googleapis.com/auth/cloud-platform",
79652	//     "https://www.googleapis.com/auth/compute"
79653	//   ]
79654	// }
79655
79656}
79657
79658// method id "compute.vpnTunnels.get":
79659
79660type VpnTunnelsGetCall struct {
79661	s            *Service
79662	project      string
79663	region       string
79664	vpnTunnel    string
79665	urlParams_   gensupport.URLParams
79666	ifNoneMatch_ string
79667	ctx_         context.Context
79668	header_      http.Header
79669}
79670
79671// Get: Returns the specified VpnTunnel resource. Get a list of
79672// available VPN tunnels by making a list() request.
79673func (r *VpnTunnelsService) Get(project string, region string, vpnTunnel string) *VpnTunnelsGetCall {
79674	c := &VpnTunnelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79675	c.project = project
79676	c.region = region
79677	c.vpnTunnel = vpnTunnel
79678	return c
79679}
79680
79681// Fields allows partial responses to be retrieved. See
79682// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79683// for more information.
79684func (c *VpnTunnelsGetCall) Fields(s ...googleapi.Field) *VpnTunnelsGetCall {
79685	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79686	return c
79687}
79688
79689// IfNoneMatch sets the optional parameter which makes the operation
79690// fail if the object's ETag matches the given value. This is useful for
79691// getting updates only after the object has changed since the last
79692// request. Use googleapi.IsNotModified to check whether the response
79693// error from Do is the result of In-None-Match.
79694func (c *VpnTunnelsGetCall) IfNoneMatch(entityTag string) *VpnTunnelsGetCall {
79695	c.ifNoneMatch_ = entityTag
79696	return c
79697}
79698
79699// Context sets the context to be used in this call's Do method. Any
79700// pending HTTP request will be aborted if the provided context is
79701// canceled.
79702func (c *VpnTunnelsGetCall) Context(ctx context.Context) *VpnTunnelsGetCall {
79703	c.ctx_ = ctx
79704	return c
79705}
79706
79707// Header returns an http.Header that can be modified by the caller to
79708// add HTTP headers to the request.
79709func (c *VpnTunnelsGetCall) Header() http.Header {
79710	if c.header_ == nil {
79711		c.header_ = make(http.Header)
79712	}
79713	return c.header_
79714}
79715
79716func (c *VpnTunnelsGetCall) doRequest(alt string) (*http.Response, error) {
79717	reqHeaders := make(http.Header)
79718	for k, v := range c.header_ {
79719		reqHeaders[k] = v
79720	}
79721	reqHeaders.Set("User-Agent", c.s.userAgent())
79722	if c.ifNoneMatch_ != "" {
79723		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79724	}
79725	var body io.Reader = nil
79726	c.urlParams_.Set("alt", alt)
79727	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
79728	urls += "?" + c.urlParams_.Encode()
79729	req, _ := http.NewRequest("GET", urls, body)
79730	req.Header = reqHeaders
79731	googleapi.Expand(req.URL, map[string]string{
79732		"project":   c.project,
79733		"region":    c.region,
79734		"vpnTunnel": c.vpnTunnel,
79735	})
79736	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79737}
79738
79739// Do executes the "compute.vpnTunnels.get" call.
79740// Exactly one of *VpnTunnel or error will be non-nil. Any non-2xx
79741// status code is an error. Response headers are in either
79742// *VpnTunnel.ServerResponse.Header or (if a response was returned at
79743// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79744// to check whether the returned error was because
79745// http.StatusNotModified was returned.
79746func (c *VpnTunnelsGetCall) Do(opts ...googleapi.CallOption) (*VpnTunnel, error) {
79747	gensupport.SetOptions(c.urlParams_, opts...)
79748	res, err := c.doRequest("json")
79749	if res != nil && res.StatusCode == http.StatusNotModified {
79750		if res.Body != nil {
79751			res.Body.Close()
79752		}
79753		return nil, &googleapi.Error{
79754			Code:   res.StatusCode,
79755			Header: res.Header,
79756		}
79757	}
79758	if err != nil {
79759		return nil, err
79760	}
79761	defer googleapi.CloseBody(res)
79762	if err := googleapi.CheckResponse(res); err != nil {
79763		return nil, err
79764	}
79765	ret := &VpnTunnel{
79766		ServerResponse: googleapi.ServerResponse{
79767			Header:         res.Header,
79768			HTTPStatusCode: res.StatusCode,
79769		},
79770	}
79771	target := &ret
79772	if err := gensupport.DecodeResponse(target, res); err != nil {
79773		return nil, err
79774	}
79775	return ret, nil
79776	// {
79777	//   "description": "Returns the specified VpnTunnel resource. Get a list of available VPN tunnels by making a list() request.",
79778	//   "httpMethod": "GET",
79779	//   "id": "compute.vpnTunnels.get",
79780	//   "parameterOrder": [
79781	//     "project",
79782	//     "region",
79783	//     "vpnTunnel"
79784	//   ],
79785	//   "parameters": {
79786	//     "project": {
79787	//       "description": "Project ID for this request.",
79788	//       "location": "path",
79789	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79790	//       "required": true,
79791	//       "type": "string"
79792	//     },
79793	//     "region": {
79794	//       "description": "Name of the region for this request.",
79795	//       "location": "path",
79796	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79797	//       "required": true,
79798	//       "type": "string"
79799	//     },
79800	//     "vpnTunnel": {
79801	//       "description": "Name of the VpnTunnel resource to return.",
79802	//       "location": "path",
79803	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79804	//       "required": true,
79805	//       "type": "string"
79806	//     }
79807	//   },
79808	//   "path": "{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
79809	//   "response": {
79810	//     "$ref": "VpnTunnel"
79811	//   },
79812	//   "scopes": [
79813	//     "https://www.googleapis.com/auth/cloud-platform",
79814	//     "https://www.googleapis.com/auth/compute",
79815	//     "https://www.googleapis.com/auth/compute.readonly"
79816	//   ]
79817	// }
79818
79819}
79820
79821// method id "compute.vpnTunnels.insert":
79822
79823type VpnTunnelsInsertCall struct {
79824	s          *Service
79825	project    string
79826	region     string
79827	vpntunnel  *VpnTunnel
79828	urlParams_ gensupport.URLParams
79829	ctx_       context.Context
79830	header_    http.Header
79831}
79832
79833// Insert: Creates a VpnTunnel resource in the specified project and
79834// region using the data included in the request.
79835func (r *VpnTunnelsService) Insert(project string, region string, vpntunnel *VpnTunnel) *VpnTunnelsInsertCall {
79836	c := &VpnTunnelsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79837	c.project = project
79838	c.region = region
79839	c.vpntunnel = vpntunnel
79840	return c
79841}
79842
79843// RequestId sets the optional parameter "requestId": An optional
79844// request ID to identify requests. Specify a unique request ID so that
79845// if you must retry your request, the server will know to ignore the
79846// request if it has already been completed.
79847//
79848// For example, consider a situation where you make an initial request
79849// and the request times out. If you make the request again with the
79850// same request ID, the server can check if original operation with the
79851// same request ID was received, and if so, will ignore the second
79852// request. This prevents clients from accidentally creating duplicate
79853// commitments.
79854//
79855// The request ID must be a valid UUID with the exception that zero UUID
79856// is not supported (00000000-0000-0000-0000-000000000000).
79857func (c *VpnTunnelsInsertCall) RequestId(requestId string) *VpnTunnelsInsertCall {
79858	c.urlParams_.Set("requestId", requestId)
79859	return c
79860}
79861
79862// Fields allows partial responses to be retrieved. See
79863// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79864// for more information.
79865func (c *VpnTunnelsInsertCall) Fields(s ...googleapi.Field) *VpnTunnelsInsertCall {
79866	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79867	return c
79868}
79869
79870// Context sets the context to be used in this call's Do method. Any
79871// pending HTTP request will be aborted if the provided context is
79872// canceled.
79873func (c *VpnTunnelsInsertCall) Context(ctx context.Context) *VpnTunnelsInsertCall {
79874	c.ctx_ = ctx
79875	return c
79876}
79877
79878// Header returns an http.Header that can be modified by the caller to
79879// add HTTP headers to the request.
79880func (c *VpnTunnelsInsertCall) Header() http.Header {
79881	if c.header_ == nil {
79882		c.header_ = make(http.Header)
79883	}
79884	return c.header_
79885}
79886
79887func (c *VpnTunnelsInsertCall) doRequest(alt string) (*http.Response, error) {
79888	reqHeaders := make(http.Header)
79889	for k, v := range c.header_ {
79890		reqHeaders[k] = v
79891	}
79892	reqHeaders.Set("User-Agent", c.s.userAgent())
79893	var body io.Reader = nil
79894	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpntunnel)
79895	if err != nil {
79896		return nil, err
79897	}
79898	reqHeaders.Set("Content-Type", "application/json")
79899	c.urlParams_.Set("alt", alt)
79900	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels")
79901	urls += "?" + c.urlParams_.Encode()
79902	req, _ := http.NewRequest("POST", urls, body)
79903	req.Header = reqHeaders
79904	googleapi.Expand(req.URL, map[string]string{
79905		"project": c.project,
79906		"region":  c.region,
79907	})
79908	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79909}
79910
79911// Do executes the "compute.vpnTunnels.insert" call.
79912// Exactly one of *Operation or error will be non-nil. Any non-2xx
79913// status code is an error. Response headers are in either
79914// *Operation.ServerResponse.Header or (if a response was returned at
79915// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79916// to check whether the returned error was because
79917// http.StatusNotModified was returned.
79918func (c *VpnTunnelsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79919	gensupport.SetOptions(c.urlParams_, opts...)
79920	res, err := c.doRequest("json")
79921	if res != nil && res.StatusCode == http.StatusNotModified {
79922		if res.Body != nil {
79923			res.Body.Close()
79924		}
79925		return nil, &googleapi.Error{
79926			Code:   res.StatusCode,
79927			Header: res.Header,
79928		}
79929	}
79930	if err != nil {
79931		return nil, err
79932	}
79933	defer googleapi.CloseBody(res)
79934	if err := googleapi.CheckResponse(res); err != nil {
79935		return nil, err
79936	}
79937	ret := &Operation{
79938		ServerResponse: googleapi.ServerResponse{
79939			Header:         res.Header,
79940			HTTPStatusCode: res.StatusCode,
79941		},
79942	}
79943	target := &ret
79944	if err := gensupport.DecodeResponse(target, res); err != nil {
79945		return nil, err
79946	}
79947	return ret, nil
79948	// {
79949	//   "description": "Creates a VpnTunnel resource in the specified project and region using the data included in the request.",
79950	//   "httpMethod": "POST",
79951	//   "id": "compute.vpnTunnels.insert",
79952	//   "parameterOrder": [
79953	//     "project",
79954	//     "region"
79955	//   ],
79956	//   "parameters": {
79957	//     "project": {
79958	//       "description": "Project ID for this request.",
79959	//       "location": "path",
79960	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79961	//       "required": true,
79962	//       "type": "string"
79963	//     },
79964	//     "region": {
79965	//       "description": "Name of the region for this request.",
79966	//       "location": "path",
79967	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79968	//       "required": true,
79969	//       "type": "string"
79970	//     },
79971	//     "requestId": {
79972	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79973	//       "location": "query",
79974	//       "type": "string"
79975	//     }
79976	//   },
79977	//   "path": "{project}/regions/{region}/vpnTunnels",
79978	//   "request": {
79979	//     "$ref": "VpnTunnel"
79980	//   },
79981	//   "response": {
79982	//     "$ref": "Operation"
79983	//   },
79984	//   "scopes": [
79985	//     "https://www.googleapis.com/auth/cloud-platform",
79986	//     "https://www.googleapis.com/auth/compute"
79987	//   ]
79988	// }
79989
79990}
79991
79992// method id "compute.vpnTunnels.list":
79993
79994type VpnTunnelsListCall struct {
79995	s            *Service
79996	project      string
79997	region       string
79998	urlParams_   gensupport.URLParams
79999	ifNoneMatch_ string
80000	ctx_         context.Context
80001	header_      http.Header
80002}
80003
80004// List: Retrieves a list of VpnTunnel resources contained in the
80005// specified project and region.
80006func (r *VpnTunnelsService) List(project string, region string) *VpnTunnelsListCall {
80007	c := &VpnTunnelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80008	c.project = project
80009	c.region = region
80010	return c
80011}
80012
80013// Filter sets the optional parameter "filter": Sets a filter
80014// {expression} for filtering listed resources. Your {expression} must
80015// be in the format: field_name comparison_string literal_string.
80016//
80017// The field_name is the name of the field you want to compare. Only
80018// atomic field types are supported (string, number, boolean). The
80019// comparison_string must be either eq (equals) or ne (not equals). The
80020// literal_string is the string value to filter to. The literal value
80021// must be valid for the type of field you are filtering by (string,
80022// number, boolean). For string fields, the literal value is interpreted
80023// as a regular expression using RE2 syntax. The literal value must
80024// match the entire field.
80025//
80026// For example, to filter for instances that do not have a name of
80027// example-instance, you would use name ne example-instance.
80028//
80029// You can filter on nested fields. For example, you could filter on
80030// instances that have set the scheduling.automaticRestart field to
80031// true. Use filtering on nested fields to take advantage of labels to
80032// organize and search for results based on label values.
80033//
80034// To filter on multiple expressions, provide each separate expression
80035// within parentheses. For example, (scheduling.automaticRestart eq
80036// true) (zone eq us-central1-f). Multiple expressions are treated as
80037// AND expressions, meaning that resources must match all expressions to
80038// pass the filters.
80039func (c *VpnTunnelsListCall) Filter(filter string) *VpnTunnelsListCall {
80040	c.urlParams_.Set("filter", filter)
80041	return c
80042}
80043
80044// MaxResults sets the optional parameter "maxResults": The maximum
80045// number of results per page that should be returned. If the number of
80046// available results is larger than maxResults, Compute Engine returns a
80047// nextPageToken that can be used to get the next page of results in
80048// subsequent list requests. Acceptable values are 0 to 500, inclusive.
80049// (Default: 500)
80050func (c *VpnTunnelsListCall) MaxResults(maxResults int64) *VpnTunnelsListCall {
80051	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
80052	return c
80053}
80054
80055// OrderBy sets the optional parameter "orderBy": Sorts list results by
80056// a certain order. By default, results are returned in alphanumerical
80057// order based on the resource name.
80058//
80059// You can also sort results in descending order based on the creation
80060// timestamp using orderBy="creationTimestamp desc". This sorts results
80061// based on the creationTimestamp field in reverse chronological order
80062// (newest result first). Use this to sort resources like operations so
80063// that the newest operation is returned first.
80064//
80065// Currently, only sorting by name or creationTimestamp desc is
80066// supported.
80067func (c *VpnTunnelsListCall) OrderBy(orderBy string) *VpnTunnelsListCall {
80068	c.urlParams_.Set("orderBy", orderBy)
80069	return c
80070}
80071
80072// PageToken sets the optional parameter "pageToken": Specifies a page
80073// token to use. Set pageToken to the nextPageToken returned by a
80074// previous list request to get the next page of results.
80075func (c *VpnTunnelsListCall) PageToken(pageToken string) *VpnTunnelsListCall {
80076	c.urlParams_.Set("pageToken", pageToken)
80077	return c
80078}
80079
80080// Fields allows partial responses to be retrieved. See
80081// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80082// for more information.
80083func (c *VpnTunnelsListCall) Fields(s ...googleapi.Field) *VpnTunnelsListCall {
80084	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80085	return c
80086}
80087
80088// IfNoneMatch sets the optional parameter which makes the operation
80089// fail if the object's ETag matches the given value. This is useful for
80090// getting updates only after the object has changed since the last
80091// request. Use googleapi.IsNotModified to check whether the response
80092// error from Do is the result of In-None-Match.
80093func (c *VpnTunnelsListCall) IfNoneMatch(entityTag string) *VpnTunnelsListCall {
80094	c.ifNoneMatch_ = entityTag
80095	return c
80096}
80097
80098// Context sets the context to be used in this call's Do method. Any
80099// pending HTTP request will be aborted if the provided context is
80100// canceled.
80101func (c *VpnTunnelsListCall) Context(ctx context.Context) *VpnTunnelsListCall {
80102	c.ctx_ = ctx
80103	return c
80104}
80105
80106// Header returns an http.Header that can be modified by the caller to
80107// add HTTP headers to the request.
80108func (c *VpnTunnelsListCall) Header() http.Header {
80109	if c.header_ == nil {
80110		c.header_ = make(http.Header)
80111	}
80112	return c.header_
80113}
80114
80115func (c *VpnTunnelsListCall) doRequest(alt string) (*http.Response, error) {
80116	reqHeaders := make(http.Header)
80117	for k, v := range c.header_ {
80118		reqHeaders[k] = v
80119	}
80120	reqHeaders.Set("User-Agent", c.s.userAgent())
80121	if c.ifNoneMatch_ != "" {
80122		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80123	}
80124	var body io.Reader = nil
80125	c.urlParams_.Set("alt", alt)
80126	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels")
80127	urls += "?" + c.urlParams_.Encode()
80128	req, _ := http.NewRequest("GET", urls, body)
80129	req.Header = reqHeaders
80130	googleapi.Expand(req.URL, map[string]string{
80131		"project": c.project,
80132		"region":  c.region,
80133	})
80134	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80135}
80136
80137// Do executes the "compute.vpnTunnels.list" call.
80138// Exactly one of *VpnTunnelList or error will be non-nil. Any non-2xx
80139// status code is an error. Response headers are in either
80140// *VpnTunnelList.ServerResponse.Header or (if a response was returned
80141// at all) in error.(*googleapi.Error).Header. Use
80142// googleapi.IsNotModified to check whether the returned error was
80143// because http.StatusNotModified was returned.
80144func (c *VpnTunnelsListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelList, error) {
80145	gensupport.SetOptions(c.urlParams_, opts...)
80146	res, err := c.doRequest("json")
80147	if res != nil && res.StatusCode == http.StatusNotModified {
80148		if res.Body != nil {
80149			res.Body.Close()
80150		}
80151		return nil, &googleapi.Error{
80152			Code:   res.StatusCode,
80153			Header: res.Header,
80154		}
80155	}
80156	if err != nil {
80157		return nil, err
80158	}
80159	defer googleapi.CloseBody(res)
80160	if err := googleapi.CheckResponse(res); err != nil {
80161		return nil, err
80162	}
80163	ret := &VpnTunnelList{
80164		ServerResponse: googleapi.ServerResponse{
80165			Header:         res.Header,
80166			HTTPStatusCode: res.StatusCode,
80167		},
80168	}
80169	target := &ret
80170	if err := gensupport.DecodeResponse(target, res); err != nil {
80171		return nil, err
80172	}
80173	return ret, nil
80174	// {
80175	//   "description": "Retrieves a list of VpnTunnel resources contained in the specified project and region.",
80176	//   "httpMethod": "GET",
80177	//   "id": "compute.vpnTunnels.list",
80178	//   "parameterOrder": [
80179	//     "project",
80180	//     "region"
80181	//   ],
80182	//   "parameters": {
80183	//     "filter": {
80184	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
80185	//       "location": "query",
80186	//       "type": "string"
80187	//     },
80188	//     "maxResults": {
80189	//       "default": "500",
80190	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
80191	//       "format": "uint32",
80192	//       "location": "query",
80193	//       "minimum": "0",
80194	//       "type": "integer"
80195	//     },
80196	//     "orderBy": {
80197	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
80198	//       "location": "query",
80199	//       "type": "string"
80200	//     },
80201	//     "pageToken": {
80202	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
80203	//       "location": "query",
80204	//       "type": "string"
80205	//     },
80206	//     "project": {
80207	//       "description": "Project ID for this request.",
80208	//       "location": "path",
80209	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80210	//       "required": true,
80211	//       "type": "string"
80212	//     },
80213	//     "region": {
80214	//       "description": "Name of the region for this request.",
80215	//       "location": "path",
80216	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80217	//       "required": true,
80218	//       "type": "string"
80219	//     }
80220	//   },
80221	//   "path": "{project}/regions/{region}/vpnTunnels",
80222	//   "response": {
80223	//     "$ref": "VpnTunnelList"
80224	//   },
80225	//   "scopes": [
80226	//     "https://www.googleapis.com/auth/cloud-platform",
80227	//     "https://www.googleapis.com/auth/compute",
80228	//     "https://www.googleapis.com/auth/compute.readonly"
80229	//   ]
80230	// }
80231
80232}
80233
80234// Pages invokes f for each page of results.
80235// A non-nil error returned from f will halt the iteration.
80236// The provided context supersedes any context provided to the Context method.
80237func (c *VpnTunnelsListCall) Pages(ctx context.Context, f func(*VpnTunnelList) error) error {
80238	c.ctx_ = ctx
80239	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
80240	for {
80241		x, err := c.Do()
80242		if err != nil {
80243			return err
80244		}
80245		if err := f(x); err != nil {
80246			return err
80247		}
80248		if x.NextPageToken == "" {
80249			return nil
80250		}
80251		c.PageToken(x.NextPageToken)
80252	}
80253}
80254
80255// method id "compute.zoneOperations.delete":
80256
80257type ZoneOperationsDeleteCall struct {
80258	s          *Service
80259	project    string
80260	zone       string
80261	operation  string
80262	urlParams_ gensupport.URLParams
80263	ctx_       context.Context
80264	header_    http.Header
80265}
80266
80267// Delete: Deletes the specified zone-specific Operations resource.
80268// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/delete
80269func (r *ZoneOperationsService) Delete(project string, zone string, operation string) *ZoneOperationsDeleteCall {
80270	c := &ZoneOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80271	c.project = project
80272	c.zone = zone
80273	c.operation = operation
80274	return c
80275}
80276
80277// Fields allows partial responses to be retrieved. See
80278// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80279// for more information.
80280func (c *ZoneOperationsDeleteCall) Fields(s ...googleapi.Field) *ZoneOperationsDeleteCall {
80281	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80282	return c
80283}
80284
80285// Context sets the context to be used in this call's Do method. Any
80286// pending HTTP request will be aborted if the provided context is
80287// canceled.
80288func (c *ZoneOperationsDeleteCall) Context(ctx context.Context) *ZoneOperationsDeleteCall {
80289	c.ctx_ = ctx
80290	return c
80291}
80292
80293// Header returns an http.Header that can be modified by the caller to
80294// add HTTP headers to the request.
80295func (c *ZoneOperationsDeleteCall) Header() http.Header {
80296	if c.header_ == nil {
80297		c.header_ = make(http.Header)
80298	}
80299	return c.header_
80300}
80301
80302func (c *ZoneOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
80303	reqHeaders := make(http.Header)
80304	for k, v := range c.header_ {
80305		reqHeaders[k] = v
80306	}
80307	reqHeaders.Set("User-Agent", c.s.userAgent())
80308	var body io.Reader = nil
80309	c.urlParams_.Set("alt", alt)
80310	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}")
80311	urls += "?" + c.urlParams_.Encode()
80312	req, _ := http.NewRequest("DELETE", urls, body)
80313	req.Header = reqHeaders
80314	googleapi.Expand(req.URL, map[string]string{
80315		"project":   c.project,
80316		"zone":      c.zone,
80317		"operation": c.operation,
80318	})
80319	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80320}
80321
80322// Do executes the "compute.zoneOperations.delete" call.
80323func (c *ZoneOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
80324	gensupport.SetOptions(c.urlParams_, opts...)
80325	res, err := c.doRequest("json")
80326	if err != nil {
80327		return err
80328	}
80329	defer googleapi.CloseBody(res)
80330	if err := googleapi.CheckResponse(res); err != nil {
80331		return err
80332	}
80333	return nil
80334	// {
80335	//   "description": "Deletes the specified zone-specific Operations resource.",
80336	//   "httpMethod": "DELETE",
80337	//   "id": "compute.zoneOperations.delete",
80338	//   "parameterOrder": [
80339	//     "project",
80340	//     "zone",
80341	//     "operation"
80342	//   ],
80343	//   "parameters": {
80344	//     "operation": {
80345	//       "description": "Name of the Operations resource to delete.",
80346	//       "location": "path",
80347	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80348	//       "required": true,
80349	//       "type": "string"
80350	//     },
80351	//     "project": {
80352	//       "description": "Project ID for this request.",
80353	//       "location": "path",
80354	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80355	//       "required": true,
80356	//       "type": "string"
80357	//     },
80358	//     "zone": {
80359	//       "description": "Name of the zone for this request.",
80360	//       "location": "path",
80361	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80362	//       "required": true,
80363	//       "type": "string"
80364	//     }
80365	//   },
80366	//   "path": "{project}/zones/{zone}/operations/{operation}",
80367	//   "scopes": [
80368	//     "https://www.googleapis.com/auth/cloud-platform",
80369	//     "https://www.googleapis.com/auth/compute"
80370	//   ]
80371	// }
80372
80373}
80374
80375// method id "compute.zoneOperations.get":
80376
80377type ZoneOperationsGetCall struct {
80378	s            *Service
80379	project      string
80380	zone         string
80381	operation    string
80382	urlParams_   gensupport.URLParams
80383	ifNoneMatch_ string
80384	ctx_         context.Context
80385	header_      http.Header
80386}
80387
80388// Get: Retrieves the specified zone-specific Operations resource.
80389// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/get
80390func (r *ZoneOperationsService) Get(project string, zone string, operation string) *ZoneOperationsGetCall {
80391	c := &ZoneOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80392	c.project = project
80393	c.zone = zone
80394	c.operation = operation
80395	return c
80396}
80397
80398// Fields allows partial responses to be retrieved. See
80399// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80400// for more information.
80401func (c *ZoneOperationsGetCall) Fields(s ...googleapi.Field) *ZoneOperationsGetCall {
80402	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80403	return c
80404}
80405
80406// IfNoneMatch sets the optional parameter which makes the operation
80407// fail if the object's ETag matches the given value. This is useful for
80408// getting updates only after the object has changed since the last
80409// request. Use googleapi.IsNotModified to check whether the response
80410// error from Do is the result of In-None-Match.
80411func (c *ZoneOperationsGetCall) IfNoneMatch(entityTag string) *ZoneOperationsGetCall {
80412	c.ifNoneMatch_ = entityTag
80413	return c
80414}
80415
80416// Context sets the context to be used in this call's Do method. Any
80417// pending HTTP request will be aborted if the provided context is
80418// canceled.
80419func (c *ZoneOperationsGetCall) Context(ctx context.Context) *ZoneOperationsGetCall {
80420	c.ctx_ = ctx
80421	return c
80422}
80423
80424// Header returns an http.Header that can be modified by the caller to
80425// add HTTP headers to the request.
80426func (c *ZoneOperationsGetCall) Header() http.Header {
80427	if c.header_ == nil {
80428		c.header_ = make(http.Header)
80429	}
80430	return c.header_
80431}
80432
80433func (c *ZoneOperationsGetCall) doRequest(alt string) (*http.Response, error) {
80434	reqHeaders := make(http.Header)
80435	for k, v := range c.header_ {
80436		reqHeaders[k] = v
80437	}
80438	reqHeaders.Set("User-Agent", c.s.userAgent())
80439	if c.ifNoneMatch_ != "" {
80440		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80441	}
80442	var body io.Reader = nil
80443	c.urlParams_.Set("alt", alt)
80444	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}")
80445	urls += "?" + c.urlParams_.Encode()
80446	req, _ := http.NewRequest("GET", urls, body)
80447	req.Header = reqHeaders
80448	googleapi.Expand(req.URL, map[string]string{
80449		"project":   c.project,
80450		"zone":      c.zone,
80451		"operation": c.operation,
80452	})
80453	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80454}
80455
80456// Do executes the "compute.zoneOperations.get" call.
80457// Exactly one of *Operation or error will be non-nil. Any non-2xx
80458// status code is an error. Response headers are in either
80459// *Operation.ServerResponse.Header or (if a response was returned at
80460// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80461// to check whether the returned error was because
80462// http.StatusNotModified was returned.
80463func (c *ZoneOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80464	gensupport.SetOptions(c.urlParams_, opts...)
80465	res, err := c.doRequest("json")
80466	if res != nil && res.StatusCode == http.StatusNotModified {
80467		if res.Body != nil {
80468			res.Body.Close()
80469		}
80470		return nil, &googleapi.Error{
80471			Code:   res.StatusCode,
80472			Header: res.Header,
80473		}
80474	}
80475	if err != nil {
80476		return nil, err
80477	}
80478	defer googleapi.CloseBody(res)
80479	if err := googleapi.CheckResponse(res); err != nil {
80480		return nil, err
80481	}
80482	ret := &Operation{
80483		ServerResponse: googleapi.ServerResponse{
80484			Header:         res.Header,
80485			HTTPStatusCode: res.StatusCode,
80486		},
80487	}
80488	target := &ret
80489	if err := gensupport.DecodeResponse(target, res); err != nil {
80490		return nil, err
80491	}
80492	return ret, nil
80493	// {
80494	//   "description": "Retrieves the specified zone-specific Operations resource.",
80495	//   "httpMethod": "GET",
80496	//   "id": "compute.zoneOperations.get",
80497	//   "parameterOrder": [
80498	//     "project",
80499	//     "zone",
80500	//     "operation"
80501	//   ],
80502	//   "parameters": {
80503	//     "operation": {
80504	//       "description": "Name of the Operations resource to return.",
80505	//       "location": "path",
80506	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80507	//       "required": true,
80508	//       "type": "string"
80509	//     },
80510	//     "project": {
80511	//       "description": "Project ID for this request.",
80512	//       "location": "path",
80513	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80514	//       "required": true,
80515	//       "type": "string"
80516	//     },
80517	//     "zone": {
80518	//       "description": "Name of the zone for this request.",
80519	//       "location": "path",
80520	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80521	//       "required": true,
80522	//       "type": "string"
80523	//     }
80524	//   },
80525	//   "path": "{project}/zones/{zone}/operations/{operation}",
80526	//   "response": {
80527	//     "$ref": "Operation"
80528	//   },
80529	//   "scopes": [
80530	//     "https://www.googleapis.com/auth/cloud-platform",
80531	//     "https://www.googleapis.com/auth/compute",
80532	//     "https://www.googleapis.com/auth/compute.readonly"
80533	//   ]
80534	// }
80535
80536}
80537
80538// method id "compute.zoneOperations.list":
80539
80540type ZoneOperationsListCall struct {
80541	s            *Service
80542	project      string
80543	zone         string
80544	urlParams_   gensupport.URLParams
80545	ifNoneMatch_ string
80546	ctx_         context.Context
80547	header_      http.Header
80548}
80549
80550// List: Retrieves a list of Operation resources contained within the
80551// specified zone.
80552// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/list
80553func (r *ZoneOperationsService) List(project string, zone string) *ZoneOperationsListCall {
80554	c := &ZoneOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80555	c.project = project
80556	c.zone = zone
80557	return c
80558}
80559
80560// Filter sets the optional parameter "filter": Sets a filter
80561// {expression} for filtering listed resources. Your {expression} must
80562// be in the format: field_name comparison_string literal_string.
80563//
80564// The field_name is the name of the field you want to compare. Only
80565// atomic field types are supported (string, number, boolean). The
80566// comparison_string must be either eq (equals) or ne (not equals). The
80567// literal_string is the string value to filter to. The literal value
80568// must be valid for the type of field you are filtering by (string,
80569// number, boolean). For string fields, the literal value is interpreted
80570// as a regular expression using RE2 syntax. The literal value must
80571// match the entire field.
80572//
80573// For example, to filter for instances that do not have a name of
80574// example-instance, you would use name ne example-instance.
80575//
80576// You can filter on nested fields. For example, you could filter on
80577// instances that have set the scheduling.automaticRestart field to
80578// true. Use filtering on nested fields to take advantage of labels to
80579// organize and search for results based on label values.
80580//
80581// To filter on multiple expressions, provide each separate expression
80582// within parentheses. For example, (scheduling.automaticRestart eq
80583// true) (zone eq us-central1-f). Multiple expressions are treated as
80584// AND expressions, meaning that resources must match all expressions to
80585// pass the filters.
80586func (c *ZoneOperationsListCall) Filter(filter string) *ZoneOperationsListCall {
80587	c.urlParams_.Set("filter", filter)
80588	return c
80589}
80590
80591// MaxResults sets the optional parameter "maxResults": The maximum
80592// number of results per page that should be returned. If the number of
80593// available results is larger than maxResults, Compute Engine returns a
80594// nextPageToken that can be used to get the next page of results in
80595// subsequent list requests. Acceptable values are 0 to 500, inclusive.
80596// (Default: 500)
80597func (c *ZoneOperationsListCall) MaxResults(maxResults int64) *ZoneOperationsListCall {
80598	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
80599	return c
80600}
80601
80602// OrderBy sets the optional parameter "orderBy": Sorts list results by
80603// a certain order. By default, results are returned in alphanumerical
80604// order based on the resource name.
80605//
80606// You can also sort results in descending order based on the creation
80607// timestamp using orderBy="creationTimestamp desc". This sorts results
80608// based on the creationTimestamp field in reverse chronological order
80609// (newest result first). Use this to sort resources like operations so
80610// that the newest operation is returned first.
80611//
80612// Currently, only sorting by name or creationTimestamp desc is
80613// supported.
80614func (c *ZoneOperationsListCall) OrderBy(orderBy string) *ZoneOperationsListCall {
80615	c.urlParams_.Set("orderBy", orderBy)
80616	return c
80617}
80618
80619// PageToken sets the optional parameter "pageToken": Specifies a page
80620// token to use. Set pageToken to the nextPageToken returned by a
80621// previous list request to get the next page of results.
80622func (c *ZoneOperationsListCall) PageToken(pageToken string) *ZoneOperationsListCall {
80623	c.urlParams_.Set("pageToken", pageToken)
80624	return c
80625}
80626
80627// Fields allows partial responses to be retrieved. See
80628// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80629// for more information.
80630func (c *ZoneOperationsListCall) Fields(s ...googleapi.Field) *ZoneOperationsListCall {
80631	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80632	return c
80633}
80634
80635// IfNoneMatch sets the optional parameter which makes the operation
80636// fail if the object's ETag matches the given value. This is useful for
80637// getting updates only after the object has changed since the last
80638// request. Use googleapi.IsNotModified to check whether the response
80639// error from Do is the result of In-None-Match.
80640func (c *ZoneOperationsListCall) IfNoneMatch(entityTag string) *ZoneOperationsListCall {
80641	c.ifNoneMatch_ = entityTag
80642	return c
80643}
80644
80645// Context sets the context to be used in this call's Do method. Any
80646// pending HTTP request will be aborted if the provided context is
80647// canceled.
80648func (c *ZoneOperationsListCall) Context(ctx context.Context) *ZoneOperationsListCall {
80649	c.ctx_ = ctx
80650	return c
80651}
80652
80653// Header returns an http.Header that can be modified by the caller to
80654// add HTTP headers to the request.
80655func (c *ZoneOperationsListCall) Header() http.Header {
80656	if c.header_ == nil {
80657		c.header_ = make(http.Header)
80658	}
80659	return c.header_
80660}
80661
80662func (c *ZoneOperationsListCall) doRequest(alt string) (*http.Response, error) {
80663	reqHeaders := make(http.Header)
80664	for k, v := range c.header_ {
80665		reqHeaders[k] = v
80666	}
80667	reqHeaders.Set("User-Agent", c.s.userAgent())
80668	if c.ifNoneMatch_ != "" {
80669		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80670	}
80671	var body io.Reader = nil
80672	c.urlParams_.Set("alt", alt)
80673	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations")
80674	urls += "?" + c.urlParams_.Encode()
80675	req, _ := http.NewRequest("GET", urls, body)
80676	req.Header = reqHeaders
80677	googleapi.Expand(req.URL, map[string]string{
80678		"project": c.project,
80679		"zone":    c.zone,
80680	})
80681	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80682}
80683
80684// Do executes the "compute.zoneOperations.list" call.
80685// Exactly one of *OperationList or error will be non-nil. Any non-2xx
80686// status code is an error. Response headers are in either
80687// *OperationList.ServerResponse.Header or (if a response was returned
80688// at all) in error.(*googleapi.Error).Header. Use
80689// googleapi.IsNotModified to check whether the returned error was
80690// because http.StatusNotModified was returned.
80691func (c *ZoneOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
80692	gensupport.SetOptions(c.urlParams_, opts...)
80693	res, err := c.doRequest("json")
80694	if res != nil && res.StatusCode == http.StatusNotModified {
80695		if res.Body != nil {
80696			res.Body.Close()
80697		}
80698		return nil, &googleapi.Error{
80699			Code:   res.StatusCode,
80700			Header: res.Header,
80701		}
80702	}
80703	if err != nil {
80704		return nil, err
80705	}
80706	defer googleapi.CloseBody(res)
80707	if err := googleapi.CheckResponse(res); err != nil {
80708		return nil, err
80709	}
80710	ret := &OperationList{
80711		ServerResponse: googleapi.ServerResponse{
80712			Header:         res.Header,
80713			HTTPStatusCode: res.StatusCode,
80714		},
80715	}
80716	target := &ret
80717	if err := gensupport.DecodeResponse(target, res); err != nil {
80718		return nil, err
80719	}
80720	return ret, nil
80721	// {
80722	//   "description": "Retrieves a list of Operation resources contained within the specified zone.",
80723	//   "httpMethod": "GET",
80724	//   "id": "compute.zoneOperations.list",
80725	//   "parameterOrder": [
80726	//     "project",
80727	//     "zone"
80728	//   ],
80729	//   "parameters": {
80730	//     "filter": {
80731	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
80732	//       "location": "query",
80733	//       "type": "string"
80734	//     },
80735	//     "maxResults": {
80736	//       "default": "500",
80737	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
80738	//       "format": "uint32",
80739	//       "location": "query",
80740	//       "minimum": "0",
80741	//       "type": "integer"
80742	//     },
80743	//     "orderBy": {
80744	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
80745	//       "location": "query",
80746	//       "type": "string"
80747	//     },
80748	//     "pageToken": {
80749	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
80750	//       "location": "query",
80751	//       "type": "string"
80752	//     },
80753	//     "project": {
80754	//       "description": "Project ID for this request.",
80755	//       "location": "path",
80756	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80757	//       "required": true,
80758	//       "type": "string"
80759	//     },
80760	//     "zone": {
80761	//       "description": "Name of the zone for request.",
80762	//       "location": "path",
80763	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80764	//       "required": true,
80765	//       "type": "string"
80766	//     }
80767	//   },
80768	//   "path": "{project}/zones/{zone}/operations",
80769	//   "response": {
80770	//     "$ref": "OperationList"
80771	//   },
80772	//   "scopes": [
80773	//     "https://www.googleapis.com/auth/cloud-platform",
80774	//     "https://www.googleapis.com/auth/compute",
80775	//     "https://www.googleapis.com/auth/compute.readonly"
80776	//   ]
80777	// }
80778
80779}
80780
80781// Pages invokes f for each page of results.
80782// A non-nil error returned from f will halt the iteration.
80783// The provided context supersedes any context provided to the Context method.
80784func (c *ZoneOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
80785	c.ctx_ = ctx
80786	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
80787	for {
80788		x, err := c.Do()
80789		if err != nil {
80790			return err
80791		}
80792		if err := f(x); err != nil {
80793			return err
80794		}
80795		if x.NextPageToken == "" {
80796			return nil
80797		}
80798		c.PageToken(x.NextPageToken)
80799	}
80800}
80801
80802// method id "compute.zones.get":
80803
80804type ZonesGetCall struct {
80805	s            *Service
80806	project      string
80807	zone         string
80808	urlParams_   gensupport.URLParams
80809	ifNoneMatch_ string
80810	ctx_         context.Context
80811	header_      http.Header
80812}
80813
80814// Get: Returns the specified Zone resource. Get a list of available
80815// zones by making a list() request.
80816// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/get
80817func (r *ZonesService) Get(project string, zone string) *ZonesGetCall {
80818	c := &ZonesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80819	c.project = project
80820	c.zone = zone
80821	return c
80822}
80823
80824// Fields allows partial responses to be retrieved. See
80825// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80826// for more information.
80827func (c *ZonesGetCall) Fields(s ...googleapi.Field) *ZonesGetCall {
80828	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80829	return c
80830}
80831
80832// IfNoneMatch sets the optional parameter which makes the operation
80833// fail if the object's ETag matches the given value. This is useful for
80834// getting updates only after the object has changed since the last
80835// request. Use googleapi.IsNotModified to check whether the response
80836// error from Do is the result of In-None-Match.
80837func (c *ZonesGetCall) IfNoneMatch(entityTag string) *ZonesGetCall {
80838	c.ifNoneMatch_ = entityTag
80839	return c
80840}
80841
80842// Context sets the context to be used in this call's Do method. Any
80843// pending HTTP request will be aborted if the provided context is
80844// canceled.
80845func (c *ZonesGetCall) Context(ctx context.Context) *ZonesGetCall {
80846	c.ctx_ = ctx
80847	return c
80848}
80849
80850// Header returns an http.Header that can be modified by the caller to
80851// add HTTP headers to the request.
80852func (c *ZonesGetCall) Header() http.Header {
80853	if c.header_ == nil {
80854		c.header_ = make(http.Header)
80855	}
80856	return c.header_
80857}
80858
80859func (c *ZonesGetCall) doRequest(alt string) (*http.Response, error) {
80860	reqHeaders := make(http.Header)
80861	for k, v := range c.header_ {
80862		reqHeaders[k] = v
80863	}
80864	reqHeaders.Set("User-Agent", c.s.userAgent())
80865	if c.ifNoneMatch_ != "" {
80866		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80867	}
80868	var body io.Reader = nil
80869	c.urlParams_.Set("alt", alt)
80870	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}")
80871	urls += "?" + c.urlParams_.Encode()
80872	req, _ := http.NewRequest("GET", urls, body)
80873	req.Header = reqHeaders
80874	googleapi.Expand(req.URL, map[string]string{
80875		"project": c.project,
80876		"zone":    c.zone,
80877	})
80878	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80879}
80880
80881// Do executes the "compute.zones.get" call.
80882// Exactly one of *Zone or error will be non-nil. Any non-2xx status
80883// code is an error. Response headers are in either
80884// *Zone.ServerResponse.Header or (if a response was returned at all) in
80885// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
80886// whether the returned error was because http.StatusNotModified was
80887// returned.
80888func (c *ZonesGetCall) Do(opts ...googleapi.CallOption) (*Zone, error) {
80889	gensupport.SetOptions(c.urlParams_, opts...)
80890	res, err := c.doRequest("json")
80891	if res != nil && res.StatusCode == http.StatusNotModified {
80892		if res.Body != nil {
80893			res.Body.Close()
80894		}
80895		return nil, &googleapi.Error{
80896			Code:   res.StatusCode,
80897			Header: res.Header,
80898		}
80899	}
80900	if err != nil {
80901		return nil, err
80902	}
80903	defer googleapi.CloseBody(res)
80904	if err := googleapi.CheckResponse(res); err != nil {
80905		return nil, err
80906	}
80907	ret := &Zone{
80908		ServerResponse: googleapi.ServerResponse{
80909			Header:         res.Header,
80910			HTTPStatusCode: res.StatusCode,
80911		},
80912	}
80913	target := &ret
80914	if err := gensupport.DecodeResponse(target, res); err != nil {
80915		return nil, err
80916	}
80917	return ret, nil
80918	// {
80919	//   "description": "Returns the specified Zone resource. Get a list of available zones by making a list() request.",
80920	//   "httpMethod": "GET",
80921	//   "id": "compute.zones.get",
80922	//   "parameterOrder": [
80923	//     "project",
80924	//     "zone"
80925	//   ],
80926	//   "parameters": {
80927	//     "project": {
80928	//       "description": "Project ID for this request.",
80929	//       "location": "path",
80930	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80931	//       "required": true,
80932	//       "type": "string"
80933	//     },
80934	//     "zone": {
80935	//       "description": "Name of the zone resource to return.",
80936	//       "location": "path",
80937	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80938	//       "required": true,
80939	//       "type": "string"
80940	//     }
80941	//   },
80942	//   "path": "{project}/zones/{zone}",
80943	//   "response": {
80944	//     "$ref": "Zone"
80945	//   },
80946	//   "scopes": [
80947	//     "https://www.googleapis.com/auth/cloud-platform",
80948	//     "https://www.googleapis.com/auth/compute",
80949	//     "https://www.googleapis.com/auth/compute.readonly"
80950	//   ]
80951	// }
80952
80953}
80954
80955// method id "compute.zones.list":
80956
80957type ZonesListCall struct {
80958	s            *Service
80959	project      string
80960	urlParams_   gensupport.URLParams
80961	ifNoneMatch_ string
80962	ctx_         context.Context
80963	header_      http.Header
80964}
80965
80966// List: Retrieves the list of Zone resources available to the specified
80967// project.
80968// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/list
80969func (r *ZonesService) List(project string) *ZonesListCall {
80970	c := &ZonesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80971	c.project = project
80972	return c
80973}
80974
80975// Filter sets the optional parameter "filter": Sets a filter
80976// {expression} for filtering listed resources. Your {expression} must
80977// be in the format: field_name comparison_string literal_string.
80978//
80979// The field_name is the name of the field you want to compare. Only
80980// atomic field types are supported (string, number, boolean). The
80981// comparison_string must be either eq (equals) or ne (not equals). The
80982// literal_string is the string value to filter to. The literal value
80983// must be valid for the type of field you are filtering by (string,
80984// number, boolean). For string fields, the literal value is interpreted
80985// as a regular expression using RE2 syntax. The literal value must
80986// match the entire field.
80987//
80988// For example, to filter for instances that do not have a name of
80989// example-instance, you would use name ne example-instance.
80990//
80991// You can filter on nested fields. For example, you could filter on
80992// instances that have set the scheduling.automaticRestart field to
80993// true. Use filtering on nested fields to take advantage of labels to
80994// organize and search for results based on label values.
80995//
80996// To filter on multiple expressions, provide each separate expression
80997// within parentheses. For example, (scheduling.automaticRestart eq
80998// true) (zone eq us-central1-f). Multiple expressions are treated as
80999// AND expressions, meaning that resources must match all expressions to
81000// pass the filters.
81001func (c *ZonesListCall) Filter(filter string) *ZonesListCall {
81002	c.urlParams_.Set("filter", filter)
81003	return c
81004}
81005
81006// MaxResults sets the optional parameter "maxResults": The maximum
81007// number of results per page that should be returned. If the number of
81008// available results is larger than maxResults, Compute Engine returns a
81009// nextPageToken that can be used to get the next page of results in
81010// subsequent list requests. Acceptable values are 0 to 500, inclusive.
81011// (Default: 500)
81012func (c *ZonesListCall) MaxResults(maxResults int64) *ZonesListCall {
81013	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
81014	return c
81015}
81016
81017// OrderBy sets the optional parameter "orderBy": Sorts list results by
81018// a certain order. By default, results are returned in alphanumerical
81019// order based on the resource name.
81020//
81021// You can also sort results in descending order based on the creation
81022// timestamp using orderBy="creationTimestamp desc". This sorts results
81023// based on the creationTimestamp field in reverse chronological order
81024// (newest result first). Use this to sort resources like operations so
81025// that the newest operation is returned first.
81026//
81027// Currently, only sorting by name or creationTimestamp desc is
81028// supported.
81029func (c *ZonesListCall) OrderBy(orderBy string) *ZonesListCall {
81030	c.urlParams_.Set("orderBy", orderBy)
81031	return c
81032}
81033
81034// PageToken sets the optional parameter "pageToken": Specifies a page
81035// token to use. Set pageToken to the nextPageToken returned by a
81036// previous list request to get the next page of results.
81037func (c *ZonesListCall) PageToken(pageToken string) *ZonesListCall {
81038	c.urlParams_.Set("pageToken", pageToken)
81039	return c
81040}
81041
81042// Fields allows partial responses to be retrieved. See
81043// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81044// for more information.
81045func (c *ZonesListCall) Fields(s ...googleapi.Field) *ZonesListCall {
81046	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81047	return c
81048}
81049
81050// IfNoneMatch sets the optional parameter which makes the operation
81051// fail if the object's ETag matches the given value. This is useful for
81052// getting updates only after the object has changed since the last
81053// request. Use googleapi.IsNotModified to check whether the response
81054// error from Do is the result of In-None-Match.
81055func (c *ZonesListCall) IfNoneMatch(entityTag string) *ZonesListCall {
81056	c.ifNoneMatch_ = entityTag
81057	return c
81058}
81059
81060// Context sets the context to be used in this call's Do method. Any
81061// pending HTTP request will be aborted if the provided context is
81062// canceled.
81063func (c *ZonesListCall) Context(ctx context.Context) *ZonesListCall {
81064	c.ctx_ = ctx
81065	return c
81066}
81067
81068// Header returns an http.Header that can be modified by the caller to
81069// add HTTP headers to the request.
81070func (c *ZonesListCall) Header() http.Header {
81071	if c.header_ == nil {
81072		c.header_ = make(http.Header)
81073	}
81074	return c.header_
81075}
81076
81077func (c *ZonesListCall) doRequest(alt string) (*http.Response, error) {
81078	reqHeaders := make(http.Header)
81079	for k, v := range c.header_ {
81080		reqHeaders[k] = v
81081	}
81082	reqHeaders.Set("User-Agent", c.s.userAgent())
81083	if c.ifNoneMatch_ != "" {
81084		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81085	}
81086	var body io.Reader = nil
81087	c.urlParams_.Set("alt", alt)
81088	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones")
81089	urls += "?" + c.urlParams_.Encode()
81090	req, _ := http.NewRequest("GET", urls, body)
81091	req.Header = reqHeaders
81092	googleapi.Expand(req.URL, map[string]string{
81093		"project": c.project,
81094	})
81095	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81096}
81097
81098// Do executes the "compute.zones.list" call.
81099// Exactly one of *ZoneList or error will be non-nil. Any non-2xx status
81100// code is an error. Response headers are in either
81101// *ZoneList.ServerResponse.Header or (if a response was returned at
81102// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81103// to check whether the returned error was because
81104// http.StatusNotModified was returned.
81105func (c *ZonesListCall) Do(opts ...googleapi.CallOption) (*ZoneList, error) {
81106	gensupport.SetOptions(c.urlParams_, opts...)
81107	res, err := c.doRequest("json")
81108	if res != nil && res.StatusCode == http.StatusNotModified {
81109		if res.Body != nil {
81110			res.Body.Close()
81111		}
81112		return nil, &googleapi.Error{
81113			Code:   res.StatusCode,
81114			Header: res.Header,
81115		}
81116	}
81117	if err != nil {
81118		return nil, err
81119	}
81120	defer googleapi.CloseBody(res)
81121	if err := googleapi.CheckResponse(res); err != nil {
81122		return nil, err
81123	}
81124	ret := &ZoneList{
81125		ServerResponse: googleapi.ServerResponse{
81126			Header:         res.Header,
81127			HTTPStatusCode: res.StatusCode,
81128		},
81129	}
81130	target := &ret
81131	if err := gensupport.DecodeResponse(target, res); err != nil {
81132		return nil, err
81133	}
81134	return ret, nil
81135	// {
81136	//   "description": "Retrieves the list of Zone resources available to the specified project.",
81137	//   "httpMethod": "GET",
81138	//   "id": "compute.zones.list",
81139	//   "parameterOrder": [
81140	//     "project"
81141	//   ],
81142	//   "parameters": {
81143	//     "filter": {
81144	//       "description": "Sets a filter {expression} for filtering listed resources. Your {expression} must be in the format: field_name comparison_string literal_string.\n\nThe field_name is the name of the field you want to compare. Only atomic field types are supported (string, number, boolean). The comparison_string must be either eq (equals) or ne (not equals). The literal_string is the string value to filter to. The literal value must be valid for the type of field you are filtering by (string, number, boolean). For string fields, the literal value is interpreted as a regular expression using RE2 syntax. The literal value must match the entire field.\n\nFor example, to filter for instances that do not have a name of example-instance, you would use name ne example-instance.\n\nYou can filter on nested fields. For example, you could filter on instances that have set the scheduling.automaticRestart field to true. Use filtering on nested fields to take advantage of labels to organize and search for results based on label values.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart eq true) (zone eq us-central1-f). Multiple expressions are treated as AND expressions, meaning that resources must match all expressions to pass the filters.",
81145	//       "location": "query",
81146	//       "type": "string"
81147	//     },
81148	//     "maxResults": {
81149	//       "default": "500",
81150	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
81151	//       "format": "uint32",
81152	//       "location": "query",
81153	//       "minimum": "0",
81154	//       "type": "integer"
81155	//     },
81156	//     "orderBy": {
81157	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
81158	//       "location": "query",
81159	//       "type": "string"
81160	//     },
81161	//     "pageToken": {
81162	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
81163	//       "location": "query",
81164	//       "type": "string"
81165	//     },
81166	//     "project": {
81167	//       "description": "Project ID for this request.",
81168	//       "location": "path",
81169	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81170	//       "required": true,
81171	//       "type": "string"
81172	//     }
81173	//   },
81174	//   "path": "{project}/zones",
81175	//   "response": {
81176	//     "$ref": "ZoneList"
81177	//   },
81178	//   "scopes": [
81179	//     "https://www.googleapis.com/auth/cloud-platform",
81180	//     "https://www.googleapis.com/auth/compute",
81181	//     "https://www.googleapis.com/auth/compute.readonly"
81182	//   ]
81183	// }
81184
81185}
81186
81187// Pages invokes f for each page of results.
81188// A non-nil error returned from f will halt the iteration.
81189// The provided context supersedes any context provided to the Context method.
81190func (c *ZonesListCall) Pages(ctx context.Context, f func(*ZoneList) error) error {
81191	c.ctx_ = ctx
81192	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
81193	for {
81194		x, err := c.Do()
81195		if err != nil {
81196			return err
81197		}
81198		if err := f(x); err != nil {
81199			return err
81200		}
81201		if x.NextPageToken == "" {
81202			return nil
81203		}
81204		c.PageToken(x.NextPageToken)
81205	}
81206}
81207