1// Copyright 2019 Google LLC.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated file. DO NOT EDIT.
6
7// Package container provides access to the Kubernetes Engine API.
8//
9// For product documentation, see: https://cloud.google.com/container-engine/
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/container/v1"
16//   ...
17//   ctx := context.Background()
18//   containerService, err := container.NewService(ctx)
19//
20// In this example, Google Application Default Credentials are used for authentication.
21//
22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
23//
24// Other authentication options
25//
26// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
27//
28//   containerService, err := container.NewService(ctx, option.WithAPIKey("AIza..."))
29//
30// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
31//
32//   config := &oauth2.Config{...}
33//   // ...
34//   token, err := config.Exchange(ctx, ...)
35//   containerService, err := container.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
36//
37// See https://godoc.org/google.golang.org/api/option/ for details on options.
38package container // import "google.golang.org/api/container/v1"
39
40import (
41	"bytes"
42	"context"
43	"encoding/json"
44	"errors"
45	"fmt"
46	"io"
47	"net/http"
48	"net/url"
49	"strconv"
50	"strings"
51
52	gensupport "google.golang.org/api/gensupport"
53	googleapi "google.golang.org/api/googleapi"
54	option "google.golang.org/api/option"
55	htransport "google.golang.org/api/transport/http"
56)
57
58// Always reference these packages, just in case the auto-generated code
59// below doesn't.
60var _ = bytes.NewBuffer
61var _ = strconv.Itoa
62var _ = fmt.Sprintf
63var _ = json.NewDecoder
64var _ = io.Copy
65var _ = url.Parse
66var _ = gensupport.MarshalJSON
67var _ = googleapi.Version
68var _ = errors.New
69var _ = strings.Replace
70var _ = context.Canceled
71
72const apiId = "container:v1"
73const apiName = "container"
74const apiVersion = "v1"
75const basePath = "https://container.googleapis.com/"
76
77// OAuth2 scopes used by this API.
78const (
79	// View and manage your data across Google Cloud Platform services
80	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
81)
82
83// NewService creates a new Service.
84func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
85	scopesOption := option.WithScopes(
86		"https://www.googleapis.com/auth/cloud-platform",
87	)
88	// NOTE: prepend, so we don't override user-specified scopes.
89	opts = append([]option.ClientOption{scopesOption}, opts...)
90	client, endpoint, err := htransport.NewClient(ctx, opts...)
91	if err != nil {
92		return nil, err
93	}
94	s, err := New(client)
95	if err != nil {
96		return nil, err
97	}
98	if endpoint != "" {
99		s.BasePath = endpoint
100	}
101	return s, nil
102}
103
104// New creates a new Service. It uses the provided http.Client for requests.
105//
106// Deprecated: please use NewService instead.
107// To provide a custom HTTP client, use option.WithHTTPClient.
108// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
109func New(client *http.Client) (*Service, error) {
110	if client == nil {
111		return nil, errors.New("client is nil")
112	}
113	s := &Service{client: client, BasePath: basePath}
114	s.Projects = NewProjectsService(s)
115	return s, nil
116}
117
118type Service struct {
119	client    *http.Client
120	BasePath  string // API endpoint base URL
121	UserAgent string // optional additional User-Agent fragment
122
123	Projects *ProjectsService
124}
125
126func (s *Service) userAgent() string {
127	if s.UserAgent == "" {
128		return googleapi.UserAgent
129	}
130	return googleapi.UserAgent + " " + s.UserAgent
131}
132
133func NewProjectsService(s *Service) *ProjectsService {
134	rs := &ProjectsService{s: s}
135	rs.Aggregated = NewProjectsAggregatedService(s)
136	rs.Locations = NewProjectsLocationsService(s)
137	rs.Zones = NewProjectsZonesService(s)
138	return rs
139}
140
141type ProjectsService struct {
142	s *Service
143
144	Aggregated *ProjectsAggregatedService
145
146	Locations *ProjectsLocationsService
147
148	Zones *ProjectsZonesService
149}
150
151func NewProjectsAggregatedService(s *Service) *ProjectsAggregatedService {
152	rs := &ProjectsAggregatedService{s: s}
153	rs.UsableSubnetworks = NewProjectsAggregatedUsableSubnetworksService(s)
154	return rs
155}
156
157type ProjectsAggregatedService struct {
158	s *Service
159
160	UsableSubnetworks *ProjectsAggregatedUsableSubnetworksService
161}
162
163func NewProjectsAggregatedUsableSubnetworksService(s *Service) *ProjectsAggregatedUsableSubnetworksService {
164	rs := &ProjectsAggregatedUsableSubnetworksService{s: s}
165	return rs
166}
167
168type ProjectsAggregatedUsableSubnetworksService struct {
169	s *Service
170}
171
172func NewProjectsLocationsService(s *Service) *ProjectsLocationsService {
173	rs := &ProjectsLocationsService{s: s}
174	rs.Clusters = NewProjectsLocationsClustersService(s)
175	rs.Operations = NewProjectsLocationsOperationsService(s)
176	return rs
177}
178
179type ProjectsLocationsService struct {
180	s *Service
181
182	Clusters *ProjectsLocationsClustersService
183
184	Operations *ProjectsLocationsOperationsService
185}
186
187func NewProjectsLocationsClustersService(s *Service) *ProjectsLocationsClustersService {
188	rs := &ProjectsLocationsClustersService{s: s}
189	rs.NodePools = NewProjectsLocationsClustersNodePoolsService(s)
190	rs.WellKnown = NewProjectsLocationsClustersWellKnownService(s)
191	return rs
192}
193
194type ProjectsLocationsClustersService struct {
195	s *Service
196
197	NodePools *ProjectsLocationsClustersNodePoolsService
198
199	WellKnown *ProjectsLocationsClustersWellKnownService
200}
201
202func NewProjectsLocationsClustersNodePoolsService(s *Service) *ProjectsLocationsClustersNodePoolsService {
203	rs := &ProjectsLocationsClustersNodePoolsService{s: s}
204	return rs
205}
206
207type ProjectsLocationsClustersNodePoolsService struct {
208	s *Service
209}
210
211func NewProjectsLocationsClustersWellKnownService(s *Service) *ProjectsLocationsClustersWellKnownService {
212	rs := &ProjectsLocationsClustersWellKnownService{s: s}
213	return rs
214}
215
216type ProjectsLocationsClustersWellKnownService struct {
217	s *Service
218}
219
220func NewProjectsLocationsOperationsService(s *Service) *ProjectsLocationsOperationsService {
221	rs := &ProjectsLocationsOperationsService{s: s}
222	return rs
223}
224
225type ProjectsLocationsOperationsService struct {
226	s *Service
227}
228
229func NewProjectsZonesService(s *Service) *ProjectsZonesService {
230	rs := &ProjectsZonesService{s: s}
231	rs.Clusters = NewProjectsZonesClustersService(s)
232	rs.Operations = NewProjectsZonesOperationsService(s)
233	return rs
234}
235
236type ProjectsZonesService struct {
237	s *Service
238
239	Clusters *ProjectsZonesClustersService
240
241	Operations *ProjectsZonesOperationsService
242}
243
244func NewProjectsZonesClustersService(s *Service) *ProjectsZonesClustersService {
245	rs := &ProjectsZonesClustersService{s: s}
246	rs.NodePools = NewProjectsZonesClustersNodePoolsService(s)
247	return rs
248}
249
250type ProjectsZonesClustersService struct {
251	s *Service
252
253	NodePools *ProjectsZonesClustersNodePoolsService
254}
255
256func NewProjectsZonesClustersNodePoolsService(s *Service) *ProjectsZonesClustersNodePoolsService {
257	rs := &ProjectsZonesClustersNodePoolsService{s: s}
258	return rs
259}
260
261type ProjectsZonesClustersNodePoolsService struct {
262	s *Service
263}
264
265func NewProjectsZonesOperationsService(s *Service) *ProjectsZonesOperationsService {
266	rs := &ProjectsZonesOperationsService{s: s}
267	return rs
268}
269
270type ProjectsZonesOperationsService struct {
271	s *Service
272}
273
274// AcceleratorConfig: AcceleratorConfig represents a Hardware
275// Accelerator request.
276type AcceleratorConfig struct {
277	// AcceleratorCount: The number of the accelerator cards exposed to an
278	// instance.
279	AcceleratorCount int64 `json:"acceleratorCount,omitempty,string"`
280
281	// AcceleratorType: The accelerator type resource name. List of
282	// supported accelerators
283	// [here](/compute/docs/gpus/#Introduction)
284	AcceleratorType string `json:"acceleratorType,omitempty"`
285
286	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
287	// unconditionally include in API requests. By default, fields with
288	// empty values are omitted from API requests. However, any non-pointer,
289	// non-interface field appearing in ForceSendFields will be sent to the
290	// server regardless of whether the field is empty or not. This may be
291	// used to include empty fields in Patch requests.
292	ForceSendFields []string `json:"-"`
293
294	// NullFields is a list of field names (e.g. "AcceleratorCount") to
295	// include in API requests with the JSON null value. By default, fields
296	// with empty values are omitted from API requests. However, any field
297	// with an empty value appearing in NullFields will be sent to the
298	// server as null. It is an error if a field in this list has a
299	// non-empty value. This may be used to include null fields in Patch
300	// requests.
301	NullFields []string `json:"-"`
302}
303
304func (s *AcceleratorConfig) MarshalJSON() ([]byte, error) {
305	type NoMethod AcceleratorConfig
306	raw := NoMethod(*s)
307	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
308}
309
310// AddonsConfig: Configuration for the addons that can be automatically
311// spun up in the
312// cluster, enabling additional functionality.
313type AddonsConfig struct {
314	// HorizontalPodAutoscaling: Configuration for the horizontal pod
315	// autoscaling feature, which
316	// increases or decreases the number of replica pods a replication
317	// controller
318	// has based on the resource usage of the existing pods.
319	HorizontalPodAutoscaling *HorizontalPodAutoscaling `json:"horizontalPodAutoscaling,omitempty"`
320
321	// HttpLoadBalancing: Configuration for the HTTP (L7) load balancing
322	// controller addon, which
323	// makes it easy to set up HTTP load balancers for services in a
324	// cluster.
325	HttpLoadBalancing *HttpLoadBalancing `json:"httpLoadBalancing,omitempty"`
326
327	// KubernetesDashboard: Configuration for the Kubernetes Dashboard.
328	// This addon is deprecated, and will be disabled in 1.15. It is
329	// recommended
330	// to use the Cloud Console to manage and monitor your Kubernetes
331	// clusters,
332	// workloads and applications. For more information,
333	// see:
334	// https://cloud.google.com/kubernetes-engine/docs/concepts/dashboar
335	// ds
336	KubernetesDashboard *KubernetesDashboard `json:"kubernetesDashboard,omitempty"`
337
338	// NetworkPolicyConfig: Configuration for NetworkPolicy. This only
339	// tracks whether the addon
340	// is enabled or not on the Master, it does not track whether network
341	// policy
342	// is enabled for the nodes.
343	NetworkPolicyConfig *NetworkPolicyConfig `json:"networkPolicyConfig,omitempty"`
344
345	// ForceSendFields is a list of field names (e.g.
346	// "HorizontalPodAutoscaling") to unconditionally include in API
347	// requests. By default, fields with empty values are omitted from API
348	// requests. However, any non-pointer, non-interface field appearing in
349	// ForceSendFields will be sent to the server regardless of whether the
350	// field is empty or not. This may be used to include empty fields in
351	// Patch requests.
352	ForceSendFields []string `json:"-"`
353
354	// NullFields is a list of field names (e.g. "HorizontalPodAutoscaling")
355	// to include in API requests with the JSON null value. By default,
356	// fields with empty values are omitted from API requests. However, any
357	// field with an empty value appearing in NullFields will be sent to the
358	// server as null. It is an error if a field in this list has a
359	// non-empty value. This may be used to include null fields in Patch
360	// requests.
361	NullFields []string `json:"-"`
362}
363
364func (s *AddonsConfig) MarshalJSON() ([]byte, error) {
365	type NoMethod AddonsConfig
366	raw := NoMethod(*s)
367	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
368}
369
370// AutoUpgradeOptions: AutoUpgradeOptions defines the set of options for
371// the user to control how
372// the Auto Upgrades will proceed.
373type AutoUpgradeOptions struct {
374	// AutoUpgradeStartTime: [Output only] This field is set when upgrades
375	// are about to commence
376	// with the approximate start time for the upgrades,
377	// in
378	// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
379	AutoUpgradeStartTime string `json:"autoUpgradeStartTime,omitempty"`
380
381	// Description: [Output only] This field is set when upgrades are about
382	// to commence
383	// with the description of the upgrade.
384	Description string `json:"description,omitempty"`
385
386	// ForceSendFields is a list of field names (e.g.
387	// "AutoUpgradeStartTime") to unconditionally include in API requests.
388	// By default, fields with empty values are omitted from API requests.
389	// However, any non-pointer, non-interface field appearing in
390	// ForceSendFields will be sent to the server regardless of whether the
391	// field is empty or not. This may be used to include empty fields in
392	// Patch requests.
393	ForceSendFields []string `json:"-"`
394
395	// NullFields is a list of field names (e.g. "AutoUpgradeStartTime") to
396	// include in API requests with the JSON null value. By default, fields
397	// with empty values are omitted from API requests. However, any field
398	// with an empty value appearing in NullFields will be sent to the
399	// server as null. It is an error if a field in this list has a
400	// non-empty value. This may be used to include null fields in Patch
401	// requests.
402	NullFields []string `json:"-"`
403}
404
405func (s *AutoUpgradeOptions) MarshalJSON() ([]byte, error) {
406	type NoMethod AutoUpgradeOptions
407	raw := NoMethod(*s)
408	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
409}
410
411// BigQueryDestination: Parameters for using BigQuery as the destination
412// of resource usage export.
413type BigQueryDestination struct {
414	// DatasetId: The ID of a BigQuery Dataset.
415	DatasetId string `json:"datasetId,omitempty"`
416
417	// ForceSendFields is a list of field names (e.g. "DatasetId") to
418	// unconditionally include in API requests. By default, fields with
419	// empty values are omitted from API requests. However, any non-pointer,
420	// non-interface field appearing in ForceSendFields will be sent to the
421	// server regardless of whether the field is empty or not. This may be
422	// used to include empty fields in Patch requests.
423	ForceSendFields []string `json:"-"`
424
425	// NullFields is a list of field names (e.g. "DatasetId") to include in
426	// API requests with the JSON null value. By default, fields with empty
427	// values are omitted from API requests. However, any field with an
428	// empty value appearing in NullFields will be sent to the server as
429	// null. It is an error if a field in this list has a non-empty value.
430	// This may be used to include null fields in Patch requests.
431	NullFields []string `json:"-"`
432}
433
434func (s *BigQueryDestination) MarshalJSON() ([]byte, error) {
435	type NoMethod BigQueryDestination
436	raw := NoMethod(*s)
437	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
438}
439
440// CancelOperationRequest: CancelOperationRequest cancels a single
441// operation.
442type CancelOperationRequest struct {
443	// Name: The name (project, location, operation id) of the operation to
444	// cancel.
445	// Specified in the format 'projects/*/locations/*/operations/*'.
446	Name string `json:"name,omitempty"`
447
448	// OperationId: Deprecated. The server-assigned `name` of the
449	// operation.
450	// This field has been deprecated and replaced by the name field.
451	OperationId string `json:"operationId,omitempty"`
452
453	// ProjectId: Deprecated. The Google Developers Console [project ID or
454	// project
455	// number](https://support.google.com/cloud/answer/6158840).
456	// This
457	//  field has been deprecated and replaced by the name field.
458	ProjectId string `json:"projectId,omitempty"`
459
460	// Zone: Deprecated. The name of the Google Compute
461	// Engine
462	// [zone](/compute/docs/zones#available) in which the operation
463	// resides.
464	// This field has been deprecated and replaced by the name field.
465	Zone string `json:"zone,omitempty"`
466
467	// ForceSendFields is a list of field names (e.g. "Name") to
468	// unconditionally include in API requests. By default, fields with
469	// empty values are omitted from API requests. However, any non-pointer,
470	// non-interface field appearing in ForceSendFields will be sent to the
471	// server regardless of whether the field is empty or not. This may be
472	// used to include empty fields in Patch requests.
473	ForceSendFields []string `json:"-"`
474
475	// NullFields is a list of field names (e.g. "Name") to include in API
476	// requests with the JSON null value. By default, fields with empty
477	// values are omitted from API requests. However, any field with an
478	// empty value appearing in NullFields will be sent to the server as
479	// null. It is an error if a field in this list has a non-empty value.
480	// This may be used to include null fields in Patch requests.
481	NullFields []string `json:"-"`
482}
483
484func (s *CancelOperationRequest) MarshalJSON() ([]byte, error) {
485	type NoMethod CancelOperationRequest
486	raw := NoMethod(*s)
487	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
488}
489
490// CidrBlock: CidrBlock contains an optional name and one CIDR block.
491type CidrBlock struct {
492	// CidrBlock: cidr_block must be specified in CIDR notation.
493	CidrBlock string `json:"cidrBlock,omitempty"`
494
495	// DisplayName: display_name is an optional field for users to identify
496	// CIDR blocks.
497	DisplayName string `json:"displayName,omitempty"`
498
499	// ForceSendFields is a list of field names (e.g. "CidrBlock") to
500	// unconditionally include in API requests. By default, fields with
501	// empty values are omitted from API requests. However, any non-pointer,
502	// non-interface field appearing in ForceSendFields will be sent to the
503	// server regardless of whether the field is empty or not. This may be
504	// used to include empty fields in Patch requests.
505	ForceSendFields []string `json:"-"`
506
507	// NullFields is a list of field names (e.g. "CidrBlock") to include in
508	// API requests with the JSON null value. By default, fields with empty
509	// values are omitted from API requests. However, any field with an
510	// empty value appearing in NullFields will be sent to the server as
511	// null. It is an error if a field in this list has a non-empty value.
512	// This may be used to include null fields in Patch requests.
513	NullFields []string `json:"-"`
514}
515
516func (s *CidrBlock) MarshalJSON() ([]byte, error) {
517	type NoMethod CidrBlock
518	raw := NoMethod(*s)
519	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
520}
521
522// ClientCertificateConfig: Configuration for client certificates on the
523// cluster.
524type ClientCertificateConfig struct {
525	// IssueClientCertificate: Issue a client certificate.
526	IssueClientCertificate bool `json:"issueClientCertificate,omitempty"`
527
528	// ForceSendFields is a list of field names (e.g.
529	// "IssueClientCertificate") to unconditionally include in API requests.
530	// By default, fields with empty values are omitted from API requests.
531	// However, any non-pointer, non-interface field appearing in
532	// ForceSendFields will be sent to the server regardless of whether the
533	// field is empty or not. This may be used to include empty fields in
534	// Patch requests.
535	ForceSendFields []string `json:"-"`
536
537	// NullFields is a list of field names (e.g. "IssueClientCertificate")
538	// to include in API requests with the JSON null value. By default,
539	// fields with empty values are omitted from API requests. However, any
540	// field with an empty value appearing in NullFields will be sent to the
541	// server as null. It is an error if a field in this list has a
542	// non-empty value. This may be used to include null fields in Patch
543	// requests.
544	NullFields []string `json:"-"`
545}
546
547func (s *ClientCertificateConfig) MarshalJSON() ([]byte, error) {
548	type NoMethod ClientCertificateConfig
549	raw := NoMethod(*s)
550	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
551}
552
553// Cluster: A Google Kubernetes Engine cluster.
554type Cluster struct {
555	// AddonsConfig: Configurations for the various addons available to run
556	// in the cluster.
557	AddonsConfig *AddonsConfig `json:"addonsConfig,omitempty"`
558
559	// ClusterIpv4Cidr: The IP address range of the container pods in this
560	// cluster,
561	// in
562	// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
563	//
564	// notation (e.g. `10.96.0.0/14`). Leave blank to have
565	// one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
566	ClusterIpv4Cidr string `json:"clusterIpv4Cidr,omitempty"`
567
568	// Conditions: Which conditions caused the current cluster state.
569	Conditions []*StatusCondition `json:"conditions,omitempty"`
570
571	// CreateTime: [Output only] The time the cluster was created,
572	// in
573	// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
574	CreateTime string `json:"createTime,omitempty"`
575
576	// CurrentMasterVersion: [Output only] The current software version of
577	// the master endpoint.
578	CurrentMasterVersion string `json:"currentMasterVersion,omitempty"`
579
580	// CurrentNodeCount: [Output only]  The number of nodes currently in the
581	// cluster. Deprecated.
582	// Call Kubernetes API directly to retrieve node information.
583	CurrentNodeCount int64 `json:"currentNodeCount,omitempty"`
584
585	// CurrentNodeVersion: [Output only] Deprecated,
586	// use
587	// [NodePools.version](/kubernetes-engine/docs/reference/rest/v1/proj
588	// ects.zones.clusters.nodePools)
589	// instead. The current version of the node software components. If they
590	// are
591	// currently at multiple versions because they're in the process of
592	// being
593	// upgraded, this reflects the minimum version of all nodes.
594	CurrentNodeVersion string `json:"currentNodeVersion,omitempty"`
595
596	// DefaultMaxPodsConstraint: The default constraint on the maximum
597	// number of pods that can be run
598	// simultaneously on a node in the node pool of this cluster. Only
599	// honored
600	// if cluster created with IP Alias support.
601	DefaultMaxPodsConstraint *MaxPodsConstraint `json:"defaultMaxPodsConstraint,omitempty"`
602
603	// Description: An optional description of this cluster.
604	Description string `json:"description,omitempty"`
605
606	// EnableKubernetesAlpha: Kubernetes alpha features are enabled on this
607	// cluster. This includes alpha
608	// API groups (e.g. v1alpha1) and features that may not be production
609	// ready in
610	// the kubernetes version of the master and nodes.
611	// The cluster has no SLA for uptime and master/node upgrades are
612	// disabled.
613	// Alpha enabled clusters are automatically deleted thirty days
614	// after
615	// creation.
616	EnableKubernetesAlpha bool `json:"enableKubernetesAlpha,omitempty"`
617
618	// EnableTpu: Enable the ability to use Cloud TPUs in this cluster.
619	EnableTpu bool `json:"enableTpu,omitempty"`
620
621	// Endpoint: [Output only] The IP address of this cluster's master
622	// endpoint.
623	// The endpoint can be accessed from the internet
624	// at
625	// `https://username:password@endpoint/`.
626	//
627	// See the `masterAuth` property of this resource for username
628	// and
629	// password information.
630	Endpoint string `json:"endpoint,omitempty"`
631
632	// ExpireTime: [Output only] The time the cluster will be
633	// automatically
634	// deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
635	// format.
636	ExpireTime string `json:"expireTime,omitempty"`
637
638	// InitialClusterVersion: The initial Kubernetes version for this
639	// cluster.  Valid versions are those
640	// found in validMasterVersions returned by getServerConfig.  The
641	// version can
642	// be upgraded over time; such upgrades are reflected
643	// in
644	// currentMasterVersion and currentNodeVersion.
645	//
646	// Users may specify either explicit versions offered by
647	// Kubernetes Engine or version aliases, which have the following
648	// behavior:
649	//
650	// - "latest": picks the highest valid Kubernetes version
651	// - "1.X": picks the highest valid patch+gke.N patch in the 1.X
652	// version
653	// - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
654	// - "1.X.Y-gke.N": picks an explicit Kubernetes version
655	// - "","-": picks the default Kubernetes version
656	InitialClusterVersion string `json:"initialClusterVersion,omitempty"`
657
658	// InitialNodeCount: The number of nodes to create in this cluster. You
659	// must ensure that your
660	// Compute Engine <a href="/compute/docs/resource-quotas">resource
661	// quota</a>
662	// is sufficient for this number of instances. You must also have
663	// available
664	// firewall and routes quota.
665	// For requests, this field should only be used in lieu of a
666	// "node_pool" object, since this configuration (along with
667	// the
668	// "node_config") will be used to create a "NodePool" object with
669	// an
670	// auto-generated name. Do not use this and a node_pool at the same
671	// time.
672	//
673	// This field is deprecated, use node_pool.initial_node_count instead.
674	InitialNodeCount int64 `json:"initialNodeCount,omitempty"`
675
676	// InstanceGroupUrls: Deprecated. Use node_pools.instance_group_urls.
677	InstanceGroupUrls []string `json:"instanceGroupUrls,omitempty"`
678
679	// IpAllocationPolicy: Configuration for cluster IP allocation.
680	IpAllocationPolicy *IPAllocationPolicy `json:"ipAllocationPolicy,omitempty"`
681
682	// LabelFingerprint: The fingerprint of the set of labels for this
683	// cluster.
684	LabelFingerprint string `json:"labelFingerprint,omitempty"`
685
686	// LegacyAbac: Configuration for the legacy ABAC authorization mode.
687	LegacyAbac *LegacyAbac `json:"legacyAbac,omitempty"`
688
689	// Location: [Output only] The name of the Google Compute
690	// Engine
691	// [zone](/compute/docs/regions-zones/regions-zones#available)
692	// or
693	// [region](/compute/docs/regions-zones/regions-zones#available) in
694	// which
695	// the cluster resides.
696	Location string `json:"location,omitempty"`
697
698	// Locations: The list of Google Compute
699	// Engine
700	// [zones](/compute/docs/zones#available) in which the cluster's
701	// nodes
702	// should be located.
703	Locations []string `json:"locations,omitempty"`
704
705	// LoggingService: The logging service the cluster should use to write
706	// logs.
707	// Currently available options:
708	//
709	// * "logging.googleapis.com/kubernetes" - the Google Cloud
710	// Logging
711	// service with Kubernetes-native resource model in Stackdriver
712	// * `logging.googleapis.com` - the Google Cloud Logging service.
713	// * `none` - no logs will be exported from the cluster.
714	// * if left as an empty string,`logging.googleapis.com` will be used.
715	LoggingService string `json:"loggingService,omitempty"`
716
717	// MaintenancePolicy: Configure the maintenance policy for this cluster.
718	MaintenancePolicy *MaintenancePolicy `json:"maintenancePolicy,omitempty"`
719
720	// MasterAuth: The authentication information for accessing the master
721	// endpoint.
722	// If unspecified, the defaults are used:
723	// For clusters before v1.12, if master_auth is unspecified, `username`
724	// will
725	// be set to "admin", a random password will be generated, and a
726	// client
727	// certificate will be issued.
728	MasterAuth *MasterAuth `json:"masterAuth,omitempty"`
729
730	// MasterAuthorizedNetworksConfig: The configuration options for master
731	// authorized networks feature.
732	MasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `json:"masterAuthorizedNetworksConfig,omitempty"`
733
734	// MonitoringService: The monitoring service the cluster should use to
735	// write metrics.
736	// Currently available options:
737	//
738	// * `monitoring.googleapis.com` - the Google Cloud Monitoring
739	// service.
740	// * `none` - no metrics will be exported from the cluster.
741	// * if left as an empty string, `monitoring.googleapis.com` will be
742	// used.
743	MonitoringService string `json:"monitoringService,omitempty"`
744
745	// Name: The name of this cluster. The name must be unique within this
746	// project
747	// and zone, and can be up to 40 characters with the following
748	// restrictions:
749	//
750	// * Lowercase letters, numbers, and hyphens only.
751	// * Must start with a letter.
752	// * Must end with a number or a letter.
753	Name string `json:"name,omitempty"`
754
755	// Network: The name of the Google Compute
756	// Engine
757	// [network](/compute/docs/networks-and-firewalls#networks) to which
758	// the
759	// cluster is connected. If left unspecified, the `default` network
760	// will be used.
761	Network string `json:"network,omitempty"`
762
763	// NetworkConfig: Configuration for cluster networking.
764	NetworkConfig *NetworkConfig `json:"networkConfig,omitempty"`
765
766	// NetworkPolicy: Configuration options for the NetworkPolicy feature.
767	NetworkPolicy *NetworkPolicy `json:"networkPolicy,omitempty"`
768
769	// NodeConfig: Parameters used in creating the cluster's nodes.
770	// For requests, this field should only be used in lieu of a
771	// "node_pool" object, since this configuration (along with
772	// the
773	// "initial_node_count") will be used to create a "NodePool" object with
774	// an
775	// auto-generated name. Do not use this and a node_pool at the same
776	// time.
777	// For responses, this field will be populated with the node
778	// configuration of
779	// the first node pool. (For configuration of each node pool,
780	// see
781	// `node_pool.config`)
782	//
783	// If unspecified, the defaults are used.
784	// This field is deprecated, use node_pool.config instead.
785	NodeConfig *NodeConfig `json:"nodeConfig,omitempty"`
786
787	// NodeIpv4CidrSize: [Output only] The size of the address space on each
788	// node for hosting
789	// containers. This is provisioned from within the
790	// `container_ipv4_cidr`
791	// range. This field will only be set when cluster is in route-based
792	// network
793	// mode.
794	NodeIpv4CidrSize int64 `json:"nodeIpv4CidrSize,omitempty"`
795
796	// NodePools: The node pools associated with this cluster.
797	// This field should not be set if "node_config" or "initial_node_count"
798	// are
799	// specified.
800	NodePools []*NodePool `json:"nodePools,omitempty"`
801
802	// PrivateClusterConfig: Configuration for private cluster.
803	PrivateClusterConfig *PrivateClusterConfig `json:"privateClusterConfig,omitempty"`
804
805	// ResourceLabels: The resource labels for the cluster to use to
806	// annotate any related
807	// Google Compute Engine resources.
808	ResourceLabels map[string]string `json:"resourceLabels,omitempty"`
809
810	// ResourceUsageExportConfig: Configuration for exporting resource
811	// usages. Resource usage export is
812	// disabled when this config is unspecified.
813	ResourceUsageExportConfig *ResourceUsageExportConfig `json:"resourceUsageExportConfig,omitempty"`
814
815	// SelfLink: [Output only] Server-defined URL for the resource.
816	SelfLink string `json:"selfLink,omitempty"`
817
818	// ServicesIpv4Cidr: [Output only] The IP address range of the
819	// Kubernetes services in
820	// this cluster,
821	// in
822	// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
823	//
824	// notation (e.g. `1.2.3.4/29`). Service addresses are
825	// typically put in the last `/16` from the container CIDR.
826	ServicesIpv4Cidr string `json:"servicesIpv4Cidr,omitempty"`
827
828	// Status: [Output only] The current status of this cluster.
829	//
830	// Possible values:
831	//   "STATUS_UNSPECIFIED" - Not set.
832	//   "PROVISIONING" - The PROVISIONING state indicates the cluster is
833	// being created.
834	//   "RUNNING" - The RUNNING state indicates the cluster has been
835	// created and is fully
836	// usable.
837	//   "RECONCILING" - The RECONCILING state indicates that some work is
838	// actively being done on
839	// the cluster, such as upgrading the master or node software. Details
840	// can
841	// be found in the `statusMessage` field.
842	//   "STOPPING" - The STOPPING state indicates the cluster is being
843	// deleted.
844	//   "ERROR" - The ERROR state indicates the cluster may be unusable.
845	// Details
846	// can be found in the `statusMessage` field.
847	//   "DEGRADED" - The DEGRADED state indicates the cluster requires user
848	// action to restore
849	// full functionality. Details can be found in the `statusMessage`
850	// field.
851	Status string `json:"status,omitempty"`
852
853	// StatusMessage: [Output only] Additional information about the current
854	// status of this
855	// cluster, if available.
856	StatusMessage string `json:"statusMessage,omitempty"`
857
858	// Subnetwork: The name of the Google Compute
859	// Engine
860	// [subnetwork](/compute/docs/subnetworks) to which the
861	// cluster is connected.
862	Subnetwork string `json:"subnetwork,omitempty"`
863
864	// TpuIpv4CidrBlock: [Output only] The IP address range of the Cloud
865	// TPUs in this cluster,
866	// in
867	// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
868	//
869	// notation (e.g. `1.2.3.4/29`).
870	TpuIpv4CidrBlock string `json:"tpuIpv4CidrBlock,omitempty"`
871
872	// Zone: [Output only] The name of the Google Compute
873	// Engine
874	// [zone](/compute/docs/zones#available) in which the
875	// cluster
876	// resides.
877	// This field is deprecated, use location instead.
878	Zone string `json:"zone,omitempty"`
879
880	// ServerResponse contains the HTTP response code and headers from the
881	// server.
882	googleapi.ServerResponse `json:"-"`
883
884	// ForceSendFields is a list of field names (e.g. "AddonsConfig") to
885	// unconditionally include in API requests. By default, fields with
886	// empty values are omitted from API requests. However, any non-pointer,
887	// non-interface field appearing in ForceSendFields will be sent to the
888	// server regardless of whether the field is empty or not. This may be
889	// used to include empty fields in Patch requests.
890	ForceSendFields []string `json:"-"`
891
892	// NullFields is a list of field names (e.g. "AddonsConfig") to include
893	// in API requests with the JSON null value. By default, fields with
894	// empty values are omitted from API requests. However, any field with
895	// an empty value appearing in NullFields will be sent to the server as
896	// null. It is an error if a field in this list has a non-empty value.
897	// This may be used to include null fields in Patch requests.
898	NullFields []string `json:"-"`
899}
900
901func (s *Cluster) MarshalJSON() ([]byte, error) {
902	type NoMethod Cluster
903	raw := NoMethod(*s)
904	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
905}
906
907// ClusterUpdate: ClusterUpdate describes an update to the cluster.
908// Exactly one update can
909// be applied to a cluster with each request, so at most one field can
910// be
911// provided.
912type ClusterUpdate struct {
913	// DesiredAddonsConfig: Configurations for the various addons available
914	// to run in the cluster.
915	DesiredAddonsConfig *AddonsConfig `json:"desiredAddonsConfig,omitempty"`
916
917	// DesiredImageType: The desired image type for the node pool.
918	// NOTE: Set the "desired_node_pool" field as well.
919	DesiredImageType string `json:"desiredImageType,omitempty"`
920
921	// DesiredLocations: The desired list of Google Compute
922	// Engine
923	// [zones](/compute/docs/zones#available) in which the cluster's
924	// nodes
925	// should be located. Changing the locations a cluster is in will
926	// result
927	// in nodes being either created or removed from the cluster, depending
928	// on
929	// whether locations are being added or removed.
930	//
931	// This list must always include the cluster's primary zone.
932	DesiredLocations []string `json:"desiredLocations,omitempty"`
933
934	// DesiredLoggingService: The logging service the cluster should use to
935	// write logs.
936	// Currently available options:
937	//
938	// * "logging.googleapis.com/kubernetes" - the Google Cloud
939	// Logging
940	// service with Kubernetes-native resource model in Stackdriver
941	// * "logging.googleapis.com" - the Google Cloud Logging service
942	// * "none" - no logs will be exported from the cluster
943	DesiredLoggingService string `json:"desiredLoggingService,omitempty"`
944
945	// DesiredMasterAuthorizedNetworksConfig: The desired configuration
946	// options for master authorized networks feature.
947	DesiredMasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `json:"desiredMasterAuthorizedNetworksConfig,omitempty"`
948
949	// DesiredMasterVersion: The Kubernetes version to change the master
950	// to.
951	//
952	// Users may specify either explicit versions offered by
953	// Kubernetes Engine or version aliases, which have the following
954	// behavior:
955	//
956	// - "latest": picks the highest valid Kubernetes version
957	// - "1.X": picks the highest valid patch+gke.N patch in the 1.X
958	// version
959	// - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
960	// - "1.X.Y-gke.N": picks an explicit Kubernetes version
961	// - "-": picks the default Kubernetes version
962	DesiredMasterVersion string `json:"desiredMasterVersion,omitempty"`
963
964	// DesiredMonitoringService: The monitoring service the cluster should
965	// use to write metrics.
966	// Currently available options:
967	//
968	// * "monitoring.googleapis.com/kubernetes" - the Google Cloud
969	// Monitoring
970	// service with Kubernetes-native resource model in Stackdriver
971	// * "monitoring.googleapis.com" - the Google Cloud Monitoring service
972	// * "none" - no metrics will be exported from the cluster
973	DesiredMonitoringService string `json:"desiredMonitoringService,omitempty"`
974
975	// DesiredNodePoolAutoscaling: Autoscaler configuration for the node
976	// pool specified in
977	// desired_node_pool_id. If there is only one pool in the
978	// cluster and desired_node_pool_id is not provided then
979	// the change applies to that single node pool.
980	DesiredNodePoolAutoscaling *NodePoolAutoscaling `json:"desiredNodePoolAutoscaling,omitempty"`
981
982	// DesiredNodePoolId: The node pool to be upgraded. This field is
983	// mandatory if
984	// "desired_node_version", "desired_image_family"
985	// or
986	// "desired_node_pool_autoscaling" is specified and there is more than
987	// one
988	// node pool on the cluster.
989	DesiredNodePoolId string `json:"desiredNodePoolId,omitempty"`
990
991	// DesiredNodeVersion: The Kubernetes version to change the nodes to
992	// (typically an
993	// upgrade).
994	//
995	// Users may specify either explicit versions offered by
996	// Kubernetes Engine or version aliases, which have the following
997	// behavior:
998	//
999	// - "latest": picks the highest valid Kubernetes version
1000	// - "1.X": picks the highest valid patch+gke.N patch in the 1.X
1001	// version
1002	// - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
1003	// - "1.X.Y-gke.N": picks an explicit Kubernetes version
1004	// - "-": picks the Kubernetes master version
1005	DesiredNodeVersion string `json:"desiredNodeVersion,omitempty"`
1006
1007	// DesiredResourceUsageExportConfig: The desired configuration for
1008	// exporting resource usage.
1009	DesiredResourceUsageExportConfig *ResourceUsageExportConfig `json:"desiredResourceUsageExportConfig,omitempty"`
1010
1011	// ForceSendFields is a list of field names (e.g. "DesiredAddonsConfig")
1012	// to unconditionally include in API requests. By default, fields with
1013	// empty values are omitted from API requests. However, any non-pointer,
1014	// non-interface field appearing in ForceSendFields will be sent to the
1015	// server regardless of whether the field is empty or not. This may be
1016	// used to include empty fields in Patch requests.
1017	ForceSendFields []string `json:"-"`
1018
1019	// NullFields is a list of field names (e.g. "DesiredAddonsConfig") to
1020	// include in API requests with the JSON null value. By default, fields
1021	// with empty values are omitted from API requests. However, any field
1022	// with an empty value appearing in NullFields will be sent to the
1023	// server as null. It is an error if a field in this list has a
1024	// non-empty value. This may be used to include null fields in Patch
1025	// requests.
1026	NullFields []string `json:"-"`
1027}
1028
1029func (s *ClusterUpdate) MarshalJSON() ([]byte, error) {
1030	type NoMethod ClusterUpdate
1031	raw := NoMethod(*s)
1032	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1033}
1034
1035// CompleteIPRotationRequest: CompleteIPRotationRequest moves the
1036// cluster master back into single-IP mode.
1037type CompleteIPRotationRequest struct {
1038	// ClusterId: Deprecated. The name of the cluster.
1039	// This field has been deprecated and replaced by the name field.
1040	ClusterId string `json:"clusterId,omitempty"`
1041
1042	// Name: The name (project, location, cluster id) of the cluster to
1043	// complete IP
1044	// rotation. Specified in the format
1045	// 'projects/*/locations/*/clusters/*'.
1046	Name string `json:"name,omitempty"`
1047
1048	// ProjectId: Deprecated. The Google Developers Console [project ID or
1049	// project
1050	// number](https://developers.google.com/console/help/new/#projec
1051	// tnumber).
1052	// This field has been deprecated and replaced by the name field.
1053	ProjectId string `json:"projectId,omitempty"`
1054
1055	// Zone: Deprecated. The name of the Google Compute
1056	// Engine
1057	// [zone](/compute/docs/zones#available) in which the
1058	// cluster
1059	// resides.
1060	// This field has been deprecated and replaced by the name field.
1061	Zone string `json:"zone,omitempty"`
1062
1063	// ForceSendFields is a list of field names (e.g. "ClusterId") to
1064	// unconditionally include in API requests. By default, fields with
1065	// empty values are omitted from API requests. However, any non-pointer,
1066	// non-interface field appearing in ForceSendFields will be sent to the
1067	// server regardless of whether the field is empty or not. This may be
1068	// used to include empty fields in Patch requests.
1069	ForceSendFields []string `json:"-"`
1070
1071	// NullFields is a list of field names (e.g. "ClusterId") to include in
1072	// API requests with the JSON null value. By default, fields with empty
1073	// values are omitted from API requests. However, any field with an
1074	// empty value appearing in NullFields will be sent to the server as
1075	// null. It is an error if a field in this list has a non-empty value.
1076	// This may be used to include null fields in Patch requests.
1077	NullFields []string `json:"-"`
1078}
1079
1080func (s *CompleteIPRotationRequest) MarshalJSON() ([]byte, error) {
1081	type NoMethod CompleteIPRotationRequest
1082	raw := NoMethod(*s)
1083	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1084}
1085
1086// ConsumptionMeteringConfig: Parameters for controlling consumption
1087// metering.
1088type ConsumptionMeteringConfig struct {
1089	// Enabled: Whether to enable consumption metering for this cluster. If
1090	// enabled, a
1091	// second BigQuery table will be created to hold resource
1092	// consumption
1093	// records.
1094	Enabled bool `json:"enabled,omitempty"`
1095
1096	// ForceSendFields is a list of field names (e.g. "Enabled") to
1097	// unconditionally include in API requests. By default, fields with
1098	// empty values are omitted from API requests. However, any non-pointer,
1099	// non-interface field appearing in ForceSendFields will be sent to the
1100	// server regardless of whether the field is empty or not. This may be
1101	// used to include empty fields in Patch requests.
1102	ForceSendFields []string `json:"-"`
1103
1104	// NullFields is a list of field names (e.g. "Enabled") to include in
1105	// API requests with the JSON null value. By default, fields with empty
1106	// values are omitted from API requests. However, any field with an
1107	// empty value appearing in NullFields will be sent to the server as
1108	// null. It is an error if a field in this list has a non-empty value.
1109	// This may be used to include null fields in Patch requests.
1110	NullFields []string `json:"-"`
1111}
1112
1113func (s *ConsumptionMeteringConfig) MarshalJSON() ([]byte, error) {
1114	type NoMethod ConsumptionMeteringConfig
1115	raw := NoMethod(*s)
1116	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1117}
1118
1119// CreateClusterRequest: CreateClusterRequest creates a cluster.
1120type CreateClusterRequest struct {
1121	// Cluster: A
1122	// [cluster
1123	// resource](/container-engine/reference/rest/v1/projects.zones.
1124	// clusters)
1125	Cluster *Cluster `json:"cluster,omitempty"`
1126
1127	// Parent: The parent (project and location) where the cluster will be
1128	// created.
1129	// Specified in the format 'projects/*/locations/*'.
1130	Parent string `json:"parent,omitempty"`
1131
1132	// ProjectId: Deprecated. The Google Developers Console [project ID or
1133	// project
1134	// number](https://support.google.com/cloud/answer/6158840).
1135	// This
1136	//  field has been deprecated and replaced by the parent field.
1137	ProjectId string `json:"projectId,omitempty"`
1138
1139	// Zone: Deprecated. The name of the Google Compute
1140	// Engine
1141	// [zone](/compute/docs/zones#available) in which the
1142	// cluster
1143	// resides.
1144	// This field has been deprecated and replaced by the parent field.
1145	Zone string `json:"zone,omitempty"`
1146
1147	// ForceSendFields is a list of field names (e.g. "Cluster") to
1148	// unconditionally include in API requests. By default, fields with
1149	// empty values are omitted from API requests. However, any non-pointer,
1150	// non-interface field appearing in ForceSendFields will be sent to the
1151	// server regardless of whether the field is empty or not. This may be
1152	// used to include empty fields in Patch requests.
1153	ForceSendFields []string `json:"-"`
1154
1155	// NullFields is a list of field names (e.g. "Cluster") to include in
1156	// API requests with the JSON null value. By default, fields with empty
1157	// values are omitted from API requests. However, any field with an
1158	// empty value appearing in NullFields will be sent to the server as
1159	// null. It is an error if a field in this list has a non-empty value.
1160	// This may be used to include null fields in Patch requests.
1161	NullFields []string `json:"-"`
1162}
1163
1164func (s *CreateClusterRequest) MarshalJSON() ([]byte, error) {
1165	type NoMethod CreateClusterRequest
1166	raw := NoMethod(*s)
1167	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1168}
1169
1170// CreateNodePoolRequest: CreateNodePoolRequest creates a node pool for
1171// a cluster.
1172type CreateNodePoolRequest struct {
1173	// ClusterId: Deprecated. The name of the cluster.
1174	// This field has been deprecated and replaced by the parent field.
1175	ClusterId string `json:"clusterId,omitempty"`
1176
1177	// NodePool: The node pool to create.
1178	NodePool *NodePool `json:"nodePool,omitempty"`
1179
1180	// Parent: The parent (project, location, cluster id) where the node
1181	// pool will be
1182	// created. Specified in the format
1183	// 'projects/*/locations/*/clusters/*'.
1184	Parent string `json:"parent,omitempty"`
1185
1186	// ProjectId: Deprecated. The Google Developers Console [project ID or
1187	// project
1188	// number](https://developers.google.com/console/help/new/#projec
1189	// tnumber).
1190	// This field has been deprecated and replaced by the parent field.
1191	ProjectId string `json:"projectId,omitempty"`
1192
1193	// Zone: Deprecated. The name of the Google Compute
1194	// Engine
1195	// [zone](/compute/docs/zones#available) in which the
1196	// cluster
1197	// resides.
1198	// This field has been deprecated and replaced by the parent field.
1199	Zone string `json:"zone,omitempty"`
1200
1201	// ForceSendFields is a list of field names (e.g. "ClusterId") to
1202	// unconditionally include in API requests. By default, fields with
1203	// empty values are omitted from API requests. However, any non-pointer,
1204	// non-interface field appearing in ForceSendFields will be sent to the
1205	// server regardless of whether the field is empty or not. This may be
1206	// used to include empty fields in Patch requests.
1207	ForceSendFields []string `json:"-"`
1208
1209	// NullFields is a list of field names (e.g. "ClusterId") to include in
1210	// API requests with the JSON null value. By default, fields with empty
1211	// values are omitted from API requests. However, any field with an
1212	// empty value appearing in NullFields will be sent to the server as
1213	// null. It is an error if a field in this list has a non-empty value.
1214	// This may be used to include null fields in Patch requests.
1215	NullFields []string `json:"-"`
1216}
1217
1218func (s *CreateNodePoolRequest) MarshalJSON() ([]byte, error) {
1219	type NoMethod CreateNodePoolRequest
1220	raw := NoMethod(*s)
1221	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1222}
1223
1224// DailyMaintenanceWindow: Time window specified for daily maintenance
1225// operations.
1226type DailyMaintenanceWindow struct {
1227	// Duration: [Output only] Duration of the time window, automatically
1228	// chosen to be
1229	// smallest possible in the given scenario.
1230	// Duration will be in
1231	// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)
1232	// format "PTnHnMnS".
1233	Duration string `json:"duration,omitempty"`
1234
1235	// StartTime: Time within the maintenance window to start the
1236	// maintenance operations.
1237	// Time format should be in
1238	// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)
1239	// format "HH:MM", where HH : [00-23] and MM : [00-59] GMT.
1240	StartTime string `json:"startTime,omitempty"`
1241
1242	// ForceSendFields is a list of field names (e.g. "Duration") to
1243	// unconditionally include in API requests. By default, fields with
1244	// empty values are omitted from API requests. However, any non-pointer,
1245	// non-interface field appearing in ForceSendFields will be sent to the
1246	// server regardless of whether the field is empty or not. This may be
1247	// used to include empty fields in Patch requests.
1248	ForceSendFields []string `json:"-"`
1249
1250	// NullFields is a list of field names (e.g. "Duration") to include in
1251	// API requests with the JSON null value. By default, fields with empty
1252	// values are omitted from API requests. However, any field with an
1253	// empty value appearing in NullFields will be sent to the server as
1254	// null. It is an error if a field in this list has a non-empty value.
1255	// This may be used to include null fields in Patch requests.
1256	NullFields []string `json:"-"`
1257}
1258
1259func (s *DailyMaintenanceWindow) MarshalJSON() ([]byte, error) {
1260	type NoMethod DailyMaintenanceWindow
1261	raw := NoMethod(*s)
1262	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1263}
1264
1265// Empty: A generic empty message that you can re-use to avoid defining
1266// duplicated
1267// empty messages in your APIs. A typical example is to use it as the
1268// request
1269// or the response type of an API method. For instance:
1270//
1271//     service Foo {
1272//       rpc Bar(google.protobuf.Empty) returns
1273// (google.protobuf.Empty);
1274//     }
1275//
1276// The JSON representation for `Empty` is empty JSON object `{}`.
1277type Empty struct {
1278	// ServerResponse contains the HTTP response code and headers from the
1279	// server.
1280	googleapi.ServerResponse `json:"-"`
1281}
1282
1283// GetJSONWebKeysResponse: GetJSONWebKeysResponse is a valid JSON Web
1284// Key Set as specififed in rfc 7517
1285type GetJSONWebKeysResponse struct {
1286	// Keys: The public component of the keys used by the cluster to sign
1287	// token
1288	// requests.
1289	Keys []*Jwk `json:"keys,omitempty"`
1290
1291	// ServerResponse contains the HTTP response code and headers from the
1292	// server.
1293	googleapi.ServerResponse `json:"-"`
1294
1295	// ForceSendFields is a list of field names (e.g. "Keys") to
1296	// unconditionally include in API requests. By default, fields with
1297	// empty values are omitted from API requests. However, any non-pointer,
1298	// non-interface field appearing in ForceSendFields will be sent to the
1299	// server regardless of whether the field is empty or not. This may be
1300	// used to include empty fields in Patch requests.
1301	ForceSendFields []string `json:"-"`
1302
1303	// NullFields is a list of field names (e.g. "Keys") to include in API
1304	// requests with the JSON null value. By default, fields with empty
1305	// values are omitted from API requests. However, any field with an
1306	// empty value appearing in NullFields will be sent to the server as
1307	// null. It is an error if a field in this list has a non-empty value.
1308	// This may be used to include null fields in Patch requests.
1309	NullFields []string `json:"-"`
1310}
1311
1312func (s *GetJSONWebKeysResponse) MarshalJSON() ([]byte, error) {
1313	type NoMethod GetJSONWebKeysResponse
1314	raw := NoMethod(*s)
1315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1316}
1317
1318// GetOpenIDConfigResponse: GetOpenIDConfigResponse is an OIDC discovery
1319// document for the cluster.
1320// See the OpenID Connect Discovery 1.0 specification for details.
1321type GetOpenIDConfigResponse struct {
1322	// ClaimsSupported: Supported claims.
1323	ClaimsSupported []string `json:"claims_supported,omitempty"`
1324
1325	// GrantTypes: Supported grant types.
1326	GrantTypes []string `json:"grant_types,omitempty"`
1327
1328	// IdTokenSigningAlgValuesSupported: supported ID Token signing
1329	// Algorithms.
1330	IdTokenSigningAlgValuesSupported []string `json:"id_token_signing_alg_values_supported,omitempty"`
1331
1332	// Issuer: OIDC Issuer.
1333	Issuer string `json:"issuer,omitempty"`
1334
1335	// JwksUri: JSON Web Key uri.
1336	JwksUri string `json:"jwks_uri,omitempty"`
1337
1338	// ResponseTypesSupported: Supported response types.
1339	ResponseTypesSupported []string `json:"response_types_supported,omitempty"`
1340
1341	// SubjectTypesSupported: Supported subject types.
1342	SubjectTypesSupported []string `json:"subject_types_supported,omitempty"`
1343
1344	// ServerResponse contains the HTTP response code and headers from the
1345	// server.
1346	googleapi.ServerResponse `json:"-"`
1347
1348	// ForceSendFields is a list of field names (e.g. "ClaimsSupported") to
1349	// unconditionally include in API requests. By default, fields with
1350	// empty values are omitted from API requests. However, any non-pointer,
1351	// non-interface field appearing in ForceSendFields will be sent to the
1352	// server regardless of whether the field is empty or not. This may be
1353	// used to include empty fields in Patch requests.
1354	ForceSendFields []string `json:"-"`
1355
1356	// NullFields is a list of field names (e.g. "ClaimsSupported") to
1357	// include in API requests with the JSON null value. By default, fields
1358	// with empty values are omitted from API requests. However, any field
1359	// with an empty value appearing in NullFields will be sent to the
1360	// server as null. It is an error if a field in this list has a
1361	// non-empty value. This may be used to include null fields in Patch
1362	// requests.
1363	NullFields []string `json:"-"`
1364}
1365
1366func (s *GetOpenIDConfigResponse) MarshalJSON() ([]byte, error) {
1367	type NoMethod GetOpenIDConfigResponse
1368	raw := NoMethod(*s)
1369	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1370}
1371
1372// HorizontalPodAutoscaling: Configuration options for the horizontal
1373// pod autoscaling feature, which
1374// increases or decreases the number of replica pods a replication
1375// controller
1376// has based on the resource usage of the existing pods.
1377type HorizontalPodAutoscaling struct {
1378	// Disabled: Whether the Horizontal Pod Autoscaling feature is enabled
1379	// in the cluster.
1380	// When enabled, it ensures that a Heapster pod is running in the
1381	// cluster,
1382	// which is also used by the Cloud Monitoring service.
1383	Disabled bool `json:"disabled,omitempty"`
1384
1385	// ForceSendFields is a list of field names (e.g. "Disabled") to
1386	// unconditionally include in API requests. By default, fields with
1387	// empty values are omitted from API requests. However, any non-pointer,
1388	// non-interface field appearing in ForceSendFields will be sent to the
1389	// server regardless of whether the field is empty or not. This may be
1390	// used to include empty fields in Patch requests.
1391	ForceSendFields []string `json:"-"`
1392
1393	// NullFields is a list of field names (e.g. "Disabled") to include in
1394	// API requests with the JSON null value. By default, fields with empty
1395	// values are omitted from API requests. However, any field with an
1396	// empty value appearing in NullFields will be sent to the server as
1397	// null. It is an error if a field in this list has a non-empty value.
1398	// This may be used to include null fields in Patch requests.
1399	NullFields []string `json:"-"`
1400}
1401
1402func (s *HorizontalPodAutoscaling) MarshalJSON() ([]byte, error) {
1403	type NoMethod HorizontalPodAutoscaling
1404	raw := NoMethod(*s)
1405	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1406}
1407
1408// HttpLoadBalancing: Configuration options for the HTTP (L7) load
1409// balancing controller addon,
1410// which makes it easy to set up HTTP load balancers for services in a
1411// cluster.
1412type HttpLoadBalancing struct {
1413	// Disabled: Whether the HTTP Load Balancing controller is enabled in
1414	// the cluster.
1415	// When enabled, it runs a small pod in the cluster that manages the
1416	// load
1417	// balancers.
1418	Disabled bool `json:"disabled,omitempty"`
1419
1420	// ForceSendFields is a list of field names (e.g. "Disabled") to
1421	// unconditionally include in API requests. By default, fields with
1422	// empty values are omitted from API requests. However, any non-pointer,
1423	// non-interface field appearing in ForceSendFields will be sent to the
1424	// server regardless of whether the field is empty or not. This may be
1425	// used to include empty fields in Patch requests.
1426	ForceSendFields []string `json:"-"`
1427
1428	// NullFields is a list of field names (e.g. "Disabled") to include in
1429	// API requests with the JSON null value. By default, fields with empty
1430	// values are omitted from API requests. However, any field with an
1431	// empty value appearing in NullFields will be sent to the server as
1432	// null. It is an error if a field in this list has a non-empty value.
1433	// This may be used to include null fields in Patch requests.
1434	NullFields []string `json:"-"`
1435}
1436
1437func (s *HttpLoadBalancing) MarshalJSON() ([]byte, error) {
1438	type NoMethod HttpLoadBalancing
1439	raw := NoMethod(*s)
1440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1441}
1442
1443// IPAllocationPolicy: Configuration for controlling how IPs are
1444// allocated in the cluster.
1445type IPAllocationPolicy struct {
1446	// ClusterIpv4Cidr: This field is deprecated, use
1447	// cluster_ipv4_cidr_block.
1448	ClusterIpv4Cidr string `json:"clusterIpv4Cidr,omitempty"`
1449
1450	// ClusterIpv4CidrBlock: The IP address range for the cluster pod IPs.
1451	// If this field is set, then
1452	// `cluster.cluster_ipv4_cidr` must be left blank.
1453	//
1454	// This field is only applicable when `use_ip_aliases` is true.
1455	//
1456	// Set to blank to have a range chosen with the default size.
1457	//
1458	// Set to /netmask (e.g. `/14`) to have a range chosen with a
1459	// specific
1460	// netmask.
1461	//
1462	// Set to
1463	// a
1464	// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
1465	//
1466	// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks
1467	// (e.g.
1468	// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific
1469	// range
1470	// to use.
1471	ClusterIpv4CidrBlock string `json:"clusterIpv4CidrBlock,omitempty"`
1472
1473	// ClusterSecondaryRangeName: The name of the secondary range to be used
1474	// for the cluster CIDR
1475	// block.  The secondary range will be used for pod IP
1476	// addresses. This must be an existing secondary range associated
1477	// with the cluster subnetwork.
1478	//
1479	// This field is only applicable with use_ip_aliases is true
1480	// and
1481	// create_subnetwork is false.
1482	ClusterSecondaryRangeName string `json:"clusterSecondaryRangeName,omitempty"`
1483
1484	// CreateSubnetwork: Whether a new subnetwork will be created
1485	// automatically for the cluster.
1486	//
1487	// This field is only applicable when `use_ip_aliases` is true.
1488	CreateSubnetwork bool `json:"createSubnetwork,omitempty"`
1489
1490	// NodeIpv4Cidr: This field is deprecated, use node_ipv4_cidr_block.
1491	NodeIpv4Cidr string `json:"nodeIpv4Cidr,omitempty"`
1492
1493	// NodeIpv4CidrBlock: The IP address range of the instance IPs in this
1494	// cluster.
1495	//
1496	// This is applicable only if `create_subnetwork` is true.
1497	//
1498	// Set to blank to have a range chosen with the default size.
1499	//
1500	// Set to /netmask (e.g. `/14`) to have a range chosen with a
1501	// specific
1502	// netmask.
1503	//
1504	// Set to
1505	// a
1506	// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
1507	//
1508	// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks
1509	// (e.g.
1510	// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific
1511	// range
1512	// to use.
1513	NodeIpv4CidrBlock string `json:"nodeIpv4CidrBlock,omitempty"`
1514
1515	// ServicesIpv4Cidr: This field is deprecated, use
1516	// services_ipv4_cidr_block.
1517	ServicesIpv4Cidr string `json:"servicesIpv4Cidr,omitempty"`
1518
1519	// ServicesIpv4CidrBlock: The IP address range of the services IPs in
1520	// this cluster. If blank, a range
1521	// will be automatically chosen with the default size.
1522	//
1523	// This field is only applicable when `use_ip_aliases` is true.
1524	//
1525	// Set to blank to have a range chosen with the default size.
1526	//
1527	// Set to /netmask (e.g. `/14`) to have a range chosen with a
1528	// specific
1529	// netmask.
1530	//
1531	// Set to
1532	// a
1533	// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
1534	//
1535	// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks
1536	// (e.g.
1537	// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific
1538	// range
1539	// to use.
1540	ServicesIpv4CidrBlock string `json:"servicesIpv4CidrBlock,omitempty"`
1541
1542	// ServicesSecondaryRangeName: The name of the secondary range to be
1543	// used as for the services
1544	// CIDR block.  The secondary range will be used for service
1545	// ClusterIPs. This must be an existing secondary range associated
1546	// with the cluster subnetwork.
1547	//
1548	// This field is only applicable with use_ip_aliases is true
1549	// and
1550	// create_subnetwork is false.
1551	ServicesSecondaryRangeName string `json:"servicesSecondaryRangeName,omitempty"`
1552
1553	// SubnetworkName: A custom subnetwork name to be used if
1554	// `create_subnetwork` is true.  If
1555	// this field is empty, then an automatic name will be chosen for the
1556	// new
1557	// subnetwork.
1558	SubnetworkName string `json:"subnetworkName,omitempty"`
1559
1560	// TpuIpv4CidrBlock: The IP address range of the Cloud TPUs in this
1561	// cluster. If unspecified, a
1562	// range will be automatically chosen with the default size.
1563	//
1564	// This field is only applicable when `use_ip_aliases` is true.
1565	//
1566	// If unspecified, the range will use the default size.
1567	//
1568	// Set to /netmask (e.g. `/14`) to have a range chosen with a
1569	// specific
1570	// netmask.
1571	//
1572	// Set to
1573	// a
1574	// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
1575	//
1576	// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks
1577	// (e.g.
1578	// `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific
1579	// range
1580	// to use.
1581	TpuIpv4CidrBlock string `json:"tpuIpv4CidrBlock,omitempty"`
1582
1583	// UseIpAliases: Whether alias IPs will be used for pod IPs in the
1584	// cluster.
1585	UseIpAliases bool `json:"useIpAliases,omitempty"`
1586
1587	// ForceSendFields is a list of field names (e.g. "ClusterIpv4Cidr") to
1588	// unconditionally include in API requests. By default, fields with
1589	// empty values are omitted from API requests. However, any non-pointer,
1590	// non-interface field appearing in ForceSendFields will be sent to the
1591	// server regardless of whether the field is empty or not. This may be
1592	// used to include empty fields in Patch requests.
1593	ForceSendFields []string `json:"-"`
1594
1595	// NullFields is a list of field names (e.g. "ClusterIpv4Cidr") to
1596	// include in API requests with the JSON null value. By default, fields
1597	// with empty values are omitted from API requests. However, any field
1598	// with an empty value appearing in NullFields will be sent to the
1599	// server as null. It is an error if a field in this list has a
1600	// non-empty value. This may be used to include null fields in Patch
1601	// requests.
1602	NullFields []string `json:"-"`
1603}
1604
1605func (s *IPAllocationPolicy) MarshalJSON() ([]byte, error) {
1606	type NoMethod IPAllocationPolicy
1607	raw := NoMethod(*s)
1608	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1609}
1610
1611// Jwk: Jwk is a JSON Web Key as specified in RFC 7517
1612type Jwk struct {
1613	// Alg: Algorithm.
1614	Alg string `json:"alg,omitempty"`
1615
1616	// Crv: Used for ECDSA keys.
1617	Crv string `json:"crv,omitempty"`
1618
1619	// E: Used for RSA keys.
1620	E string `json:"e,omitempty"`
1621
1622	// Kid: Key ID.
1623	Kid string `json:"kid,omitempty"`
1624
1625	// Kty: Key Type.
1626	Kty string `json:"kty,omitempty"`
1627
1628	// N: Used for RSA keys.
1629	N string `json:"n,omitempty"`
1630
1631	// Use: Permitted uses for the public keys.
1632	Use string `json:"use,omitempty"`
1633
1634	// X: Used for ECDSA keys.
1635	X string `json:"x,omitempty"`
1636
1637	// Y: Used for ECDSA keys.
1638	Y string `json:"y,omitempty"`
1639
1640	// ForceSendFields is a list of field names (e.g. "Alg") to
1641	// unconditionally include in API requests. By default, fields with
1642	// empty values are omitted from API requests. However, any non-pointer,
1643	// non-interface field appearing in ForceSendFields will be sent to the
1644	// server regardless of whether the field is empty or not. This may be
1645	// used to include empty fields in Patch requests.
1646	ForceSendFields []string `json:"-"`
1647
1648	// NullFields is a list of field names (e.g. "Alg") to include in API
1649	// requests with the JSON null value. By default, fields with empty
1650	// values are omitted from API requests. However, any field with an
1651	// empty value appearing in NullFields will be sent to the server as
1652	// null. It is an error if a field in this list has a non-empty value.
1653	// This may be used to include null fields in Patch requests.
1654	NullFields []string `json:"-"`
1655}
1656
1657func (s *Jwk) MarshalJSON() ([]byte, error) {
1658	type NoMethod Jwk
1659	raw := NoMethod(*s)
1660	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1661}
1662
1663// KubernetesDashboard: Configuration for the Kubernetes Dashboard.
1664type KubernetesDashboard struct {
1665	// Disabled: Whether the Kubernetes Dashboard is enabled for this
1666	// cluster.
1667	Disabled bool `json:"disabled,omitempty"`
1668
1669	// ForceSendFields is a list of field names (e.g. "Disabled") to
1670	// unconditionally include in API requests. By default, fields with
1671	// empty values are omitted from API requests. However, any non-pointer,
1672	// non-interface field appearing in ForceSendFields will be sent to the
1673	// server regardless of whether the field is empty or not. This may be
1674	// used to include empty fields in Patch requests.
1675	ForceSendFields []string `json:"-"`
1676
1677	// NullFields is a list of field names (e.g. "Disabled") to include in
1678	// API requests with the JSON null value. By default, fields with empty
1679	// values are omitted from API requests. However, any field with an
1680	// empty value appearing in NullFields will be sent to the server as
1681	// null. It is an error if a field in this list has a non-empty value.
1682	// This may be used to include null fields in Patch requests.
1683	NullFields []string `json:"-"`
1684}
1685
1686func (s *KubernetesDashboard) MarshalJSON() ([]byte, error) {
1687	type NoMethod KubernetesDashboard
1688	raw := NoMethod(*s)
1689	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1690}
1691
1692// LegacyAbac: Configuration for the legacy Attribute Based Access
1693// Control authorization
1694// mode.
1695type LegacyAbac struct {
1696	// Enabled: Whether the ABAC authorizer is enabled for this cluster.
1697	// When enabled,
1698	// identities in the system, including service accounts, nodes,
1699	// and
1700	// controllers, will have statically granted permissions beyond
1701	// those
1702	// provided by the RBAC configuration or IAM.
1703	Enabled bool `json:"enabled,omitempty"`
1704
1705	// ForceSendFields is a list of field names (e.g. "Enabled") to
1706	// unconditionally include in API requests. By default, fields with
1707	// empty values are omitted from API requests. However, any non-pointer,
1708	// non-interface field appearing in ForceSendFields will be sent to the
1709	// server regardless of whether the field is empty or not. This may be
1710	// used to include empty fields in Patch requests.
1711	ForceSendFields []string `json:"-"`
1712
1713	// NullFields is a list of field names (e.g. "Enabled") to include in
1714	// API requests with the JSON null value. By default, fields with empty
1715	// values are omitted from API requests. However, any field with an
1716	// empty value appearing in NullFields will be sent to the server as
1717	// null. It is an error if a field in this list has a non-empty value.
1718	// This may be used to include null fields in Patch requests.
1719	NullFields []string `json:"-"`
1720}
1721
1722func (s *LegacyAbac) MarshalJSON() ([]byte, error) {
1723	type NoMethod LegacyAbac
1724	raw := NoMethod(*s)
1725	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1726}
1727
1728// ListClustersResponse: ListClustersResponse is the result of
1729// ListClustersRequest.
1730type ListClustersResponse struct {
1731	// Clusters: A list of clusters in the project in the specified zone,
1732	// or
1733	// across all ones.
1734	Clusters []*Cluster `json:"clusters,omitempty"`
1735
1736	// MissingZones: If any zones are listed here, the list of clusters
1737	// returned
1738	// may be missing those zones.
1739	MissingZones []string `json:"missingZones,omitempty"`
1740
1741	// ServerResponse contains the HTTP response code and headers from the
1742	// server.
1743	googleapi.ServerResponse `json:"-"`
1744
1745	// ForceSendFields is a list of field names (e.g. "Clusters") to
1746	// unconditionally include in API requests. By default, fields with
1747	// empty values are omitted from API requests. However, any non-pointer,
1748	// non-interface field appearing in ForceSendFields will be sent to the
1749	// server regardless of whether the field is empty or not. This may be
1750	// used to include empty fields in Patch requests.
1751	ForceSendFields []string `json:"-"`
1752
1753	// NullFields is a list of field names (e.g. "Clusters") to include in
1754	// API requests with the JSON null value. By default, fields with empty
1755	// values are omitted from API requests. However, any field with an
1756	// empty value appearing in NullFields will be sent to the server as
1757	// null. It is an error if a field in this list has a non-empty value.
1758	// This may be used to include null fields in Patch requests.
1759	NullFields []string `json:"-"`
1760}
1761
1762func (s *ListClustersResponse) MarshalJSON() ([]byte, error) {
1763	type NoMethod ListClustersResponse
1764	raw := NoMethod(*s)
1765	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1766}
1767
1768// ListNodePoolsResponse: ListNodePoolsResponse is the result of
1769// ListNodePoolsRequest.
1770type ListNodePoolsResponse struct {
1771	// NodePools: A list of node pools for a cluster.
1772	NodePools []*NodePool `json:"nodePools,omitempty"`
1773
1774	// ServerResponse contains the HTTP response code and headers from the
1775	// server.
1776	googleapi.ServerResponse `json:"-"`
1777
1778	// ForceSendFields is a list of field names (e.g. "NodePools") to
1779	// unconditionally include in API requests. By default, fields with
1780	// empty values are omitted from API requests. However, any non-pointer,
1781	// non-interface field appearing in ForceSendFields will be sent to the
1782	// server regardless of whether the field is empty or not. This may be
1783	// used to include empty fields in Patch requests.
1784	ForceSendFields []string `json:"-"`
1785
1786	// NullFields is a list of field names (e.g. "NodePools") to include in
1787	// API requests with the JSON null value. By default, fields with empty
1788	// values are omitted from API requests. However, any field with an
1789	// empty value appearing in NullFields will be sent to the server as
1790	// null. It is an error if a field in this list has a non-empty value.
1791	// This may be used to include null fields in Patch requests.
1792	NullFields []string `json:"-"`
1793}
1794
1795func (s *ListNodePoolsResponse) MarshalJSON() ([]byte, error) {
1796	type NoMethod ListNodePoolsResponse
1797	raw := NoMethod(*s)
1798	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1799}
1800
1801// ListOperationsResponse: ListOperationsResponse is the result of
1802// ListOperationsRequest.
1803type ListOperationsResponse struct {
1804	// MissingZones: If any zones are listed here, the list of operations
1805	// returned
1806	// may be missing the operations from those zones.
1807	MissingZones []string `json:"missingZones,omitempty"`
1808
1809	// Operations: A list of operations in the project in the specified
1810	// zone.
1811	Operations []*Operation `json:"operations,omitempty"`
1812
1813	// ServerResponse contains the HTTP response code and headers from the
1814	// server.
1815	googleapi.ServerResponse `json:"-"`
1816
1817	// ForceSendFields is a list of field names (e.g. "MissingZones") to
1818	// unconditionally include in API requests. By default, fields with
1819	// empty values are omitted from API requests. However, any non-pointer,
1820	// non-interface field appearing in ForceSendFields will be sent to the
1821	// server regardless of whether the field is empty or not. This may be
1822	// used to include empty fields in Patch requests.
1823	ForceSendFields []string `json:"-"`
1824
1825	// NullFields is a list of field names (e.g. "MissingZones") to include
1826	// in API requests with the JSON null value. By default, fields with
1827	// empty values are omitted from API requests. However, any field with
1828	// an empty value appearing in NullFields will be sent to the server as
1829	// null. It is an error if a field in this list has a non-empty value.
1830	// This may be used to include null fields in Patch requests.
1831	NullFields []string `json:"-"`
1832}
1833
1834func (s *ListOperationsResponse) MarshalJSON() ([]byte, error) {
1835	type NoMethod ListOperationsResponse
1836	raw := NoMethod(*s)
1837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1838}
1839
1840// ListUsableSubnetworksResponse: ListUsableSubnetworksResponse is the
1841// response of
1842// ListUsableSubnetworksRequest.
1843type ListUsableSubnetworksResponse struct {
1844	// NextPageToken: This token allows you to get the next page of results
1845	// for list requests.
1846	// If the number of results is larger than `page_size`, use
1847	// the
1848	// `next_page_token` as a value for the query parameter `page_token` in
1849	// the
1850	// next request. The value will become empty when there are no more
1851	// pages.
1852	NextPageToken string `json:"nextPageToken,omitempty"`
1853
1854	// Subnetworks: A list of usable subnetworks in the specified network
1855	// project.
1856	Subnetworks []*UsableSubnetwork `json:"subnetworks,omitempty"`
1857
1858	// ServerResponse contains the HTTP response code and headers from the
1859	// server.
1860	googleapi.ServerResponse `json:"-"`
1861
1862	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
1863	// unconditionally include in API requests. By default, fields with
1864	// empty values are omitted from API requests. However, any non-pointer,
1865	// non-interface field appearing in ForceSendFields will be sent to the
1866	// server regardless of whether the field is empty or not. This may be
1867	// used to include empty fields in Patch requests.
1868	ForceSendFields []string `json:"-"`
1869
1870	// NullFields is a list of field names (e.g. "NextPageToken") to include
1871	// in API requests with the JSON null value. By default, fields with
1872	// empty values are omitted from API requests. However, any field with
1873	// an empty value appearing in NullFields will be sent to the server as
1874	// null. It is an error if a field in this list has a non-empty value.
1875	// This may be used to include null fields in Patch requests.
1876	NullFields []string `json:"-"`
1877}
1878
1879func (s *ListUsableSubnetworksResponse) MarshalJSON() ([]byte, error) {
1880	type NoMethod ListUsableSubnetworksResponse
1881	raw := NoMethod(*s)
1882	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1883}
1884
1885// MaintenancePolicy: MaintenancePolicy defines the maintenance policy
1886// to be used for the cluster.
1887type MaintenancePolicy struct {
1888	// Window: Specifies the maintenance window in which maintenance may be
1889	// performed.
1890	Window *MaintenanceWindow `json:"window,omitempty"`
1891
1892	// ForceSendFields is a list of field names (e.g. "Window") to
1893	// unconditionally include in API requests. By default, fields with
1894	// empty values are omitted from API requests. However, any non-pointer,
1895	// non-interface field appearing in ForceSendFields will be sent to the
1896	// server regardless of whether the field is empty or not. This may be
1897	// used to include empty fields in Patch requests.
1898	ForceSendFields []string `json:"-"`
1899
1900	// NullFields is a list of field names (e.g. "Window") to include in API
1901	// requests with the JSON null value. By default, fields with empty
1902	// values are omitted from API requests. However, any field with an
1903	// empty value appearing in NullFields will be sent to the server as
1904	// null. It is an error if a field in this list has a non-empty value.
1905	// This may be used to include null fields in Patch requests.
1906	NullFields []string `json:"-"`
1907}
1908
1909func (s *MaintenancePolicy) MarshalJSON() ([]byte, error) {
1910	type NoMethod MaintenancePolicy
1911	raw := NoMethod(*s)
1912	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1913}
1914
1915// MaintenanceWindow: MaintenanceWindow defines the maintenance window
1916// to be used for the cluster.
1917type MaintenanceWindow struct {
1918	// DailyMaintenanceWindow: DailyMaintenanceWindow specifies a daily
1919	// maintenance operation window.
1920	DailyMaintenanceWindow *DailyMaintenanceWindow `json:"dailyMaintenanceWindow,omitempty"`
1921
1922	// ForceSendFields is a list of field names (e.g.
1923	// "DailyMaintenanceWindow") to unconditionally include in API requests.
1924	// By default, fields with empty values are omitted from API requests.
1925	// However, any non-pointer, non-interface field appearing in
1926	// ForceSendFields will be sent to the server regardless of whether the
1927	// field is empty or not. This may be used to include empty fields in
1928	// Patch requests.
1929	ForceSendFields []string `json:"-"`
1930
1931	// NullFields is a list of field names (e.g. "DailyMaintenanceWindow")
1932	// to include in API requests with the JSON null value. By default,
1933	// fields with empty values are omitted from API requests. However, any
1934	// field with an empty value appearing in NullFields will be sent to the
1935	// server as null. It is an error if a field in this list has a
1936	// non-empty value. This may be used to include null fields in Patch
1937	// requests.
1938	NullFields []string `json:"-"`
1939}
1940
1941func (s *MaintenanceWindow) MarshalJSON() ([]byte, error) {
1942	type NoMethod MaintenanceWindow
1943	raw := NoMethod(*s)
1944	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1945}
1946
1947// MasterAuth: The authentication information for accessing the master
1948// endpoint.
1949// Authentication can be done using HTTP basic auth or using
1950// client
1951// certificates.
1952type MasterAuth struct {
1953	// ClientCertificate: [Output only] Base64-encoded public certificate
1954	// used by clients to
1955	// authenticate to the cluster endpoint.
1956	ClientCertificate string `json:"clientCertificate,omitempty"`
1957
1958	// ClientCertificateConfig: Configuration for client certificate
1959	// authentication on the cluster. For
1960	// clusters before v1.12, if no configuration is specified, a
1961	// client
1962	// certificate is issued.
1963	ClientCertificateConfig *ClientCertificateConfig `json:"clientCertificateConfig,omitempty"`
1964
1965	// ClientKey: [Output only] Base64-encoded private key used by clients
1966	// to authenticate
1967	// to the cluster endpoint.
1968	ClientKey string `json:"clientKey,omitempty"`
1969
1970	// ClusterCaCertificate: [Output only] Base64-encoded public certificate
1971	// that is the root of
1972	// trust for the cluster.
1973	ClusterCaCertificate string `json:"clusterCaCertificate,omitempty"`
1974
1975	// Password: The password to use for HTTP basic authentication to the
1976	// master endpoint.
1977	// Because the master endpoint is open to the Internet, you should
1978	// create a
1979	// strong password.  If a password is provided for cluster creation,
1980	// username
1981	// must be non-empty.
1982	Password string `json:"password,omitempty"`
1983
1984	// Username: The username to use for HTTP basic authentication to the
1985	// master endpoint.
1986	// For clusters v1.6.0 and later, basic authentication can be disabled
1987	// by
1988	// leaving username unspecified (or setting it to the empty string).
1989	Username string `json:"username,omitempty"`
1990
1991	// ForceSendFields is a list of field names (e.g. "ClientCertificate")
1992	// to unconditionally include in API requests. By default, fields with
1993	// empty values are omitted from API requests. However, any non-pointer,
1994	// non-interface field appearing in ForceSendFields will be sent to the
1995	// server regardless of whether the field is empty or not. This may be
1996	// used to include empty fields in Patch requests.
1997	ForceSendFields []string `json:"-"`
1998
1999	// NullFields is a list of field names (e.g. "ClientCertificate") to
2000	// include in API requests with the JSON null value. By default, fields
2001	// with empty values are omitted from API requests. However, any field
2002	// with an empty value appearing in NullFields will be sent to the
2003	// server as null. It is an error if a field in this list has a
2004	// non-empty value. This may be used to include null fields in Patch
2005	// requests.
2006	NullFields []string `json:"-"`
2007}
2008
2009func (s *MasterAuth) MarshalJSON() ([]byte, error) {
2010	type NoMethod MasterAuth
2011	raw := NoMethod(*s)
2012	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2013}
2014
2015// MasterAuthorizedNetworksConfig: Configuration options for the master
2016// authorized networks feature. Enabled
2017// master authorized networks will disallow all external traffic to
2018// access
2019// Kubernetes master through HTTPS except traffic from the given CIDR
2020// blocks,
2021// Google Compute Engine Public IPs and Google Prod IPs.
2022type MasterAuthorizedNetworksConfig struct {
2023	// CidrBlocks: cidr_blocks define up to 50 external networks that could
2024	// access
2025	// Kubernetes master through HTTPS.
2026	CidrBlocks []*CidrBlock `json:"cidrBlocks,omitempty"`
2027
2028	// Enabled: Whether or not master authorized networks is enabled.
2029	Enabled bool `json:"enabled,omitempty"`
2030
2031	// ForceSendFields is a list of field names (e.g. "CidrBlocks") to
2032	// unconditionally include in API requests. By default, fields with
2033	// empty values are omitted from API requests. However, any non-pointer,
2034	// non-interface field appearing in ForceSendFields will be sent to the
2035	// server regardless of whether the field is empty or not. This may be
2036	// used to include empty fields in Patch requests.
2037	ForceSendFields []string `json:"-"`
2038
2039	// NullFields is a list of field names (e.g. "CidrBlocks") to include in
2040	// API requests with the JSON null value. By default, fields with empty
2041	// values are omitted from API requests. However, any field with an
2042	// empty value appearing in NullFields will be sent to the server as
2043	// null. It is an error if a field in this list has a non-empty value.
2044	// This may be used to include null fields in Patch requests.
2045	NullFields []string `json:"-"`
2046}
2047
2048func (s *MasterAuthorizedNetworksConfig) MarshalJSON() ([]byte, error) {
2049	type NoMethod MasterAuthorizedNetworksConfig
2050	raw := NoMethod(*s)
2051	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2052}
2053
2054// MaxPodsConstraint: Constraints applied to pods.
2055type MaxPodsConstraint struct {
2056	// MaxPodsPerNode: Constraint enforced on the max num of pods per node.
2057	MaxPodsPerNode int64 `json:"maxPodsPerNode,omitempty,string"`
2058
2059	// ForceSendFields is a list of field names (e.g. "MaxPodsPerNode") to
2060	// unconditionally include in API requests. By default, fields with
2061	// empty values are omitted from API requests. However, any non-pointer,
2062	// non-interface field appearing in ForceSendFields will be sent to the
2063	// server regardless of whether the field is empty or not. This may be
2064	// used to include empty fields in Patch requests.
2065	ForceSendFields []string `json:"-"`
2066
2067	// NullFields is a list of field names (e.g. "MaxPodsPerNode") to
2068	// include in API requests with the JSON null value. By default, fields
2069	// with empty values are omitted from API requests. However, any field
2070	// with an empty value appearing in NullFields will be sent to the
2071	// server as null. It is an error if a field in this list has a
2072	// non-empty value. This may be used to include null fields in Patch
2073	// requests.
2074	NullFields []string `json:"-"`
2075}
2076
2077func (s *MaxPodsConstraint) MarshalJSON() ([]byte, error) {
2078	type NoMethod MaxPodsConstraint
2079	raw := NoMethod(*s)
2080	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2081}
2082
2083// NetworkConfig: NetworkConfig reports the relative names of network &
2084// subnetwork.
2085type NetworkConfig struct {
2086	// Network: Output only. The relative name of the Google Compute
2087	// Engine
2088	// network(/compute/docs/networks-and-firewalls#networks) to which
2089	// the cluster is connected.
2090	// Example: projects/my-project/global/networks/my-network
2091	Network string `json:"network,omitempty"`
2092
2093	// Subnetwork: Output only. The relative name of the Google Compute
2094	// Engine
2095	// [subnetwork](/compute/docs/vpc) to which the cluster is
2096	// connected.
2097	// Example:
2098	// projects/my-project/regions/us-central1/subnetworks/my-subnet
2099	Subnetwork string `json:"subnetwork,omitempty"`
2100
2101	// ForceSendFields is a list of field names (e.g. "Network") to
2102	// unconditionally include in API requests. By default, fields with
2103	// empty values are omitted from API requests. However, any non-pointer,
2104	// non-interface field appearing in ForceSendFields will be sent to the
2105	// server regardless of whether the field is empty or not. This may be
2106	// used to include empty fields in Patch requests.
2107	ForceSendFields []string `json:"-"`
2108
2109	// NullFields is a list of field names (e.g. "Network") to include in
2110	// API requests with the JSON null value. By default, fields with empty
2111	// values are omitted from API requests. However, any field with an
2112	// empty value appearing in NullFields will be sent to the server as
2113	// null. It is an error if a field in this list has a non-empty value.
2114	// This may be used to include null fields in Patch requests.
2115	NullFields []string `json:"-"`
2116}
2117
2118func (s *NetworkConfig) MarshalJSON() ([]byte, error) {
2119	type NoMethod NetworkConfig
2120	raw := NoMethod(*s)
2121	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2122}
2123
2124// NetworkPolicy: Configuration options for the NetworkPolicy
2125// feature.
2126// https://kubernetes.io/docs/concepts/services-networking/netwo
2127// rkpolicies/
2128type NetworkPolicy struct {
2129	// Enabled: Whether network policy is enabled on the cluster.
2130	Enabled bool `json:"enabled,omitempty"`
2131
2132	// Provider: The selected network policy provider.
2133	//
2134	// Possible values:
2135	//   "PROVIDER_UNSPECIFIED" - Not set
2136	//   "CALICO" - Tigera (Calico Felix).
2137	Provider string `json:"provider,omitempty"`
2138
2139	// ForceSendFields is a list of field names (e.g. "Enabled") to
2140	// unconditionally include in API requests. By default, fields with
2141	// empty values are omitted from API requests. However, any non-pointer,
2142	// non-interface field appearing in ForceSendFields will be sent to the
2143	// server regardless of whether the field is empty or not. This may be
2144	// used to include empty fields in Patch requests.
2145	ForceSendFields []string `json:"-"`
2146
2147	// NullFields is a list of field names (e.g. "Enabled") to include in
2148	// API requests with the JSON null value. By default, fields with empty
2149	// values are omitted from API requests. However, any field with an
2150	// empty value appearing in NullFields will be sent to the server as
2151	// null. It is an error if a field in this list has a non-empty value.
2152	// This may be used to include null fields in Patch requests.
2153	NullFields []string `json:"-"`
2154}
2155
2156func (s *NetworkPolicy) MarshalJSON() ([]byte, error) {
2157	type NoMethod NetworkPolicy
2158	raw := NoMethod(*s)
2159	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2160}
2161
2162// NetworkPolicyConfig: Configuration for NetworkPolicy. This only
2163// tracks whether the addon
2164// is enabled or not on the Master, it does not track whether network
2165// policy
2166// is enabled for the nodes.
2167type NetworkPolicyConfig struct {
2168	// Disabled: Whether NetworkPolicy is enabled for this cluster.
2169	Disabled bool `json:"disabled,omitempty"`
2170
2171	// ForceSendFields is a list of field names (e.g. "Disabled") to
2172	// unconditionally include in API requests. By default, fields with
2173	// empty values are omitted from API requests. However, any non-pointer,
2174	// non-interface field appearing in ForceSendFields will be sent to the
2175	// server regardless of whether the field is empty or not. This may be
2176	// used to include empty fields in Patch requests.
2177	ForceSendFields []string `json:"-"`
2178
2179	// NullFields is a list of field names (e.g. "Disabled") to include in
2180	// API requests with the JSON null value. By default, fields with empty
2181	// values are omitted from API requests. However, any field with an
2182	// empty value appearing in NullFields will be sent to the server as
2183	// null. It is an error if a field in this list has a non-empty value.
2184	// This may be used to include null fields in Patch requests.
2185	NullFields []string `json:"-"`
2186}
2187
2188func (s *NetworkPolicyConfig) MarshalJSON() ([]byte, error) {
2189	type NoMethod NetworkPolicyConfig
2190	raw := NoMethod(*s)
2191	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2192}
2193
2194// NodeConfig: Parameters that describe the nodes in a cluster.
2195type NodeConfig struct {
2196	// Accelerators: A list of hardware accelerators to be attached to each
2197	// node.
2198	// See https://cloud.google.com/compute/docs/gpus for more information
2199	// about
2200	// support for GPUs.
2201	Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"`
2202
2203	// DiskSizeGb: Size of the disk attached to each node, specified in
2204	// GB.
2205	// The smallest allowed disk size is 10GB.
2206	//
2207	// If unspecified, the default disk size is 100GB.
2208	DiskSizeGb int64 `json:"diskSizeGb,omitempty"`
2209
2210	// DiskType: Type of the disk attached to each node (e.g. 'pd-standard'
2211	// or 'pd-ssd')
2212	//
2213	// If unspecified, the default disk type is 'pd-standard'
2214	DiskType string `json:"diskType,omitempty"`
2215
2216	// ImageType: The image type to use for this node. Note that for a given
2217	// image type,
2218	// the latest version of it will be used.
2219	ImageType string `json:"imageType,omitempty"`
2220
2221	// Labels: The map of Kubernetes labels (key/value pairs) to be applied
2222	// to each node.
2223	// These will added in addition to any default label(s) that
2224	// Kubernetes may apply to the node.
2225	// In case of conflict in label keys, the applied set may differ
2226	// depending on
2227	// the Kubernetes version -- it's best to assume the behavior is
2228	// undefined
2229	// and conflicts should be avoided.
2230	// For more information, including usage and the valid values,
2231	// see:
2232	// https://kubernetes.io/docs/concepts/overview/working-with-objects
2233	// /labels/
2234	Labels map[string]string `json:"labels,omitempty"`
2235
2236	// LocalSsdCount: The number of local SSD disks to be attached to the
2237	// node.
2238	//
2239	// The limit for this value is dependant upon the maximum number
2240	// of
2241	// disks available on a machine per zone.
2242	// See:
2243	// https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_l
2244	// imits
2245	// for more information.
2246	LocalSsdCount int64 `json:"localSsdCount,omitempty"`
2247
2248	// MachineType: The name of a Google Compute Engine
2249	// [machine
2250	// type](/compute/docs/machine-types) (e.g.
2251	// `n1-standard-1`).
2252	//
2253	// If unspecified, the default machine type is
2254	// `n1-standard-1`.
2255	MachineType string `json:"machineType,omitempty"`
2256
2257	// Metadata: The metadata key/value pairs assigned to instances in the
2258	// cluster.
2259	//
2260	// Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128
2261	// bytes
2262	// in length. These are reflected as part of a URL in the metadata
2263	// server.
2264	// Additionally, to avoid ambiguity, keys must not conflict with any
2265	// other
2266	// metadata keys for the project or be one of the reserved keys:
2267	//  "cluster-location"
2268	//  "cluster-name"
2269	//  "cluster-uid"
2270	//  "configure-sh"
2271	//  "containerd-configure-sh"
2272	//  "enable-os-login"
2273	//  "gci-update-strategy"
2274	//  "gci-ensure-gke-docker"
2275	//  "instance-template"
2276	//  "kube-env"
2277	//  "startup-script"
2278	//  "user-data"
2279	//  "disable-address-manager"
2280	//  "windows-startup-script-ps1"
2281	//  "common-psm1"
2282	//  "k8s-node-setup-psm1"
2283	//  "install-ssh-psm1"
2284	//  "user-profile-psm1"
2285	//  "serial-port-logging-enable"
2286	//
2287	// Values are free-form strings, and only have meaning as interpreted
2288	// by
2289	// the image running in the instance. The only restriction placed on
2290	// them is
2291	// that each value's size must be less than or equal to 32 KB.
2292	//
2293	// The total size of all keys and values must be less than 512 KB.
2294	Metadata map[string]string `json:"metadata,omitempty"`
2295
2296	// MinCpuPlatform: Minimum CPU platform to be used by this instance. The
2297	// instance may be
2298	// scheduled on the specified or newer CPU platform. Applicable values
2299	// are the
2300	// friendly names of CPU platforms, such as
2301	// <code>minCpuPlatform: &quot;Intel Haswell&quot;</code>
2302	// or
2303	// <code>minCpuPlatform: &quot;Intel Sandy Bridge&quot;</code>. For
2304	// more
2305	// information, read [how to specify min
2306	// CPU
2307	// platform](https://cloud.google.com/compute/docs/instances/specify-
2308	// min-cpu-platform)
2309	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
2310
2311	// OauthScopes: The set of Google API scopes to be made available on all
2312	// of the
2313	// node VMs under the "default" service account.
2314	//
2315	// The following scopes are recommended, but not required, and by
2316	// default are
2317	// not included:
2318	//
2319	// * `https://www.googleapis.com/auth/compute` is required for
2320	// mounting
2321	// persistent storage on your nodes.
2322	// * `https://www.googleapis.com/auth/devstorage.read_only` is required
2323	// for
2324	// communicating with **gcr.io**
2325	// (the [Google Container Registry](/container-registry/)).
2326	//
2327	// If unspecified, no scopes are added, unless Cloud Logging or
2328	// Cloud
2329	// Monitoring are enabled, in which case their required scopes will be
2330	// added.
2331	OauthScopes []string `json:"oauthScopes,omitempty"`
2332
2333	// Preemptible: Whether the nodes are created as preemptible VM
2334	// instances.
2335	// See:
2336	// https://cloud.google.com/compute/docs/instances/preemptible for
2337	// more
2338	// information about preemptible VM instances.
2339	Preemptible bool `json:"preemptible,omitempty"`
2340
2341	// ServiceAccount: The Google Cloud Platform Service Account to be used
2342	// by the node VMs. If
2343	// no Service Account is specified, the "default" service account is
2344	// used.
2345	ServiceAccount string `json:"serviceAccount,omitempty"`
2346
2347	// Tags: The list of instance tags applied to all nodes. Tags are used
2348	// to identify
2349	// valid sources or targets for network firewalls and are specified
2350	// by
2351	// the client during cluster or node pool creation. Each tag within the
2352	// list
2353	// must comply with RFC1035.
2354	Tags []string `json:"tags,omitempty"`
2355
2356	// Taints: List of kubernetes taints to be applied to each node.
2357	//
2358	// For more information, including usage and the valid values,
2359	// see:
2360	// https://kubernetes.io/docs/concepts/configuration/taint-and-toler
2361	// ation/
2362	Taints []*NodeTaint `json:"taints,omitempty"`
2363
2364	// ForceSendFields is a list of field names (e.g. "Accelerators") to
2365	// unconditionally include in API requests. By default, fields with
2366	// empty values are omitted from API requests. However, any non-pointer,
2367	// non-interface field appearing in ForceSendFields will be sent to the
2368	// server regardless of whether the field is empty or not. This may be
2369	// used to include empty fields in Patch requests.
2370	ForceSendFields []string `json:"-"`
2371
2372	// NullFields is a list of field names (e.g. "Accelerators") to include
2373	// in API requests with the JSON null value. By default, fields with
2374	// empty values are omitted from API requests. However, any field with
2375	// an empty value appearing in NullFields will be sent to the server as
2376	// null. It is an error if a field in this list has a non-empty value.
2377	// This may be used to include null fields in Patch requests.
2378	NullFields []string `json:"-"`
2379}
2380
2381func (s *NodeConfig) MarshalJSON() ([]byte, error) {
2382	type NoMethod NodeConfig
2383	raw := NoMethod(*s)
2384	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2385}
2386
2387// NodeManagement: NodeManagement defines the set of node management
2388// services turned on for the
2389// node pool.
2390type NodeManagement struct {
2391	// AutoRepair: A flag that specifies whether the node auto-repair is
2392	// enabled for the node
2393	// pool. If enabled, the nodes in this node pool will be monitored and,
2394	// if
2395	// they fail health checks too many times, an automatic repair action
2396	// will be
2397	// triggered.
2398	AutoRepair bool `json:"autoRepair,omitempty"`
2399
2400	// AutoUpgrade: A flag that specifies whether node auto-upgrade is
2401	// enabled for the node
2402	// pool. If enabled, node auto-upgrade helps keep the nodes in your node
2403	// pool
2404	// up to date with the latest release version of Kubernetes.
2405	AutoUpgrade bool `json:"autoUpgrade,omitempty"`
2406
2407	// UpgradeOptions: Specifies the Auto Upgrade knobs for the node pool.
2408	UpgradeOptions *AutoUpgradeOptions `json:"upgradeOptions,omitempty"`
2409
2410	// ForceSendFields is a list of field names (e.g. "AutoRepair") 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. "AutoRepair") to include in
2419	// API 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 *NodeManagement) MarshalJSON() ([]byte, error) {
2428	type NoMethod NodeManagement
2429	raw := NoMethod(*s)
2430	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2431}
2432
2433// NodePool: NodePool contains the name and configuration for a
2434// cluster's node pool.
2435// Node pools are a set of nodes (i.e. VM's), with a common
2436// configuration and
2437// specification, under the control of the cluster master. They may have
2438// a set
2439// of Kubernetes labels applied to them, which may be used to reference
2440// them
2441// during pod scheduling. They may also be resized up or down, to
2442// accommodate
2443// the workload.
2444type NodePool struct {
2445	// Autoscaling: Autoscaler configuration for this NodePool. Autoscaler
2446	// is enabled
2447	// only if a valid configuration is present.
2448	Autoscaling *NodePoolAutoscaling `json:"autoscaling,omitempty"`
2449
2450	// Conditions: Which conditions caused the current node pool state.
2451	Conditions []*StatusCondition `json:"conditions,omitempty"`
2452
2453	// Config: The node configuration of the pool.
2454	Config *NodeConfig `json:"config,omitempty"`
2455
2456	// InitialNodeCount: The initial node count for the pool. You must
2457	// ensure that your
2458	// Compute Engine <a href="/compute/docs/resource-quotas">resource
2459	// quota</a>
2460	// is sufficient for this number of instances. You must also have
2461	// available
2462	// firewall and routes quota.
2463	InitialNodeCount int64 `json:"initialNodeCount,omitempty"`
2464
2465	// InstanceGroupUrls: [Output only] The resource URLs of the [managed
2466	// instance
2467	// groups](/compute/docs/instance-groups/creating-groups-of-mana
2468	// ged-instances)
2469	// associated with this node pool.
2470	InstanceGroupUrls []string `json:"instanceGroupUrls,omitempty"`
2471
2472	// Management: NodeManagement configuration for this NodePool.
2473	Management *NodeManagement `json:"management,omitempty"`
2474
2475	// MaxPodsConstraint: The constraint on the maximum number of pods that
2476	// can be run
2477	// simultaneously on a node in the node pool.
2478	MaxPodsConstraint *MaxPodsConstraint `json:"maxPodsConstraint,omitempty"`
2479
2480	// Name: The name of the node pool.
2481	Name string `json:"name,omitempty"`
2482
2483	// PodIpv4CidrSize: [Output only] The pod CIDR block size per node in
2484	// this node pool.
2485	PodIpv4CidrSize int64 `json:"podIpv4CidrSize,omitempty"`
2486
2487	// SelfLink: [Output only] Server-defined URL for the resource.
2488	SelfLink string `json:"selfLink,omitempty"`
2489
2490	// Status: [Output only] The status of the nodes in this pool instance.
2491	//
2492	// Possible values:
2493	//   "STATUS_UNSPECIFIED" - Not set.
2494	//   "PROVISIONING" - The PROVISIONING state indicates the node pool is
2495	// being created.
2496	//   "RUNNING" - The RUNNING state indicates the node pool has been
2497	// created
2498	// and is fully usable.
2499	//   "RUNNING_WITH_ERROR" - The RUNNING_WITH_ERROR state indicates the
2500	// node pool has been created
2501	// and is partially usable. Some error state has occurred and
2502	// some
2503	// functionality may be impaired. Customer may need to reissue a
2504	// request
2505	// or trigger a new update.
2506	//   "RECONCILING" - The RECONCILING state indicates that some work is
2507	// actively being done on
2508	// the node pool, such as upgrading node software. Details can
2509	// be found in the `statusMessage` field.
2510	//   "STOPPING" - The STOPPING state indicates the node pool is being
2511	// deleted.
2512	//   "ERROR" - The ERROR state indicates the node pool may be unusable.
2513	// Details
2514	// can be found in the `statusMessage` field.
2515	Status string `json:"status,omitempty"`
2516
2517	// StatusMessage: [Output only] Additional information about the current
2518	// status of this
2519	// node pool instance, if available.
2520	StatusMessage string `json:"statusMessage,omitempty"`
2521
2522	// Version: The version of the Kubernetes of this node.
2523	Version string `json:"version,omitempty"`
2524
2525	// ServerResponse contains the HTTP response code and headers from the
2526	// server.
2527	googleapi.ServerResponse `json:"-"`
2528
2529	// ForceSendFields is a list of field names (e.g. "Autoscaling") to
2530	// unconditionally include in API requests. By default, fields with
2531	// empty values are omitted from API requests. However, any non-pointer,
2532	// non-interface field appearing in ForceSendFields will be sent to the
2533	// server regardless of whether the field is empty or not. This may be
2534	// used to include empty fields in Patch requests.
2535	ForceSendFields []string `json:"-"`
2536
2537	// NullFields is a list of field names (e.g. "Autoscaling") to include
2538	// in API requests with the JSON null value. By default, fields with
2539	// empty values are omitted from API requests. However, any field with
2540	// an empty value appearing in NullFields will be sent to the server as
2541	// null. It is an error if a field in this list has a non-empty value.
2542	// This may be used to include null fields in Patch requests.
2543	NullFields []string `json:"-"`
2544}
2545
2546func (s *NodePool) MarshalJSON() ([]byte, error) {
2547	type NoMethod NodePool
2548	raw := NoMethod(*s)
2549	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2550}
2551
2552// NodePoolAutoscaling: NodePoolAutoscaling contains information
2553// required by cluster autoscaler to
2554// adjust the size of the node pool to the current cluster usage.
2555type NodePoolAutoscaling struct {
2556	// Enabled: Is autoscaling enabled for this node pool.
2557	Enabled bool `json:"enabled,omitempty"`
2558
2559	// MaxNodeCount: Maximum number of nodes in the NodePool. Must be >=
2560	// min_node_count. There
2561	// has to enough quota to scale up the cluster.
2562	MaxNodeCount int64 `json:"maxNodeCount,omitempty"`
2563
2564	// MinNodeCount: Minimum number of nodes in the NodePool. Must be >= 1
2565	// and <=
2566	// max_node_count.
2567	MinNodeCount int64 `json:"minNodeCount,omitempty"`
2568
2569	// ForceSendFields is a list of field names (e.g. "Enabled") to
2570	// unconditionally include in API requests. By default, fields with
2571	// empty values are omitted from API requests. However, any non-pointer,
2572	// non-interface field appearing in ForceSendFields will be sent to the
2573	// server regardless of whether the field is empty or not. This may be
2574	// used to include empty fields in Patch requests.
2575	ForceSendFields []string `json:"-"`
2576
2577	// NullFields is a list of field names (e.g. "Enabled") to include in
2578	// API requests with the JSON null value. By default, fields with empty
2579	// values are omitted from API requests. However, any field with an
2580	// empty value appearing in NullFields will be sent to the server as
2581	// null. It is an error if a field in this list has a non-empty value.
2582	// This may be used to include null fields in Patch requests.
2583	NullFields []string `json:"-"`
2584}
2585
2586func (s *NodePoolAutoscaling) MarshalJSON() ([]byte, error) {
2587	type NoMethod NodePoolAutoscaling
2588	raw := NoMethod(*s)
2589	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2590}
2591
2592// NodeTaint: Kubernetes taint is comprised of three fields: key, value,
2593// and effect. Effect
2594// can only be one of three types:  NoSchedule, PreferNoSchedule or
2595// NoExecute.
2596//
2597// For more information, including usage and the valid values,
2598// see:
2599// https://kubernetes.io/docs/concepts/configuration/taint-and-toler
2600// ation/
2601type NodeTaint struct {
2602	// Effect: Effect for taint.
2603	//
2604	// Possible values:
2605	//   "EFFECT_UNSPECIFIED" - Not set
2606	//   "NO_SCHEDULE" - NoSchedule
2607	//   "PREFER_NO_SCHEDULE" - PreferNoSchedule
2608	//   "NO_EXECUTE" - NoExecute
2609	Effect string `json:"effect,omitempty"`
2610
2611	// Key: Key for taint.
2612	Key string `json:"key,omitempty"`
2613
2614	// Value: Value for taint.
2615	Value string `json:"value,omitempty"`
2616
2617	// ForceSendFields is a list of field names (e.g. "Effect") to
2618	// unconditionally include in API requests. By default, fields with
2619	// empty values are omitted from API requests. However, any non-pointer,
2620	// non-interface field appearing in ForceSendFields will be sent to the
2621	// server regardless of whether the field is empty or not. This may be
2622	// used to include empty fields in Patch requests.
2623	ForceSendFields []string `json:"-"`
2624
2625	// NullFields is a list of field names (e.g. "Effect") to include in API
2626	// requests with the JSON null value. By default, fields with empty
2627	// values are omitted from API requests. However, any field with an
2628	// empty value appearing in NullFields will be sent to the server as
2629	// null. It is an error if a field in this list has a non-empty value.
2630	// This may be used to include null fields in Patch requests.
2631	NullFields []string `json:"-"`
2632}
2633
2634func (s *NodeTaint) MarshalJSON() ([]byte, error) {
2635	type NoMethod NodeTaint
2636	raw := NoMethod(*s)
2637	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2638}
2639
2640// Operation: This operation resource represents operations that may
2641// have happened or are
2642// happening on the cluster. All fields are output only.
2643type Operation struct {
2644	// ClusterConditions: Which conditions caused the current cluster state.
2645	ClusterConditions []*StatusCondition `json:"clusterConditions,omitempty"`
2646
2647	// Detail: Detailed operation progress, if available.
2648	Detail string `json:"detail,omitempty"`
2649
2650	// EndTime: [Output only] The time the operation completed,
2651	// in
2652	// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
2653	EndTime string `json:"endTime,omitempty"`
2654
2655	// Location: [Output only] The name of the Google Compute
2656	// Engine
2657	// [zone](/compute/docs/regions-zones/regions-zones#available)
2658	// or
2659	// [region](/compute/docs/regions-zones/regions-zones#available) in
2660	// which
2661	// the cluster resides.
2662	Location string `json:"location,omitempty"`
2663
2664	// Name: The server-assigned ID for the operation.
2665	Name string `json:"name,omitempty"`
2666
2667	// NodepoolConditions: Which conditions caused the current node pool
2668	// state.
2669	NodepoolConditions []*StatusCondition `json:"nodepoolConditions,omitempty"`
2670
2671	// OperationType: The operation type.
2672	//
2673	// Possible values:
2674	//   "TYPE_UNSPECIFIED" - Not set.
2675	//   "CREATE_CLUSTER" - Cluster create.
2676	//   "DELETE_CLUSTER" - Cluster delete.
2677	//   "UPGRADE_MASTER" - A master upgrade.
2678	//   "UPGRADE_NODES" - A node upgrade.
2679	//   "REPAIR_CLUSTER" - Cluster repair.
2680	//   "UPDATE_CLUSTER" - Cluster update.
2681	//   "CREATE_NODE_POOL" - Node pool create.
2682	//   "DELETE_NODE_POOL" - Node pool delete.
2683	//   "SET_NODE_POOL_MANAGEMENT" - Set node pool management.
2684	//   "AUTO_REPAIR_NODES" - Automatic node pool repair.
2685	//   "AUTO_UPGRADE_NODES" - Automatic node upgrade.
2686	//   "SET_LABELS" - Set labels.
2687	//   "SET_MASTER_AUTH" - Set/generate master auth materials
2688	//   "SET_NODE_POOL_SIZE" - Set node pool size.
2689	//   "SET_NETWORK_POLICY" - Updates network policy for a cluster.
2690	//   "SET_MAINTENANCE_POLICY" - Set the maintenance policy.
2691	OperationType string `json:"operationType,omitempty"`
2692
2693	// SelfLink: Server-defined URL for the resource.
2694	SelfLink string `json:"selfLink,omitempty"`
2695
2696	// StartTime: [Output only] The time the operation started,
2697	// in
2698	// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
2699	StartTime string `json:"startTime,omitempty"`
2700
2701	// Status: The current status of the operation.
2702	//
2703	// Possible values:
2704	//   "STATUS_UNSPECIFIED" - Not set.
2705	//   "PENDING" - The operation has been created.
2706	//   "RUNNING" - The operation is currently running.
2707	//   "DONE" - The operation is done, either cancelled or completed.
2708	//   "ABORTING" - The operation is aborting.
2709	Status string `json:"status,omitempty"`
2710
2711	// StatusMessage: If an error has occurred, a textual description of the
2712	// error.
2713	StatusMessage string `json:"statusMessage,omitempty"`
2714
2715	// TargetLink: Server-defined URL for the target of the operation.
2716	TargetLink string `json:"targetLink,omitempty"`
2717
2718	// Zone: The name of the Google Compute
2719	// Engine
2720	// [zone](/compute/docs/zones#available) in which the operation
2721	// is taking place.
2722	// This field is deprecated, use location instead.
2723	Zone string `json:"zone,omitempty"`
2724
2725	// ServerResponse contains the HTTP response code and headers from the
2726	// server.
2727	googleapi.ServerResponse `json:"-"`
2728
2729	// ForceSendFields is a list of field names (e.g. "ClusterConditions")
2730	// to unconditionally include in API requests. By default, fields with
2731	// empty values are omitted from API requests. However, any non-pointer,
2732	// non-interface field appearing in ForceSendFields will be sent to the
2733	// server regardless of whether the field is empty or not. This may be
2734	// used to include empty fields in Patch requests.
2735	ForceSendFields []string `json:"-"`
2736
2737	// NullFields is a list of field names (e.g. "ClusterConditions") to
2738	// include in API requests with the JSON null value. By default, fields
2739	// with empty values are omitted from API requests. However, any field
2740	// with an empty value appearing in NullFields will be sent to the
2741	// server as null. It is an error if a field in this list has a
2742	// non-empty value. This may be used to include null fields in Patch
2743	// requests.
2744	NullFields []string `json:"-"`
2745}
2746
2747func (s *Operation) MarshalJSON() ([]byte, error) {
2748	type NoMethod Operation
2749	raw := NoMethod(*s)
2750	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2751}
2752
2753// PrivateClusterConfig: Configuration options for private clusters.
2754type PrivateClusterConfig struct {
2755	// EnablePrivateEndpoint: Whether the master's internal IP address is
2756	// used as the cluster endpoint.
2757	EnablePrivateEndpoint bool `json:"enablePrivateEndpoint,omitempty"`
2758
2759	// EnablePrivateNodes: Whether nodes have internal IP addresses only. If
2760	// enabled, all nodes are
2761	// given only RFC 1918 private addresses and communicate with the master
2762	// via
2763	// private networking.
2764	EnablePrivateNodes bool `json:"enablePrivateNodes,omitempty"`
2765
2766	// MasterIpv4CidrBlock: The IP range in CIDR notation to use for the
2767	// hosted master network. This
2768	// range will be used for assigning internal IP addresses to the master
2769	// or
2770	// set of masters, as well as the ILB VIP. This range must not overlap
2771	// with
2772	// any other ranges in use within the cluster's network.
2773	MasterIpv4CidrBlock string `json:"masterIpv4CidrBlock,omitempty"`
2774
2775	// PrivateEndpoint: Output only. The internal IP address of this
2776	// cluster's master endpoint.
2777	PrivateEndpoint string `json:"privateEndpoint,omitempty"`
2778
2779	// PublicEndpoint: Output only. The external IP address of this
2780	// cluster's master endpoint.
2781	PublicEndpoint string `json:"publicEndpoint,omitempty"`
2782
2783	// ForceSendFields is a list of field names (e.g.
2784	// "EnablePrivateEndpoint") to unconditionally include in API requests.
2785	// By default, fields with empty values are omitted from API requests.
2786	// However, any non-pointer, non-interface field appearing in
2787	// ForceSendFields will be sent to the server regardless of whether the
2788	// field is empty or not. This may be used to include empty fields in
2789	// Patch requests.
2790	ForceSendFields []string `json:"-"`
2791
2792	// NullFields is a list of field names (e.g. "EnablePrivateEndpoint") to
2793	// include in API requests with the JSON null value. By default, fields
2794	// with empty values are omitted from API requests. However, any field
2795	// with an empty value appearing in NullFields will be sent to the
2796	// server as null. It is an error if a field in this list has a
2797	// non-empty value. This may be used to include null fields in Patch
2798	// requests.
2799	NullFields []string `json:"-"`
2800}
2801
2802func (s *PrivateClusterConfig) MarshalJSON() ([]byte, error) {
2803	type NoMethod PrivateClusterConfig
2804	raw := NoMethod(*s)
2805	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2806}
2807
2808// ResourceUsageExportConfig: Configuration for exporting cluster
2809// resource usages.
2810type ResourceUsageExportConfig struct {
2811	// BigqueryDestination: Configuration to use BigQuery as usage export
2812	// destination.
2813	BigqueryDestination *BigQueryDestination `json:"bigqueryDestination,omitempty"`
2814
2815	// ConsumptionMeteringConfig: Configuration to enable resource
2816	// consumption metering.
2817	ConsumptionMeteringConfig *ConsumptionMeteringConfig `json:"consumptionMeteringConfig,omitempty"`
2818
2819	// EnableNetworkEgressMetering: Whether to enable network egress
2820	// metering for this cluster. If enabled, a
2821	// daemonset will be created in the cluster to meter network egress
2822	// traffic.
2823	EnableNetworkEgressMetering bool `json:"enableNetworkEgressMetering,omitempty"`
2824
2825	// ForceSendFields is a list of field names (e.g. "BigqueryDestination")
2826	// to unconditionally include in API requests. By default, fields with
2827	// empty values are omitted from API requests. However, any non-pointer,
2828	// non-interface field appearing in ForceSendFields will be sent to the
2829	// server regardless of whether the field is empty or not. This may be
2830	// used to include empty fields in Patch requests.
2831	ForceSendFields []string `json:"-"`
2832
2833	// NullFields is a list of field names (e.g. "BigqueryDestination") to
2834	// include in API requests with the JSON null value. By default, fields
2835	// with empty values are omitted from API requests. However, any field
2836	// with an empty value appearing in NullFields will be sent to the
2837	// server as null. It is an error if a field in this list has a
2838	// non-empty value. This may be used to include null fields in Patch
2839	// requests.
2840	NullFields []string `json:"-"`
2841}
2842
2843func (s *ResourceUsageExportConfig) MarshalJSON() ([]byte, error) {
2844	type NoMethod ResourceUsageExportConfig
2845	raw := NoMethod(*s)
2846	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2847}
2848
2849// RollbackNodePoolUpgradeRequest: RollbackNodePoolUpgradeRequest
2850// rollbacks the previously Aborted or Failed
2851// NodePool upgrade. This will be an no-op if the last upgrade
2852// successfully
2853// completed.
2854type RollbackNodePoolUpgradeRequest struct {
2855	// ClusterId: Deprecated. The name of the cluster to rollback.
2856	// This field has been deprecated and replaced by the name field.
2857	ClusterId string `json:"clusterId,omitempty"`
2858
2859	// Name: The name (project, location, cluster, node pool id) of the node
2860	// poll to
2861	// rollback upgrade.
2862	// Specified in the format
2863	// 'projects/*/locations/*/clusters/*/nodePools/*'.
2864	Name string `json:"name,omitempty"`
2865
2866	// NodePoolId: Deprecated. The name of the node pool to rollback.
2867	// This field has been deprecated and replaced by the name field.
2868	NodePoolId string `json:"nodePoolId,omitempty"`
2869
2870	// ProjectId: Deprecated. The Google Developers Console [project ID or
2871	// project
2872	// number](https://support.google.com/cloud/answer/6158840).
2873	// This
2874	//  field has been deprecated and replaced by the name field.
2875	ProjectId string `json:"projectId,omitempty"`
2876
2877	// Zone: Deprecated. The name of the Google Compute
2878	// Engine
2879	// [zone](/compute/docs/zones#available) in which the
2880	// cluster
2881	// resides.
2882	// This field has been deprecated and replaced by the name field.
2883	Zone string `json:"zone,omitempty"`
2884
2885	// ForceSendFields is a list of field names (e.g. "ClusterId") to
2886	// unconditionally include in API requests. By default, fields with
2887	// empty values are omitted from API requests. However, any non-pointer,
2888	// non-interface field appearing in ForceSendFields will be sent to the
2889	// server regardless of whether the field is empty or not. This may be
2890	// used to include empty fields in Patch requests.
2891	ForceSendFields []string `json:"-"`
2892
2893	// NullFields is a list of field names (e.g. "ClusterId") to include in
2894	// API requests with the JSON null value. By default, fields with empty
2895	// values are omitted from API requests. However, any field with an
2896	// empty value appearing in NullFields will be sent to the server as
2897	// null. It is an error if a field in this list has a non-empty value.
2898	// This may be used to include null fields in Patch requests.
2899	NullFields []string `json:"-"`
2900}
2901
2902func (s *RollbackNodePoolUpgradeRequest) MarshalJSON() ([]byte, error) {
2903	type NoMethod RollbackNodePoolUpgradeRequest
2904	raw := NoMethod(*s)
2905	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2906}
2907
2908// ServerConfig: Kubernetes Engine service configuration.
2909type ServerConfig struct {
2910	// DefaultClusterVersion: Version of Kubernetes the service deploys by
2911	// default.
2912	DefaultClusterVersion string `json:"defaultClusterVersion,omitempty"`
2913
2914	// DefaultImageType: Default image type.
2915	DefaultImageType string `json:"defaultImageType,omitempty"`
2916
2917	// ValidImageTypes: List of valid image types.
2918	ValidImageTypes []string `json:"validImageTypes,omitempty"`
2919
2920	// ValidMasterVersions: List of valid master versions.
2921	ValidMasterVersions []string `json:"validMasterVersions,omitempty"`
2922
2923	// ValidNodeVersions: List of valid node upgrade target versions.
2924	ValidNodeVersions []string `json:"validNodeVersions,omitempty"`
2925
2926	// ServerResponse contains the HTTP response code and headers from the
2927	// server.
2928	googleapi.ServerResponse `json:"-"`
2929
2930	// ForceSendFields is a list of field names (e.g.
2931	// "DefaultClusterVersion") to unconditionally include in API requests.
2932	// By default, fields with empty values are omitted from API requests.
2933	// However, any non-pointer, non-interface field appearing in
2934	// ForceSendFields will be sent to the server regardless of whether the
2935	// field is empty or not. This may be used to include empty fields in
2936	// Patch requests.
2937	ForceSendFields []string `json:"-"`
2938
2939	// NullFields is a list of field names (e.g. "DefaultClusterVersion") to
2940	// include in API requests with the JSON null value. By default, fields
2941	// with empty values are omitted from API requests. However, any field
2942	// with an empty value appearing in NullFields will be sent to the
2943	// server as null. It is an error if a field in this list has a
2944	// non-empty value. This may be used to include null fields in Patch
2945	// requests.
2946	NullFields []string `json:"-"`
2947}
2948
2949func (s *ServerConfig) MarshalJSON() ([]byte, error) {
2950	type NoMethod ServerConfig
2951	raw := NoMethod(*s)
2952	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2953}
2954
2955// SetAddonsConfigRequest: SetAddonsConfigRequest sets the addons
2956// associated with the cluster.
2957type SetAddonsConfigRequest struct {
2958	// AddonsConfig: The desired configurations for the various addons
2959	// available to run in the
2960	// cluster.
2961	AddonsConfig *AddonsConfig `json:"addonsConfig,omitempty"`
2962
2963	// ClusterId: Deprecated. The name of the cluster to upgrade.
2964	// This field has been deprecated and replaced by the name field.
2965	ClusterId string `json:"clusterId,omitempty"`
2966
2967	// Name: The name (project, location, cluster) of the cluster to set
2968	// addons.
2969	// Specified in the format 'projects/*/locations/*/clusters/*'.
2970	Name string `json:"name,omitempty"`
2971
2972	// ProjectId: Deprecated. The Google Developers Console [project ID or
2973	// project
2974	// number](https://support.google.com/cloud/answer/6158840).
2975	// This
2976	//  field has been deprecated and replaced by the name field.
2977	ProjectId string `json:"projectId,omitempty"`
2978
2979	// Zone: Deprecated. The name of the Google Compute
2980	// Engine
2981	// [zone](/compute/docs/zones#available) in which the
2982	// cluster
2983	// resides.
2984	// This field has been deprecated and replaced by the name field.
2985	Zone string `json:"zone,omitempty"`
2986
2987	// ForceSendFields is a list of field names (e.g. "AddonsConfig") to
2988	// unconditionally include in API requests. By default, fields with
2989	// empty values are omitted from API requests. However, any non-pointer,
2990	// non-interface field appearing in ForceSendFields will be sent to the
2991	// server regardless of whether the field is empty or not. This may be
2992	// used to include empty fields in Patch requests.
2993	ForceSendFields []string `json:"-"`
2994
2995	// NullFields is a list of field names (e.g. "AddonsConfig") to include
2996	// in API requests with the JSON null value. By default, fields with
2997	// empty values are omitted from API requests. However, any field with
2998	// an empty value appearing in NullFields will be sent to the server as
2999	// null. It is an error if a field in this list has a non-empty value.
3000	// This may be used to include null fields in Patch requests.
3001	NullFields []string `json:"-"`
3002}
3003
3004func (s *SetAddonsConfigRequest) MarshalJSON() ([]byte, error) {
3005	type NoMethod SetAddonsConfigRequest
3006	raw := NoMethod(*s)
3007	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3008}
3009
3010// SetLabelsRequest: SetLabelsRequest sets the Google Cloud Platform
3011// labels on a Google Container
3012// Engine cluster, which will in turn set them for Google Compute
3013// Engine
3014// resources used by that cluster
3015type SetLabelsRequest struct {
3016	// ClusterId: Deprecated. The name of the cluster.
3017	// This field has been deprecated and replaced by the name field.
3018	ClusterId string `json:"clusterId,omitempty"`
3019
3020	// LabelFingerprint: The fingerprint of the previous set of labels for
3021	// this resource,
3022	// used to detect conflicts. The fingerprint is initially generated
3023	// by
3024	// Kubernetes Engine and changes after every request to modify or
3025	// update
3026	// labels. You must always provide an up-to-date fingerprint hash
3027	// when
3028	// updating or changing labels. Make a <code>get()</code> request to
3029	// the
3030	// resource to get the latest fingerprint.
3031	LabelFingerprint string `json:"labelFingerprint,omitempty"`
3032
3033	// Name: The name (project, location, cluster id) of the cluster to set
3034	// labels.
3035	// Specified in the format 'projects/*/locations/*/clusters/*'.
3036	Name string `json:"name,omitempty"`
3037
3038	// ProjectId: Deprecated. The Google Developers Console [project ID or
3039	// project
3040	// number](https://developers.google.com/console/help/new/#projec
3041	// tnumber).
3042	// This field has been deprecated and replaced by the name field.
3043	ProjectId string `json:"projectId,omitempty"`
3044
3045	// ResourceLabels: The labels to set for that cluster.
3046	ResourceLabels map[string]string `json:"resourceLabels,omitempty"`
3047
3048	// Zone: Deprecated. The name of the Google Compute
3049	// Engine
3050	// [zone](/compute/docs/zones#available) in which the
3051	// cluster
3052	// resides.
3053	// This field has been deprecated and replaced by the name field.
3054	Zone string `json:"zone,omitempty"`
3055
3056	// ForceSendFields is a list of field names (e.g. "ClusterId") to
3057	// unconditionally include in API requests. By default, fields with
3058	// empty values are omitted from API requests. However, any non-pointer,
3059	// non-interface field appearing in ForceSendFields will be sent to the
3060	// server regardless of whether the field is empty or not. This may be
3061	// used to include empty fields in Patch requests.
3062	ForceSendFields []string `json:"-"`
3063
3064	// NullFields is a list of field names (e.g. "ClusterId") to include in
3065	// API requests with the JSON null value. By default, fields with empty
3066	// values are omitted from API requests. However, any field with an
3067	// empty value appearing in NullFields will be sent to the server as
3068	// null. It is an error if a field in this list has a non-empty value.
3069	// This may be used to include null fields in Patch requests.
3070	NullFields []string `json:"-"`
3071}
3072
3073func (s *SetLabelsRequest) MarshalJSON() ([]byte, error) {
3074	type NoMethod SetLabelsRequest
3075	raw := NoMethod(*s)
3076	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3077}
3078
3079// SetLegacyAbacRequest: SetLegacyAbacRequest enables or disables the
3080// ABAC authorization mechanism for
3081// a cluster.
3082type SetLegacyAbacRequest struct {
3083	// ClusterId: Deprecated. The name of the cluster to update.
3084	// This field has been deprecated and replaced by the name field.
3085	ClusterId string `json:"clusterId,omitempty"`
3086
3087	// Enabled: Whether ABAC authorization will be enabled in the cluster.
3088	Enabled bool `json:"enabled,omitempty"`
3089
3090	// Name: The name (project, location, cluster id) of the cluster to set
3091	// legacy abac.
3092	// Specified in the format 'projects/*/locations/*/clusters/*'.
3093	Name string `json:"name,omitempty"`
3094
3095	// ProjectId: Deprecated. The Google Developers Console [project ID or
3096	// project
3097	// number](https://support.google.com/cloud/answer/6158840).
3098	// This
3099	//  field has been deprecated and replaced by the name field.
3100	ProjectId string `json:"projectId,omitempty"`
3101
3102	// Zone: Deprecated. The name of the Google Compute
3103	// Engine
3104	// [zone](/compute/docs/zones#available) in which the
3105	// cluster
3106	// resides.
3107	// This field has been deprecated and replaced by the name field.
3108	Zone string `json:"zone,omitempty"`
3109
3110	// ForceSendFields is a list of field names (e.g. "ClusterId") to
3111	// unconditionally include in API requests. By default, fields with
3112	// empty values are omitted from API requests. However, any non-pointer,
3113	// non-interface field appearing in ForceSendFields will be sent to the
3114	// server regardless of whether the field is empty or not. This may be
3115	// used to include empty fields in Patch requests.
3116	ForceSendFields []string `json:"-"`
3117
3118	// NullFields is a list of field names (e.g. "ClusterId") to include in
3119	// API requests with the JSON null value. By default, fields with empty
3120	// values are omitted from API requests. However, any field with an
3121	// empty value appearing in NullFields will be sent to the server as
3122	// null. It is an error if a field in this list has a non-empty value.
3123	// This may be used to include null fields in Patch requests.
3124	NullFields []string `json:"-"`
3125}
3126
3127func (s *SetLegacyAbacRequest) MarshalJSON() ([]byte, error) {
3128	type NoMethod SetLegacyAbacRequest
3129	raw := NoMethod(*s)
3130	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3131}
3132
3133// SetLocationsRequest: SetLocationsRequest sets the locations of the
3134// cluster.
3135type SetLocationsRequest struct {
3136	// ClusterId: Deprecated. The name of the cluster to upgrade.
3137	// This field has been deprecated and replaced by the name field.
3138	ClusterId string `json:"clusterId,omitempty"`
3139
3140	// Locations: The desired list of Google Compute
3141	// Engine
3142	// [zones](/compute/docs/zones#available) in which the cluster's
3143	// nodes
3144	// should be located. Changing the locations a cluster is in will
3145	// result
3146	// in nodes being either created or removed from the cluster, depending
3147	// on
3148	// whether locations are being added or removed.
3149	//
3150	// This list must always include the cluster's primary zone.
3151	Locations []string `json:"locations,omitempty"`
3152
3153	// Name: The name (project, location, cluster) of the cluster to set
3154	// locations.
3155	// Specified in the format 'projects/*/locations/*/clusters/*'.
3156	Name string `json:"name,omitempty"`
3157
3158	// ProjectId: Deprecated. The Google Developers Console [project ID or
3159	// project
3160	// number](https://support.google.com/cloud/answer/6158840).
3161	// This
3162	//  field has been deprecated and replaced by the name field.
3163	ProjectId string `json:"projectId,omitempty"`
3164
3165	// Zone: Deprecated. The name of the Google Compute
3166	// Engine
3167	// [zone](/compute/docs/zones#available) in which the
3168	// cluster
3169	// resides.
3170	// This field has been deprecated and replaced by the name field.
3171	Zone string `json:"zone,omitempty"`
3172
3173	// ForceSendFields is a list of field names (e.g. "ClusterId") to
3174	// unconditionally include in API requests. By default, fields with
3175	// empty values are omitted from API requests. However, any non-pointer,
3176	// non-interface field appearing in ForceSendFields will be sent to the
3177	// server regardless of whether the field is empty or not. This may be
3178	// used to include empty fields in Patch requests.
3179	ForceSendFields []string `json:"-"`
3180
3181	// NullFields is a list of field names (e.g. "ClusterId") to include in
3182	// API requests with the JSON null value. By default, fields with empty
3183	// values are omitted from API requests. However, any field with an
3184	// empty value appearing in NullFields will be sent to the server as
3185	// null. It is an error if a field in this list has a non-empty value.
3186	// This may be used to include null fields in Patch requests.
3187	NullFields []string `json:"-"`
3188}
3189
3190func (s *SetLocationsRequest) MarshalJSON() ([]byte, error) {
3191	type NoMethod SetLocationsRequest
3192	raw := NoMethod(*s)
3193	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3194}
3195
3196// SetLoggingServiceRequest: SetLoggingServiceRequest sets the logging
3197// service of a cluster.
3198type SetLoggingServiceRequest struct {
3199	// ClusterId: Deprecated. The name of the cluster to upgrade.
3200	// This field has been deprecated and replaced by the name field.
3201	ClusterId string `json:"clusterId,omitempty"`
3202
3203	// LoggingService: The logging service the cluster should use to write
3204	// metrics.
3205	// Currently available options:
3206	//
3207	// * "logging.googleapis.com" - the Google Cloud Logging service
3208	// * "none" - no metrics will be exported from the cluster
3209	LoggingService string `json:"loggingService,omitempty"`
3210
3211	// Name: The name (project, location, cluster) of the cluster to set
3212	// logging.
3213	// Specified in the format 'projects/*/locations/*/clusters/*'.
3214	Name string `json:"name,omitempty"`
3215
3216	// ProjectId: Deprecated. The Google Developers Console [project ID or
3217	// project
3218	// number](https://support.google.com/cloud/answer/6158840).
3219	// This
3220	//  field has been deprecated and replaced by the name field.
3221	ProjectId string `json:"projectId,omitempty"`
3222
3223	// Zone: Deprecated. The name of the Google Compute
3224	// Engine
3225	// [zone](/compute/docs/zones#available) in which the
3226	// cluster
3227	// resides.
3228	// This field has been deprecated and replaced by the name field.
3229	Zone string `json:"zone,omitempty"`
3230
3231	// ForceSendFields is a list of field names (e.g. "ClusterId") to
3232	// unconditionally include in API requests. By default, fields with
3233	// empty values are omitted from API requests. However, any non-pointer,
3234	// non-interface field appearing in ForceSendFields will be sent to the
3235	// server regardless of whether the field is empty or not. This may be
3236	// used to include empty fields in Patch requests.
3237	ForceSendFields []string `json:"-"`
3238
3239	// NullFields is a list of field names (e.g. "ClusterId") to include in
3240	// API requests with the JSON null value. By default, fields with empty
3241	// values are omitted from API requests. However, any field with an
3242	// empty value appearing in NullFields will be sent to the server as
3243	// null. It is an error if a field in this list has a non-empty value.
3244	// This may be used to include null fields in Patch requests.
3245	NullFields []string `json:"-"`
3246}
3247
3248func (s *SetLoggingServiceRequest) MarshalJSON() ([]byte, error) {
3249	type NoMethod SetLoggingServiceRequest
3250	raw := NoMethod(*s)
3251	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3252}
3253
3254// SetMaintenancePolicyRequest: SetMaintenancePolicyRequest sets the
3255// maintenance policy for a cluster.
3256type SetMaintenancePolicyRequest struct {
3257	// ClusterId: The name of the cluster to update.
3258	ClusterId string `json:"clusterId,omitempty"`
3259
3260	// MaintenancePolicy: The maintenance policy to be set for the cluster.
3261	// An empty field
3262	// clears the existing maintenance policy.
3263	MaintenancePolicy *MaintenancePolicy `json:"maintenancePolicy,omitempty"`
3264
3265	// Name: The name (project, location, cluster id) of the cluster to set
3266	// maintenance
3267	// policy.
3268	// Specified in the format 'projects/*/locations/*/clusters/*'.
3269	Name string `json:"name,omitempty"`
3270
3271	// ProjectId: The Google Developers Console [project ID or
3272	// project
3273	// number](https://support.google.com/cloud/answer/6158840).
3274	ProjectId string `json:"projectId,omitempty"`
3275
3276	// Zone: The name of the Google Compute
3277	// Engine
3278	// [zone](/compute/docs/zones#available) in which the cluster
3279	// resides.
3280	Zone string `json:"zone,omitempty"`
3281
3282	// ForceSendFields is a list of field names (e.g. "ClusterId") to
3283	// unconditionally include in API requests. By default, fields with
3284	// empty values are omitted from API requests. However, any non-pointer,
3285	// non-interface field appearing in ForceSendFields will be sent to the
3286	// server regardless of whether the field is empty or not. This may be
3287	// used to include empty fields in Patch requests.
3288	ForceSendFields []string `json:"-"`
3289
3290	// NullFields is a list of field names (e.g. "ClusterId") to include in
3291	// API requests with the JSON null value. By default, fields with empty
3292	// values are omitted from API requests. However, any field with an
3293	// empty value appearing in NullFields will be sent to the server as
3294	// null. It is an error if a field in this list has a non-empty value.
3295	// This may be used to include null fields in Patch requests.
3296	NullFields []string `json:"-"`
3297}
3298
3299func (s *SetMaintenancePolicyRequest) MarshalJSON() ([]byte, error) {
3300	type NoMethod SetMaintenancePolicyRequest
3301	raw := NoMethod(*s)
3302	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3303}
3304
3305// SetMasterAuthRequest: SetMasterAuthRequest updates the admin password
3306// of a cluster.
3307type SetMasterAuthRequest struct {
3308	// Action: The exact form of action to be taken on the master auth.
3309	//
3310	// Possible values:
3311	//   "UNKNOWN" - Operation is unknown and will error out.
3312	//   "SET_PASSWORD" - Set the password to a user generated value.
3313	//   "GENERATE_PASSWORD" - Generate a new password and set it to that.
3314	//   "SET_USERNAME" - Set the username.  If an empty username is
3315	// provided, basic authentication
3316	// is disabled for the cluster.  If a non-empty username is provided,
3317	// basic
3318	// authentication is enabled, with either a provided password or a
3319	// generated
3320	// one.
3321	Action string `json:"action,omitempty"`
3322
3323	// ClusterId: Deprecated. The name of the cluster to upgrade.
3324	// This field has been deprecated and replaced by the name field.
3325	ClusterId string `json:"clusterId,omitempty"`
3326
3327	// Name: The name (project, location, cluster) of the cluster to set
3328	// auth.
3329	// Specified in the format 'projects/*/locations/*/clusters/*'.
3330	Name string `json:"name,omitempty"`
3331
3332	// ProjectId: Deprecated. The Google Developers Console [project ID or
3333	// project
3334	// number](https://support.google.com/cloud/answer/6158840).
3335	// This
3336	//  field has been deprecated and replaced by the name field.
3337	ProjectId string `json:"projectId,omitempty"`
3338
3339	// Update: A description of the update.
3340	Update *MasterAuth `json:"update,omitempty"`
3341
3342	// Zone: Deprecated. The name of the Google Compute
3343	// Engine
3344	// [zone](/compute/docs/zones#available) in which the
3345	// cluster
3346	// resides.
3347	// This field has been deprecated and replaced by the name field.
3348	Zone string `json:"zone,omitempty"`
3349
3350	// ForceSendFields is a list of field names (e.g. "Action") to
3351	// unconditionally include in API requests. By default, fields with
3352	// empty values are omitted from API requests. However, any non-pointer,
3353	// non-interface field appearing in ForceSendFields will be sent to the
3354	// server regardless of whether the field is empty or not. This may be
3355	// used to include empty fields in Patch requests.
3356	ForceSendFields []string `json:"-"`
3357
3358	// NullFields is a list of field names (e.g. "Action") to include in API
3359	// requests with the JSON null value. By default, fields with empty
3360	// values are omitted from API requests. However, any field with an
3361	// empty value appearing in NullFields will be sent to the server as
3362	// null. It is an error if a field in this list has a non-empty value.
3363	// This may be used to include null fields in Patch requests.
3364	NullFields []string `json:"-"`
3365}
3366
3367func (s *SetMasterAuthRequest) MarshalJSON() ([]byte, error) {
3368	type NoMethod SetMasterAuthRequest
3369	raw := NoMethod(*s)
3370	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3371}
3372
3373// SetMonitoringServiceRequest: SetMonitoringServiceRequest sets the
3374// monitoring service of a cluster.
3375type SetMonitoringServiceRequest struct {
3376	// ClusterId: Deprecated. The name of the cluster to upgrade.
3377	// This field has been deprecated and replaced by the name field.
3378	ClusterId string `json:"clusterId,omitempty"`
3379
3380	// MonitoringService: The monitoring service the cluster should use to
3381	// write metrics.
3382	// Currently available options:
3383	//
3384	// * "monitoring.googleapis.com/kubernetes" - the Google Cloud
3385	// Monitoring
3386	// service with Kubernetes-native resource model in Stackdriver
3387	// * "monitoring.googleapis.com" - the Google Cloud Monitoring service
3388	// * "none" - no metrics will be exported from the cluster
3389	MonitoringService string `json:"monitoringService,omitempty"`
3390
3391	// Name: The name (project, location, cluster) of the cluster to set
3392	// monitoring.
3393	// Specified in the format 'projects/*/locations/*/clusters/*'.
3394	Name string `json:"name,omitempty"`
3395
3396	// ProjectId: Deprecated. The Google Developers Console [project ID or
3397	// project
3398	// number](https://support.google.com/cloud/answer/6158840).
3399	// This
3400	//  field has been deprecated and replaced by the name field.
3401	ProjectId string `json:"projectId,omitempty"`
3402
3403	// Zone: Deprecated. The name of the Google Compute
3404	// Engine
3405	// [zone](/compute/docs/zones#available) in which the
3406	// cluster
3407	// resides.
3408	// This field has been deprecated and replaced by the name field.
3409	Zone string `json:"zone,omitempty"`
3410
3411	// ForceSendFields is a list of field names (e.g. "ClusterId") to
3412	// unconditionally include in API requests. By default, fields with
3413	// empty values are omitted from API requests. However, any non-pointer,
3414	// non-interface field appearing in ForceSendFields will be sent to the
3415	// server regardless of whether the field is empty or not. This may be
3416	// used to include empty fields in Patch requests.
3417	ForceSendFields []string `json:"-"`
3418
3419	// NullFields is a list of field names (e.g. "ClusterId") to include in
3420	// API requests with the JSON null value. By default, fields with empty
3421	// values are omitted from API requests. However, any field with an
3422	// empty value appearing in NullFields will be sent to the server as
3423	// null. It is an error if a field in this list has a non-empty value.
3424	// This may be used to include null fields in Patch requests.
3425	NullFields []string `json:"-"`
3426}
3427
3428func (s *SetMonitoringServiceRequest) MarshalJSON() ([]byte, error) {
3429	type NoMethod SetMonitoringServiceRequest
3430	raw := NoMethod(*s)
3431	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3432}
3433
3434// SetNetworkPolicyRequest: SetNetworkPolicyRequest enables/disables
3435// network policy for a cluster.
3436type SetNetworkPolicyRequest struct {
3437	// ClusterId: Deprecated. The name of the cluster.
3438	// This field has been deprecated and replaced by the name field.
3439	ClusterId string `json:"clusterId,omitempty"`
3440
3441	// Name: The name (project, location, cluster id) of the cluster to set
3442	// networking
3443	// policy. Specified in the format 'projects/*/locations/*/clusters/*'.
3444	Name string `json:"name,omitempty"`
3445
3446	// NetworkPolicy: Configuration options for the NetworkPolicy feature.
3447	NetworkPolicy *NetworkPolicy `json:"networkPolicy,omitempty"`
3448
3449	// ProjectId: Deprecated. The Google Developers Console [project ID or
3450	// project
3451	// number](https://developers.google.com/console/help/new/#projec
3452	// tnumber).
3453	// This field has been deprecated and replaced by the name field.
3454	ProjectId string `json:"projectId,omitempty"`
3455
3456	// Zone: Deprecated. The name of the Google Compute
3457	// Engine
3458	// [zone](/compute/docs/zones#available) in which the
3459	// cluster
3460	// resides.
3461	// This field has been deprecated and replaced by the name field.
3462	Zone string `json:"zone,omitempty"`
3463
3464	// ForceSendFields is a list of field names (e.g. "ClusterId") to
3465	// unconditionally include in API requests. By default, fields with
3466	// empty values are omitted from API requests. However, any non-pointer,
3467	// non-interface field appearing in ForceSendFields will be sent to the
3468	// server regardless of whether the field is empty or not. This may be
3469	// used to include empty fields in Patch requests.
3470	ForceSendFields []string `json:"-"`
3471
3472	// NullFields is a list of field names (e.g. "ClusterId") to include in
3473	// API requests with the JSON null value. By default, fields with empty
3474	// values are omitted from API requests. However, any field with an
3475	// empty value appearing in NullFields will be sent to the server as
3476	// null. It is an error if a field in this list has a non-empty value.
3477	// This may be used to include null fields in Patch requests.
3478	NullFields []string `json:"-"`
3479}
3480
3481func (s *SetNetworkPolicyRequest) MarshalJSON() ([]byte, error) {
3482	type NoMethod SetNetworkPolicyRequest
3483	raw := NoMethod(*s)
3484	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3485}
3486
3487// SetNodePoolAutoscalingRequest: SetNodePoolAutoscalingRequest sets the
3488// autoscaler settings of a node pool.
3489type SetNodePoolAutoscalingRequest struct {
3490	// Autoscaling: Autoscaling configuration for the node pool.
3491	Autoscaling *NodePoolAutoscaling `json:"autoscaling,omitempty"`
3492
3493	// ClusterId: Deprecated. The name of the cluster to upgrade.
3494	// This field has been deprecated and replaced by the name field.
3495	ClusterId string `json:"clusterId,omitempty"`
3496
3497	// Name: The name (project, location, cluster, node pool) of the node
3498	// pool to set
3499	// autoscaler settings. Specified in the
3500	// format
3501	// 'projects/*/locations/*/clusters/*/nodePools/*'.
3502	Name string `json:"name,omitempty"`
3503
3504	// NodePoolId: Deprecated. The name of the node pool to upgrade.
3505	// This field has been deprecated and replaced by the name field.
3506	NodePoolId string `json:"nodePoolId,omitempty"`
3507
3508	// ProjectId: Deprecated. The Google Developers Console [project ID or
3509	// project
3510	// number](https://support.google.com/cloud/answer/6158840).
3511	// This
3512	//  field has been deprecated and replaced by the name field.
3513	ProjectId string `json:"projectId,omitempty"`
3514
3515	// Zone: Deprecated. The name of the Google Compute
3516	// Engine
3517	// [zone](/compute/docs/zones#available) in which the
3518	// cluster
3519	// resides.
3520	// This field has been deprecated and replaced by the name field.
3521	Zone string `json:"zone,omitempty"`
3522
3523	// ForceSendFields is a list of field names (e.g. "Autoscaling") to
3524	// unconditionally include in API requests. By default, fields with
3525	// empty values are omitted from API requests. However, any non-pointer,
3526	// non-interface field appearing in ForceSendFields will be sent to the
3527	// server regardless of whether the field is empty or not. This may be
3528	// used to include empty fields in Patch requests.
3529	ForceSendFields []string `json:"-"`
3530
3531	// NullFields is a list of field names (e.g. "Autoscaling") to include
3532	// in API requests with the JSON null value. By default, fields with
3533	// empty values are omitted from API requests. However, any field with
3534	// an empty value appearing in NullFields will be sent to the server as
3535	// null. It is an error if a field in this list has a non-empty value.
3536	// This may be used to include null fields in Patch requests.
3537	NullFields []string `json:"-"`
3538}
3539
3540func (s *SetNodePoolAutoscalingRequest) MarshalJSON() ([]byte, error) {
3541	type NoMethod SetNodePoolAutoscalingRequest
3542	raw := NoMethod(*s)
3543	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3544}
3545
3546// SetNodePoolManagementRequest: SetNodePoolManagementRequest sets the
3547// node management properties of a node
3548// pool.
3549type SetNodePoolManagementRequest struct {
3550	// ClusterId: Deprecated. The name of the cluster to update.
3551	// This field has been deprecated and replaced by the name field.
3552	ClusterId string `json:"clusterId,omitempty"`
3553
3554	// Management: NodeManagement configuration for the node pool.
3555	Management *NodeManagement `json:"management,omitempty"`
3556
3557	// Name: The name (project, location, cluster, node pool id) of the node
3558	// pool to set
3559	// management properties. Specified in the
3560	// format
3561	// 'projects/*/locations/*/clusters/*/nodePools/*'.
3562	Name string `json:"name,omitempty"`
3563
3564	// NodePoolId: Deprecated. The name of the node pool to update.
3565	// This field has been deprecated and replaced by the name field.
3566	NodePoolId string `json:"nodePoolId,omitempty"`
3567
3568	// ProjectId: Deprecated. The Google Developers Console [project ID or
3569	// project
3570	// number](https://support.google.com/cloud/answer/6158840).
3571	// This
3572	//  field has been deprecated and replaced by the name field.
3573	ProjectId string `json:"projectId,omitempty"`
3574
3575	// Zone: Deprecated. The name of the Google Compute
3576	// Engine
3577	// [zone](/compute/docs/zones#available) in which the
3578	// cluster
3579	// resides.
3580	// This field has been deprecated and replaced by the name field.
3581	Zone string `json:"zone,omitempty"`
3582
3583	// ForceSendFields is a list of field names (e.g. "ClusterId") to
3584	// unconditionally include in API requests. By default, fields with
3585	// empty values are omitted from API requests. However, any non-pointer,
3586	// non-interface field appearing in ForceSendFields will be sent to the
3587	// server regardless of whether the field is empty or not. This may be
3588	// used to include empty fields in Patch requests.
3589	ForceSendFields []string `json:"-"`
3590
3591	// NullFields is a list of field names (e.g. "ClusterId") to include in
3592	// API requests with the JSON null value. By default, fields with empty
3593	// values are omitted from API requests. However, any field with an
3594	// empty value appearing in NullFields will be sent to the server as
3595	// null. It is an error if a field in this list has a non-empty value.
3596	// This may be used to include null fields in Patch requests.
3597	NullFields []string `json:"-"`
3598}
3599
3600func (s *SetNodePoolManagementRequest) MarshalJSON() ([]byte, error) {
3601	type NoMethod SetNodePoolManagementRequest
3602	raw := NoMethod(*s)
3603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3604}
3605
3606// SetNodePoolSizeRequest: SetNodePoolSizeRequest sets the size a
3607// node
3608// pool.
3609type SetNodePoolSizeRequest struct {
3610	// ClusterId: Deprecated. The name of the cluster to update.
3611	// This field has been deprecated and replaced by the name field.
3612	ClusterId string `json:"clusterId,omitempty"`
3613
3614	// Name: The name (project, location, cluster, node pool id) of the node
3615	// pool to set
3616	// size.
3617	// Specified in the format
3618	// 'projects/*/locations/*/clusters/*/nodePools/*'.
3619	Name string `json:"name,omitempty"`
3620
3621	// NodeCount: The desired node count for the pool.
3622	NodeCount int64 `json:"nodeCount,omitempty"`
3623
3624	// NodePoolId: Deprecated. The name of the node pool to update.
3625	// This field has been deprecated and replaced by the name field.
3626	NodePoolId string `json:"nodePoolId,omitempty"`
3627
3628	// ProjectId: Deprecated. The Google Developers Console [project ID or
3629	// project
3630	// number](https://support.google.com/cloud/answer/6158840).
3631	// This
3632	//  field has been deprecated and replaced by the name field.
3633	ProjectId string `json:"projectId,omitempty"`
3634
3635	// Zone: Deprecated. The name of the Google Compute
3636	// Engine
3637	// [zone](/compute/docs/zones#available) in which the
3638	// cluster
3639	// resides.
3640	// This field has been deprecated and replaced by the name field.
3641	Zone string `json:"zone,omitempty"`
3642
3643	// ForceSendFields is a list of field names (e.g. "ClusterId") to
3644	// unconditionally include in API requests. By default, fields with
3645	// empty values are omitted from API requests. However, any non-pointer,
3646	// non-interface field appearing in ForceSendFields will be sent to the
3647	// server regardless of whether the field is empty or not. This may be
3648	// used to include empty fields in Patch requests.
3649	ForceSendFields []string `json:"-"`
3650
3651	// NullFields is a list of field names (e.g. "ClusterId") to include in
3652	// API requests with the JSON null value. By default, fields with empty
3653	// values are omitted from API requests. However, any field with an
3654	// empty value appearing in NullFields will be sent to the server as
3655	// null. It is an error if a field in this list has a non-empty value.
3656	// This may be used to include null fields in Patch requests.
3657	NullFields []string `json:"-"`
3658}
3659
3660func (s *SetNodePoolSizeRequest) MarshalJSON() ([]byte, error) {
3661	type NoMethod SetNodePoolSizeRequest
3662	raw := NoMethod(*s)
3663	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3664}
3665
3666// StartIPRotationRequest: StartIPRotationRequest creates a new IP for
3667// the cluster and then performs
3668// a node upgrade on each node pool to point to the new IP.
3669type StartIPRotationRequest struct {
3670	// ClusterId: Deprecated. The name of the cluster.
3671	// This field has been deprecated and replaced by the name field.
3672	ClusterId string `json:"clusterId,omitempty"`
3673
3674	// Name: The name (project, location, cluster id) of the cluster to
3675	// start IP
3676	// rotation. Specified in the format
3677	// 'projects/*/locations/*/clusters/*'.
3678	Name string `json:"name,omitempty"`
3679
3680	// ProjectId: Deprecated. The Google Developers Console [project ID or
3681	// project
3682	// number](https://developers.google.com/console/help/new/#projec
3683	// tnumber).
3684	// This field has been deprecated and replaced by the name field.
3685	ProjectId string `json:"projectId,omitempty"`
3686
3687	// RotateCredentials: Whether to rotate credentials during IP rotation.
3688	RotateCredentials bool `json:"rotateCredentials,omitempty"`
3689
3690	// Zone: Deprecated. The name of the Google Compute
3691	// Engine
3692	// [zone](/compute/docs/zones#available) in which the
3693	// cluster
3694	// resides.
3695	// This field has been deprecated and replaced by the name field.
3696	Zone string `json:"zone,omitempty"`
3697
3698	// ForceSendFields is a list of field names (e.g. "ClusterId") to
3699	// unconditionally include in API requests. By default, fields with
3700	// empty values are omitted from API requests. However, any non-pointer,
3701	// non-interface field appearing in ForceSendFields will be sent to the
3702	// server regardless of whether the field is empty or not. This may be
3703	// used to include empty fields in Patch requests.
3704	ForceSendFields []string `json:"-"`
3705
3706	// NullFields is a list of field names (e.g. "ClusterId") to include in
3707	// API requests with the JSON null value. By default, fields with empty
3708	// values are omitted from API requests. However, any field with an
3709	// empty value appearing in NullFields will be sent to the server as
3710	// null. It is an error if a field in this list has a non-empty value.
3711	// This may be used to include null fields in Patch requests.
3712	NullFields []string `json:"-"`
3713}
3714
3715func (s *StartIPRotationRequest) MarshalJSON() ([]byte, error) {
3716	type NoMethod StartIPRotationRequest
3717	raw := NoMethod(*s)
3718	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3719}
3720
3721// StatusCondition: StatusCondition describes why a cluster or a node
3722// pool has a certain status
3723// (e.g., ERROR or DEGRADED).
3724type StatusCondition struct {
3725	// Code: Machine-friendly representation of the condition
3726	//
3727	// Possible values:
3728	//   "UNKNOWN" - UNKNOWN indicates a generic condition.
3729	//   "GCE_STOCKOUT" - GCE_STOCKOUT indicates a Google Compute Engine
3730	// stockout.
3731	//   "GKE_SERVICE_ACCOUNT_DELETED" - GKE_SERVICE_ACCOUNT_DELETED
3732	// indicates that the user deleted their robot
3733	// service account.
3734	//   "GCE_QUOTA_EXCEEDED" - Google Compute Engine quota was exceeded.
3735	//   "SET_BY_OPERATOR" - Cluster state was manually changed by an SRE
3736	// due to a system logic error.
3737	// More codes TBA
3738	Code string `json:"code,omitempty"`
3739
3740	// Message: Human-friendly representation of the condition
3741	Message string `json:"message,omitempty"`
3742
3743	// ForceSendFields is a list of field names (e.g. "Code") to
3744	// unconditionally include in API requests. By default, fields with
3745	// empty values are omitted from API requests. However, any non-pointer,
3746	// non-interface field appearing in ForceSendFields will be sent to the
3747	// server regardless of whether the field is empty or not. This may be
3748	// used to include empty fields in Patch requests.
3749	ForceSendFields []string `json:"-"`
3750
3751	// NullFields is a list of field names (e.g. "Code") to include in API
3752	// requests with the JSON null value. By default, fields with empty
3753	// values are omitted from API requests. However, any field with an
3754	// empty value appearing in NullFields will be sent to the server as
3755	// null. It is an error if a field in this list has a non-empty value.
3756	// This may be used to include null fields in Patch requests.
3757	NullFields []string `json:"-"`
3758}
3759
3760func (s *StatusCondition) MarshalJSON() ([]byte, error) {
3761	type NoMethod StatusCondition
3762	raw := NoMethod(*s)
3763	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3764}
3765
3766// UpdateClusterRequest: UpdateClusterRequest updates the settings of a
3767// cluster.
3768type UpdateClusterRequest struct {
3769	// ClusterId: Deprecated. The name of the cluster to upgrade.
3770	// This field has been deprecated and replaced by the name field.
3771	ClusterId string `json:"clusterId,omitempty"`
3772
3773	// Name: The name (project, location, cluster) of the cluster to
3774	// update.
3775	// Specified in the format 'projects/*/locations/*/clusters/*'.
3776	Name string `json:"name,omitempty"`
3777
3778	// ProjectId: Deprecated. The Google Developers Console [project ID or
3779	// project
3780	// number](https://support.google.com/cloud/answer/6158840).
3781	// This
3782	//  field has been deprecated and replaced by the name field.
3783	ProjectId string `json:"projectId,omitempty"`
3784
3785	// Update: A description of the update.
3786	Update *ClusterUpdate `json:"update,omitempty"`
3787
3788	// Zone: Deprecated. The name of the Google Compute
3789	// Engine
3790	// [zone](/compute/docs/zones#available) in which the
3791	// cluster
3792	// resides.
3793	// This field has been deprecated and replaced by the name field.
3794	Zone string `json:"zone,omitempty"`
3795
3796	// ForceSendFields is a list of field names (e.g. "ClusterId") to
3797	// unconditionally include in API requests. By default, fields with
3798	// empty values are omitted from API requests. However, any non-pointer,
3799	// non-interface field appearing in ForceSendFields will be sent to the
3800	// server regardless of whether the field is empty or not. This may be
3801	// used to include empty fields in Patch requests.
3802	ForceSendFields []string `json:"-"`
3803
3804	// NullFields is a list of field names (e.g. "ClusterId") to include in
3805	// API requests with the JSON null value. By default, fields with empty
3806	// values are omitted from API requests. However, any field with an
3807	// empty value appearing in NullFields will be sent to the server as
3808	// null. It is an error if a field in this list has a non-empty value.
3809	// This may be used to include null fields in Patch requests.
3810	NullFields []string `json:"-"`
3811}
3812
3813func (s *UpdateClusterRequest) MarshalJSON() ([]byte, error) {
3814	type NoMethod UpdateClusterRequest
3815	raw := NoMethod(*s)
3816	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3817}
3818
3819// UpdateMasterRequest: UpdateMasterRequest updates the master of the
3820// cluster.
3821type UpdateMasterRequest struct {
3822	// ClusterId: Deprecated. The name of the cluster to upgrade.
3823	// This field has been deprecated and replaced by the name field.
3824	ClusterId string `json:"clusterId,omitempty"`
3825
3826	// MasterVersion: The Kubernetes version to change the master to.
3827	//
3828	// Users may specify either explicit versions offered by Kubernetes
3829	// Engine or
3830	// version aliases, which have the following behavior:
3831	//
3832	// - "latest": picks the highest valid Kubernetes version
3833	// - "1.X": picks the highest valid patch+gke.N patch in the 1.X
3834	// version
3835	// - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
3836	// - "1.X.Y-gke.N": picks an explicit Kubernetes version
3837	// - "-": picks the default Kubernetes version
3838	MasterVersion string `json:"masterVersion,omitempty"`
3839
3840	// Name: The name (project, location, cluster) of the cluster to
3841	// update.
3842	// Specified in the format 'projects/*/locations/*/clusters/*'.
3843	Name string `json:"name,omitempty"`
3844
3845	// ProjectId: Deprecated. The Google Developers Console [project ID or
3846	// project
3847	// number](https://support.google.com/cloud/answer/6158840).
3848	// This
3849	//  field has been deprecated and replaced by the name field.
3850	ProjectId string `json:"projectId,omitempty"`
3851
3852	// Zone: Deprecated. The name of the Google Compute
3853	// Engine
3854	// [zone](/compute/docs/zones#available) in which the
3855	// cluster
3856	// resides.
3857	// This field has been deprecated and replaced by the name field.
3858	Zone string `json:"zone,omitempty"`
3859
3860	// ForceSendFields is a list of field names (e.g. "ClusterId") to
3861	// unconditionally include in API requests. By default, fields with
3862	// empty values are omitted from API requests. However, any non-pointer,
3863	// non-interface field appearing in ForceSendFields will be sent to the
3864	// server regardless of whether the field is empty or not. This may be
3865	// used to include empty fields in Patch requests.
3866	ForceSendFields []string `json:"-"`
3867
3868	// NullFields is a list of field names (e.g. "ClusterId") to include in
3869	// API requests with the JSON null value. By default, fields with empty
3870	// values are omitted from API requests. However, any field with an
3871	// empty value appearing in NullFields will be sent to the server as
3872	// null. It is an error if a field in this list has a non-empty value.
3873	// This may be used to include null fields in Patch requests.
3874	NullFields []string `json:"-"`
3875}
3876
3877func (s *UpdateMasterRequest) MarshalJSON() ([]byte, error) {
3878	type NoMethod UpdateMasterRequest
3879	raw := NoMethod(*s)
3880	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3881}
3882
3883// UpdateNodePoolRequest: UpdateNodePoolRequests update a node pool's
3884// image and/or version.
3885type UpdateNodePoolRequest struct {
3886	// ClusterId: Deprecated. The name of the cluster to upgrade.
3887	// This field has been deprecated and replaced by the name field.
3888	ClusterId string `json:"clusterId,omitempty"`
3889
3890	// ImageType: The desired image type for the node pool.
3891	ImageType string `json:"imageType,omitempty"`
3892
3893	// Name: The name (project, location, cluster, node pool) of the node
3894	// pool to
3895	// update. Specified in the
3896	// format
3897	// 'projects/*/locations/*/clusters/*/nodePools/*'.
3898	Name string `json:"name,omitempty"`
3899
3900	// NodePoolId: Deprecated. The name of the node pool to upgrade.
3901	// This field has been deprecated and replaced by the name field.
3902	NodePoolId string `json:"nodePoolId,omitempty"`
3903
3904	// NodeVersion: The Kubernetes version to change the nodes to (typically
3905	// an
3906	// upgrade).
3907	//
3908	// Users may specify either explicit versions offered by Kubernetes
3909	// Engine or
3910	// version aliases, which have the following behavior:
3911	//
3912	// - "latest": picks the highest valid Kubernetes version
3913	// - "1.X": picks the highest valid patch+gke.N patch in the 1.X
3914	// version
3915	// - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
3916	// - "1.X.Y-gke.N": picks an explicit Kubernetes version
3917	// - "-": picks the Kubernetes master version
3918	NodeVersion string `json:"nodeVersion,omitempty"`
3919
3920	// ProjectId: Deprecated. The Google Developers Console [project ID or
3921	// project
3922	// number](https://support.google.com/cloud/answer/6158840).
3923	// This
3924	//  field has been deprecated and replaced by the name field.
3925	ProjectId string `json:"projectId,omitempty"`
3926
3927	// Zone: Deprecated. The name of the Google Compute
3928	// Engine
3929	// [zone](/compute/docs/zones#available) in which the
3930	// cluster
3931	// resides.
3932	// This field has been deprecated and replaced by the name field.
3933	Zone string `json:"zone,omitempty"`
3934
3935	// ForceSendFields is a list of field names (e.g. "ClusterId") to
3936	// unconditionally include in API requests. By default, fields with
3937	// empty values are omitted from API requests. However, any non-pointer,
3938	// non-interface field appearing in ForceSendFields will be sent to the
3939	// server regardless of whether the field is empty or not. This may be
3940	// used to include empty fields in Patch requests.
3941	ForceSendFields []string `json:"-"`
3942
3943	// NullFields is a list of field names (e.g. "ClusterId") to include in
3944	// API requests with the JSON null value. By default, fields with empty
3945	// values are omitted from API requests. However, any field with an
3946	// empty value appearing in NullFields will be sent to the server as
3947	// null. It is an error if a field in this list has a non-empty value.
3948	// This may be used to include null fields in Patch requests.
3949	NullFields []string `json:"-"`
3950}
3951
3952func (s *UpdateNodePoolRequest) MarshalJSON() ([]byte, error) {
3953	type NoMethod UpdateNodePoolRequest
3954	raw := NoMethod(*s)
3955	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3956}
3957
3958// UsableSubnetwork: UsableSubnetwork resource returns the subnetwork
3959// name, its associated network
3960// and the primary CIDR range.
3961type UsableSubnetwork struct {
3962	// IpCidrRange: The range of internal addresses that are owned by this
3963	// subnetwork.
3964	IpCidrRange string `json:"ipCidrRange,omitempty"`
3965
3966	// Network: Network Name.
3967	// Example: projects/my-project/global/networks/my-network
3968	Network string `json:"network,omitempty"`
3969
3970	// SecondaryIpRanges: Secondary IP ranges.
3971	SecondaryIpRanges []*UsableSubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
3972
3973	// StatusMessage: A human readable status message representing the
3974	// reasons for cases where
3975	// the caller cannot use the secondary ranges under the subnet. For
3976	// example if
3977	// the secondary_ip_ranges is empty due to a permission issue, an
3978	// insufficient
3979	// permission message will be given by status_message.
3980	StatusMessage string `json:"statusMessage,omitempty"`
3981
3982	// Subnetwork: Subnetwork Name.
3983	// Example:
3984	// projects/my-project/regions/us-central1/subnetworks/my-subnet
3985	Subnetwork string `json:"subnetwork,omitempty"`
3986
3987	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
3988	// unconditionally include in API requests. By default, fields with
3989	// empty values are omitted from API requests. However, any non-pointer,
3990	// non-interface field appearing in ForceSendFields will be sent to the
3991	// server regardless of whether the field is empty or not. This may be
3992	// used to include empty fields in Patch requests.
3993	ForceSendFields []string `json:"-"`
3994
3995	// NullFields is a list of field names (e.g. "IpCidrRange") to include
3996	// in API requests with the JSON null value. By default, fields with
3997	// empty values are omitted from API requests. However, any field with
3998	// an empty value appearing in NullFields will be sent to the server as
3999	// null. It is an error if a field in this list has a non-empty value.
4000	// This may be used to include null fields in Patch requests.
4001	NullFields []string `json:"-"`
4002}
4003
4004func (s *UsableSubnetwork) MarshalJSON() ([]byte, error) {
4005	type NoMethod UsableSubnetwork
4006	raw := NoMethod(*s)
4007	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4008}
4009
4010// UsableSubnetworkSecondaryRange: Secondary IP range of a usable
4011// subnetwork.
4012type UsableSubnetworkSecondaryRange struct {
4013	// IpCidrRange: The range of IP addresses belonging to this subnetwork
4014	// secondary range.
4015	IpCidrRange string `json:"ipCidrRange,omitempty"`
4016
4017	// RangeName: The name associated with this subnetwork secondary range,
4018	// used when adding
4019	// an alias IP range to a VM instance.
4020	RangeName string `json:"rangeName,omitempty"`
4021
4022	// Status: This field is to determine the status of the secondary range
4023	// programmably.
4024	//
4025	// Possible values:
4026	//   "UNKNOWN" - UNKNOWN is the zero value of the Status enum. It's not
4027	// a valid status.
4028	//   "UNUSED" - UNUSED denotes that this range is unclaimed by any
4029	// cluster.
4030	//   "IN_USE_SERVICE" - IN_USE_SERVICE denotes that this range is
4031	// claimed by a cluster for
4032	// services. It cannot be used for other clusters.
4033	//   "IN_USE_SHAREABLE_POD" - IN_USE_SHAREABLE_POD denotes this range
4034	// was created by the network admin
4035	// and is currently claimed by a cluster for pods. It can only be used
4036	// by
4037	// other clusters as a pod range.
4038	//   "IN_USE_MANAGED_POD" - IN_USE_MANAGED_POD denotes this range was
4039	// created by GKE and is claimed
4040	// for pods. It cannot be used for other clusters.
4041	Status string `json:"status,omitempty"`
4042
4043	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
4044	// unconditionally include in API requests. By default, fields with
4045	// empty values are omitted from API requests. However, any non-pointer,
4046	// non-interface field appearing in ForceSendFields will be sent to the
4047	// server regardless of whether the field is empty or not. This may be
4048	// used to include empty fields in Patch requests.
4049	ForceSendFields []string `json:"-"`
4050
4051	// NullFields is a list of field names (e.g. "IpCidrRange") to include
4052	// in API requests with the JSON null value. By default, fields with
4053	// empty values are omitted from API requests. However, any field with
4054	// an empty value appearing in NullFields will be sent to the server as
4055	// null. It is an error if a field in this list has a non-empty value.
4056	// This may be used to include null fields in Patch requests.
4057	NullFields []string `json:"-"`
4058}
4059
4060func (s *UsableSubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
4061	type NoMethod UsableSubnetworkSecondaryRange
4062	raw := NoMethod(*s)
4063	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4064}
4065
4066// method id "container.projects.aggregated.usableSubnetworks.list":
4067
4068type ProjectsAggregatedUsableSubnetworksListCall struct {
4069	s            *Service
4070	parent       string
4071	urlParams_   gensupport.URLParams
4072	ifNoneMatch_ string
4073	ctx_         context.Context
4074	header_      http.Header
4075}
4076
4077// List: Lists subnetworks that are usable for creating clusters in a
4078// project.
4079func (r *ProjectsAggregatedUsableSubnetworksService) List(parent string) *ProjectsAggregatedUsableSubnetworksListCall {
4080	c := &ProjectsAggregatedUsableSubnetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4081	c.parent = parent
4082	return c
4083}
4084
4085// Filter sets the optional parameter "filter": Filtering currently only
4086// supports equality on the networkProjectId and must
4087// be in the form: "networkProjectId=[PROJECTID]", where
4088// `networkProjectId`
4089// is the project which owns the listed subnetworks. This defaults to
4090// the
4091// parent project ID.
4092func (c *ProjectsAggregatedUsableSubnetworksListCall) Filter(filter string) *ProjectsAggregatedUsableSubnetworksListCall {
4093	c.urlParams_.Set("filter", filter)
4094	return c
4095}
4096
4097// PageSize sets the optional parameter "pageSize": The max number of
4098// results per page that should be returned. If the number
4099// of available results is larger than `page_size`, a `next_page_token`
4100// is
4101// returned which can be used to get the next page of results in
4102// subsequent
4103// requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
4104func (c *ProjectsAggregatedUsableSubnetworksListCall) PageSize(pageSize int64) *ProjectsAggregatedUsableSubnetworksListCall {
4105	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
4106	return c
4107}
4108
4109// PageToken sets the optional parameter "pageToken": Specifies a page
4110// token to use. Set this to the nextPageToken returned by
4111// previous list requests to get the next page of results.
4112func (c *ProjectsAggregatedUsableSubnetworksListCall) PageToken(pageToken string) *ProjectsAggregatedUsableSubnetworksListCall {
4113	c.urlParams_.Set("pageToken", pageToken)
4114	return c
4115}
4116
4117// Fields allows partial responses to be retrieved. See
4118// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4119// for more information.
4120func (c *ProjectsAggregatedUsableSubnetworksListCall) Fields(s ...googleapi.Field) *ProjectsAggregatedUsableSubnetworksListCall {
4121	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4122	return c
4123}
4124
4125// IfNoneMatch sets the optional parameter which makes the operation
4126// fail if the object's ETag matches the given value. This is useful for
4127// getting updates only after the object has changed since the last
4128// request. Use googleapi.IsNotModified to check whether the response
4129// error from Do is the result of In-None-Match.
4130func (c *ProjectsAggregatedUsableSubnetworksListCall) IfNoneMatch(entityTag string) *ProjectsAggregatedUsableSubnetworksListCall {
4131	c.ifNoneMatch_ = entityTag
4132	return c
4133}
4134
4135// Context sets the context to be used in this call's Do method. Any
4136// pending HTTP request will be aborted if the provided context is
4137// canceled.
4138func (c *ProjectsAggregatedUsableSubnetworksListCall) Context(ctx context.Context) *ProjectsAggregatedUsableSubnetworksListCall {
4139	c.ctx_ = ctx
4140	return c
4141}
4142
4143// Header returns an http.Header that can be modified by the caller to
4144// add HTTP headers to the request.
4145func (c *ProjectsAggregatedUsableSubnetworksListCall) Header() http.Header {
4146	if c.header_ == nil {
4147		c.header_ = make(http.Header)
4148	}
4149	return c.header_
4150}
4151
4152func (c *ProjectsAggregatedUsableSubnetworksListCall) doRequest(alt string) (*http.Response, error) {
4153	reqHeaders := make(http.Header)
4154	for k, v := range c.header_ {
4155		reqHeaders[k] = v
4156	}
4157	reqHeaders.Set("User-Agent", c.s.userAgent())
4158	if c.ifNoneMatch_ != "" {
4159		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4160	}
4161	var body io.Reader = nil
4162	c.urlParams_.Set("alt", alt)
4163	c.urlParams_.Set("prettyPrint", "false")
4164	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/aggregated/usableSubnetworks")
4165	urls += "?" + c.urlParams_.Encode()
4166	req, err := http.NewRequest("GET", urls, body)
4167	if err != nil {
4168		return nil, err
4169	}
4170	req.Header = reqHeaders
4171	googleapi.Expand(req.URL, map[string]string{
4172		"parent": c.parent,
4173	})
4174	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4175}
4176
4177// Do executes the "container.projects.aggregated.usableSubnetworks.list" call.
4178// Exactly one of *ListUsableSubnetworksResponse or error will be
4179// non-nil. Any non-2xx status code is an error. Response headers are in
4180// either *ListUsableSubnetworksResponse.ServerResponse.Header or (if a
4181// response was returned at all) in error.(*googleapi.Error).Header. Use
4182// googleapi.IsNotModified to check whether the returned error was
4183// because http.StatusNotModified was returned.
4184func (c *ProjectsAggregatedUsableSubnetworksListCall) Do(opts ...googleapi.CallOption) (*ListUsableSubnetworksResponse, error) {
4185	gensupport.SetOptions(c.urlParams_, opts...)
4186	res, err := c.doRequest("json")
4187	if res != nil && res.StatusCode == http.StatusNotModified {
4188		if res.Body != nil {
4189			res.Body.Close()
4190		}
4191		return nil, &googleapi.Error{
4192			Code:   res.StatusCode,
4193			Header: res.Header,
4194		}
4195	}
4196	if err != nil {
4197		return nil, err
4198	}
4199	defer googleapi.CloseBody(res)
4200	if err := googleapi.CheckResponse(res); err != nil {
4201		return nil, err
4202	}
4203	ret := &ListUsableSubnetworksResponse{
4204		ServerResponse: googleapi.ServerResponse{
4205			Header:         res.Header,
4206			HTTPStatusCode: res.StatusCode,
4207		},
4208	}
4209	target := &ret
4210	if err := gensupport.DecodeResponse(target, res); err != nil {
4211		return nil, err
4212	}
4213	return ret, nil
4214	// {
4215	//   "description": "Lists subnetworks that are usable for creating clusters in a project.",
4216	//   "flatPath": "v1/projects/{projectsId}/aggregated/usableSubnetworks",
4217	//   "httpMethod": "GET",
4218	//   "id": "container.projects.aggregated.usableSubnetworks.list",
4219	//   "parameterOrder": [
4220	//     "parent"
4221	//   ],
4222	//   "parameters": {
4223	//     "filter": {
4224	//       "description": "Filtering currently only supports equality on the networkProjectId and must\nbe in the form: \"networkProjectId=[PROJECTID]\", where `networkProjectId`\nis the project which owns the listed subnetworks. This defaults to the\nparent project ID.",
4225	//       "location": "query",
4226	//       "type": "string"
4227	//     },
4228	//     "pageSize": {
4229	//       "description": "The max number of results per page that should be returned. If the number\nof available results is larger than `page_size`, a `next_page_token` is\nreturned which can be used to get the next page of results in subsequent\nrequests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
4230	//       "format": "int32",
4231	//       "location": "query",
4232	//       "type": "integer"
4233	//     },
4234	//     "pageToken": {
4235	//       "description": "Specifies a page token to use. Set this to the nextPageToken returned by\nprevious list requests to get the next page of results.",
4236	//       "location": "query",
4237	//       "type": "string"
4238	//     },
4239	//     "parent": {
4240	//       "description": "The parent project where subnetworks are usable.\nSpecified in the format 'projects/*'.",
4241	//       "location": "path",
4242	//       "pattern": "^projects/[^/]+$",
4243	//       "required": true,
4244	//       "type": "string"
4245	//     }
4246	//   },
4247	//   "path": "v1/{+parent}/aggregated/usableSubnetworks",
4248	//   "response": {
4249	//     "$ref": "ListUsableSubnetworksResponse"
4250	//   },
4251	//   "scopes": [
4252	//     "https://www.googleapis.com/auth/cloud-platform"
4253	//   ]
4254	// }
4255
4256}
4257
4258// Pages invokes f for each page of results.
4259// A non-nil error returned from f will halt the iteration.
4260// The provided context supersedes any context provided to the Context method.
4261func (c *ProjectsAggregatedUsableSubnetworksListCall) Pages(ctx context.Context, f func(*ListUsableSubnetworksResponse) error) error {
4262	c.ctx_ = ctx
4263	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
4264	for {
4265		x, err := c.Do()
4266		if err != nil {
4267			return err
4268		}
4269		if err := f(x); err != nil {
4270			return err
4271		}
4272		if x.NextPageToken == "" {
4273			return nil
4274		}
4275		c.PageToken(x.NextPageToken)
4276	}
4277}
4278
4279// method id "container.projects.locations.getServerConfig":
4280
4281type ProjectsLocationsGetServerConfigCall struct {
4282	s            *Service
4283	name         string
4284	urlParams_   gensupport.URLParams
4285	ifNoneMatch_ string
4286	ctx_         context.Context
4287	header_      http.Header
4288}
4289
4290// GetServerConfig: Returns configuration info about the Google
4291// Kubernetes Engine service.
4292func (r *ProjectsLocationsService) GetServerConfig(name string) *ProjectsLocationsGetServerConfigCall {
4293	c := &ProjectsLocationsGetServerConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4294	c.name = name
4295	return c
4296}
4297
4298// ProjectId sets the optional parameter "projectId": Deprecated. The
4299// Google Developers Console [project ID or
4300// project
4301// number](https://support.google.com/cloud/answer/6158840).
4302// This
4303//  field has been deprecated and replaced by the name field.
4304func (c *ProjectsLocationsGetServerConfigCall) ProjectId(projectId string) *ProjectsLocationsGetServerConfigCall {
4305	c.urlParams_.Set("projectId", projectId)
4306	return c
4307}
4308
4309// Zone sets the optional parameter "zone": Deprecated. The name of the
4310// Google Compute Engine
4311// [zone](/compute/docs/zones#available) to return operations for.
4312// This field has been deprecated and replaced by the name field.
4313func (c *ProjectsLocationsGetServerConfigCall) Zone(zone string) *ProjectsLocationsGetServerConfigCall {
4314	c.urlParams_.Set("zone", zone)
4315	return c
4316}
4317
4318// Fields allows partial responses to be retrieved. See
4319// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4320// for more information.
4321func (c *ProjectsLocationsGetServerConfigCall) Fields(s ...googleapi.Field) *ProjectsLocationsGetServerConfigCall {
4322	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4323	return c
4324}
4325
4326// IfNoneMatch sets the optional parameter which makes the operation
4327// fail if the object's ETag matches the given value. This is useful for
4328// getting updates only after the object has changed since the last
4329// request. Use googleapi.IsNotModified to check whether the response
4330// error from Do is the result of In-None-Match.
4331func (c *ProjectsLocationsGetServerConfigCall) IfNoneMatch(entityTag string) *ProjectsLocationsGetServerConfigCall {
4332	c.ifNoneMatch_ = entityTag
4333	return c
4334}
4335
4336// Context sets the context to be used in this call's Do method. Any
4337// pending HTTP request will be aborted if the provided context is
4338// canceled.
4339func (c *ProjectsLocationsGetServerConfigCall) Context(ctx context.Context) *ProjectsLocationsGetServerConfigCall {
4340	c.ctx_ = ctx
4341	return c
4342}
4343
4344// Header returns an http.Header that can be modified by the caller to
4345// add HTTP headers to the request.
4346func (c *ProjectsLocationsGetServerConfigCall) Header() http.Header {
4347	if c.header_ == nil {
4348		c.header_ = make(http.Header)
4349	}
4350	return c.header_
4351}
4352
4353func (c *ProjectsLocationsGetServerConfigCall) doRequest(alt string) (*http.Response, error) {
4354	reqHeaders := make(http.Header)
4355	for k, v := range c.header_ {
4356		reqHeaders[k] = v
4357	}
4358	reqHeaders.Set("User-Agent", c.s.userAgent())
4359	if c.ifNoneMatch_ != "" {
4360		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4361	}
4362	var body io.Reader = nil
4363	c.urlParams_.Set("alt", alt)
4364	c.urlParams_.Set("prettyPrint", "false")
4365	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/serverConfig")
4366	urls += "?" + c.urlParams_.Encode()
4367	req, err := http.NewRequest("GET", urls, body)
4368	if err != nil {
4369		return nil, err
4370	}
4371	req.Header = reqHeaders
4372	googleapi.Expand(req.URL, map[string]string{
4373		"name": c.name,
4374	})
4375	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4376}
4377
4378// Do executes the "container.projects.locations.getServerConfig" call.
4379// Exactly one of *ServerConfig or error will be non-nil. Any non-2xx
4380// status code is an error. Response headers are in either
4381// *ServerConfig.ServerResponse.Header or (if a response was returned at
4382// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4383// to check whether the returned error was because
4384// http.StatusNotModified was returned.
4385func (c *ProjectsLocationsGetServerConfigCall) Do(opts ...googleapi.CallOption) (*ServerConfig, error) {
4386	gensupport.SetOptions(c.urlParams_, opts...)
4387	res, err := c.doRequest("json")
4388	if res != nil && res.StatusCode == http.StatusNotModified {
4389		if res.Body != nil {
4390			res.Body.Close()
4391		}
4392		return nil, &googleapi.Error{
4393			Code:   res.StatusCode,
4394			Header: res.Header,
4395		}
4396	}
4397	if err != nil {
4398		return nil, err
4399	}
4400	defer googleapi.CloseBody(res)
4401	if err := googleapi.CheckResponse(res); err != nil {
4402		return nil, err
4403	}
4404	ret := &ServerConfig{
4405		ServerResponse: googleapi.ServerResponse{
4406			Header:         res.Header,
4407			HTTPStatusCode: res.StatusCode,
4408		},
4409	}
4410	target := &ret
4411	if err := gensupport.DecodeResponse(target, res); err != nil {
4412		return nil, err
4413	}
4414	return ret, nil
4415	// {
4416	//   "description": "Returns configuration info about the Google Kubernetes Engine service.",
4417	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serverConfig",
4418	//   "httpMethod": "GET",
4419	//   "id": "container.projects.locations.getServerConfig",
4420	//   "parameterOrder": [
4421	//     "name"
4422	//   ],
4423	//   "parameters": {
4424	//     "name": {
4425	//       "description": "The name (project and location) of the server config to get,\nspecified in the format 'projects/*/locations/*'.",
4426	//       "location": "path",
4427	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
4428	//       "required": true,
4429	//       "type": "string"
4430	//     },
4431	//     "projectId": {
4432	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
4433	//       "location": "query",
4434	//       "type": "string"
4435	//     },
4436	//     "zone": {
4437	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) to return operations for.\nThis field has been deprecated and replaced by the name field.",
4438	//       "location": "query",
4439	//       "type": "string"
4440	//     }
4441	//   },
4442	//   "path": "v1/{+name}/serverConfig",
4443	//   "response": {
4444	//     "$ref": "ServerConfig"
4445	//   },
4446	//   "scopes": [
4447	//     "https://www.googleapis.com/auth/cloud-platform"
4448	//   ]
4449	// }
4450
4451}
4452
4453// method id "container.projects.locations.clusters.completeIpRotation":
4454
4455type ProjectsLocationsClustersCompleteIpRotationCall struct {
4456	s                         *Service
4457	name                      string
4458	completeiprotationrequest *CompleteIPRotationRequest
4459	urlParams_                gensupport.URLParams
4460	ctx_                      context.Context
4461	header_                   http.Header
4462}
4463
4464// CompleteIpRotation: Completes master IP rotation.
4465func (r *ProjectsLocationsClustersService) CompleteIpRotation(name string, completeiprotationrequest *CompleteIPRotationRequest) *ProjectsLocationsClustersCompleteIpRotationCall {
4466	c := &ProjectsLocationsClustersCompleteIpRotationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4467	c.name = name
4468	c.completeiprotationrequest = completeiprotationrequest
4469	return c
4470}
4471
4472// Fields allows partial responses to be retrieved. See
4473// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4474// for more information.
4475func (c *ProjectsLocationsClustersCompleteIpRotationCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersCompleteIpRotationCall {
4476	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4477	return c
4478}
4479
4480// Context sets the context to be used in this call's Do method. Any
4481// pending HTTP request will be aborted if the provided context is
4482// canceled.
4483func (c *ProjectsLocationsClustersCompleteIpRotationCall) Context(ctx context.Context) *ProjectsLocationsClustersCompleteIpRotationCall {
4484	c.ctx_ = ctx
4485	return c
4486}
4487
4488// Header returns an http.Header that can be modified by the caller to
4489// add HTTP headers to the request.
4490func (c *ProjectsLocationsClustersCompleteIpRotationCall) Header() http.Header {
4491	if c.header_ == nil {
4492		c.header_ = make(http.Header)
4493	}
4494	return c.header_
4495}
4496
4497func (c *ProjectsLocationsClustersCompleteIpRotationCall) doRequest(alt string) (*http.Response, error) {
4498	reqHeaders := make(http.Header)
4499	for k, v := range c.header_ {
4500		reqHeaders[k] = v
4501	}
4502	reqHeaders.Set("User-Agent", c.s.userAgent())
4503	var body io.Reader = nil
4504	body, err := googleapi.WithoutDataWrapper.JSONReader(c.completeiprotationrequest)
4505	if err != nil {
4506		return nil, err
4507	}
4508	reqHeaders.Set("Content-Type", "application/json")
4509	c.urlParams_.Set("alt", alt)
4510	c.urlParams_.Set("prettyPrint", "false")
4511	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:completeIpRotation")
4512	urls += "?" + c.urlParams_.Encode()
4513	req, err := http.NewRequest("POST", urls, body)
4514	if err != nil {
4515		return nil, err
4516	}
4517	req.Header = reqHeaders
4518	googleapi.Expand(req.URL, map[string]string{
4519		"name": c.name,
4520	})
4521	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4522}
4523
4524// Do executes the "container.projects.locations.clusters.completeIpRotation" call.
4525// Exactly one of *Operation or error will be non-nil. Any non-2xx
4526// status code is an error. Response headers are in either
4527// *Operation.ServerResponse.Header or (if a response was returned at
4528// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4529// to check whether the returned error was because
4530// http.StatusNotModified was returned.
4531func (c *ProjectsLocationsClustersCompleteIpRotationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
4532	gensupport.SetOptions(c.urlParams_, opts...)
4533	res, err := c.doRequest("json")
4534	if res != nil && res.StatusCode == http.StatusNotModified {
4535		if res.Body != nil {
4536			res.Body.Close()
4537		}
4538		return nil, &googleapi.Error{
4539			Code:   res.StatusCode,
4540			Header: res.Header,
4541		}
4542	}
4543	if err != nil {
4544		return nil, err
4545	}
4546	defer googleapi.CloseBody(res)
4547	if err := googleapi.CheckResponse(res); err != nil {
4548		return nil, err
4549	}
4550	ret := &Operation{
4551		ServerResponse: googleapi.ServerResponse{
4552			Header:         res.Header,
4553			HTTPStatusCode: res.StatusCode,
4554		},
4555	}
4556	target := &ret
4557	if err := gensupport.DecodeResponse(target, res); err != nil {
4558		return nil, err
4559	}
4560	return ret, nil
4561	// {
4562	//   "description": "Completes master IP rotation.",
4563	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:completeIpRotation",
4564	//   "httpMethod": "POST",
4565	//   "id": "container.projects.locations.clusters.completeIpRotation",
4566	//   "parameterOrder": [
4567	//     "name"
4568	//   ],
4569	//   "parameters": {
4570	//     "name": {
4571	//       "description": "The name (project, location, cluster id) of the cluster to complete IP\nrotation. Specified in the format 'projects/*/locations/*/clusters/*'.",
4572	//       "location": "path",
4573	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$",
4574	//       "required": true,
4575	//       "type": "string"
4576	//     }
4577	//   },
4578	//   "path": "v1/{+name}:completeIpRotation",
4579	//   "request": {
4580	//     "$ref": "CompleteIPRotationRequest"
4581	//   },
4582	//   "response": {
4583	//     "$ref": "Operation"
4584	//   },
4585	//   "scopes": [
4586	//     "https://www.googleapis.com/auth/cloud-platform"
4587	//   ]
4588	// }
4589
4590}
4591
4592// method id "container.projects.locations.clusters.create":
4593
4594type ProjectsLocationsClustersCreateCall struct {
4595	s                    *Service
4596	parent               string
4597	createclusterrequest *CreateClusterRequest
4598	urlParams_           gensupport.URLParams
4599	ctx_                 context.Context
4600	header_              http.Header
4601}
4602
4603// Create: Creates a cluster, consisting of the specified number and
4604// type of Google
4605// Compute Engine instances.
4606//
4607// By default, the cluster is created in the project's
4608// [default
4609// network](/compute/docs/networks-and-firewalls#networks).
4610//
4611// One firewall is added for the cluster. After cluster creation,
4612// the Kubelet creates routes for each node to allow the containers
4613// on that node to communicate with all other instances in
4614// the
4615// cluster.
4616//
4617// Finally, an entry is added to the project's global metadata
4618// indicating
4619// which CIDR range the cluster is using.
4620func (r *ProjectsLocationsClustersService) Create(parent string, createclusterrequest *CreateClusterRequest) *ProjectsLocationsClustersCreateCall {
4621	c := &ProjectsLocationsClustersCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4622	c.parent = parent
4623	c.createclusterrequest = createclusterrequest
4624	return c
4625}
4626
4627// Fields allows partial responses to be retrieved. See
4628// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4629// for more information.
4630func (c *ProjectsLocationsClustersCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersCreateCall {
4631	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4632	return c
4633}
4634
4635// Context sets the context to be used in this call's Do method. Any
4636// pending HTTP request will be aborted if the provided context is
4637// canceled.
4638func (c *ProjectsLocationsClustersCreateCall) Context(ctx context.Context) *ProjectsLocationsClustersCreateCall {
4639	c.ctx_ = ctx
4640	return c
4641}
4642
4643// Header returns an http.Header that can be modified by the caller to
4644// add HTTP headers to the request.
4645func (c *ProjectsLocationsClustersCreateCall) Header() http.Header {
4646	if c.header_ == nil {
4647		c.header_ = make(http.Header)
4648	}
4649	return c.header_
4650}
4651
4652func (c *ProjectsLocationsClustersCreateCall) doRequest(alt string) (*http.Response, error) {
4653	reqHeaders := make(http.Header)
4654	for k, v := range c.header_ {
4655		reqHeaders[k] = v
4656	}
4657	reqHeaders.Set("User-Agent", c.s.userAgent())
4658	var body io.Reader = nil
4659	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createclusterrequest)
4660	if err != nil {
4661		return nil, err
4662	}
4663	reqHeaders.Set("Content-Type", "application/json")
4664	c.urlParams_.Set("alt", alt)
4665	c.urlParams_.Set("prettyPrint", "false")
4666	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/clusters")
4667	urls += "?" + c.urlParams_.Encode()
4668	req, err := http.NewRequest("POST", urls, body)
4669	if err != nil {
4670		return nil, err
4671	}
4672	req.Header = reqHeaders
4673	googleapi.Expand(req.URL, map[string]string{
4674		"parent": c.parent,
4675	})
4676	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4677}
4678
4679// Do executes the "container.projects.locations.clusters.create" call.
4680// Exactly one of *Operation or error will be non-nil. Any non-2xx
4681// status code is an error. Response headers are in either
4682// *Operation.ServerResponse.Header or (if a response was returned at
4683// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4684// to check whether the returned error was because
4685// http.StatusNotModified was returned.
4686func (c *ProjectsLocationsClustersCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
4687	gensupport.SetOptions(c.urlParams_, opts...)
4688	res, err := c.doRequest("json")
4689	if res != nil && res.StatusCode == http.StatusNotModified {
4690		if res.Body != nil {
4691			res.Body.Close()
4692		}
4693		return nil, &googleapi.Error{
4694			Code:   res.StatusCode,
4695			Header: res.Header,
4696		}
4697	}
4698	if err != nil {
4699		return nil, err
4700	}
4701	defer googleapi.CloseBody(res)
4702	if err := googleapi.CheckResponse(res); err != nil {
4703		return nil, err
4704	}
4705	ret := &Operation{
4706		ServerResponse: googleapi.ServerResponse{
4707			Header:         res.Header,
4708			HTTPStatusCode: res.StatusCode,
4709		},
4710	}
4711	target := &ret
4712	if err := gensupport.DecodeResponse(target, res); err != nil {
4713		return nil, err
4714	}
4715	return ret, nil
4716	// {
4717	//   "description": "Creates a cluster, consisting of the specified number and type of Google\nCompute Engine instances.\n\nBy default, the cluster is created in the project's\n[default network](/compute/docs/networks-and-firewalls#networks).\n\nOne firewall is added for the cluster. After cluster creation,\nthe Kubelet creates routes for each node to allow the containers\non that node to communicate with all other instances in the\ncluster.\n\nFinally, an entry is added to the project's global metadata indicating\nwhich CIDR range the cluster is using.",
4718	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters",
4719	//   "httpMethod": "POST",
4720	//   "id": "container.projects.locations.clusters.create",
4721	//   "parameterOrder": [
4722	//     "parent"
4723	//   ],
4724	//   "parameters": {
4725	//     "parent": {
4726	//       "description": "The parent (project and location) where the cluster will be created.\nSpecified in the format 'projects/*/locations/*'.",
4727	//       "location": "path",
4728	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
4729	//       "required": true,
4730	//       "type": "string"
4731	//     }
4732	//   },
4733	//   "path": "v1/{+parent}/clusters",
4734	//   "request": {
4735	//     "$ref": "CreateClusterRequest"
4736	//   },
4737	//   "response": {
4738	//     "$ref": "Operation"
4739	//   },
4740	//   "scopes": [
4741	//     "https://www.googleapis.com/auth/cloud-platform"
4742	//   ]
4743	// }
4744
4745}
4746
4747// method id "container.projects.locations.clusters.delete":
4748
4749type ProjectsLocationsClustersDeleteCall struct {
4750	s          *Service
4751	name       string
4752	urlParams_ gensupport.URLParams
4753	ctx_       context.Context
4754	header_    http.Header
4755}
4756
4757// Delete: Deletes the cluster, including the Kubernetes endpoint and
4758// all worker
4759// nodes.
4760//
4761// Firewalls and routes that were configured during cluster creation
4762// are also deleted.
4763//
4764// Other Google Compute Engine resources that might be in use by the
4765// cluster,
4766// such as load balancer resources, are not deleted if they weren't
4767// present
4768// when the cluster was initially created.
4769func (r *ProjectsLocationsClustersService) Delete(name string) *ProjectsLocationsClustersDeleteCall {
4770	c := &ProjectsLocationsClustersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4771	c.name = name
4772	return c
4773}
4774
4775// ClusterId sets the optional parameter "clusterId": Deprecated. The
4776// name of the cluster to delete.
4777// This field has been deprecated and replaced by the name field.
4778func (c *ProjectsLocationsClustersDeleteCall) ClusterId(clusterId string) *ProjectsLocationsClustersDeleteCall {
4779	c.urlParams_.Set("clusterId", clusterId)
4780	return c
4781}
4782
4783// ProjectId sets the optional parameter "projectId": Deprecated. The
4784// Google Developers Console [project ID or
4785// project
4786// number](https://support.google.com/cloud/answer/6158840).
4787// This
4788//  field has been deprecated and replaced by the name field.
4789func (c *ProjectsLocationsClustersDeleteCall) ProjectId(projectId string) *ProjectsLocationsClustersDeleteCall {
4790	c.urlParams_.Set("projectId", projectId)
4791	return c
4792}
4793
4794// Zone sets the optional parameter "zone": Deprecated. The name of the
4795// Google Compute Engine
4796// [zone](/compute/docs/zones#available) in which the
4797// cluster
4798// resides.
4799// This field has been deprecated and replaced by the name field.
4800func (c *ProjectsLocationsClustersDeleteCall) Zone(zone string) *ProjectsLocationsClustersDeleteCall {
4801	c.urlParams_.Set("zone", zone)
4802	return c
4803}
4804
4805// Fields allows partial responses to be retrieved. See
4806// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4807// for more information.
4808func (c *ProjectsLocationsClustersDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersDeleteCall {
4809	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4810	return c
4811}
4812
4813// Context sets the context to be used in this call's Do method. Any
4814// pending HTTP request will be aborted if the provided context is
4815// canceled.
4816func (c *ProjectsLocationsClustersDeleteCall) Context(ctx context.Context) *ProjectsLocationsClustersDeleteCall {
4817	c.ctx_ = ctx
4818	return c
4819}
4820
4821// Header returns an http.Header that can be modified by the caller to
4822// add HTTP headers to the request.
4823func (c *ProjectsLocationsClustersDeleteCall) Header() http.Header {
4824	if c.header_ == nil {
4825		c.header_ = make(http.Header)
4826	}
4827	return c.header_
4828}
4829
4830func (c *ProjectsLocationsClustersDeleteCall) doRequest(alt string) (*http.Response, error) {
4831	reqHeaders := make(http.Header)
4832	for k, v := range c.header_ {
4833		reqHeaders[k] = v
4834	}
4835	reqHeaders.Set("User-Agent", c.s.userAgent())
4836	var body io.Reader = nil
4837	c.urlParams_.Set("alt", alt)
4838	c.urlParams_.Set("prettyPrint", "false")
4839	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
4840	urls += "?" + c.urlParams_.Encode()
4841	req, err := http.NewRequest("DELETE", urls, body)
4842	if err != nil {
4843		return nil, err
4844	}
4845	req.Header = reqHeaders
4846	googleapi.Expand(req.URL, map[string]string{
4847		"name": c.name,
4848	})
4849	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4850}
4851
4852// Do executes the "container.projects.locations.clusters.delete" call.
4853// Exactly one of *Operation or error will be non-nil. Any non-2xx
4854// status code is an error. Response headers are in either
4855// *Operation.ServerResponse.Header or (if a response was returned at
4856// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4857// to check whether the returned error was because
4858// http.StatusNotModified was returned.
4859func (c *ProjectsLocationsClustersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
4860	gensupport.SetOptions(c.urlParams_, opts...)
4861	res, err := c.doRequest("json")
4862	if res != nil && res.StatusCode == http.StatusNotModified {
4863		if res.Body != nil {
4864			res.Body.Close()
4865		}
4866		return nil, &googleapi.Error{
4867			Code:   res.StatusCode,
4868			Header: res.Header,
4869		}
4870	}
4871	if err != nil {
4872		return nil, err
4873	}
4874	defer googleapi.CloseBody(res)
4875	if err := googleapi.CheckResponse(res); err != nil {
4876		return nil, err
4877	}
4878	ret := &Operation{
4879		ServerResponse: googleapi.ServerResponse{
4880			Header:         res.Header,
4881			HTTPStatusCode: res.StatusCode,
4882		},
4883	}
4884	target := &ret
4885	if err := gensupport.DecodeResponse(target, res); err != nil {
4886		return nil, err
4887	}
4888	return ret, nil
4889	// {
4890	//   "description": "Deletes the cluster, including the Kubernetes endpoint and all worker\nnodes.\n\nFirewalls and routes that were configured during cluster creation\nare also deleted.\n\nOther Google Compute Engine resources that might be in use by the cluster,\nsuch as load balancer resources, are not deleted if they weren't present\nwhen the cluster was initially created.",
4891	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}",
4892	//   "httpMethod": "DELETE",
4893	//   "id": "container.projects.locations.clusters.delete",
4894	//   "parameterOrder": [
4895	//     "name"
4896	//   ],
4897	//   "parameters": {
4898	//     "clusterId": {
4899	//       "description": "Deprecated. The name of the cluster to delete.\nThis field has been deprecated and replaced by the name field.",
4900	//       "location": "query",
4901	//       "type": "string"
4902	//     },
4903	//     "name": {
4904	//       "description": "The name (project, location, cluster) of the cluster to delete.\nSpecified in the format 'projects/*/locations/*/clusters/*'.",
4905	//       "location": "path",
4906	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$",
4907	//       "required": true,
4908	//       "type": "string"
4909	//     },
4910	//     "projectId": {
4911	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
4912	//       "location": "query",
4913	//       "type": "string"
4914	//     },
4915	//     "zone": {
4916	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
4917	//       "location": "query",
4918	//       "type": "string"
4919	//     }
4920	//   },
4921	//   "path": "v1/{+name}",
4922	//   "response": {
4923	//     "$ref": "Operation"
4924	//   },
4925	//   "scopes": [
4926	//     "https://www.googleapis.com/auth/cloud-platform"
4927	//   ]
4928	// }
4929
4930}
4931
4932// method id "container.projects.locations.clusters.get":
4933
4934type ProjectsLocationsClustersGetCall struct {
4935	s            *Service
4936	name         string
4937	urlParams_   gensupport.URLParams
4938	ifNoneMatch_ string
4939	ctx_         context.Context
4940	header_      http.Header
4941}
4942
4943// Get: Gets the details of a specific cluster.
4944func (r *ProjectsLocationsClustersService) Get(name string) *ProjectsLocationsClustersGetCall {
4945	c := &ProjectsLocationsClustersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4946	c.name = name
4947	return c
4948}
4949
4950// ClusterId sets the optional parameter "clusterId": Deprecated. The
4951// name of the cluster to retrieve.
4952// This field has been deprecated and replaced by the name field.
4953func (c *ProjectsLocationsClustersGetCall) ClusterId(clusterId string) *ProjectsLocationsClustersGetCall {
4954	c.urlParams_.Set("clusterId", clusterId)
4955	return c
4956}
4957
4958// ProjectId sets the optional parameter "projectId": Deprecated. The
4959// Google Developers Console [project ID or
4960// project
4961// number](https://support.google.com/cloud/answer/6158840).
4962// This
4963//  field has been deprecated and replaced by the name field.
4964func (c *ProjectsLocationsClustersGetCall) ProjectId(projectId string) *ProjectsLocationsClustersGetCall {
4965	c.urlParams_.Set("projectId", projectId)
4966	return c
4967}
4968
4969// Zone sets the optional parameter "zone": Deprecated. The name of the
4970// Google Compute Engine
4971// [zone](/compute/docs/zones#available) in which the
4972// cluster
4973// resides.
4974// This field has been deprecated and replaced by the name field.
4975func (c *ProjectsLocationsClustersGetCall) Zone(zone string) *ProjectsLocationsClustersGetCall {
4976	c.urlParams_.Set("zone", zone)
4977	return c
4978}
4979
4980// Fields allows partial responses to be retrieved. See
4981// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4982// for more information.
4983func (c *ProjectsLocationsClustersGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersGetCall {
4984	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4985	return c
4986}
4987
4988// IfNoneMatch sets the optional parameter which makes the operation
4989// fail if the object's ETag matches the given value. This is useful for
4990// getting updates only after the object has changed since the last
4991// request. Use googleapi.IsNotModified to check whether the response
4992// error from Do is the result of In-None-Match.
4993func (c *ProjectsLocationsClustersGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsClustersGetCall {
4994	c.ifNoneMatch_ = entityTag
4995	return c
4996}
4997
4998// Context sets the context to be used in this call's Do method. Any
4999// pending HTTP request will be aborted if the provided context is
5000// canceled.
5001func (c *ProjectsLocationsClustersGetCall) Context(ctx context.Context) *ProjectsLocationsClustersGetCall {
5002	c.ctx_ = ctx
5003	return c
5004}
5005
5006// Header returns an http.Header that can be modified by the caller to
5007// add HTTP headers to the request.
5008func (c *ProjectsLocationsClustersGetCall) Header() http.Header {
5009	if c.header_ == nil {
5010		c.header_ = make(http.Header)
5011	}
5012	return c.header_
5013}
5014
5015func (c *ProjectsLocationsClustersGetCall) doRequest(alt string) (*http.Response, error) {
5016	reqHeaders := make(http.Header)
5017	for k, v := range c.header_ {
5018		reqHeaders[k] = v
5019	}
5020	reqHeaders.Set("User-Agent", c.s.userAgent())
5021	if c.ifNoneMatch_ != "" {
5022		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5023	}
5024	var body io.Reader = nil
5025	c.urlParams_.Set("alt", alt)
5026	c.urlParams_.Set("prettyPrint", "false")
5027	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
5028	urls += "?" + c.urlParams_.Encode()
5029	req, err := http.NewRequest("GET", urls, body)
5030	if err != nil {
5031		return nil, err
5032	}
5033	req.Header = reqHeaders
5034	googleapi.Expand(req.URL, map[string]string{
5035		"name": c.name,
5036	})
5037	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5038}
5039
5040// Do executes the "container.projects.locations.clusters.get" call.
5041// Exactly one of *Cluster or error will be non-nil. Any non-2xx status
5042// code is an error. Response headers are in either
5043// *Cluster.ServerResponse.Header or (if a response was returned at all)
5044// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
5045// check whether the returned error was because http.StatusNotModified
5046// was returned.
5047func (c *ProjectsLocationsClustersGetCall) Do(opts ...googleapi.CallOption) (*Cluster, error) {
5048	gensupport.SetOptions(c.urlParams_, opts...)
5049	res, err := c.doRequest("json")
5050	if res != nil && res.StatusCode == http.StatusNotModified {
5051		if res.Body != nil {
5052			res.Body.Close()
5053		}
5054		return nil, &googleapi.Error{
5055			Code:   res.StatusCode,
5056			Header: res.Header,
5057		}
5058	}
5059	if err != nil {
5060		return nil, err
5061	}
5062	defer googleapi.CloseBody(res)
5063	if err := googleapi.CheckResponse(res); err != nil {
5064		return nil, err
5065	}
5066	ret := &Cluster{
5067		ServerResponse: googleapi.ServerResponse{
5068			Header:         res.Header,
5069			HTTPStatusCode: res.StatusCode,
5070		},
5071	}
5072	target := &ret
5073	if err := gensupport.DecodeResponse(target, res); err != nil {
5074		return nil, err
5075	}
5076	return ret, nil
5077	// {
5078	//   "description": "Gets the details of a specific cluster.",
5079	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}",
5080	//   "httpMethod": "GET",
5081	//   "id": "container.projects.locations.clusters.get",
5082	//   "parameterOrder": [
5083	//     "name"
5084	//   ],
5085	//   "parameters": {
5086	//     "clusterId": {
5087	//       "description": "Deprecated. The name of the cluster to retrieve.\nThis field has been deprecated and replaced by the name field.",
5088	//       "location": "query",
5089	//       "type": "string"
5090	//     },
5091	//     "name": {
5092	//       "description": "The name (project, location, cluster) of the cluster to retrieve.\nSpecified in the format 'projects/*/locations/*/clusters/*'.",
5093	//       "location": "path",
5094	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$",
5095	//       "required": true,
5096	//       "type": "string"
5097	//     },
5098	//     "projectId": {
5099	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
5100	//       "location": "query",
5101	//       "type": "string"
5102	//     },
5103	//     "zone": {
5104	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
5105	//       "location": "query",
5106	//       "type": "string"
5107	//     }
5108	//   },
5109	//   "path": "v1/{+name}",
5110	//   "response": {
5111	//     "$ref": "Cluster"
5112	//   },
5113	//   "scopes": [
5114	//     "https://www.googleapis.com/auth/cloud-platform"
5115	//   ]
5116	// }
5117
5118}
5119
5120// method id "container.projects.locations.clusters.getJwks":
5121
5122type ProjectsLocationsClustersGetJwksCall struct {
5123	s            *Service
5124	parent       string
5125	urlParams_   gensupport.URLParams
5126	ifNoneMatch_ string
5127	ctx_         context.Context
5128	header_      http.Header
5129}
5130
5131// GetJwks: Gets the public component of the cluster signing keys
5132// in
5133// JSON Web Key format.
5134// This API is not yet intended for general use, and is not available
5135// for all
5136// clusters.
5137func (r *ProjectsLocationsClustersService) GetJwks(parent string) *ProjectsLocationsClustersGetJwksCall {
5138	c := &ProjectsLocationsClustersGetJwksCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5139	c.parent = parent
5140	return c
5141}
5142
5143// Fields allows partial responses to be retrieved. See
5144// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5145// for more information.
5146func (c *ProjectsLocationsClustersGetJwksCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersGetJwksCall {
5147	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5148	return c
5149}
5150
5151// IfNoneMatch sets the optional parameter which makes the operation
5152// fail if the object's ETag matches the given value. This is useful for
5153// getting updates only after the object has changed since the last
5154// request. Use googleapi.IsNotModified to check whether the response
5155// error from Do is the result of In-None-Match.
5156func (c *ProjectsLocationsClustersGetJwksCall) IfNoneMatch(entityTag string) *ProjectsLocationsClustersGetJwksCall {
5157	c.ifNoneMatch_ = entityTag
5158	return c
5159}
5160
5161// Context sets the context to be used in this call's Do method. Any
5162// pending HTTP request will be aborted if the provided context is
5163// canceled.
5164func (c *ProjectsLocationsClustersGetJwksCall) Context(ctx context.Context) *ProjectsLocationsClustersGetJwksCall {
5165	c.ctx_ = ctx
5166	return c
5167}
5168
5169// Header returns an http.Header that can be modified by the caller to
5170// add HTTP headers to the request.
5171func (c *ProjectsLocationsClustersGetJwksCall) Header() http.Header {
5172	if c.header_ == nil {
5173		c.header_ = make(http.Header)
5174	}
5175	return c.header_
5176}
5177
5178func (c *ProjectsLocationsClustersGetJwksCall) doRequest(alt string) (*http.Response, error) {
5179	reqHeaders := make(http.Header)
5180	for k, v := range c.header_ {
5181		reqHeaders[k] = v
5182	}
5183	reqHeaders.Set("User-Agent", c.s.userAgent())
5184	if c.ifNoneMatch_ != "" {
5185		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5186	}
5187	var body io.Reader = nil
5188	c.urlParams_.Set("alt", alt)
5189	c.urlParams_.Set("prettyPrint", "false")
5190	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/jwks")
5191	urls += "?" + c.urlParams_.Encode()
5192	req, err := http.NewRequest("GET", urls, body)
5193	if err != nil {
5194		return nil, err
5195	}
5196	req.Header = reqHeaders
5197	googleapi.Expand(req.URL, map[string]string{
5198		"parent": c.parent,
5199	})
5200	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5201}
5202
5203// Do executes the "container.projects.locations.clusters.getJwks" call.
5204// Exactly one of *GetJSONWebKeysResponse or error will be non-nil. Any
5205// non-2xx status code is an error. Response headers are in either
5206// *GetJSONWebKeysResponse.ServerResponse.Header or (if a response was
5207// returned at all) in error.(*googleapi.Error).Header. Use
5208// googleapi.IsNotModified to check whether the returned error was
5209// because http.StatusNotModified was returned.
5210func (c *ProjectsLocationsClustersGetJwksCall) Do(opts ...googleapi.CallOption) (*GetJSONWebKeysResponse, error) {
5211	gensupport.SetOptions(c.urlParams_, opts...)
5212	res, err := c.doRequest("json")
5213	if res != nil && res.StatusCode == http.StatusNotModified {
5214		if res.Body != nil {
5215			res.Body.Close()
5216		}
5217		return nil, &googleapi.Error{
5218			Code:   res.StatusCode,
5219			Header: res.Header,
5220		}
5221	}
5222	if err != nil {
5223		return nil, err
5224	}
5225	defer googleapi.CloseBody(res)
5226	if err := googleapi.CheckResponse(res); err != nil {
5227		return nil, err
5228	}
5229	ret := &GetJSONWebKeysResponse{
5230		ServerResponse: googleapi.ServerResponse{
5231			Header:         res.Header,
5232			HTTPStatusCode: res.StatusCode,
5233		},
5234	}
5235	target := &ret
5236	if err := gensupport.DecodeResponse(target, res); err != nil {
5237		return nil, err
5238	}
5239	return ret, nil
5240	// {
5241	//   "description": "Gets the public component of the cluster signing keys in\nJSON Web Key format.\nThis API is not yet intended for general use, and is not available for all\nclusters.",
5242	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/jwks",
5243	//   "httpMethod": "GET",
5244	//   "id": "container.projects.locations.clusters.getJwks",
5245	//   "parameterOrder": [
5246	//     "parent"
5247	//   ],
5248	//   "parameters": {
5249	//     "parent": {
5250	//       "description": "The cluster (project, location, cluster id) to get keys for. Specified in\nthe format 'projects/*/locations/*/clusters/*'.",
5251	//       "location": "path",
5252	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$",
5253	//       "required": true,
5254	//       "type": "string"
5255	//     }
5256	//   },
5257	//   "path": "v1/{+parent}/jwks",
5258	//   "response": {
5259	//     "$ref": "GetJSONWebKeysResponse"
5260	//   }
5261	// }
5262
5263}
5264
5265// method id "container.projects.locations.clusters.list":
5266
5267type ProjectsLocationsClustersListCall struct {
5268	s            *Service
5269	parent       string
5270	urlParams_   gensupport.URLParams
5271	ifNoneMatch_ string
5272	ctx_         context.Context
5273	header_      http.Header
5274}
5275
5276// List: Lists all clusters owned by a project in either the specified
5277// zone or all
5278// zones.
5279func (r *ProjectsLocationsClustersService) List(parent string) *ProjectsLocationsClustersListCall {
5280	c := &ProjectsLocationsClustersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5281	c.parent = parent
5282	return c
5283}
5284
5285// ProjectId sets the optional parameter "projectId": Deprecated. The
5286// Google Developers Console [project ID or
5287// project
5288// number](https://support.google.com/cloud/answer/6158840).
5289// This
5290//  field has been deprecated and replaced by the parent field.
5291func (c *ProjectsLocationsClustersListCall) ProjectId(projectId string) *ProjectsLocationsClustersListCall {
5292	c.urlParams_.Set("projectId", projectId)
5293	return c
5294}
5295
5296// Zone sets the optional parameter "zone": Deprecated. The name of the
5297// Google Compute Engine
5298// [zone](/compute/docs/zones#available) in which the cluster
5299// resides, or "-" for all zones.
5300// This field has been deprecated and replaced by the parent field.
5301func (c *ProjectsLocationsClustersListCall) Zone(zone string) *ProjectsLocationsClustersListCall {
5302	c.urlParams_.Set("zone", zone)
5303	return c
5304}
5305
5306// Fields allows partial responses to be retrieved. See
5307// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5308// for more information.
5309func (c *ProjectsLocationsClustersListCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersListCall {
5310	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5311	return c
5312}
5313
5314// IfNoneMatch sets the optional parameter which makes the operation
5315// fail if the object's ETag matches the given value. This is useful for
5316// getting updates only after the object has changed since the last
5317// request. Use googleapi.IsNotModified to check whether the response
5318// error from Do is the result of In-None-Match.
5319func (c *ProjectsLocationsClustersListCall) IfNoneMatch(entityTag string) *ProjectsLocationsClustersListCall {
5320	c.ifNoneMatch_ = entityTag
5321	return c
5322}
5323
5324// Context sets the context to be used in this call's Do method. Any
5325// pending HTTP request will be aborted if the provided context is
5326// canceled.
5327func (c *ProjectsLocationsClustersListCall) Context(ctx context.Context) *ProjectsLocationsClustersListCall {
5328	c.ctx_ = ctx
5329	return c
5330}
5331
5332// Header returns an http.Header that can be modified by the caller to
5333// add HTTP headers to the request.
5334func (c *ProjectsLocationsClustersListCall) Header() http.Header {
5335	if c.header_ == nil {
5336		c.header_ = make(http.Header)
5337	}
5338	return c.header_
5339}
5340
5341func (c *ProjectsLocationsClustersListCall) doRequest(alt string) (*http.Response, error) {
5342	reqHeaders := make(http.Header)
5343	for k, v := range c.header_ {
5344		reqHeaders[k] = v
5345	}
5346	reqHeaders.Set("User-Agent", c.s.userAgent())
5347	if c.ifNoneMatch_ != "" {
5348		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5349	}
5350	var body io.Reader = nil
5351	c.urlParams_.Set("alt", alt)
5352	c.urlParams_.Set("prettyPrint", "false")
5353	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/clusters")
5354	urls += "?" + c.urlParams_.Encode()
5355	req, err := http.NewRequest("GET", urls, body)
5356	if err != nil {
5357		return nil, err
5358	}
5359	req.Header = reqHeaders
5360	googleapi.Expand(req.URL, map[string]string{
5361		"parent": c.parent,
5362	})
5363	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5364}
5365
5366// Do executes the "container.projects.locations.clusters.list" call.
5367// Exactly one of *ListClustersResponse or error will be non-nil. Any
5368// non-2xx status code is an error. Response headers are in either
5369// *ListClustersResponse.ServerResponse.Header or (if a response was
5370// returned at all) in error.(*googleapi.Error).Header. Use
5371// googleapi.IsNotModified to check whether the returned error was
5372// because http.StatusNotModified was returned.
5373func (c *ProjectsLocationsClustersListCall) Do(opts ...googleapi.CallOption) (*ListClustersResponse, error) {
5374	gensupport.SetOptions(c.urlParams_, opts...)
5375	res, err := c.doRequest("json")
5376	if res != nil && res.StatusCode == http.StatusNotModified {
5377		if res.Body != nil {
5378			res.Body.Close()
5379		}
5380		return nil, &googleapi.Error{
5381			Code:   res.StatusCode,
5382			Header: res.Header,
5383		}
5384	}
5385	if err != nil {
5386		return nil, err
5387	}
5388	defer googleapi.CloseBody(res)
5389	if err := googleapi.CheckResponse(res); err != nil {
5390		return nil, err
5391	}
5392	ret := &ListClustersResponse{
5393		ServerResponse: googleapi.ServerResponse{
5394			Header:         res.Header,
5395			HTTPStatusCode: res.StatusCode,
5396		},
5397	}
5398	target := &ret
5399	if err := gensupport.DecodeResponse(target, res); err != nil {
5400		return nil, err
5401	}
5402	return ret, nil
5403	// {
5404	//   "description": "Lists all clusters owned by a project in either the specified zone or all\nzones.",
5405	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters",
5406	//   "httpMethod": "GET",
5407	//   "id": "container.projects.locations.clusters.list",
5408	//   "parameterOrder": [
5409	//     "parent"
5410	//   ],
5411	//   "parameters": {
5412	//     "parent": {
5413	//       "description": "The parent (project and location) where the clusters will be listed.\nSpecified in the format 'projects/*/locations/*'.\nLocation \"-\" matches all zones and all regions.",
5414	//       "location": "path",
5415	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
5416	//       "required": true,
5417	//       "type": "string"
5418	//     },
5419	//     "projectId": {
5420	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the parent field.",
5421	//       "location": "query",
5422	//       "type": "string"
5423	//     },
5424	//     "zone": {
5425	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides, or \"-\" for all zones.\nThis field has been deprecated and replaced by the parent field.",
5426	//       "location": "query",
5427	//       "type": "string"
5428	//     }
5429	//   },
5430	//   "path": "v1/{+parent}/clusters",
5431	//   "response": {
5432	//     "$ref": "ListClustersResponse"
5433	//   },
5434	//   "scopes": [
5435	//     "https://www.googleapis.com/auth/cloud-platform"
5436	//   ]
5437	// }
5438
5439}
5440
5441// method id "container.projects.locations.clusters.setAddons":
5442
5443type ProjectsLocationsClustersSetAddonsCall struct {
5444	s                      *Service
5445	name                   string
5446	setaddonsconfigrequest *SetAddonsConfigRequest
5447	urlParams_             gensupport.URLParams
5448	ctx_                   context.Context
5449	header_                http.Header
5450}
5451
5452// SetAddons: Sets the addons for a specific cluster.
5453func (r *ProjectsLocationsClustersService) SetAddons(name string, setaddonsconfigrequest *SetAddonsConfigRequest) *ProjectsLocationsClustersSetAddonsCall {
5454	c := &ProjectsLocationsClustersSetAddonsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5455	c.name = name
5456	c.setaddonsconfigrequest = setaddonsconfigrequest
5457	return c
5458}
5459
5460// Fields allows partial responses to be retrieved. See
5461// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5462// for more information.
5463func (c *ProjectsLocationsClustersSetAddonsCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersSetAddonsCall {
5464	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5465	return c
5466}
5467
5468// Context sets the context to be used in this call's Do method. Any
5469// pending HTTP request will be aborted if the provided context is
5470// canceled.
5471func (c *ProjectsLocationsClustersSetAddonsCall) Context(ctx context.Context) *ProjectsLocationsClustersSetAddonsCall {
5472	c.ctx_ = ctx
5473	return c
5474}
5475
5476// Header returns an http.Header that can be modified by the caller to
5477// add HTTP headers to the request.
5478func (c *ProjectsLocationsClustersSetAddonsCall) Header() http.Header {
5479	if c.header_ == nil {
5480		c.header_ = make(http.Header)
5481	}
5482	return c.header_
5483}
5484
5485func (c *ProjectsLocationsClustersSetAddonsCall) doRequest(alt string) (*http.Response, error) {
5486	reqHeaders := make(http.Header)
5487	for k, v := range c.header_ {
5488		reqHeaders[k] = v
5489	}
5490	reqHeaders.Set("User-Agent", c.s.userAgent())
5491	var body io.Reader = nil
5492	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setaddonsconfigrequest)
5493	if err != nil {
5494		return nil, err
5495	}
5496	reqHeaders.Set("Content-Type", "application/json")
5497	c.urlParams_.Set("alt", alt)
5498	c.urlParams_.Set("prettyPrint", "false")
5499	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setAddons")
5500	urls += "?" + c.urlParams_.Encode()
5501	req, err := http.NewRequest("POST", urls, body)
5502	if err != nil {
5503		return nil, err
5504	}
5505	req.Header = reqHeaders
5506	googleapi.Expand(req.URL, map[string]string{
5507		"name": c.name,
5508	})
5509	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5510}
5511
5512// Do executes the "container.projects.locations.clusters.setAddons" call.
5513// Exactly one of *Operation or error will be non-nil. Any non-2xx
5514// status code is an error. Response headers are in either
5515// *Operation.ServerResponse.Header or (if a response was returned at
5516// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5517// to check whether the returned error was because
5518// http.StatusNotModified was returned.
5519func (c *ProjectsLocationsClustersSetAddonsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
5520	gensupport.SetOptions(c.urlParams_, opts...)
5521	res, err := c.doRequest("json")
5522	if res != nil && res.StatusCode == http.StatusNotModified {
5523		if res.Body != nil {
5524			res.Body.Close()
5525		}
5526		return nil, &googleapi.Error{
5527			Code:   res.StatusCode,
5528			Header: res.Header,
5529		}
5530	}
5531	if err != nil {
5532		return nil, err
5533	}
5534	defer googleapi.CloseBody(res)
5535	if err := googleapi.CheckResponse(res); err != nil {
5536		return nil, err
5537	}
5538	ret := &Operation{
5539		ServerResponse: googleapi.ServerResponse{
5540			Header:         res.Header,
5541			HTTPStatusCode: res.StatusCode,
5542		},
5543	}
5544	target := &ret
5545	if err := gensupport.DecodeResponse(target, res); err != nil {
5546		return nil, err
5547	}
5548	return ret, nil
5549	// {
5550	//   "description": "Sets the addons for a specific cluster.",
5551	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setAddons",
5552	//   "httpMethod": "POST",
5553	//   "id": "container.projects.locations.clusters.setAddons",
5554	//   "parameterOrder": [
5555	//     "name"
5556	//   ],
5557	//   "parameters": {
5558	//     "name": {
5559	//       "description": "The name (project, location, cluster) of the cluster to set addons.\nSpecified in the format 'projects/*/locations/*/clusters/*'.",
5560	//       "location": "path",
5561	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$",
5562	//       "required": true,
5563	//       "type": "string"
5564	//     }
5565	//   },
5566	//   "path": "v1/{+name}:setAddons",
5567	//   "request": {
5568	//     "$ref": "SetAddonsConfigRequest"
5569	//   },
5570	//   "response": {
5571	//     "$ref": "Operation"
5572	//   },
5573	//   "scopes": [
5574	//     "https://www.googleapis.com/auth/cloud-platform"
5575	//   ]
5576	// }
5577
5578}
5579
5580// method id "container.projects.locations.clusters.setLegacyAbac":
5581
5582type ProjectsLocationsClustersSetLegacyAbacCall struct {
5583	s                    *Service
5584	name                 string
5585	setlegacyabacrequest *SetLegacyAbacRequest
5586	urlParams_           gensupport.URLParams
5587	ctx_                 context.Context
5588	header_              http.Header
5589}
5590
5591// SetLegacyAbac: Enables or disables the ABAC authorization mechanism
5592// on a cluster.
5593func (r *ProjectsLocationsClustersService) SetLegacyAbac(name string, setlegacyabacrequest *SetLegacyAbacRequest) *ProjectsLocationsClustersSetLegacyAbacCall {
5594	c := &ProjectsLocationsClustersSetLegacyAbacCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5595	c.name = name
5596	c.setlegacyabacrequest = setlegacyabacrequest
5597	return c
5598}
5599
5600// Fields allows partial responses to be retrieved. See
5601// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5602// for more information.
5603func (c *ProjectsLocationsClustersSetLegacyAbacCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersSetLegacyAbacCall {
5604	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5605	return c
5606}
5607
5608// Context sets the context to be used in this call's Do method. Any
5609// pending HTTP request will be aborted if the provided context is
5610// canceled.
5611func (c *ProjectsLocationsClustersSetLegacyAbacCall) Context(ctx context.Context) *ProjectsLocationsClustersSetLegacyAbacCall {
5612	c.ctx_ = ctx
5613	return c
5614}
5615
5616// Header returns an http.Header that can be modified by the caller to
5617// add HTTP headers to the request.
5618func (c *ProjectsLocationsClustersSetLegacyAbacCall) Header() http.Header {
5619	if c.header_ == nil {
5620		c.header_ = make(http.Header)
5621	}
5622	return c.header_
5623}
5624
5625func (c *ProjectsLocationsClustersSetLegacyAbacCall) doRequest(alt string) (*http.Response, error) {
5626	reqHeaders := make(http.Header)
5627	for k, v := range c.header_ {
5628		reqHeaders[k] = v
5629	}
5630	reqHeaders.Set("User-Agent", c.s.userAgent())
5631	var body io.Reader = nil
5632	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setlegacyabacrequest)
5633	if err != nil {
5634		return nil, err
5635	}
5636	reqHeaders.Set("Content-Type", "application/json")
5637	c.urlParams_.Set("alt", alt)
5638	c.urlParams_.Set("prettyPrint", "false")
5639	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setLegacyAbac")
5640	urls += "?" + c.urlParams_.Encode()
5641	req, err := http.NewRequest("POST", urls, body)
5642	if err != nil {
5643		return nil, err
5644	}
5645	req.Header = reqHeaders
5646	googleapi.Expand(req.URL, map[string]string{
5647		"name": c.name,
5648	})
5649	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5650}
5651
5652// Do executes the "container.projects.locations.clusters.setLegacyAbac" call.
5653// Exactly one of *Operation or error will be non-nil. Any non-2xx
5654// status code is an error. Response headers are in either
5655// *Operation.ServerResponse.Header or (if a response was returned at
5656// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5657// to check whether the returned error was because
5658// http.StatusNotModified was returned.
5659func (c *ProjectsLocationsClustersSetLegacyAbacCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
5660	gensupport.SetOptions(c.urlParams_, opts...)
5661	res, err := c.doRequest("json")
5662	if res != nil && res.StatusCode == http.StatusNotModified {
5663		if res.Body != nil {
5664			res.Body.Close()
5665		}
5666		return nil, &googleapi.Error{
5667			Code:   res.StatusCode,
5668			Header: res.Header,
5669		}
5670	}
5671	if err != nil {
5672		return nil, err
5673	}
5674	defer googleapi.CloseBody(res)
5675	if err := googleapi.CheckResponse(res); err != nil {
5676		return nil, err
5677	}
5678	ret := &Operation{
5679		ServerResponse: googleapi.ServerResponse{
5680			Header:         res.Header,
5681			HTTPStatusCode: res.StatusCode,
5682		},
5683	}
5684	target := &ret
5685	if err := gensupport.DecodeResponse(target, res); err != nil {
5686		return nil, err
5687	}
5688	return ret, nil
5689	// {
5690	//   "description": "Enables or disables the ABAC authorization mechanism on a cluster.",
5691	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setLegacyAbac",
5692	//   "httpMethod": "POST",
5693	//   "id": "container.projects.locations.clusters.setLegacyAbac",
5694	//   "parameterOrder": [
5695	//     "name"
5696	//   ],
5697	//   "parameters": {
5698	//     "name": {
5699	//       "description": "The name (project, location, cluster id) of the cluster to set legacy abac.\nSpecified in the format 'projects/*/locations/*/clusters/*'.",
5700	//       "location": "path",
5701	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$",
5702	//       "required": true,
5703	//       "type": "string"
5704	//     }
5705	//   },
5706	//   "path": "v1/{+name}:setLegacyAbac",
5707	//   "request": {
5708	//     "$ref": "SetLegacyAbacRequest"
5709	//   },
5710	//   "response": {
5711	//     "$ref": "Operation"
5712	//   },
5713	//   "scopes": [
5714	//     "https://www.googleapis.com/auth/cloud-platform"
5715	//   ]
5716	// }
5717
5718}
5719
5720// method id "container.projects.locations.clusters.setLocations":
5721
5722type ProjectsLocationsClustersSetLocationsCall struct {
5723	s                   *Service
5724	name                string
5725	setlocationsrequest *SetLocationsRequest
5726	urlParams_          gensupport.URLParams
5727	ctx_                context.Context
5728	header_             http.Header
5729}
5730
5731// SetLocations: Sets the locations for a specific cluster.
5732func (r *ProjectsLocationsClustersService) SetLocations(name string, setlocationsrequest *SetLocationsRequest) *ProjectsLocationsClustersSetLocationsCall {
5733	c := &ProjectsLocationsClustersSetLocationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5734	c.name = name
5735	c.setlocationsrequest = setlocationsrequest
5736	return c
5737}
5738
5739// Fields allows partial responses to be retrieved. See
5740// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5741// for more information.
5742func (c *ProjectsLocationsClustersSetLocationsCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersSetLocationsCall {
5743	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5744	return c
5745}
5746
5747// Context sets the context to be used in this call's Do method. Any
5748// pending HTTP request will be aborted if the provided context is
5749// canceled.
5750func (c *ProjectsLocationsClustersSetLocationsCall) Context(ctx context.Context) *ProjectsLocationsClustersSetLocationsCall {
5751	c.ctx_ = ctx
5752	return c
5753}
5754
5755// Header returns an http.Header that can be modified by the caller to
5756// add HTTP headers to the request.
5757func (c *ProjectsLocationsClustersSetLocationsCall) Header() http.Header {
5758	if c.header_ == nil {
5759		c.header_ = make(http.Header)
5760	}
5761	return c.header_
5762}
5763
5764func (c *ProjectsLocationsClustersSetLocationsCall) doRequest(alt string) (*http.Response, error) {
5765	reqHeaders := make(http.Header)
5766	for k, v := range c.header_ {
5767		reqHeaders[k] = v
5768	}
5769	reqHeaders.Set("User-Agent", c.s.userAgent())
5770	var body io.Reader = nil
5771	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setlocationsrequest)
5772	if err != nil {
5773		return nil, err
5774	}
5775	reqHeaders.Set("Content-Type", "application/json")
5776	c.urlParams_.Set("alt", alt)
5777	c.urlParams_.Set("prettyPrint", "false")
5778	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setLocations")
5779	urls += "?" + c.urlParams_.Encode()
5780	req, err := http.NewRequest("POST", urls, body)
5781	if err != nil {
5782		return nil, err
5783	}
5784	req.Header = reqHeaders
5785	googleapi.Expand(req.URL, map[string]string{
5786		"name": c.name,
5787	})
5788	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5789}
5790
5791// Do executes the "container.projects.locations.clusters.setLocations" call.
5792// Exactly one of *Operation or error will be non-nil. Any non-2xx
5793// status code is an error. Response headers are in either
5794// *Operation.ServerResponse.Header or (if a response was returned at
5795// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5796// to check whether the returned error was because
5797// http.StatusNotModified was returned.
5798func (c *ProjectsLocationsClustersSetLocationsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
5799	gensupport.SetOptions(c.urlParams_, opts...)
5800	res, err := c.doRequest("json")
5801	if res != nil && res.StatusCode == http.StatusNotModified {
5802		if res.Body != nil {
5803			res.Body.Close()
5804		}
5805		return nil, &googleapi.Error{
5806			Code:   res.StatusCode,
5807			Header: res.Header,
5808		}
5809	}
5810	if err != nil {
5811		return nil, err
5812	}
5813	defer googleapi.CloseBody(res)
5814	if err := googleapi.CheckResponse(res); err != nil {
5815		return nil, err
5816	}
5817	ret := &Operation{
5818		ServerResponse: googleapi.ServerResponse{
5819			Header:         res.Header,
5820			HTTPStatusCode: res.StatusCode,
5821		},
5822	}
5823	target := &ret
5824	if err := gensupport.DecodeResponse(target, res); err != nil {
5825		return nil, err
5826	}
5827	return ret, nil
5828	// {
5829	//   "description": "Sets the locations for a specific cluster.",
5830	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setLocations",
5831	//   "httpMethod": "POST",
5832	//   "id": "container.projects.locations.clusters.setLocations",
5833	//   "parameterOrder": [
5834	//     "name"
5835	//   ],
5836	//   "parameters": {
5837	//     "name": {
5838	//       "description": "The name (project, location, cluster) of the cluster to set locations.\nSpecified in the format 'projects/*/locations/*/clusters/*'.",
5839	//       "location": "path",
5840	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$",
5841	//       "required": true,
5842	//       "type": "string"
5843	//     }
5844	//   },
5845	//   "path": "v1/{+name}:setLocations",
5846	//   "request": {
5847	//     "$ref": "SetLocationsRequest"
5848	//   },
5849	//   "response": {
5850	//     "$ref": "Operation"
5851	//   },
5852	//   "scopes": [
5853	//     "https://www.googleapis.com/auth/cloud-platform"
5854	//   ]
5855	// }
5856
5857}
5858
5859// method id "container.projects.locations.clusters.setLogging":
5860
5861type ProjectsLocationsClustersSetLoggingCall struct {
5862	s                        *Service
5863	name                     string
5864	setloggingservicerequest *SetLoggingServiceRequest
5865	urlParams_               gensupport.URLParams
5866	ctx_                     context.Context
5867	header_                  http.Header
5868}
5869
5870// SetLogging: Sets the logging service for a specific cluster.
5871func (r *ProjectsLocationsClustersService) SetLogging(name string, setloggingservicerequest *SetLoggingServiceRequest) *ProjectsLocationsClustersSetLoggingCall {
5872	c := &ProjectsLocationsClustersSetLoggingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5873	c.name = name
5874	c.setloggingservicerequest = setloggingservicerequest
5875	return c
5876}
5877
5878// Fields allows partial responses to be retrieved. See
5879// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5880// for more information.
5881func (c *ProjectsLocationsClustersSetLoggingCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersSetLoggingCall {
5882	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5883	return c
5884}
5885
5886// Context sets the context to be used in this call's Do method. Any
5887// pending HTTP request will be aborted if the provided context is
5888// canceled.
5889func (c *ProjectsLocationsClustersSetLoggingCall) Context(ctx context.Context) *ProjectsLocationsClustersSetLoggingCall {
5890	c.ctx_ = ctx
5891	return c
5892}
5893
5894// Header returns an http.Header that can be modified by the caller to
5895// add HTTP headers to the request.
5896func (c *ProjectsLocationsClustersSetLoggingCall) Header() http.Header {
5897	if c.header_ == nil {
5898		c.header_ = make(http.Header)
5899	}
5900	return c.header_
5901}
5902
5903func (c *ProjectsLocationsClustersSetLoggingCall) doRequest(alt string) (*http.Response, error) {
5904	reqHeaders := make(http.Header)
5905	for k, v := range c.header_ {
5906		reqHeaders[k] = v
5907	}
5908	reqHeaders.Set("User-Agent", c.s.userAgent())
5909	var body io.Reader = nil
5910	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setloggingservicerequest)
5911	if err != nil {
5912		return nil, err
5913	}
5914	reqHeaders.Set("Content-Type", "application/json")
5915	c.urlParams_.Set("alt", alt)
5916	c.urlParams_.Set("prettyPrint", "false")
5917	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setLogging")
5918	urls += "?" + c.urlParams_.Encode()
5919	req, err := http.NewRequest("POST", urls, body)
5920	if err != nil {
5921		return nil, err
5922	}
5923	req.Header = reqHeaders
5924	googleapi.Expand(req.URL, map[string]string{
5925		"name": c.name,
5926	})
5927	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5928}
5929
5930// Do executes the "container.projects.locations.clusters.setLogging" call.
5931// Exactly one of *Operation or error will be non-nil. Any non-2xx
5932// status code is an error. Response headers are in either
5933// *Operation.ServerResponse.Header or (if a response was returned at
5934// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5935// to check whether the returned error was because
5936// http.StatusNotModified was returned.
5937func (c *ProjectsLocationsClustersSetLoggingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
5938	gensupport.SetOptions(c.urlParams_, opts...)
5939	res, err := c.doRequest("json")
5940	if res != nil && res.StatusCode == http.StatusNotModified {
5941		if res.Body != nil {
5942			res.Body.Close()
5943		}
5944		return nil, &googleapi.Error{
5945			Code:   res.StatusCode,
5946			Header: res.Header,
5947		}
5948	}
5949	if err != nil {
5950		return nil, err
5951	}
5952	defer googleapi.CloseBody(res)
5953	if err := googleapi.CheckResponse(res); err != nil {
5954		return nil, err
5955	}
5956	ret := &Operation{
5957		ServerResponse: googleapi.ServerResponse{
5958			Header:         res.Header,
5959			HTTPStatusCode: res.StatusCode,
5960		},
5961	}
5962	target := &ret
5963	if err := gensupport.DecodeResponse(target, res); err != nil {
5964		return nil, err
5965	}
5966	return ret, nil
5967	// {
5968	//   "description": "Sets the logging service for a specific cluster.",
5969	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setLogging",
5970	//   "httpMethod": "POST",
5971	//   "id": "container.projects.locations.clusters.setLogging",
5972	//   "parameterOrder": [
5973	//     "name"
5974	//   ],
5975	//   "parameters": {
5976	//     "name": {
5977	//       "description": "The name (project, location, cluster) of the cluster to set logging.\nSpecified in the format 'projects/*/locations/*/clusters/*'.",
5978	//       "location": "path",
5979	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$",
5980	//       "required": true,
5981	//       "type": "string"
5982	//     }
5983	//   },
5984	//   "path": "v1/{+name}:setLogging",
5985	//   "request": {
5986	//     "$ref": "SetLoggingServiceRequest"
5987	//   },
5988	//   "response": {
5989	//     "$ref": "Operation"
5990	//   },
5991	//   "scopes": [
5992	//     "https://www.googleapis.com/auth/cloud-platform"
5993	//   ]
5994	// }
5995
5996}
5997
5998// method id "container.projects.locations.clusters.setMaintenancePolicy":
5999
6000type ProjectsLocationsClustersSetMaintenancePolicyCall struct {
6001	s                           *Service
6002	name                        string
6003	setmaintenancepolicyrequest *SetMaintenancePolicyRequest
6004	urlParams_                  gensupport.URLParams
6005	ctx_                        context.Context
6006	header_                     http.Header
6007}
6008
6009// SetMaintenancePolicy: Sets the maintenance policy for a cluster.
6010func (r *ProjectsLocationsClustersService) SetMaintenancePolicy(name string, setmaintenancepolicyrequest *SetMaintenancePolicyRequest) *ProjectsLocationsClustersSetMaintenancePolicyCall {
6011	c := &ProjectsLocationsClustersSetMaintenancePolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6012	c.name = name
6013	c.setmaintenancepolicyrequest = setmaintenancepolicyrequest
6014	return c
6015}
6016
6017// Fields allows partial responses to be retrieved. See
6018// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6019// for more information.
6020func (c *ProjectsLocationsClustersSetMaintenancePolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersSetMaintenancePolicyCall {
6021	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6022	return c
6023}
6024
6025// Context sets the context to be used in this call's Do method. Any
6026// pending HTTP request will be aborted if the provided context is
6027// canceled.
6028func (c *ProjectsLocationsClustersSetMaintenancePolicyCall) Context(ctx context.Context) *ProjectsLocationsClustersSetMaintenancePolicyCall {
6029	c.ctx_ = ctx
6030	return c
6031}
6032
6033// Header returns an http.Header that can be modified by the caller to
6034// add HTTP headers to the request.
6035func (c *ProjectsLocationsClustersSetMaintenancePolicyCall) Header() http.Header {
6036	if c.header_ == nil {
6037		c.header_ = make(http.Header)
6038	}
6039	return c.header_
6040}
6041
6042func (c *ProjectsLocationsClustersSetMaintenancePolicyCall) doRequest(alt string) (*http.Response, error) {
6043	reqHeaders := make(http.Header)
6044	for k, v := range c.header_ {
6045		reqHeaders[k] = v
6046	}
6047	reqHeaders.Set("User-Agent", c.s.userAgent())
6048	var body io.Reader = nil
6049	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setmaintenancepolicyrequest)
6050	if err != nil {
6051		return nil, err
6052	}
6053	reqHeaders.Set("Content-Type", "application/json")
6054	c.urlParams_.Set("alt", alt)
6055	c.urlParams_.Set("prettyPrint", "false")
6056	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setMaintenancePolicy")
6057	urls += "?" + c.urlParams_.Encode()
6058	req, err := http.NewRequest("POST", urls, body)
6059	if err != nil {
6060		return nil, err
6061	}
6062	req.Header = reqHeaders
6063	googleapi.Expand(req.URL, map[string]string{
6064		"name": c.name,
6065	})
6066	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6067}
6068
6069// Do executes the "container.projects.locations.clusters.setMaintenancePolicy" call.
6070// Exactly one of *Operation or error will be non-nil. Any non-2xx
6071// status code is an error. Response headers are in either
6072// *Operation.ServerResponse.Header or (if a response was returned at
6073// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6074// to check whether the returned error was because
6075// http.StatusNotModified was returned.
6076func (c *ProjectsLocationsClustersSetMaintenancePolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
6077	gensupport.SetOptions(c.urlParams_, opts...)
6078	res, err := c.doRequest("json")
6079	if res != nil && res.StatusCode == http.StatusNotModified {
6080		if res.Body != nil {
6081			res.Body.Close()
6082		}
6083		return nil, &googleapi.Error{
6084			Code:   res.StatusCode,
6085			Header: res.Header,
6086		}
6087	}
6088	if err != nil {
6089		return nil, err
6090	}
6091	defer googleapi.CloseBody(res)
6092	if err := googleapi.CheckResponse(res); err != nil {
6093		return nil, err
6094	}
6095	ret := &Operation{
6096		ServerResponse: googleapi.ServerResponse{
6097			Header:         res.Header,
6098			HTTPStatusCode: res.StatusCode,
6099		},
6100	}
6101	target := &ret
6102	if err := gensupport.DecodeResponse(target, res); err != nil {
6103		return nil, err
6104	}
6105	return ret, nil
6106	// {
6107	//   "description": "Sets the maintenance policy for a cluster.",
6108	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setMaintenancePolicy",
6109	//   "httpMethod": "POST",
6110	//   "id": "container.projects.locations.clusters.setMaintenancePolicy",
6111	//   "parameterOrder": [
6112	//     "name"
6113	//   ],
6114	//   "parameters": {
6115	//     "name": {
6116	//       "description": "The name (project, location, cluster id) of the cluster to set maintenance\npolicy.\nSpecified in the format 'projects/*/locations/*/clusters/*'.",
6117	//       "location": "path",
6118	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$",
6119	//       "required": true,
6120	//       "type": "string"
6121	//     }
6122	//   },
6123	//   "path": "v1/{+name}:setMaintenancePolicy",
6124	//   "request": {
6125	//     "$ref": "SetMaintenancePolicyRequest"
6126	//   },
6127	//   "response": {
6128	//     "$ref": "Operation"
6129	//   },
6130	//   "scopes": [
6131	//     "https://www.googleapis.com/auth/cloud-platform"
6132	//   ]
6133	// }
6134
6135}
6136
6137// method id "container.projects.locations.clusters.setMasterAuth":
6138
6139type ProjectsLocationsClustersSetMasterAuthCall struct {
6140	s                    *Service
6141	name                 string
6142	setmasterauthrequest *SetMasterAuthRequest
6143	urlParams_           gensupport.URLParams
6144	ctx_                 context.Context
6145	header_              http.Header
6146}
6147
6148// SetMasterAuth: Sets master auth materials. Currently supports
6149// changing the admin password
6150// or a specific cluster, either via password generation or explicitly
6151// setting
6152// the password.
6153func (r *ProjectsLocationsClustersService) SetMasterAuth(name string, setmasterauthrequest *SetMasterAuthRequest) *ProjectsLocationsClustersSetMasterAuthCall {
6154	c := &ProjectsLocationsClustersSetMasterAuthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6155	c.name = name
6156	c.setmasterauthrequest = setmasterauthrequest
6157	return c
6158}
6159
6160// Fields allows partial responses to be retrieved. See
6161// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6162// for more information.
6163func (c *ProjectsLocationsClustersSetMasterAuthCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersSetMasterAuthCall {
6164	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6165	return c
6166}
6167
6168// Context sets the context to be used in this call's Do method. Any
6169// pending HTTP request will be aborted if the provided context is
6170// canceled.
6171func (c *ProjectsLocationsClustersSetMasterAuthCall) Context(ctx context.Context) *ProjectsLocationsClustersSetMasterAuthCall {
6172	c.ctx_ = ctx
6173	return c
6174}
6175
6176// Header returns an http.Header that can be modified by the caller to
6177// add HTTP headers to the request.
6178func (c *ProjectsLocationsClustersSetMasterAuthCall) Header() http.Header {
6179	if c.header_ == nil {
6180		c.header_ = make(http.Header)
6181	}
6182	return c.header_
6183}
6184
6185func (c *ProjectsLocationsClustersSetMasterAuthCall) doRequest(alt string) (*http.Response, error) {
6186	reqHeaders := make(http.Header)
6187	for k, v := range c.header_ {
6188		reqHeaders[k] = v
6189	}
6190	reqHeaders.Set("User-Agent", c.s.userAgent())
6191	var body io.Reader = nil
6192	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setmasterauthrequest)
6193	if err != nil {
6194		return nil, err
6195	}
6196	reqHeaders.Set("Content-Type", "application/json")
6197	c.urlParams_.Set("alt", alt)
6198	c.urlParams_.Set("prettyPrint", "false")
6199	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setMasterAuth")
6200	urls += "?" + c.urlParams_.Encode()
6201	req, err := http.NewRequest("POST", urls, body)
6202	if err != nil {
6203		return nil, err
6204	}
6205	req.Header = reqHeaders
6206	googleapi.Expand(req.URL, map[string]string{
6207		"name": c.name,
6208	})
6209	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6210}
6211
6212// Do executes the "container.projects.locations.clusters.setMasterAuth" call.
6213// Exactly one of *Operation or error will be non-nil. Any non-2xx
6214// status code is an error. Response headers are in either
6215// *Operation.ServerResponse.Header or (if a response was returned at
6216// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6217// to check whether the returned error was because
6218// http.StatusNotModified was returned.
6219func (c *ProjectsLocationsClustersSetMasterAuthCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
6220	gensupport.SetOptions(c.urlParams_, opts...)
6221	res, err := c.doRequest("json")
6222	if res != nil && res.StatusCode == http.StatusNotModified {
6223		if res.Body != nil {
6224			res.Body.Close()
6225		}
6226		return nil, &googleapi.Error{
6227			Code:   res.StatusCode,
6228			Header: res.Header,
6229		}
6230	}
6231	if err != nil {
6232		return nil, err
6233	}
6234	defer googleapi.CloseBody(res)
6235	if err := googleapi.CheckResponse(res); err != nil {
6236		return nil, err
6237	}
6238	ret := &Operation{
6239		ServerResponse: googleapi.ServerResponse{
6240			Header:         res.Header,
6241			HTTPStatusCode: res.StatusCode,
6242		},
6243	}
6244	target := &ret
6245	if err := gensupport.DecodeResponse(target, res); err != nil {
6246		return nil, err
6247	}
6248	return ret, nil
6249	// {
6250	//   "description": "Sets master auth materials. Currently supports changing the admin password\nor a specific cluster, either via password generation or explicitly setting\nthe password.",
6251	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setMasterAuth",
6252	//   "httpMethod": "POST",
6253	//   "id": "container.projects.locations.clusters.setMasterAuth",
6254	//   "parameterOrder": [
6255	//     "name"
6256	//   ],
6257	//   "parameters": {
6258	//     "name": {
6259	//       "description": "The name (project, location, cluster) of the cluster to set auth.\nSpecified in the format 'projects/*/locations/*/clusters/*'.",
6260	//       "location": "path",
6261	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$",
6262	//       "required": true,
6263	//       "type": "string"
6264	//     }
6265	//   },
6266	//   "path": "v1/{+name}:setMasterAuth",
6267	//   "request": {
6268	//     "$ref": "SetMasterAuthRequest"
6269	//   },
6270	//   "response": {
6271	//     "$ref": "Operation"
6272	//   },
6273	//   "scopes": [
6274	//     "https://www.googleapis.com/auth/cloud-platform"
6275	//   ]
6276	// }
6277
6278}
6279
6280// method id "container.projects.locations.clusters.setMonitoring":
6281
6282type ProjectsLocationsClustersSetMonitoringCall struct {
6283	s                           *Service
6284	name                        string
6285	setmonitoringservicerequest *SetMonitoringServiceRequest
6286	urlParams_                  gensupport.URLParams
6287	ctx_                        context.Context
6288	header_                     http.Header
6289}
6290
6291// SetMonitoring: Sets the monitoring service for a specific cluster.
6292func (r *ProjectsLocationsClustersService) SetMonitoring(name string, setmonitoringservicerequest *SetMonitoringServiceRequest) *ProjectsLocationsClustersSetMonitoringCall {
6293	c := &ProjectsLocationsClustersSetMonitoringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6294	c.name = name
6295	c.setmonitoringservicerequest = setmonitoringservicerequest
6296	return c
6297}
6298
6299// Fields allows partial responses to be retrieved. See
6300// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6301// for more information.
6302func (c *ProjectsLocationsClustersSetMonitoringCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersSetMonitoringCall {
6303	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6304	return c
6305}
6306
6307// Context sets the context to be used in this call's Do method. Any
6308// pending HTTP request will be aborted if the provided context is
6309// canceled.
6310func (c *ProjectsLocationsClustersSetMonitoringCall) Context(ctx context.Context) *ProjectsLocationsClustersSetMonitoringCall {
6311	c.ctx_ = ctx
6312	return c
6313}
6314
6315// Header returns an http.Header that can be modified by the caller to
6316// add HTTP headers to the request.
6317func (c *ProjectsLocationsClustersSetMonitoringCall) Header() http.Header {
6318	if c.header_ == nil {
6319		c.header_ = make(http.Header)
6320	}
6321	return c.header_
6322}
6323
6324func (c *ProjectsLocationsClustersSetMonitoringCall) doRequest(alt string) (*http.Response, error) {
6325	reqHeaders := make(http.Header)
6326	for k, v := range c.header_ {
6327		reqHeaders[k] = v
6328	}
6329	reqHeaders.Set("User-Agent", c.s.userAgent())
6330	var body io.Reader = nil
6331	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setmonitoringservicerequest)
6332	if err != nil {
6333		return nil, err
6334	}
6335	reqHeaders.Set("Content-Type", "application/json")
6336	c.urlParams_.Set("alt", alt)
6337	c.urlParams_.Set("prettyPrint", "false")
6338	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setMonitoring")
6339	urls += "?" + c.urlParams_.Encode()
6340	req, err := http.NewRequest("POST", urls, body)
6341	if err != nil {
6342		return nil, err
6343	}
6344	req.Header = reqHeaders
6345	googleapi.Expand(req.URL, map[string]string{
6346		"name": c.name,
6347	})
6348	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6349}
6350
6351// Do executes the "container.projects.locations.clusters.setMonitoring" call.
6352// Exactly one of *Operation or error will be non-nil. Any non-2xx
6353// status code is an error. Response headers are in either
6354// *Operation.ServerResponse.Header or (if a response was returned at
6355// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6356// to check whether the returned error was because
6357// http.StatusNotModified was returned.
6358func (c *ProjectsLocationsClustersSetMonitoringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
6359	gensupport.SetOptions(c.urlParams_, opts...)
6360	res, err := c.doRequest("json")
6361	if res != nil && res.StatusCode == http.StatusNotModified {
6362		if res.Body != nil {
6363			res.Body.Close()
6364		}
6365		return nil, &googleapi.Error{
6366			Code:   res.StatusCode,
6367			Header: res.Header,
6368		}
6369	}
6370	if err != nil {
6371		return nil, err
6372	}
6373	defer googleapi.CloseBody(res)
6374	if err := googleapi.CheckResponse(res); err != nil {
6375		return nil, err
6376	}
6377	ret := &Operation{
6378		ServerResponse: googleapi.ServerResponse{
6379			Header:         res.Header,
6380			HTTPStatusCode: res.StatusCode,
6381		},
6382	}
6383	target := &ret
6384	if err := gensupport.DecodeResponse(target, res); err != nil {
6385		return nil, err
6386	}
6387	return ret, nil
6388	// {
6389	//   "description": "Sets the monitoring service for a specific cluster.",
6390	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setMonitoring",
6391	//   "httpMethod": "POST",
6392	//   "id": "container.projects.locations.clusters.setMonitoring",
6393	//   "parameterOrder": [
6394	//     "name"
6395	//   ],
6396	//   "parameters": {
6397	//     "name": {
6398	//       "description": "The name (project, location, cluster) of the cluster to set monitoring.\nSpecified in the format 'projects/*/locations/*/clusters/*'.",
6399	//       "location": "path",
6400	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$",
6401	//       "required": true,
6402	//       "type": "string"
6403	//     }
6404	//   },
6405	//   "path": "v1/{+name}:setMonitoring",
6406	//   "request": {
6407	//     "$ref": "SetMonitoringServiceRequest"
6408	//   },
6409	//   "response": {
6410	//     "$ref": "Operation"
6411	//   },
6412	//   "scopes": [
6413	//     "https://www.googleapis.com/auth/cloud-platform"
6414	//   ]
6415	// }
6416
6417}
6418
6419// method id "container.projects.locations.clusters.setNetworkPolicy":
6420
6421type ProjectsLocationsClustersSetNetworkPolicyCall struct {
6422	s                       *Service
6423	name                    string
6424	setnetworkpolicyrequest *SetNetworkPolicyRequest
6425	urlParams_              gensupport.URLParams
6426	ctx_                    context.Context
6427	header_                 http.Header
6428}
6429
6430// SetNetworkPolicy: Enables or disables Network Policy for a cluster.
6431func (r *ProjectsLocationsClustersService) SetNetworkPolicy(name string, setnetworkpolicyrequest *SetNetworkPolicyRequest) *ProjectsLocationsClustersSetNetworkPolicyCall {
6432	c := &ProjectsLocationsClustersSetNetworkPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6433	c.name = name
6434	c.setnetworkpolicyrequest = setnetworkpolicyrequest
6435	return c
6436}
6437
6438// Fields allows partial responses to be retrieved. See
6439// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6440// for more information.
6441func (c *ProjectsLocationsClustersSetNetworkPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersSetNetworkPolicyCall {
6442	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6443	return c
6444}
6445
6446// Context sets the context to be used in this call's Do method. Any
6447// pending HTTP request will be aborted if the provided context is
6448// canceled.
6449func (c *ProjectsLocationsClustersSetNetworkPolicyCall) Context(ctx context.Context) *ProjectsLocationsClustersSetNetworkPolicyCall {
6450	c.ctx_ = ctx
6451	return c
6452}
6453
6454// Header returns an http.Header that can be modified by the caller to
6455// add HTTP headers to the request.
6456func (c *ProjectsLocationsClustersSetNetworkPolicyCall) Header() http.Header {
6457	if c.header_ == nil {
6458		c.header_ = make(http.Header)
6459	}
6460	return c.header_
6461}
6462
6463func (c *ProjectsLocationsClustersSetNetworkPolicyCall) doRequest(alt string) (*http.Response, error) {
6464	reqHeaders := make(http.Header)
6465	for k, v := range c.header_ {
6466		reqHeaders[k] = v
6467	}
6468	reqHeaders.Set("User-Agent", c.s.userAgent())
6469	var body io.Reader = nil
6470	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setnetworkpolicyrequest)
6471	if err != nil {
6472		return nil, err
6473	}
6474	reqHeaders.Set("Content-Type", "application/json")
6475	c.urlParams_.Set("alt", alt)
6476	c.urlParams_.Set("prettyPrint", "false")
6477	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setNetworkPolicy")
6478	urls += "?" + c.urlParams_.Encode()
6479	req, err := http.NewRequest("POST", urls, body)
6480	if err != nil {
6481		return nil, err
6482	}
6483	req.Header = reqHeaders
6484	googleapi.Expand(req.URL, map[string]string{
6485		"name": c.name,
6486	})
6487	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6488}
6489
6490// Do executes the "container.projects.locations.clusters.setNetworkPolicy" call.
6491// Exactly one of *Operation or error will be non-nil. Any non-2xx
6492// status code is an error. Response headers are in either
6493// *Operation.ServerResponse.Header or (if a response was returned at
6494// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6495// to check whether the returned error was because
6496// http.StatusNotModified was returned.
6497func (c *ProjectsLocationsClustersSetNetworkPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
6498	gensupport.SetOptions(c.urlParams_, opts...)
6499	res, err := c.doRequest("json")
6500	if res != nil && res.StatusCode == http.StatusNotModified {
6501		if res.Body != nil {
6502			res.Body.Close()
6503		}
6504		return nil, &googleapi.Error{
6505			Code:   res.StatusCode,
6506			Header: res.Header,
6507		}
6508	}
6509	if err != nil {
6510		return nil, err
6511	}
6512	defer googleapi.CloseBody(res)
6513	if err := googleapi.CheckResponse(res); err != nil {
6514		return nil, err
6515	}
6516	ret := &Operation{
6517		ServerResponse: googleapi.ServerResponse{
6518			Header:         res.Header,
6519			HTTPStatusCode: res.StatusCode,
6520		},
6521	}
6522	target := &ret
6523	if err := gensupport.DecodeResponse(target, res); err != nil {
6524		return nil, err
6525	}
6526	return ret, nil
6527	// {
6528	//   "description": "Enables or disables Network Policy for a cluster.",
6529	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setNetworkPolicy",
6530	//   "httpMethod": "POST",
6531	//   "id": "container.projects.locations.clusters.setNetworkPolicy",
6532	//   "parameterOrder": [
6533	//     "name"
6534	//   ],
6535	//   "parameters": {
6536	//     "name": {
6537	//       "description": "The name (project, location, cluster id) of the cluster to set networking\npolicy. Specified in the format 'projects/*/locations/*/clusters/*'.",
6538	//       "location": "path",
6539	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$",
6540	//       "required": true,
6541	//       "type": "string"
6542	//     }
6543	//   },
6544	//   "path": "v1/{+name}:setNetworkPolicy",
6545	//   "request": {
6546	//     "$ref": "SetNetworkPolicyRequest"
6547	//   },
6548	//   "response": {
6549	//     "$ref": "Operation"
6550	//   },
6551	//   "scopes": [
6552	//     "https://www.googleapis.com/auth/cloud-platform"
6553	//   ]
6554	// }
6555
6556}
6557
6558// method id "container.projects.locations.clusters.setResourceLabels":
6559
6560type ProjectsLocationsClustersSetResourceLabelsCall struct {
6561	s                *Service
6562	name             string
6563	setlabelsrequest *SetLabelsRequest
6564	urlParams_       gensupport.URLParams
6565	ctx_             context.Context
6566	header_          http.Header
6567}
6568
6569// SetResourceLabels: Sets labels on a cluster.
6570func (r *ProjectsLocationsClustersService) SetResourceLabels(name string, setlabelsrequest *SetLabelsRequest) *ProjectsLocationsClustersSetResourceLabelsCall {
6571	c := &ProjectsLocationsClustersSetResourceLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6572	c.name = name
6573	c.setlabelsrequest = setlabelsrequest
6574	return c
6575}
6576
6577// Fields allows partial responses to be retrieved. See
6578// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6579// for more information.
6580func (c *ProjectsLocationsClustersSetResourceLabelsCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersSetResourceLabelsCall {
6581	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6582	return c
6583}
6584
6585// Context sets the context to be used in this call's Do method. Any
6586// pending HTTP request will be aborted if the provided context is
6587// canceled.
6588func (c *ProjectsLocationsClustersSetResourceLabelsCall) Context(ctx context.Context) *ProjectsLocationsClustersSetResourceLabelsCall {
6589	c.ctx_ = ctx
6590	return c
6591}
6592
6593// Header returns an http.Header that can be modified by the caller to
6594// add HTTP headers to the request.
6595func (c *ProjectsLocationsClustersSetResourceLabelsCall) Header() http.Header {
6596	if c.header_ == nil {
6597		c.header_ = make(http.Header)
6598	}
6599	return c.header_
6600}
6601
6602func (c *ProjectsLocationsClustersSetResourceLabelsCall) doRequest(alt string) (*http.Response, error) {
6603	reqHeaders := make(http.Header)
6604	for k, v := range c.header_ {
6605		reqHeaders[k] = v
6606	}
6607	reqHeaders.Set("User-Agent", c.s.userAgent())
6608	var body io.Reader = nil
6609	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setlabelsrequest)
6610	if err != nil {
6611		return nil, err
6612	}
6613	reqHeaders.Set("Content-Type", "application/json")
6614	c.urlParams_.Set("alt", alt)
6615	c.urlParams_.Set("prettyPrint", "false")
6616	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setResourceLabels")
6617	urls += "?" + c.urlParams_.Encode()
6618	req, err := http.NewRequest("POST", urls, body)
6619	if err != nil {
6620		return nil, err
6621	}
6622	req.Header = reqHeaders
6623	googleapi.Expand(req.URL, map[string]string{
6624		"name": c.name,
6625	})
6626	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6627}
6628
6629// Do executes the "container.projects.locations.clusters.setResourceLabels" call.
6630// Exactly one of *Operation or error will be non-nil. Any non-2xx
6631// status code is an error. Response headers are in either
6632// *Operation.ServerResponse.Header or (if a response was returned at
6633// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6634// to check whether the returned error was because
6635// http.StatusNotModified was returned.
6636func (c *ProjectsLocationsClustersSetResourceLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
6637	gensupport.SetOptions(c.urlParams_, opts...)
6638	res, err := c.doRequest("json")
6639	if res != nil && res.StatusCode == http.StatusNotModified {
6640		if res.Body != nil {
6641			res.Body.Close()
6642		}
6643		return nil, &googleapi.Error{
6644			Code:   res.StatusCode,
6645			Header: res.Header,
6646		}
6647	}
6648	if err != nil {
6649		return nil, err
6650	}
6651	defer googleapi.CloseBody(res)
6652	if err := googleapi.CheckResponse(res); err != nil {
6653		return nil, err
6654	}
6655	ret := &Operation{
6656		ServerResponse: googleapi.ServerResponse{
6657			Header:         res.Header,
6658			HTTPStatusCode: res.StatusCode,
6659		},
6660	}
6661	target := &ret
6662	if err := gensupport.DecodeResponse(target, res); err != nil {
6663		return nil, err
6664	}
6665	return ret, nil
6666	// {
6667	//   "description": "Sets labels on a cluster.",
6668	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:setResourceLabels",
6669	//   "httpMethod": "POST",
6670	//   "id": "container.projects.locations.clusters.setResourceLabels",
6671	//   "parameterOrder": [
6672	//     "name"
6673	//   ],
6674	//   "parameters": {
6675	//     "name": {
6676	//       "description": "The name (project, location, cluster id) of the cluster to set labels.\nSpecified in the format 'projects/*/locations/*/clusters/*'.",
6677	//       "location": "path",
6678	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$",
6679	//       "required": true,
6680	//       "type": "string"
6681	//     }
6682	//   },
6683	//   "path": "v1/{+name}:setResourceLabels",
6684	//   "request": {
6685	//     "$ref": "SetLabelsRequest"
6686	//   },
6687	//   "response": {
6688	//     "$ref": "Operation"
6689	//   },
6690	//   "scopes": [
6691	//     "https://www.googleapis.com/auth/cloud-platform"
6692	//   ]
6693	// }
6694
6695}
6696
6697// method id "container.projects.locations.clusters.startIpRotation":
6698
6699type ProjectsLocationsClustersStartIpRotationCall struct {
6700	s                      *Service
6701	name                   string
6702	startiprotationrequest *StartIPRotationRequest
6703	urlParams_             gensupport.URLParams
6704	ctx_                   context.Context
6705	header_                http.Header
6706}
6707
6708// StartIpRotation: Starts master IP rotation.
6709func (r *ProjectsLocationsClustersService) StartIpRotation(name string, startiprotationrequest *StartIPRotationRequest) *ProjectsLocationsClustersStartIpRotationCall {
6710	c := &ProjectsLocationsClustersStartIpRotationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6711	c.name = name
6712	c.startiprotationrequest = startiprotationrequest
6713	return c
6714}
6715
6716// Fields allows partial responses to be retrieved. See
6717// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6718// for more information.
6719func (c *ProjectsLocationsClustersStartIpRotationCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersStartIpRotationCall {
6720	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6721	return c
6722}
6723
6724// Context sets the context to be used in this call's Do method. Any
6725// pending HTTP request will be aborted if the provided context is
6726// canceled.
6727func (c *ProjectsLocationsClustersStartIpRotationCall) Context(ctx context.Context) *ProjectsLocationsClustersStartIpRotationCall {
6728	c.ctx_ = ctx
6729	return c
6730}
6731
6732// Header returns an http.Header that can be modified by the caller to
6733// add HTTP headers to the request.
6734func (c *ProjectsLocationsClustersStartIpRotationCall) Header() http.Header {
6735	if c.header_ == nil {
6736		c.header_ = make(http.Header)
6737	}
6738	return c.header_
6739}
6740
6741func (c *ProjectsLocationsClustersStartIpRotationCall) doRequest(alt string) (*http.Response, error) {
6742	reqHeaders := make(http.Header)
6743	for k, v := range c.header_ {
6744		reqHeaders[k] = v
6745	}
6746	reqHeaders.Set("User-Agent", c.s.userAgent())
6747	var body io.Reader = nil
6748	body, err := googleapi.WithoutDataWrapper.JSONReader(c.startiprotationrequest)
6749	if err != nil {
6750		return nil, err
6751	}
6752	reqHeaders.Set("Content-Type", "application/json")
6753	c.urlParams_.Set("alt", alt)
6754	c.urlParams_.Set("prettyPrint", "false")
6755	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:startIpRotation")
6756	urls += "?" + c.urlParams_.Encode()
6757	req, err := http.NewRequest("POST", urls, body)
6758	if err != nil {
6759		return nil, err
6760	}
6761	req.Header = reqHeaders
6762	googleapi.Expand(req.URL, map[string]string{
6763		"name": c.name,
6764	})
6765	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6766}
6767
6768// Do executes the "container.projects.locations.clusters.startIpRotation" call.
6769// Exactly one of *Operation or error will be non-nil. Any non-2xx
6770// status code is an error. Response headers are in either
6771// *Operation.ServerResponse.Header or (if a response was returned at
6772// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6773// to check whether the returned error was because
6774// http.StatusNotModified was returned.
6775func (c *ProjectsLocationsClustersStartIpRotationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
6776	gensupport.SetOptions(c.urlParams_, opts...)
6777	res, err := c.doRequest("json")
6778	if res != nil && res.StatusCode == http.StatusNotModified {
6779		if res.Body != nil {
6780			res.Body.Close()
6781		}
6782		return nil, &googleapi.Error{
6783			Code:   res.StatusCode,
6784			Header: res.Header,
6785		}
6786	}
6787	if err != nil {
6788		return nil, err
6789	}
6790	defer googleapi.CloseBody(res)
6791	if err := googleapi.CheckResponse(res); err != nil {
6792		return nil, err
6793	}
6794	ret := &Operation{
6795		ServerResponse: googleapi.ServerResponse{
6796			Header:         res.Header,
6797			HTTPStatusCode: res.StatusCode,
6798		},
6799	}
6800	target := &ret
6801	if err := gensupport.DecodeResponse(target, res); err != nil {
6802		return nil, err
6803	}
6804	return ret, nil
6805	// {
6806	//   "description": "Starts master IP rotation.",
6807	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:startIpRotation",
6808	//   "httpMethod": "POST",
6809	//   "id": "container.projects.locations.clusters.startIpRotation",
6810	//   "parameterOrder": [
6811	//     "name"
6812	//   ],
6813	//   "parameters": {
6814	//     "name": {
6815	//       "description": "The name (project, location, cluster id) of the cluster to start IP\nrotation. Specified in the format 'projects/*/locations/*/clusters/*'.",
6816	//       "location": "path",
6817	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$",
6818	//       "required": true,
6819	//       "type": "string"
6820	//     }
6821	//   },
6822	//   "path": "v1/{+name}:startIpRotation",
6823	//   "request": {
6824	//     "$ref": "StartIPRotationRequest"
6825	//   },
6826	//   "response": {
6827	//     "$ref": "Operation"
6828	//   },
6829	//   "scopes": [
6830	//     "https://www.googleapis.com/auth/cloud-platform"
6831	//   ]
6832	// }
6833
6834}
6835
6836// method id "container.projects.locations.clusters.update":
6837
6838type ProjectsLocationsClustersUpdateCall struct {
6839	s                    *Service
6840	name                 string
6841	updateclusterrequest *UpdateClusterRequest
6842	urlParams_           gensupport.URLParams
6843	ctx_                 context.Context
6844	header_              http.Header
6845}
6846
6847// Update: Updates the settings of a specific cluster.
6848func (r *ProjectsLocationsClustersService) Update(name string, updateclusterrequest *UpdateClusterRequest) *ProjectsLocationsClustersUpdateCall {
6849	c := &ProjectsLocationsClustersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6850	c.name = name
6851	c.updateclusterrequest = updateclusterrequest
6852	return c
6853}
6854
6855// Fields allows partial responses to be retrieved. See
6856// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6857// for more information.
6858func (c *ProjectsLocationsClustersUpdateCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersUpdateCall {
6859	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6860	return c
6861}
6862
6863// Context sets the context to be used in this call's Do method. Any
6864// pending HTTP request will be aborted if the provided context is
6865// canceled.
6866func (c *ProjectsLocationsClustersUpdateCall) Context(ctx context.Context) *ProjectsLocationsClustersUpdateCall {
6867	c.ctx_ = ctx
6868	return c
6869}
6870
6871// Header returns an http.Header that can be modified by the caller to
6872// add HTTP headers to the request.
6873func (c *ProjectsLocationsClustersUpdateCall) Header() http.Header {
6874	if c.header_ == nil {
6875		c.header_ = make(http.Header)
6876	}
6877	return c.header_
6878}
6879
6880func (c *ProjectsLocationsClustersUpdateCall) doRequest(alt string) (*http.Response, error) {
6881	reqHeaders := make(http.Header)
6882	for k, v := range c.header_ {
6883		reqHeaders[k] = v
6884	}
6885	reqHeaders.Set("User-Agent", c.s.userAgent())
6886	var body io.Reader = nil
6887	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updateclusterrequest)
6888	if err != nil {
6889		return nil, err
6890	}
6891	reqHeaders.Set("Content-Type", "application/json")
6892	c.urlParams_.Set("alt", alt)
6893	c.urlParams_.Set("prettyPrint", "false")
6894	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
6895	urls += "?" + c.urlParams_.Encode()
6896	req, err := http.NewRequest("PUT", urls, body)
6897	if err != nil {
6898		return nil, err
6899	}
6900	req.Header = reqHeaders
6901	googleapi.Expand(req.URL, map[string]string{
6902		"name": c.name,
6903	})
6904	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6905}
6906
6907// Do executes the "container.projects.locations.clusters.update" call.
6908// Exactly one of *Operation or error will be non-nil. Any non-2xx
6909// status code is an error. Response headers are in either
6910// *Operation.ServerResponse.Header or (if a response was returned at
6911// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6912// to check whether the returned error was because
6913// http.StatusNotModified was returned.
6914func (c *ProjectsLocationsClustersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
6915	gensupport.SetOptions(c.urlParams_, opts...)
6916	res, err := c.doRequest("json")
6917	if res != nil && res.StatusCode == http.StatusNotModified {
6918		if res.Body != nil {
6919			res.Body.Close()
6920		}
6921		return nil, &googleapi.Error{
6922			Code:   res.StatusCode,
6923			Header: res.Header,
6924		}
6925	}
6926	if err != nil {
6927		return nil, err
6928	}
6929	defer googleapi.CloseBody(res)
6930	if err := googleapi.CheckResponse(res); err != nil {
6931		return nil, err
6932	}
6933	ret := &Operation{
6934		ServerResponse: googleapi.ServerResponse{
6935			Header:         res.Header,
6936			HTTPStatusCode: res.StatusCode,
6937		},
6938	}
6939	target := &ret
6940	if err := gensupport.DecodeResponse(target, res); err != nil {
6941		return nil, err
6942	}
6943	return ret, nil
6944	// {
6945	//   "description": "Updates the settings of a specific cluster.",
6946	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}",
6947	//   "httpMethod": "PUT",
6948	//   "id": "container.projects.locations.clusters.update",
6949	//   "parameterOrder": [
6950	//     "name"
6951	//   ],
6952	//   "parameters": {
6953	//     "name": {
6954	//       "description": "The name (project, location, cluster) of the cluster to update.\nSpecified in the format 'projects/*/locations/*/clusters/*'.",
6955	//       "location": "path",
6956	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$",
6957	//       "required": true,
6958	//       "type": "string"
6959	//     }
6960	//   },
6961	//   "path": "v1/{+name}",
6962	//   "request": {
6963	//     "$ref": "UpdateClusterRequest"
6964	//   },
6965	//   "response": {
6966	//     "$ref": "Operation"
6967	//   },
6968	//   "scopes": [
6969	//     "https://www.googleapis.com/auth/cloud-platform"
6970	//   ]
6971	// }
6972
6973}
6974
6975// method id "container.projects.locations.clusters.updateMaster":
6976
6977type ProjectsLocationsClustersUpdateMasterCall struct {
6978	s                   *Service
6979	name                string
6980	updatemasterrequest *UpdateMasterRequest
6981	urlParams_          gensupport.URLParams
6982	ctx_                context.Context
6983	header_             http.Header
6984}
6985
6986// UpdateMaster: Updates the master for a specific cluster.
6987func (r *ProjectsLocationsClustersService) UpdateMaster(name string, updatemasterrequest *UpdateMasterRequest) *ProjectsLocationsClustersUpdateMasterCall {
6988	c := &ProjectsLocationsClustersUpdateMasterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6989	c.name = name
6990	c.updatemasterrequest = updatemasterrequest
6991	return c
6992}
6993
6994// Fields allows partial responses to be retrieved. See
6995// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6996// for more information.
6997func (c *ProjectsLocationsClustersUpdateMasterCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersUpdateMasterCall {
6998	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6999	return c
7000}
7001
7002// Context sets the context to be used in this call's Do method. Any
7003// pending HTTP request will be aborted if the provided context is
7004// canceled.
7005func (c *ProjectsLocationsClustersUpdateMasterCall) Context(ctx context.Context) *ProjectsLocationsClustersUpdateMasterCall {
7006	c.ctx_ = ctx
7007	return c
7008}
7009
7010// Header returns an http.Header that can be modified by the caller to
7011// add HTTP headers to the request.
7012func (c *ProjectsLocationsClustersUpdateMasterCall) Header() http.Header {
7013	if c.header_ == nil {
7014		c.header_ = make(http.Header)
7015	}
7016	return c.header_
7017}
7018
7019func (c *ProjectsLocationsClustersUpdateMasterCall) doRequest(alt string) (*http.Response, error) {
7020	reqHeaders := make(http.Header)
7021	for k, v := range c.header_ {
7022		reqHeaders[k] = v
7023	}
7024	reqHeaders.Set("User-Agent", c.s.userAgent())
7025	var body io.Reader = nil
7026	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updatemasterrequest)
7027	if err != nil {
7028		return nil, err
7029	}
7030	reqHeaders.Set("Content-Type", "application/json")
7031	c.urlParams_.Set("alt", alt)
7032	c.urlParams_.Set("prettyPrint", "false")
7033	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:updateMaster")
7034	urls += "?" + c.urlParams_.Encode()
7035	req, err := http.NewRequest("POST", urls, body)
7036	if err != nil {
7037		return nil, err
7038	}
7039	req.Header = reqHeaders
7040	googleapi.Expand(req.URL, map[string]string{
7041		"name": c.name,
7042	})
7043	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7044}
7045
7046// Do executes the "container.projects.locations.clusters.updateMaster" call.
7047// Exactly one of *Operation or error will be non-nil. Any non-2xx
7048// status code is an error. Response headers are in either
7049// *Operation.ServerResponse.Header or (if a response was returned at
7050// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
7051// to check whether the returned error was because
7052// http.StatusNotModified was returned.
7053func (c *ProjectsLocationsClustersUpdateMasterCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
7054	gensupport.SetOptions(c.urlParams_, opts...)
7055	res, err := c.doRequest("json")
7056	if res != nil && res.StatusCode == http.StatusNotModified {
7057		if res.Body != nil {
7058			res.Body.Close()
7059		}
7060		return nil, &googleapi.Error{
7061			Code:   res.StatusCode,
7062			Header: res.Header,
7063		}
7064	}
7065	if err != nil {
7066		return nil, err
7067	}
7068	defer googleapi.CloseBody(res)
7069	if err := googleapi.CheckResponse(res); err != nil {
7070		return nil, err
7071	}
7072	ret := &Operation{
7073		ServerResponse: googleapi.ServerResponse{
7074			Header:         res.Header,
7075			HTTPStatusCode: res.StatusCode,
7076		},
7077	}
7078	target := &ret
7079	if err := gensupport.DecodeResponse(target, res); err != nil {
7080		return nil, err
7081	}
7082	return ret, nil
7083	// {
7084	//   "description": "Updates the master for a specific cluster.",
7085	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:updateMaster",
7086	//   "httpMethod": "POST",
7087	//   "id": "container.projects.locations.clusters.updateMaster",
7088	//   "parameterOrder": [
7089	//     "name"
7090	//   ],
7091	//   "parameters": {
7092	//     "name": {
7093	//       "description": "The name (project, location, cluster) of the cluster to update.\nSpecified in the format 'projects/*/locations/*/clusters/*'.",
7094	//       "location": "path",
7095	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$",
7096	//       "required": true,
7097	//       "type": "string"
7098	//     }
7099	//   },
7100	//   "path": "v1/{+name}:updateMaster",
7101	//   "request": {
7102	//     "$ref": "UpdateMasterRequest"
7103	//   },
7104	//   "response": {
7105	//     "$ref": "Operation"
7106	//   },
7107	//   "scopes": [
7108	//     "https://www.googleapis.com/auth/cloud-platform"
7109	//   ]
7110	// }
7111
7112}
7113
7114// method id "container.projects.locations.clusters.nodePools.create":
7115
7116type ProjectsLocationsClustersNodePoolsCreateCall struct {
7117	s                     *Service
7118	parent                string
7119	createnodepoolrequest *CreateNodePoolRequest
7120	urlParams_            gensupport.URLParams
7121	ctx_                  context.Context
7122	header_               http.Header
7123}
7124
7125// Create: Creates a node pool for a cluster.
7126func (r *ProjectsLocationsClustersNodePoolsService) Create(parent string, createnodepoolrequest *CreateNodePoolRequest) *ProjectsLocationsClustersNodePoolsCreateCall {
7127	c := &ProjectsLocationsClustersNodePoolsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7128	c.parent = parent
7129	c.createnodepoolrequest = createnodepoolrequest
7130	return c
7131}
7132
7133// Fields allows partial responses to be retrieved. See
7134// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7135// for more information.
7136func (c *ProjectsLocationsClustersNodePoolsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersNodePoolsCreateCall {
7137	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7138	return c
7139}
7140
7141// Context sets the context to be used in this call's Do method. Any
7142// pending HTTP request will be aborted if the provided context is
7143// canceled.
7144func (c *ProjectsLocationsClustersNodePoolsCreateCall) Context(ctx context.Context) *ProjectsLocationsClustersNodePoolsCreateCall {
7145	c.ctx_ = ctx
7146	return c
7147}
7148
7149// Header returns an http.Header that can be modified by the caller to
7150// add HTTP headers to the request.
7151func (c *ProjectsLocationsClustersNodePoolsCreateCall) Header() http.Header {
7152	if c.header_ == nil {
7153		c.header_ = make(http.Header)
7154	}
7155	return c.header_
7156}
7157
7158func (c *ProjectsLocationsClustersNodePoolsCreateCall) doRequest(alt string) (*http.Response, error) {
7159	reqHeaders := make(http.Header)
7160	for k, v := range c.header_ {
7161		reqHeaders[k] = v
7162	}
7163	reqHeaders.Set("User-Agent", c.s.userAgent())
7164	var body io.Reader = nil
7165	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createnodepoolrequest)
7166	if err != nil {
7167		return nil, err
7168	}
7169	reqHeaders.Set("Content-Type", "application/json")
7170	c.urlParams_.Set("alt", alt)
7171	c.urlParams_.Set("prettyPrint", "false")
7172	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/nodePools")
7173	urls += "?" + c.urlParams_.Encode()
7174	req, err := http.NewRequest("POST", urls, body)
7175	if err != nil {
7176		return nil, err
7177	}
7178	req.Header = reqHeaders
7179	googleapi.Expand(req.URL, map[string]string{
7180		"parent": c.parent,
7181	})
7182	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7183}
7184
7185// Do executes the "container.projects.locations.clusters.nodePools.create" call.
7186// Exactly one of *Operation or error will be non-nil. Any non-2xx
7187// status code is an error. Response headers are in either
7188// *Operation.ServerResponse.Header or (if a response was returned at
7189// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
7190// to check whether the returned error was because
7191// http.StatusNotModified was returned.
7192func (c *ProjectsLocationsClustersNodePoolsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
7193	gensupport.SetOptions(c.urlParams_, opts...)
7194	res, err := c.doRequest("json")
7195	if res != nil && res.StatusCode == http.StatusNotModified {
7196		if res.Body != nil {
7197			res.Body.Close()
7198		}
7199		return nil, &googleapi.Error{
7200			Code:   res.StatusCode,
7201			Header: res.Header,
7202		}
7203	}
7204	if err != nil {
7205		return nil, err
7206	}
7207	defer googleapi.CloseBody(res)
7208	if err := googleapi.CheckResponse(res); err != nil {
7209		return nil, err
7210	}
7211	ret := &Operation{
7212		ServerResponse: googleapi.ServerResponse{
7213			Header:         res.Header,
7214			HTTPStatusCode: res.StatusCode,
7215		},
7216	}
7217	target := &ret
7218	if err := gensupport.DecodeResponse(target, res); err != nil {
7219		return nil, err
7220	}
7221	return ret, nil
7222	// {
7223	//   "description": "Creates a node pool for a cluster.",
7224	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools",
7225	//   "httpMethod": "POST",
7226	//   "id": "container.projects.locations.clusters.nodePools.create",
7227	//   "parameterOrder": [
7228	//     "parent"
7229	//   ],
7230	//   "parameters": {
7231	//     "parent": {
7232	//       "description": "The parent (project, location, cluster id) where the node pool will be\ncreated. Specified in the format\n'projects/*/locations/*/clusters/*'.",
7233	//       "location": "path",
7234	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$",
7235	//       "required": true,
7236	//       "type": "string"
7237	//     }
7238	//   },
7239	//   "path": "v1/{+parent}/nodePools",
7240	//   "request": {
7241	//     "$ref": "CreateNodePoolRequest"
7242	//   },
7243	//   "response": {
7244	//     "$ref": "Operation"
7245	//   },
7246	//   "scopes": [
7247	//     "https://www.googleapis.com/auth/cloud-platform"
7248	//   ]
7249	// }
7250
7251}
7252
7253// method id "container.projects.locations.clusters.nodePools.delete":
7254
7255type ProjectsLocationsClustersNodePoolsDeleteCall struct {
7256	s          *Service
7257	name       string
7258	urlParams_ gensupport.URLParams
7259	ctx_       context.Context
7260	header_    http.Header
7261}
7262
7263// Delete: Deletes a node pool from a cluster.
7264func (r *ProjectsLocationsClustersNodePoolsService) Delete(name string) *ProjectsLocationsClustersNodePoolsDeleteCall {
7265	c := &ProjectsLocationsClustersNodePoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7266	c.name = name
7267	return c
7268}
7269
7270// ClusterId sets the optional parameter "clusterId": Deprecated. The
7271// name of the cluster.
7272// This field has been deprecated and replaced by the name field.
7273func (c *ProjectsLocationsClustersNodePoolsDeleteCall) ClusterId(clusterId string) *ProjectsLocationsClustersNodePoolsDeleteCall {
7274	c.urlParams_.Set("clusterId", clusterId)
7275	return c
7276}
7277
7278// NodePoolId sets the optional parameter "nodePoolId": Deprecated. The
7279// name of the node pool to delete.
7280// This field has been deprecated and replaced by the name field.
7281func (c *ProjectsLocationsClustersNodePoolsDeleteCall) NodePoolId(nodePoolId string) *ProjectsLocationsClustersNodePoolsDeleteCall {
7282	c.urlParams_.Set("nodePoolId", nodePoolId)
7283	return c
7284}
7285
7286// ProjectId sets the optional parameter "projectId": Deprecated. The
7287// Google Developers Console [project ID or
7288// project
7289// number](https://developers.google.com/console/help/new/#projec
7290// tnumber).
7291// This field has been deprecated and replaced by the name field.
7292func (c *ProjectsLocationsClustersNodePoolsDeleteCall) ProjectId(projectId string) *ProjectsLocationsClustersNodePoolsDeleteCall {
7293	c.urlParams_.Set("projectId", projectId)
7294	return c
7295}
7296
7297// Zone sets the optional parameter "zone": Deprecated. The name of the
7298// Google Compute Engine
7299// [zone](/compute/docs/zones#available) in which the
7300// cluster
7301// resides.
7302// This field has been deprecated and replaced by the name field.
7303func (c *ProjectsLocationsClustersNodePoolsDeleteCall) Zone(zone string) *ProjectsLocationsClustersNodePoolsDeleteCall {
7304	c.urlParams_.Set("zone", zone)
7305	return c
7306}
7307
7308// Fields allows partial responses to be retrieved. See
7309// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7310// for more information.
7311func (c *ProjectsLocationsClustersNodePoolsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersNodePoolsDeleteCall {
7312	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7313	return c
7314}
7315
7316// Context sets the context to be used in this call's Do method. Any
7317// pending HTTP request will be aborted if the provided context is
7318// canceled.
7319func (c *ProjectsLocationsClustersNodePoolsDeleteCall) Context(ctx context.Context) *ProjectsLocationsClustersNodePoolsDeleteCall {
7320	c.ctx_ = ctx
7321	return c
7322}
7323
7324// Header returns an http.Header that can be modified by the caller to
7325// add HTTP headers to the request.
7326func (c *ProjectsLocationsClustersNodePoolsDeleteCall) Header() http.Header {
7327	if c.header_ == nil {
7328		c.header_ = make(http.Header)
7329	}
7330	return c.header_
7331}
7332
7333func (c *ProjectsLocationsClustersNodePoolsDeleteCall) doRequest(alt string) (*http.Response, error) {
7334	reqHeaders := make(http.Header)
7335	for k, v := range c.header_ {
7336		reqHeaders[k] = v
7337	}
7338	reqHeaders.Set("User-Agent", c.s.userAgent())
7339	var body io.Reader = nil
7340	c.urlParams_.Set("alt", alt)
7341	c.urlParams_.Set("prettyPrint", "false")
7342	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
7343	urls += "?" + c.urlParams_.Encode()
7344	req, err := http.NewRequest("DELETE", urls, body)
7345	if err != nil {
7346		return nil, err
7347	}
7348	req.Header = reqHeaders
7349	googleapi.Expand(req.URL, map[string]string{
7350		"name": c.name,
7351	})
7352	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7353}
7354
7355// Do executes the "container.projects.locations.clusters.nodePools.delete" call.
7356// Exactly one of *Operation or error will be non-nil. Any non-2xx
7357// status code is an error. Response headers are in either
7358// *Operation.ServerResponse.Header or (if a response was returned at
7359// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
7360// to check whether the returned error was because
7361// http.StatusNotModified was returned.
7362func (c *ProjectsLocationsClustersNodePoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
7363	gensupport.SetOptions(c.urlParams_, opts...)
7364	res, err := c.doRequest("json")
7365	if res != nil && res.StatusCode == http.StatusNotModified {
7366		if res.Body != nil {
7367			res.Body.Close()
7368		}
7369		return nil, &googleapi.Error{
7370			Code:   res.StatusCode,
7371			Header: res.Header,
7372		}
7373	}
7374	if err != nil {
7375		return nil, err
7376	}
7377	defer googleapi.CloseBody(res)
7378	if err := googleapi.CheckResponse(res); err != nil {
7379		return nil, err
7380	}
7381	ret := &Operation{
7382		ServerResponse: googleapi.ServerResponse{
7383			Header:         res.Header,
7384			HTTPStatusCode: res.StatusCode,
7385		},
7386	}
7387	target := &ret
7388	if err := gensupport.DecodeResponse(target, res); err != nil {
7389		return nil, err
7390	}
7391	return ret, nil
7392	// {
7393	//   "description": "Deletes a node pool from a cluster.",
7394	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}",
7395	//   "httpMethod": "DELETE",
7396	//   "id": "container.projects.locations.clusters.nodePools.delete",
7397	//   "parameterOrder": [
7398	//     "name"
7399	//   ],
7400	//   "parameters": {
7401	//     "clusterId": {
7402	//       "description": "Deprecated. The name of the cluster.\nThis field has been deprecated and replaced by the name field.",
7403	//       "location": "query",
7404	//       "type": "string"
7405	//     },
7406	//     "name": {
7407	//       "description": "The name (project, location, cluster, node pool id) of the node pool to\ndelete. Specified in the format\n'projects/*/locations/*/clusters/*/nodePools/*'.",
7408	//       "location": "path",
7409	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$",
7410	//       "required": true,
7411	//       "type": "string"
7412	//     },
7413	//     "nodePoolId": {
7414	//       "description": "Deprecated. The name of the node pool to delete.\nThis field has been deprecated and replaced by the name field.",
7415	//       "location": "query",
7416	//       "type": "string"
7417	//     },
7418	//     "projectId": {
7419	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field has been deprecated and replaced by the name field.",
7420	//       "location": "query",
7421	//       "type": "string"
7422	//     },
7423	//     "zone": {
7424	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
7425	//       "location": "query",
7426	//       "type": "string"
7427	//     }
7428	//   },
7429	//   "path": "v1/{+name}",
7430	//   "response": {
7431	//     "$ref": "Operation"
7432	//   },
7433	//   "scopes": [
7434	//     "https://www.googleapis.com/auth/cloud-platform"
7435	//   ]
7436	// }
7437
7438}
7439
7440// method id "container.projects.locations.clusters.nodePools.get":
7441
7442type ProjectsLocationsClustersNodePoolsGetCall struct {
7443	s            *Service
7444	name         string
7445	urlParams_   gensupport.URLParams
7446	ifNoneMatch_ string
7447	ctx_         context.Context
7448	header_      http.Header
7449}
7450
7451// Get: Retrieves the requested node pool.
7452func (r *ProjectsLocationsClustersNodePoolsService) Get(name string) *ProjectsLocationsClustersNodePoolsGetCall {
7453	c := &ProjectsLocationsClustersNodePoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7454	c.name = name
7455	return c
7456}
7457
7458// ClusterId sets the optional parameter "clusterId": Deprecated. The
7459// name of the cluster.
7460// This field has been deprecated and replaced by the name field.
7461func (c *ProjectsLocationsClustersNodePoolsGetCall) ClusterId(clusterId string) *ProjectsLocationsClustersNodePoolsGetCall {
7462	c.urlParams_.Set("clusterId", clusterId)
7463	return c
7464}
7465
7466// NodePoolId sets the optional parameter "nodePoolId": Deprecated. The
7467// name of the node pool.
7468// This field has been deprecated and replaced by the name field.
7469func (c *ProjectsLocationsClustersNodePoolsGetCall) NodePoolId(nodePoolId string) *ProjectsLocationsClustersNodePoolsGetCall {
7470	c.urlParams_.Set("nodePoolId", nodePoolId)
7471	return c
7472}
7473
7474// ProjectId sets the optional parameter "projectId": Deprecated. The
7475// Google Developers Console [project ID or
7476// project
7477// number](https://developers.google.com/console/help/new/#projec
7478// tnumber).
7479// This field has been deprecated and replaced by the name field.
7480func (c *ProjectsLocationsClustersNodePoolsGetCall) ProjectId(projectId string) *ProjectsLocationsClustersNodePoolsGetCall {
7481	c.urlParams_.Set("projectId", projectId)
7482	return c
7483}
7484
7485// Zone sets the optional parameter "zone": Deprecated. The name of the
7486// Google Compute Engine
7487// [zone](/compute/docs/zones#available) in which the
7488// cluster
7489// resides.
7490// This field has been deprecated and replaced by the name field.
7491func (c *ProjectsLocationsClustersNodePoolsGetCall) Zone(zone string) *ProjectsLocationsClustersNodePoolsGetCall {
7492	c.urlParams_.Set("zone", zone)
7493	return c
7494}
7495
7496// Fields allows partial responses to be retrieved. See
7497// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7498// for more information.
7499func (c *ProjectsLocationsClustersNodePoolsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersNodePoolsGetCall {
7500	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7501	return c
7502}
7503
7504// IfNoneMatch sets the optional parameter which makes the operation
7505// fail if the object's ETag matches the given value. This is useful for
7506// getting updates only after the object has changed since the last
7507// request. Use googleapi.IsNotModified to check whether the response
7508// error from Do is the result of In-None-Match.
7509func (c *ProjectsLocationsClustersNodePoolsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsClustersNodePoolsGetCall {
7510	c.ifNoneMatch_ = entityTag
7511	return c
7512}
7513
7514// Context sets the context to be used in this call's Do method. Any
7515// pending HTTP request will be aborted if the provided context is
7516// canceled.
7517func (c *ProjectsLocationsClustersNodePoolsGetCall) Context(ctx context.Context) *ProjectsLocationsClustersNodePoolsGetCall {
7518	c.ctx_ = ctx
7519	return c
7520}
7521
7522// Header returns an http.Header that can be modified by the caller to
7523// add HTTP headers to the request.
7524func (c *ProjectsLocationsClustersNodePoolsGetCall) Header() http.Header {
7525	if c.header_ == nil {
7526		c.header_ = make(http.Header)
7527	}
7528	return c.header_
7529}
7530
7531func (c *ProjectsLocationsClustersNodePoolsGetCall) doRequest(alt string) (*http.Response, error) {
7532	reqHeaders := make(http.Header)
7533	for k, v := range c.header_ {
7534		reqHeaders[k] = v
7535	}
7536	reqHeaders.Set("User-Agent", c.s.userAgent())
7537	if c.ifNoneMatch_ != "" {
7538		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7539	}
7540	var body io.Reader = nil
7541	c.urlParams_.Set("alt", alt)
7542	c.urlParams_.Set("prettyPrint", "false")
7543	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
7544	urls += "?" + c.urlParams_.Encode()
7545	req, err := http.NewRequest("GET", urls, body)
7546	if err != nil {
7547		return nil, err
7548	}
7549	req.Header = reqHeaders
7550	googleapi.Expand(req.URL, map[string]string{
7551		"name": c.name,
7552	})
7553	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7554}
7555
7556// Do executes the "container.projects.locations.clusters.nodePools.get" call.
7557// Exactly one of *NodePool or error will be non-nil. Any non-2xx status
7558// code is an error. Response headers are in either
7559// *NodePool.ServerResponse.Header or (if a response was returned at
7560// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
7561// to check whether the returned error was because
7562// http.StatusNotModified was returned.
7563func (c *ProjectsLocationsClustersNodePoolsGetCall) Do(opts ...googleapi.CallOption) (*NodePool, error) {
7564	gensupport.SetOptions(c.urlParams_, opts...)
7565	res, err := c.doRequest("json")
7566	if res != nil && res.StatusCode == http.StatusNotModified {
7567		if res.Body != nil {
7568			res.Body.Close()
7569		}
7570		return nil, &googleapi.Error{
7571			Code:   res.StatusCode,
7572			Header: res.Header,
7573		}
7574	}
7575	if err != nil {
7576		return nil, err
7577	}
7578	defer googleapi.CloseBody(res)
7579	if err := googleapi.CheckResponse(res); err != nil {
7580		return nil, err
7581	}
7582	ret := &NodePool{
7583		ServerResponse: googleapi.ServerResponse{
7584			Header:         res.Header,
7585			HTTPStatusCode: res.StatusCode,
7586		},
7587	}
7588	target := &ret
7589	if err := gensupport.DecodeResponse(target, res); err != nil {
7590		return nil, err
7591	}
7592	return ret, nil
7593	// {
7594	//   "description": "Retrieves the requested node pool.",
7595	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}",
7596	//   "httpMethod": "GET",
7597	//   "id": "container.projects.locations.clusters.nodePools.get",
7598	//   "parameterOrder": [
7599	//     "name"
7600	//   ],
7601	//   "parameters": {
7602	//     "clusterId": {
7603	//       "description": "Deprecated. The name of the cluster.\nThis field has been deprecated and replaced by the name field.",
7604	//       "location": "query",
7605	//       "type": "string"
7606	//     },
7607	//     "name": {
7608	//       "description": "The name (project, location, cluster, node pool id) of the node pool to\nget. Specified in the format\n'projects/*/locations/*/clusters/*/nodePools/*'.",
7609	//       "location": "path",
7610	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$",
7611	//       "required": true,
7612	//       "type": "string"
7613	//     },
7614	//     "nodePoolId": {
7615	//       "description": "Deprecated. The name of the node pool.\nThis field has been deprecated and replaced by the name field.",
7616	//       "location": "query",
7617	//       "type": "string"
7618	//     },
7619	//     "projectId": {
7620	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field has been deprecated and replaced by the name field.",
7621	//       "location": "query",
7622	//       "type": "string"
7623	//     },
7624	//     "zone": {
7625	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
7626	//       "location": "query",
7627	//       "type": "string"
7628	//     }
7629	//   },
7630	//   "path": "v1/{+name}",
7631	//   "response": {
7632	//     "$ref": "NodePool"
7633	//   },
7634	//   "scopes": [
7635	//     "https://www.googleapis.com/auth/cloud-platform"
7636	//   ]
7637	// }
7638
7639}
7640
7641// method id "container.projects.locations.clusters.nodePools.list":
7642
7643type ProjectsLocationsClustersNodePoolsListCall struct {
7644	s            *Service
7645	parent       string
7646	urlParams_   gensupport.URLParams
7647	ifNoneMatch_ string
7648	ctx_         context.Context
7649	header_      http.Header
7650}
7651
7652// List: Lists the node pools for a cluster.
7653func (r *ProjectsLocationsClustersNodePoolsService) List(parent string) *ProjectsLocationsClustersNodePoolsListCall {
7654	c := &ProjectsLocationsClustersNodePoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7655	c.parent = parent
7656	return c
7657}
7658
7659// ClusterId sets the optional parameter "clusterId": Deprecated. The
7660// name of the cluster.
7661// This field has been deprecated and replaced by the parent field.
7662func (c *ProjectsLocationsClustersNodePoolsListCall) ClusterId(clusterId string) *ProjectsLocationsClustersNodePoolsListCall {
7663	c.urlParams_.Set("clusterId", clusterId)
7664	return c
7665}
7666
7667// ProjectId sets the optional parameter "projectId": Deprecated. The
7668// Google Developers Console [project ID or
7669// project
7670// number](https://developers.google.com/console/help/new/#projec
7671// tnumber).
7672// This field has been deprecated and replaced by the parent field.
7673func (c *ProjectsLocationsClustersNodePoolsListCall) ProjectId(projectId string) *ProjectsLocationsClustersNodePoolsListCall {
7674	c.urlParams_.Set("projectId", projectId)
7675	return c
7676}
7677
7678// Zone sets the optional parameter "zone": Deprecated. The name of the
7679// Google Compute Engine
7680// [zone](/compute/docs/zones#available) in which the
7681// cluster
7682// resides.
7683// This field has been deprecated and replaced by the parent field.
7684func (c *ProjectsLocationsClustersNodePoolsListCall) Zone(zone string) *ProjectsLocationsClustersNodePoolsListCall {
7685	c.urlParams_.Set("zone", zone)
7686	return c
7687}
7688
7689// Fields allows partial responses to be retrieved. See
7690// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7691// for more information.
7692func (c *ProjectsLocationsClustersNodePoolsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersNodePoolsListCall {
7693	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7694	return c
7695}
7696
7697// IfNoneMatch sets the optional parameter which makes the operation
7698// fail if the object's ETag matches the given value. This is useful for
7699// getting updates only after the object has changed since the last
7700// request. Use googleapi.IsNotModified to check whether the response
7701// error from Do is the result of In-None-Match.
7702func (c *ProjectsLocationsClustersNodePoolsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsClustersNodePoolsListCall {
7703	c.ifNoneMatch_ = entityTag
7704	return c
7705}
7706
7707// Context sets the context to be used in this call's Do method. Any
7708// pending HTTP request will be aborted if the provided context is
7709// canceled.
7710func (c *ProjectsLocationsClustersNodePoolsListCall) Context(ctx context.Context) *ProjectsLocationsClustersNodePoolsListCall {
7711	c.ctx_ = ctx
7712	return c
7713}
7714
7715// Header returns an http.Header that can be modified by the caller to
7716// add HTTP headers to the request.
7717func (c *ProjectsLocationsClustersNodePoolsListCall) Header() http.Header {
7718	if c.header_ == nil {
7719		c.header_ = make(http.Header)
7720	}
7721	return c.header_
7722}
7723
7724func (c *ProjectsLocationsClustersNodePoolsListCall) doRequest(alt string) (*http.Response, error) {
7725	reqHeaders := make(http.Header)
7726	for k, v := range c.header_ {
7727		reqHeaders[k] = v
7728	}
7729	reqHeaders.Set("User-Agent", c.s.userAgent())
7730	if c.ifNoneMatch_ != "" {
7731		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7732	}
7733	var body io.Reader = nil
7734	c.urlParams_.Set("alt", alt)
7735	c.urlParams_.Set("prettyPrint", "false")
7736	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/nodePools")
7737	urls += "?" + c.urlParams_.Encode()
7738	req, err := http.NewRequest("GET", urls, body)
7739	if err != nil {
7740		return nil, err
7741	}
7742	req.Header = reqHeaders
7743	googleapi.Expand(req.URL, map[string]string{
7744		"parent": c.parent,
7745	})
7746	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7747}
7748
7749// Do executes the "container.projects.locations.clusters.nodePools.list" call.
7750// Exactly one of *ListNodePoolsResponse or error will be non-nil. Any
7751// non-2xx status code is an error. Response headers are in either
7752// *ListNodePoolsResponse.ServerResponse.Header or (if a response was
7753// returned at all) in error.(*googleapi.Error).Header. Use
7754// googleapi.IsNotModified to check whether the returned error was
7755// because http.StatusNotModified was returned.
7756func (c *ProjectsLocationsClustersNodePoolsListCall) Do(opts ...googleapi.CallOption) (*ListNodePoolsResponse, error) {
7757	gensupport.SetOptions(c.urlParams_, opts...)
7758	res, err := c.doRequest("json")
7759	if res != nil && res.StatusCode == http.StatusNotModified {
7760		if res.Body != nil {
7761			res.Body.Close()
7762		}
7763		return nil, &googleapi.Error{
7764			Code:   res.StatusCode,
7765			Header: res.Header,
7766		}
7767	}
7768	if err != nil {
7769		return nil, err
7770	}
7771	defer googleapi.CloseBody(res)
7772	if err := googleapi.CheckResponse(res); err != nil {
7773		return nil, err
7774	}
7775	ret := &ListNodePoolsResponse{
7776		ServerResponse: googleapi.ServerResponse{
7777			Header:         res.Header,
7778			HTTPStatusCode: res.StatusCode,
7779		},
7780	}
7781	target := &ret
7782	if err := gensupport.DecodeResponse(target, res); err != nil {
7783		return nil, err
7784	}
7785	return ret, nil
7786	// {
7787	//   "description": "Lists the node pools for a cluster.",
7788	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools",
7789	//   "httpMethod": "GET",
7790	//   "id": "container.projects.locations.clusters.nodePools.list",
7791	//   "parameterOrder": [
7792	//     "parent"
7793	//   ],
7794	//   "parameters": {
7795	//     "clusterId": {
7796	//       "description": "Deprecated. The name of the cluster.\nThis field has been deprecated and replaced by the parent field.",
7797	//       "location": "query",
7798	//       "type": "string"
7799	//     },
7800	//     "parent": {
7801	//       "description": "The parent (project, location, cluster id) where the node pools will be\nlisted. Specified in the format 'projects/*/locations/*/clusters/*'.",
7802	//       "location": "path",
7803	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$",
7804	//       "required": true,
7805	//       "type": "string"
7806	//     },
7807	//     "projectId": {
7808	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field has been deprecated and replaced by the parent field.",
7809	//       "location": "query",
7810	//       "type": "string"
7811	//     },
7812	//     "zone": {
7813	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the parent field.",
7814	//       "location": "query",
7815	//       "type": "string"
7816	//     }
7817	//   },
7818	//   "path": "v1/{+parent}/nodePools",
7819	//   "response": {
7820	//     "$ref": "ListNodePoolsResponse"
7821	//   },
7822	//   "scopes": [
7823	//     "https://www.googleapis.com/auth/cloud-platform"
7824	//   ]
7825	// }
7826
7827}
7828
7829// method id "container.projects.locations.clusters.nodePools.rollback":
7830
7831type ProjectsLocationsClustersNodePoolsRollbackCall struct {
7832	s                              *Service
7833	name                           string
7834	rollbacknodepoolupgraderequest *RollbackNodePoolUpgradeRequest
7835	urlParams_                     gensupport.URLParams
7836	ctx_                           context.Context
7837	header_                        http.Header
7838}
7839
7840// Rollback: Rolls back a previously Aborted or Failed NodePool
7841// upgrade.
7842// This makes no changes if the last upgrade successfully completed.
7843func (r *ProjectsLocationsClustersNodePoolsService) Rollback(name string, rollbacknodepoolupgraderequest *RollbackNodePoolUpgradeRequest) *ProjectsLocationsClustersNodePoolsRollbackCall {
7844	c := &ProjectsLocationsClustersNodePoolsRollbackCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7845	c.name = name
7846	c.rollbacknodepoolupgraderequest = rollbacknodepoolupgraderequest
7847	return c
7848}
7849
7850// Fields allows partial responses to be retrieved. See
7851// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7852// for more information.
7853func (c *ProjectsLocationsClustersNodePoolsRollbackCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersNodePoolsRollbackCall {
7854	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7855	return c
7856}
7857
7858// Context sets the context to be used in this call's Do method. Any
7859// pending HTTP request will be aborted if the provided context is
7860// canceled.
7861func (c *ProjectsLocationsClustersNodePoolsRollbackCall) Context(ctx context.Context) *ProjectsLocationsClustersNodePoolsRollbackCall {
7862	c.ctx_ = ctx
7863	return c
7864}
7865
7866// Header returns an http.Header that can be modified by the caller to
7867// add HTTP headers to the request.
7868func (c *ProjectsLocationsClustersNodePoolsRollbackCall) Header() http.Header {
7869	if c.header_ == nil {
7870		c.header_ = make(http.Header)
7871	}
7872	return c.header_
7873}
7874
7875func (c *ProjectsLocationsClustersNodePoolsRollbackCall) doRequest(alt string) (*http.Response, error) {
7876	reqHeaders := make(http.Header)
7877	for k, v := range c.header_ {
7878		reqHeaders[k] = v
7879	}
7880	reqHeaders.Set("User-Agent", c.s.userAgent())
7881	var body io.Reader = nil
7882	body, err := googleapi.WithoutDataWrapper.JSONReader(c.rollbacknodepoolupgraderequest)
7883	if err != nil {
7884		return nil, err
7885	}
7886	reqHeaders.Set("Content-Type", "application/json")
7887	c.urlParams_.Set("alt", alt)
7888	c.urlParams_.Set("prettyPrint", "false")
7889	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:rollback")
7890	urls += "?" + c.urlParams_.Encode()
7891	req, err := http.NewRequest("POST", urls, body)
7892	if err != nil {
7893		return nil, err
7894	}
7895	req.Header = reqHeaders
7896	googleapi.Expand(req.URL, map[string]string{
7897		"name": c.name,
7898	})
7899	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7900}
7901
7902// Do executes the "container.projects.locations.clusters.nodePools.rollback" call.
7903// Exactly one of *Operation or error will be non-nil. Any non-2xx
7904// status code is an error. Response headers are in either
7905// *Operation.ServerResponse.Header or (if a response was returned at
7906// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
7907// to check whether the returned error was because
7908// http.StatusNotModified was returned.
7909func (c *ProjectsLocationsClustersNodePoolsRollbackCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
7910	gensupport.SetOptions(c.urlParams_, opts...)
7911	res, err := c.doRequest("json")
7912	if res != nil && res.StatusCode == http.StatusNotModified {
7913		if res.Body != nil {
7914			res.Body.Close()
7915		}
7916		return nil, &googleapi.Error{
7917			Code:   res.StatusCode,
7918			Header: res.Header,
7919		}
7920	}
7921	if err != nil {
7922		return nil, err
7923	}
7924	defer googleapi.CloseBody(res)
7925	if err := googleapi.CheckResponse(res); err != nil {
7926		return nil, err
7927	}
7928	ret := &Operation{
7929		ServerResponse: googleapi.ServerResponse{
7930			Header:         res.Header,
7931			HTTPStatusCode: res.StatusCode,
7932		},
7933	}
7934	target := &ret
7935	if err := gensupport.DecodeResponse(target, res); err != nil {
7936		return nil, err
7937	}
7938	return ret, nil
7939	// {
7940	//   "description": "Rolls back a previously Aborted or Failed NodePool upgrade.\nThis makes no changes if the last upgrade successfully completed.",
7941	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}:rollback",
7942	//   "httpMethod": "POST",
7943	//   "id": "container.projects.locations.clusters.nodePools.rollback",
7944	//   "parameterOrder": [
7945	//     "name"
7946	//   ],
7947	//   "parameters": {
7948	//     "name": {
7949	//       "description": "The name (project, location, cluster, node pool id) of the node poll to\nrollback upgrade.\nSpecified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.",
7950	//       "location": "path",
7951	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$",
7952	//       "required": true,
7953	//       "type": "string"
7954	//     }
7955	//   },
7956	//   "path": "v1/{+name}:rollback",
7957	//   "request": {
7958	//     "$ref": "RollbackNodePoolUpgradeRequest"
7959	//   },
7960	//   "response": {
7961	//     "$ref": "Operation"
7962	//   },
7963	//   "scopes": [
7964	//     "https://www.googleapis.com/auth/cloud-platform"
7965	//   ]
7966	// }
7967
7968}
7969
7970// method id "container.projects.locations.clusters.nodePools.setAutoscaling":
7971
7972type ProjectsLocationsClustersNodePoolsSetAutoscalingCall struct {
7973	s                             *Service
7974	name                          string
7975	setnodepoolautoscalingrequest *SetNodePoolAutoscalingRequest
7976	urlParams_                    gensupport.URLParams
7977	ctx_                          context.Context
7978	header_                       http.Header
7979}
7980
7981// SetAutoscaling: Sets the autoscaling settings for the specified node
7982// pool.
7983func (r *ProjectsLocationsClustersNodePoolsService) SetAutoscaling(name string, setnodepoolautoscalingrequest *SetNodePoolAutoscalingRequest) *ProjectsLocationsClustersNodePoolsSetAutoscalingCall {
7984	c := &ProjectsLocationsClustersNodePoolsSetAutoscalingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7985	c.name = name
7986	c.setnodepoolautoscalingrequest = setnodepoolautoscalingrequest
7987	return c
7988}
7989
7990// Fields allows partial responses to be retrieved. See
7991// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7992// for more information.
7993func (c *ProjectsLocationsClustersNodePoolsSetAutoscalingCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersNodePoolsSetAutoscalingCall {
7994	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7995	return c
7996}
7997
7998// Context sets the context to be used in this call's Do method. Any
7999// pending HTTP request will be aborted if the provided context is
8000// canceled.
8001func (c *ProjectsLocationsClustersNodePoolsSetAutoscalingCall) Context(ctx context.Context) *ProjectsLocationsClustersNodePoolsSetAutoscalingCall {
8002	c.ctx_ = ctx
8003	return c
8004}
8005
8006// Header returns an http.Header that can be modified by the caller to
8007// add HTTP headers to the request.
8008func (c *ProjectsLocationsClustersNodePoolsSetAutoscalingCall) Header() http.Header {
8009	if c.header_ == nil {
8010		c.header_ = make(http.Header)
8011	}
8012	return c.header_
8013}
8014
8015func (c *ProjectsLocationsClustersNodePoolsSetAutoscalingCall) doRequest(alt string) (*http.Response, error) {
8016	reqHeaders := make(http.Header)
8017	for k, v := range c.header_ {
8018		reqHeaders[k] = v
8019	}
8020	reqHeaders.Set("User-Agent", c.s.userAgent())
8021	var body io.Reader = nil
8022	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setnodepoolautoscalingrequest)
8023	if err != nil {
8024		return nil, err
8025	}
8026	reqHeaders.Set("Content-Type", "application/json")
8027	c.urlParams_.Set("alt", alt)
8028	c.urlParams_.Set("prettyPrint", "false")
8029	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setAutoscaling")
8030	urls += "?" + c.urlParams_.Encode()
8031	req, err := http.NewRequest("POST", urls, body)
8032	if err != nil {
8033		return nil, err
8034	}
8035	req.Header = reqHeaders
8036	googleapi.Expand(req.URL, map[string]string{
8037		"name": c.name,
8038	})
8039	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8040}
8041
8042// Do executes the "container.projects.locations.clusters.nodePools.setAutoscaling" call.
8043// Exactly one of *Operation or error will be non-nil. Any non-2xx
8044// status code is an error. Response headers are in either
8045// *Operation.ServerResponse.Header or (if a response was returned at
8046// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
8047// to check whether the returned error was because
8048// http.StatusNotModified was returned.
8049func (c *ProjectsLocationsClustersNodePoolsSetAutoscalingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
8050	gensupport.SetOptions(c.urlParams_, opts...)
8051	res, err := c.doRequest("json")
8052	if res != nil && res.StatusCode == http.StatusNotModified {
8053		if res.Body != nil {
8054			res.Body.Close()
8055		}
8056		return nil, &googleapi.Error{
8057			Code:   res.StatusCode,
8058			Header: res.Header,
8059		}
8060	}
8061	if err != nil {
8062		return nil, err
8063	}
8064	defer googleapi.CloseBody(res)
8065	if err := googleapi.CheckResponse(res); err != nil {
8066		return nil, err
8067	}
8068	ret := &Operation{
8069		ServerResponse: googleapi.ServerResponse{
8070			Header:         res.Header,
8071			HTTPStatusCode: res.StatusCode,
8072		},
8073	}
8074	target := &ret
8075	if err := gensupport.DecodeResponse(target, res); err != nil {
8076		return nil, err
8077	}
8078	return ret, nil
8079	// {
8080	//   "description": "Sets the autoscaling settings for the specified node pool.",
8081	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}:setAutoscaling",
8082	//   "httpMethod": "POST",
8083	//   "id": "container.projects.locations.clusters.nodePools.setAutoscaling",
8084	//   "parameterOrder": [
8085	//     "name"
8086	//   ],
8087	//   "parameters": {
8088	//     "name": {
8089	//       "description": "The name (project, location, cluster, node pool) of the node pool to set\nautoscaler settings. Specified in the format\n'projects/*/locations/*/clusters/*/nodePools/*'.",
8090	//       "location": "path",
8091	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$",
8092	//       "required": true,
8093	//       "type": "string"
8094	//     }
8095	//   },
8096	//   "path": "v1/{+name}:setAutoscaling",
8097	//   "request": {
8098	//     "$ref": "SetNodePoolAutoscalingRequest"
8099	//   },
8100	//   "response": {
8101	//     "$ref": "Operation"
8102	//   },
8103	//   "scopes": [
8104	//     "https://www.googleapis.com/auth/cloud-platform"
8105	//   ]
8106	// }
8107
8108}
8109
8110// method id "container.projects.locations.clusters.nodePools.setManagement":
8111
8112type ProjectsLocationsClustersNodePoolsSetManagementCall struct {
8113	s                            *Service
8114	name                         string
8115	setnodepoolmanagementrequest *SetNodePoolManagementRequest
8116	urlParams_                   gensupport.URLParams
8117	ctx_                         context.Context
8118	header_                      http.Header
8119}
8120
8121// SetManagement: Sets the NodeManagement options for a node pool.
8122func (r *ProjectsLocationsClustersNodePoolsService) SetManagement(name string, setnodepoolmanagementrequest *SetNodePoolManagementRequest) *ProjectsLocationsClustersNodePoolsSetManagementCall {
8123	c := &ProjectsLocationsClustersNodePoolsSetManagementCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8124	c.name = name
8125	c.setnodepoolmanagementrequest = setnodepoolmanagementrequest
8126	return c
8127}
8128
8129// Fields allows partial responses to be retrieved. See
8130// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8131// for more information.
8132func (c *ProjectsLocationsClustersNodePoolsSetManagementCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersNodePoolsSetManagementCall {
8133	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8134	return c
8135}
8136
8137// Context sets the context to be used in this call's Do method. Any
8138// pending HTTP request will be aborted if the provided context is
8139// canceled.
8140func (c *ProjectsLocationsClustersNodePoolsSetManagementCall) Context(ctx context.Context) *ProjectsLocationsClustersNodePoolsSetManagementCall {
8141	c.ctx_ = ctx
8142	return c
8143}
8144
8145// Header returns an http.Header that can be modified by the caller to
8146// add HTTP headers to the request.
8147func (c *ProjectsLocationsClustersNodePoolsSetManagementCall) Header() http.Header {
8148	if c.header_ == nil {
8149		c.header_ = make(http.Header)
8150	}
8151	return c.header_
8152}
8153
8154func (c *ProjectsLocationsClustersNodePoolsSetManagementCall) doRequest(alt string) (*http.Response, error) {
8155	reqHeaders := make(http.Header)
8156	for k, v := range c.header_ {
8157		reqHeaders[k] = v
8158	}
8159	reqHeaders.Set("User-Agent", c.s.userAgent())
8160	var body io.Reader = nil
8161	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setnodepoolmanagementrequest)
8162	if err != nil {
8163		return nil, err
8164	}
8165	reqHeaders.Set("Content-Type", "application/json")
8166	c.urlParams_.Set("alt", alt)
8167	c.urlParams_.Set("prettyPrint", "false")
8168	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setManagement")
8169	urls += "?" + c.urlParams_.Encode()
8170	req, err := http.NewRequest("POST", urls, body)
8171	if err != nil {
8172		return nil, err
8173	}
8174	req.Header = reqHeaders
8175	googleapi.Expand(req.URL, map[string]string{
8176		"name": c.name,
8177	})
8178	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8179}
8180
8181// Do executes the "container.projects.locations.clusters.nodePools.setManagement" call.
8182// Exactly one of *Operation or error will be non-nil. Any non-2xx
8183// status code is an error. Response headers are in either
8184// *Operation.ServerResponse.Header or (if a response was returned at
8185// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
8186// to check whether the returned error was because
8187// http.StatusNotModified was returned.
8188func (c *ProjectsLocationsClustersNodePoolsSetManagementCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
8189	gensupport.SetOptions(c.urlParams_, opts...)
8190	res, err := c.doRequest("json")
8191	if res != nil && res.StatusCode == http.StatusNotModified {
8192		if res.Body != nil {
8193			res.Body.Close()
8194		}
8195		return nil, &googleapi.Error{
8196			Code:   res.StatusCode,
8197			Header: res.Header,
8198		}
8199	}
8200	if err != nil {
8201		return nil, err
8202	}
8203	defer googleapi.CloseBody(res)
8204	if err := googleapi.CheckResponse(res); err != nil {
8205		return nil, err
8206	}
8207	ret := &Operation{
8208		ServerResponse: googleapi.ServerResponse{
8209			Header:         res.Header,
8210			HTTPStatusCode: res.StatusCode,
8211		},
8212	}
8213	target := &ret
8214	if err := gensupport.DecodeResponse(target, res); err != nil {
8215		return nil, err
8216	}
8217	return ret, nil
8218	// {
8219	//   "description": "Sets the NodeManagement options for a node pool.",
8220	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}:setManagement",
8221	//   "httpMethod": "POST",
8222	//   "id": "container.projects.locations.clusters.nodePools.setManagement",
8223	//   "parameterOrder": [
8224	//     "name"
8225	//   ],
8226	//   "parameters": {
8227	//     "name": {
8228	//       "description": "The name (project, location, cluster, node pool id) of the node pool to set\nmanagement properties. Specified in the format\n'projects/*/locations/*/clusters/*/nodePools/*'.",
8229	//       "location": "path",
8230	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$",
8231	//       "required": true,
8232	//       "type": "string"
8233	//     }
8234	//   },
8235	//   "path": "v1/{+name}:setManagement",
8236	//   "request": {
8237	//     "$ref": "SetNodePoolManagementRequest"
8238	//   },
8239	//   "response": {
8240	//     "$ref": "Operation"
8241	//   },
8242	//   "scopes": [
8243	//     "https://www.googleapis.com/auth/cloud-platform"
8244	//   ]
8245	// }
8246
8247}
8248
8249// method id "container.projects.locations.clusters.nodePools.setSize":
8250
8251type ProjectsLocationsClustersNodePoolsSetSizeCall struct {
8252	s                      *Service
8253	name                   string
8254	setnodepoolsizerequest *SetNodePoolSizeRequest
8255	urlParams_             gensupport.URLParams
8256	ctx_                   context.Context
8257	header_                http.Header
8258}
8259
8260// SetSize: Sets the size for a specific node pool.
8261func (r *ProjectsLocationsClustersNodePoolsService) SetSize(name string, setnodepoolsizerequest *SetNodePoolSizeRequest) *ProjectsLocationsClustersNodePoolsSetSizeCall {
8262	c := &ProjectsLocationsClustersNodePoolsSetSizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8263	c.name = name
8264	c.setnodepoolsizerequest = setnodepoolsizerequest
8265	return c
8266}
8267
8268// Fields allows partial responses to be retrieved. See
8269// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8270// for more information.
8271func (c *ProjectsLocationsClustersNodePoolsSetSizeCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersNodePoolsSetSizeCall {
8272	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8273	return c
8274}
8275
8276// Context sets the context to be used in this call's Do method. Any
8277// pending HTTP request will be aborted if the provided context is
8278// canceled.
8279func (c *ProjectsLocationsClustersNodePoolsSetSizeCall) Context(ctx context.Context) *ProjectsLocationsClustersNodePoolsSetSizeCall {
8280	c.ctx_ = ctx
8281	return c
8282}
8283
8284// Header returns an http.Header that can be modified by the caller to
8285// add HTTP headers to the request.
8286func (c *ProjectsLocationsClustersNodePoolsSetSizeCall) Header() http.Header {
8287	if c.header_ == nil {
8288		c.header_ = make(http.Header)
8289	}
8290	return c.header_
8291}
8292
8293func (c *ProjectsLocationsClustersNodePoolsSetSizeCall) doRequest(alt string) (*http.Response, error) {
8294	reqHeaders := make(http.Header)
8295	for k, v := range c.header_ {
8296		reqHeaders[k] = v
8297	}
8298	reqHeaders.Set("User-Agent", c.s.userAgent())
8299	var body io.Reader = nil
8300	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setnodepoolsizerequest)
8301	if err != nil {
8302		return nil, err
8303	}
8304	reqHeaders.Set("Content-Type", "application/json")
8305	c.urlParams_.Set("alt", alt)
8306	c.urlParams_.Set("prettyPrint", "false")
8307	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setSize")
8308	urls += "?" + c.urlParams_.Encode()
8309	req, err := http.NewRequest("POST", urls, body)
8310	if err != nil {
8311		return nil, err
8312	}
8313	req.Header = reqHeaders
8314	googleapi.Expand(req.URL, map[string]string{
8315		"name": c.name,
8316	})
8317	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8318}
8319
8320// Do executes the "container.projects.locations.clusters.nodePools.setSize" call.
8321// Exactly one of *Operation or error will be non-nil. Any non-2xx
8322// status code is an error. Response headers are in either
8323// *Operation.ServerResponse.Header or (if a response was returned at
8324// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
8325// to check whether the returned error was because
8326// http.StatusNotModified was returned.
8327func (c *ProjectsLocationsClustersNodePoolsSetSizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
8328	gensupport.SetOptions(c.urlParams_, opts...)
8329	res, err := c.doRequest("json")
8330	if res != nil && res.StatusCode == http.StatusNotModified {
8331		if res.Body != nil {
8332			res.Body.Close()
8333		}
8334		return nil, &googleapi.Error{
8335			Code:   res.StatusCode,
8336			Header: res.Header,
8337		}
8338	}
8339	if err != nil {
8340		return nil, err
8341	}
8342	defer googleapi.CloseBody(res)
8343	if err := googleapi.CheckResponse(res); err != nil {
8344		return nil, err
8345	}
8346	ret := &Operation{
8347		ServerResponse: googleapi.ServerResponse{
8348			Header:         res.Header,
8349			HTTPStatusCode: res.StatusCode,
8350		},
8351	}
8352	target := &ret
8353	if err := gensupport.DecodeResponse(target, res); err != nil {
8354		return nil, err
8355	}
8356	return ret, nil
8357	// {
8358	//   "description": "Sets the size for a specific node pool.",
8359	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}:setSize",
8360	//   "httpMethod": "POST",
8361	//   "id": "container.projects.locations.clusters.nodePools.setSize",
8362	//   "parameterOrder": [
8363	//     "name"
8364	//   ],
8365	//   "parameters": {
8366	//     "name": {
8367	//       "description": "The name (project, location, cluster, node pool id) of the node pool to set\nsize.\nSpecified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.",
8368	//       "location": "path",
8369	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$",
8370	//       "required": true,
8371	//       "type": "string"
8372	//     }
8373	//   },
8374	//   "path": "v1/{+name}:setSize",
8375	//   "request": {
8376	//     "$ref": "SetNodePoolSizeRequest"
8377	//   },
8378	//   "response": {
8379	//     "$ref": "Operation"
8380	//   },
8381	//   "scopes": [
8382	//     "https://www.googleapis.com/auth/cloud-platform"
8383	//   ]
8384	// }
8385
8386}
8387
8388// method id "container.projects.locations.clusters.nodePools.update":
8389
8390type ProjectsLocationsClustersNodePoolsUpdateCall struct {
8391	s                     *Service
8392	name                  string
8393	updatenodepoolrequest *UpdateNodePoolRequest
8394	urlParams_            gensupport.URLParams
8395	ctx_                  context.Context
8396	header_               http.Header
8397}
8398
8399// Update: Updates the version and/or image type for the specified node
8400// pool.
8401func (r *ProjectsLocationsClustersNodePoolsService) Update(name string, updatenodepoolrequest *UpdateNodePoolRequest) *ProjectsLocationsClustersNodePoolsUpdateCall {
8402	c := &ProjectsLocationsClustersNodePoolsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8403	c.name = name
8404	c.updatenodepoolrequest = updatenodepoolrequest
8405	return c
8406}
8407
8408// Fields allows partial responses to be retrieved. See
8409// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8410// for more information.
8411func (c *ProjectsLocationsClustersNodePoolsUpdateCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersNodePoolsUpdateCall {
8412	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8413	return c
8414}
8415
8416// Context sets the context to be used in this call's Do method. Any
8417// pending HTTP request will be aborted if the provided context is
8418// canceled.
8419func (c *ProjectsLocationsClustersNodePoolsUpdateCall) Context(ctx context.Context) *ProjectsLocationsClustersNodePoolsUpdateCall {
8420	c.ctx_ = ctx
8421	return c
8422}
8423
8424// Header returns an http.Header that can be modified by the caller to
8425// add HTTP headers to the request.
8426func (c *ProjectsLocationsClustersNodePoolsUpdateCall) Header() http.Header {
8427	if c.header_ == nil {
8428		c.header_ = make(http.Header)
8429	}
8430	return c.header_
8431}
8432
8433func (c *ProjectsLocationsClustersNodePoolsUpdateCall) doRequest(alt string) (*http.Response, error) {
8434	reqHeaders := make(http.Header)
8435	for k, v := range c.header_ {
8436		reqHeaders[k] = v
8437	}
8438	reqHeaders.Set("User-Agent", c.s.userAgent())
8439	var body io.Reader = nil
8440	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updatenodepoolrequest)
8441	if err != nil {
8442		return nil, err
8443	}
8444	reqHeaders.Set("Content-Type", "application/json")
8445	c.urlParams_.Set("alt", alt)
8446	c.urlParams_.Set("prettyPrint", "false")
8447	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
8448	urls += "?" + c.urlParams_.Encode()
8449	req, err := http.NewRequest("PUT", urls, body)
8450	if err != nil {
8451		return nil, err
8452	}
8453	req.Header = reqHeaders
8454	googleapi.Expand(req.URL, map[string]string{
8455		"name": c.name,
8456	})
8457	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8458}
8459
8460// Do executes the "container.projects.locations.clusters.nodePools.update" call.
8461// Exactly one of *Operation or error will be non-nil. Any non-2xx
8462// status code is an error. Response headers are in either
8463// *Operation.ServerResponse.Header or (if a response was returned at
8464// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
8465// to check whether the returned error was because
8466// http.StatusNotModified was returned.
8467func (c *ProjectsLocationsClustersNodePoolsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
8468	gensupport.SetOptions(c.urlParams_, opts...)
8469	res, err := c.doRequest("json")
8470	if res != nil && res.StatusCode == http.StatusNotModified {
8471		if res.Body != nil {
8472			res.Body.Close()
8473		}
8474		return nil, &googleapi.Error{
8475			Code:   res.StatusCode,
8476			Header: res.Header,
8477		}
8478	}
8479	if err != nil {
8480		return nil, err
8481	}
8482	defer googleapi.CloseBody(res)
8483	if err := googleapi.CheckResponse(res); err != nil {
8484		return nil, err
8485	}
8486	ret := &Operation{
8487		ServerResponse: googleapi.ServerResponse{
8488			Header:         res.Header,
8489			HTTPStatusCode: res.StatusCode,
8490		},
8491	}
8492	target := &ret
8493	if err := gensupport.DecodeResponse(target, res); err != nil {
8494		return nil, err
8495	}
8496	return ret, nil
8497	// {
8498	//   "description": "Updates the version and/or image type for the specified node pool.",
8499	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/nodePools/{nodePoolsId}",
8500	//   "httpMethod": "PUT",
8501	//   "id": "container.projects.locations.clusters.nodePools.update",
8502	//   "parameterOrder": [
8503	//     "name"
8504	//   ],
8505	//   "parameters": {
8506	//     "name": {
8507	//       "description": "The name (project, location, cluster, node pool) of the node pool to\nupdate. Specified in the format\n'projects/*/locations/*/clusters/*/nodePools/*'.",
8508	//       "location": "path",
8509	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/nodePools/[^/]+$",
8510	//       "required": true,
8511	//       "type": "string"
8512	//     }
8513	//   },
8514	//   "path": "v1/{+name}",
8515	//   "request": {
8516	//     "$ref": "UpdateNodePoolRequest"
8517	//   },
8518	//   "response": {
8519	//     "$ref": "Operation"
8520	//   },
8521	//   "scopes": [
8522	//     "https://www.googleapis.com/auth/cloud-platform"
8523	//   ]
8524	// }
8525
8526}
8527
8528// method id "container.projects.locations.clusters.well-known.getOpenid-configuration":
8529
8530type ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall struct {
8531	s            *Service
8532	parent       string
8533	urlParams_   gensupport.URLParams
8534	ifNoneMatch_ string
8535	ctx_         context.Context
8536	header_      http.Header
8537}
8538
8539// GetOpenidConfiguration: Gets the OIDC discovery document for the
8540// cluster.
8541// See the
8542// [OpenID Connect Discovery
8543// 1.0
8544// specification](https://openid.net/specs/openid-connect-discovery-1
8545// _0.html)
8546// for details.
8547// This API is not yet intended for general use, and is not available
8548// for all
8549// clusters.
8550func (r *ProjectsLocationsClustersWellKnownService) GetOpenidConfiguration(parent string) *ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall {
8551	c := &ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8552	c.parent = parent
8553	return c
8554}
8555
8556// Fields allows partial responses to be retrieved. See
8557// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8558// for more information.
8559func (c *ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall {
8560	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8561	return c
8562}
8563
8564// IfNoneMatch sets the optional parameter which makes the operation
8565// fail if the object's ETag matches the given value. This is useful for
8566// getting updates only after the object has changed since the last
8567// request. Use googleapi.IsNotModified to check whether the response
8568// error from Do is the result of In-None-Match.
8569func (c *ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall) IfNoneMatch(entityTag string) *ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall {
8570	c.ifNoneMatch_ = entityTag
8571	return c
8572}
8573
8574// Context sets the context to be used in this call's Do method. Any
8575// pending HTTP request will be aborted if the provided context is
8576// canceled.
8577func (c *ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall) Context(ctx context.Context) *ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall {
8578	c.ctx_ = ctx
8579	return c
8580}
8581
8582// Header returns an http.Header that can be modified by the caller to
8583// add HTTP headers to the request.
8584func (c *ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall) Header() http.Header {
8585	if c.header_ == nil {
8586		c.header_ = make(http.Header)
8587	}
8588	return c.header_
8589}
8590
8591func (c *ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall) doRequest(alt string) (*http.Response, error) {
8592	reqHeaders := make(http.Header)
8593	for k, v := range c.header_ {
8594		reqHeaders[k] = v
8595	}
8596	reqHeaders.Set("User-Agent", c.s.userAgent())
8597	if c.ifNoneMatch_ != "" {
8598		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8599	}
8600	var body io.Reader = nil
8601	c.urlParams_.Set("alt", alt)
8602	c.urlParams_.Set("prettyPrint", "false")
8603	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/.well-known/openid-configuration")
8604	urls += "?" + c.urlParams_.Encode()
8605	req, err := http.NewRequest("GET", urls, body)
8606	if err != nil {
8607		return nil, err
8608	}
8609	req.Header = reqHeaders
8610	googleapi.Expand(req.URL, map[string]string{
8611		"parent": c.parent,
8612	})
8613	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8614}
8615
8616// Do executes the "container.projects.locations.clusters.well-known.getOpenid-configuration" call.
8617// Exactly one of *GetOpenIDConfigResponse or error will be non-nil. Any
8618// non-2xx status code is an error. Response headers are in either
8619// *GetOpenIDConfigResponse.ServerResponse.Header or (if a response was
8620// returned at all) in error.(*googleapi.Error).Header. Use
8621// googleapi.IsNotModified to check whether the returned error was
8622// because http.StatusNotModified was returned.
8623func (c *ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall) Do(opts ...googleapi.CallOption) (*GetOpenIDConfigResponse, error) {
8624	gensupport.SetOptions(c.urlParams_, opts...)
8625	res, err := c.doRequest("json")
8626	if res != nil && res.StatusCode == http.StatusNotModified {
8627		if res.Body != nil {
8628			res.Body.Close()
8629		}
8630		return nil, &googleapi.Error{
8631			Code:   res.StatusCode,
8632			Header: res.Header,
8633		}
8634	}
8635	if err != nil {
8636		return nil, err
8637	}
8638	defer googleapi.CloseBody(res)
8639	if err := googleapi.CheckResponse(res); err != nil {
8640		return nil, err
8641	}
8642	ret := &GetOpenIDConfigResponse{
8643		ServerResponse: googleapi.ServerResponse{
8644			Header:         res.Header,
8645			HTTPStatusCode: res.StatusCode,
8646		},
8647	}
8648	target := &ret
8649	if err := gensupport.DecodeResponse(target, res); err != nil {
8650		return nil, err
8651	}
8652	return ret, nil
8653	// {
8654	//   "description": "Gets the OIDC discovery document for the cluster.\nSee the\n[OpenID Connect Discovery 1.0\nspecification](https://openid.net/specs/openid-connect-discovery-1_0.html)\nfor details.\nThis API is not yet intended for general use, and is not available for all\nclusters.",
8655	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/.well-known/openid-configuration",
8656	//   "httpMethod": "GET",
8657	//   "id": "container.projects.locations.clusters.well-known.getOpenid-configuration",
8658	//   "parameterOrder": [
8659	//     "parent"
8660	//   ],
8661	//   "parameters": {
8662	//     "parent": {
8663	//       "description": "The cluster (project, location, cluster id) to get the discovery document\nfor. Specified in the format 'projects/*/locations/*/clusters/*'.",
8664	//       "location": "path",
8665	//       "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$",
8666	//       "required": true,
8667	//       "type": "string"
8668	//     }
8669	//   },
8670	//   "path": "v1/{+parent}/.well-known/openid-configuration",
8671	//   "response": {
8672	//     "$ref": "GetOpenIDConfigResponse"
8673	//   }
8674	// }
8675
8676}
8677
8678// method id "container.projects.locations.operations.cancel":
8679
8680type ProjectsLocationsOperationsCancelCall struct {
8681	s                      *Service
8682	name                   string
8683	canceloperationrequest *CancelOperationRequest
8684	urlParams_             gensupport.URLParams
8685	ctx_                   context.Context
8686	header_                http.Header
8687}
8688
8689// Cancel: Cancels the specified operation.
8690func (r *ProjectsLocationsOperationsService) Cancel(name string, canceloperationrequest *CancelOperationRequest) *ProjectsLocationsOperationsCancelCall {
8691	c := &ProjectsLocationsOperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8692	c.name = name
8693	c.canceloperationrequest = canceloperationrequest
8694	return c
8695}
8696
8697// Fields allows partial responses to be retrieved. See
8698// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8699// for more information.
8700func (c *ProjectsLocationsOperationsCancelCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsCancelCall {
8701	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8702	return c
8703}
8704
8705// Context sets the context to be used in this call's Do method. Any
8706// pending HTTP request will be aborted if the provided context is
8707// canceled.
8708func (c *ProjectsLocationsOperationsCancelCall) Context(ctx context.Context) *ProjectsLocationsOperationsCancelCall {
8709	c.ctx_ = ctx
8710	return c
8711}
8712
8713// Header returns an http.Header that can be modified by the caller to
8714// add HTTP headers to the request.
8715func (c *ProjectsLocationsOperationsCancelCall) Header() http.Header {
8716	if c.header_ == nil {
8717		c.header_ = make(http.Header)
8718	}
8719	return c.header_
8720}
8721
8722func (c *ProjectsLocationsOperationsCancelCall) doRequest(alt string) (*http.Response, error) {
8723	reqHeaders := make(http.Header)
8724	for k, v := range c.header_ {
8725		reqHeaders[k] = v
8726	}
8727	reqHeaders.Set("User-Agent", c.s.userAgent())
8728	var body io.Reader = nil
8729	body, err := googleapi.WithoutDataWrapper.JSONReader(c.canceloperationrequest)
8730	if err != nil {
8731		return nil, err
8732	}
8733	reqHeaders.Set("Content-Type", "application/json")
8734	c.urlParams_.Set("alt", alt)
8735	c.urlParams_.Set("prettyPrint", "false")
8736	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:cancel")
8737	urls += "?" + c.urlParams_.Encode()
8738	req, err := http.NewRequest("POST", urls, body)
8739	if err != nil {
8740		return nil, err
8741	}
8742	req.Header = reqHeaders
8743	googleapi.Expand(req.URL, map[string]string{
8744		"name": c.name,
8745	})
8746	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8747}
8748
8749// Do executes the "container.projects.locations.operations.cancel" call.
8750// Exactly one of *Empty or error will be non-nil. Any non-2xx status
8751// code is an error. Response headers are in either
8752// *Empty.ServerResponse.Header or (if a response was returned at all)
8753// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8754// check whether the returned error was because http.StatusNotModified
8755// was returned.
8756func (c *ProjectsLocationsOperationsCancelCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
8757	gensupport.SetOptions(c.urlParams_, opts...)
8758	res, err := c.doRequest("json")
8759	if res != nil && res.StatusCode == http.StatusNotModified {
8760		if res.Body != nil {
8761			res.Body.Close()
8762		}
8763		return nil, &googleapi.Error{
8764			Code:   res.StatusCode,
8765			Header: res.Header,
8766		}
8767	}
8768	if err != nil {
8769		return nil, err
8770	}
8771	defer googleapi.CloseBody(res)
8772	if err := googleapi.CheckResponse(res); err != nil {
8773		return nil, err
8774	}
8775	ret := &Empty{
8776		ServerResponse: googleapi.ServerResponse{
8777			Header:         res.Header,
8778			HTTPStatusCode: res.StatusCode,
8779		},
8780	}
8781	target := &ret
8782	if err := gensupport.DecodeResponse(target, res); err != nil {
8783		return nil, err
8784	}
8785	return ret, nil
8786	// {
8787	//   "description": "Cancels the specified operation.",
8788	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
8789	//   "httpMethod": "POST",
8790	//   "id": "container.projects.locations.operations.cancel",
8791	//   "parameterOrder": [
8792	//     "name"
8793	//   ],
8794	//   "parameters": {
8795	//     "name": {
8796	//       "description": "The name (project, location, operation id) of the operation to cancel.\nSpecified in the format 'projects/*/locations/*/operations/*'.",
8797	//       "location": "path",
8798	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
8799	//       "required": true,
8800	//       "type": "string"
8801	//     }
8802	//   },
8803	//   "path": "v1/{+name}:cancel",
8804	//   "request": {
8805	//     "$ref": "CancelOperationRequest"
8806	//   },
8807	//   "response": {
8808	//     "$ref": "Empty"
8809	//   },
8810	//   "scopes": [
8811	//     "https://www.googleapis.com/auth/cloud-platform"
8812	//   ]
8813	// }
8814
8815}
8816
8817// method id "container.projects.locations.operations.get":
8818
8819type ProjectsLocationsOperationsGetCall struct {
8820	s            *Service
8821	name         string
8822	urlParams_   gensupport.URLParams
8823	ifNoneMatch_ string
8824	ctx_         context.Context
8825	header_      http.Header
8826}
8827
8828// Get: Gets the specified operation.
8829func (r *ProjectsLocationsOperationsService) Get(name string) *ProjectsLocationsOperationsGetCall {
8830	c := &ProjectsLocationsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8831	c.name = name
8832	return c
8833}
8834
8835// OperationId sets the optional parameter "operationId": Deprecated.
8836// The server-assigned `name` of the operation.
8837// This field has been deprecated and replaced by the name field.
8838func (c *ProjectsLocationsOperationsGetCall) OperationId(operationId string) *ProjectsLocationsOperationsGetCall {
8839	c.urlParams_.Set("operationId", operationId)
8840	return c
8841}
8842
8843// ProjectId sets the optional parameter "projectId": Deprecated. The
8844// Google Developers Console [project ID or
8845// project
8846// number](https://support.google.com/cloud/answer/6158840).
8847// This
8848//  field has been deprecated and replaced by the name field.
8849func (c *ProjectsLocationsOperationsGetCall) ProjectId(projectId string) *ProjectsLocationsOperationsGetCall {
8850	c.urlParams_.Set("projectId", projectId)
8851	return c
8852}
8853
8854// Zone sets the optional parameter "zone": Deprecated. The name of the
8855// Google Compute Engine
8856// [zone](/compute/docs/zones#available) in which the
8857// cluster
8858// resides.
8859// This field has been deprecated and replaced by the name field.
8860func (c *ProjectsLocationsOperationsGetCall) Zone(zone string) *ProjectsLocationsOperationsGetCall {
8861	c.urlParams_.Set("zone", zone)
8862	return c
8863}
8864
8865// Fields allows partial responses to be retrieved. See
8866// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8867// for more information.
8868func (c *ProjectsLocationsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsGetCall {
8869	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8870	return c
8871}
8872
8873// IfNoneMatch sets the optional parameter which makes the operation
8874// fail if the object's ETag matches the given value. This is useful for
8875// getting updates only after the object has changed since the last
8876// request. Use googleapi.IsNotModified to check whether the response
8877// error from Do is the result of In-None-Match.
8878func (c *ProjectsLocationsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsOperationsGetCall {
8879	c.ifNoneMatch_ = entityTag
8880	return c
8881}
8882
8883// Context sets the context to be used in this call's Do method. Any
8884// pending HTTP request will be aborted if the provided context is
8885// canceled.
8886func (c *ProjectsLocationsOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsOperationsGetCall {
8887	c.ctx_ = ctx
8888	return c
8889}
8890
8891// Header returns an http.Header that can be modified by the caller to
8892// add HTTP headers to the request.
8893func (c *ProjectsLocationsOperationsGetCall) Header() http.Header {
8894	if c.header_ == nil {
8895		c.header_ = make(http.Header)
8896	}
8897	return c.header_
8898}
8899
8900func (c *ProjectsLocationsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
8901	reqHeaders := make(http.Header)
8902	for k, v := range c.header_ {
8903		reqHeaders[k] = v
8904	}
8905	reqHeaders.Set("User-Agent", c.s.userAgent())
8906	if c.ifNoneMatch_ != "" {
8907		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8908	}
8909	var body io.Reader = nil
8910	c.urlParams_.Set("alt", alt)
8911	c.urlParams_.Set("prettyPrint", "false")
8912	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
8913	urls += "?" + c.urlParams_.Encode()
8914	req, err := http.NewRequest("GET", urls, body)
8915	if err != nil {
8916		return nil, err
8917	}
8918	req.Header = reqHeaders
8919	googleapi.Expand(req.URL, map[string]string{
8920		"name": c.name,
8921	})
8922	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8923}
8924
8925// Do executes the "container.projects.locations.operations.get" call.
8926// Exactly one of *Operation or error will be non-nil. Any non-2xx
8927// status code is an error. Response headers are in either
8928// *Operation.ServerResponse.Header or (if a response was returned at
8929// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
8930// to check whether the returned error was because
8931// http.StatusNotModified was returned.
8932func (c *ProjectsLocationsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
8933	gensupport.SetOptions(c.urlParams_, opts...)
8934	res, err := c.doRequest("json")
8935	if res != nil && res.StatusCode == http.StatusNotModified {
8936		if res.Body != nil {
8937			res.Body.Close()
8938		}
8939		return nil, &googleapi.Error{
8940			Code:   res.StatusCode,
8941			Header: res.Header,
8942		}
8943	}
8944	if err != nil {
8945		return nil, err
8946	}
8947	defer googleapi.CloseBody(res)
8948	if err := googleapi.CheckResponse(res); err != nil {
8949		return nil, err
8950	}
8951	ret := &Operation{
8952		ServerResponse: googleapi.ServerResponse{
8953			Header:         res.Header,
8954			HTTPStatusCode: res.StatusCode,
8955		},
8956	}
8957	target := &ret
8958	if err := gensupport.DecodeResponse(target, res); err != nil {
8959		return nil, err
8960	}
8961	return ret, nil
8962	// {
8963	//   "description": "Gets the specified operation.",
8964	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}",
8965	//   "httpMethod": "GET",
8966	//   "id": "container.projects.locations.operations.get",
8967	//   "parameterOrder": [
8968	//     "name"
8969	//   ],
8970	//   "parameters": {
8971	//     "name": {
8972	//       "description": "The name (project, location, operation id) of the operation to get.\nSpecified in the format 'projects/*/locations/*/operations/*'.",
8973	//       "location": "path",
8974	//       "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$",
8975	//       "required": true,
8976	//       "type": "string"
8977	//     },
8978	//     "operationId": {
8979	//       "description": "Deprecated. The server-assigned `name` of the operation.\nThis field has been deprecated and replaced by the name field.",
8980	//       "location": "query",
8981	//       "type": "string"
8982	//     },
8983	//     "projectId": {
8984	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
8985	//       "location": "query",
8986	//       "type": "string"
8987	//     },
8988	//     "zone": {
8989	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
8990	//       "location": "query",
8991	//       "type": "string"
8992	//     }
8993	//   },
8994	//   "path": "v1/{+name}",
8995	//   "response": {
8996	//     "$ref": "Operation"
8997	//   },
8998	//   "scopes": [
8999	//     "https://www.googleapis.com/auth/cloud-platform"
9000	//   ]
9001	// }
9002
9003}
9004
9005// method id "container.projects.locations.operations.list":
9006
9007type ProjectsLocationsOperationsListCall struct {
9008	s            *Service
9009	parent       string
9010	urlParams_   gensupport.URLParams
9011	ifNoneMatch_ string
9012	ctx_         context.Context
9013	header_      http.Header
9014}
9015
9016// List: Lists all operations in a project in a specific zone or all
9017// zones.
9018func (r *ProjectsLocationsOperationsService) List(parent string) *ProjectsLocationsOperationsListCall {
9019	c := &ProjectsLocationsOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9020	c.parent = parent
9021	return c
9022}
9023
9024// ProjectId sets the optional parameter "projectId": Deprecated. The
9025// Google Developers Console [project ID or
9026// project
9027// number](https://support.google.com/cloud/answer/6158840).
9028// This
9029//  field has been deprecated and replaced by the parent field.
9030func (c *ProjectsLocationsOperationsListCall) ProjectId(projectId string) *ProjectsLocationsOperationsListCall {
9031	c.urlParams_.Set("projectId", projectId)
9032	return c
9033}
9034
9035// Zone sets the optional parameter "zone": Deprecated. The name of the
9036// Google Compute Engine
9037// [zone](/compute/docs/zones#available) to return operations for, or
9038// `-` for
9039// all zones. This field has been deprecated and replaced by the parent
9040// field.
9041func (c *ProjectsLocationsOperationsListCall) Zone(zone string) *ProjectsLocationsOperationsListCall {
9042	c.urlParams_.Set("zone", zone)
9043	return c
9044}
9045
9046// Fields allows partial responses to be retrieved. See
9047// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9048// for more information.
9049func (c *ProjectsLocationsOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsListCall {
9050	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9051	return c
9052}
9053
9054// IfNoneMatch sets the optional parameter which makes the operation
9055// fail if the object's ETag matches the given value. This is useful for
9056// getting updates only after the object has changed since the last
9057// request. Use googleapi.IsNotModified to check whether the response
9058// error from Do is the result of In-None-Match.
9059func (c *ProjectsLocationsOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsOperationsListCall {
9060	c.ifNoneMatch_ = entityTag
9061	return c
9062}
9063
9064// Context sets the context to be used in this call's Do method. Any
9065// pending HTTP request will be aborted if the provided context is
9066// canceled.
9067func (c *ProjectsLocationsOperationsListCall) Context(ctx context.Context) *ProjectsLocationsOperationsListCall {
9068	c.ctx_ = ctx
9069	return c
9070}
9071
9072// Header returns an http.Header that can be modified by the caller to
9073// add HTTP headers to the request.
9074func (c *ProjectsLocationsOperationsListCall) Header() http.Header {
9075	if c.header_ == nil {
9076		c.header_ = make(http.Header)
9077	}
9078	return c.header_
9079}
9080
9081func (c *ProjectsLocationsOperationsListCall) doRequest(alt string) (*http.Response, error) {
9082	reqHeaders := make(http.Header)
9083	for k, v := range c.header_ {
9084		reqHeaders[k] = v
9085	}
9086	reqHeaders.Set("User-Agent", c.s.userAgent())
9087	if c.ifNoneMatch_ != "" {
9088		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9089	}
9090	var body io.Reader = nil
9091	c.urlParams_.Set("alt", alt)
9092	c.urlParams_.Set("prettyPrint", "false")
9093	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/operations")
9094	urls += "?" + c.urlParams_.Encode()
9095	req, err := http.NewRequest("GET", urls, body)
9096	if err != nil {
9097		return nil, err
9098	}
9099	req.Header = reqHeaders
9100	googleapi.Expand(req.URL, map[string]string{
9101		"parent": c.parent,
9102	})
9103	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9104}
9105
9106// Do executes the "container.projects.locations.operations.list" call.
9107// Exactly one of *ListOperationsResponse or error will be non-nil. Any
9108// non-2xx status code is an error. Response headers are in either
9109// *ListOperationsResponse.ServerResponse.Header or (if a response was
9110// returned at all) in error.(*googleapi.Error).Header. Use
9111// googleapi.IsNotModified to check whether the returned error was
9112// because http.StatusNotModified was returned.
9113func (c *ProjectsLocationsOperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) {
9114	gensupport.SetOptions(c.urlParams_, opts...)
9115	res, err := c.doRequest("json")
9116	if res != nil && res.StatusCode == http.StatusNotModified {
9117		if res.Body != nil {
9118			res.Body.Close()
9119		}
9120		return nil, &googleapi.Error{
9121			Code:   res.StatusCode,
9122			Header: res.Header,
9123		}
9124	}
9125	if err != nil {
9126		return nil, err
9127	}
9128	defer googleapi.CloseBody(res)
9129	if err := googleapi.CheckResponse(res); err != nil {
9130		return nil, err
9131	}
9132	ret := &ListOperationsResponse{
9133		ServerResponse: googleapi.ServerResponse{
9134			Header:         res.Header,
9135			HTTPStatusCode: res.StatusCode,
9136		},
9137	}
9138	target := &ret
9139	if err := gensupport.DecodeResponse(target, res); err != nil {
9140		return nil, err
9141	}
9142	return ret, nil
9143	// {
9144	//   "description": "Lists all operations in a project in a specific zone or all zones.",
9145	//   "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations",
9146	//   "httpMethod": "GET",
9147	//   "id": "container.projects.locations.operations.list",
9148	//   "parameterOrder": [
9149	//     "parent"
9150	//   ],
9151	//   "parameters": {
9152	//     "parent": {
9153	//       "description": "The parent (project and location) where the operations will be listed.\nSpecified in the format 'projects/*/locations/*'.\nLocation \"-\" matches all zones and all regions.",
9154	//       "location": "path",
9155	//       "pattern": "^projects/[^/]+/locations/[^/]+$",
9156	//       "required": true,
9157	//       "type": "string"
9158	//     },
9159	//     "projectId": {
9160	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the parent field.",
9161	//       "location": "query",
9162	//       "type": "string"
9163	//     },
9164	//     "zone": {
9165	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) to return operations for, or `-` for\nall zones. This field has been deprecated and replaced by the parent field.",
9166	//       "location": "query",
9167	//       "type": "string"
9168	//     }
9169	//   },
9170	//   "path": "v1/{+parent}/operations",
9171	//   "response": {
9172	//     "$ref": "ListOperationsResponse"
9173	//   },
9174	//   "scopes": [
9175	//     "https://www.googleapis.com/auth/cloud-platform"
9176	//   ]
9177	// }
9178
9179}
9180
9181// method id "container.projects.zones.getServerconfig":
9182
9183type ProjectsZonesGetServerconfigCall struct {
9184	s            *Service
9185	projectId    string
9186	zone         string
9187	urlParams_   gensupport.URLParams
9188	ifNoneMatch_ string
9189	ctx_         context.Context
9190	header_      http.Header
9191}
9192
9193// GetServerconfig: Returns configuration info about the Google
9194// Kubernetes Engine service.
9195func (r *ProjectsZonesService) GetServerconfig(projectId string, zone string) *ProjectsZonesGetServerconfigCall {
9196	c := &ProjectsZonesGetServerconfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9197	c.projectId = projectId
9198	c.zone = zone
9199	return c
9200}
9201
9202// Name sets the optional parameter "name": The name (project and
9203// location) of the server config to get,
9204// specified in the format 'projects/*/locations/*'.
9205func (c *ProjectsZonesGetServerconfigCall) Name(name string) *ProjectsZonesGetServerconfigCall {
9206	c.urlParams_.Set("name", name)
9207	return c
9208}
9209
9210// Fields allows partial responses to be retrieved. See
9211// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9212// for more information.
9213func (c *ProjectsZonesGetServerconfigCall) Fields(s ...googleapi.Field) *ProjectsZonesGetServerconfigCall {
9214	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9215	return c
9216}
9217
9218// IfNoneMatch sets the optional parameter which makes the operation
9219// fail if the object's ETag matches the given value. This is useful for
9220// getting updates only after the object has changed since the last
9221// request. Use googleapi.IsNotModified to check whether the response
9222// error from Do is the result of In-None-Match.
9223func (c *ProjectsZonesGetServerconfigCall) IfNoneMatch(entityTag string) *ProjectsZonesGetServerconfigCall {
9224	c.ifNoneMatch_ = entityTag
9225	return c
9226}
9227
9228// Context sets the context to be used in this call's Do method. Any
9229// pending HTTP request will be aborted if the provided context is
9230// canceled.
9231func (c *ProjectsZonesGetServerconfigCall) Context(ctx context.Context) *ProjectsZonesGetServerconfigCall {
9232	c.ctx_ = ctx
9233	return c
9234}
9235
9236// Header returns an http.Header that can be modified by the caller to
9237// add HTTP headers to the request.
9238func (c *ProjectsZonesGetServerconfigCall) Header() http.Header {
9239	if c.header_ == nil {
9240		c.header_ = make(http.Header)
9241	}
9242	return c.header_
9243}
9244
9245func (c *ProjectsZonesGetServerconfigCall) doRequest(alt string) (*http.Response, error) {
9246	reqHeaders := make(http.Header)
9247	for k, v := range c.header_ {
9248		reqHeaders[k] = v
9249	}
9250	reqHeaders.Set("User-Agent", c.s.userAgent())
9251	if c.ifNoneMatch_ != "" {
9252		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9253	}
9254	var body io.Reader = nil
9255	c.urlParams_.Set("alt", alt)
9256	c.urlParams_.Set("prettyPrint", "false")
9257	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/serverconfig")
9258	urls += "?" + c.urlParams_.Encode()
9259	req, err := http.NewRequest("GET", urls, body)
9260	if err != nil {
9261		return nil, err
9262	}
9263	req.Header = reqHeaders
9264	googleapi.Expand(req.URL, map[string]string{
9265		"projectId": c.projectId,
9266		"zone":      c.zone,
9267	})
9268	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9269}
9270
9271// Do executes the "container.projects.zones.getServerconfig" call.
9272// Exactly one of *ServerConfig or error will be non-nil. Any non-2xx
9273// status code is an error. Response headers are in either
9274// *ServerConfig.ServerResponse.Header or (if a response was returned at
9275// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9276// to check whether the returned error was because
9277// http.StatusNotModified was returned.
9278func (c *ProjectsZonesGetServerconfigCall) Do(opts ...googleapi.CallOption) (*ServerConfig, error) {
9279	gensupport.SetOptions(c.urlParams_, opts...)
9280	res, err := c.doRequest("json")
9281	if res != nil && res.StatusCode == http.StatusNotModified {
9282		if res.Body != nil {
9283			res.Body.Close()
9284		}
9285		return nil, &googleapi.Error{
9286			Code:   res.StatusCode,
9287			Header: res.Header,
9288		}
9289	}
9290	if err != nil {
9291		return nil, err
9292	}
9293	defer googleapi.CloseBody(res)
9294	if err := googleapi.CheckResponse(res); err != nil {
9295		return nil, err
9296	}
9297	ret := &ServerConfig{
9298		ServerResponse: googleapi.ServerResponse{
9299			Header:         res.Header,
9300			HTTPStatusCode: res.StatusCode,
9301		},
9302	}
9303	target := &ret
9304	if err := gensupport.DecodeResponse(target, res); err != nil {
9305		return nil, err
9306	}
9307	return ret, nil
9308	// {
9309	//   "description": "Returns configuration info about the Google Kubernetes Engine service.",
9310	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/serverconfig",
9311	//   "httpMethod": "GET",
9312	//   "id": "container.projects.zones.getServerconfig",
9313	//   "parameterOrder": [
9314	//     "projectId",
9315	//     "zone"
9316	//   ],
9317	//   "parameters": {
9318	//     "name": {
9319	//       "description": "The name (project and location) of the server config to get,\nspecified in the format 'projects/*/locations/*'.",
9320	//       "location": "query",
9321	//       "type": "string"
9322	//     },
9323	//     "projectId": {
9324	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
9325	//       "location": "path",
9326	//       "required": true,
9327	//       "type": "string"
9328	//     },
9329	//     "zone": {
9330	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) to return operations for.\nThis field has been deprecated and replaced by the name field.",
9331	//       "location": "path",
9332	//       "required": true,
9333	//       "type": "string"
9334	//     }
9335	//   },
9336	//   "path": "v1/projects/{projectId}/zones/{zone}/serverconfig",
9337	//   "response": {
9338	//     "$ref": "ServerConfig"
9339	//   },
9340	//   "scopes": [
9341	//     "https://www.googleapis.com/auth/cloud-platform"
9342	//   ]
9343	// }
9344
9345}
9346
9347// method id "container.projects.zones.clusters.addons":
9348
9349type ProjectsZonesClustersAddonsCall struct {
9350	s                      *Service
9351	projectId              string
9352	zone                   string
9353	clusterId              string
9354	setaddonsconfigrequest *SetAddonsConfigRequest
9355	urlParams_             gensupport.URLParams
9356	ctx_                   context.Context
9357	header_                http.Header
9358}
9359
9360// Addons: Sets the addons for a specific cluster.
9361func (r *ProjectsZonesClustersService) Addons(projectId string, zone string, clusterId string, setaddonsconfigrequest *SetAddonsConfigRequest) *ProjectsZonesClustersAddonsCall {
9362	c := &ProjectsZonesClustersAddonsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9363	c.projectId = projectId
9364	c.zone = zone
9365	c.clusterId = clusterId
9366	c.setaddonsconfigrequest = setaddonsconfigrequest
9367	return c
9368}
9369
9370// Fields allows partial responses to be retrieved. See
9371// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9372// for more information.
9373func (c *ProjectsZonesClustersAddonsCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersAddonsCall {
9374	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9375	return c
9376}
9377
9378// Context sets the context to be used in this call's Do method. Any
9379// pending HTTP request will be aborted if the provided context is
9380// canceled.
9381func (c *ProjectsZonesClustersAddonsCall) Context(ctx context.Context) *ProjectsZonesClustersAddonsCall {
9382	c.ctx_ = ctx
9383	return c
9384}
9385
9386// Header returns an http.Header that can be modified by the caller to
9387// add HTTP headers to the request.
9388func (c *ProjectsZonesClustersAddonsCall) Header() http.Header {
9389	if c.header_ == nil {
9390		c.header_ = make(http.Header)
9391	}
9392	return c.header_
9393}
9394
9395func (c *ProjectsZonesClustersAddonsCall) doRequest(alt string) (*http.Response, error) {
9396	reqHeaders := make(http.Header)
9397	for k, v := range c.header_ {
9398		reqHeaders[k] = v
9399	}
9400	reqHeaders.Set("User-Agent", c.s.userAgent())
9401	var body io.Reader = nil
9402	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setaddonsconfigrequest)
9403	if err != nil {
9404		return nil, err
9405	}
9406	reqHeaders.Set("Content-Type", "application/json")
9407	c.urlParams_.Set("alt", alt)
9408	c.urlParams_.Set("prettyPrint", "false")
9409	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/addons")
9410	urls += "?" + c.urlParams_.Encode()
9411	req, err := http.NewRequest("POST", urls, body)
9412	if err != nil {
9413		return nil, err
9414	}
9415	req.Header = reqHeaders
9416	googleapi.Expand(req.URL, map[string]string{
9417		"projectId": c.projectId,
9418		"zone":      c.zone,
9419		"clusterId": c.clusterId,
9420	})
9421	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9422}
9423
9424// Do executes the "container.projects.zones.clusters.addons" call.
9425// Exactly one of *Operation or error will be non-nil. Any non-2xx
9426// status code is an error. Response headers are in either
9427// *Operation.ServerResponse.Header or (if a response was returned at
9428// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9429// to check whether the returned error was because
9430// http.StatusNotModified was returned.
9431func (c *ProjectsZonesClustersAddonsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
9432	gensupport.SetOptions(c.urlParams_, opts...)
9433	res, err := c.doRequest("json")
9434	if res != nil && res.StatusCode == http.StatusNotModified {
9435		if res.Body != nil {
9436			res.Body.Close()
9437		}
9438		return nil, &googleapi.Error{
9439			Code:   res.StatusCode,
9440			Header: res.Header,
9441		}
9442	}
9443	if err != nil {
9444		return nil, err
9445	}
9446	defer googleapi.CloseBody(res)
9447	if err := googleapi.CheckResponse(res); err != nil {
9448		return nil, err
9449	}
9450	ret := &Operation{
9451		ServerResponse: googleapi.ServerResponse{
9452			Header:         res.Header,
9453			HTTPStatusCode: res.StatusCode,
9454		},
9455	}
9456	target := &ret
9457	if err := gensupport.DecodeResponse(target, res); err != nil {
9458		return nil, err
9459	}
9460	return ret, nil
9461	// {
9462	//   "description": "Sets the addons for a specific cluster.",
9463	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/addons",
9464	//   "httpMethod": "POST",
9465	//   "id": "container.projects.zones.clusters.addons",
9466	//   "parameterOrder": [
9467	//     "projectId",
9468	//     "zone",
9469	//     "clusterId"
9470	//   ],
9471	//   "parameters": {
9472	//     "clusterId": {
9473	//       "description": "Deprecated. The name of the cluster to upgrade.\nThis field has been deprecated and replaced by the name field.",
9474	//       "location": "path",
9475	//       "required": true,
9476	//       "type": "string"
9477	//     },
9478	//     "projectId": {
9479	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
9480	//       "location": "path",
9481	//       "required": true,
9482	//       "type": "string"
9483	//     },
9484	//     "zone": {
9485	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
9486	//       "location": "path",
9487	//       "required": true,
9488	//       "type": "string"
9489	//     }
9490	//   },
9491	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/addons",
9492	//   "request": {
9493	//     "$ref": "SetAddonsConfigRequest"
9494	//   },
9495	//   "response": {
9496	//     "$ref": "Operation"
9497	//   },
9498	//   "scopes": [
9499	//     "https://www.googleapis.com/auth/cloud-platform"
9500	//   ]
9501	// }
9502
9503}
9504
9505// method id "container.projects.zones.clusters.completeIpRotation":
9506
9507type ProjectsZonesClustersCompleteIpRotationCall struct {
9508	s                         *Service
9509	projectId                 string
9510	zone                      string
9511	clusterId                 string
9512	completeiprotationrequest *CompleteIPRotationRequest
9513	urlParams_                gensupport.URLParams
9514	ctx_                      context.Context
9515	header_                   http.Header
9516}
9517
9518// CompleteIpRotation: Completes master IP rotation.
9519func (r *ProjectsZonesClustersService) CompleteIpRotation(projectId string, zone string, clusterId string, completeiprotationrequest *CompleteIPRotationRequest) *ProjectsZonesClustersCompleteIpRotationCall {
9520	c := &ProjectsZonesClustersCompleteIpRotationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9521	c.projectId = projectId
9522	c.zone = zone
9523	c.clusterId = clusterId
9524	c.completeiprotationrequest = completeiprotationrequest
9525	return c
9526}
9527
9528// Fields allows partial responses to be retrieved. See
9529// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9530// for more information.
9531func (c *ProjectsZonesClustersCompleteIpRotationCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersCompleteIpRotationCall {
9532	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9533	return c
9534}
9535
9536// Context sets the context to be used in this call's Do method. Any
9537// pending HTTP request will be aborted if the provided context is
9538// canceled.
9539func (c *ProjectsZonesClustersCompleteIpRotationCall) Context(ctx context.Context) *ProjectsZonesClustersCompleteIpRotationCall {
9540	c.ctx_ = ctx
9541	return c
9542}
9543
9544// Header returns an http.Header that can be modified by the caller to
9545// add HTTP headers to the request.
9546func (c *ProjectsZonesClustersCompleteIpRotationCall) Header() http.Header {
9547	if c.header_ == nil {
9548		c.header_ = make(http.Header)
9549	}
9550	return c.header_
9551}
9552
9553func (c *ProjectsZonesClustersCompleteIpRotationCall) doRequest(alt string) (*http.Response, error) {
9554	reqHeaders := make(http.Header)
9555	for k, v := range c.header_ {
9556		reqHeaders[k] = v
9557	}
9558	reqHeaders.Set("User-Agent", c.s.userAgent())
9559	var body io.Reader = nil
9560	body, err := googleapi.WithoutDataWrapper.JSONReader(c.completeiprotationrequest)
9561	if err != nil {
9562		return nil, err
9563	}
9564	reqHeaders.Set("Content-Type", "application/json")
9565	c.urlParams_.Set("alt", alt)
9566	c.urlParams_.Set("prettyPrint", "false")
9567	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:completeIpRotation")
9568	urls += "?" + c.urlParams_.Encode()
9569	req, err := http.NewRequest("POST", urls, body)
9570	if err != nil {
9571		return nil, err
9572	}
9573	req.Header = reqHeaders
9574	googleapi.Expand(req.URL, map[string]string{
9575		"projectId": c.projectId,
9576		"zone":      c.zone,
9577		"clusterId": c.clusterId,
9578	})
9579	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9580}
9581
9582// Do executes the "container.projects.zones.clusters.completeIpRotation" call.
9583// Exactly one of *Operation or error will be non-nil. Any non-2xx
9584// status code is an error. Response headers are in either
9585// *Operation.ServerResponse.Header or (if a response was returned at
9586// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9587// to check whether the returned error was because
9588// http.StatusNotModified was returned.
9589func (c *ProjectsZonesClustersCompleteIpRotationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
9590	gensupport.SetOptions(c.urlParams_, opts...)
9591	res, err := c.doRequest("json")
9592	if res != nil && res.StatusCode == http.StatusNotModified {
9593		if res.Body != nil {
9594			res.Body.Close()
9595		}
9596		return nil, &googleapi.Error{
9597			Code:   res.StatusCode,
9598			Header: res.Header,
9599		}
9600	}
9601	if err != nil {
9602		return nil, err
9603	}
9604	defer googleapi.CloseBody(res)
9605	if err := googleapi.CheckResponse(res); err != nil {
9606		return nil, err
9607	}
9608	ret := &Operation{
9609		ServerResponse: googleapi.ServerResponse{
9610			Header:         res.Header,
9611			HTTPStatusCode: res.StatusCode,
9612		},
9613	}
9614	target := &ret
9615	if err := gensupport.DecodeResponse(target, res); err != nil {
9616		return nil, err
9617	}
9618	return ret, nil
9619	// {
9620	//   "description": "Completes master IP rotation.",
9621	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:completeIpRotation",
9622	//   "httpMethod": "POST",
9623	//   "id": "container.projects.zones.clusters.completeIpRotation",
9624	//   "parameterOrder": [
9625	//     "projectId",
9626	//     "zone",
9627	//     "clusterId"
9628	//   ],
9629	//   "parameters": {
9630	//     "clusterId": {
9631	//       "description": "Deprecated. The name of the cluster.\nThis field has been deprecated and replaced by the name field.",
9632	//       "location": "path",
9633	//       "required": true,
9634	//       "type": "string"
9635	//     },
9636	//     "projectId": {
9637	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field has been deprecated and replaced by the name field.",
9638	//       "location": "path",
9639	//       "required": true,
9640	//       "type": "string"
9641	//     },
9642	//     "zone": {
9643	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
9644	//       "location": "path",
9645	//       "required": true,
9646	//       "type": "string"
9647	//     }
9648	//   },
9649	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:completeIpRotation",
9650	//   "request": {
9651	//     "$ref": "CompleteIPRotationRequest"
9652	//   },
9653	//   "response": {
9654	//     "$ref": "Operation"
9655	//   },
9656	//   "scopes": [
9657	//     "https://www.googleapis.com/auth/cloud-platform"
9658	//   ]
9659	// }
9660
9661}
9662
9663// method id "container.projects.zones.clusters.create":
9664
9665type ProjectsZonesClustersCreateCall struct {
9666	s                    *Service
9667	projectId            string
9668	zone                 string
9669	createclusterrequest *CreateClusterRequest
9670	urlParams_           gensupport.URLParams
9671	ctx_                 context.Context
9672	header_              http.Header
9673}
9674
9675// Create: Creates a cluster, consisting of the specified number and
9676// type of Google
9677// Compute Engine instances.
9678//
9679// By default, the cluster is created in the project's
9680// [default
9681// network](/compute/docs/networks-and-firewalls#networks).
9682//
9683// One firewall is added for the cluster. After cluster creation,
9684// the Kubelet creates routes for each node to allow the containers
9685// on that node to communicate with all other instances in
9686// the
9687// cluster.
9688//
9689// Finally, an entry is added to the project's global metadata
9690// indicating
9691// which CIDR range the cluster is using.
9692func (r *ProjectsZonesClustersService) Create(projectId string, zone string, createclusterrequest *CreateClusterRequest) *ProjectsZonesClustersCreateCall {
9693	c := &ProjectsZonesClustersCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9694	c.projectId = projectId
9695	c.zone = zone
9696	c.createclusterrequest = createclusterrequest
9697	return c
9698}
9699
9700// Fields allows partial responses to be retrieved. See
9701// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9702// for more information.
9703func (c *ProjectsZonesClustersCreateCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersCreateCall {
9704	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9705	return c
9706}
9707
9708// Context sets the context to be used in this call's Do method. Any
9709// pending HTTP request will be aborted if the provided context is
9710// canceled.
9711func (c *ProjectsZonesClustersCreateCall) Context(ctx context.Context) *ProjectsZonesClustersCreateCall {
9712	c.ctx_ = ctx
9713	return c
9714}
9715
9716// Header returns an http.Header that can be modified by the caller to
9717// add HTTP headers to the request.
9718func (c *ProjectsZonesClustersCreateCall) Header() http.Header {
9719	if c.header_ == nil {
9720		c.header_ = make(http.Header)
9721	}
9722	return c.header_
9723}
9724
9725func (c *ProjectsZonesClustersCreateCall) doRequest(alt string) (*http.Response, error) {
9726	reqHeaders := make(http.Header)
9727	for k, v := range c.header_ {
9728		reqHeaders[k] = v
9729	}
9730	reqHeaders.Set("User-Agent", c.s.userAgent())
9731	var body io.Reader = nil
9732	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createclusterrequest)
9733	if err != nil {
9734		return nil, err
9735	}
9736	reqHeaders.Set("Content-Type", "application/json")
9737	c.urlParams_.Set("alt", alt)
9738	c.urlParams_.Set("prettyPrint", "false")
9739	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters")
9740	urls += "?" + c.urlParams_.Encode()
9741	req, err := http.NewRequest("POST", urls, body)
9742	if err != nil {
9743		return nil, err
9744	}
9745	req.Header = reqHeaders
9746	googleapi.Expand(req.URL, map[string]string{
9747		"projectId": c.projectId,
9748		"zone":      c.zone,
9749	})
9750	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9751}
9752
9753// Do executes the "container.projects.zones.clusters.create" call.
9754// Exactly one of *Operation or error will be non-nil. Any non-2xx
9755// status code is an error. Response headers are in either
9756// *Operation.ServerResponse.Header or (if a response was returned at
9757// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9758// to check whether the returned error was because
9759// http.StatusNotModified was returned.
9760func (c *ProjectsZonesClustersCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
9761	gensupport.SetOptions(c.urlParams_, opts...)
9762	res, err := c.doRequest("json")
9763	if res != nil && res.StatusCode == http.StatusNotModified {
9764		if res.Body != nil {
9765			res.Body.Close()
9766		}
9767		return nil, &googleapi.Error{
9768			Code:   res.StatusCode,
9769			Header: res.Header,
9770		}
9771	}
9772	if err != nil {
9773		return nil, err
9774	}
9775	defer googleapi.CloseBody(res)
9776	if err := googleapi.CheckResponse(res); err != nil {
9777		return nil, err
9778	}
9779	ret := &Operation{
9780		ServerResponse: googleapi.ServerResponse{
9781			Header:         res.Header,
9782			HTTPStatusCode: res.StatusCode,
9783		},
9784	}
9785	target := &ret
9786	if err := gensupport.DecodeResponse(target, res); err != nil {
9787		return nil, err
9788	}
9789	return ret, nil
9790	// {
9791	//   "description": "Creates a cluster, consisting of the specified number and type of Google\nCompute Engine instances.\n\nBy default, the cluster is created in the project's\n[default network](/compute/docs/networks-and-firewalls#networks).\n\nOne firewall is added for the cluster. After cluster creation,\nthe Kubelet creates routes for each node to allow the containers\non that node to communicate with all other instances in the\ncluster.\n\nFinally, an entry is added to the project's global metadata indicating\nwhich CIDR range the cluster is using.",
9792	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters",
9793	//   "httpMethod": "POST",
9794	//   "id": "container.projects.zones.clusters.create",
9795	//   "parameterOrder": [
9796	//     "projectId",
9797	//     "zone"
9798	//   ],
9799	//   "parameters": {
9800	//     "projectId": {
9801	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the parent field.",
9802	//       "location": "path",
9803	//       "required": true,
9804	//       "type": "string"
9805	//     },
9806	//     "zone": {
9807	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the parent field.",
9808	//       "location": "path",
9809	//       "required": true,
9810	//       "type": "string"
9811	//     }
9812	//   },
9813	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters",
9814	//   "request": {
9815	//     "$ref": "CreateClusterRequest"
9816	//   },
9817	//   "response": {
9818	//     "$ref": "Operation"
9819	//   },
9820	//   "scopes": [
9821	//     "https://www.googleapis.com/auth/cloud-platform"
9822	//   ]
9823	// }
9824
9825}
9826
9827// method id "container.projects.zones.clusters.delete":
9828
9829type ProjectsZonesClustersDeleteCall struct {
9830	s          *Service
9831	projectId  string
9832	zone       string
9833	clusterId  string
9834	urlParams_ gensupport.URLParams
9835	ctx_       context.Context
9836	header_    http.Header
9837}
9838
9839// Delete: Deletes the cluster, including the Kubernetes endpoint and
9840// all worker
9841// nodes.
9842//
9843// Firewalls and routes that were configured during cluster creation
9844// are also deleted.
9845//
9846// Other Google Compute Engine resources that might be in use by the
9847// cluster,
9848// such as load balancer resources, are not deleted if they weren't
9849// present
9850// when the cluster was initially created.
9851func (r *ProjectsZonesClustersService) Delete(projectId string, zone string, clusterId string) *ProjectsZonesClustersDeleteCall {
9852	c := &ProjectsZonesClustersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9853	c.projectId = projectId
9854	c.zone = zone
9855	c.clusterId = clusterId
9856	return c
9857}
9858
9859// Name sets the optional parameter "name": The name (project, location,
9860// cluster) of the cluster to delete.
9861// Specified in the format 'projects/*/locations/*/clusters/*'.
9862func (c *ProjectsZonesClustersDeleteCall) Name(name string) *ProjectsZonesClustersDeleteCall {
9863	c.urlParams_.Set("name", name)
9864	return c
9865}
9866
9867// Fields allows partial responses to be retrieved. See
9868// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9869// for more information.
9870func (c *ProjectsZonesClustersDeleteCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersDeleteCall {
9871	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9872	return c
9873}
9874
9875// Context sets the context to be used in this call's Do method. Any
9876// pending HTTP request will be aborted if the provided context is
9877// canceled.
9878func (c *ProjectsZonesClustersDeleteCall) Context(ctx context.Context) *ProjectsZonesClustersDeleteCall {
9879	c.ctx_ = ctx
9880	return c
9881}
9882
9883// Header returns an http.Header that can be modified by the caller to
9884// add HTTP headers to the request.
9885func (c *ProjectsZonesClustersDeleteCall) Header() http.Header {
9886	if c.header_ == nil {
9887		c.header_ = make(http.Header)
9888	}
9889	return c.header_
9890}
9891
9892func (c *ProjectsZonesClustersDeleteCall) doRequest(alt string) (*http.Response, error) {
9893	reqHeaders := make(http.Header)
9894	for k, v := range c.header_ {
9895		reqHeaders[k] = v
9896	}
9897	reqHeaders.Set("User-Agent", c.s.userAgent())
9898	var body io.Reader = nil
9899	c.urlParams_.Set("alt", alt)
9900	c.urlParams_.Set("prettyPrint", "false")
9901	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}")
9902	urls += "?" + c.urlParams_.Encode()
9903	req, err := http.NewRequest("DELETE", urls, body)
9904	if err != nil {
9905		return nil, err
9906	}
9907	req.Header = reqHeaders
9908	googleapi.Expand(req.URL, map[string]string{
9909		"projectId": c.projectId,
9910		"zone":      c.zone,
9911		"clusterId": c.clusterId,
9912	})
9913	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9914}
9915
9916// Do executes the "container.projects.zones.clusters.delete" call.
9917// Exactly one of *Operation or error will be non-nil. Any non-2xx
9918// status code is an error. Response headers are in either
9919// *Operation.ServerResponse.Header or (if a response was returned at
9920// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9921// to check whether the returned error was because
9922// http.StatusNotModified was returned.
9923func (c *ProjectsZonesClustersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
9924	gensupport.SetOptions(c.urlParams_, opts...)
9925	res, err := c.doRequest("json")
9926	if res != nil && res.StatusCode == http.StatusNotModified {
9927		if res.Body != nil {
9928			res.Body.Close()
9929		}
9930		return nil, &googleapi.Error{
9931			Code:   res.StatusCode,
9932			Header: res.Header,
9933		}
9934	}
9935	if err != nil {
9936		return nil, err
9937	}
9938	defer googleapi.CloseBody(res)
9939	if err := googleapi.CheckResponse(res); err != nil {
9940		return nil, err
9941	}
9942	ret := &Operation{
9943		ServerResponse: googleapi.ServerResponse{
9944			Header:         res.Header,
9945			HTTPStatusCode: res.StatusCode,
9946		},
9947	}
9948	target := &ret
9949	if err := gensupport.DecodeResponse(target, res); err != nil {
9950		return nil, err
9951	}
9952	return ret, nil
9953	// {
9954	//   "description": "Deletes the cluster, including the Kubernetes endpoint and all worker\nnodes.\n\nFirewalls and routes that were configured during cluster creation\nare also deleted.\n\nOther Google Compute Engine resources that might be in use by the cluster,\nsuch as load balancer resources, are not deleted if they weren't present\nwhen the cluster was initially created.",
9955	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}",
9956	//   "httpMethod": "DELETE",
9957	//   "id": "container.projects.zones.clusters.delete",
9958	//   "parameterOrder": [
9959	//     "projectId",
9960	//     "zone",
9961	//     "clusterId"
9962	//   ],
9963	//   "parameters": {
9964	//     "clusterId": {
9965	//       "description": "Deprecated. The name of the cluster to delete.\nThis field has been deprecated and replaced by the name field.",
9966	//       "location": "path",
9967	//       "required": true,
9968	//       "type": "string"
9969	//     },
9970	//     "name": {
9971	//       "description": "The name (project, location, cluster) of the cluster to delete.\nSpecified in the format 'projects/*/locations/*/clusters/*'.",
9972	//       "location": "query",
9973	//       "type": "string"
9974	//     },
9975	//     "projectId": {
9976	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
9977	//       "location": "path",
9978	//       "required": true,
9979	//       "type": "string"
9980	//     },
9981	//     "zone": {
9982	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
9983	//       "location": "path",
9984	//       "required": true,
9985	//       "type": "string"
9986	//     }
9987	//   },
9988	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}",
9989	//   "response": {
9990	//     "$ref": "Operation"
9991	//   },
9992	//   "scopes": [
9993	//     "https://www.googleapis.com/auth/cloud-platform"
9994	//   ]
9995	// }
9996
9997}
9998
9999// method id "container.projects.zones.clusters.get":
10000
10001type ProjectsZonesClustersGetCall struct {
10002	s            *Service
10003	projectId    string
10004	zone         string
10005	clusterId    string
10006	urlParams_   gensupport.URLParams
10007	ifNoneMatch_ string
10008	ctx_         context.Context
10009	header_      http.Header
10010}
10011
10012// Get: Gets the details of a specific cluster.
10013func (r *ProjectsZonesClustersService) Get(projectId string, zone string, clusterId string) *ProjectsZonesClustersGetCall {
10014	c := &ProjectsZonesClustersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10015	c.projectId = projectId
10016	c.zone = zone
10017	c.clusterId = clusterId
10018	return c
10019}
10020
10021// Name sets the optional parameter "name": The name (project, location,
10022// cluster) of the cluster to retrieve.
10023// Specified in the format 'projects/*/locations/*/clusters/*'.
10024func (c *ProjectsZonesClustersGetCall) Name(name string) *ProjectsZonesClustersGetCall {
10025	c.urlParams_.Set("name", name)
10026	return c
10027}
10028
10029// Fields allows partial responses to be retrieved. See
10030// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10031// for more information.
10032func (c *ProjectsZonesClustersGetCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersGetCall {
10033	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10034	return c
10035}
10036
10037// IfNoneMatch sets the optional parameter which makes the operation
10038// fail if the object's ETag matches the given value. This is useful for
10039// getting updates only after the object has changed since the last
10040// request. Use googleapi.IsNotModified to check whether the response
10041// error from Do is the result of In-None-Match.
10042func (c *ProjectsZonesClustersGetCall) IfNoneMatch(entityTag string) *ProjectsZonesClustersGetCall {
10043	c.ifNoneMatch_ = entityTag
10044	return c
10045}
10046
10047// Context sets the context to be used in this call's Do method. Any
10048// pending HTTP request will be aborted if the provided context is
10049// canceled.
10050func (c *ProjectsZonesClustersGetCall) Context(ctx context.Context) *ProjectsZonesClustersGetCall {
10051	c.ctx_ = ctx
10052	return c
10053}
10054
10055// Header returns an http.Header that can be modified by the caller to
10056// add HTTP headers to the request.
10057func (c *ProjectsZonesClustersGetCall) Header() http.Header {
10058	if c.header_ == nil {
10059		c.header_ = make(http.Header)
10060	}
10061	return c.header_
10062}
10063
10064func (c *ProjectsZonesClustersGetCall) doRequest(alt string) (*http.Response, error) {
10065	reqHeaders := make(http.Header)
10066	for k, v := range c.header_ {
10067		reqHeaders[k] = v
10068	}
10069	reqHeaders.Set("User-Agent", c.s.userAgent())
10070	if c.ifNoneMatch_ != "" {
10071		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
10072	}
10073	var body io.Reader = nil
10074	c.urlParams_.Set("alt", alt)
10075	c.urlParams_.Set("prettyPrint", "false")
10076	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}")
10077	urls += "?" + c.urlParams_.Encode()
10078	req, err := http.NewRequest("GET", urls, body)
10079	if err != nil {
10080		return nil, err
10081	}
10082	req.Header = reqHeaders
10083	googleapi.Expand(req.URL, map[string]string{
10084		"projectId": c.projectId,
10085		"zone":      c.zone,
10086		"clusterId": c.clusterId,
10087	})
10088	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10089}
10090
10091// Do executes the "container.projects.zones.clusters.get" call.
10092// Exactly one of *Cluster or error will be non-nil. Any non-2xx status
10093// code is an error. Response headers are in either
10094// *Cluster.ServerResponse.Header or (if a response was returned at all)
10095// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
10096// check whether the returned error was because http.StatusNotModified
10097// was returned.
10098func (c *ProjectsZonesClustersGetCall) Do(opts ...googleapi.CallOption) (*Cluster, error) {
10099	gensupport.SetOptions(c.urlParams_, opts...)
10100	res, err := c.doRequest("json")
10101	if res != nil && res.StatusCode == http.StatusNotModified {
10102		if res.Body != nil {
10103			res.Body.Close()
10104		}
10105		return nil, &googleapi.Error{
10106			Code:   res.StatusCode,
10107			Header: res.Header,
10108		}
10109	}
10110	if err != nil {
10111		return nil, err
10112	}
10113	defer googleapi.CloseBody(res)
10114	if err := googleapi.CheckResponse(res); err != nil {
10115		return nil, err
10116	}
10117	ret := &Cluster{
10118		ServerResponse: googleapi.ServerResponse{
10119			Header:         res.Header,
10120			HTTPStatusCode: res.StatusCode,
10121		},
10122	}
10123	target := &ret
10124	if err := gensupport.DecodeResponse(target, res); err != nil {
10125		return nil, err
10126	}
10127	return ret, nil
10128	// {
10129	//   "description": "Gets the details of a specific cluster.",
10130	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}",
10131	//   "httpMethod": "GET",
10132	//   "id": "container.projects.zones.clusters.get",
10133	//   "parameterOrder": [
10134	//     "projectId",
10135	//     "zone",
10136	//     "clusterId"
10137	//   ],
10138	//   "parameters": {
10139	//     "clusterId": {
10140	//       "description": "Deprecated. The name of the cluster to retrieve.\nThis field has been deprecated and replaced by the name field.",
10141	//       "location": "path",
10142	//       "required": true,
10143	//       "type": "string"
10144	//     },
10145	//     "name": {
10146	//       "description": "The name (project, location, cluster) of the cluster to retrieve.\nSpecified in the format 'projects/*/locations/*/clusters/*'.",
10147	//       "location": "query",
10148	//       "type": "string"
10149	//     },
10150	//     "projectId": {
10151	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
10152	//       "location": "path",
10153	//       "required": true,
10154	//       "type": "string"
10155	//     },
10156	//     "zone": {
10157	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
10158	//       "location": "path",
10159	//       "required": true,
10160	//       "type": "string"
10161	//     }
10162	//   },
10163	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}",
10164	//   "response": {
10165	//     "$ref": "Cluster"
10166	//   },
10167	//   "scopes": [
10168	//     "https://www.googleapis.com/auth/cloud-platform"
10169	//   ]
10170	// }
10171
10172}
10173
10174// method id "container.projects.zones.clusters.legacyAbac":
10175
10176type ProjectsZonesClustersLegacyAbacCall struct {
10177	s                    *Service
10178	projectId            string
10179	zone                 string
10180	clusterId            string
10181	setlegacyabacrequest *SetLegacyAbacRequest
10182	urlParams_           gensupport.URLParams
10183	ctx_                 context.Context
10184	header_              http.Header
10185}
10186
10187// LegacyAbac: Enables or disables the ABAC authorization mechanism on a
10188// cluster.
10189func (r *ProjectsZonesClustersService) LegacyAbac(projectId string, zone string, clusterId string, setlegacyabacrequest *SetLegacyAbacRequest) *ProjectsZonesClustersLegacyAbacCall {
10190	c := &ProjectsZonesClustersLegacyAbacCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10191	c.projectId = projectId
10192	c.zone = zone
10193	c.clusterId = clusterId
10194	c.setlegacyabacrequest = setlegacyabacrequest
10195	return c
10196}
10197
10198// Fields allows partial responses to be retrieved. See
10199// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10200// for more information.
10201func (c *ProjectsZonesClustersLegacyAbacCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersLegacyAbacCall {
10202	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10203	return c
10204}
10205
10206// Context sets the context to be used in this call's Do method. Any
10207// pending HTTP request will be aborted if the provided context is
10208// canceled.
10209func (c *ProjectsZonesClustersLegacyAbacCall) Context(ctx context.Context) *ProjectsZonesClustersLegacyAbacCall {
10210	c.ctx_ = ctx
10211	return c
10212}
10213
10214// Header returns an http.Header that can be modified by the caller to
10215// add HTTP headers to the request.
10216func (c *ProjectsZonesClustersLegacyAbacCall) Header() http.Header {
10217	if c.header_ == nil {
10218		c.header_ = make(http.Header)
10219	}
10220	return c.header_
10221}
10222
10223func (c *ProjectsZonesClustersLegacyAbacCall) doRequest(alt string) (*http.Response, error) {
10224	reqHeaders := make(http.Header)
10225	for k, v := range c.header_ {
10226		reqHeaders[k] = v
10227	}
10228	reqHeaders.Set("User-Agent", c.s.userAgent())
10229	var body io.Reader = nil
10230	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setlegacyabacrequest)
10231	if err != nil {
10232		return nil, err
10233	}
10234	reqHeaders.Set("Content-Type", "application/json")
10235	c.urlParams_.Set("alt", alt)
10236	c.urlParams_.Set("prettyPrint", "false")
10237	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/legacyAbac")
10238	urls += "?" + c.urlParams_.Encode()
10239	req, err := http.NewRequest("POST", urls, body)
10240	if err != nil {
10241		return nil, err
10242	}
10243	req.Header = reqHeaders
10244	googleapi.Expand(req.URL, map[string]string{
10245		"projectId": c.projectId,
10246		"zone":      c.zone,
10247		"clusterId": c.clusterId,
10248	})
10249	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10250}
10251
10252// Do executes the "container.projects.zones.clusters.legacyAbac" call.
10253// Exactly one of *Operation or error will be non-nil. Any non-2xx
10254// status code is an error. Response headers are in either
10255// *Operation.ServerResponse.Header or (if a response was returned at
10256// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
10257// to check whether the returned error was because
10258// http.StatusNotModified was returned.
10259func (c *ProjectsZonesClustersLegacyAbacCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
10260	gensupport.SetOptions(c.urlParams_, opts...)
10261	res, err := c.doRequest("json")
10262	if res != nil && res.StatusCode == http.StatusNotModified {
10263		if res.Body != nil {
10264			res.Body.Close()
10265		}
10266		return nil, &googleapi.Error{
10267			Code:   res.StatusCode,
10268			Header: res.Header,
10269		}
10270	}
10271	if err != nil {
10272		return nil, err
10273	}
10274	defer googleapi.CloseBody(res)
10275	if err := googleapi.CheckResponse(res); err != nil {
10276		return nil, err
10277	}
10278	ret := &Operation{
10279		ServerResponse: googleapi.ServerResponse{
10280			Header:         res.Header,
10281			HTTPStatusCode: res.StatusCode,
10282		},
10283	}
10284	target := &ret
10285	if err := gensupport.DecodeResponse(target, res); err != nil {
10286		return nil, err
10287	}
10288	return ret, nil
10289	// {
10290	//   "description": "Enables or disables the ABAC authorization mechanism on a cluster.",
10291	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/legacyAbac",
10292	//   "httpMethod": "POST",
10293	//   "id": "container.projects.zones.clusters.legacyAbac",
10294	//   "parameterOrder": [
10295	//     "projectId",
10296	//     "zone",
10297	//     "clusterId"
10298	//   ],
10299	//   "parameters": {
10300	//     "clusterId": {
10301	//       "description": "Deprecated. The name of the cluster to update.\nThis field has been deprecated and replaced by the name field.",
10302	//       "location": "path",
10303	//       "required": true,
10304	//       "type": "string"
10305	//     },
10306	//     "projectId": {
10307	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
10308	//       "location": "path",
10309	//       "required": true,
10310	//       "type": "string"
10311	//     },
10312	//     "zone": {
10313	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
10314	//       "location": "path",
10315	//       "required": true,
10316	//       "type": "string"
10317	//     }
10318	//   },
10319	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/legacyAbac",
10320	//   "request": {
10321	//     "$ref": "SetLegacyAbacRequest"
10322	//   },
10323	//   "response": {
10324	//     "$ref": "Operation"
10325	//   },
10326	//   "scopes": [
10327	//     "https://www.googleapis.com/auth/cloud-platform"
10328	//   ]
10329	// }
10330
10331}
10332
10333// method id "container.projects.zones.clusters.list":
10334
10335type ProjectsZonesClustersListCall struct {
10336	s            *Service
10337	projectId    string
10338	zone         string
10339	urlParams_   gensupport.URLParams
10340	ifNoneMatch_ string
10341	ctx_         context.Context
10342	header_      http.Header
10343}
10344
10345// List: Lists all clusters owned by a project in either the specified
10346// zone or all
10347// zones.
10348func (r *ProjectsZonesClustersService) List(projectId string, zone string) *ProjectsZonesClustersListCall {
10349	c := &ProjectsZonesClustersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10350	c.projectId = projectId
10351	c.zone = zone
10352	return c
10353}
10354
10355// Parent sets the optional parameter "parent": The parent (project and
10356// location) where the clusters will be listed.
10357// Specified in the format 'projects/*/locations/*'.
10358// Location "-" matches all zones and all regions.
10359func (c *ProjectsZonesClustersListCall) Parent(parent string) *ProjectsZonesClustersListCall {
10360	c.urlParams_.Set("parent", parent)
10361	return c
10362}
10363
10364// Fields allows partial responses to be retrieved. See
10365// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10366// for more information.
10367func (c *ProjectsZonesClustersListCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersListCall {
10368	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10369	return c
10370}
10371
10372// IfNoneMatch sets the optional parameter which makes the operation
10373// fail if the object's ETag matches the given value. This is useful for
10374// getting updates only after the object has changed since the last
10375// request. Use googleapi.IsNotModified to check whether the response
10376// error from Do is the result of In-None-Match.
10377func (c *ProjectsZonesClustersListCall) IfNoneMatch(entityTag string) *ProjectsZonesClustersListCall {
10378	c.ifNoneMatch_ = entityTag
10379	return c
10380}
10381
10382// Context sets the context to be used in this call's Do method. Any
10383// pending HTTP request will be aborted if the provided context is
10384// canceled.
10385func (c *ProjectsZonesClustersListCall) Context(ctx context.Context) *ProjectsZonesClustersListCall {
10386	c.ctx_ = ctx
10387	return c
10388}
10389
10390// Header returns an http.Header that can be modified by the caller to
10391// add HTTP headers to the request.
10392func (c *ProjectsZonesClustersListCall) Header() http.Header {
10393	if c.header_ == nil {
10394		c.header_ = make(http.Header)
10395	}
10396	return c.header_
10397}
10398
10399func (c *ProjectsZonesClustersListCall) doRequest(alt string) (*http.Response, error) {
10400	reqHeaders := make(http.Header)
10401	for k, v := range c.header_ {
10402		reqHeaders[k] = v
10403	}
10404	reqHeaders.Set("User-Agent", c.s.userAgent())
10405	if c.ifNoneMatch_ != "" {
10406		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
10407	}
10408	var body io.Reader = nil
10409	c.urlParams_.Set("alt", alt)
10410	c.urlParams_.Set("prettyPrint", "false")
10411	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters")
10412	urls += "?" + c.urlParams_.Encode()
10413	req, err := http.NewRequest("GET", urls, body)
10414	if err != nil {
10415		return nil, err
10416	}
10417	req.Header = reqHeaders
10418	googleapi.Expand(req.URL, map[string]string{
10419		"projectId": c.projectId,
10420		"zone":      c.zone,
10421	})
10422	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10423}
10424
10425// Do executes the "container.projects.zones.clusters.list" call.
10426// Exactly one of *ListClustersResponse or error will be non-nil. Any
10427// non-2xx status code is an error. Response headers are in either
10428// *ListClustersResponse.ServerResponse.Header or (if a response was
10429// returned at all) in error.(*googleapi.Error).Header. Use
10430// googleapi.IsNotModified to check whether the returned error was
10431// because http.StatusNotModified was returned.
10432func (c *ProjectsZonesClustersListCall) Do(opts ...googleapi.CallOption) (*ListClustersResponse, error) {
10433	gensupport.SetOptions(c.urlParams_, opts...)
10434	res, err := c.doRequest("json")
10435	if res != nil && res.StatusCode == http.StatusNotModified {
10436		if res.Body != nil {
10437			res.Body.Close()
10438		}
10439		return nil, &googleapi.Error{
10440			Code:   res.StatusCode,
10441			Header: res.Header,
10442		}
10443	}
10444	if err != nil {
10445		return nil, err
10446	}
10447	defer googleapi.CloseBody(res)
10448	if err := googleapi.CheckResponse(res); err != nil {
10449		return nil, err
10450	}
10451	ret := &ListClustersResponse{
10452		ServerResponse: googleapi.ServerResponse{
10453			Header:         res.Header,
10454			HTTPStatusCode: res.StatusCode,
10455		},
10456	}
10457	target := &ret
10458	if err := gensupport.DecodeResponse(target, res); err != nil {
10459		return nil, err
10460	}
10461	return ret, nil
10462	// {
10463	//   "description": "Lists all clusters owned by a project in either the specified zone or all\nzones.",
10464	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters",
10465	//   "httpMethod": "GET",
10466	//   "id": "container.projects.zones.clusters.list",
10467	//   "parameterOrder": [
10468	//     "projectId",
10469	//     "zone"
10470	//   ],
10471	//   "parameters": {
10472	//     "parent": {
10473	//       "description": "The parent (project and location) where the clusters will be listed.\nSpecified in the format 'projects/*/locations/*'.\nLocation \"-\" matches all zones and all regions.",
10474	//       "location": "query",
10475	//       "type": "string"
10476	//     },
10477	//     "projectId": {
10478	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the parent field.",
10479	//       "location": "path",
10480	//       "required": true,
10481	//       "type": "string"
10482	//     },
10483	//     "zone": {
10484	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides, or \"-\" for all zones.\nThis field has been deprecated and replaced by the parent field.",
10485	//       "location": "path",
10486	//       "required": true,
10487	//       "type": "string"
10488	//     }
10489	//   },
10490	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters",
10491	//   "response": {
10492	//     "$ref": "ListClustersResponse"
10493	//   },
10494	//   "scopes": [
10495	//     "https://www.googleapis.com/auth/cloud-platform"
10496	//   ]
10497	// }
10498
10499}
10500
10501// method id "container.projects.zones.clusters.locations":
10502
10503type ProjectsZonesClustersLocationsCall struct {
10504	s                   *Service
10505	projectId           string
10506	zone                string
10507	clusterId           string
10508	setlocationsrequest *SetLocationsRequest
10509	urlParams_          gensupport.URLParams
10510	ctx_                context.Context
10511	header_             http.Header
10512}
10513
10514// Locations: Sets the locations for a specific cluster.
10515func (r *ProjectsZonesClustersService) Locations(projectId string, zone string, clusterId string, setlocationsrequest *SetLocationsRequest) *ProjectsZonesClustersLocationsCall {
10516	c := &ProjectsZonesClustersLocationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10517	c.projectId = projectId
10518	c.zone = zone
10519	c.clusterId = clusterId
10520	c.setlocationsrequest = setlocationsrequest
10521	return c
10522}
10523
10524// Fields allows partial responses to be retrieved. See
10525// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10526// for more information.
10527func (c *ProjectsZonesClustersLocationsCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersLocationsCall {
10528	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10529	return c
10530}
10531
10532// Context sets the context to be used in this call's Do method. Any
10533// pending HTTP request will be aborted if the provided context is
10534// canceled.
10535func (c *ProjectsZonesClustersLocationsCall) Context(ctx context.Context) *ProjectsZonesClustersLocationsCall {
10536	c.ctx_ = ctx
10537	return c
10538}
10539
10540// Header returns an http.Header that can be modified by the caller to
10541// add HTTP headers to the request.
10542func (c *ProjectsZonesClustersLocationsCall) Header() http.Header {
10543	if c.header_ == nil {
10544		c.header_ = make(http.Header)
10545	}
10546	return c.header_
10547}
10548
10549func (c *ProjectsZonesClustersLocationsCall) doRequest(alt string) (*http.Response, error) {
10550	reqHeaders := make(http.Header)
10551	for k, v := range c.header_ {
10552		reqHeaders[k] = v
10553	}
10554	reqHeaders.Set("User-Agent", c.s.userAgent())
10555	var body io.Reader = nil
10556	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setlocationsrequest)
10557	if err != nil {
10558		return nil, err
10559	}
10560	reqHeaders.Set("Content-Type", "application/json")
10561	c.urlParams_.Set("alt", alt)
10562	c.urlParams_.Set("prettyPrint", "false")
10563	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/locations")
10564	urls += "?" + c.urlParams_.Encode()
10565	req, err := http.NewRequest("POST", urls, body)
10566	if err != nil {
10567		return nil, err
10568	}
10569	req.Header = reqHeaders
10570	googleapi.Expand(req.URL, map[string]string{
10571		"projectId": c.projectId,
10572		"zone":      c.zone,
10573		"clusterId": c.clusterId,
10574	})
10575	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10576}
10577
10578// Do executes the "container.projects.zones.clusters.locations" call.
10579// Exactly one of *Operation or error will be non-nil. Any non-2xx
10580// status code is an error. Response headers are in either
10581// *Operation.ServerResponse.Header or (if a response was returned at
10582// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
10583// to check whether the returned error was because
10584// http.StatusNotModified was returned.
10585func (c *ProjectsZonesClustersLocationsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
10586	gensupport.SetOptions(c.urlParams_, opts...)
10587	res, err := c.doRequest("json")
10588	if res != nil && res.StatusCode == http.StatusNotModified {
10589		if res.Body != nil {
10590			res.Body.Close()
10591		}
10592		return nil, &googleapi.Error{
10593			Code:   res.StatusCode,
10594			Header: res.Header,
10595		}
10596	}
10597	if err != nil {
10598		return nil, err
10599	}
10600	defer googleapi.CloseBody(res)
10601	if err := googleapi.CheckResponse(res); err != nil {
10602		return nil, err
10603	}
10604	ret := &Operation{
10605		ServerResponse: googleapi.ServerResponse{
10606			Header:         res.Header,
10607			HTTPStatusCode: res.StatusCode,
10608		},
10609	}
10610	target := &ret
10611	if err := gensupport.DecodeResponse(target, res); err != nil {
10612		return nil, err
10613	}
10614	return ret, nil
10615	// {
10616	//   "description": "Sets the locations for a specific cluster.",
10617	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/locations",
10618	//   "httpMethod": "POST",
10619	//   "id": "container.projects.zones.clusters.locations",
10620	//   "parameterOrder": [
10621	//     "projectId",
10622	//     "zone",
10623	//     "clusterId"
10624	//   ],
10625	//   "parameters": {
10626	//     "clusterId": {
10627	//       "description": "Deprecated. The name of the cluster to upgrade.\nThis field has been deprecated and replaced by the name field.",
10628	//       "location": "path",
10629	//       "required": true,
10630	//       "type": "string"
10631	//     },
10632	//     "projectId": {
10633	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
10634	//       "location": "path",
10635	//       "required": true,
10636	//       "type": "string"
10637	//     },
10638	//     "zone": {
10639	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
10640	//       "location": "path",
10641	//       "required": true,
10642	//       "type": "string"
10643	//     }
10644	//   },
10645	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/locations",
10646	//   "request": {
10647	//     "$ref": "SetLocationsRequest"
10648	//   },
10649	//   "response": {
10650	//     "$ref": "Operation"
10651	//   },
10652	//   "scopes": [
10653	//     "https://www.googleapis.com/auth/cloud-platform"
10654	//   ]
10655	// }
10656
10657}
10658
10659// method id "container.projects.zones.clusters.logging":
10660
10661type ProjectsZonesClustersLoggingCall struct {
10662	s                        *Service
10663	projectId                string
10664	zone                     string
10665	clusterId                string
10666	setloggingservicerequest *SetLoggingServiceRequest
10667	urlParams_               gensupport.URLParams
10668	ctx_                     context.Context
10669	header_                  http.Header
10670}
10671
10672// Logging: Sets the logging service for a specific cluster.
10673func (r *ProjectsZonesClustersService) Logging(projectId string, zone string, clusterId string, setloggingservicerequest *SetLoggingServiceRequest) *ProjectsZonesClustersLoggingCall {
10674	c := &ProjectsZonesClustersLoggingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10675	c.projectId = projectId
10676	c.zone = zone
10677	c.clusterId = clusterId
10678	c.setloggingservicerequest = setloggingservicerequest
10679	return c
10680}
10681
10682// Fields allows partial responses to be retrieved. See
10683// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10684// for more information.
10685func (c *ProjectsZonesClustersLoggingCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersLoggingCall {
10686	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10687	return c
10688}
10689
10690// Context sets the context to be used in this call's Do method. Any
10691// pending HTTP request will be aborted if the provided context is
10692// canceled.
10693func (c *ProjectsZonesClustersLoggingCall) Context(ctx context.Context) *ProjectsZonesClustersLoggingCall {
10694	c.ctx_ = ctx
10695	return c
10696}
10697
10698// Header returns an http.Header that can be modified by the caller to
10699// add HTTP headers to the request.
10700func (c *ProjectsZonesClustersLoggingCall) Header() http.Header {
10701	if c.header_ == nil {
10702		c.header_ = make(http.Header)
10703	}
10704	return c.header_
10705}
10706
10707func (c *ProjectsZonesClustersLoggingCall) doRequest(alt string) (*http.Response, error) {
10708	reqHeaders := make(http.Header)
10709	for k, v := range c.header_ {
10710		reqHeaders[k] = v
10711	}
10712	reqHeaders.Set("User-Agent", c.s.userAgent())
10713	var body io.Reader = nil
10714	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setloggingservicerequest)
10715	if err != nil {
10716		return nil, err
10717	}
10718	reqHeaders.Set("Content-Type", "application/json")
10719	c.urlParams_.Set("alt", alt)
10720	c.urlParams_.Set("prettyPrint", "false")
10721	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/logging")
10722	urls += "?" + c.urlParams_.Encode()
10723	req, err := http.NewRequest("POST", urls, body)
10724	if err != nil {
10725		return nil, err
10726	}
10727	req.Header = reqHeaders
10728	googleapi.Expand(req.URL, map[string]string{
10729		"projectId": c.projectId,
10730		"zone":      c.zone,
10731		"clusterId": c.clusterId,
10732	})
10733	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10734}
10735
10736// Do executes the "container.projects.zones.clusters.logging" call.
10737// Exactly one of *Operation or error will be non-nil. Any non-2xx
10738// status code is an error. Response headers are in either
10739// *Operation.ServerResponse.Header or (if a response was returned at
10740// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
10741// to check whether the returned error was because
10742// http.StatusNotModified was returned.
10743func (c *ProjectsZonesClustersLoggingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
10744	gensupport.SetOptions(c.urlParams_, opts...)
10745	res, err := c.doRequest("json")
10746	if res != nil && res.StatusCode == http.StatusNotModified {
10747		if res.Body != nil {
10748			res.Body.Close()
10749		}
10750		return nil, &googleapi.Error{
10751			Code:   res.StatusCode,
10752			Header: res.Header,
10753		}
10754	}
10755	if err != nil {
10756		return nil, err
10757	}
10758	defer googleapi.CloseBody(res)
10759	if err := googleapi.CheckResponse(res); err != nil {
10760		return nil, err
10761	}
10762	ret := &Operation{
10763		ServerResponse: googleapi.ServerResponse{
10764			Header:         res.Header,
10765			HTTPStatusCode: res.StatusCode,
10766		},
10767	}
10768	target := &ret
10769	if err := gensupport.DecodeResponse(target, res); err != nil {
10770		return nil, err
10771	}
10772	return ret, nil
10773	// {
10774	//   "description": "Sets the logging service for a specific cluster.",
10775	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/logging",
10776	//   "httpMethod": "POST",
10777	//   "id": "container.projects.zones.clusters.logging",
10778	//   "parameterOrder": [
10779	//     "projectId",
10780	//     "zone",
10781	//     "clusterId"
10782	//   ],
10783	//   "parameters": {
10784	//     "clusterId": {
10785	//       "description": "Deprecated. The name of the cluster to upgrade.\nThis field has been deprecated and replaced by the name field.",
10786	//       "location": "path",
10787	//       "required": true,
10788	//       "type": "string"
10789	//     },
10790	//     "projectId": {
10791	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
10792	//       "location": "path",
10793	//       "required": true,
10794	//       "type": "string"
10795	//     },
10796	//     "zone": {
10797	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
10798	//       "location": "path",
10799	//       "required": true,
10800	//       "type": "string"
10801	//     }
10802	//   },
10803	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/logging",
10804	//   "request": {
10805	//     "$ref": "SetLoggingServiceRequest"
10806	//   },
10807	//   "response": {
10808	//     "$ref": "Operation"
10809	//   },
10810	//   "scopes": [
10811	//     "https://www.googleapis.com/auth/cloud-platform"
10812	//   ]
10813	// }
10814
10815}
10816
10817// method id "container.projects.zones.clusters.master":
10818
10819type ProjectsZonesClustersMasterCall struct {
10820	s                   *Service
10821	projectId           string
10822	zone                string
10823	clusterId           string
10824	updatemasterrequest *UpdateMasterRequest
10825	urlParams_          gensupport.URLParams
10826	ctx_                context.Context
10827	header_             http.Header
10828}
10829
10830// Master: Updates the master for a specific cluster.
10831func (r *ProjectsZonesClustersService) Master(projectId string, zone string, clusterId string, updatemasterrequest *UpdateMasterRequest) *ProjectsZonesClustersMasterCall {
10832	c := &ProjectsZonesClustersMasterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10833	c.projectId = projectId
10834	c.zone = zone
10835	c.clusterId = clusterId
10836	c.updatemasterrequest = updatemasterrequest
10837	return c
10838}
10839
10840// Fields allows partial responses to be retrieved. See
10841// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10842// for more information.
10843func (c *ProjectsZonesClustersMasterCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersMasterCall {
10844	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10845	return c
10846}
10847
10848// Context sets the context to be used in this call's Do method. Any
10849// pending HTTP request will be aborted if the provided context is
10850// canceled.
10851func (c *ProjectsZonesClustersMasterCall) Context(ctx context.Context) *ProjectsZonesClustersMasterCall {
10852	c.ctx_ = ctx
10853	return c
10854}
10855
10856// Header returns an http.Header that can be modified by the caller to
10857// add HTTP headers to the request.
10858func (c *ProjectsZonesClustersMasterCall) Header() http.Header {
10859	if c.header_ == nil {
10860		c.header_ = make(http.Header)
10861	}
10862	return c.header_
10863}
10864
10865func (c *ProjectsZonesClustersMasterCall) doRequest(alt string) (*http.Response, error) {
10866	reqHeaders := make(http.Header)
10867	for k, v := range c.header_ {
10868		reqHeaders[k] = v
10869	}
10870	reqHeaders.Set("User-Agent", c.s.userAgent())
10871	var body io.Reader = nil
10872	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updatemasterrequest)
10873	if err != nil {
10874		return nil, err
10875	}
10876	reqHeaders.Set("Content-Type", "application/json")
10877	c.urlParams_.Set("alt", alt)
10878	c.urlParams_.Set("prettyPrint", "false")
10879	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/master")
10880	urls += "?" + c.urlParams_.Encode()
10881	req, err := http.NewRequest("POST", urls, body)
10882	if err != nil {
10883		return nil, err
10884	}
10885	req.Header = reqHeaders
10886	googleapi.Expand(req.URL, map[string]string{
10887		"projectId": c.projectId,
10888		"zone":      c.zone,
10889		"clusterId": c.clusterId,
10890	})
10891	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10892}
10893
10894// Do executes the "container.projects.zones.clusters.master" call.
10895// Exactly one of *Operation or error will be non-nil. Any non-2xx
10896// status code is an error. Response headers are in either
10897// *Operation.ServerResponse.Header or (if a response was returned at
10898// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
10899// to check whether the returned error was because
10900// http.StatusNotModified was returned.
10901func (c *ProjectsZonesClustersMasterCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
10902	gensupport.SetOptions(c.urlParams_, opts...)
10903	res, err := c.doRequest("json")
10904	if res != nil && res.StatusCode == http.StatusNotModified {
10905		if res.Body != nil {
10906			res.Body.Close()
10907		}
10908		return nil, &googleapi.Error{
10909			Code:   res.StatusCode,
10910			Header: res.Header,
10911		}
10912	}
10913	if err != nil {
10914		return nil, err
10915	}
10916	defer googleapi.CloseBody(res)
10917	if err := googleapi.CheckResponse(res); err != nil {
10918		return nil, err
10919	}
10920	ret := &Operation{
10921		ServerResponse: googleapi.ServerResponse{
10922			Header:         res.Header,
10923			HTTPStatusCode: res.StatusCode,
10924		},
10925	}
10926	target := &ret
10927	if err := gensupport.DecodeResponse(target, res); err != nil {
10928		return nil, err
10929	}
10930	return ret, nil
10931	// {
10932	//   "description": "Updates the master for a specific cluster.",
10933	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/master",
10934	//   "httpMethod": "POST",
10935	//   "id": "container.projects.zones.clusters.master",
10936	//   "parameterOrder": [
10937	//     "projectId",
10938	//     "zone",
10939	//     "clusterId"
10940	//   ],
10941	//   "parameters": {
10942	//     "clusterId": {
10943	//       "description": "Deprecated. The name of the cluster to upgrade.\nThis field has been deprecated and replaced by the name field.",
10944	//       "location": "path",
10945	//       "required": true,
10946	//       "type": "string"
10947	//     },
10948	//     "projectId": {
10949	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
10950	//       "location": "path",
10951	//       "required": true,
10952	//       "type": "string"
10953	//     },
10954	//     "zone": {
10955	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
10956	//       "location": "path",
10957	//       "required": true,
10958	//       "type": "string"
10959	//     }
10960	//   },
10961	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/master",
10962	//   "request": {
10963	//     "$ref": "UpdateMasterRequest"
10964	//   },
10965	//   "response": {
10966	//     "$ref": "Operation"
10967	//   },
10968	//   "scopes": [
10969	//     "https://www.googleapis.com/auth/cloud-platform"
10970	//   ]
10971	// }
10972
10973}
10974
10975// method id "container.projects.zones.clusters.monitoring":
10976
10977type ProjectsZonesClustersMonitoringCall struct {
10978	s                           *Service
10979	projectId                   string
10980	zone                        string
10981	clusterId                   string
10982	setmonitoringservicerequest *SetMonitoringServiceRequest
10983	urlParams_                  gensupport.URLParams
10984	ctx_                        context.Context
10985	header_                     http.Header
10986}
10987
10988// Monitoring: Sets the monitoring service for a specific cluster.
10989func (r *ProjectsZonesClustersService) Monitoring(projectId string, zone string, clusterId string, setmonitoringservicerequest *SetMonitoringServiceRequest) *ProjectsZonesClustersMonitoringCall {
10990	c := &ProjectsZonesClustersMonitoringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10991	c.projectId = projectId
10992	c.zone = zone
10993	c.clusterId = clusterId
10994	c.setmonitoringservicerequest = setmonitoringservicerequest
10995	return c
10996}
10997
10998// Fields allows partial responses to be retrieved. See
10999// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11000// for more information.
11001func (c *ProjectsZonesClustersMonitoringCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersMonitoringCall {
11002	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11003	return c
11004}
11005
11006// Context sets the context to be used in this call's Do method. Any
11007// pending HTTP request will be aborted if the provided context is
11008// canceled.
11009func (c *ProjectsZonesClustersMonitoringCall) Context(ctx context.Context) *ProjectsZonesClustersMonitoringCall {
11010	c.ctx_ = ctx
11011	return c
11012}
11013
11014// Header returns an http.Header that can be modified by the caller to
11015// add HTTP headers to the request.
11016func (c *ProjectsZonesClustersMonitoringCall) Header() http.Header {
11017	if c.header_ == nil {
11018		c.header_ = make(http.Header)
11019	}
11020	return c.header_
11021}
11022
11023func (c *ProjectsZonesClustersMonitoringCall) doRequest(alt string) (*http.Response, error) {
11024	reqHeaders := make(http.Header)
11025	for k, v := range c.header_ {
11026		reqHeaders[k] = v
11027	}
11028	reqHeaders.Set("User-Agent", c.s.userAgent())
11029	var body io.Reader = nil
11030	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setmonitoringservicerequest)
11031	if err != nil {
11032		return nil, err
11033	}
11034	reqHeaders.Set("Content-Type", "application/json")
11035	c.urlParams_.Set("alt", alt)
11036	c.urlParams_.Set("prettyPrint", "false")
11037	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/monitoring")
11038	urls += "?" + c.urlParams_.Encode()
11039	req, err := http.NewRequest("POST", urls, body)
11040	if err != nil {
11041		return nil, err
11042	}
11043	req.Header = reqHeaders
11044	googleapi.Expand(req.URL, map[string]string{
11045		"projectId": c.projectId,
11046		"zone":      c.zone,
11047		"clusterId": c.clusterId,
11048	})
11049	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11050}
11051
11052// Do executes the "container.projects.zones.clusters.monitoring" call.
11053// Exactly one of *Operation or error will be non-nil. Any non-2xx
11054// status code is an error. Response headers are in either
11055// *Operation.ServerResponse.Header or (if a response was returned at
11056// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
11057// to check whether the returned error was because
11058// http.StatusNotModified was returned.
11059func (c *ProjectsZonesClustersMonitoringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
11060	gensupport.SetOptions(c.urlParams_, opts...)
11061	res, err := c.doRequest("json")
11062	if res != nil && res.StatusCode == http.StatusNotModified {
11063		if res.Body != nil {
11064			res.Body.Close()
11065		}
11066		return nil, &googleapi.Error{
11067			Code:   res.StatusCode,
11068			Header: res.Header,
11069		}
11070	}
11071	if err != nil {
11072		return nil, err
11073	}
11074	defer googleapi.CloseBody(res)
11075	if err := googleapi.CheckResponse(res); err != nil {
11076		return nil, err
11077	}
11078	ret := &Operation{
11079		ServerResponse: googleapi.ServerResponse{
11080			Header:         res.Header,
11081			HTTPStatusCode: res.StatusCode,
11082		},
11083	}
11084	target := &ret
11085	if err := gensupport.DecodeResponse(target, res); err != nil {
11086		return nil, err
11087	}
11088	return ret, nil
11089	// {
11090	//   "description": "Sets the monitoring service for a specific cluster.",
11091	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/monitoring",
11092	//   "httpMethod": "POST",
11093	//   "id": "container.projects.zones.clusters.monitoring",
11094	//   "parameterOrder": [
11095	//     "projectId",
11096	//     "zone",
11097	//     "clusterId"
11098	//   ],
11099	//   "parameters": {
11100	//     "clusterId": {
11101	//       "description": "Deprecated. The name of the cluster to upgrade.\nThis field has been deprecated and replaced by the name field.",
11102	//       "location": "path",
11103	//       "required": true,
11104	//       "type": "string"
11105	//     },
11106	//     "projectId": {
11107	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
11108	//       "location": "path",
11109	//       "required": true,
11110	//       "type": "string"
11111	//     },
11112	//     "zone": {
11113	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
11114	//       "location": "path",
11115	//       "required": true,
11116	//       "type": "string"
11117	//     }
11118	//   },
11119	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/monitoring",
11120	//   "request": {
11121	//     "$ref": "SetMonitoringServiceRequest"
11122	//   },
11123	//   "response": {
11124	//     "$ref": "Operation"
11125	//   },
11126	//   "scopes": [
11127	//     "https://www.googleapis.com/auth/cloud-platform"
11128	//   ]
11129	// }
11130
11131}
11132
11133// method id "container.projects.zones.clusters.resourceLabels":
11134
11135type ProjectsZonesClustersResourceLabelsCall struct {
11136	s                *Service
11137	projectId        string
11138	zone             string
11139	clusterId        string
11140	setlabelsrequest *SetLabelsRequest
11141	urlParams_       gensupport.URLParams
11142	ctx_             context.Context
11143	header_          http.Header
11144}
11145
11146// ResourceLabels: Sets labels on a cluster.
11147func (r *ProjectsZonesClustersService) ResourceLabels(projectId string, zone string, clusterId string, setlabelsrequest *SetLabelsRequest) *ProjectsZonesClustersResourceLabelsCall {
11148	c := &ProjectsZonesClustersResourceLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11149	c.projectId = projectId
11150	c.zone = zone
11151	c.clusterId = clusterId
11152	c.setlabelsrequest = setlabelsrequest
11153	return c
11154}
11155
11156// Fields allows partial responses to be retrieved. See
11157// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11158// for more information.
11159func (c *ProjectsZonesClustersResourceLabelsCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersResourceLabelsCall {
11160	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11161	return c
11162}
11163
11164// Context sets the context to be used in this call's Do method. Any
11165// pending HTTP request will be aborted if the provided context is
11166// canceled.
11167func (c *ProjectsZonesClustersResourceLabelsCall) Context(ctx context.Context) *ProjectsZonesClustersResourceLabelsCall {
11168	c.ctx_ = ctx
11169	return c
11170}
11171
11172// Header returns an http.Header that can be modified by the caller to
11173// add HTTP headers to the request.
11174func (c *ProjectsZonesClustersResourceLabelsCall) Header() http.Header {
11175	if c.header_ == nil {
11176		c.header_ = make(http.Header)
11177	}
11178	return c.header_
11179}
11180
11181func (c *ProjectsZonesClustersResourceLabelsCall) doRequest(alt string) (*http.Response, error) {
11182	reqHeaders := make(http.Header)
11183	for k, v := range c.header_ {
11184		reqHeaders[k] = v
11185	}
11186	reqHeaders.Set("User-Agent", c.s.userAgent())
11187	var body io.Reader = nil
11188	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setlabelsrequest)
11189	if err != nil {
11190		return nil, err
11191	}
11192	reqHeaders.Set("Content-Type", "application/json")
11193	c.urlParams_.Set("alt", alt)
11194	c.urlParams_.Set("prettyPrint", "false")
11195	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/resourceLabels")
11196	urls += "?" + c.urlParams_.Encode()
11197	req, err := http.NewRequest("POST", urls, body)
11198	if err != nil {
11199		return nil, err
11200	}
11201	req.Header = reqHeaders
11202	googleapi.Expand(req.URL, map[string]string{
11203		"projectId": c.projectId,
11204		"zone":      c.zone,
11205		"clusterId": c.clusterId,
11206	})
11207	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11208}
11209
11210// Do executes the "container.projects.zones.clusters.resourceLabels" call.
11211// Exactly one of *Operation or error will be non-nil. Any non-2xx
11212// status code is an error. Response headers are in either
11213// *Operation.ServerResponse.Header or (if a response was returned at
11214// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
11215// to check whether the returned error was because
11216// http.StatusNotModified was returned.
11217func (c *ProjectsZonesClustersResourceLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
11218	gensupport.SetOptions(c.urlParams_, opts...)
11219	res, err := c.doRequest("json")
11220	if res != nil && res.StatusCode == http.StatusNotModified {
11221		if res.Body != nil {
11222			res.Body.Close()
11223		}
11224		return nil, &googleapi.Error{
11225			Code:   res.StatusCode,
11226			Header: res.Header,
11227		}
11228	}
11229	if err != nil {
11230		return nil, err
11231	}
11232	defer googleapi.CloseBody(res)
11233	if err := googleapi.CheckResponse(res); err != nil {
11234		return nil, err
11235	}
11236	ret := &Operation{
11237		ServerResponse: googleapi.ServerResponse{
11238			Header:         res.Header,
11239			HTTPStatusCode: res.StatusCode,
11240		},
11241	}
11242	target := &ret
11243	if err := gensupport.DecodeResponse(target, res); err != nil {
11244		return nil, err
11245	}
11246	return ret, nil
11247	// {
11248	//   "description": "Sets labels on a cluster.",
11249	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/resourceLabels",
11250	//   "httpMethod": "POST",
11251	//   "id": "container.projects.zones.clusters.resourceLabels",
11252	//   "parameterOrder": [
11253	//     "projectId",
11254	//     "zone",
11255	//     "clusterId"
11256	//   ],
11257	//   "parameters": {
11258	//     "clusterId": {
11259	//       "description": "Deprecated. The name of the cluster.\nThis field has been deprecated and replaced by the name field.",
11260	//       "location": "path",
11261	//       "required": true,
11262	//       "type": "string"
11263	//     },
11264	//     "projectId": {
11265	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field has been deprecated and replaced by the name field.",
11266	//       "location": "path",
11267	//       "required": true,
11268	//       "type": "string"
11269	//     },
11270	//     "zone": {
11271	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
11272	//       "location": "path",
11273	//       "required": true,
11274	//       "type": "string"
11275	//     }
11276	//   },
11277	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/resourceLabels",
11278	//   "request": {
11279	//     "$ref": "SetLabelsRequest"
11280	//   },
11281	//   "response": {
11282	//     "$ref": "Operation"
11283	//   },
11284	//   "scopes": [
11285	//     "https://www.googleapis.com/auth/cloud-platform"
11286	//   ]
11287	// }
11288
11289}
11290
11291// method id "container.projects.zones.clusters.setMaintenancePolicy":
11292
11293type ProjectsZonesClustersSetMaintenancePolicyCall struct {
11294	s                           *Service
11295	projectId                   string
11296	zone                        string
11297	clusterId                   string
11298	setmaintenancepolicyrequest *SetMaintenancePolicyRequest
11299	urlParams_                  gensupport.URLParams
11300	ctx_                        context.Context
11301	header_                     http.Header
11302}
11303
11304// SetMaintenancePolicy: Sets the maintenance policy for a cluster.
11305func (r *ProjectsZonesClustersService) SetMaintenancePolicy(projectId string, zone string, clusterId string, setmaintenancepolicyrequest *SetMaintenancePolicyRequest) *ProjectsZonesClustersSetMaintenancePolicyCall {
11306	c := &ProjectsZonesClustersSetMaintenancePolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11307	c.projectId = projectId
11308	c.zone = zone
11309	c.clusterId = clusterId
11310	c.setmaintenancepolicyrequest = setmaintenancepolicyrequest
11311	return c
11312}
11313
11314// Fields allows partial responses to be retrieved. See
11315// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11316// for more information.
11317func (c *ProjectsZonesClustersSetMaintenancePolicyCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersSetMaintenancePolicyCall {
11318	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11319	return c
11320}
11321
11322// Context sets the context to be used in this call's Do method. Any
11323// pending HTTP request will be aborted if the provided context is
11324// canceled.
11325func (c *ProjectsZonesClustersSetMaintenancePolicyCall) Context(ctx context.Context) *ProjectsZonesClustersSetMaintenancePolicyCall {
11326	c.ctx_ = ctx
11327	return c
11328}
11329
11330// Header returns an http.Header that can be modified by the caller to
11331// add HTTP headers to the request.
11332func (c *ProjectsZonesClustersSetMaintenancePolicyCall) Header() http.Header {
11333	if c.header_ == nil {
11334		c.header_ = make(http.Header)
11335	}
11336	return c.header_
11337}
11338
11339func (c *ProjectsZonesClustersSetMaintenancePolicyCall) doRequest(alt string) (*http.Response, error) {
11340	reqHeaders := make(http.Header)
11341	for k, v := range c.header_ {
11342		reqHeaders[k] = v
11343	}
11344	reqHeaders.Set("User-Agent", c.s.userAgent())
11345	var body io.Reader = nil
11346	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setmaintenancepolicyrequest)
11347	if err != nil {
11348		return nil, err
11349	}
11350	reqHeaders.Set("Content-Type", "application/json")
11351	c.urlParams_.Set("alt", alt)
11352	c.urlParams_.Set("prettyPrint", "false")
11353	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMaintenancePolicy")
11354	urls += "?" + c.urlParams_.Encode()
11355	req, err := http.NewRequest("POST", urls, body)
11356	if err != nil {
11357		return nil, err
11358	}
11359	req.Header = reqHeaders
11360	googleapi.Expand(req.URL, map[string]string{
11361		"projectId": c.projectId,
11362		"zone":      c.zone,
11363		"clusterId": c.clusterId,
11364	})
11365	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11366}
11367
11368// Do executes the "container.projects.zones.clusters.setMaintenancePolicy" call.
11369// Exactly one of *Operation or error will be non-nil. Any non-2xx
11370// status code is an error. Response headers are in either
11371// *Operation.ServerResponse.Header or (if a response was returned at
11372// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
11373// to check whether the returned error was because
11374// http.StatusNotModified was returned.
11375func (c *ProjectsZonesClustersSetMaintenancePolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
11376	gensupport.SetOptions(c.urlParams_, opts...)
11377	res, err := c.doRequest("json")
11378	if res != nil && res.StatusCode == http.StatusNotModified {
11379		if res.Body != nil {
11380			res.Body.Close()
11381		}
11382		return nil, &googleapi.Error{
11383			Code:   res.StatusCode,
11384			Header: res.Header,
11385		}
11386	}
11387	if err != nil {
11388		return nil, err
11389	}
11390	defer googleapi.CloseBody(res)
11391	if err := googleapi.CheckResponse(res); err != nil {
11392		return nil, err
11393	}
11394	ret := &Operation{
11395		ServerResponse: googleapi.ServerResponse{
11396			Header:         res.Header,
11397			HTTPStatusCode: res.StatusCode,
11398		},
11399	}
11400	target := &ret
11401	if err := gensupport.DecodeResponse(target, res); err != nil {
11402		return nil, err
11403	}
11404	return ret, nil
11405	// {
11406	//   "description": "Sets the maintenance policy for a cluster.",
11407	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMaintenancePolicy",
11408	//   "httpMethod": "POST",
11409	//   "id": "container.projects.zones.clusters.setMaintenancePolicy",
11410	//   "parameterOrder": [
11411	//     "projectId",
11412	//     "zone",
11413	//     "clusterId"
11414	//   ],
11415	//   "parameters": {
11416	//     "clusterId": {
11417	//       "description": "The name of the cluster to update.",
11418	//       "location": "path",
11419	//       "required": true,
11420	//       "type": "string"
11421	//     },
11422	//     "projectId": {
11423	//       "description": "The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).",
11424	//       "location": "path",
11425	//       "required": true,
11426	//       "type": "string"
11427	//     },
11428	//     "zone": {
11429	//       "description": "The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.",
11430	//       "location": "path",
11431	//       "required": true,
11432	//       "type": "string"
11433	//     }
11434	//   },
11435	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMaintenancePolicy",
11436	//   "request": {
11437	//     "$ref": "SetMaintenancePolicyRequest"
11438	//   },
11439	//   "response": {
11440	//     "$ref": "Operation"
11441	//   },
11442	//   "scopes": [
11443	//     "https://www.googleapis.com/auth/cloud-platform"
11444	//   ]
11445	// }
11446
11447}
11448
11449// method id "container.projects.zones.clusters.setMasterAuth":
11450
11451type ProjectsZonesClustersSetMasterAuthCall struct {
11452	s                    *Service
11453	projectId            string
11454	zone                 string
11455	clusterId            string
11456	setmasterauthrequest *SetMasterAuthRequest
11457	urlParams_           gensupport.URLParams
11458	ctx_                 context.Context
11459	header_              http.Header
11460}
11461
11462// SetMasterAuth: Sets master auth materials. Currently supports
11463// changing the admin password
11464// or a specific cluster, either via password generation or explicitly
11465// setting
11466// the password.
11467func (r *ProjectsZonesClustersService) SetMasterAuth(projectId string, zone string, clusterId string, setmasterauthrequest *SetMasterAuthRequest) *ProjectsZonesClustersSetMasterAuthCall {
11468	c := &ProjectsZonesClustersSetMasterAuthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11469	c.projectId = projectId
11470	c.zone = zone
11471	c.clusterId = clusterId
11472	c.setmasterauthrequest = setmasterauthrequest
11473	return c
11474}
11475
11476// Fields allows partial responses to be retrieved. See
11477// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11478// for more information.
11479func (c *ProjectsZonesClustersSetMasterAuthCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersSetMasterAuthCall {
11480	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11481	return c
11482}
11483
11484// Context sets the context to be used in this call's Do method. Any
11485// pending HTTP request will be aborted if the provided context is
11486// canceled.
11487func (c *ProjectsZonesClustersSetMasterAuthCall) Context(ctx context.Context) *ProjectsZonesClustersSetMasterAuthCall {
11488	c.ctx_ = ctx
11489	return c
11490}
11491
11492// Header returns an http.Header that can be modified by the caller to
11493// add HTTP headers to the request.
11494func (c *ProjectsZonesClustersSetMasterAuthCall) Header() http.Header {
11495	if c.header_ == nil {
11496		c.header_ = make(http.Header)
11497	}
11498	return c.header_
11499}
11500
11501func (c *ProjectsZonesClustersSetMasterAuthCall) doRequest(alt string) (*http.Response, error) {
11502	reqHeaders := make(http.Header)
11503	for k, v := range c.header_ {
11504		reqHeaders[k] = v
11505	}
11506	reqHeaders.Set("User-Agent", c.s.userAgent())
11507	var body io.Reader = nil
11508	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setmasterauthrequest)
11509	if err != nil {
11510		return nil, err
11511	}
11512	reqHeaders.Set("Content-Type", "application/json")
11513	c.urlParams_.Set("alt", alt)
11514	c.urlParams_.Set("prettyPrint", "false")
11515	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMasterAuth")
11516	urls += "?" + c.urlParams_.Encode()
11517	req, err := http.NewRequest("POST", urls, body)
11518	if err != nil {
11519		return nil, err
11520	}
11521	req.Header = reqHeaders
11522	googleapi.Expand(req.URL, map[string]string{
11523		"projectId": c.projectId,
11524		"zone":      c.zone,
11525		"clusterId": c.clusterId,
11526	})
11527	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11528}
11529
11530// Do executes the "container.projects.zones.clusters.setMasterAuth" call.
11531// Exactly one of *Operation or error will be non-nil. Any non-2xx
11532// status code is an error. Response headers are in either
11533// *Operation.ServerResponse.Header or (if a response was returned at
11534// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
11535// to check whether the returned error was because
11536// http.StatusNotModified was returned.
11537func (c *ProjectsZonesClustersSetMasterAuthCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
11538	gensupport.SetOptions(c.urlParams_, opts...)
11539	res, err := c.doRequest("json")
11540	if res != nil && res.StatusCode == http.StatusNotModified {
11541		if res.Body != nil {
11542			res.Body.Close()
11543		}
11544		return nil, &googleapi.Error{
11545			Code:   res.StatusCode,
11546			Header: res.Header,
11547		}
11548	}
11549	if err != nil {
11550		return nil, err
11551	}
11552	defer googleapi.CloseBody(res)
11553	if err := googleapi.CheckResponse(res); err != nil {
11554		return nil, err
11555	}
11556	ret := &Operation{
11557		ServerResponse: googleapi.ServerResponse{
11558			Header:         res.Header,
11559			HTTPStatusCode: res.StatusCode,
11560		},
11561	}
11562	target := &ret
11563	if err := gensupport.DecodeResponse(target, res); err != nil {
11564		return nil, err
11565	}
11566	return ret, nil
11567	// {
11568	//   "description": "Sets master auth materials. Currently supports changing the admin password\nor a specific cluster, either via password generation or explicitly setting\nthe password.",
11569	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMasterAuth",
11570	//   "httpMethod": "POST",
11571	//   "id": "container.projects.zones.clusters.setMasterAuth",
11572	//   "parameterOrder": [
11573	//     "projectId",
11574	//     "zone",
11575	//     "clusterId"
11576	//   ],
11577	//   "parameters": {
11578	//     "clusterId": {
11579	//       "description": "Deprecated. The name of the cluster to upgrade.\nThis field has been deprecated and replaced by the name field.",
11580	//       "location": "path",
11581	//       "required": true,
11582	//       "type": "string"
11583	//     },
11584	//     "projectId": {
11585	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
11586	//       "location": "path",
11587	//       "required": true,
11588	//       "type": "string"
11589	//     },
11590	//     "zone": {
11591	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
11592	//       "location": "path",
11593	//       "required": true,
11594	//       "type": "string"
11595	//     }
11596	//   },
11597	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMasterAuth",
11598	//   "request": {
11599	//     "$ref": "SetMasterAuthRequest"
11600	//   },
11601	//   "response": {
11602	//     "$ref": "Operation"
11603	//   },
11604	//   "scopes": [
11605	//     "https://www.googleapis.com/auth/cloud-platform"
11606	//   ]
11607	// }
11608
11609}
11610
11611// method id "container.projects.zones.clusters.setNetworkPolicy":
11612
11613type ProjectsZonesClustersSetNetworkPolicyCall struct {
11614	s                       *Service
11615	projectId               string
11616	zone                    string
11617	clusterId               string
11618	setnetworkpolicyrequest *SetNetworkPolicyRequest
11619	urlParams_              gensupport.URLParams
11620	ctx_                    context.Context
11621	header_                 http.Header
11622}
11623
11624// SetNetworkPolicy: Enables or disables Network Policy for a cluster.
11625func (r *ProjectsZonesClustersService) SetNetworkPolicy(projectId string, zone string, clusterId string, setnetworkpolicyrequest *SetNetworkPolicyRequest) *ProjectsZonesClustersSetNetworkPolicyCall {
11626	c := &ProjectsZonesClustersSetNetworkPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11627	c.projectId = projectId
11628	c.zone = zone
11629	c.clusterId = clusterId
11630	c.setnetworkpolicyrequest = setnetworkpolicyrequest
11631	return c
11632}
11633
11634// Fields allows partial responses to be retrieved. See
11635// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11636// for more information.
11637func (c *ProjectsZonesClustersSetNetworkPolicyCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersSetNetworkPolicyCall {
11638	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11639	return c
11640}
11641
11642// Context sets the context to be used in this call's Do method. Any
11643// pending HTTP request will be aborted if the provided context is
11644// canceled.
11645func (c *ProjectsZonesClustersSetNetworkPolicyCall) Context(ctx context.Context) *ProjectsZonesClustersSetNetworkPolicyCall {
11646	c.ctx_ = ctx
11647	return c
11648}
11649
11650// Header returns an http.Header that can be modified by the caller to
11651// add HTTP headers to the request.
11652func (c *ProjectsZonesClustersSetNetworkPolicyCall) Header() http.Header {
11653	if c.header_ == nil {
11654		c.header_ = make(http.Header)
11655	}
11656	return c.header_
11657}
11658
11659func (c *ProjectsZonesClustersSetNetworkPolicyCall) doRequest(alt string) (*http.Response, error) {
11660	reqHeaders := make(http.Header)
11661	for k, v := range c.header_ {
11662		reqHeaders[k] = v
11663	}
11664	reqHeaders.Set("User-Agent", c.s.userAgent())
11665	var body io.Reader = nil
11666	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setnetworkpolicyrequest)
11667	if err != nil {
11668		return nil, err
11669	}
11670	reqHeaders.Set("Content-Type", "application/json")
11671	c.urlParams_.Set("alt", alt)
11672	c.urlParams_.Set("prettyPrint", "false")
11673	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setNetworkPolicy")
11674	urls += "?" + c.urlParams_.Encode()
11675	req, err := http.NewRequest("POST", urls, body)
11676	if err != nil {
11677		return nil, err
11678	}
11679	req.Header = reqHeaders
11680	googleapi.Expand(req.URL, map[string]string{
11681		"projectId": c.projectId,
11682		"zone":      c.zone,
11683		"clusterId": c.clusterId,
11684	})
11685	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11686}
11687
11688// Do executes the "container.projects.zones.clusters.setNetworkPolicy" call.
11689// Exactly one of *Operation or error will be non-nil. Any non-2xx
11690// status code is an error. Response headers are in either
11691// *Operation.ServerResponse.Header or (if a response was returned at
11692// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
11693// to check whether the returned error was because
11694// http.StatusNotModified was returned.
11695func (c *ProjectsZonesClustersSetNetworkPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
11696	gensupport.SetOptions(c.urlParams_, opts...)
11697	res, err := c.doRequest("json")
11698	if res != nil && res.StatusCode == http.StatusNotModified {
11699		if res.Body != nil {
11700			res.Body.Close()
11701		}
11702		return nil, &googleapi.Error{
11703			Code:   res.StatusCode,
11704			Header: res.Header,
11705		}
11706	}
11707	if err != nil {
11708		return nil, err
11709	}
11710	defer googleapi.CloseBody(res)
11711	if err := googleapi.CheckResponse(res); err != nil {
11712		return nil, err
11713	}
11714	ret := &Operation{
11715		ServerResponse: googleapi.ServerResponse{
11716			Header:         res.Header,
11717			HTTPStatusCode: res.StatusCode,
11718		},
11719	}
11720	target := &ret
11721	if err := gensupport.DecodeResponse(target, res); err != nil {
11722		return nil, err
11723	}
11724	return ret, nil
11725	// {
11726	//   "description": "Enables or disables Network Policy for a cluster.",
11727	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setNetworkPolicy",
11728	//   "httpMethod": "POST",
11729	//   "id": "container.projects.zones.clusters.setNetworkPolicy",
11730	//   "parameterOrder": [
11731	//     "projectId",
11732	//     "zone",
11733	//     "clusterId"
11734	//   ],
11735	//   "parameters": {
11736	//     "clusterId": {
11737	//       "description": "Deprecated. The name of the cluster.\nThis field has been deprecated and replaced by the name field.",
11738	//       "location": "path",
11739	//       "required": true,
11740	//       "type": "string"
11741	//     },
11742	//     "projectId": {
11743	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field has been deprecated and replaced by the name field.",
11744	//       "location": "path",
11745	//       "required": true,
11746	//       "type": "string"
11747	//     },
11748	//     "zone": {
11749	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
11750	//       "location": "path",
11751	//       "required": true,
11752	//       "type": "string"
11753	//     }
11754	//   },
11755	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setNetworkPolicy",
11756	//   "request": {
11757	//     "$ref": "SetNetworkPolicyRequest"
11758	//   },
11759	//   "response": {
11760	//     "$ref": "Operation"
11761	//   },
11762	//   "scopes": [
11763	//     "https://www.googleapis.com/auth/cloud-platform"
11764	//   ]
11765	// }
11766
11767}
11768
11769// method id "container.projects.zones.clusters.startIpRotation":
11770
11771type ProjectsZonesClustersStartIpRotationCall struct {
11772	s                      *Service
11773	projectId              string
11774	zone                   string
11775	clusterId              string
11776	startiprotationrequest *StartIPRotationRequest
11777	urlParams_             gensupport.URLParams
11778	ctx_                   context.Context
11779	header_                http.Header
11780}
11781
11782// StartIpRotation: Starts master IP rotation.
11783func (r *ProjectsZonesClustersService) StartIpRotation(projectId string, zone string, clusterId string, startiprotationrequest *StartIPRotationRequest) *ProjectsZonesClustersStartIpRotationCall {
11784	c := &ProjectsZonesClustersStartIpRotationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11785	c.projectId = projectId
11786	c.zone = zone
11787	c.clusterId = clusterId
11788	c.startiprotationrequest = startiprotationrequest
11789	return c
11790}
11791
11792// Fields allows partial responses to be retrieved. See
11793// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11794// for more information.
11795func (c *ProjectsZonesClustersStartIpRotationCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersStartIpRotationCall {
11796	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11797	return c
11798}
11799
11800// Context sets the context to be used in this call's Do method. Any
11801// pending HTTP request will be aborted if the provided context is
11802// canceled.
11803func (c *ProjectsZonesClustersStartIpRotationCall) Context(ctx context.Context) *ProjectsZonesClustersStartIpRotationCall {
11804	c.ctx_ = ctx
11805	return c
11806}
11807
11808// Header returns an http.Header that can be modified by the caller to
11809// add HTTP headers to the request.
11810func (c *ProjectsZonesClustersStartIpRotationCall) Header() http.Header {
11811	if c.header_ == nil {
11812		c.header_ = make(http.Header)
11813	}
11814	return c.header_
11815}
11816
11817func (c *ProjectsZonesClustersStartIpRotationCall) doRequest(alt string) (*http.Response, error) {
11818	reqHeaders := make(http.Header)
11819	for k, v := range c.header_ {
11820		reqHeaders[k] = v
11821	}
11822	reqHeaders.Set("User-Agent", c.s.userAgent())
11823	var body io.Reader = nil
11824	body, err := googleapi.WithoutDataWrapper.JSONReader(c.startiprotationrequest)
11825	if err != nil {
11826		return nil, err
11827	}
11828	reqHeaders.Set("Content-Type", "application/json")
11829	c.urlParams_.Set("alt", alt)
11830	c.urlParams_.Set("prettyPrint", "false")
11831	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:startIpRotation")
11832	urls += "?" + c.urlParams_.Encode()
11833	req, err := http.NewRequest("POST", urls, body)
11834	if err != nil {
11835		return nil, err
11836	}
11837	req.Header = reqHeaders
11838	googleapi.Expand(req.URL, map[string]string{
11839		"projectId": c.projectId,
11840		"zone":      c.zone,
11841		"clusterId": c.clusterId,
11842	})
11843	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11844}
11845
11846// Do executes the "container.projects.zones.clusters.startIpRotation" call.
11847// Exactly one of *Operation or error will be non-nil. Any non-2xx
11848// status code is an error. Response headers are in either
11849// *Operation.ServerResponse.Header or (if a response was returned at
11850// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
11851// to check whether the returned error was because
11852// http.StatusNotModified was returned.
11853func (c *ProjectsZonesClustersStartIpRotationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
11854	gensupport.SetOptions(c.urlParams_, opts...)
11855	res, err := c.doRequest("json")
11856	if res != nil && res.StatusCode == http.StatusNotModified {
11857		if res.Body != nil {
11858			res.Body.Close()
11859		}
11860		return nil, &googleapi.Error{
11861			Code:   res.StatusCode,
11862			Header: res.Header,
11863		}
11864	}
11865	if err != nil {
11866		return nil, err
11867	}
11868	defer googleapi.CloseBody(res)
11869	if err := googleapi.CheckResponse(res); err != nil {
11870		return nil, err
11871	}
11872	ret := &Operation{
11873		ServerResponse: googleapi.ServerResponse{
11874			Header:         res.Header,
11875			HTTPStatusCode: res.StatusCode,
11876		},
11877	}
11878	target := &ret
11879	if err := gensupport.DecodeResponse(target, res); err != nil {
11880		return nil, err
11881	}
11882	return ret, nil
11883	// {
11884	//   "description": "Starts master IP rotation.",
11885	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:startIpRotation",
11886	//   "httpMethod": "POST",
11887	//   "id": "container.projects.zones.clusters.startIpRotation",
11888	//   "parameterOrder": [
11889	//     "projectId",
11890	//     "zone",
11891	//     "clusterId"
11892	//   ],
11893	//   "parameters": {
11894	//     "clusterId": {
11895	//       "description": "Deprecated. The name of the cluster.\nThis field has been deprecated and replaced by the name field.",
11896	//       "location": "path",
11897	//       "required": true,
11898	//       "type": "string"
11899	//     },
11900	//     "projectId": {
11901	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field has been deprecated and replaced by the name field.",
11902	//       "location": "path",
11903	//       "required": true,
11904	//       "type": "string"
11905	//     },
11906	//     "zone": {
11907	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
11908	//       "location": "path",
11909	//       "required": true,
11910	//       "type": "string"
11911	//     }
11912	//   },
11913	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:startIpRotation",
11914	//   "request": {
11915	//     "$ref": "StartIPRotationRequest"
11916	//   },
11917	//   "response": {
11918	//     "$ref": "Operation"
11919	//   },
11920	//   "scopes": [
11921	//     "https://www.googleapis.com/auth/cloud-platform"
11922	//   ]
11923	// }
11924
11925}
11926
11927// method id "container.projects.zones.clusters.update":
11928
11929type ProjectsZonesClustersUpdateCall struct {
11930	s                    *Service
11931	projectId            string
11932	zone                 string
11933	clusterId            string
11934	updateclusterrequest *UpdateClusterRequest
11935	urlParams_           gensupport.URLParams
11936	ctx_                 context.Context
11937	header_              http.Header
11938}
11939
11940// Update: Updates the settings of a specific cluster.
11941func (r *ProjectsZonesClustersService) Update(projectId string, zone string, clusterId string, updateclusterrequest *UpdateClusterRequest) *ProjectsZonesClustersUpdateCall {
11942	c := &ProjectsZonesClustersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11943	c.projectId = projectId
11944	c.zone = zone
11945	c.clusterId = clusterId
11946	c.updateclusterrequest = updateclusterrequest
11947	return c
11948}
11949
11950// Fields allows partial responses to be retrieved. See
11951// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11952// for more information.
11953func (c *ProjectsZonesClustersUpdateCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersUpdateCall {
11954	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11955	return c
11956}
11957
11958// Context sets the context to be used in this call's Do method. Any
11959// pending HTTP request will be aborted if the provided context is
11960// canceled.
11961func (c *ProjectsZonesClustersUpdateCall) Context(ctx context.Context) *ProjectsZonesClustersUpdateCall {
11962	c.ctx_ = ctx
11963	return c
11964}
11965
11966// Header returns an http.Header that can be modified by the caller to
11967// add HTTP headers to the request.
11968func (c *ProjectsZonesClustersUpdateCall) Header() http.Header {
11969	if c.header_ == nil {
11970		c.header_ = make(http.Header)
11971	}
11972	return c.header_
11973}
11974
11975func (c *ProjectsZonesClustersUpdateCall) doRequest(alt string) (*http.Response, error) {
11976	reqHeaders := make(http.Header)
11977	for k, v := range c.header_ {
11978		reqHeaders[k] = v
11979	}
11980	reqHeaders.Set("User-Agent", c.s.userAgent())
11981	var body io.Reader = nil
11982	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updateclusterrequest)
11983	if err != nil {
11984		return nil, err
11985	}
11986	reqHeaders.Set("Content-Type", "application/json")
11987	c.urlParams_.Set("alt", alt)
11988	c.urlParams_.Set("prettyPrint", "false")
11989	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}")
11990	urls += "?" + c.urlParams_.Encode()
11991	req, err := http.NewRequest("PUT", urls, body)
11992	if err != nil {
11993		return nil, err
11994	}
11995	req.Header = reqHeaders
11996	googleapi.Expand(req.URL, map[string]string{
11997		"projectId": c.projectId,
11998		"zone":      c.zone,
11999		"clusterId": c.clusterId,
12000	})
12001	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12002}
12003
12004// Do executes the "container.projects.zones.clusters.update" call.
12005// Exactly one of *Operation or error will be non-nil. Any non-2xx
12006// status code is an error. Response headers are in either
12007// *Operation.ServerResponse.Header or (if a response was returned at
12008// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
12009// to check whether the returned error was because
12010// http.StatusNotModified was returned.
12011func (c *ProjectsZonesClustersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
12012	gensupport.SetOptions(c.urlParams_, opts...)
12013	res, err := c.doRequest("json")
12014	if res != nil && res.StatusCode == http.StatusNotModified {
12015		if res.Body != nil {
12016			res.Body.Close()
12017		}
12018		return nil, &googleapi.Error{
12019			Code:   res.StatusCode,
12020			Header: res.Header,
12021		}
12022	}
12023	if err != nil {
12024		return nil, err
12025	}
12026	defer googleapi.CloseBody(res)
12027	if err := googleapi.CheckResponse(res); err != nil {
12028		return nil, err
12029	}
12030	ret := &Operation{
12031		ServerResponse: googleapi.ServerResponse{
12032			Header:         res.Header,
12033			HTTPStatusCode: res.StatusCode,
12034		},
12035	}
12036	target := &ret
12037	if err := gensupport.DecodeResponse(target, res); err != nil {
12038		return nil, err
12039	}
12040	return ret, nil
12041	// {
12042	//   "description": "Updates the settings of a specific cluster.",
12043	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}",
12044	//   "httpMethod": "PUT",
12045	//   "id": "container.projects.zones.clusters.update",
12046	//   "parameterOrder": [
12047	//     "projectId",
12048	//     "zone",
12049	//     "clusterId"
12050	//   ],
12051	//   "parameters": {
12052	//     "clusterId": {
12053	//       "description": "Deprecated. The name of the cluster to upgrade.\nThis field has been deprecated and replaced by the name field.",
12054	//       "location": "path",
12055	//       "required": true,
12056	//       "type": "string"
12057	//     },
12058	//     "projectId": {
12059	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
12060	//       "location": "path",
12061	//       "required": true,
12062	//       "type": "string"
12063	//     },
12064	//     "zone": {
12065	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
12066	//       "location": "path",
12067	//       "required": true,
12068	//       "type": "string"
12069	//     }
12070	//   },
12071	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}",
12072	//   "request": {
12073	//     "$ref": "UpdateClusterRequest"
12074	//   },
12075	//   "response": {
12076	//     "$ref": "Operation"
12077	//   },
12078	//   "scopes": [
12079	//     "https://www.googleapis.com/auth/cloud-platform"
12080	//   ]
12081	// }
12082
12083}
12084
12085// method id "container.projects.zones.clusters.nodePools.autoscaling":
12086
12087type ProjectsZonesClustersNodePoolsAutoscalingCall struct {
12088	s                             *Service
12089	projectId                     string
12090	zone                          string
12091	clusterId                     string
12092	nodePoolId                    string
12093	setnodepoolautoscalingrequest *SetNodePoolAutoscalingRequest
12094	urlParams_                    gensupport.URLParams
12095	ctx_                          context.Context
12096	header_                       http.Header
12097}
12098
12099// Autoscaling: Sets the autoscaling settings for the specified node
12100// pool.
12101func (r *ProjectsZonesClustersNodePoolsService) Autoscaling(projectId string, zone string, clusterId string, nodePoolId string, setnodepoolautoscalingrequest *SetNodePoolAutoscalingRequest) *ProjectsZonesClustersNodePoolsAutoscalingCall {
12102	c := &ProjectsZonesClustersNodePoolsAutoscalingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12103	c.projectId = projectId
12104	c.zone = zone
12105	c.clusterId = clusterId
12106	c.nodePoolId = nodePoolId
12107	c.setnodepoolautoscalingrequest = setnodepoolautoscalingrequest
12108	return c
12109}
12110
12111// Fields allows partial responses to be retrieved. See
12112// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12113// for more information.
12114func (c *ProjectsZonesClustersNodePoolsAutoscalingCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersNodePoolsAutoscalingCall {
12115	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12116	return c
12117}
12118
12119// Context sets the context to be used in this call's Do method. Any
12120// pending HTTP request will be aborted if the provided context is
12121// canceled.
12122func (c *ProjectsZonesClustersNodePoolsAutoscalingCall) Context(ctx context.Context) *ProjectsZonesClustersNodePoolsAutoscalingCall {
12123	c.ctx_ = ctx
12124	return c
12125}
12126
12127// Header returns an http.Header that can be modified by the caller to
12128// add HTTP headers to the request.
12129func (c *ProjectsZonesClustersNodePoolsAutoscalingCall) Header() http.Header {
12130	if c.header_ == nil {
12131		c.header_ = make(http.Header)
12132	}
12133	return c.header_
12134}
12135
12136func (c *ProjectsZonesClustersNodePoolsAutoscalingCall) doRequest(alt string) (*http.Response, error) {
12137	reqHeaders := make(http.Header)
12138	for k, v := range c.header_ {
12139		reqHeaders[k] = v
12140	}
12141	reqHeaders.Set("User-Agent", c.s.userAgent())
12142	var body io.Reader = nil
12143	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setnodepoolautoscalingrequest)
12144	if err != nil {
12145		return nil, err
12146	}
12147	reqHeaders.Set("Content-Type", "application/json")
12148	c.urlParams_.Set("alt", alt)
12149	c.urlParams_.Set("prettyPrint", "false")
12150	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/autoscaling")
12151	urls += "?" + c.urlParams_.Encode()
12152	req, err := http.NewRequest("POST", urls, body)
12153	if err != nil {
12154		return nil, err
12155	}
12156	req.Header = reqHeaders
12157	googleapi.Expand(req.URL, map[string]string{
12158		"projectId":  c.projectId,
12159		"zone":       c.zone,
12160		"clusterId":  c.clusterId,
12161		"nodePoolId": c.nodePoolId,
12162	})
12163	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12164}
12165
12166// Do executes the "container.projects.zones.clusters.nodePools.autoscaling" call.
12167// Exactly one of *Operation or error will be non-nil. Any non-2xx
12168// status code is an error. Response headers are in either
12169// *Operation.ServerResponse.Header or (if a response was returned at
12170// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
12171// to check whether the returned error was because
12172// http.StatusNotModified was returned.
12173func (c *ProjectsZonesClustersNodePoolsAutoscalingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
12174	gensupport.SetOptions(c.urlParams_, opts...)
12175	res, err := c.doRequest("json")
12176	if res != nil && res.StatusCode == http.StatusNotModified {
12177		if res.Body != nil {
12178			res.Body.Close()
12179		}
12180		return nil, &googleapi.Error{
12181			Code:   res.StatusCode,
12182			Header: res.Header,
12183		}
12184	}
12185	if err != nil {
12186		return nil, err
12187	}
12188	defer googleapi.CloseBody(res)
12189	if err := googleapi.CheckResponse(res); err != nil {
12190		return nil, err
12191	}
12192	ret := &Operation{
12193		ServerResponse: googleapi.ServerResponse{
12194			Header:         res.Header,
12195			HTTPStatusCode: res.StatusCode,
12196		},
12197	}
12198	target := &ret
12199	if err := gensupport.DecodeResponse(target, res); err != nil {
12200		return nil, err
12201	}
12202	return ret, nil
12203	// {
12204	//   "description": "Sets the autoscaling settings for the specified node pool.",
12205	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/autoscaling",
12206	//   "httpMethod": "POST",
12207	//   "id": "container.projects.zones.clusters.nodePools.autoscaling",
12208	//   "parameterOrder": [
12209	//     "projectId",
12210	//     "zone",
12211	//     "clusterId",
12212	//     "nodePoolId"
12213	//   ],
12214	//   "parameters": {
12215	//     "clusterId": {
12216	//       "description": "Deprecated. The name of the cluster to upgrade.\nThis field has been deprecated and replaced by the name field.",
12217	//       "location": "path",
12218	//       "required": true,
12219	//       "type": "string"
12220	//     },
12221	//     "nodePoolId": {
12222	//       "description": "Deprecated. The name of the node pool to upgrade.\nThis field has been deprecated and replaced by the name field.",
12223	//       "location": "path",
12224	//       "required": true,
12225	//       "type": "string"
12226	//     },
12227	//     "projectId": {
12228	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
12229	//       "location": "path",
12230	//       "required": true,
12231	//       "type": "string"
12232	//     },
12233	//     "zone": {
12234	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
12235	//       "location": "path",
12236	//       "required": true,
12237	//       "type": "string"
12238	//     }
12239	//   },
12240	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/autoscaling",
12241	//   "request": {
12242	//     "$ref": "SetNodePoolAutoscalingRequest"
12243	//   },
12244	//   "response": {
12245	//     "$ref": "Operation"
12246	//   },
12247	//   "scopes": [
12248	//     "https://www.googleapis.com/auth/cloud-platform"
12249	//   ]
12250	// }
12251
12252}
12253
12254// method id "container.projects.zones.clusters.nodePools.create":
12255
12256type ProjectsZonesClustersNodePoolsCreateCall struct {
12257	s                     *Service
12258	projectId             string
12259	zone                  string
12260	clusterId             string
12261	createnodepoolrequest *CreateNodePoolRequest
12262	urlParams_            gensupport.URLParams
12263	ctx_                  context.Context
12264	header_               http.Header
12265}
12266
12267// Create: Creates a node pool for a cluster.
12268func (r *ProjectsZonesClustersNodePoolsService) Create(projectId string, zone string, clusterId string, createnodepoolrequest *CreateNodePoolRequest) *ProjectsZonesClustersNodePoolsCreateCall {
12269	c := &ProjectsZonesClustersNodePoolsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12270	c.projectId = projectId
12271	c.zone = zone
12272	c.clusterId = clusterId
12273	c.createnodepoolrequest = createnodepoolrequest
12274	return c
12275}
12276
12277// Fields allows partial responses to be retrieved. See
12278// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12279// for more information.
12280func (c *ProjectsZonesClustersNodePoolsCreateCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersNodePoolsCreateCall {
12281	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12282	return c
12283}
12284
12285// Context sets the context to be used in this call's Do method. Any
12286// pending HTTP request will be aborted if the provided context is
12287// canceled.
12288func (c *ProjectsZonesClustersNodePoolsCreateCall) Context(ctx context.Context) *ProjectsZonesClustersNodePoolsCreateCall {
12289	c.ctx_ = ctx
12290	return c
12291}
12292
12293// Header returns an http.Header that can be modified by the caller to
12294// add HTTP headers to the request.
12295func (c *ProjectsZonesClustersNodePoolsCreateCall) Header() http.Header {
12296	if c.header_ == nil {
12297		c.header_ = make(http.Header)
12298	}
12299	return c.header_
12300}
12301
12302func (c *ProjectsZonesClustersNodePoolsCreateCall) doRequest(alt string) (*http.Response, error) {
12303	reqHeaders := make(http.Header)
12304	for k, v := range c.header_ {
12305		reqHeaders[k] = v
12306	}
12307	reqHeaders.Set("User-Agent", c.s.userAgent())
12308	var body io.Reader = nil
12309	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createnodepoolrequest)
12310	if err != nil {
12311		return nil, err
12312	}
12313	reqHeaders.Set("Content-Type", "application/json")
12314	c.urlParams_.Set("alt", alt)
12315	c.urlParams_.Set("prettyPrint", "false")
12316	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools")
12317	urls += "?" + c.urlParams_.Encode()
12318	req, err := http.NewRequest("POST", urls, body)
12319	if err != nil {
12320		return nil, err
12321	}
12322	req.Header = reqHeaders
12323	googleapi.Expand(req.URL, map[string]string{
12324		"projectId": c.projectId,
12325		"zone":      c.zone,
12326		"clusterId": c.clusterId,
12327	})
12328	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12329}
12330
12331// Do executes the "container.projects.zones.clusters.nodePools.create" call.
12332// Exactly one of *Operation or error will be non-nil. Any non-2xx
12333// status code is an error. Response headers are in either
12334// *Operation.ServerResponse.Header or (if a response was returned at
12335// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
12336// to check whether the returned error was because
12337// http.StatusNotModified was returned.
12338func (c *ProjectsZonesClustersNodePoolsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
12339	gensupport.SetOptions(c.urlParams_, opts...)
12340	res, err := c.doRequest("json")
12341	if res != nil && res.StatusCode == http.StatusNotModified {
12342		if res.Body != nil {
12343			res.Body.Close()
12344		}
12345		return nil, &googleapi.Error{
12346			Code:   res.StatusCode,
12347			Header: res.Header,
12348		}
12349	}
12350	if err != nil {
12351		return nil, err
12352	}
12353	defer googleapi.CloseBody(res)
12354	if err := googleapi.CheckResponse(res); err != nil {
12355		return nil, err
12356	}
12357	ret := &Operation{
12358		ServerResponse: googleapi.ServerResponse{
12359			Header:         res.Header,
12360			HTTPStatusCode: res.StatusCode,
12361		},
12362	}
12363	target := &ret
12364	if err := gensupport.DecodeResponse(target, res); err != nil {
12365		return nil, err
12366	}
12367	return ret, nil
12368	// {
12369	//   "description": "Creates a node pool for a cluster.",
12370	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools",
12371	//   "httpMethod": "POST",
12372	//   "id": "container.projects.zones.clusters.nodePools.create",
12373	//   "parameterOrder": [
12374	//     "projectId",
12375	//     "zone",
12376	//     "clusterId"
12377	//   ],
12378	//   "parameters": {
12379	//     "clusterId": {
12380	//       "description": "Deprecated. The name of the cluster.\nThis field has been deprecated and replaced by the parent field.",
12381	//       "location": "path",
12382	//       "required": true,
12383	//       "type": "string"
12384	//     },
12385	//     "projectId": {
12386	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field has been deprecated and replaced by the parent field.",
12387	//       "location": "path",
12388	//       "required": true,
12389	//       "type": "string"
12390	//     },
12391	//     "zone": {
12392	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the parent field.",
12393	//       "location": "path",
12394	//       "required": true,
12395	//       "type": "string"
12396	//     }
12397	//   },
12398	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools",
12399	//   "request": {
12400	//     "$ref": "CreateNodePoolRequest"
12401	//   },
12402	//   "response": {
12403	//     "$ref": "Operation"
12404	//   },
12405	//   "scopes": [
12406	//     "https://www.googleapis.com/auth/cloud-platform"
12407	//   ]
12408	// }
12409
12410}
12411
12412// method id "container.projects.zones.clusters.nodePools.delete":
12413
12414type ProjectsZonesClustersNodePoolsDeleteCall struct {
12415	s          *Service
12416	projectId  string
12417	zone       string
12418	clusterId  string
12419	nodePoolId string
12420	urlParams_ gensupport.URLParams
12421	ctx_       context.Context
12422	header_    http.Header
12423}
12424
12425// Delete: Deletes a node pool from a cluster.
12426func (r *ProjectsZonesClustersNodePoolsService) Delete(projectId string, zone string, clusterId string, nodePoolId string) *ProjectsZonesClustersNodePoolsDeleteCall {
12427	c := &ProjectsZonesClustersNodePoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12428	c.projectId = projectId
12429	c.zone = zone
12430	c.clusterId = clusterId
12431	c.nodePoolId = nodePoolId
12432	return c
12433}
12434
12435// Name sets the optional parameter "name": The name (project, location,
12436// cluster, node pool id) of the node pool to
12437// delete. Specified in the
12438// format
12439// 'projects/*/locations/*/clusters/*/nodePools/*'.
12440func (c *ProjectsZonesClustersNodePoolsDeleteCall) Name(name string) *ProjectsZonesClustersNodePoolsDeleteCall {
12441	c.urlParams_.Set("name", name)
12442	return c
12443}
12444
12445// Fields allows partial responses to be retrieved. See
12446// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12447// for more information.
12448func (c *ProjectsZonesClustersNodePoolsDeleteCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersNodePoolsDeleteCall {
12449	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12450	return c
12451}
12452
12453// Context sets the context to be used in this call's Do method. Any
12454// pending HTTP request will be aborted if the provided context is
12455// canceled.
12456func (c *ProjectsZonesClustersNodePoolsDeleteCall) Context(ctx context.Context) *ProjectsZonesClustersNodePoolsDeleteCall {
12457	c.ctx_ = ctx
12458	return c
12459}
12460
12461// Header returns an http.Header that can be modified by the caller to
12462// add HTTP headers to the request.
12463func (c *ProjectsZonesClustersNodePoolsDeleteCall) Header() http.Header {
12464	if c.header_ == nil {
12465		c.header_ = make(http.Header)
12466	}
12467	return c.header_
12468}
12469
12470func (c *ProjectsZonesClustersNodePoolsDeleteCall) doRequest(alt string) (*http.Response, error) {
12471	reqHeaders := make(http.Header)
12472	for k, v := range c.header_ {
12473		reqHeaders[k] = v
12474	}
12475	reqHeaders.Set("User-Agent", c.s.userAgent())
12476	var body io.Reader = nil
12477	c.urlParams_.Set("alt", alt)
12478	c.urlParams_.Set("prettyPrint", "false")
12479	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}")
12480	urls += "?" + c.urlParams_.Encode()
12481	req, err := http.NewRequest("DELETE", urls, body)
12482	if err != nil {
12483		return nil, err
12484	}
12485	req.Header = reqHeaders
12486	googleapi.Expand(req.URL, map[string]string{
12487		"projectId":  c.projectId,
12488		"zone":       c.zone,
12489		"clusterId":  c.clusterId,
12490		"nodePoolId": c.nodePoolId,
12491	})
12492	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12493}
12494
12495// Do executes the "container.projects.zones.clusters.nodePools.delete" call.
12496// Exactly one of *Operation or error will be non-nil. Any non-2xx
12497// status code is an error. Response headers are in either
12498// *Operation.ServerResponse.Header or (if a response was returned at
12499// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
12500// to check whether the returned error was because
12501// http.StatusNotModified was returned.
12502func (c *ProjectsZonesClustersNodePoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
12503	gensupport.SetOptions(c.urlParams_, opts...)
12504	res, err := c.doRequest("json")
12505	if res != nil && res.StatusCode == http.StatusNotModified {
12506		if res.Body != nil {
12507			res.Body.Close()
12508		}
12509		return nil, &googleapi.Error{
12510			Code:   res.StatusCode,
12511			Header: res.Header,
12512		}
12513	}
12514	if err != nil {
12515		return nil, err
12516	}
12517	defer googleapi.CloseBody(res)
12518	if err := googleapi.CheckResponse(res); err != nil {
12519		return nil, err
12520	}
12521	ret := &Operation{
12522		ServerResponse: googleapi.ServerResponse{
12523			Header:         res.Header,
12524			HTTPStatusCode: res.StatusCode,
12525		},
12526	}
12527	target := &ret
12528	if err := gensupport.DecodeResponse(target, res); err != nil {
12529		return nil, err
12530	}
12531	return ret, nil
12532	// {
12533	//   "description": "Deletes a node pool from a cluster.",
12534	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}",
12535	//   "httpMethod": "DELETE",
12536	//   "id": "container.projects.zones.clusters.nodePools.delete",
12537	//   "parameterOrder": [
12538	//     "projectId",
12539	//     "zone",
12540	//     "clusterId",
12541	//     "nodePoolId"
12542	//   ],
12543	//   "parameters": {
12544	//     "clusterId": {
12545	//       "description": "Deprecated. The name of the cluster.\nThis field has been deprecated and replaced by the name field.",
12546	//       "location": "path",
12547	//       "required": true,
12548	//       "type": "string"
12549	//     },
12550	//     "name": {
12551	//       "description": "The name (project, location, cluster, node pool id) of the node pool to\ndelete. Specified in the format\n'projects/*/locations/*/clusters/*/nodePools/*'.",
12552	//       "location": "query",
12553	//       "type": "string"
12554	//     },
12555	//     "nodePoolId": {
12556	//       "description": "Deprecated. The name of the node pool to delete.\nThis field has been deprecated and replaced by the name field.",
12557	//       "location": "path",
12558	//       "required": true,
12559	//       "type": "string"
12560	//     },
12561	//     "projectId": {
12562	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field has been deprecated and replaced by the name field.",
12563	//       "location": "path",
12564	//       "required": true,
12565	//       "type": "string"
12566	//     },
12567	//     "zone": {
12568	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
12569	//       "location": "path",
12570	//       "required": true,
12571	//       "type": "string"
12572	//     }
12573	//   },
12574	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}",
12575	//   "response": {
12576	//     "$ref": "Operation"
12577	//   },
12578	//   "scopes": [
12579	//     "https://www.googleapis.com/auth/cloud-platform"
12580	//   ]
12581	// }
12582
12583}
12584
12585// method id "container.projects.zones.clusters.nodePools.get":
12586
12587type ProjectsZonesClustersNodePoolsGetCall struct {
12588	s            *Service
12589	projectId    string
12590	zone         string
12591	clusterId    string
12592	nodePoolId   string
12593	urlParams_   gensupport.URLParams
12594	ifNoneMatch_ string
12595	ctx_         context.Context
12596	header_      http.Header
12597}
12598
12599// Get: Retrieves the requested node pool.
12600func (r *ProjectsZonesClustersNodePoolsService) Get(projectId string, zone string, clusterId string, nodePoolId string) *ProjectsZonesClustersNodePoolsGetCall {
12601	c := &ProjectsZonesClustersNodePoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12602	c.projectId = projectId
12603	c.zone = zone
12604	c.clusterId = clusterId
12605	c.nodePoolId = nodePoolId
12606	return c
12607}
12608
12609// Name sets the optional parameter "name": The name (project, location,
12610// cluster, node pool id) of the node pool to
12611// get. Specified in the
12612// format
12613// 'projects/*/locations/*/clusters/*/nodePools/*'.
12614func (c *ProjectsZonesClustersNodePoolsGetCall) Name(name string) *ProjectsZonesClustersNodePoolsGetCall {
12615	c.urlParams_.Set("name", name)
12616	return c
12617}
12618
12619// Fields allows partial responses to be retrieved. See
12620// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12621// for more information.
12622func (c *ProjectsZonesClustersNodePoolsGetCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersNodePoolsGetCall {
12623	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12624	return c
12625}
12626
12627// IfNoneMatch sets the optional parameter which makes the operation
12628// fail if the object's ETag matches the given value. This is useful for
12629// getting updates only after the object has changed since the last
12630// request. Use googleapi.IsNotModified to check whether the response
12631// error from Do is the result of In-None-Match.
12632func (c *ProjectsZonesClustersNodePoolsGetCall) IfNoneMatch(entityTag string) *ProjectsZonesClustersNodePoolsGetCall {
12633	c.ifNoneMatch_ = entityTag
12634	return c
12635}
12636
12637// Context sets the context to be used in this call's Do method. Any
12638// pending HTTP request will be aborted if the provided context is
12639// canceled.
12640func (c *ProjectsZonesClustersNodePoolsGetCall) Context(ctx context.Context) *ProjectsZonesClustersNodePoolsGetCall {
12641	c.ctx_ = ctx
12642	return c
12643}
12644
12645// Header returns an http.Header that can be modified by the caller to
12646// add HTTP headers to the request.
12647func (c *ProjectsZonesClustersNodePoolsGetCall) Header() http.Header {
12648	if c.header_ == nil {
12649		c.header_ = make(http.Header)
12650	}
12651	return c.header_
12652}
12653
12654func (c *ProjectsZonesClustersNodePoolsGetCall) doRequest(alt string) (*http.Response, error) {
12655	reqHeaders := make(http.Header)
12656	for k, v := range c.header_ {
12657		reqHeaders[k] = v
12658	}
12659	reqHeaders.Set("User-Agent", c.s.userAgent())
12660	if c.ifNoneMatch_ != "" {
12661		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12662	}
12663	var body io.Reader = nil
12664	c.urlParams_.Set("alt", alt)
12665	c.urlParams_.Set("prettyPrint", "false")
12666	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}")
12667	urls += "?" + c.urlParams_.Encode()
12668	req, err := http.NewRequest("GET", urls, body)
12669	if err != nil {
12670		return nil, err
12671	}
12672	req.Header = reqHeaders
12673	googleapi.Expand(req.URL, map[string]string{
12674		"projectId":  c.projectId,
12675		"zone":       c.zone,
12676		"clusterId":  c.clusterId,
12677		"nodePoolId": c.nodePoolId,
12678	})
12679	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12680}
12681
12682// Do executes the "container.projects.zones.clusters.nodePools.get" call.
12683// Exactly one of *NodePool or error will be non-nil. Any non-2xx status
12684// code is an error. Response headers are in either
12685// *NodePool.ServerResponse.Header or (if a response was returned at
12686// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
12687// to check whether the returned error was because
12688// http.StatusNotModified was returned.
12689func (c *ProjectsZonesClustersNodePoolsGetCall) Do(opts ...googleapi.CallOption) (*NodePool, error) {
12690	gensupport.SetOptions(c.urlParams_, opts...)
12691	res, err := c.doRequest("json")
12692	if res != nil && res.StatusCode == http.StatusNotModified {
12693		if res.Body != nil {
12694			res.Body.Close()
12695		}
12696		return nil, &googleapi.Error{
12697			Code:   res.StatusCode,
12698			Header: res.Header,
12699		}
12700	}
12701	if err != nil {
12702		return nil, err
12703	}
12704	defer googleapi.CloseBody(res)
12705	if err := googleapi.CheckResponse(res); err != nil {
12706		return nil, err
12707	}
12708	ret := &NodePool{
12709		ServerResponse: googleapi.ServerResponse{
12710			Header:         res.Header,
12711			HTTPStatusCode: res.StatusCode,
12712		},
12713	}
12714	target := &ret
12715	if err := gensupport.DecodeResponse(target, res); err != nil {
12716		return nil, err
12717	}
12718	return ret, nil
12719	// {
12720	//   "description": "Retrieves the requested node pool.",
12721	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}",
12722	//   "httpMethod": "GET",
12723	//   "id": "container.projects.zones.clusters.nodePools.get",
12724	//   "parameterOrder": [
12725	//     "projectId",
12726	//     "zone",
12727	//     "clusterId",
12728	//     "nodePoolId"
12729	//   ],
12730	//   "parameters": {
12731	//     "clusterId": {
12732	//       "description": "Deprecated. The name of the cluster.\nThis field has been deprecated and replaced by the name field.",
12733	//       "location": "path",
12734	//       "required": true,
12735	//       "type": "string"
12736	//     },
12737	//     "name": {
12738	//       "description": "The name (project, location, cluster, node pool id) of the node pool to\nget. Specified in the format\n'projects/*/locations/*/clusters/*/nodePools/*'.",
12739	//       "location": "query",
12740	//       "type": "string"
12741	//     },
12742	//     "nodePoolId": {
12743	//       "description": "Deprecated. The name of the node pool.\nThis field has been deprecated and replaced by the name field.",
12744	//       "location": "path",
12745	//       "required": true,
12746	//       "type": "string"
12747	//     },
12748	//     "projectId": {
12749	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field has been deprecated and replaced by the name field.",
12750	//       "location": "path",
12751	//       "required": true,
12752	//       "type": "string"
12753	//     },
12754	//     "zone": {
12755	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
12756	//       "location": "path",
12757	//       "required": true,
12758	//       "type": "string"
12759	//     }
12760	//   },
12761	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}",
12762	//   "response": {
12763	//     "$ref": "NodePool"
12764	//   },
12765	//   "scopes": [
12766	//     "https://www.googleapis.com/auth/cloud-platform"
12767	//   ]
12768	// }
12769
12770}
12771
12772// method id "container.projects.zones.clusters.nodePools.list":
12773
12774type ProjectsZonesClustersNodePoolsListCall struct {
12775	s            *Service
12776	projectId    string
12777	zone         string
12778	clusterId    string
12779	urlParams_   gensupport.URLParams
12780	ifNoneMatch_ string
12781	ctx_         context.Context
12782	header_      http.Header
12783}
12784
12785// List: Lists the node pools for a cluster.
12786func (r *ProjectsZonesClustersNodePoolsService) List(projectId string, zone string, clusterId string) *ProjectsZonesClustersNodePoolsListCall {
12787	c := &ProjectsZonesClustersNodePoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12788	c.projectId = projectId
12789	c.zone = zone
12790	c.clusterId = clusterId
12791	return c
12792}
12793
12794// Parent sets the optional parameter "parent": The parent (project,
12795// location, cluster id) where the node pools will be
12796// listed. Specified in the format 'projects/*/locations/*/clusters/*'.
12797func (c *ProjectsZonesClustersNodePoolsListCall) Parent(parent string) *ProjectsZonesClustersNodePoolsListCall {
12798	c.urlParams_.Set("parent", parent)
12799	return c
12800}
12801
12802// Fields allows partial responses to be retrieved. See
12803// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12804// for more information.
12805func (c *ProjectsZonesClustersNodePoolsListCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersNodePoolsListCall {
12806	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12807	return c
12808}
12809
12810// IfNoneMatch sets the optional parameter which makes the operation
12811// fail if the object's ETag matches the given value. This is useful for
12812// getting updates only after the object has changed since the last
12813// request. Use googleapi.IsNotModified to check whether the response
12814// error from Do is the result of In-None-Match.
12815func (c *ProjectsZonesClustersNodePoolsListCall) IfNoneMatch(entityTag string) *ProjectsZonesClustersNodePoolsListCall {
12816	c.ifNoneMatch_ = entityTag
12817	return c
12818}
12819
12820// Context sets the context to be used in this call's Do method. Any
12821// pending HTTP request will be aborted if the provided context is
12822// canceled.
12823func (c *ProjectsZonesClustersNodePoolsListCall) Context(ctx context.Context) *ProjectsZonesClustersNodePoolsListCall {
12824	c.ctx_ = ctx
12825	return c
12826}
12827
12828// Header returns an http.Header that can be modified by the caller to
12829// add HTTP headers to the request.
12830func (c *ProjectsZonesClustersNodePoolsListCall) Header() http.Header {
12831	if c.header_ == nil {
12832		c.header_ = make(http.Header)
12833	}
12834	return c.header_
12835}
12836
12837func (c *ProjectsZonesClustersNodePoolsListCall) doRequest(alt string) (*http.Response, error) {
12838	reqHeaders := make(http.Header)
12839	for k, v := range c.header_ {
12840		reqHeaders[k] = v
12841	}
12842	reqHeaders.Set("User-Agent", c.s.userAgent())
12843	if c.ifNoneMatch_ != "" {
12844		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12845	}
12846	var body io.Reader = nil
12847	c.urlParams_.Set("alt", alt)
12848	c.urlParams_.Set("prettyPrint", "false")
12849	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools")
12850	urls += "?" + c.urlParams_.Encode()
12851	req, err := http.NewRequest("GET", urls, body)
12852	if err != nil {
12853		return nil, err
12854	}
12855	req.Header = reqHeaders
12856	googleapi.Expand(req.URL, map[string]string{
12857		"projectId": c.projectId,
12858		"zone":      c.zone,
12859		"clusterId": c.clusterId,
12860	})
12861	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12862}
12863
12864// Do executes the "container.projects.zones.clusters.nodePools.list" call.
12865// Exactly one of *ListNodePoolsResponse or error will be non-nil. Any
12866// non-2xx status code is an error. Response headers are in either
12867// *ListNodePoolsResponse.ServerResponse.Header or (if a response was
12868// returned at all) in error.(*googleapi.Error).Header. Use
12869// googleapi.IsNotModified to check whether the returned error was
12870// because http.StatusNotModified was returned.
12871func (c *ProjectsZonesClustersNodePoolsListCall) Do(opts ...googleapi.CallOption) (*ListNodePoolsResponse, error) {
12872	gensupport.SetOptions(c.urlParams_, opts...)
12873	res, err := c.doRequest("json")
12874	if res != nil && res.StatusCode == http.StatusNotModified {
12875		if res.Body != nil {
12876			res.Body.Close()
12877		}
12878		return nil, &googleapi.Error{
12879			Code:   res.StatusCode,
12880			Header: res.Header,
12881		}
12882	}
12883	if err != nil {
12884		return nil, err
12885	}
12886	defer googleapi.CloseBody(res)
12887	if err := googleapi.CheckResponse(res); err != nil {
12888		return nil, err
12889	}
12890	ret := &ListNodePoolsResponse{
12891		ServerResponse: googleapi.ServerResponse{
12892			Header:         res.Header,
12893			HTTPStatusCode: res.StatusCode,
12894		},
12895	}
12896	target := &ret
12897	if err := gensupport.DecodeResponse(target, res); err != nil {
12898		return nil, err
12899	}
12900	return ret, nil
12901	// {
12902	//   "description": "Lists the node pools for a cluster.",
12903	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools",
12904	//   "httpMethod": "GET",
12905	//   "id": "container.projects.zones.clusters.nodePools.list",
12906	//   "parameterOrder": [
12907	//     "projectId",
12908	//     "zone",
12909	//     "clusterId"
12910	//   ],
12911	//   "parameters": {
12912	//     "clusterId": {
12913	//       "description": "Deprecated. The name of the cluster.\nThis field has been deprecated and replaced by the parent field.",
12914	//       "location": "path",
12915	//       "required": true,
12916	//       "type": "string"
12917	//     },
12918	//     "parent": {
12919	//       "description": "The parent (project, location, cluster id) where the node pools will be\nlisted. Specified in the format 'projects/*/locations/*/clusters/*'.",
12920	//       "location": "query",
12921	//       "type": "string"
12922	//     },
12923	//     "projectId": {
12924	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://developers.google.com/console/help/new/#projectnumber).\nThis field has been deprecated and replaced by the parent field.",
12925	//       "location": "path",
12926	//       "required": true,
12927	//       "type": "string"
12928	//     },
12929	//     "zone": {
12930	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the parent field.",
12931	//       "location": "path",
12932	//       "required": true,
12933	//       "type": "string"
12934	//     }
12935	//   },
12936	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools",
12937	//   "response": {
12938	//     "$ref": "ListNodePoolsResponse"
12939	//   },
12940	//   "scopes": [
12941	//     "https://www.googleapis.com/auth/cloud-platform"
12942	//   ]
12943	// }
12944
12945}
12946
12947// method id "container.projects.zones.clusters.nodePools.rollback":
12948
12949type ProjectsZonesClustersNodePoolsRollbackCall struct {
12950	s                              *Service
12951	projectId                      string
12952	zone                           string
12953	clusterId                      string
12954	nodePoolId                     string
12955	rollbacknodepoolupgraderequest *RollbackNodePoolUpgradeRequest
12956	urlParams_                     gensupport.URLParams
12957	ctx_                           context.Context
12958	header_                        http.Header
12959}
12960
12961// Rollback: Rolls back a previously Aborted or Failed NodePool
12962// upgrade.
12963// This makes no changes if the last upgrade successfully completed.
12964func (r *ProjectsZonesClustersNodePoolsService) Rollback(projectId string, zone string, clusterId string, nodePoolId string, rollbacknodepoolupgraderequest *RollbackNodePoolUpgradeRequest) *ProjectsZonesClustersNodePoolsRollbackCall {
12965	c := &ProjectsZonesClustersNodePoolsRollbackCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12966	c.projectId = projectId
12967	c.zone = zone
12968	c.clusterId = clusterId
12969	c.nodePoolId = nodePoolId
12970	c.rollbacknodepoolupgraderequest = rollbacknodepoolupgraderequest
12971	return c
12972}
12973
12974// Fields allows partial responses to be retrieved. See
12975// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12976// for more information.
12977func (c *ProjectsZonesClustersNodePoolsRollbackCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersNodePoolsRollbackCall {
12978	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12979	return c
12980}
12981
12982// Context sets the context to be used in this call's Do method. Any
12983// pending HTTP request will be aborted if the provided context is
12984// canceled.
12985func (c *ProjectsZonesClustersNodePoolsRollbackCall) Context(ctx context.Context) *ProjectsZonesClustersNodePoolsRollbackCall {
12986	c.ctx_ = ctx
12987	return c
12988}
12989
12990// Header returns an http.Header that can be modified by the caller to
12991// add HTTP headers to the request.
12992func (c *ProjectsZonesClustersNodePoolsRollbackCall) Header() http.Header {
12993	if c.header_ == nil {
12994		c.header_ = make(http.Header)
12995	}
12996	return c.header_
12997}
12998
12999func (c *ProjectsZonesClustersNodePoolsRollbackCall) doRequest(alt string) (*http.Response, error) {
13000	reqHeaders := make(http.Header)
13001	for k, v := range c.header_ {
13002		reqHeaders[k] = v
13003	}
13004	reqHeaders.Set("User-Agent", c.s.userAgent())
13005	var body io.Reader = nil
13006	body, err := googleapi.WithoutDataWrapper.JSONReader(c.rollbacknodepoolupgraderequest)
13007	if err != nil {
13008		return nil, err
13009	}
13010	reqHeaders.Set("Content-Type", "application/json")
13011	c.urlParams_.Set("alt", alt)
13012	c.urlParams_.Set("prettyPrint", "false")
13013	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}:rollback")
13014	urls += "?" + c.urlParams_.Encode()
13015	req, err := http.NewRequest("POST", urls, body)
13016	if err != nil {
13017		return nil, err
13018	}
13019	req.Header = reqHeaders
13020	googleapi.Expand(req.URL, map[string]string{
13021		"projectId":  c.projectId,
13022		"zone":       c.zone,
13023		"clusterId":  c.clusterId,
13024		"nodePoolId": c.nodePoolId,
13025	})
13026	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13027}
13028
13029// Do executes the "container.projects.zones.clusters.nodePools.rollback" call.
13030// Exactly one of *Operation or error will be non-nil. Any non-2xx
13031// status code is an error. Response headers are in either
13032// *Operation.ServerResponse.Header or (if a response was returned at
13033// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
13034// to check whether the returned error was because
13035// http.StatusNotModified was returned.
13036func (c *ProjectsZonesClustersNodePoolsRollbackCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
13037	gensupport.SetOptions(c.urlParams_, opts...)
13038	res, err := c.doRequest("json")
13039	if res != nil && res.StatusCode == http.StatusNotModified {
13040		if res.Body != nil {
13041			res.Body.Close()
13042		}
13043		return nil, &googleapi.Error{
13044			Code:   res.StatusCode,
13045			Header: res.Header,
13046		}
13047	}
13048	if err != nil {
13049		return nil, err
13050	}
13051	defer googleapi.CloseBody(res)
13052	if err := googleapi.CheckResponse(res); err != nil {
13053		return nil, err
13054	}
13055	ret := &Operation{
13056		ServerResponse: googleapi.ServerResponse{
13057			Header:         res.Header,
13058			HTTPStatusCode: res.StatusCode,
13059		},
13060	}
13061	target := &ret
13062	if err := gensupport.DecodeResponse(target, res); err != nil {
13063		return nil, err
13064	}
13065	return ret, nil
13066	// {
13067	//   "description": "Rolls back a previously Aborted or Failed NodePool upgrade.\nThis makes no changes if the last upgrade successfully completed.",
13068	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}:rollback",
13069	//   "httpMethod": "POST",
13070	//   "id": "container.projects.zones.clusters.nodePools.rollback",
13071	//   "parameterOrder": [
13072	//     "projectId",
13073	//     "zone",
13074	//     "clusterId",
13075	//     "nodePoolId"
13076	//   ],
13077	//   "parameters": {
13078	//     "clusterId": {
13079	//       "description": "Deprecated. The name of the cluster to rollback.\nThis field has been deprecated and replaced by the name field.",
13080	//       "location": "path",
13081	//       "required": true,
13082	//       "type": "string"
13083	//     },
13084	//     "nodePoolId": {
13085	//       "description": "Deprecated. The name of the node pool to rollback.\nThis field has been deprecated and replaced by the name field.",
13086	//       "location": "path",
13087	//       "required": true,
13088	//       "type": "string"
13089	//     },
13090	//     "projectId": {
13091	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
13092	//       "location": "path",
13093	//       "required": true,
13094	//       "type": "string"
13095	//     },
13096	//     "zone": {
13097	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
13098	//       "location": "path",
13099	//       "required": true,
13100	//       "type": "string"
13101	//     }
13102	//   },
13103	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}:rollback",
13104	//   "request": {
13105	//     "$ref": "RollbackNodePoolUpgradeRequest"
13106	//   },
13107	//   "response": {
13108	//     "$ref": "Operation"
13109	//   },
13110	//   "scopes": [
13111	//     "https://www.googleapis.com/auth/cloud-platform"
13112	//   ]
13113	// }
13114
13115}
13116
13117// method id "container.projects.zones.clusters.nodePools.setManagement":
13118
13119type ProjectsZonesClustersNodePoolsSetManagementCall struct {
13120	s                            *Service
13121	projectId                    string
13122	zone                         string
13123	clusterId                    string
13124	nodePoolId                   string
13125	setnodepoolmanagementrequest *SetNodePoolManagementRequest
13126	urlParams_                   gensupport.URLParams
13127	ctx_                         context.Context
13128	header_                      http.Header
13129}
13130
13131// SetManagement: Sets the NodeManagement options for a node pool.
13132func (r *ProjectsZonesClustersNodePoolsService) SetManagement(projectId string, zone string, clusterId string, nodePoolId string, setnodepoolmanagementrequest *SetNodePoolManagementRequest) *ProjectsZonesClustersNodePoolsSetManagementCall {
13133	c := &ProjectsZonesClustersNodePoolsSetManagementCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13134	c.projectId = projectId
13135	c.zone = zone
13136	c.clusterId = clusterId
13137	c.nodePoolId = nodePoolId
13138	c.setnodepoolmanagementrequest = setnodepoolmanagementrequest
13139	return c
13140}
13141
13142// Fields allows partial responses to be retrieved. See
13143// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13144// for more information.
13145func (c *ProjectsZonesClustersNodePoolsSetManagementCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersNodePoolsSetManagementCall {
13146	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13147	return c
13148}
13149
13150// Context sets the context to be used in this call's Do method. Any
13151// pending HTTP request will be aborted if the provided context is
13152// canceled.
13153func (c *ProjectsZonesClustersNodePoolsSetManagementCall) Context(ctx context.Context) *ProjectsZonesClustersNodePoolsSetManagementCall {
13154	c.ctx_ = ctx
13155	return c
13156}
13157
13158// Header returns an http.Header that can be modified by the caller to
13159// add HTTP headers to the request.
13160func (c *ProjectsZonesClustersNodePoolsSetManagementCall) Header() http.Header {
13161	if c.header_ == nil {
13162		c.header_ = make(http.Header)
13163	}
13164	return c.header_
13165}
13166
13167func (c *ProjectsZonesClustersNodePoolsSetManagementCall) doRequest(alt string) (*http.Response, error) {
13168	reqHeaders := make(http.Header)
13169	for k, v := range c.header_ {
13170		reqHeaders[k] = v
13171	}
13172	reqHeaders.Set("User-Agent", c.s.userAgent())
13173	var body io.Reader = nil
13174	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setnodepoolmanagementrequest)
13175	if err != nil {
13176		return nil, err
13177	}
13178	reqHeaders.Set("Content-Type", "application/json")
13179	c.urlParams_.Set("alt", alt)
13180	c.urlParams_.Set("prettyPrint", "false")
13181	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setManagement")
13182	urls += "?" + c.urlParams_.Encode()
13183	req, err := http.NewRequest("POST", urls, body)
13184	if err != nil {
13185		return nil, err
13186	}
13187	req.Header = reqHeaders
13188	googleapi.Expand(req.URL, map[string]string{
13189		"projectId":  c.projectId,
13190		"zone":       c.zone,
13191		"clusterId":  c.clusterId,
13192		"nodePoolId": c.nodePoolId,
13193	})
13194	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13195}
13196
13197// Do executes the "container.projects.zones.clusters.nodePools.setManagement" call.
13198// Exactly one of *Operation or error will be non-nil. Any non-2xx
13199// status code is an error. Response headers are in either
13200// *Operation.ServerResponse.Header or (if a response was returned at
13201// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
13202// to check whether the returned error was because
13203// http.StatusNotModified was returned.
13204func (c *ProjectsZonesClustersNodePoolsSetManagementCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
13205	gensupport.SetOptions(c.urlParams_, opts...)
13206	res, err := c.doRequest("json")
13207	if res != nil && res.StatusCode == http.StatusNotModified {
13208		if res.Body != nil {
13209			res.Body.Close()
13210		}
13211		return nil, &googleapi.Error{
13212			Code:   res.StatusCode,
13213			Header: res.Header,
13214		}
13215	}
13216	if err != nil {
13217		return nil, err
13218	}
13219	defer googleapi.CloseBody(res)
13220	if err := googleapi.CheckResponse(res); err != nil {
13221		return nil, err
13222	}
13223	ret := &Operation{
13224		ServerResponse: googleapi.ServerResponse{
13225			Header:         res.Header,
13226			HTTPStatusCode: res.StatusCode,
13227		},
13228	}
13229	target := &ret
13230	if err := gensupport.DecodeResponse(target, res); err != nil {
13231		return nil, err
13232	}
13233	return ret, nil
13234	// {
13235	//   "description": "Sets the NodeManagement options for a node pool.",
13236	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setManagement",
13237	//   "httpMethod": "POST",
13238	//   "id": "container.projects.zones.clusters.nodePools.setManagement",
13239	//   "parameterOrder": [
13240	//     "projectId",
13241	//     "zone",
13242	//     "clusterId",
13243	//     "nodePoolId"
13244	//   ],
13245	//   "parameters": {
13246	//     "clusterId": {
13247	//       "description": "Deprecated. The name of the cluster to update.\nThis field has been deprecated and replaced by the name field.",
13248	//       "location": "path",
13249	//       "required": true,
13250	//       "type": "string"
13251	//     },
13252	//     "nodePoolId": {
13253	//       "description": "Deprecated. The name of the node pool to update.\nThis field has been deprecated and replaced by the name field.",
13254	//       "location": "path",
13255	//       "required": true,
13256	//       "type": "string"
13257	//     },
13258	//     "projectId": {
13259	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
13260	//       "location": "path",
13261	//       "required": true,
13262	//       "type": "string"
13263	//     },
13264	//     "zone": {
13265	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
13266	//       "location": "path",
13267	//       "required": true,
13268	//       "type": "string"
13269	//     }
13270	//   },
13271	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setManagement",
13272	//   "request": {
13273	//     "$ref": "SetNodePoolManagementRequest"
13274	//   },
13275	//   "response": {
13276	//     "$ref": "Operation"
13277	//   },
13278	//   "scopes": [
13279	//     "https://www.googleapis.com/auth/cloud-platform"
13280	//   ]
13281	// }
13282
13283}
13284
13285// method id "container.projects.zones.clusters.nodePools.setSize":
13286
13287type ProjectsZonesClustersNodePoolsSetSizeCall struct {
13288	s                      *Service
13289	projectId              string
13290	zone                   string
13291	clusterId              string
13292	nodePoolId             string
13293	setnodepoolsizerequest *SetNodePoolSizeRequest
13294	urlParams_             gensupport.URLParams
13295	ctx_                   context.Context
13296	header_                http.Header
13297}
13298
13299// SetSize: Sets the size for a specific node pool.
13300func (r *ProjectsZonesClustersNodePoolsService) SetSize(projectId string, zone string, clusterId string, nodePoolId string, setnodepoolsizerequest *SetNodePoolSizeRequest) *ProjectsZonesClustersNodePoolsSetSizeCall {
13301	c := &ProjectsZonesClustersNodePoolsSetSizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13302	c.projectId = projectId
13303	c.zone = zone
13304	c.clusterId = clusterId
13305	c.nodePoolId = nodePoolId
13306	c.setnodepoolsizerequest = setnodepoolsizerequest
13307	return c
13308}
13309
13310// Fields allows partial responses to be retrieved. See
13311// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13312// for more information.
13313func (c *ProjectsZonesClustersNodePoolsSetSizeCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersNodePoolsSetSizeCall {
13314	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13315	return c
13316}
13317
13318// Context sets the context to be used in this call's Do method. Any
13319// pending HTTP request will be aborted if the provided context is
13320// canceled.
13321func (c *ProjectsZonesClustersNodePoolsSetSizeCall) Context(ctx context.Context) *ProjectsZonesClustersNodePoolsSetSizeCall {
13322	c.ctx_ = ctx
13323	return c
13324}
13325
13326// Header returns an http.Header that can be modified by the caller to
13327// add HTTP headers to the request.
13328func (c *ProjectsZonesClustersNodePoolsSetSizeCall) Header() http.Header {
13329	if c.header_ == nil {
13330		c.header_ = make(http.Header)
13331	}
13332	return c.header_
13333}
13334
13335func (c *ProjectsZonesClustersNodePoolsSetSizeCall) doRequest(alt string) (*http.Response, error) {
13336	reqHeaders := make(http.Header)
13337	for k, v := range c.header_ {
13338		reqHeaders[k] = v
13339	}
13340	reqHeaders.Set("User-Agent", c.s.userAgent())
13341	var body io.Reader = nil
13342	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setnodepoolsizerequest)
13343	if err != nil {
13344		return nil, err
13345	}
13346	reqHeaders.Set("Content-Type", "application/json")
13347	c.urlParams_.Set("alt", alt)
13348	c.urlParams_.Set("prettyPrint", "false")
13349	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setSize")
13350	urls += "?" + c.urlParams_.Encode()
13351	req, err := http.NewRequest("POST", urls, body)
13352	if err != nil {
13353		return nil, err
13354	}
13355	req.Header = reqHeaders
13356	googleapi.Expand(req.URL, map[string]string{
13357		"projectId":  c.projectId,
13358		"zone":       c.zone,
13359		"clusterId":  c.clusterId,
13360		"nodePoolId": c.nodePoolId,
13361	})
13362	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13363}
13364
13365// Do executes the "container.projects.zones.clusters.nodePools.setSize" call.
13366// Exactly one of *Operation or error will be non-nil. Any non-2xx
13367// status code is an error. Response headers are in either
13368// *Operation.ServerResponse.Header or (if a response was returned at
13369// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
13370// to check whether the returned error was because
13371// http.StatusNotModified was returned.
13372func (c *ProjectsZonesClustersNodePoolsSetSizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
13373	gensupport.SetOptions(c.urlParams_, opts...)
13374	res, err := c.doRequest("json")
13375	if res != nil && res.StatusCode == http.StatusNotModified {
13376		if res.Body != nil {
13377			res.Body.Close()
13378		}
13379		return nil, &googleapi.Error{
13380			Code:   res.StatusCode,
13381			Header: res.Header,
13382		}
13383	}
13384	if err != nil {
13385		return nil, err
13386	}
13387	defer googleapi.CloseBody(res)
13388	if err := googleapi.CheckResponse(res); err != nil {
13389		return nil, err
13390	}
13391	ret := &Operation{
13392		ServerResponse: googleapi.ServerResponse{
13393			Header:         res.Header,
13394			HTTPStatusCode: res.StatusCode,
13395		},
13396	}
13397	target := &ret
13398	if err := gensupport.DecodeResponse(target, res); err != nil {
13399		return nil, err
13400	}
13401	return ret, nil
13402	// {
13403	//   "description": "Sets the size for a specific node pool.",
13404	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setSize",
13405	//   "httpMethod": "POST",
13406	//   "id": "container.projects.zones.clusters.nodePools.setSize",
13407	//   "parameterOrder": [
13408	//     "projectId",
13409	//     "zone",
13410	//     "clusterId",
13411	//     "nodePoolId"
13412	//   ],
13413	//   "parameters": {
13414	//     "clusterId": {
13415	//       "description": "Deprecated. The name of the cluster to update.\nThis field has been deprecated and replaced by the name field.",
13416	//       "location": "path",
13417	//       "required": true,
13418	//       "type": "string"
13419	//     },
13420	//     "nodePoolId": {
13421	//       "description": "Deprecated. The name of the node pool to update.\nThis field has been deprecated and replaced by the name field.",
13422	//       "location": "path",
13423	//       "required": true,
13424	//       "type": "string"
13425	//     },
13426	//     "projectId": {
13427	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
13428	//       "location": "path",
13429	//       "required": true,
13430	//       "type": "string"
13431	//     },
13432	//     "zone": {
13433	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
13434	//       "location": "path",
13435	//       "required": true,
13436	//       "type": "string"
13437	//     }
13438	//   },
13439	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setSize",
13440	//   "request": {
13441	//     "$ref": "SetNodePoolSizeRequest"
13442	//   },
13443	//   "response": {
13444	//     "$ref": "Operation"
13445	//   },
13446	//   "scopes": [
13447	//     "https://www.googleapis.com/auth/cloud-platform"
13448	//   ]
13449	// }
13450
13451}
13452
13453// method id "container.projects.zones.clusters.nodePools.update":
13454
13455type ProjectsZonesClustersNodePoolsUpdateCall struct {
13456	s                     *Service
13457	projectId             string
13458	zone                  string
13459	clusterId             string
13460	nodePoolId            string
13461	updatenodepoolrequest *UpdateNodePoolRequest
13462	urlParams_            gensupport.URLParams
13463	ctx_                  context.Context
13464	header_               http.Header
13465}
13466
13467// Update: Updates the version and/or image type for the specified node
13468// pool.
13469func (r *ProjectsZonesClustersNodePoolsService) Update(projectId string, zone string, clusterId string, nodePoolId string, updatenodepoolrequest *UpdateNodePoolRequest) *ProjectsZonesClustersNodePoolsUpdateCall {
13470	c := &ProjectsZonesClustersNodePoolsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13471	c.projectId = projectId
13472	c.zone = zone
13473	c.clusterId = clusterId
13474	c.nodePoolId = nodePoolId
13475	c.updatenodepoolrequest = updatenodepoolrequest
13476	return c
13477}
13478
13479// Fields allows partial responses to be retrieved. See
13480// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13481// for more information.
13482func (c *ProjectsZonesClustersNodePoolsUpdateCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersNodePoolsUpdateCall {
13483	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13484	return c
13485}
13486
13487// Context sets the context to be used in this call's Do method. Any
13488// pending HTTP request will be aborted if the provided context is
13489// canceled.
13490func (c *ProjectsZonesClustersNodePoolsUpdateCall) Context(ctx context.Context) *ProjectsZonesClustersNodePoolsUpdateCall {
13491	c.ctx_ = ctx
13492	return c
13493}
13494
13495// Header returns an http.Header that can be modified by the caller to
13496// add HTTP headers to the request.
13497func (c *ProjectsZonesClustersNodePoolsUpdateCall) Header() http.Header {
13498	if c.header_ == nil {
13499		c.header_ = make(http.Header)
13500	}
13501	return c.header_
13502}
13503
13504func (c *ProjectsZonesClustersNodePoolsUpdateCall) doRequest(alt string) (*http.Response, error) {
13505	reqHeaders := make(http.Header)
13506	for k, v := range c.header_ {
13507		reqHeaders[k] = v
13508	}
13509	reqHeaders.Set("User-Agent", c.s.userAgent())
13510	var body io.Reader = nil
13511	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updatenodepoolrequest)
13512	if err != nil {
13513		return nil, err
13514	}
13515	reqHeaders.Set("Content-Type", "application/json")
13516	c.urlParams_.Set("alt", alt)
13517	c.urlParams_.Set("prettyPrint", "false")
13518	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/update")
13519	urls += "?" + c.urlParams_.Encode()
13520	req, err := http.NewRequest("POST", urls, body)
13521	if err != nil {
13522		return nil, err
13523	}
13524	req.Header = reqHeaders
13525	googleapi.Expand(req.URL, map[string]string{
13526		"projectId":  c.projectId,
13527		"zone":       c.zone,
13528		"clusterId":  c.clusterId,
13529		"nodePoolId": c.nodePoolId,
13530	})
13531	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13532}
13533
13534// Do executes the "container.projects.zones.clusters.nodePools.update" call.
13535// Exactly one of *Operation or error will be non-nil. Any non-2xx
13536// status code is an error. Response headers are in either
13537// *Operation.ServerResponse.Header or (if a response was returned at
13538// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
13539// to check whether the returned error was because
13540// http.StatusNotModified was returned.
13541func (c *ProjectsZonesClustersNodePoolsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
13542	gensupport.SetOptions(c.urlParams_, opts...)
13543	res, err := c.doRequest("json")
13544	if res != nil && res.StatusCode == http.StatusNotModified {
13545		if res.Body != nil {
13546			res.Body.Close()
13547		}
13548		return nil, &googleapi.Error{
13549			Code:   res.StatusCode,
13550			Header: res.Header,
13551		}
13552	}
13553	if err != nil {
13554		return nil, err
13555	}
13556	defer googleapi.CloseBody(res)
13557	if err := googleapi.CheckResponse(res); err != nil {
13558		return nil, err
13559	}
13560	ret := &Operation{
13561		ServerResponse: googleapi.ServerResponse{
13562			Header:         res.Header,
13563			HTTPStatusCode: res.StatusCode,
13564		},
13565	}
13566	target := &ret
13567	if err := gensupport.DecodeResponse(target, res); err != nil {
13568		return nil, err
13569	}
13570	return ret, nil
13571	// {
13572	//   "description": "Updates the version and/or image type for the specified node pool.",
13573	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/update",
13574	//   "httpMethod": "POST",
13575	//   "id": "container.projects.zones.clusters.nodePools.update",
13576	//   "parameterOrder": [
13577	//     "projectId",
13578	//     "zone",
13579	//     "clusterId",
13580	//     "nodePoolId"
13581	//   ],
13582	//   "parameters": {
13583	//     "clusterId": {
13584	//       "description": "Deprecated. The name of the cluster to upgrade.\nThis field has been deprecated and replaced by the name field.",
13585	//       "location": "path",
13586	//       "required": true,
13587	//       "type": "string"
13588	//     },
13589	//     "nodePoolId": {
13590	//       "description": "Deprecated. The name of the node pool to upgrade.\nThis field has been deprecated and replaced by the name field.",
13591	//       "location": "path",
13592	//       "required": true,
13593	//       "type": "string"
13594	//     },
13595	//     "projectId": {
13596	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
13597	//       "location": "path",
13598	//       "required": true,
13599	//       "type": "string"
13600	//     },
13601	//     "zone": {
13602	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
13603	//       "location": "path",
13604	//       "required": true,
13605	//       "type": "string"
13606	//     }
13607	//   },
13608	//   "path": "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/update",
13609	//   "request": {
13610	//     "$ref": "UpdateNodePoolRequest"
13611	//   },
13612	//   "response": {
13613	//     "$ref": "Operation"
13614	//   },
13615	//   "scopes": [
13616	//     "https://www.googleapis.com/auth/cloud-platform"
13617	//   ]
13618	// }
13619
13620}
13621
13622// method id "container.projects.zones.operations.cancel":
13623
13624type ProjectsZonesOperationsCancelCall struct {
13625	s                      *Service
13626	projectId              string
13627	zone                   string
13628	operationId            string
13629	canceloperationrequest *CancelOperationRequest
13630	urlParams_             gensupport.URLParams
13631	ctx_                   context.Context
13632	header_                http.Header
13633}
13634
13635// Cancel: Cancels the specified operation.
13636func (r *ProjectsZonesOperationsService) Cancel(projectId string, zone string, operationId string, canceloperationrequest *CancelOperationRequest) *ProjectsZonesOperationsCancelCall {
13637	c := &ProjectsZonesOperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13638	c.projectId = projectId
13639	c.zone = zone
13640	c.operationId = operationId
13641	c.canceloperationrequest = canceloperationrequest
13642	return c
13643}
13644
13645// Fields allows partial responses to be retrieved. See
13646// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13647// for more information.
13648func (c *ProjectsZonesOperationsCancelCall) Fields(s ...googleapi.Field) *ProjectsZonesOperationsCancelCall {
13649	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13650	return c
13651}
13652
13653// Context sets the context to be used in this call's Do method. Any
13654// pending HTTP request will be aborted if the provided context is
13655// canceled.
13656func (c *ProjectsZonesOperationsCancelCall) Context(ctx context.Context) *ProjectsZonesOperationsCancelCall {
13657	c.ctx_ = ctx
13658	return c
13659}
13660
13661// Header returns an http.Header that can be modified by the caller to
13662// add HTTP headers to the request.
13663func (c *ProjectsZonesOperationsCancelCall) Header() http.Header {
13664	if c.header_ == nil {
13665		c.header_ = make(http.Header)
13666	}
13667	return c.header_
13668}
13669
13670func (c *ProjectsZonesOperationsCancelCall) doRequest(alt string) (*http.Response, error) {
13671	reqHeaders := make(http.Header)
13672	for k, v := range c.header_ {
13673		reqHeaders[k] = v
13674	}
13675	reqHeaders.Set("User-Agent", c.s.userAgent())
13676	var body io.Reader = nil
13677	body, err := googleapi.WithoutDataWrapper.JSONReader(c.canceloperationrequest)
13678	if err != nil {
13679		return nil, err
13680	}
13681	reqHeaders.Set("Content-Type", "application/json")
13682	c.urlParams_.Set("alt", alt)
13683	c.urlParams_.Set("prettyPrint", "false")
13684	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/operations/{operationId}:cancel")
13685	urls += "?" + c.urlParams_.Encode()
13686	req, err := http.NewRequest("POST", urls, body)
13687	if err != nil {
13688		return nil, err
13689	}
13690	req.Header = reqHeaders
13691	googleapi.Expand(req.URL, map[string]string{
13692		"projectId":   c.projectId,
13693		"zone":        c.zone,
13694		"operationId": c.operationId,
13695	})
13696	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13697}
13698
13699// Do executes the "container.projects.zones.operations.cancel" call.
13700// Exactly one of *Empty or error will be non-nil. Any non-2xx status
13701// code is an error. Response headers are in either
13702// *Empty.ServerResponse.Header or (if a response was returned at all)
13703// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
13704// check whether the returned error was because http.StatusNotModified
13705// was returned.
13706func (c *ProjectsZonesOperationsCancelCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
13707	gensupport.SetOptions(c.urlParams_, opts...)
13708	res, err := c.doRequest("json")
13709	if res != nil && res.StatusCode == http.StatusNotModified {
13710		if res.Body != nil {
13711			res.Body.Close()
13712		}
13713		return nil, &googleapi.Error{
13714			Code:   res.StatusCode,
13715			Header: res.Header,
13716		}
13717	}
13718	if err != nil {
13719		return nil, err
13720	}
13721	defer googleapi.CloseBody(res)
13722	if err := googleapi.CheckResponse(res); err != nil {
13723		return nil, err
13724	}
13725	ret := &Empty{
13726		ServerResponse: googleapi.ServerResponse{
13727			Header:         res.Header,
13728			HTTPStatusCode: res.StatusCode,
13729		},
13730	}
13731	target := &ret
13732	if err := gensupport.DecodeResponse(target, res); err != nil {
13733		return nil, err
13734	}
13735	return ret, nil
13736	// {
13737	//   "description": "Cancels the specified operation.",
13738	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/operations/{operationId}:cancel",
13739	//   "httpMethod": "POST",
13740	//   "id": "container.projects.zones.operations.cancel",
13741	//   "parameterOrder": [
13742	//     "projectId",
13743	//     "zone",
13744	//     "operationId"
13745	//   ],
13746	//   "parameters": {
13747	//     "operationId": {
13748	//       "description": "Deprecated. The server-assigned `name` of the operation.\nThis field has been deprecated and replaced by the name field.",
13749	//       "location": "path",
13750	//       "required": true,
13751	//       "type": "string"
13752	//     },
13753	//     "projectId": {
13754	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
13755	//       "location": "path",
13756	//       "required": true,
13757	//       "type": "string"
13758	//     },
13759	//     "zone": {
13760	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the operation resides.\nThis field has been deprecated and replaced by the name field.",
13761	//       "location": "path",
13762	//       "required": true,
13763	//       "type": "string"
13764	//     }
13765	//   },
13766	//   "path": "v1/projects/{projectId}/zones/{zone}/operations/{operationId}:cancel",
13767	//   "request": {
13768	//     "$ref": "CancelOperationRequest"
13769	//   },
13770	//   "response": {
13771	//     "$ref": "Empty"
13772	//   },
13773	//   "scopes": [
13774	//     "https://www.googleapis.com/auth/cloud-platform"
13775	//   ]
13776	// }
13777
13778}
13779
13780// method id "container.projects.zones.operations.get":
13781
13782type ProjectsZonesOperationsGetCall struct {
13783	s            *Service
13784	projectId    string
13785	zone         string
13786	operationId  string
13787	urlParams_   gensupport.URLParams
13788	ifNoneMatch_ string
13789	ctx_         context.Context
13790	header_      http.Header
13791}
13792
13793// Get: Gets the specified operation.
13794func (r *ProjectsZonesOperationsService) Get(projectId string, zone string, operationId string) *ProjectsZonesOperationsGetCall {
13795	c := &ProjectsZonesOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13796	c.projectId = projectId
13797	c.zone = zone
13798	c.operationId = operationId
13799	return c
13800}
13801
13802// Name sets the optional parameter "name": The name (project, location,
13803// operation id) of the operation to get.
13804// Specified in the format 'projects/*/locations/*/operations/*'.
13805func (c *ProjectsZonesOperationsGetCall) Name(name string) *ProjectsZonesOperationsGetCall {
13806	c.urlParams_.Set("name", name)
13807	return c
13808}
13809
13810// Fields allows partial responses to be retrieved. See
13811// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13812// for more information.
13813func (c *ProjectsZonesOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsZonesOperationsGetCall {
13814	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13815	return c
13816}
13817
13818// IfNoneMatch sets the optional parameter which makes the operation
13819// fail if the object's ETag matches the given value. This is useful for
13820// getting updates only after the object has changed since the last
13821// request. Use googleapi.IsNotModified to check whether the response
13822// error from Do is the result of In-None-Match.
13823func (c *ProjectsZonesOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsZonesOperationsGetCall {
13824	c.ifNoneMatch_ = entityTag
13825	return c
13826}
13827
13828// Context sets the context to be used in this call's Do method. Any
13829// pending HTTP request will be aborted if the provided context is
13830// canceled.
13831func (c *ProjectsZonesOperationsGetCall) Context(ctx context.Context) *ProjectsZonesOperationsGetCall {
13832	c.ctx_ = ctx
13833	return c
13834}
13835
13836// Header returns an http.Header that can be modified by the caller to
13837// add HTTP headers to the request.
13838func (c *ProjectsZonesOperationsGetCall) Header() http.Header {
13839	if c.header_ == nil {
13840		c.header_ = make(http.Header)
13841	}
13842	return c.header_
13843}
13844
13845func (c *ProjectsZonesOperationsGetCall) doRequest(alt string) (*http.Response, error) {
13846	reqHeaders := make(http.Header)
13847	for k, v := range c.header_ {
13848		reqHeaders[k] = v
13849	}
13850	reqHeaders.Set("User-Agent", c.s.userAgent())
13851	if c.ifNoneMatch_ != "" {
13852		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
13853	}
13854	var body io.Reader = nil
13855	c.urlParams_.Set("alt", alt)
13856	c.urlParams_.Set("prettyPrint", "false")
13857	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/operations/{operationId}")
13858	urls += "?" + c.urlParams_.Encode()
13859	req, err := http.NewRequest("GET", urls, body)
13860	if err != nil {
13861		return nil, err
13862	}
13863	req.Header = reqHeaders
13864	googleapi.Expand(req.URL, map[string]string{
13865		"projectId":   c.projectId,
13866		"zone":        c.zone,
13867		"operationId": c.operationId,
13868	})
13869	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13870}
13871
13872// Do executes the "container.projects.zones.operations.get" call.
13873// Exactly one of *Operation or error will be non-nil. Any non-2xx
13874// status code is an error. Response headers are in either
13875// *Operation.ServerResponse.Header or (if a response was returned at
13876// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
13877// to check whether the returned error was because
13878// http.StatusNotModified was returned.
13879func (c *ProjectsZonesOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
13880	gensupport.SetOptions(c.urlParams_, opts...)
13881	res, err := c.doRequest("json")
13882	if res != nil && res.StatusCode == http.StatusNotModified {
13883		if res.Body != nil {
13884			res.Body.Close()
13885		}
13886		return nil, &googleapi.Error{
13887			Code:   res.StatusCode,
13888			Header: res.Header,
13889		}
13890	}
13891	if err != nil {
13892		return nil, err
13893	}
13894	defer googleapi.CloseBody(res)
13895	if err := googleapi.CheckResponse(res); err != nil {
13896		return nil, err
13897	}
13898	ret := &Operation{
13899		ServerResponse: googleapi.ServerResponse{
13900			Header:         res.Header,
13901			HTTPStatusCode: res.StatusCode,
13902		},
13903	}
13904	target := &ret
13905	if err := gensupport.DecodeResponse(target, res); err != nil {
13906		return nil, err
13907	}
13908	return ret, nil
13909	// {
13910	//   "description": "Gets the specified operation.",
13911	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/operations/{operationId}",
13912	//   "httpMethod": "GET",
13913	//   "id": "container.projects.zones.operations.get",
13914	//   "parameterOrder": [
13915	//     "projectId",
13916	//     "zone",
13917	//     "operationId"
13918	//   ],
13919	//   "parameters": {
13920	//     "name": {
13921	//       "description": "The name (project, location, operation id) of the operation to get.\nSpecified in the format 'projects/*/locations/*/operations/*'.",
13922	//       "location": "query",
13923	//       "type": "string"
13924	//     },
13925	//     "operationId": {
13926	//       "description": "Deprecated. The server-assigned `name` of the operation.\nThis field has been deprecated and replaced by the name field.",
13927	//       "location": "path",
13928	//       "required": true,
13929	//       "type": "string"
13930	//     },
13931	//     "projectId": {
13932	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the name field.",
13933	//       "location": "path",
13934	//       "required": true,
13935	//       "type": "string"
13936	//     },
13937	//     "zone": {
13938	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) in which the cluster\nresides.\nThis field has been deprecated and replaced by the name field.",
13939	//       "location": "path",
13940	//       "required": true,
13941	//       "type": "string"
13942	//     }
13943	//   },
13944	//   "path": "v1/projects/{projectId}/zones/{zone}/operations/{operationId}",
13945	//   "response": {
13946	//     "$ref": "Operation"
13947	//   },
13948	//   "scopes": [
13949	//     "https://www.googleapis.com/auth/cloud-platform"
13950	//   ]
13951	// }
13952
13953}
13954
13955// method id "container.projects.zones.operations.list":
13956
13957type ProjectsZonesOperationsListCall struct {
13958	s            *Service
13959	projectId    string
13960	zone         string
13961	urlParams_   gensupport.URLParams
13962	ifNoneMatch_ string
13963	ctx_         context.Context
13964	header_      http.Header
13965}
13966
13967// List: Lists all operations in a project in a specific zone or all
13968// zones.
13969func (r *ProjectsZonesOperationsService) List(projectId string, zone string) *ProjectsZonesOperationsListCall {
13970	c := &ProjectsZonesOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13971	c.projectId = projectId
13972	c.zone = zone
13973	return c
13974}
13975
13976// Parent sets the optional parameter "parent": The parent (project and
13977// location) where the operations will be listed.
13978// Specified in the format 'projects/*/locations/*'.
13979// Location "-" matches all zones and all regions.
13980func (c *ProjectsZonesOperationsListCall) Parent(parent string) *ProjectsZonesOperationsListCall {
13981	c.urlParams_.Set("parent", parent)
13982	return c
13983}
13984
13985// Fields allows partial responses to be retrieved. See
13986// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13987// for more information.
13988func (c *ProjectsZonesOperationsListCall) Fields(s ...googleapi.Field) *ProjectsZonesOperationsListCall {
13989	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13990	return c
13991}
13992
13993// IfNoneMatch sets the optional parameter which makes the operation
13994// fail if the object's ETag matches the given value. This is useful for
13995// getting updates only after the object has changed since the last
13996// request. Use googleapi.IsNotModified to check whether the response
13997// error from Do is the result of In-None-Match.
13998func (c *ProjectsZonesOperationsListCall) IfNoneMatch(entityTag string) *ProjectsZonesOperationsListCall {
13999	c.ifNoneMatch_ = entityTag
14000	return c
14001}
14002
14003// Context sets the context to be used in this call's Do method. Any
14004// pending HTTP request will be aborted if the provided context is
14005// canceled.
14006func (c *ProjectsZonesOperationsListCall) Context(ctx context.Context) *ProjectsZonesOperationsListCall {
14007	c.ctx_ = ctx
14008	return c
14009}
14010
14011// Header returns an http.Header that can be modified by the caller to
14012// add HTTP headers to the request.
14013func (c *ProjectsZonesOperationsListCall) Header() http.Header {
14014	if c.header_ == nil {
14015		c.header_ = make(http.Header)
14016	}
14017	return c.header_
14018}
14019
14020func (c *ProjectsZonesOperationsListCall) doRequest(alt string) (*http.Response, error) {
14021	reqHeaders := make(http.Header)
14022	for k, v := range c.header_ {
14023		reqHeaders[k] = v
14024	}
14025	reqHeaders.Set("User-Agent", c.s.userAgent())
14026	if c.ifNoneMatch_ != "" {
14027		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
14028	}
14029	var body io.Reader = nil
14030	c.urlParams_.Set("alt", alt)
14031	c.urlParams_.Set("prettyPrint", "false")
14032	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/operations")
14033	urls += "?" + c.urlParams_.Encode()
14034	req, err := http.NewRequest("GET", urls, body)
14035	if err != nil {
14036		return nil, err
14037	}
14038	req.Header = reqHeaders
14039	googleapi.Expand(req.URL, map[string]string{
14040		"projectId": c.projectId,
14041		"zone":      c.zone,
14042	})
14043	return gensupport.SendRequest(c.ctx_, c.s.client, req)
14044}
14045
14046// Do executes the "container.projects.zones.operations.list" call.
14047// Exactly one of *ListOperationsResponse or error will be non-nil. Any
14048// non-2xx status code is an error. Response headers are in either
14049// *ListOperationsResponse.ServerResponse.Header or (if a response was
14050// returned at all) in error.(*googleapi.Error).Header. Use
14051// googleapi.IsNotModified to check whether the returned error was
14052// because http.StatusNotModified was returned.
14053func (c *ProjectsZonesOperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) {
14054	gensupport.SetOptions(c.urlParams_, opts...)
14055	res, err := c.doRequest("json")
14056	if res != nil && res.StatusCode == http.StatusNotModified {
14057		if res.Body != nil {
14058			res.Body.Close()
14059		}
14060		return nil, &googleapi.Error{
14061			Code:   res.StatusCode,
14062			Header: res.Header,
14063		}
14064	}
14065	if err != nil {
14066		return nil, err
14067	}
14068	defer googleapi.CloseBody(res)
14069	if err := googleapi.CheckResponse(res); err != nil {
14070		return nil, err
14071	}
14072	ret := &ListOperationsResponse{
14073		ServerResponse: googleapi.ServerResponse{
14074			Header:         res.Header,
14075			HTTPStatusCode: res.StatusCode,
14076		},
14077	}
14078	target := &ret
14079	if err := gensupport.DecodeResponse(target, res); err != nil {
14080		return nil, err
14081	}
14082	return ret, nil
14083	// {
14084	//   "description": "Lists all operations in a project in a specific zone or all zones.",
14085	//   "flatPath": "v1/projects/{projectId}/zones/{zone}/operations",
14086	//   "httpMethod": "GET",
14087	//   "id": "container.projects.zones.operations.list",
14088	//   "parameterOrder": [
14089	//     "projectId",
14090	//     "zone"
14091	//   ],
14092	//   "parameters": {
14093	//     "parent": {
14094	//       "description": "The parent (project and location) where the operations will be listed.\nSpecified in the format 'projects/*/locations/*'.\nLocation \"-\" matches all zones and all regions.",
14095	//       "location": "query",
14096	//       "type": "string"
14097	//     },
14098	//     "projectId": {
14099	//       "description": "Deprecated. The Google Developers Console [project ID or project\nnumber](https://support.google.com/cloud/answer/6158840).\nThis field has been deprecated and replaced by the parent field.",
14100	//       "location": "path",
14101	//       "required": true,
14102	//       "type": "string"
14103	//     },
14104	//     "zone": {
14105	//       "description": "Deprecated. The name of the Google Compute Engine\n[zone](/compute/docs/zones#available) to return operations for, or `-` for\nall zones. This field has been deprecated and replaced by the parent field.",
14106	//       "location": "path",
14107	//       "required": true,
14108	//       "type": "string"
14109	//     }
14110	//   },
14111	//   "path": "v1/projects/{projectId}/zones/{zone}/operations",
14112	//   "response": {
14113	//     "$ref": "ListOperationsResponse"
14114	//   },
14115	//   "scopes": [
14116	//     "https://www.googleapis.com/auth/cloud-platform"
14117	//   ]
14118	// }
14119
14120}
14121