...

Source file src/google.golang.org/api/container/v1/container-gen.go

Documentation: google.golang.org/api/container/v1

     1  // Copyright 2024 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  // # Library status
    12  //
    13  // These client libraries are officially supported by Google. However, this
    14  // library is considered complete and is in maintenance mode. This means
    15  // that we will address critical bugs and security issues but will not add
    16  // any new features.
    17  //
    18  // When possible, we recommend using our newer
    19  // [Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go)
    20  // that are still actively being worked and iterated on.
    21  //
    22  // # Creating a client
    23  //
    24  // Usage example:
    25  //
    26  //	import "google.golang.org/api/container/v1"
    27  //	...
    28  //	ctx := context.Background()
    29  //	containerService, err := container.NewService(ctx)
    30  //
    31  // In this example, Google Application Default Credentials are used for
    32  // authentication. For information on how to create and obtain Application
    33  // Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
    34  //
    35  // # Other authentication options
    36  //
    37  // To use an API key for authentication (note: some APIs do not support API
    38  // keys), use [google.golang.org/api/option.WithAPIKey]:
    39  //
    40  //	containerService, err := container.NewService(ctx, option.WithAPIKey("AIza..."))
    41  //
    42  // To use an OAuth token (e.g., a user token obtained via a three-legged OAuth
    43  // flow, use [google.golang.org/api/option.WithTokenSource]:
    44  //
    45  //	config := &oauth2.Config{...}
    46  //	// ...
    47  //	token, err := config.Exchange(ctx, ...)
    48  //	containerService, err := container.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
    49  //
    50  // See [google.golang.org/api/option.ClientOption] for details on options.
    51  package container // import "google.golang.org/api/container/v1"
    52  
    53  import (
    54  	"bytes"
    55  	"context"
    56  	"encoding/json"
    57  	"errors"
    58  	"fmt"
    59  	"io"
    60  	"net/http"
    61  	"net/url"
    62  	"strconv"
    63  	"strings"
    64  
    65  	googleapi "google.golang.org/api/googleapi"
    66  	internal "google.golang.org/api/internal"
    67  	gensupport "google.golang.org/api/internal/gensupport"
    68  	option "google.golang.org/api/option"
    69  	internaloption "google.golang.org/api/option/internaloption"
    70  	htransport "google.golang.org/api/transport/http"
    71  )
    72  
    73  // Always reference these packages, just in case the auto-generated code
    74  // below doesn't.
    75  var _ = bytes.NewBuffer
    76  var _ = strconv.Itoa
    77  var _ = fmt.Sprintf
    78  var _ = json.NewDecoder
    79  var _ = io.Copy
    80  var _ = url.Parse
    81  var _ = gensupport.MarshalJSON
    82  var _ = googleapi.Version
    83  var _ = errors.New
    84  var _ = strings.Replace
    85  var _ = context.Canceled
    86  var _ = internaloption.WithDefaultEndpoint
    87  var _ = internal.Version
    88  
    89  const apiId = "container:v1"
    90  const apiName = "container"
    91  const apiVersion = "v1"
    92  const basePath = "https://container.googleapis.com/"
    93  const basePathTemplate = "https://container.UNIVERSE_DOMAIN/"
    94  const mtlsBasePath = "https://container.mtls.googleapis.com/"
    95  
    96  // OAuth2 scopes used by this API.
    97  const (
    98  	// See, edit, configure, and delete your Google Cloud data and see the email
    99  	// address for your Google Account.
   100  	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
   101  )
   102  
   103  // NewService creates a new Service.
   104  func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
   105  	scopesOption := internaloption.WithDefaultScopes(
   106  		"https://www.googleapis.com/auth/cloud-platform",
   107  	)
   108  	// NOTE: prepend, so we don't override user-specified scopes.
   109  	opts = append([]option.ClientOption{scopesOption}, opts...)
   110  	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
   111  	opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate))
   112  	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
   113  	opts = append(opts, internaloption.EnableNewAuthLibrary())
   114  	client, endpoint, err := htransport.NewClient(ctx, opts...)
   115  	if err != nil {
   116  		return nil, err
   117  	}
   118  	s, err := New(client)
   119  	if err != nil {
   120  		return nil, err
   121  	}
   122  	if endpoint != "" {
   123  		s.BasePath = endpoint
   124  	}
   125  	return s, nil
   126  }
   127  
   128  // New creates a new Service. It uses the provided http.Client for requests.
   129  //
   130  // Deprecated: please use NewService instead.
   131  // To provide a custom HTTP client, use option.WithHTTPClient.
   132  // If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
   133  func New(client *http.Client) (*Service, error) {
   134  	if client == nil {
   135  		return nil, errors.New("client is nil")
   136  	}
   137  	s := &Service{client: client, BasePath: basePath}
   138  	s.Projects = NewProjectsService(s)
   139  	return s, nil
   140  }
   141  
   142  type Service struct {
   143  	client    *http.Client
   144  	BasePath  string // API endpoint base URL
   145  	UserAgent string // optional additional User-Agent fragment
   146  
   147  	Projects *ProjectsService
   148  }
   149  
   150  func (s *Service) userAgent() string {
   151  	if s.UserAgent == "" {
   152  		return googleapi.UserAgent
   153  	}
   154  	return googleapi.UserAgent + " " + s.UserAgent
   155  }
   156  
   157  func NewProjectsService(s *Service) *ProjectsService {
   158  	rs := &ProjectsService{s: s}
   159  	rs.Aggregated = NewProjectsAggregatedService(s)
   160  	rs.Locations = NewProjectsLocationsService(s)
   161  	rs.Zones = NewProjectsZonesService(s)
   162  	return rs
   163  }
   164  
   165  type ProjectsService struct {
   166  	s *Service
   167  
   168  	Aggregated *ProjectsAggregatedService
   169  
   170  	Locations *ProjectsLocationsService
   171  
   172  	Zones *ProjectsZonesService
   173  }
   174  
   175  func NewProjectsAggregatedService(s *Service) *ProjectsAggregatedService {
   176  	rs := &ProjectsAggregatedService{s: s}
   177  	rs.UsableSubnetworks = NewProjectsAggregatedUsableSubnetworksService(s)
   178  	return rs
   179  }
   180  
   181  type ProjectsAggregatedService struct {
   182  	s *Service
   183  
   184  	UsableSubnetworks *ProjectsAggregatedUsableSubnetworksService
   185  }
   186  
   187  func NewProjectsAggregatedUsableSubnetworksService(s *Service) *ProjectsAggregatedUsableSubnetworksService {
   188  	rs := &ProjectsAggregatedUsableSubnetworksService{s: s}
   189  	return rs
   190  }
   191  
   192  type ProjectsAggregatedUsableSubnetworksService struct {
   193  	s *Service
   194  }
   195  
   196  func NewProjectsLocationsService(s *Service) *ProjectsLocationsService {
   197  	rs := &ProjectsLocationsService{s: s}
   198  	rs.Clusters = NewProjectsLocationsClustersService(s)
   199  	rs.Operations = NewProjectsLocationsOperationsService(s)
   200  	return rs
   201  }
   202  
   203  type ProjectsLocationsService struct {
   204  	s *Service
   205  
   206  	Clusters *ProjectsLocationsClustersService
   207  
   208  	Operations *ProjectsLocationsOperationsService
   209  }
   210  
   211  func NewProjectsLocationsClustersService(s *Service) *ProjectsLocationsClustersService {
   212  	rs := &ProjectsLocationsClustersService{s: s}
   213  	rs.NodePools = NewProjectsLocationsClustersNodePoolsService(s)
   214  	rs.WellKnown = NewProjectsLocationsClustersWellKnownService(s)
   215  	return rs
   216  }
   217  
   218  type ProjectsLocationsClustersService struct {
   219  	s *Service
   220  
   221  	NodePools *ProjectsLocationsClustersNodePoolsService
   222  
   223  	WellKnown *ProjectsLocationsClustersWellKnownService
   224  }
   225  
   226  func NewProjectsLocationsClustersNodePoolsService(s *Service) *ProjectsLocationsClustersNodePoolsService {
   227  	rs := &ProjectsLocationsClustersNodePoolsService{s: s}
   228  	return rs
   229  }
   230  
   231  type ProjectsLocationsClustersNodePoolsService struct {
   232  	s *Service
   233  }
   234  
   235  func NewProjectsLocationsClustersWellKnownService(s *Service) *ProjectsLocationsClustersWellKnownService {
   236  	rs := &ProjectsLocationsClustersWellKnownService{s: s}
   237  	return rs
   238  }
   239  
   240  type ProjectsLocationsClustersWellKnownService struct {
   241  	s *Service
   242  }
   243  
   244  func NewProjectsLocationsOperationsService(s *Service) *ProjectsLocationsOperationsService {
   245  	rs := &ProjectsLocationsOperationsService{s: s}
   246  	return rs
   247  }
   248  
   249  type ProjectsLocationsOperationsService struct {
   250  	s *Service
   251  }
   252  
   253  func NewProjectsZonesService(s *Service) *ProjectsZonesService {
   254  	rs := &ProjectsZonesService{s: s}
   255  	rs.Clusters = NewProjectsZonesClustersService(s)
   256  	rs.Operations = NewProjectsZonesOperationsService(s)
   257  	return rs
   258  }
   259  
   260  type ProjectsZonesService struct {
   261  	s *Service
   262  
   263  	Clusters *ProjectsZonesClustersService
   264  
   265  	Operations *ProjectsZonesOperationsService
   266  }
   267  
   268  func NewProjectsZonesClustersService(s *Service) *ProjectsZonesClustersService {
   269  	rs := &ProjectsZonesClustersService{s: s}
   270  	rs.NodePools = NewProjectsZonesClustersNodePoolsService(s)
   271  	return rs
   272  }
   273  
   274  type ProjectsZonesClustersService struct {
   275  	s *Service
   276  
   277  	NodePools *ProjectsZonesClustersNodePoolsService
   278  }
   279  
   280  func NewProjectsZonesClustersNodePoolsService(s *Service) *ProjectsZonesClustersNodePoolsService {
   281  	rs := &ProjectsZonesClustersNodePoolsService{s: s}
   282  	return rs
   283  }
   284  
   285  type ProjectsZonesClustersNodePoolsService struct {
   286  	s *Service
   287  }
   288  
   289  func NewProjectsZonesOperationsService(s *Service) *ProjectsZonesOperationsService {
   290  	rs := &ProjectsZonesOperationsService{s: s}
   291  	return rs
   292  }
   293  
   294  type ProjectsZonesOperationsService struct {
   295  	s *Service
   296  }
   297  
   298  // AcceleratorConfig: AcceleratorConfig represents a Hardware Accelerator
   299  // request.
   300  type AcceleratorConfig struct {
   301  	// AcceleratorCount: The number of the accelerator cards exposed to an
   302  	// instance.
   303  	AcceleratorCount int64 `json:"acceleratorCount,omitempty,string"`
   304  	// AcceleratorType: The accelerator type resource name. List of supported
   305  	// accelerators here (https://cloud.google.com/compute/docs/gpus)
   306  	AcceleratorType string `json:"acceleratorType,omitempty"`
   307  	// GpuDriverInstallationConfig: The configuration for auto installation of GPU
   308  	// driver.
   309  	GpuDriverInstallationConfig *GPUDriverInstallationConfig `json:"gpuDriverInstallationConfig,omitempty"`
   310  	// GpuPartitionSize: Size of partitions to create on the GPU. Valid values are
   311  	// described in the NVIDIA mig user guide
   312  	// (https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).
   313  	GpuPartitionSize string `json:"gpuPartitionSize,omitempty"`
   314  	// GpuSharingConfig: The configuration for GPU sharing options.
   315  	GpuSharingConfig *GPUSharingConfig `json:"gpuSharingConfig,omitempty"`
   316  	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
   317  	// unconditionally include in API requests. By default, fields with empty or
   318  	// default values are omitted from API requests. See
   319  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   320  	// details.
   321  	ForceSendFields []string `json:"-"`
   322  	// NullFields is a list of field names (e.g. "AcceleratorCount") to include in
   323  	// API requests with the JSON null value. By default, fields with empty values
   324  	// are omitted from API requests. See
   325  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   326  	NullFields []string `json:"-"`
   327  }
   328  
   329  func (s *AcceleratorConfig) MarshalJSON() ([]byte, error) {
   330  	type NoMethod AcceleratorConfig
   331  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   332  }
   333  
   334  // AdditionalNodeNetworkConfig: AdditionalNodeNetworkConfig is the
   335  // configuration for additional node networks within the NodeNetworkConfig
   336  // message
   337  type AdditionalNodeNetworkConfig struct {
   338  	// Network: Name of the VPC where the additional interface belongs
   339  	Network string `json:"network,omitempty"`
   340  	// Subnetwork: Name of the subnetwork where the additional interface belongs
   341  	Subnetwork string `json:"subnetwork,omitempty"`
   342  	// ForceSendFields is a list of field names (e.g. "Network") to unconditionally
   343  	// include in API requests. By default, fields with empty or default values are
   344  	// omitted from API requests. See
   345  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   346  	// details.
   347  	ForceSendFields []string `json:"-"`
   348  	// NullFields is a list of field names (e.g. "Network") to include in API
   349  	// requests with the JSON null value. By default, fields with empty values are
   350  	// omitted from API requests. See
   351  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   352  	NullFields []string `json:"-"`
   353  }
   354  
   355  func (s *AdditionalNodeNetworkConfig) MarshalJSON() ([]byte, error) {
   356  	type NoMethod AdditionalNodeNetworkConfig
   357  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   358  }
   359  
   360  // AdditionalPodNetworkConfig: AdditionalPodNetworkConfig is the configuration
   361  // for additional pod networks within the NodeNetworkConfig message
   362  type AdditionalPodNetworkConfig struct {
   363  	// MaxPodsPerNode: The maximum number of pods per node which use this pod
   364  	// network
   365  	MaxPodsPerNode *MaxPodsConstraint `json:"maxPodsPerNode,omitempty"`
   366  	// SecondaryPodRange: The name of the secondary range on the subnet which
   367  	// provides IP address for this pod range
   368  	SecondaryPodRange string `json:"secondaryPodRange,omitempty"`
   369  	// Subnetwork: Name of the subnetwork where the additional pod network belongs
   370  	Subnetwork string `json:"subnetwork,omitempty"`
   371  	// ForceSendFields is a list of field names (e.g. "MaxPodsPerNode") to
   372  	// unconditionally include in API requests. By default, fields with empty or
   373  	// default values are omitted from API requests. See
   374  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   375  	// details.
   376  	ForceSendFields []string `json:"-"`
   377  	// NullFields is a list of field names (e.g. "MaxPodsPerNode") to include in
   378  	// API requests with the JSON null value. By default, fields with empty values
   379  	// are omitted from API requests. See
   380  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   381  	NullFields []string `json:"-"`
   382  }
   383  
   384  func (s *AdditionalPodNetworkConfig) MarshalJSON() ([]byte, error) {
   385  	type NoMethod AdditionalPodNetworkConfig
   386  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   387  }
   388  
   389  // AdditionalPodRangesConfig: AdditionalPodRangesConfig is the configuration
   390  // for additional pod secondary ranges supporting the ClusterUpdate message.
   391  type AdditionalPodRangesConfig struct {
   392  	// PodRangeInfo: Output only. [Output only] Information for additional pod
   393  	// range.
   394  	PodRangeInfo []*RangeInfo `json:"podRangeInfo,omitempty"`
   395  	// PodRangeNames: Name for pod secondary ipv4 range which has the actual range
   396  	// defined ahead.
   397  	PodRangeNames []string `json:"podRangeNames,omitempty"`
   398  	// ForceSendFields is a list of field names (e.g. "PodRangeInfo") to
   399  	// unconditionally include in API requests. By default, fields with empty or
   400  	// default values are omitted from API requests. See
   401  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   402  	// details.
   403  	ForceSendFields []string `json:"-"`
   404  	// NullFields is a list of field names (e.g. "PodRangeInfo") to include in API
   405  	// requests with the JSON null value. By default, fields with empty values are
   406  	// omitted from API requests. See
   407  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   408  	NullFields []string `json:"-"`
   409  }
   410  
   411  func (s *AdditionalPodRangesConfig) MarshalJSON() ([]byte, error) {
   412  	type NoMethod AdditionalPodRangesConfig
   413  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   414  }
   415  
   416  // AddonsConfig: Configuration for the addons that can be automatically spun up
   417  // in the cluster, enabling additional functionality.
   418  type AddonsConfig struct {
   419  	// CloudRunConfig: Configuration for the Cloud Run addon, which allows the user
   420  	// to use a managed Knative service.
   421  	CloudRunConfig *CloudRunConfig `json:"cloudRunConfig,omitempty"`
   422  	// ConfigConnectorConfig: Configuration for the ConfigConnector add-on, a
   423  	// Kubernetes extension to manage hosted GCP services through the Kubernetes
   424  	// API
   425  	ConfigConnectorConfig *ConfigConnectorConfig `json:"configConnectorConfig,omitempty"`
   426  	// DnsCacheConfig: Configuration for NodeLocalDNS, a dns cache running on
   427  	// cluster nodes
   428  	DnsCacheConfig *DnsCacheConfig `json:"dnsCacheConfig,omitempty"`
   429  	// GcePersistentDiskCsiDriverConfig: Configuration for the Compute Engine
   430  	// Persistent Disk CSI driver.
   431  	GcePersistentDiskCsiDriverConfig *GcePersistentDiskCsiDriverConfig `json:"gcePersistentDiskCsiDriverConfig,omitempty"`
   432  	// GcpFilestoreCsiDriverConfig: Configuration for the GCP Filestore CSI driver.
   433  	GcpFilestoreCsiDriverConfig *GcpFilestoreCsiDriverConfig `json:"gcpFilestoreCsiDriverConfig,omitempty"`
   434  	// GcsFuseCsiDriverConfig: Configuration for the Cloud Storage Fuse CSI driver.
   435  	GcsFuseCsiDriverConfig *GcsFuseCsiDriverConfig `json:"gcsFuseCsiDriverConfig,omitempty"`
   436  	// GkeBackupAgentConfig: Configuration for the Backup for GKE agent addon.
   437  	GkeBackupAgentConfig *GkeBackupAgentConfig `json:"gkeBackupAgentConfig,omitempty"`
   438  	// HorizontalPodAutoscaling: Configuration for the horizontal pod autoscaling
   439  	// feature, which increases or decreases the number of replica pods a
   440  	// replication controller has based on the resource usage of the existing pods.
   441  	HorizontalPodAutoscaling *HorizontalPodAutoscaling `json:"horizontalPodAutoscaling,omitempty"`
   442  	// HttpLoadBalancing: Configuration for the HTTP (L7) load balancing controller
   443  	// addon, which makes it easy to set up HTTP load balancers for services in a
   444  	// cluster.
   445  	HttpLoadBalancing *HttpLoadBalancing `json:"httpLoadBalancing,omitempty"`
   446  	// KubernetesDashboard: Configuration for the Kubernetes Dashboard. This addon
   447  	// is deprecated, and will be disabled in 1.15. It is recommended to use the
   448  	// Cloud Console to manage and monitor your Kubernetes clusters, workloads and
   449  	// applications. For more information, see:
   450  	// https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards
   451  	KubernetesDashboard *KubernetesDashboard `json:"kubernetesDashboard,omitempty"`
   452  	// NetworkPolicyConfig: Configuration for NetworkPolicy. This only tracks
   453  	// whether the addon is enabled or not on the Master, it does not track whether
   454  	// network policy is enabled for the nodes.
   455  	NetworkPolicyConfig *NetworkPolicyConfig `json:"networkPolicyConfig,omitempty"`
   456  	// StatefulHaConfig: Optional. Configuration for the StatefulHA add-on.
   457  	StatefulHaConfig *StatefulHAConfig `json:"statefulHaConfig,omitempty"`
   458  	// ForceSendFields is a list of field names (e.g. "CloudRunConfig") to
   459  	// unconditionally include in API requests. By default, fields with empty or
   460  	// default values are omitted from API requests. See
   461  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   462  	// details.
   463  	ForceSendFields []string `json:"-"`
   464  	// NullFields is a list of field names (e.g. "CloudRunConfig") to include in
   465  	// API requests with the JSON null value. By default, fields with empty values
   466  	// are omitted from API requests. See
   467  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   468  	NullFields []string `json:"-"`
   469  }
   470  
   471  func (s *AddonsConfig) MarshalJSON() ([]byte, error) {
   472  	type NoMethod AddonsConfig
   473  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   474  }
   475  
   476  // AdvancedDatapathObservabilityConfig: AdvancedDatapathObservabilityConfig
   477  // specifies configuration of observability features of advanced datapath.
   478  type AdvancedDatapathObservabilityConfig struct {
   479  	// EnableMetrics: Expose flow metrics on nodes
   480  	EnableMetrics bool `json:"enableMetrics,omitempty"`
   481  	// EnableRelay: Enable Relay component
   482  	EnableRelay bool `json:"enableRelay,omitempty"`
   483  	// RelayMode: Method used to make Relay available
   484  	//
   485  	// Possible values:
   486  	//   "RELAY_MODE_UNSPECIFIED" - Default value. This shouldn't be used.
   487  	//   "DISABLED" - disabled
   488  	//   "INTERNAL_VPC_LB" - exposed via internal load balancer
   489  	//   "EXTERNAL_LB" - exposed via external load balancer
   490  	RelayMode string `json:"relayMode,omitempty"`
   491  	// ForceSendFields is a list of field names (e.g. "EnableMetrics") to
   492  	// unconditionally include in API requests. By default, fields with empty or
   493  	// default values are omitted from API requests. See
   494  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   495  	// details.
   496  	ForceSendFields []string `json:"-"`
   497  	// NullFields is a list of field names (e.g. "EnableMetrics") to include in API
   498  	// requests with the JSON null value. By default, fields with empty values are
   499  	// omitted from API requests. See
   500  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   501  	NullFields []string `json:"-"`
   502  }
   503  
   504  func (s *AdvancedDatapathObservabilityConfig) MarshalJSON() ([]byte, error) {
   505  	type NoMethod AdvancedDatapathObservabilityConfig
   506  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   507  }
   508  
   509  // AdvancedMachineFeatures: Specifies options for controlling advanced machine
   510  // features.
   511  type AdvancedMachineFeatures struct {
   512  	// EnableNestedVirtualization: Whether or not to enable nested virtualization
   513  	// (defaults to false).
   514  	EnableNestedVirtualization bool `json:"enableNestedVirtualization,omitempty"`
   515  	// ThreadsPerCore: The number of threads per physical core. To disable
   516  	// simultaneous multithreading (SMT) set this to 1. If unset, the maximum
   517  	// number of threads supported per core by the underlying processor is assumed.
   518  	ThreadsPerCore int64 `json:"threadsPerCore,omitempty,string"`
   519  	// ForceSendFields is a list of field names (e.g. "EnableNestedVirtualization")
   520  	// to unconditionally include in API requests. By default, fields with empty or
   521  	// default values are omitted from API requests. See
   522  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   523  	// details.
   524  	ForceSendFields []string `json:"-"`
   525  	// NullFields is a list of field names (e.g. "EnableNestedVirtualization") to
   526  	// include in API requests with the JSON null value. By default, fields with
   527  	// empty values are omitted from API requests. See
   528  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   529  	NullFields []string `json:"-"`
   530  }
   531  
   532  func (s *AdvancedMachineFeatures) MarshalJSON() ([]byte, error) {
   533  	type NoMethod AdvancedMachineFeatures
   534  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   535  }
   536  
   537  // AuthenticatorGroupsConfig: Configuration for returning group information
   538  // from authenticators.
   539  type AuthenticatorGroupsConfig struct {
   540  	// Enabled: Whether this cluster should return group membership lookups during
   541  	// authentication using a group of security groups.
   542  	Enabled bool `json:"enabled,omitempty"`
   543  	// SecurityGroup: The name of the security group-of-groups to be used. Only
   544  	// relevant if enabled = true.
   545  	SecurityGroup string `json:"securityGroup,omitempty"`
   546  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
   547  	// include in API requests. By default, fields with empty or default values are
   548  	// omitted from API requests. See
   549  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   550  	// details.
   551  	ForceSendFields []string `json:"-"`
   552  	// NullFields is a list of field names (e.g. "Enabled") to include in API
   553  	// requests with the JSON null value. By default, fields with empty values are
   554  	// omitted from API requests. See
   555  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   556  	NullFields []string `json:"-"`
   557  }
   558  
   559  func (s *AuthenticatorGroupsConfig) MarshalJSON() ([]byte, error) {
   560  	type NoMethod AuthenticatorGroupsConfig
   561  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   562  }
   563  
   564  // AutoUpgradeOptions: AutoUpgradeOptions defines the set of options for the
   565  // user to control how the Auto Upgrades will proceed.
   566  type AutoUpgradeOptions struct {
   567  	// AutoUpgradeStartTime: [Output only] This field is set when upgrades are
   568  	// about to commence with the approximate start time for the upgrades, in
   569  	// RFC3339 (https://www.ietf.org/rfc/rfc3339.txt) text format.
   570  	AutoUpgradeStartTime string `json:"autoUpgradeStartTime,omitempty"`
   571  	// Description: [Output only] This field is set when upgrades are about to
   572  	// commence with the description of the upgrade.
   573  	Description string `json:"description,omitempty"`
   574  	// ForceSendFields is a list of field names (e.g. "AutoUpgradeStartTime") to
   575  	// unconditionally include in API requests. By default, fields with empty or
   576  	// default values are omitted from API requests. See
   577  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   578  	// details.
   579  	ForceSendFields []string `json:"-"`
   580  	// NullFields is a list of field names (e.g. "AutoUpgradeStartTime") to include
   581  	// in API requests with the JSON null value. By default, fields with empty
   582  	// values are omitted from API requests. See
   583  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   584  	NullFields []string `json:"-"`
   585  }
   586  
   587  func (s *AutoUpgradeOptions) MarshalJSON() ([]byte, error) {
   588  	type NoMethod AutoUpgradeOptions
   589  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   590  }
   591  
   592  // Autopilot: Autopilot is the configuration for Autopilot settings on the
   593  // cluster.
   594  type Autopilot struct {
   595  	// Enabled: Enable Autopilot
   596  	Enabled bool `json:"enabled,omitempty"`
   597  	// WorkloadPolicyConfig: Workload policy configuration for Autopilot.
   598  	WorkloadPolicyConfig *WorkloadPolicyConfig `json:"workloadPolicyConfig,omitempty"`
   599  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
   600  	// include in API requests. By default, fields with empty or default values are
   601  	// omitted from API requests. See
   602  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   603  	// details.
   604  	ForceSendFields []string `json:"-"`
   605  	// NullFields is a list of field names (e.g. "Enabled") to include in API
   606  	// requests with the JSON null value. By default, fields with empty values are
   607  	// omitted from API requests. See
   608  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   609  	NullFields []string `json:"-"`
   610  }
   611  
   612  func (s *Autopilot) MarshalJSON() ([]byte, error) {
   613  	type NoMethod Autopilot
   614  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   615  }
   616  
   617  // AutopilotCompatibilityIssue: AutopilotCompatibilityIssue contains
   618  // information about a specific compatibility issue with Autopilot mode.
   619  type AutopilotCompatibilityIssue struct {
   620  	// ConstraintType: The constraint type of the issue.
   621  	ConstraintType string `json:"constraintType,omitempty"`
   622  	// Description: The description of the issue.
   623  	Description string `json:"description,omitempty"`
   624  	// DocumentationUrl: A URL to a public documnetation, which addresses resolving
   625  	// this issue.
   626  	DocumentationUrl string `json:"documentationUrl,omitempty"`
   627  	// IncompatibilityType: The incompatibility type of this issue.
   628  	//
   629  	// Possible values:
   630  	//   "UNSPECIFIED" - Default value, should not be used.
   631  	//   "INCOMPATIBILITY" - Indicates that the issue is a known incompatibility
   632  	// between the cluster and Autopilot mode.
   633  	//   "ADDITIONAL_CONFIG_REQUIRED" - Indicates the issue is an incompatibility
   634  	// if customers take no further action to resolve.
   635  	//   "PASSED_WITH_OPTIONAL_CONFIG" - Indicates the issue is not an
   636  	// incompatibility, but depending on the workloads business logic, there is a
   637  	// potential that they won't work on Autopilot.
   638  	IncompatibilityType string `json:"incompatibilityType,omitempty"`
   639  	// LastObservation: The last time when this issue was observed.
   640  	LastObservation string `json:"lastObservation,omitempty"`
   641  	// Subjects: The name of the resources which are subject to this issue.
   642  	Subjects []string `json:"subjects,omitempty"`
   643  	// ForceSendFields is a list of field names (e.g. "ConstraintType") to
   644  	// unconditionally include in API requests. By default, fields with empty or
   645  	// default values are omitted from API requests. See
   646  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   647  	// details.
   648  	ForceSendFields []string `json:"-"`
   649  	// NullFields is a list of field names (e.g. "ConstraintType") to include in
   650  	// API requests with the JSON null value. By default, fields with empty values
   651  	// are omitted from API requests. See
   652  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   653  	NullFields []string `json:"-"`
   654  }
   655  
   656  func (s *AutopilotCompatibilityIssue) MarshalJSON() ([]byte, error) {
   657  	type NoMethod AutopilotCompatibilityIssue
   658  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   659  }
   660  
   661  // AutoprovisioningNodePoolDefaults: AutoprovisioningNodePoolDefaults contains
   662  // defaults for a node pool created by NAP.
   663  type AutoprovisioningNodePoolDefaults struct {
   664  	// BootDiskKmsKey: The Customer Managed Encryption Key used to encrypt the boot
   665  	// disk attached to each node in the node pool. This should be of the form
   666  	// projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKey
   667  	// s/[KEY_NAME]. For more information about protecting resources with Cloud KMS
   668  	// Keys please see:
   669  	// https://cloud.google.com/compute/docs/disks/customer-managed-encryption
   670  	BootDiskKmsKey string `json:"bootDiskKmsKey,omitempty"`
   671  	// DiskSizeGb: Size of the disk attached to each node, specified in GB. The
   672  	// smallest allowed disk size is 10GB. If unspecified, the default disk size is
   673  	// 100GB.
   674  	DiskSizeGb int64 `json:"diskSizeGb,omitempty"`
   675  	// DiskType: Type of the disk attached to each node (e.g. 'pd-standard',
   676  	// 'pd-ssd' or 'pd-balanced') If unspecified, the default disk type is
   677  	// 'pd-standard'
   678  	DiskType string `json:"diskType,omitempty"`
   679  	// ImageType: The image type to use for NAP created node. Please see
   680  	// https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for
   681  	// available image types.
   682  	ImageType string `json:"imageType,omitempty"`
   683  	// InsecureKubeletReadonlyPortEnabled: Enable or disable Kubelet read only
   684  	// port.
   685  	InsecureKubeletReadonlyPortEnabled bool `json:"insecureKubeletReadonlyPortEnabled,omitempty"`
   686  	// Management: Specifies the node management options for NAP created
   687  	// node-pools.
   688  	Management *NodeManagement `json:"management,omitempty"`
   689  	// MinCpuPlatform: Deprecated. Minimum CPU platform to be used for NAP created
   690  	// node pools. The instance may be scheduled on the specified or newer CPU
   691  	// platform. Applicable values are the friendly names of CPU platforms, such as
   692  	// minCpuPlatform: Intel Haswell or minCpuPlatform: Intel Sandy Bridge. For
   693  	// more information, read how to specify min CPU platform
   694  	// (https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform).
   695  	// This field is deprecated, min_cpu_platform should be specified using
   696  	// `cloud.google.com/requested-min-cpu-platform` label selector on the pod. To
   697  	// unset the min cpu platform field pass "automatic" as field value.
   698  	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
   699  	// OauthScopes: Scopes that are used by NAP when creating node pools.
   700  	OauthScopes []string `json:"oauthScopes,omitempty"`
   701  	// ServiceAccount: The Google Cloud Platform Service Account to be used by the
   702  	// node VMs.
   703  	ServiceAccount string `json:"serviceAccount,omitempty"`
   704  	// ShieldedInstanceConfig: Shielded Instance options.
   705  	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
   706  	// UpgradeSettings: Specifies the upgrade settings for NAP created node pools
   707  	UpgradeSettings *UpgradeSettings `json:"upgradeSettings,omitempty"`
   708  	// ForceSendFields is a list of field names (e.g. "BootDiskKmsKey") to
   709  	// unconditionally include in API requests. By default, fields with empty or
   710  	// default values are omitted from API requests. See
   711  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   712  	// details.
   713  	ForceSendFields []string `json:"-"`
   714  	// NullFields is a list of field names (e.g. "BootDiskKmsKey") to include in
   715  	// API requests with the JSON null value. By default, fields with empty values
   716  	// are omitted from API requests. See
   717  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   718  	NullFields []string `json:"-"`
   719  }
   720  
   721  func (s *AutoprovisioningNodePoolDefaults) MarshalJSON() ([]byte, error) {
   722  	type NoMethod AutoprovisioningNodePoolDefaults
   723  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   724  }
   725  
   726  // BestEffortProvisioning: Best effort provisioning.
   727  type BestEffortProvisioning struct {
   728  	// Enabled: When this is enabled, cluster/node pool creations will ignore
   729  	// non-fatal errors like stockout to best provision as many nodes as possible
   730  	// right now and eventually bring up all target number of nodes
   731  	Enabled bool `json:"enabled,omitempty"`
   732  	// MinProvisionNodes: Minimum number of nodes to be provisioned to be
   733  	// considered as succeeded, and the rest of nodes will be provisioned gradually
   734  	// and eventually when stockout issue has been resolved.
   735  	MinProvisionNodes int64 `json:"minProvisionNodes,omitempty"`
   736  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
   737  	// include in API requests. By default, fields with empty or default values are
   738  	// omitted from API requests. See
   739  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   740  	// details.
   741  	ForceSendFields []string `json:"-"`
   742  	// NullFields is a list of field names (e.g. "Enabled") to include in API
   743  	// requests with the JSON null value. By default, fields with empty values are
   744  	// omitted from API requests. See
   745  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   746  	NullFields []string `json:"-"`
   747  }
   748  
   749  func (s *BestEffortProvisioning) MarshalJSON() ([]byte, error) {
   750  	type NoMethod BestEffortProvisioning
   751  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   752  }
   753  
   754  // BigQueryDestination: Parameters for using BigQuery as the destination of
   755  // resource usage export.
   756  type BigQueryDestination struct {
   757  	// DatasetId: The ID of a BigQuery Dataset.
   758  	DatasetId string `json:"datasetId,omitempty"`
   759  	// ForceSendFields is a list of field names (e.g. "DatasetId") to
   760  	// unconditionally include in API requests. By default, fields with empty or
   761  	// default values are omitted from API requests. See
   762  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   763  	// details.
   764  	ForceSendFields []string `json:"-"`
   765  	// NullFields is a list of field names (e.g. "DatasetId") to include in API
   766  	// requests with the JSON null value. By default, fields with empty values are
   767  	// omitted from API requests. See
   768  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   769  	NullFields []string `json:"-"`
   770  }
   771  
   772  func (s *BigQueryDestination) MarshalJSON() ([]byte, error) {
   773  	type NoMethod BigQueryDestination
   774  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   775  }
   776  
   777  // BinaryAuthorization: Configuration for Binary Authorization.
   778  type BinaryAuthorization struct {
   779  	// Enabled: This field is deprecated. Leave this unset and instead configure
   780  	// BinaryAuthorization using evaluation_mode. If evaluation_mode is set to
   781  	// anything other than EVALUATION_MODE_UNSPECIFIED, this field is ignored.
   782  	Enabled bool `json:"enabled,omitempty"`
   783  	// EvaluationMode: Mode of operation for binauthz policy evaluation. If
   784  	// unspecified, defaults to DISABLED.
   785  	//
   786  	// Possible values:
   787  	//   "EVALUATION_MODE_UNSPECIFIED" - Default value
   788  	//   "DISABLED" - Disable BinaryAuthorization
   789  	//   "PROJECT_SINGLETON_POLICY_ENFORCE" - Enforce Kubernetes admission requests
   790  	// with BinaryAuthorization using the project's singleton policy. This is
   791  	// equivalent to setting the enabled boolean to true.
   792  	EvaluationMode string `json:"evaluationMode,omitempty"`
   793  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
   794  	// include in API requests. By default, fields with empty or default values are
   795  	// omitted from API requests. See
   796  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   797  	// details.
   798  	ForceSendFields []string `json:"-"`
   799  	// NullFields is a list of field names (e.g. "Enabled") to include in API
   800  	// requests with the JSON null value. By default, fields with empty values are
   801  	// omitted from API requests. See
   802  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   803  	NullFields []string `json:"-"`
   804  }
   805  
   806  func (s *BinaryAuthorization) MarshalJSON() ([]byte, error) {
   807  	type NoMethod BinaryAuthorization
   808  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   809  }
   810  
   811  // BlueGreenInfo: Information relevant to blue-green upgrade.
   812  type BlueGreenInfo struct {
   813  	// BlueInstanceGroupUrls: The resource URLs of the [managed instance groups]
   814  	// (/compute/docs/instance-groups/creating-groups-of-managed-instances)
   815  	// associated with blue pool.
   816  	BlueInstanceGroupUrls []string `json:"blueInstanceGroupUrls,omitempty"`
   817  	// BluePoolDeletionStartTime: Time to start deleting blue pool to complete
   818  	// blue-green upgrade, in RFC3339 (https://www.ietf.org/rfc/rfc3339.txt) text
   819  	// format.
   820  	BluePoolDeletionStartTime string `json:"bluePoolDeletionStartTime,omitempty"`
   821  	// GreenInstanceGroupUrls: The resource URLs of the [managed instance groups]
   822  	// (/compute/docs/instance-groups/creating-groups-of-managed-instances)
   823  	// associated with green pool.
   824  	GreenInstanceGroupUrls []string `json:"greenInstanceGroupUrls,omitempty"`
   825  	// GreenPoolVersion: Version of green pool.
   826  	GreenPoolVersion string `json:"greenPoolVersion,omitempty"`
   827  	// Phase: Current blue-green upgrade phase.
   828  	//
   829  	// Possible values:
   830  	//   "PHASE_UNSPECIFIED" - Unspecified phase.
   831  	//   "UPDATE_STARTED" - blue-green upgrade has been initiated.
   832  	//   "CREATING_GREEN_POOL" - Start creating green pool nodes.
   833  	//   "CORDONING_BLUE_POOL" - Start cordoning blue pool nodes.
   834  	//   "DRAINING_BLUE_POOL" - Start draining blue pool nodes.
   835  	//   "NODE_POOL_SOAKING" - Start soaking time after draining entire blue pool.
   836  	//   "DELETING_BLUE_POOL" - Start deleting blue nodes.
   837  	//   "ROLLBACK_STARTED" - Rollback has been initiated.
   838  	Phase string `json:"phase,omitempty"`
   839  	// ForceSendFields is a list of field names (e.g. "BlueInstanceGroupUrls") to
   840  	// unconditionally include in API requests. By default, fields with empty or
   841  	// default values are omitted from API requests. See
   842  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   843  	// details.
   844  	ForceSendFields []string `json:"-"`
   845  	// NullFields is a list of field names (e.g. "BlueInstanceGroupUrls") to
   846  	// include in API requests with the JSON null value. By default, fields with
   847  	// empty values are omitted from API requests. See
   848  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   849  	NullFields []string `json:"-"`
   850  }
   851  
   852  func (s *BlueGreenInfo) MarshalJSON() ([]byte, error) {
   853  	type NoMethod BlueGreenInfo
   854  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   855  }
   856  
   857  // BlueGreenSettings: Settings for blue-green upgrade.
   858  type BlueGreenSettings struct {
   859  	// NodePoolSoakDuration: Time needed after draining entire blue pool. After
   860  	// this period, blue pool will be cleaned up.
   861  	NodePoolSoakDuration string `json:"nodePoolSoakDuration,omitempty"`
   862  	// StandardRolloutPolicy: Standard policy for the blue-green upgrade.
   863  	StandardRolloutPolicy *StandardRolloutPolicy `json:"standardRolloutPolicy,omitempty"`
   864  	// ForceSendFields is a list of field names (e.g. "NodePoolSoakDuration") to
   865  	// unconditionally include in API requests. By default, fields with empty or
   866  	// default values are omitted from API requests. See
   867  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   868  	// details.
   869  	ForceSendFields []string `json:"-"`
   870  	// NullFields is a list of field names (e.g. "NodePoolSoakDuration") to include
   871  	// in API requests with the JSON null value. By default, fields with empty
   872  	// values are omitted from API requests. See
   873  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   874  	NullFields []string `json:"-"`
   875  }
   876  
   877  func (s *BlueGreenSettings) MarshalJSON() ([]byte, error) {
   878  	type NoMethod BlueGreenSettings
   879  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   880  }
   881  
   882  // CancelOperationRequest: CancelOperationRequest cancels a single operation.
   883  type CancelOperationRequest struct {
   884  	// Name: The name (project, location, operation id) of the operation to cancel.
   885  	// Specified in the format `projects/*/locations/*/operations/*`.
   886  	Name string `json:"name,omitempty"`
   887  	// OperationId: Deprecated. The server-assigned `name` of the operation. This
   888  	// field has been deprecated and replaced by the name field.
   889  	OperationId string `json:"operationId,omitempty"`
   890  	// ProjectId: Deprecated. The Google Developers Console project ID or project
   891  	// number
   892  	// (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
   893  	// This field has been deprecated and replaced by the name field.
   894  	ProjectId string `json:"projectId,omitempty"`
   895  	// Zone: Deprecated. The name of the Google Compute Engine zone
   896  	// (https://cloud.google.com/compute/docs/zones#available) in which the
   897  	// operation resides. This field has been deprecated and replaced by the name
   898  	// field.
   899  	Zone string `json:"zone,omitempty"`
   900  	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
   901  	// include in API requests. By default, fields with empty or default values are
   902  	// omitted from API requests. See
   903  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   904  	// details.
   905  	ForceSendFields []string `json:"-"`
   906  	// NullFields is a list of field names (e.g. "Name") to include in API requests
   907  	// with the JSON null value. By default, fields with empty values are omitted
   908  	// from API requests. See
   909  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   910  	NullFields []string `json:"-"`
   911  }
   912  
   913  func (s *CancelOperationRequest) MarshalJSON() ([]byte, error) {
   914  	type NoMethod CancelOperationRequest
   915  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   916  }
   917  
   918  // CertificateAuthorityDomainConfig: CertificateAuthorityDomainConfig
   919  // configures one or more fully qualified domain names (FQDN) to a specific
   920  // certificate.
   921  type CertificateAuthorityDomainConfig struct {
   922  	// Fqdns: List of fully qualified domain names (FQDN). Specifying port is
   923  	// supported. Wilcards are NOT supported. Examples: - my.customdomain.com -
   924  	// 10.0.1.2:5000
   925  	Fqdns []string `json:"fqdns,omitempty"`
   926  	// GcpSecretManagerCertificateConfig: Google Secret Manager (GCP) certificate
   927  	// configuration.
   928  	GcpSecretManagerCertificateConfig *GCPSecretManagerCertificateConfig `json:"gcpSecretManagerCertificateConfig,omitempty"`
   929  	// ForceSendFields is a list of field names (e.g. "Fqdns") to unconditionally
   930  	// include in API requests. By default, fields with empty or default values are
   931  	// omitted from API requests. See
   932  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   933  	// details.
   934  	ForceSendFields []string `json:"-"`
   935  	// NullFields is a list of field names (e.g. "Fqdns") to include in API
   936  	// requests with the JSON null value. By default, fields with empty values are
   937  	// omitted from API requests. See
   938  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   939  	NullFields []string `json:"-"`
   940  }
   941  
   942  func (s *CertificateAuthorityDomainConfig) MarshalJSON() ([]byte, error) {
   943  	type NoMethod CertificateAuthorityDomainConfig
   944  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   945  }
   946  
   947  // CheckAutopilotCompatibilityResponse: CheckAutopilotCompatibilityResponse has
   948  // a list of compatibility issues.
   949  type CheckAutopilotCompatibilityResponse struct {
   950  	// Issues: The list of issues for the given operation.
   951  	Issues []*AutopilotCompatibilityIssue `json:"issues,omitempty"`
   952  	// Summary: The summary of the autopilot compatibility response.
   953  	Summary string `json:"summary,omitempty"`
   954  
   955  	// ServerResponse contains the HTTP response code and headers from the server.
   956  	googleapi.ServerResponse `json:"-"`
   957  	// ForceSendFields is a list of field names (e.g. "Issues") to unconditionally
   958  	// include in API requests. By default, fields with empty or default values are
   959  	// omitted from API requests. See
   960  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   961  	// details.
   962  	ForceSendFields []string `json:"-"`
   963  	// NullFields is a list of field names (e.g. "Issues") to include in API
   964  	// requests with the JSON null value. By default, fields with empty values are
   965  	// omitted from API requests. See
   966  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   967  	NullFields []string `json:"-"`
   968  }
   969  
   970  func (s *CheckAutopilotCompatibilityResponse) MarshalJSON() ([]byte, error) {
   971  	type NoMethod CheckAutopilotCompatibilityResponse
   972  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   973  }
   974  
   975  // CidrBlock: CidrBlock contains an optional name and one CIDR block.
   976  type CidrBlock struct {
   977  	// CidrBlock: cidr_block must be specified in CIDR notation.
   978  	CidrBlock string `json:"cidrBlock,omitempty"`
   979  	// DisplayName: display_name is an optional field for users to identify CIDR
   980  	// blocks.
   981  	DisplayName string `json:"displayName,omitempty"`
   982  	// ForceSendFields is a list of field names (e.g. "CidrBlock") to
   983  	// unconditionally include in API requests. By default, fields with empty or
   984  	// default values are omitted from API requests. See
   985  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   986  	// details.
   987  	ForceSendFields []string `json:"-"`
   988  	// NullFields is a list of field names (e.g. "CidrBlock") to include in API
   989  	// requests with the JSON null value. By default, fields with empty values are
   990  	// omitted from API requests. See
   991  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   992  	NullFields []string `json:"-"`
   993  }
   994  
   995  func (s *CidrBlock) MarshalJSON() ([]byte, error) {
   996  	type NoMethod CidrBlock
   997  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   998  }
   999  
  1000  // ClientCertificateConfig: Configuration for client certificates on the
  1001  // cluster.
  1002  type ClientCertificateConfig struct {
  1003  	// IssueClientCertificate: Issue a client certificate.
  1004  	IssueClientCertificate bool `json:"issueClientCertificate,omitempty"`
  1005  	// ForceSendFields is a list of field names (e.g. "IssueClientCertificate") to
  1006  	// unconditionally include in API requests. By default, fields with empty or
  1007  	// default values are omitted from API requests. See
  1008  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1009  	// details.
  1010  	ForceSendFields []string `json:"-"`
  1011  	// NullFields is a list of field names (e.g. "IssueClientCertificate") to
  1012  	// include in API requests with the JSON null value. By default, fields with
  1013  	// empty values are omitted from API requests. See
  1014  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1015  	NullFields []string `json:"-"`
  1016  }
  1017  
  1018  func (s *ClientCertificateConfig) MarshalJSON() ([]byte, error) {
  1019  	type NoMethod ClientCertificateConfig
  1020  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1021  }
  1022  
  1023  // CloudRunConfig: Configuration options for the Cloud Run feature.
  1024  type CloudRunConfig struct {
  1025  	// Disabled: Whether Cloud Run addon is enabled for this cluster.
  1026  	Disabled bool `json:"disabled,omitempty"`
  1027  	// LoadBalancerType: Which load balancer type is installed for Cloud Run.
  1028  	//
  1029  	// Possible values:
  1030  	//   "LOAD_BALANCER_TYPE_UNSPECIFIED" - Load balancer type for Cloud Run is
  1031  	// unspecified.
  1032  	//   "LOAD_BALANCER_TYPE_EXTERNAL" - Install external load balancer for Cloud
  1033  	// Run.
  1034  	//   "LOAD_BALANCER_TYPE_INTERNAL" - Install internal load balancer for Cloud
  1035  	// Run.
  1036  	LoadBalancerType string `json:"loadBalancerType,omitempty"`
  1037  	// ForceSendFields is a list of field names (e.g. "Disabled") to
  1038  	// unconditionally include in API requests. By default, fields with empty or
  1039  	// default values are omitted from API requests. See
  1040  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1041  	// details.
  1042  	ForceSendFields []string `json:"-"`
  1043  	// NullFields is a list of field names (e.g. "Disabled") to include in API
  1044  	// requests with the JSON null value. By default, fields with empty values are
  1045  	// omitted from API requests. See
  1046  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1047  	NullFields []string `json:"-"`
  1048  }
  1049  
  1050  func (s *CloudRunConfig) MarshalJSON() ([]byte, error) {
  1051  	type NoMethod CloudRunConfig
  1052  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1053  }
  1054  
  1055  // Cluster: A Google Kubernetes Engine cluster.
  1056  type Cluster struct {
  1057  	// AddonsConfig: Configurations for the various addons available to run in the
  1058  	// cluster.
  1059  	AddonsConfig *AddonsConfig `json:"addonsConfig,omitempty"`
  1060  	// AuthenticatorGroupsConfig: Configuration controlling RBAC group membership
  1061  	// information.
  1062  	AuthenticatorGroupsConfig *AuthenticatorGroupsConfig `json:"authenticatorGroupsConfig,omitempty"`
  1063  	// Autopilot: Autopilot configuration for the cluster.
  1064  	Autopilot *Autopilot `json:"autopilot,omitempty"`
  1065  	// Autoscaling: Cluster-level autoscaling configuration.
  1066  	Autoscaling *ClusterAutoscaling `json:"autoscaling,omitempty"`
  1067  	// BinaryAuthorization: Configuration for Binary Authorization.
  1068  	BinaryAuthorization *BinaryAuthorization `json:"binaryAuthorization,omitempty"`
  1069  	// ClusterIpv4Cidr: The IP address range of the container pods in this cluster,
  1070  	// in CIDR (http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
  1071  	// notation (e.g. `10.96.0.0/14`). Leave blank to have one automatically chosen
  1072  	// or specify a `/14` block in `10.0.0.0/8`.
  1073  	ClusterIpv4Cidr string `json:"clusterIpv4Cidr,omitempty"`
  1074  	// Conditions: Which conditions caused the current cluster state.
  1075  	Conditions []*StatusCondition `json:"conditions,omitempty"`
  1076  	// ConfidentialNodes: Configuration of Confidential Nodes. All the nodes in the
  1077  	// cluster will be Confidential VM once enabled.
  1078  	ConfidentialNodes *ConfidentialNodes `json:"confidentialNodes,omitempty"`
  1079  	// CostManagementConfig: Configuration for the fine-grained cost management
  1080  	// feature.
  1081  	CostManagementConfig *CostManagementConfig `json:"costManagementConfig,omitempty"`
  1082  	// CreateTime: [Output only] The time the cluster was created, in RFC3339
  1083  	// (https://www.ietf.org/rfc/rfc3339.txt) text format.
  1084  	CreateTime string `json:"createTime,omitempty"`
  1085  	// CurrentMasterVersion: [Output only] The current software version of the
  1086  	// master endpoint.
  1087  	CurrentMasterVersion string `json:"currentMasterVersion,omitempty"`
  1088  	// CurrentNodeCount: [Output only] The number of nodes currently in the
  1089  	// cluster. Deprecated. Call Kubernetes API directly to retrieve node
  1090  	// information.
  1091  	CurrentNodeCount int64 `json:"currentNodeCount,omitempty"`
  1092  	// CurrentNodeVersion: [Output only] Deprecated, use NodePools.version
  1093  	// (https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools)
  1094  	// instead. The current version of the node software components. If they are
  1095  	// currently at multiple versions because they're in the process of being
  1096  	// upgraded, this reflects the minimum version of all nodes.
  1097  	CurrentNodeVersion string `json:"currentNodeVersion,omitempty"`
  1098  	// DatabaseEncryption: Configuration of etcd encryption.
  1099  	DatabaseEncryption *DatabaseEncryption `json:"databaseEncryption,omitempty"`
  1100  	// DefaultMaxPodsConstraint: The default constraint on the maximum number of
  1101  	// pods that can be run simultaneously on a node in the node pool of this
  1102  	// cluster. Only honored if cluster created with IP Alias support.
  1103  	DefaultMaxPodsConstraint *MaxPodsConstraint `json:"defaultMaxPodsConstraint,omitempty"`
  1104  	// Description: An optional description of this cluster.
  1105  	Description string `json:"description,omitempty"`
  1106  	// EnableK8sBetaApis: Beta APIs Config
  1107  	EnableK8sBetaApis *K8sBetaAPIConfig `json:"enableK8sBetaApis,omitempty"`
  1108  	// EnableKubernetesAlpha: Kubernetes alpha features are enabled on this
  1109  	// cluster. This includes alpha API groups (e.g. v1alpha1) and features that
  1110  	// may not be production ready in the kubernetes version of the master and
  1111  	// nodes. The cluster has no SLA for uptime and master/node upgrades are
  1112  	// disabled. Alpha enabled clusters are automatically deleted thirty days after
  1113  	// creation.
  1114  	EnableKubernetesAlpha bool `json:"enableKubernetesAlpha,omitempty"`
  1115  	// EnableTpu: Enable the ability to use Cloud TPUs in this cluster.
  1116  	EnableTpu bool `json:"enableTpu,omitempty"`
  1117  	// Endpoint: [Output only] The IP address of this cluster's master endpoint.
  1118  	// The endpoint can be accessed from the internet at
  1119  	// `https://username:password@endpoint/`. See the `masterAuth` property of this
  1120  	// resource for username and password information.
  1121  	Endpoint string `json:"endpoint,omitempty"`
  1122  	// EnterpriseConfig: GKE Enterprise Configuration.
  1123  	EnterpriseConfig *EnterpriseConfig `json:"enterpriseConfig,omitempty"`
  1124  	// Etag: This checksum is computed by the server based on the value of cluster
  1125  	// fields, and may be sent on update requests to ensure the client has an
  1126  	// up-to-date value before proceeding.
  1127  	Etag string `json:"etag,omitempty"`
  1128  	// ExpireTime: [Output only] The time the cluster will be automatically deleted
  1129  	// in RFC3339 (https://www.ietf.org/rfc/rfc3339.txt) text format.
  1130  	ExpireTime string `json:"expireTime,omitempty"`
  1131  	// Fleet: Fleet information for the cluster.
  1132  	Fleet *Fleet `json:"fleet,omitempty"`
  1133  	// Id: Output only. Unique id for the cluster.
  1134  	Id string `json:"id,omitempty"`
  1135  	// IdentityServiceConfig: Configuration for Identity Service component.
  1136  	IdentityServiceConfig *IdentityServiceConfig `json:"identityServiceConfig,omitempty"`
  1137  	// InitialClusterVersion: The initial Kubernetes version for this cluster.
  1138  	// Valid versions are those found in validMasterVersions returned by
  1139  	// getServerConfig. The version can be upgraded over time; such upgrades are
  1140  	// reflected in currentMasterVersion and currentNodeVersion. Users may specify
  1141  	// either explicit versions offered by Kubernetes Engine or version aliases,
  1142  	// which have the following behavior: - "latest": picks the highest valid
  1143  	// Kubernetes version - "1.X": picks the highest valid patch+gke.N patch in the
  1144  	// 1.X version - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y
  1145  	// version - "1.X.Y-gke.N": picks an explicit Kubernetes version - "","-":
  1146  	// picks the default Kubernetes version
  1147  	InitialClusterVersion string `json:"initialClusterVersion,omitempty"`
  1148  	// InitialNodeCount: The number of nodes to create in this cluster. You must
  1149  	// ensure that your Compute Engine resource quota
  1150  	// (https://cloud.google.com/compute/quotas) is sufficient for this number of
  1151  	// instances. You must also have available firewall and routes quota. For
  1152  	// requests, this field should only be used in lieu of a "node_pool" object,
  1153  	// since this configuration (along with the "node_config") will be used to
  1154  	// create a "NodePool" object with an auto-generated name. Do not use this and
  1155  	// a node_pool at the same time. This field is deprecated, use
  1156  	// node_pool.initial_node_count instead.
  1157  	InitialNodeCount int64 `json:"initialNodeCount,omitempty"`
  1158  	// InstanceGroupUrls: Deprecated. Use node_pools.instance_group_urls.
  1159  	InstanceGroupUrls []string `json:"instanceGroupUrls,omitempty"`
  1160  	// IpAllocationPolicy: Configuration for cluster IP allocation.
  1161  	IpAllocationPolicy *IPAllocationPolicy `json:"ipAllocationPolicy,omitempty"`
  1162  	// LabelFingerprint: The fingerprint of the set of labels for this cluster.
  1163  	LabelFingerprint string `json:"labelFingerprint,omitempty"`
  1164  	// LegacyAbac: Configuration for the legacy ABAC authorization mode.
  1165  	LegacyAbac *LegacyAbac `json:"legacyAbac,omitempty"`
  1166  	// Location: [Output only] The name of the Google Compute Engine zone
  1167  	// (https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
  1168  	// or region
  1169  	// (https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
  1170  	// in which the cluster resides.
  1171  	Location string `json:"location,omitempty"`
  1172  	// Locations: The list of Google Compute Engine zones
  1173  	// (https://cloud.google.com/compute/docs/zones#available) in which the
  1174  	// cluster's nodes should be located. This field provides a default value if
  1175  	// NodePool.Locations
  1176  	// (https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations)
  1177  	// are not specified during node pool creation. Warning: changing cluster
  1178  	// locations will update the NodePool.Locations
  1179  	// (https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations)
  1180  	// of all node pools and will result in nodes being added and/or removed.
  1181  	Locations []string `json:"locations,omitempty"`
  1182  	// LoggingConfig: Logging configuration for the cluster.
  1183  	LoggingConfig *LoggingConfig `json:"loggingConfig,omitempty"`
  1184  	// LoggingService: The logging service the cluster should use to write logs.
  1185  	// Currently available options: * `logging.googleapis.com/kubernetes` - The
  1186  	// Cloud Logging service with a Kubernetes-native resource model *
  1187  	// `logging.googleapis.com` - The legacy Cloud Logging service (no longer
  1188  	// available as of GKE 1.15). * `none` - no logs will be exported from the
  1189  	// cluster. If left as an empty string,`logging.googleapis.com/kubernetes` will
  1190  	// be used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
  1191  	LoggingService string `json:"loggingService,omitempty"`
  1192  	// MaintenancePolicy: Configure the maintenance policy for this cluster.
  1193  	MaintenancePolicy *MaintenancePolicy `json:"maintenancePolicy,omitempty"`
  1194  	// MasterAuth: The authentication information for accessing the master
  1195  	// endpoint. If unspecified, the defaults are used: For clusters before v1.12,
  1196  	// if master_auth is unspecified, `username` will be set to "admin", a random
  1197  	// password will be generated, and a client certificate will be issued.
  1198  	MasterAuth *MasterAuth `json:"masterAuth,omitempty"`
  1199  	// MasterAuthorizedNetworksConfig: The configuration options for master
  1200  	// authorized networks feature.
  1201  	MasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `json:"masterAuthorizedNetworksConfig,omitempty"`
  1202  	// MeshCertificates: Configuration for issuance of mTLS keys and certificates
  1203  	// to Kubernetes pods.
  1204  	MeshCertificates *MeshCertificates `json:"meshCertificates,omitempty"`
  1205  	// MonitoringConfig: Monitoring configuration for the cluster.
  1206  	MonitoringConfig *MonitoringConfig `json:"monitoringConfig,omitempty"`
  1207  	// MonitoringService: The monitoring service the cluster should use to write
  1208  	// metrics. Currently available options: *
  1209  	// "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring service with a
  1210  	// Kubernetes-native resource model * `monitoring.googleapis.com` - The legacy
  1211  	// Cloud Monitoring service (no longer available as of GKE 1.15). * `none` - No
  1212  	// metrics will be exported from the cluster. If left as an empty
  1213  	// string,`monitoring.googleapis.com/kubernetes` will be used for GKE 1.14+ or
  1214  	// `monitoring.googleapis.com` for earlier versions.
  1215  	MonitoringService string `json:"monitoringService,omitempty"`
  1216  	// Name: The name of this cluster. The name must be unique within this project
  1217  	// and location (e.g. zone or region), and can be up to 40 characters with the
  1218  	// following restrictions: * Lowercase letters, numbers, and hyphens only. *
  1219  	// Must start with a letter. * Must end with a number or a letter.
  1220  	Name string `json:"name,omitempty"`
  1221  	// Network: The name of the Google Compute Engine network
  1222  	// (https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to
  1223  	// which the cluster is connected. If left unspecified, the `default` network
  1224  	// will be used.
  1225  	Network string `json:"network,omitempty"`
  1226  	// NetworkConfig: Configuration for cluster networking.
  1227  	NetworkConfig *NetworkConfig `json:"networkConfig,omitempty"`
  1228  	// NetworkPolicy: Configuration options for the NetworkPolicy feature.
  1229  	NetworkPolicy *NetworkPolicy `json:"networkPolicy,omitempty"`
  1230  	// NodeConfig: Parameters used in creating the cluster's nodes. For requests,
  1231  	// this field should only be used in lieu of a "node_pool" object, since this
  1232  	// configuration (along with the "initial_node_count") will be used to create a
  1233  	// "NodePool" object with an auto-generated name. Do not use this and a
  1234  	// node_pool at the same time. For responses, this field will be populated with
  1235  	// the node configuration of the first node pool. (For configuration of each
  1236  	// node pool, see `node_pool.config`) If unspecified, the defaults are used.
  1237  	// This field is deprecated, use node_pool.config instead.
  1238  	NodeConfig *NodeConfig `json:"nodeConfig,omitempty"`
  1239  	// NodeIpv4CidrSize: [Output only] The size of the address space on each node
  1240  	// for hosting containers. This is provisioned from within the
  1241  	// `container_ipv4_cidr` range. This field will only be set when cluster is in
  1242  	// route-based network mode.
  1243  	NodeIpv4CidrSize int64 `json:"nodeIpv4CidrSize,omitempty"`
  1244  	// NodePoolAutoConfig: Node pool configs that apply to all auto-provisioned
  1245  	// node pools in autopilot clusters and node auto-provisioning enabled
  1246  	// clusters.
  1247  	NodePoolAutoConfig *NodePoolAutoConfig `json:"nodePoolAutoConfig,omitempty"`
  1248  	// NodePoolDefaults: Default NodePool settings for the entire cluster. These
  1249  	// settings are overridden if specified on the specific NodePool object.
  1250  	NodePoolDefaults *NodePoolDefaults `json:"nodePoolDefaults,omitempty"`
  1251  	// NodePools: The node pools associated with this cluster. This field should
  1252  	// not be set if "node_config" or "initial_node_count" are specified.
  1253  	NodePools []*NodePool `json:"nodePools,omitempty"`
  1254  	// NotificationConfig: Notification configuration of the cluster.
  1255  	NotificationConfig *NotificationConfig `json:"notificationConfig,omitempty"`
  1256  	// ParentProductConfig: The configuration of the parent product of the cluster.
  1257  	// This field is used by Google internal products that are built on top of the
  1258  	// GKE cluster and take the ownership of the cluster.
  1259  	ParentProductConfig *ParentProductConfig `json:"parentProductConfig,omitempty"`
  1260  	// PrivateClusterConfig: Configuration for private cluster.
  1261  	PrivateClusterConfig *PrivateClusterConfig `json:"privateClusterConfig,omitempty"`
  1262  	// ReleaseChannel: Release channel configuration. If left unspecified on
  1263  	// cluster creation and a version is specified, the cluster is enrolled in the
  1264  	// most mature release channel where the version is available (first checking
  1265  	// STABLE, then REGULAR, and finally RAPID). Otherwise, if no release channel
  1266  	// configuration and no version is specified, the cluster is enrolled in the
  1267  	// REGULAR channel with its default version.
  1268  	ReleaseChannel *ReleaseChannel `json:"releaseChannel,omitempty"`
  1269  	// ResourceLabels: The resource labels for the cluster to use to annotate any
  1270  	// related Google Compute Engine resources.
  1271  	ResourceLabels map[string]string `json:"resourceLabels,omitempty"`
  1272  	// ResourceUsageExportConfig: Configuration for exporting resource usages.
  1273  	// Resource usage export is disabled when this config is unspecified.
  1274  	ResourceUsageExportConfig *ResourceUsageExportConfig `json:"resourceUsageExportConfig,omitempty"`
  1275  	// SatisfiesPzi: Output only. Reserved for future use.
  1276  	SatisfiesPzi bool `json:"satisfiesPzi,omitempty"`
  1277  	// SatisfiesPzs: Output only. Reserved for future use.
  1278  	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
  1279  	// SecurityPostureConfig: Enable/Disable Security Posture API features for the
  1280  	// cluster.
  1281  	SecurityPostureConfig *SecurityPostureConfig `json:"securityPostureConfig,omitempty"`
  1282  	// SelfLink: [Output only] Server-defined URL for the resource.
  1283  	SelfLink string `json:"selfLink,omitempty"`
  1284  	// ServicesIpv4Cidr: [Output only] The IP address range of the Kubernetes
  1285  	// services in this cluster, in CIDR
  1286  	// (http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g.
  1287  	// `1.2.3.4/29`). Service addresses are typically put in the last `/16` from
  1288  	// the container CIDR.
  1289  	ServicesIpv4Cidr string `json:"servicesIpv4Cidr,omitempty"`
  1290  	// ShieldedNodes: Shielded Nodes configuration.
  1291  	ShieldedNodes *ShieldedNodes `json:"shieldedNodes,omitempty"`
  1292  	// Status: [Output only] The current status of this cluster.
  1293  	//
  1294  	// Possible values:
  1295  	//   "STATUS_UNSPECIFIED" - Not set.
  1296  	//   "PROVISIONING" - The PROVISIONING state indicates the cluster is being
  1297  	// created.
  1298  	//   "RUNNING" - The RUNNING state indicates the cluster has been created and
  1299  	// is fully usable.
  1300  	//   "RECONCILING" - The RECONCILING state indicates that some work is actively
  1301  	// being done on the cluster, such as upgrading the master or node software.
  1302  	// Details can be found in the `statusMessage` field.
  1303  	//   "STOPPING" - The STOPPING state indicates the cluster is being deleted.
  1304  	//   "ERROR" - The ERROR state indicates the cluster is unusable. It will be
  1305  	// automatically deleted. Details can be found in the `statusMessage` field.
  1306  	//   "DEGRADED" - The DEGRADED state indicates the cluster requires user action
  1307  	// to restore full functionality. Details can be found in the `statusMessage`
  1308  	// field.
  1309  	Status string `json:"status,omitempty"`
  1310  	// StatusMessage: [Output only] Deprecated. Use conditions instead. Additional
  1311  	// information about the current status of this cluster, if available.
  1312  	StatusMessage string `json:"statusMessage,omitempty"`
  1313  	// Subnetwork: The name of the Google Compute Engine subnetwork
  1314  	// (https://cloud.google.com/compute/docs/subnetworks) to which the cluster is
  1315  	// connected.
  1316  	Subnetwork string `json:"subnetwork,omitempty"`
  1317  	// TpuIpv4CidrBlock: [Output only] The IP address range of the Cloud TPUs in
  1318  	// this cluster, in CIDR
  1319  	// (http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g.
  1320  	// `1.2.3.4/29`).
  1321  	TpuIpv4CidrBlock string `json:"tpuIpv4CidrBlock,omitempty"`
  1322  	// VerticalPodAutoscaling: Cluster-level Vertical Pod Autoscaling
  1323  	// configuration.
  1324  	VerticalPodAutoscaling *VerticalPodAutoscaling `json:"verticalPodAutoscaling,omitempty"`
  1325  	// WorkloadIdentityConfig: Configuration for the use of Kubernetes Service
  1326  	// Accounts in GCP IAM policies.
  1327  	WorkloadIdentityConfig *WorkloadIdentityConfig `json:"workloadIdentityConfig,omitempty"`
  1328  	// Zone: [Output only] The name of the Google Compute Engine zone
  1329  	// (https://cloud.google.com/compute/docs/zones#available) in which the cluster
  1330  	// resides. This field is deprecated, use location instead.
  1331  	Zone string `json:"zone,omitempty"`
  1332  
  1333  	// ServerResponse contains the HTTP response code and headers from the server.
  1334  	googleapi.ServerResponse `json:"-"`
  1335  	// ForceSendFields is a list of field names (e.g. "AddonsConfig") to
  1336  	// unconditionally include in API requests. By default, fields with empty or
  1337  	// default values are omitted from API requests. See
  1338  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1339  	// details.
  1340  	ForceSendFields []string `json:"-"`
  1341  	// NullFields is a list of field names (e.g. "AddonsConfig") to include in API
  1342  	// requests with the JSON null value. By default, fields with empty values are
  1343  	// omitted from API requests. See
  1344  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1345  	NullFields []string `json:"-"`
  1346  }
  1347  
  1348  func (s *Cluster) MarshalJSON() ([]byte, error) {
  1349  	type NoMethod Cluster
  1350  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1351  }
  1352  
  1353  // ClusterAutoscaling: ClusterAutoscaling contains global, per-cluster
  1354  // information required by Cluster Autoscaler to automatically adjust the size
  1355  // of the cluster and create/delete node pools based on the current needs.
  1356  type ClusterAutoscaling struct {
  1357  	// AutoprovisioningLocations: The list of Google Compute Engine zones
  1358  	// (https://cloud.google.com/compute/docs/zones#available) in which the
  1359  	// NodePool's nodes can be created by NAP.
  1360  	AutoprovisioningLocations []string `json:"autoprovisioningLocations,omitempty"`
  1361  	// AutoprovisioningNodePoolDefaults: AutoprovisioningNodePoolDefaults contains
  1362  	// defaults for a node pool created by NAP.
  1363  	AutoprovisioningNodePoolDefaults *AutoprovisioningNodePoolDefaults `json:"autoprovisioningNodePoolDefaults,omitempty"`
  1364  	// AutoscalingProfile: Defines autoscaling behaviour.
  1365  	//
  1366  	// Possible values:
  1367  	//   "PROFILE_UNSPECIFIED" - No change to autoscaling configuration.
  1368  	//   "OPTIMIZE_UTILIZATION" - Prioritize optimizing utilization of resources.
  1369  	//   "BALANCED" - Use default (balanced) autoscaling configuration.
  1370  	AutoscalingProfile string `json:"autoscalingProfile,omitempty"`
  1371  	// EnableNodeAutoprovisioning: Enables automatic node pool creation and
  1372  	// deletion.
  1373  	EnableNodeAutoprovisioning bool `json:"enableNodeAutoprovisioning,omitempty"`
  1374  	// ResourceLimits: Contains global constraints regarding minimum and maximum
  1375  	// amount of resources in the cluster.
  1376  	ResourceLimits []*ResourceLimit `json:"resourceLimits,omitempty"`
  1377  	// ForceSendFields is a list of field names (e.g. "AutoprovisioningLocations")
  1378  	// to unconditionally include in API requests. By default, fields with empty or
  1379  	// default values are omitted from API requests. See
  1380  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1381  	// details.
  1382  	ForceSendFields []string `json:"-"`
  1383  	// NullFields is a list of field names (e.g. "AutoprovisioningLocations") to
  1384  	// include in API requests with the JSON null value. By default, fields with
  1385  	// empty values are omitted from API requests. See
  1386  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1387  	NullFields []string `json:"-"`
  1388  }
  1389  
  1390  func (s *ClusterAutoscaling) MarshalJSON() ([]byte, error) {
  1391  	type NoMethod ClusterAutoscaling
  1392  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1393  }
  1394  
  1395  // ClusterNetworkPerformanceConfig: Configuration of network bandwidth tiers
  1396  type ClusterNetworkPerformanceConfig struct {
  1397  	// TotalEgressBandwidthTier: Specifies the total network bandwidth tier for
  1398  	// NodePools in the cluster.
  1399  	//
  1400  	// Possible values:
  1401  	//   "TIER_UNSPECIFIED" - Default value
  1402  	//   "TIER_1" - Higher bandwidth, actual values based on VM size.
  1403  	TotalEgressBandwidthTier string `json:"totalEgressBandwidthTier,omitempty"`
  1404  	// ForceSendFields is a list of field names (e.g. "TotalEgressBandwidthTier")
  1405  	// to unconditionally include in API requests. By default, fields with empty or
  1406  	// default values are omitted from API requests. See
  1407  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1408  	// details.
  1409  	ForceSendFields []string `json:"-"`
  1410  	// NullFields is a list of field names (e.g. "TotalEgressBandwidthTier") to
  1411  	// include in API requests with the JSON null value. By default, fields with
  1412  	// empty values are omitted from API requests. See
  1413  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1414  	NullFields []string `json:"-"`
  1415  }
  1416  
  1417  func (s *ClusterNetworkPerformanceConfig) MarshalJSON() ([]byte, error) {
  1418  	type NoMethod ClusterNetworkPerformanceConfig
  1419  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1420  }
  1421  
  1422  // ClusterUpdate: ClusterUpdate describes an update to the cluster. Exactly one
  1423  // update can be applied to a cluster with each request, so at most one field
  1424  // can be provided.
  1425  type ClusterUpdate struct {
  1426  	// AdditionalPodRangesConfig: The additional pod ranges to be added to the
  1427  	// cluster. These pod ranges can be used by node pools to allocate pod IPs.
  1428  	AdditionalPodRangesConfig *AdditionalPodRangesConfig `json:"additionalPodRangesConfig,omitempty"`
  1429  	// DesiredAddonsConfig: Configurations for the various addons available to run
  1430  	// in the cluster.
  1431  	DesiredAddonsConfig *AddonsConfig `json:"desiredAddonsConfig,omitempty"`
  1432  	// DesiredAuthenticatorGroupsConfig: The desired authenticator groups config
  1433  	// for the cluster.
  1434  	DesiredAuthenticatorGroupsConfig *AuthenticatorGroupsConfig `json:"desiredAuthenticatorGroupsConfig,omitempty"`
  1435  	// DesiredAutopilotWorkloadPolicyConfig: The desired workload policy
  1436  	// configuration for the autopilot cluster.
  1437  	DesiredAutopilotWorkloadPolicyConfig *WorkloadPolicyConfig `json:"desiredAutopilotWorkloadPolicyConfig,omitempty"`
  1438  	// DesiredBinaryAuthorization: The desired configuration options for the Binary
  1439  	// Authorization feature.
  1440  	DesiredBinaryAuthorization *BinaryAuthorization `json:"desiredBinaryAuthorization,omitempty"`
  1441  	// DesiredClusterAutoscaling: Cluster-level autoscaling configuration.
  1442  	DesiredClusterAutoscaling *ClusterAutoscaling `json:"desiredClusterAutoscaling,omitempty"`
  1443  	// DesiredContainerdConfig: The desired containerd config for the cluster.
  1444  	DesiredContainerdConfig *ContainerdConfig `json:"desiredContainerdConfig,omitempty"`
  1445  	// DesiredCostManagementConfig: The desired configuration for the fine-grained
  1446  	// cost management feature.
  1447  	DesiredCostManagementConfig *CostManagementConfig `json:"desiredCostManagementConfig,omitempty"`
  1448  	// DesiredDatabaseEncryption: Configuration of etcd encryption.
  1449  	DesiredDatabaseEncryption *DatabaseEncryption `json:"desiredDatabaseEncryption,omitempty"`
  1450  	// DesiredDatapathProvider: The desired datapath provider for the cluster.
  1451  	//
  1452  	// Possible values:
  1453  	//   "DATAPATH_PROVIDER_UNSPECIFIED" - Default value.
  1454  	//   "LEGACY_DATAPATH" - Use the IPTables implementation based on kube-proxy.
  1455  	//   "ADVANCED_DATAPATH" - Use the eBPF based GKE Dataplane V2 with additional
  1456  	// features. See the [GKE Dataplane V2
  1457  	// documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/datapla
  1458  	// ne-v2) for more.
  1459  	DesiredDatapathProvider string `json:"desiredDatapathProvider,omitempty"`
  1460  	// DesiredDefaultSnatStatus: The desired status of whether to disable default
  1461  	// sNAT for this cluster.
  1462  	DesiredDefaultSnatStatus *DefaultSnatStatus `json:"desiredDefaultSnatStatus,omitempty"`
  1463  	// DesiredDnsConfig: DNSConfig contains clusterDNS config for this cluster.
  1464  	DesiredDnsConfig *DNSConfig `json:"desiredDnsConfig,omitempty"`
  1465  	// DesiredEnableCiliumClusterwideNetworkPolicy: Enable/Disable Cilium
  1466  	// Clusterwide Network Policy for the cluster.
  1467  	DesiredEnableCiliumClusterwideNetworkPolicy bool `json:"desiredEnableCiliumClusterwideNetworkPolicy,omitempty"`
  1468  	// DesiredEnableFqdnNetworkPolicy: Enable/Disable FQDN Network Policy for the
  1469  	// cluster.
  1470  	DesiredEnableFqdnNetworkPolicy bool `json:"desiredEnableFqdnNetworkPolicy,omitempty"`
  1471  	// DesiredEnableMultiNetworking: Enable/Disable Multi-Networking for the
  1472  	// cluster
  1473  	DesiredEnableMultiNetworking bool `json:"desiredEnableMultiNetworking,omitempty"`
  1474  	// DesiredEnablePrivateEndpoint: Enable/Disable private endpoint for the
  1475  	// cluster's master.
  1476  	DesiredEnablePrivateEndpoint bool `json:"desiredEnablePrivateEndpoint,omitempty"`
  1477  	// DesiredFleet: The desired fleet configuration for the cluster.
  1478  	DesiredFleet *Fleet `json:"desiredFleet,omitempty"`
  1479  	// DesiredGatewayApiConfig: The desired config of Gateway API on this cluster.
  1480  	DesiredGatewayApiConfig *GatewayAPIConfig `json:"desiredGatewayApiConfig,omitempty"`
  1481  	// DesiredGcfsConfig: The desired GCFS config for the cluster
  1482  	DesiredGcfsConfig *GcfsConfig `json:"desiredGcfsConfig,omitempty"`
  1483  	// DesiredIdentityServiceConfig: The desired Identity Service component
  1484  	// configuration.
  1485  	DesiredIdentityServiceConfig *IdentityServiceConfig `json:"desiredIdentityServiceConfig,omitempty"`
  1486  	// DesiredImageType: The desired image type for the node pool. NOTE: Set the
  1487  	// "desired_node_pool" field as well.
  1488  	DesiredImageType string `json:"desiredImageType,omitempty"`
  1489  	// DesiredInTransitEncryptionConfig: Specify the details of in-transit
  1490  	// encryption.
  1491  	//
  1492  	// Possible values:
  1493  	//   "IN_TRANSIT_ENCRYPTION_CONFIG_UNSPECIFIED" - Unspecified, will be inferred
  1494  	// as default - IN_TRANSIT_ENCRYPTION_UNSPECIFIED.
  1495  	//   "IN_TRANSIT_ENCRYPTION_DISABLED" - In-transit encryption is disabled.
  1496  	//   "IN_TRANSIT_ENCRYPTION_INTER_NODE_TRANSPARENT" - Data in-transit is
  1497  	// encrypted using inter-node transparent encryption.
  1498  	DesiredInTransitEncryptionConfig string `json:"desiredInTransitEncryptionConfig,omitempty"`
  1499  	// DesiredIntraNodeVisibilityConfig: The desired config of Intra-node
  1500  	// visibility.
  1501  	DesiredIntraNodeVisibilityConfig *IntraNodeVisibilityConfig `json:"desiredIntraNodeVisibilityConfig,omitempty"`
  1502  	// DesiredK8sBetaApis: Desired Beta APIs to be enabled for cluster.
  1503  	DesiredK8sBetaApis *K8sBetaAPIConfig `json:"desiredK8sBetaApis,omitempty"`
  1504  	// DesiredL4ilbSubsettingConfig: The desired L4 Internal Load Balancer
  1505  	// Subsetting configuration.
  1506  	DesiredL4ilbSubsettingConfig *ILBSubsettingConfig `json:"desiredL4ilbSubsettingConfig,omitempty"`
  1507  	// DesiredLocations: The desired list of Google Compute Engine zones
  1508  	// (https://cloud.google.com/compute/docs/zones#available) in which the
  1509  	// cluster's nodes should be located. This list must always include the
  1510  	// cluster's primary zone. Warning: changing cluster locations will update the
  1511  	// locations of all node pools and will result in nodes being added and/or
  1512  	// removed.
  1513  	DesiredLocations []string `json:"desiredLocations,omitempty"`
  1514  	// DesiredLoggingConfig: The desired logging configuration.
  1515  	DesiredLoggingConfig *LoggingConfig `json:"desiredLoggingConfig,omitempty"`
  1516  	// DesiredLoggingService: The logging service the cluster should use to write
  1517  	// logs. Currently available options: * `logging.googleapis.com/kubernetes` -
  1518  	// The Cloud Logging service with a Kubernetes-native resource model *
  1519  	// `logging.googleapis.com` - The legacy Cloud Logging service (no longer
  1520  	// available as of GKE 1.15). * `none` - no logs will be exported from the
  1521  	// cluster. If left as an empty string,`logging.googleapis.com/kubernetes` will
  1522  	// be used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
  1523  	DesiredLoggingService string `json:"desiredLoggingService,omitempty"`
  1524  	// DesiredMasterAuthorizedNetworksConfig: The desired configuration options for
  1525  	// master authorized networks feature.
  1526  	DesiredMasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `json:"desiredMasterAuthorizedNetworksConfig,omitempty"`
  1527  	// DesiredMasterVersion: The Kubernetes version to change the master to. Users
  1528  	// may specify either explicit versions offered by Kubernetes Engine or version
  1529  	// aliases, which have the following behavior: - "latest": picks the highest
  1530  	// valid Kubernetes version - "1.X": picks the highest valid patch+gke.N patch
  1531  	// in the 1.X version - "1.X.Y": picks the highest valid gke.N patch in the
  1532  	// 1.X.Y version - "1.X.Y-gke.N": picks an explicit Kubernetes version - "-":
  1533  	// picks the default Kubernetes version
  1534  	DesiredMasterVersion string `json:"desiredMasterVersion,omitempty"`
  1535  	// DesiredMeshCertificates: Configuration for issuance of mTLS keys and
  1536  	// certificates to Kubernetes pods.
  1537  	DesiredMeshCertificates *MeshCertificates `json:"desiredMeshCertificates,omitempty"`
  1538  	// DesiredMonitoringConfig: The desired monitoring configuration.
  1539  	DesiredMonitoringConfig *MonitoringConfig `json:"desiredMonitoringConfig,omitempty"`
  1540  	// DesiredMonitoringService: The monitoring service the cluster should use to
  1541  	// write metrics. Currently available options: *
  1542  	// "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring service with a
  1543  	// Kubernetes-native resource model * `monitoring.googleapis.com` - The legacy
  1544  	// Cloud Monitoring service (no longer available as of GKE 1.15). * `none` - No
  1545  	// metrics will be exported from the cluster. If left as an empty
  1546  	// string,`monitoring.googleapis.com/kubernetes` will be used for GKE 1.14+ or
  1547  	// `monitoring.googleapis.com` for earlier versions.
  1548  	DesiredMonitoringService string `json:"desiredMonitoringService,omitempty"`
  1549  	// DesiredNetworkPerformanceConfig: The desired network performance config.
  1550  	DesiredNetworkPerformanceConfig *ClusterNetworkPerformanceConfig `json:"desiredNetworkPerformanceConfig,omitempty"`
  1551  	// DesiredNodeKubeletConfig: The desired node kubelet config for the cluster.
  1552  	DesiredNodeKubeletConfig *NodeKubeletConfig `json:"desiredNodeKubeletConfig,omitempty"`
  1553  	// DesiredNodePoolAutoConfigKubeletConfig: The desired node kubelet config for
  1554  	// all auto-provisioned node pools in autopilot clusters and node
  1555  	// auto-provisioning enabled clusters.
  1556  	DesiredNodePoolAutoConfigKubeletConfig *NodeKubeletConfig `json:"desiredNodePoolAutoConfigKubeletConfig,omitempty"`
  1557  	// DesiredNodePoolAutoConfigNetworkTags: The desired network tags that apply to
  1558  	// all auto-provisioned node pools in autopilot clusters and node
  1559  	// auto-provisioning enabled clusters.
  1560  	DesiredNodePoolAutoConfigNetworkTags *NetworkTags `json:"desiredNodePoolAutoConfigNetworkTags,omitempty"`
  1561  	// DesiredNodePoolAutoConfigResourceManagerTags: The desired resource manager
  1562  	// tags that apply to all auto-provisioned node pools in autopilot clusters and
  1563  	// node auto-provisioning enabled clusters.
  1564  	DesiredNodePoolAutoConfigResourceManagerTags *ResourceManagerTags `json:"desiredNodePoolAutoConfigResourceManagerTags,omitempty"`
  1565  	// DesiredNodePoolAutoscaling: Autoscaler configuration for the node pool
  1566  	// specified in desired_node_pool_id. If there is only one pool in the cluster
  1567  	// and desired_node_pool_id is not provided then the change applies to that
  1568  	// single node pool.
  1569  	DesiredNodePoolAutoscaling *NodePoolAutoscaling `json:"desiredNodePoolAutoscaling,omitempty"`
  1570  	// DesiredNodePoolId: The node pool to be upgraded. This field is mandatory if
  1571  	// "desired_node_version", "desired_image_family" or
  1572  	// "desired_node_pool_autoscaling" is specified and there is more than one node
  1573  	// pool on the cluster.
  1574  	DesiredNodePoolId string `json:"desiredNodePoolId,omitempty"`
  1575  	// DesiredNodePoolLoggingConfig: The desired node pool logging configuration
  1576  	// defaults for the cluster.
  1577  	DesiredNodePoolLoggingConfig *NodePoolLoggingConfig `json:"desiredNodePoolLoggingConfig,omitempty"`
  1578  	// DesiredNodeVersion: The Kubernetes version to change the nodes to (typically
  1579  	// an upgrade). Users may specify either explicit versions offered by
  1580  	// Kubernetes Engine or version aliases, which have the following behavior: -
  1581  	// "latest": picks the highest valid Kubernetes version - "1.X": picks the
  1582  	// highest valid patch+gke.N patch in the 1.X version - "1.X.Y": picks the
  1583  	// highest valid gke.N patch in the 1.X.Y version - "1.X.Y-gke.N": picks an
  1584  	// explicit Kubernetes version - "-": picks the Kubernetes master version
  1585  	DesiredNodeVersion string `json:"desiredNodeVersion,omitempty"`
  1586  	// DesiredNotificationConfig: The desired notification configuration.
  1587  	DesiredNotificationConfig *NotificationConfig `json:"desiredNotificationConfig,omitempty"`
  1588  	// DesiredParentProductConfig: The desired parent product config for the
  1589  	// cluster.
  1590  	DesiredParentProductConfig *ParentProductConfig `json:"desiredParentProductConfig,omitempty"`
  1591  	// DesiredPrivateClusterConfig: The desired private cluster configuration.
  1592  	// master_global_access_config is the only field that can be changed via this
  1593  	// field. See also ClusterUpdate.desired_enable_private_endpoint for modifying
  1594  	// other fields within PrivateClusterConfig.
  1595  	DesiredPrivateClusterConfig *PrivateClusterConfig `json:"desiredPrivateClusterConfig,omitempty"`
  1596  	// DesiredPrivateIpv6GoogleAccess: The desired state of IPv6 connectivity to
  1597  	// Google Services.
  1598  	//
  1599  	// Possible values:
  1600  	//   "PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED" - Default value. Same as DISABLED
  1601  	//   "PRIVATE_IPV6_GOOGLE_ACCESS_DISABLED" - No private access to or from
  1602  	// Google Services
  1603  	//   "PRIVATE_IPV6_GOOGLE_ACCESS_TO_GOOGLE" - Enables private IPv6 access to
  1604  	// Google Services from GKE
  1605  	//   "PRIVATE_IPV6_GOOGLE_ACCESS_BIDIRECTIONAL" - Enables private IPv6 access
  1606  	// to and from Google Services
  1607  	DesiredPrivateIpv6GoogleAccess string `json:"desiredPrivateIpv6GoogleAccess,omitempty"`
  1608  	// DesiredReleaseChannel: The desired release channel configuration.
  1609  	DesiredReleaseChannel *ReleaseChannel `json:"desiredReleaseChannel,omitempty"`
  1610  	// DesiredResourceUsageExportConfig: The desired configuration for exporting
  1611  	// resource usage.
  1612  	DesiredResourceUsageExportConfig *ResourceUsageExportConfig `json:"desiredResourceUsageExportConfig,omitempty"`
  1613  	// DesiredSecurityPostureConfig: Enable/Disable Security Posture API features
  1614  	// for the cluster.
  1615  	DesiredSecurityPostureConfig *SecurityPostureConfig `json:"desiredSecurityPostureConfig,omitempty"`
  1616  	// DesiredServiceExternalIpsConfig: ServiceExternalIPsConfig specifies the
  1617  	// config for the use of Services with ExternalIPs field.
  1618  	DesiredServiceExternalIpsConfig *ServiceExternalIPsConfig `json:"desiredServiceExternalIpsConfig,omitempty"`
  1619  	// DesiredShieldedNodes: Configuration for Shielded Nodes.
  1620  	DesiredShieldedNodes *ShieldedNodes `json:"desiredShieldedNodes,omitempty"`
  1621  	// DesiredStackType: The desired stack type of the cluster. If a stack type is
  1622  	// provided and does not match the current stack type of the cluster, update
  1623  	// will attempt to change the stack type to the new type.
  1624  	//
  1625  	// Possible values:
  1626  	//   "STACK_TYPE_UNSPECIFIED" - Default value, will be defaulted as IPV4 only
  1627  	//   "IPV4" - Cluster is IPV4 only
  1628  	//   "IPV4_IPV6" - Cluster can use both IPv4 and IPv6
  1629  	DesiredStackType string `json:"desiredStackType,omitempty"`
  1630  	// DesiredVerticalPodAutoscaling: Cluster-level Vertical Pod Autoscaling
  1631  	// configuration.
  1632  	DesiredVerticalPodAutoscaling *VerticalPodAutoscaling `json:"desiredVerticalPodAutoscaling,omitempty"`
  1633  	// DesiredWorkloadIdentityConfig: Configuration for Workload Identity.
  1634  	DesiredWorkloadIdentityConfig *WorkloadIdentityConfig `json:"desiredWorkloadIdentityConfig,omitempty"`
  1635  	// EnableK8sBetaApis: Kubernetes open source beta apis enabled on the cluster.
  1636  	// Only beta apis
  1637  	EnableK8sBetaApis *K8sBetaAPIConfig `json:"enableK8sBetaApis,omitempty"`
  1638  	// Etag: The current etag of the cluster. If an etag is provided and does not
  1639  	// match the current etag of the cluster, update will be blocked and an ABORTED
  1640  	// error will be returned.
  1641  	Etag string `json:"etag,omitempty"`
  1642  	// RemovedAdditionalPodRangesConfig: The additional pod ranges that are to be
  1643  	// removed from the cluster. The pod ranges specified here must have been
  1644  	// specified earlier in the 'additional_pod_ranges_config' argument.
  1645  	RemovedAdditionalPodRangesConfig *AdditionalPodRangesConfig `json:"removedAdditionalPodRangesConfig,omitempty"`
  1646  	// ForceSendFields is a list of field names (e.g. "AdditionalPodRangesConfig")
  1647  	// to unconditionally include in API requests. By default, fields with empty or
  1648  	// default values are omitted from API requests. See
  1649  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1650  	// details.
  1651  	ForceSendFields []string `json:"-"`
  1652  	// NullFields is a list of field names (e.g. "AdditionalPodRangesConfig") to
  1653  	// include in API requests with the JSON null value. By default, fields with
  1654  	// empty values are omitted from API requests. See
  1655  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1656  	NullFields []string `json:"-"`
  1657  }
  1658  
  1659  func (s *ClusterUpdate) MarshalJSON() ([]byte, error) {
  1660  	type NoMethod ClusterUpdate
  1661  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1662  }
  1663  
  1664  // CompleteIPRotationRequest: CompleteIPRotationRequest moves the cluster
  1665  // master back into single-IP mode.
  1666  type CompleteIPRotationRequest struct {
  1667  	// ClusterId: Deprecated. The name of the cluster. This field has been
  1668  	// deprecated and replaced by the name field.
  1669  	ClusterId string `json:"clusterId,omitempty"`
  1670  	// Name: The name (project, location, cluster name) of the cluster to complete
  1671  	// IP rotation. Specified in the format `projects/*/locations/*/clusters/*`.
  1672  	Name string `json:"name,omitempty"`
  1673  	// ProjectId: Deprecated. The Google Developers Console project ID or project
  1674  	// number
  1675  	// (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  1676  	// This field has been deprecated and replaced by the name field.
  1677  	ProjectId string `json:"projectId,omitempty"`
  1678  	// Zone: Deprecated. The name of the Google Compute Engine zone
  1679  	// (https://cloud.google.com/compute/docs/zones#available) in which the cluster
  1680  	// resides. This field has been deprecated and replaced by the name field.
  1681  	Zone string `json:"zone,omitempty"`
  1682  	// ForceSendFields is a list of field names (e.g. "ClusterId") to
  1683  	// unconditionally include in API requests. By default, fields with empty or
  1684  	// default values are omitted from API requests. See
  1685  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1686  	// details.
  1687  	ForceSendFields []string `json:"-"`
  1688  	// NullFields is a list of field names (e.g. "ClusterId") to include in API
  1689  	// requests with the JSON null value. By default, fields with empty values are
  1690  	// omitted from API requests. See
  1691  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1692  	NullFields []string `json:"-"`
  1693  }
  1694  
  1695  func (s *CompleteIPRotationRequest) MarshalJSON() ([]byte, error) {
  1696  	type NoMethod CompleteIPRotationRequest
  1697  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1698  }
  1699  
  1700  // CompleteNodePoolUpgradeRequest: CompleteNodePoolUpgradeRequest sets the name
  1701  // of target node pool to complete upgrade.
  1702  type CompleteNodePoolUpgradeRequest struct {
  1703  }
  1704  
  1705  // ConfidentialNodes: ConfidentialNodes is configuration for the confidential
  1706  // nodes feature, which makes nodes run on confidential VMs.
  1707  type ConfidentialNodes struct {
  1708  	// Enabled: Whether Confidential Nodes feature is enabled.
  1709  	Enabled bool `json:"enabled,omitempty"`
  1710  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  1711  	// include in API requests. By default, fields with empty or default values are
  1712  	// omitted from API requests. See
  1713  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1714  	// details.
  1715  	ForceSendFields []string `json:"-"`
  1716  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  1717  	// requests with the JSON null value. By default, fields with empty values are
  1718  	// omitted from API requests. See
  1719  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1720  	NullFields []string `json:"-"`
  1721  }
  1722  
  1723  func (s *ConfidentialNodes) MarshalJSON() ([]byte, error) {
  1724  	type NoMethod ConfidentialNodes
  1725  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1726  }
  1727  
  1728  // ConfigConnectorConfig: Configuration options for the Config Connector
  1729  // add-on.
  1730  type ConfigConnectorConfig struct {
  1731  	// Enabled: Whether Cloud Connector is enabled for this cluster.
  1732  	Enabled bool `json:"enabled,omitempty"`
  1733  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  1734  	// include in API requests. By default, fields with empty or default values are
  1735  	// omitted from API requests. See
  1736  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1737  	// details.
  1738  	ForceSendFields []string `json:"-"`
  1739  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  1740  	// requests with the JSON null value. By default, fields with empty values are
  1741  	// omitted from API requests. See
  1742  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1743  	NullFields []string `json:"-"`
  1744  }
  1745  
  1746  func (s *ConfigConnectorConfig) MarshalJSON() ([]byte, error) {
  1747  	type NoMethod ConfigConnectorConfig
  1748  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1749  }
  1750  
  1751  // ConsumptionMeteringConfig: Parameters for controlling consumption metering.
  1752  type ConsumptionMeteringConfig struct {
  1753  	// Enabled: Whether to enable consumption metering for this cluster. If
  1754  	// enabled, a second BigQuery table will be created to hold resource
  1755  	// consumption records.
  1756  	Enabled bool `json:"enabled,omitempty"`
  1757  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  1758  	// include in API requests. By default, fields with empty or default values are
  1759  	// omitted from API requests. See
  1760  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1761  	// details.
  1762  	ForceSendFields []string `json:"-"`
  1763  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  1764  	// requests with the JSON null value. By default, fields with empty values are
  1765  	// omitted from API requests. See
  1766  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1767  	NullFields []string `json:"-"`
  1768  }
  1769  
  1770  func (s *ConsumptionMeteringConfig) MarshalJSON() ([]byte, error) {
  1771  	type NoMethod ConsumptionMeteringConfig
  1772  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1773  }
  1774  
  1775  // ContainerdConfig: ContainerdConfig contains configuration to customize
  1776  // containerd.
  1777  type ContainerdConfig struct {
  1778  	// PrivateRegistryAccessConfig: PrivateRegistryAccessConfig is used to
  1779  	// configure access configuration for private container registries.
  1780  	PrivateRegistryAccessConfig *PrivateRegistryAccessConfig `json:"privateRegistryAccessConfig,omitempty"`
  1781  	// ForceSendFields is a list of field names (e.g.
  1782  	// "PrivateRegistryAccessConfig") to unconditionally include in API requests.
  1783  	// By default, fields with empty or default values are omitted from API
  1784  	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
  1785  	// for more details.
  1786  	ForceSendFields []string `json:"-"`
  1787  	// NullFields is a list of field names (e.g. "PrivateRegistryAccessConfig") to
  1788  	// include in API requests with the JSON null value. By default, fields with
  1789  	// empty values are omitted from API requests. See
  1790  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1791  	NullFields []string `json:"-"`
  1792  }
  1793  
  1794  func (s *ContainerdConfig) MarshalJSON() ([]byte, error) {
  1795  	type NoMethod ContainerdConfig
  1796  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1797  }
  1798  
  1799  // CostManagementConfig: Configuration for fine-grained cost management
  1800  // feature.
  1801  type CostManagementConfig struct {
  1802  	// Enabled: Whether the feature is enabled or not.
  1803  	Enabled bool `json:"enabled,omitempty"`
  1804  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  1805  	// include in API requests. By default, fields with empty or default values are
  1806  	// omitted from API requests. See
  1807  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1808  	// details.
  1809  	ForceSendFields []string `json:"-"`
  1810  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  1811  	// requests with the JSON null value. By default, fields with empty values are
  1812  	// omitted from API requests. See
  1813  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1814  	NullFields []string `json:"-"`
  1815  }
  1816  
  1817  func (s *CostManagementConfig) MarshalJSON() ([]byte, error) {
  1818  	type NoMethod CostManagementConfig
  1819  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1820  }
  1821  
  1822  // CreateClusterRequest: CreateClusterRequest creates a cluster.
  1823  type CreateClusterRequest struct {
  1824  	// Cluster: Required. A cluster resource
  1825  	// (https://cloud.google.com/container-engine/reference/rest/v1/projects.locations.clusters)
  1826  	Cluster *Cluster `json:"cluster,omitempty"`
  1827  	// Parent: The parent (project and location) where the cluster will be created.
  1828  	// Specified in the format `projects/*/locations/*`.
  1829  	Parent string `json:"parent,omitempty"`
  1830  	// ProjectId: Deprecated. The Google Developers Console project ID or project
  1831  	// number
  1832  	// (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  1833  	// This field has been deprecated and replaced by the parent field.
  1834  	ProjectId string `json:"projectId,omitempty"`
  1835  	// Zone: Deprecated. The name of the Google Compute Engine zone
  1836  	// (https://cloud.google.com/compute/docs/zones#available) in which the cluster
  1837  	// resides. This field has been deprecated and replaced by the parent field.
  1838  	Zone string `json:"zone,omitempty"`
  1839  	// ForceSendFields is a list of field names (e.g. "Cluster") to unconditionally
  1840  	// include in API requests. By default, fields with empty or default values are
  1841  	// omitted from API requests. See
  1842  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1843  	// details.
  1844  	ForceSendFields []string `json:"-"`
  1845  	// NullFields is a list of field names (e.g. "Cluster") to include in API
  1846  	// requests with the JSON null value. By default, fields with empty values are
  1847  	// omitted from API requests. See
  1848  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1849  	NullFields []string `json:"-"`
  1850  }
  1851  
  1852  func (s *CreateClusterRequest) MarshalJSON() ([]byte, error) {
  1853  	type NoMethod CreateClusterRequest
  1854  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1855  }
  1856  
  1857  // CreateNodePoolRequest: CreateNodePoolRequest creates a node pool for a
  1858  // cluster.
  1859  type CreateNodePoolRequest struct {
  1860  	// ClusterId: Deprecated. The name of the cluster. This field has been
  1861  	// deprecated and replaced by the parent field.
  1862  	ClusterId string `json:"clusterId,omitempty"`
  1863  	// NodePool: Required. The node pool to create.
  1864  	NodePool *NodePool `json:"nodePool,omitempty"`
  1865  	// Parent: The parent (project, location, cluster name) where the node pool
  1866  	// will be created. Specified in the format
  1867  	// `projects/*/locations/*/clusters/*`.
  1868  	Parent string `json:"parent,omitempty"`
  1869  	// ProjectId: Deprecated. The Google Developers Console project ID or project
  1870  	// number
  1871  	// (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  1872  	// This field has been deprecated and replaced by the parent field.
  1873  	ProjectId string `json:"projectId,omitempty"`
  1874  	// Zone: Deprecated. The name of the Google Compute Engine zone
  1875  	// (https://cloud.google.com/compute/docs/zones#available) in which the cluster
  1876  	// resides. This field has been deprecated and replaced by the parent field.
  1877  	Zone string `json:"zone,omitempty"`
  1878  	// ForceSendFields is a list of field names (e.g. "ClusterId") to
  1879  	// unconditionally include in API requests. By default, fields with empty or
  1880  	// default values are omitted from API requests. See
  1881  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1882  	// details.
  1883  	ForceSendFields []string `json:"-"`
  1884  	// NullFields is a list of field names (e.g. "ClusterId") to include in API
  1885  	// requests with the JSON null value. By default, fields with empty values are
  1886  	// omitted from API requests. See
  1887  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1888  	NullFields []string `json:"-"`
  1889  }
  1890  
  1891  func (s *CreateNodePoolRequest) MarshalJSON() ([]byte, error) {
  1892  	type NoMethod CreateNodePoolRequest
  1893  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1894  }
  1895  
  1896  // DNSConfig: DNSConfig contains the desired set of options for configuring
  1897  // clusterDNS.
  1898  type DNSConfig struct {
  1899  	// AdditiveVpcScopeDnsDomain: Optional. The domain used in Additive VPC scope.
  1900  	AdditiveVpcScopeDnsDomain string `json:"additiveVpcScopeDnsDomain,omitempty"`
  1901  	// ClusterDns: cluster_dns indicates which in-cluster DNS provider should be
  1902  	// used.
  1903  	//
  1904  	// Possible values:
  1905  	//   "PROVIDER_UNSPECIFIED" - Default value
  1906  	//   "PLATFORM_DEFAULT" - Use GKE default DNS provider(kube-dns) for DNS
  1907  	// resolution.
  1908  	//   "CLOUD_DNS" - Use CloudDNS for DNS resolution.
  1909  	//   "KUBE_DNS" - Use KubeDNS for DNS resolution.
  1910  	ClusterDns string `json:"clusterDns,omitempty"`
  1911  	// ClusterDnsDomain: cluster_dns_domain is the suffix used for all cluster
  1912  	// service records.
  1913  	ClusterDnsDomain string `json:"clusterDnsDomain,omitempty"`
  1914  	// ClusterDnsScope: cluster_dns_scope indicates the scope of access to cluster
  1915  	// DNS records.
  1916  	//
  1917  	// Possible values:
  1918  	//   "DNS_SCOPE_UNSPECIFIED" - Default value, will be inferred as cluster
  1919  	// scope.
  1920  	//   "CLUSTER_SCOPE" - DNS records are accessible from within the cluster.
  1921  	//   "VPC_SCOPE" - DNS records are accessible from within the VPC.
  1922  	ClusterDnsScope string `json:"clusterDnsScope,omitempty"`
  1923  	// ForceSendFields is a list of field names (e.g. "AdditiveVpcScopeDnsDomain")
  1924  	// to unconditionally include in API requests. By default, fields with empty or
  1925  	// default values are omitted from API requests. See
  1926  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1927  	// details.
  1928  	ForceSendFields []string `json:"-"`
  1929  	// NullFields is a list of field names (e.g. "AdditiveVpcScopeDnsDomain") to
  1930  	// include in API requests with the JSON null value. By default, fields with
  1931  	// empty values are omitted from API requests. See
  1932  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1933  	NullFields []string `json:"-"`
  1934  }
  1935  
  1936  func (s *DNSConfig) MarshalJSON() ([]byte, error) {
  1937  	type NoMethod DNSConfig
  1938  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1939  }
  1940  
  1941  // DailyMaintenanceWindow: Time window specified for daily maintenance
  1942  // operations.
  1943  type DailyMaintenanceWindow struct {
  1944  	// Duration: [Output only] Duration of the time window, automatically chosen to
  1945  	// be smallest possible in the given scenario. Duration will be in RFC3339
  1946  	// (https://www.ietf.org/rfc/rfc3339.txt) format "PTnHnMnS".
  1947  	Duration string `json:"duration,omitempty"`
  1948  	// StartTime: Time within the maintenance window to start the maintenance
  1949  	// operations. Time format should be in RFC3339
  1950  	// (https://www.ietf.org/rfc/rfc3339.txt) format "HH:MM", where HH : [00-23]
  1951  	// and MM : [00-59] GMT.
  1952  	StartTime string `json:"startTime,omitempty"`
  1953  	// ForceSendFields is a list of field names (e.g. "Duration") to
  1954  	// unconditionally include in API requests. By default, fields with empty or
  1955  	// default values are omitted from API requests. See
  1956  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1957  	// details.
  1958  	ForceSendFields []string `json:"-"`
  1959  	// NullFields is a list of field names (e.g. "Duration") to include in API
  1960  	// requests with the JSON null value. By default, fields with empty values are
  1961  	// omitted from API requests. See
  1962  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1963  	NullFields []string `json:"-"`
  1964  }
  1965  
  1966  func (s *DailyMaintenanceWindow) MarshalJSON() ([]byte, error) {
  1967  	type NoMethod DailyMaintenanceWindow
  1968  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1969  }
  1970  
  1971  // DatabaseEncryption: Configuration of etcd encryption.
  1972  type DatabaseEncryption struct {
  1973  	// CurrentState: Output only. The current state of etcd encryption.
  1974  	//
  1975  	// Possible values:
  1976  	//   "CURRENT_STATE_UNSPECIFIED" - Should never be set
  1977  	//   "CURRENT_STATE_ENCRYPTED" - Secrets in etcd are encrypted.
  1978  	//   "CURRENT_STATE_DECRYPTED" - Secrets in etcd are stored in plain text (at
  1979  	// etcd level) - this is unrelated to Compute Engine level full disk
  1980  	// encryption.
  1981  	//   "CURRENT_STATE_ENCRYPTION_PENDING" - Encryption (or re-encryption with a
  1982  	// different CloudKMS key) of Secrets is in progress.
  1983  	//   "CURRENT_STATE_ENCRYPTION_ERROR" - Encryption (or re-encryption with a
  1984  	// different CloudKMS key) of Secrets in etcd encountered an error.
  1985  	//   "CURRENT_STATE_DECRYPTION_PENDING" - De-crypting Secrets to plain text in
  1986  	// etcd is in progress.
  1987  	//   "CURRENT_STATE_DECRYPTION_ERROR" - De-crypting Secrets to plain text in
  1988  	// etcd encountered an error.
  1989  	CurrentState string `json:"currentState,omitempty"`
  1990  	// DecryptionKeys: Output only. Keys in use by the cluster for decrypting
  1991  	// existing objects, in addition to the key in `key_name`. Each item is a
  1992  	// CloudKMS key resource.
  1993  	DecryptionKeys []string `json:"decryptionKeys,omitempty"`
  1994  	// KeyName: Name of CloudKMS key to use for the encryption of secrets in etcd.
  1995  	// Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
  1996  	KeyName string `json:"keyName,omitempty"`
  1997  	// LastOperationErrors: Output only. Records errors seen during
  1998  	// DatabaseEncryption update operations.
  1999  	LastOperationErrors []*OperationError `json:"lastOperationErrors,omitempty"`
  2000  	// State: The desired state of etcd encryption.
  2001  	//
  2002  	// Possible values:
  2003  	//   "UNKNOWN" - Should never be set
  2004  	//   "ENCRYPTED" - Secrets in etcd are encrypted.
  2005  	//   "DECRYPTED" - Secrets in etcd are stored in plain text (at etcd level) -
  2006  	// this is unrelated to Compute Engine level full disk encryption.
  2007  	State string `json:"state,omitempty"`
  2008  	// ForceSendFields is a list of field names (e.g. "CurrentState") to
  2009  	// unconditionally include in API requests. By default, fields with empty or
  2010  	// default values are omitted from API requests. See
  2011  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2012  	// details.
  2013  	ForceSendFields []string `json:"-"`
  2014  	// NullFields is a list of field names (e.g. "CurrentState") to include in API
  2015  	// requests with the JSON null value. By default, fields with empty values are
  2016  	// omitted from API requests. See
  2017  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2018  	NullFields []string `json:"-"`
  2019  }
  2020  
  2021  func (s *DatabaseEncryption) MarshalJSON() ([]byte, error) {
  2022  	type NoMethod DatabaseEncryption
  2023  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2024  }
  2025  
  2026  // DefaultSnatStatus: DefaultSnatStatus contains the desired state of whether
  2027  // default sNAT should be disabled on the cluster.
  2028  type DefaultSnatStatus struct {
  2029  	// Disabled: Disables cluster default sNAT rules.
  2030  	Disabled bool `json:"disabled,omitempty"`
  2031  	// ForceSendFields is a list of field names (e.g. "Disabled") to
  2032  	// unconditionally include in API requests. By default, fields with empty or
  2033  	// default values are omitted from API requests. See
  2034  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2035  	// details.
  2036  	ForceSendFields []string `json:"-"`
  2037  	// NullFields is a list of field names (e.g. "Disabled") to include in API
  2038  	// requests with the JSON null value. By default, fields with empty values are
  2039  	// omitted from API requests. See
  2040  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2041  	NullFields []string `json:"-"`
  2042  }
  2043  
  2044  func (s *DefaultSnatStatus) MarshalJSON() ([]byte, error) {
  2045  	type NoMethod DefaultSnatStatus
  2046  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2047  }
  2048  
  2049  // DnsCacheConfig: Configuration for NodeLocal DNSCache
  2050  type DnsCacheConfig struct {
  2051  	// Enabled: Whether NodeLocal DNSCache is enabled for this cluster.
  2052  	Enabled bool `json:"enabled,omitempty"`
  2053  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  2054  	// include in API requests. By default, fields with empty or default values are
  2055  	// omitted from API requests. See
  2056  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2057  	// details.
  2058  	ForceSendFields []string `json:"-"`
  2059  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  2060  	// requests with the JSON null value. By default, fields with empty values are
  2061  	// omitted from API requests. See
  2062  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2063  	NullFields []string `json:"-"`
  2064  }
  2065  
  2066  func (s *DnsCacheConfig) MarshalJSON() ([]byte, error) {
  2067  	type NoMethod DnsCacheConfig
  2068  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2069  }
  2070  
  2071  // Empty: A generic empty message that you can re-use to avoid defining
  2072  // duplicated empty messages in your APIs. A typical example is to use it as
  2073  // the request or the response type of an API method. For instance: service Foo
  2074  // { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }
  2075  type Empty struct {
  2076  	// ServerResponse contains the HTTP response code and headers from the server.
  2077  	googleapi.ServerResponse `json:"-"`
  2078  }
  2079  
  2080  // EnterpriseConfig: EnterpriseConfig is the cluster enterprise configuration.
  2081  type EnterpriseConfig struct {
  2082  	// ClusterTier: Output only. [Output only] cluster_tier specifies the premium
  2083  	// tier of the cluster.
  2084  	//
  2085  	// Possible values:
  2086  	//   "CLUSTER_TIER_UNSPECIFIED" - CLUSTER_TIER_UNSPECIFIED is when cluster_tier
  2087  	// is not set.
  2088  	//   "STANDARD" - STANDARD indicates a standard GKE cluster.
  2089  	//   "ENTERPRISE" - ENTERPRISE indicates a GKE Enterprise cluster.
  2090  	ClusterTier string `json:"clusterTier,omitempty"`
  2091  	// ForceSendFields is a list of field names (e.g. "ClusterTier") to
  2092  	// unconditionally include in API requests. By default, fields with empty or
  2093  	// default values are omitted from API requests. See
  2094  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2095  	// details.
  2096  	ForceSendFields []string `json:"-"`
  2097  	// NullFields is a list of field names (e.g. "ClusterTier") to include in API
  2098  	// requests with the JSON null value. By default, fields with empty values are
  2099  	// omitted from API requests. See
  2100  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2101  	NullFields []string `json:"-"`
  2102  }
  2103  
  2104  func (s *EnterpriseConfig) MarshalJSON() ([]byte, error) {
  2105  	type NoMethod EnterpriseConfig
  2106  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2107  }
  2108  
  2109  // EphemeralStorageLocalSsdConfig: EphemeralStorageLocalSsdConfig contains
  2110  // configuration for the node ephemeral storage using Local SSDs.
  2111  type EphemeralStorageLocalSsdConfig struct {
  2112  	// LocalSsdCount: Number of local SSDs to use to back ephemeral storage. Uses
  2113  	// NVMe interfaces. A zero (or unset) value has different meanings depending on
  2114  	// machine type being used: 1. For pre-Gen3 machines, which support flexible
  2115  	// numbers of local ssds, zero (or unset) means to disable using local SSDs as
  2116  	// ephemeral storage. The limit for this value is dependent upon the maximum
  2117  	// number of disk available on a machine per zone. See:
  2118  	// https://cloud.google.com/compute/docs/disks/local-ssd for more information.
  2119  	// 2. For Gen3 machines which dictate a specific number of local ssds, zero (or
  2120  	// unset) means to use the default number of local ssds that goes with that
  2121  	// machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds
  2122  	// would be provisioned. For c3-standard-8 (which doesn't support local ssds),
  2123  	// 0 will be provisioned. See
  2124  	// https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds
  2125  	// for more info.
  2126  	LocalSsdCount int64 `json:"localSsdCount,omitempty"`
  2127  	// ForceSendFields is a list of field names (e.g. "LocalSsdCount") to
  2128  	// unconditionally include in API requests. By default, fields with empty or
  2129  	// default values are omitted from API requests. See
  2130  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2131  	// details.
  2132  	ForceSendFields []string `json:"-"`
  2133  	// NullFields is a list of field names (e.g. "LocalSsdCount") to include in API
  2134  	// requests with the JSON null value. By default, fields with empty values are
  2135  	// omitted from API requests. See
  2136  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2137  	NullFields []string `json:"-"`
  2138  }
  2139  
  2140  func (s *EphemeralStorageLocalSsdConfig) MarshalJSON() ([]byte, error) {
  2141  	type NoMethod EphemeralStorageLocalSsdConfig
  2142  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2143  }
  2144  
  2145  // FastSocket: Configuration of Fast Socket feature.
  2146  type FastSocket struct {
  2147  	// Enabled: Whether Fast Socket features are enabled in the node pool.
  2148  	Enabled bool `json:"enabled,omitempty"`
  2149  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  2150  	// include in API requests. By default, fields with empty or default values are
  2151  	// omitted from API requests. See
  2152  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2153  	// details.
  2154  	ForceSendFields []string `json:"-"`
  2155  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  2156  	// requests with the JSON null value. By default, fields with empty values are
  2157  	// omitted from API requests. See
  2158  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2159  	NullFields []string `json:"-"`
  2160  }
  2161  
  2162  func (s *FastSocket) MarshalJSON() ([]byte, error) {
  2163  	type NoMethod FastSocket
  2164  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2165  }
  2166  
  2167  // Filter: Allows filtering to one or more specific event types. If event types
  2168  // are present, those and only those event types will be transmitted to the
  2169  // cluster. Other types will be skipped. If no filter is specified, or no event
  2170  // types are present, all event types will be sent
  2171  type Filter struct {
  2172  	// EventType: Event types to allowlist.
  2173  	//
  2174  	// Possible values:
  2175  	//   "EVENT_TYPE_UNSPECIFIED" - Not set, will be ignored.
  2176  	//   "UPGRADE_AVAILABLE_EVENT" - Corresponds with UpgradeAvailableEvent.
  2177  	//   "UPGRADE_EVENT" - Corresponds with UpgradeEvent.
  2178  	//   "SECURITY_BULLETIN_EVENT" - Corresponds with SecurityBulletinEvent.
  2179  	EventType []string `json:"eventType,omitempty"`
  2180  	// ForceSendFields is a list of field names (e.g. "EventType") to
  2181  	// unconditionally include in API requests. By default, fields with empty or
  2182  	// default values are omitted from API requests. See
  2183  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2184  	// details.
  2185  	ForceSendFields []string `json:"-"`
  2186  	// NullFields is a list of field names (e.g. "EventType") to include in API
  2187  	// requests with the JSON null value. By default, fields with empty values are
  2188  	// omitted from API requests. See
  2189  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2190  	NullFields []string `json:"-"`
  2191  }
  2192  
  2193  func (s *Filter) MarshalJSON() ([]byte, error) {
  2194  	type NoMethod Filter
  2195  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2196  }
  2197  
  2198  // Fleet: Fleet is the fleet configuration for the cluster.
  2199  type Fleet struct {
  2200  	// Membership: [Output only] The full resource name of the registered fleet
  2201  	// membership of the cluster, in the format
  2202  	// `//gkehub.googleapis.com/projects/*/locations/*/memberships/*`.
  2203  	Membership string `json:"membership,omitempty"`
  2204  	// PreRegistered: [Output only] Whether the cluster has been registered through
  2205  	// the fleet API.
  2206  	PreRegistered bool `json:"preRegistered,omitempty"`
  2207  	// Project: The Fleet host project(project ID or project number) where this
  2208  	// cluster will be registered to. This field cannot be changed after the
  2209  	// cluster has been registered.
  2210  	Project string `json:"project,omitempty"`
  2211  	// ForceSendFields is a list of field names (e.g. "Membership") to
  2212  	// unconditionally include in API requests. By default, fields with empty or
  2213  	// default values are omitted from API requests. See
  2214  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2215  	// details.
  2216  	ForceSendFields []string `json:"-"`
  2217  	// NullFields is a list of field names (e.g. "Membership") to include in API
  2218  	// requests with the JSON null value. By default, fields with empty values are
  2219  	// omitted from API requests. See
  2220  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2221  	NullFields []string `json:"-"`
  2222  }
  2223  
  2224  func (s *Fleet) MarshalJSON() ([]byte, error) {
  2225  	type NoMethod Fleet
  2226  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2227  }
  2228  
  2229  // GCPSecretManagerCertificateConfig: GCPSecretManagerCertificateConfig
  2230  // configures a secret from Google Secret Manager
  2231  // (https://cloud.google.com/secret-manager).
  2232  type GCPSecretManagerCertificateConfig struct {
  2233  	// SecretUri: Secret URI, in the form
  2234  	// "projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION". Version can
  2235  	// be fixed (e.g. "2") or "latest"
  2236  	SecretUri string `json:"secretUri,omitempty"`
  2237  	// ForceSendFields is a list of field names (e.g. "SecretUri") to
  2238  	// unconditionally include in API requests. By default, fields with empty or
  2239  	// default values are omitted from API requests. See
  2240  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2241  	// details.
  2242  	ForceSendFields []string `json:"-"`
  2243  	// NullFields is a list of field names (e.g. "SecretUri") to include in API
  2244  	// requests with the JSON null value. By default, fields with empty values are
  2245  	// omitted from API requests. See
  2246  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2247  	NullFields []string `json:"-"`
  2248  }
  2249  
  2250  func (s *GCPSecretManagerCertificateConfig) MarshalJSON() ([]byte, error) {
  2251  	type NoMethod GCPSecretManagerCertificateConfig
  2252  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2253  }
  2254  
  2255  // GPUDriverInstallationConfig: GPUDriverInstallationConfig specifies the
  2256  // version of GPU driver to be auto installed.
  2257  type GPUDriverInstallationConfig struct {
  2258  	// GpuDriverVersion: Mode for how the GPU driver is installed.
  2259  	//
  2260  	// Possible values:
  2261  	//   "GPU_DRIVER_VERSION_UNSPECIFIED" - Default value is to not install any GPU
  2262  	// driver.
  2263  	//   "INSTALLATION_DISABLED" - Disable GPU driver auto installation and needs
  2264  	// manual installation
  2265  	//   "DEFAULT" - "Default" GPU driver in COS and Ubuntu.
  2266  	//   "LATEST" - "Latest" GPU driver in COS.
  2267  	GpuDriverVersion string `json:"gpuDriverVersion,omitempty"`
  2268  	// ForceSendFields is a list of field names (e.g. "GpuDriverVersion") to
  2269  	// unconditionally include in API requests. By default, fields with empty or
  2270  	// default values are omitted from API requests. See
  2271  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2272  	// details.
  2273  	ForceSendFields []string `json:"-"`
  2274  	// NullFields is a list of field names (e.g. "GpuDriverVersion") to include in
  2275  	// API requests with the JSON null value. By default, fields with empty values
  2276  	// are omitted from API requests. See
  2277  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2278  	NullFields []string `json:"-"`
  2279  }
  2280  
  2281  func (s *GPUDriverInstallationConfig) MarshalJSON() ([]byte, error) {
  2282  	type NoMethod GPUDriverInstallationConfig
  2283  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2284  }
  2285  
  2286  // GPUSharingConfig: GPUSharingConfig represents the GPU sharing configuration
  2287  // for Hardware Accelerators.
  2288  type GPUSharingConfig struct {
  2289  	// GpuSharingStrategy: The type of GPU sharing strategy to enable on the GPU
  2290  	// node.
  2291  	//
  2292  	// Possible values:
  2293  	//   "GPU_SHARING_STRATEGY_UNSPECIFIED" - Default value.
  2294  	//   "TIME_SHARING" - GPUs are time-shared between containers.
  2295  	//   "MPS" - GPUs are shared between containers with NVIDIA MPS.
  2296  	GpuSharingStrategy string `json:"gpuSharingStrategy,omitempty"`
  2297  	// MaxSharedClientsPerGpu: The max number of containers that can share a
  2298  	// physical GPU.
  2299  	MaxSharedClientsPerGpu int64 `json:"maxSharedClientsPerGpu,omitempty,string"`
  2300  	// ForceSendFields is a list of field names (e.g. "GpuSharingStrategy") to
  2301  	// unconditionally include in API requests. By default, fields with empty or
  2302  	// default values are omitted from API requests. See
  2303  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2304  	// details.
  2305  	ForceSendFields []string `json:"-"`
  2306  	// NullFields is a list of field names (e.g. "GpuSharingStrategy") to include
  2307  	// in API requests with the JSON null value. By default, fields with empty
  2308  	// values are omitted from API requests. See
  2309  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2310  	NullFields []string `json:"-"`
  2311  }
  2312  
  2313  func (s *GPUSharingConfig) MarshalJSON() ([]byte, error) {
  2314  	type NoMethod GPUSharingConfig
  2315  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2316  }
  2317  
  2318  // GatewayAPIConfig: GatewayAPIConfig contains the desired config of Gateway
  2319  // API on this cluster.
  2320  type GatewayAPIConfig struct {
  2321  	// Channel: The Gateway API release channel to use for Gateway API.
  2322  	//
  2323  	// Possible values:
  2324  	//   "CHANNEL_UNSPECIFIED" - Default value.
  2325  	//   "CHANNEL_DISABLED" - Gateway API support is disabled
  2326  	//   "CHANNEL_EXPERIMENTAL" - Gateway API support is enabled, experimental CRDs
  2327  	// are installed
  2328  	//   "CHANNEL_STANDARD" - Gateway API support is enabled, standard CRDs are
  2329  	// installed
  2330  	Channel string `json:"channel,omitempty"`
  2331  	// ForceSendFields is a list of field names (e.g. "Channel") to unconditionally
  2332  	// include in API requests. By default, fields with empty or default values are
  2333  	// omitted from API requests. See
  2334  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2335  	// details.
  2336  	ForceSendFields []string `json:"-"`
  2337  	// NullFields is a list of field names (e.g. "Channel") to include in API
  2338  	// requests with the JSON null value. By default, fields with empty values are
  2339  	// omitted from API requests. See
  2340  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2341  	NullFields []string `json:"-"`
  2342  }
  2343  
  2344  func (s *GatewayAPIConfig) MarshalJSON() ([]byte, error) {
  2345  	type NoMethod GatewayAPIConfig
  2346  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2347  }
  2348  
  2349  // GcePersistentDiskCsiDriverConfig: Configuration for the Compute Engine PD
  2350  // CSI driver.
  2351  type GcePersistentDiskCsiDriverConfig struct {
  2352  	// Enabled: Whether the Compute Engine PD CSI driver is enabled for this
  2353  	// cluster.
  2354  	Enabled bool `json:"enabled,omitempty"`
  2355  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  2356  	// include in API requests. By default, fields with empty or default values are
  2357  	// omitted from API requests. See
  2358  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2359  	// details.
  2360  	ForceSendFields []string `json:"-"`
  2361  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  2362  	// requests with the JSON null value. By default, fields with empty values are
  2363  	// omitted from API requests. See
  2364  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2365  	NullFields []string `json:"-"`
  2366  }
  2367  
  2368  func (s *GcePersistentDiskCsiDriverConfig) MarshalJSON() ([]byte, error) {
  2369  	type NoMethod GcePersistentDiskCsiDriverConfig
  2370  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2371  }
  2372  
  2373  // GcfsConfig: GcfsConfig contains configurations of Google Container File
  2374  // System (image streaming).
  2375  type GcfsConfig struct {
  2376  	// Enabled: Whether to use GCFS.
  2377  	Enabled bool `json:"enabled,omitempty"`
  2378  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  2379  	// include in API requests. By default, fields with empty or default values are
  2380  	// omitted from API requests. See
  2381  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2382  	// details.
  2383  	ForceSendFields []string `json:"-"`
  2384  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  2385  	// requests with the JSON null value. By default, fields with empty values are
  2386  	// omitted from API requests. See
  2387  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2388  	NullFields []string `json:"-"`
  2389  }
  2390  
  2391  func (s *GcfsConfig) MarshalJSON() ([]byte, error) {
  2392  	type NoMethod GcfsConfig
  2393  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2394  }
  2395  
  2396  // GcpFilestoreCsiDriverConfig: Configuration for the GCP Filestore CSI driver.
  2397  type GcpFilestoreCsiDriverConfig struct {
  2398  	// Enabled: Whether the GCP Filestore CSI driver is enabled for this cluster.
  2399  	Enabled bool `json:"enabled,omitempty"`
  2400  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  2401  	// include in API requests. By default, fields with empty or default values are
  2402  	// omitted from API requests. See
  2403  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2404  	// details.
  2405  	ForceSendFields []string `json:"-"`
  2406  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  2407  	// requests with the JSON null value. By default, fields with empty values are
  2408  	// omitted from API requests. See
  2409  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2410  	NullFields []string `json:"-"`
  2411  }
  2412  
  2413  func (s *GcpFilestoreCsiDriverConfig) MarshalJSON() ([]byte, error) {
  2414  	type NoMethod GcpFilestoreCsiDriverConfig
  2415  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2416  }
  2417  
  2418  // GcsFuseCsiDriverConfig: Configuration for the Cloud Storage Fuse CSI driver.
  2419  type GcsFuseCsiDriverConfig struct {
  2420  	// Enabled: Whether the Cloud Storage Fuse CSI driver is enabled for this
  2421  	// cluster.
  2422  	Enabled bool `json:"enabled,omitempty"`
  2423  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  2424  	// include in API requests. By default, fields with empty or default values are
  2425  	// omitted from API requests. See
  2426  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2427  	// details.
  2428  	ForceSendFields []string `json:"-"`
  2429  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  2430  	// requests with the JSON null value. By default, fields with empty values are
  2431  	// omitted from API requests. See
  2432  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2433  	NullFields []string `json:"-"`
  2434  }
  2435  
  2436  func (s *GcsFuseCsiDriverConfig) MarshalJSON() ([]byte, error) {
  2437  	type NoMethod GcsFuseCsiDriverConfig
  2438  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2439  }
  2440  
  2441  // GetJSONWebKeysResponse: GetJSONWebKeysResponse is a valid JSON Web Key Set
  2442  // as specififed in rfc 7517
  2443  type GetJSONWebKeysResponse struct {
  2444  	// CacheHeader: OnePlatform automatically extracts this field and uses it to
  2445  	// set the HTTP Cache-Control header.
  2446  	CacheHeader *HttpCacheControlResponseHeader `json:"cacheHeader,omitempty"`
  2447  	// Keys: The public component of the keys used by the cluster to sign token
  2448  	// requests.
  2449  	Keys []*Jwk `json:"keys,omitempty"`
  2450  
  2451  	// ServerResponse contains the HTTP response code and headers from the server.
  2452  	googleapi.ServerResponse `json:"-"`
  2453  	// ForceSendFields is a list of field names (e.g. "CacheHeader") to
  2454  	// unconditionally include in API requests. By default, fields with empty or
  2455  	// default values are omitted from API requests. See
  2456  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2457  	// details.
  2458  	ForceSendFields []string `json:"-"`
  2459  	// NullFields is a list of field names (e.g. "CacheHeader") to include in API
  2460  	// requests with the JSON null value. By default, fields with empty values are
  2461  	// omitted from API requests. See
  2462  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2463  	NullFields []string `json:"-"`
  2464  }
  2465  
  2466  func (s *GetJSONWebKeysResponse) MarshalJSON() ([]byte, error) {
  2467  	type NoMethod GetJSONWebKeysResponse
  2468  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2469  }
  2470  
  2471  // GetOpenIDConfigResponse: GetOpenIDConfigResponse is an OIDC discovery
  2472  // document for the cluster. See the OpenID Connect Discovery 1.0 specification
  2473  // for details.
  2474  type GetOpenIDConfigResponse struct {
  2475  	// CacheHeader: OnePlatform automatically extracts this field and uses it to
  2476  	// set the HTTP Cache-Control header.
  2477  	CacheHeader *HttpCacheControlResponseHeader `json:"cacheHeader,omitempty"`
  2478  	// ClaimsSupported: Supported claims.
  2479  	ClaimsSupported []string `json:"claims_supported,omitempty"`
  2480  	// GrantTypes: Supported grant types.
  2481  	GrantTypes []string `json:"grant_types,omitempty"`
  2482  	// IdTokenSigningAlgValuesSupported: supported ID Token signing Algorithms.
  2483  	IdTokenSigningAlgValuesSupported []string `json:"id_token_signing_alg_values_supported,omitempty"`
  2484  	// Issuer: OIDC Issuer.
  2485  	Issuer string `json:"issuer,omitempty"`
  2486  	// JwksUri: JSON Web Key uri.
  2487  	JwksUri string `json:"jwks_uri,omitempty"`
  2488  	// ResponseTypesSupported: Supported response types.
  2489  	ResponseTypesSupported []string `json:"response_types_supported,omitempty"`
  2490  	// SubjectTypesSupported: Supported subject types.
  2491  	SubjectTypesSupported []string `json:"subject_types_supported,omitempty"`
  2492  
  2493  	// ServerResponse contains the HTTP response code and headers from the server.
  2494  	googleapi.ServerResponse `json:"-"`
  2495  	// ForceSendFields is a list of field names (e.g. "CacheHeader") to
  2496  	// unconditionally include in API requests. By default, fields with empty or
  2497  	// default values are omitted from API requests. See
  2498  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2499  	// details.
  2500  	ForceSendFields []string `json:"-"`
  2501  	// NullFields is a list of field names (e.g. "CacheHeader") to include in API
  2502  	// requests with the JSON null value. By default, fields with empty values are
  2503  	// omitted from API requests. See
  2504  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2505  	NullFields []string `json:"-"`
  2506  }
  2507  
  2508  func (s *GetOpenIDConfigResponse) MarshalJSON() ([]byte, error) {
  2509  	type NoMethod GetOpenIDConfigResponse
  2510  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2511  }
  2512  
  2513  // GkeBackupAgentConfig: Configuration for the Backup for GKE Agent.
  2514  type GkeBackupAgentConfig struct {
  2515  	// Enabled: Whether the Backup for GKE agent is enabled for this cluster.
  2516  	Enabled bool `json:"enabled,omitempty"`
  2517  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  2518  	// include in API requests. By default, fields with empty or default values are
  2519  	// omitted from API requests. See
  2520  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2521  	// details.
  2522  	ForceSendFields []string `json:"-"`
  2523  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  2524  	// requests with the JSON null value. By default, fields with empty values are
  2525  	// omitted from API requests. See
  2526  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2527  	NullFields []string `json:"-"`
  2528  }
  2529  
  2530  func (s *GkeBackupAgentConfig) MarshalJSON() ([]byte, error) {
  2531  	type NoMethod GkeBackupAgentConfig
  2532  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2533  }
  2534  
  2535  // HorizontalPodAutoscaling: Configuration options for the horizontal pod
  2536  // autoscaling feature, which increases or decreases the number of replica pods
  2537  // a replication controller has based on the resource usage of the existing
  2538  // pods.
  2539  type HorizontalPodAutoscaling struct {
  2540  	// Disabled: Whether the Horizontal Pod Autoscaling feature is enabled in the
  2541  	// cluster. When enabled, it ensures that metrics are collected into
  2542  	// Stackdriver Monitoring.
  2543  	Disabled bool `json:"disabled,omitempty"`
  2544  	// ForceSendFields is a list of field names (e.g. "Disabled") to
  2545  	// unconditionally include in API requests. By default, fields with empty or
  2546  	// default values are omitted from API requests. See
  2547  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2548  	// details.
  2549  	ForceSendFields []string `json:"-"`
  2550  	// NullFields is a list of field names (e.g. "Disabled") to include in API
  2551  	// requests with the JSON null value. By default, fields with empty values are
  2552  	// omitted from API requests. See
  2553  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2554  	NullFields []string `json:"-"`
  2555  }
  2556  
  2557  func (s *HorizontalPodAutoscaling) MarshalJSON() ([]byte, error) {
  2558  	type NoMethod HorizontalPodAutoscaling
  2559  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2560  }
  2561  
  2562  // HttpCacheControlResponseHeader: RFC-2616: cache control support
  2563  type HttpCacheControlResponseHeader struct {
  2564  	// Age: 14.6 response cache age, in seconds since the response is generated
  2565  	Age int64 `json:"age,omitempty,string"`
  2566  	// Directive: 14.9 request and response directives
  2567  	Directive string `json:"directive,omitempty"`
  2568  	// Expires: 14.21 response cache expires, in RFC 1123 date format
  2569  	Expires string `json:"expires,omitempty"`
  2570  	// ForceSendFields is a list of field names (e.g. "Age") to unconditionally
  2571  	// include in API requests. By default, fields with empty or default values are
  2572  	// omitted from API requests. See
  2573  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2574  	// details.
  2575  	ForceSendFields []string `json:"-"`
  2576  	// NullFields is a list of field names (e.g. "Age") to include in API requests
  2577  	// with the JSON null value. By default, fields with empty values are omitted
  2578  	// from API requests. See
  2579  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2580  	NullFields []string `json:"-"`
  2581  }
  2582  
  2583  func (s *HttpCacheControlResponseHeader) MarshalJSON() ([]byte, error) {
  2584  	type NoMethod HttpCacheControlResponseHeader
  2585  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2586  }
  2587  
  2588  // HttpLoadBalancing: Configuration options for the HTTP (L7) load balancing
  2589  // controller addon, which makes it easy to set up HTTP load balancers for
  2590  // services in a cluster.
  2591  type HttpLoadBalancing struct {
  2592  	// Disabled: Whether the HTTP Load Balancing controller is enabled in the
  2593  	// cluster. When enabled, it runs a small pod in the cluster that manages the
  2594  	// load balancers.
  2595  	Disabled bool `json:"disabled,omitempty"`
  2596  	// ForceSendFields is a list of field names (e.g. "Disabled") to
  2597  	// unconditionally include in API requests. By default, fields with empty or
  2598  	// default values are omitted from API requests. See
  2599  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2600  	// details.
  2601  	ForceSendFields []string `json:"-"`
  2602  	// NullFields is a list of field names (e.g. "Disabled") to include in API
  2603  	// requests with the JSON null value. By default, fields with empty values are
  2604  	// omitted from API requests. See
  2605  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2606  	NullFields []string `json:"-"`
  2607  }
  2608  
  2609  func (s *HttpLoadBalancing) MarshalJSON() ([]byte, error) {
  2610  	type NoMethod HttpLoadBalancing
  2611  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2612  }
  2613  
  2614  // HugepagesConfig: Hugepages amount in both 2m and 1g size
  2615  type HugepagesConfig struct {
  2616  	// HugepageSize1g: Optional. Amount of 1G hugepages
  2617  	HugepageSize1g int64 `json:"hugepageSize1g,omitempty"`
  2618  	// HugepageSize2m: Optional. Amount of 2M hugepages
  2619  	HugepageSize2m int64 `json:"hugepageSize2m,omitempty"`
  2620  	// ForceSendFields is a list of field names (e.g. "HugepageSize1g") to
  2621  	// unconditionally include in API requests. By default, fields with empty or
  2622  	// default values are omitted from API requests. See
  2623  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2624  	// details.
  2625  	ForceSendFields []string `json:"-"`
  2626  	// NullFields is a list of field names (e.g. "HugepageSize1g") to include in
  2627  	// API requests with the JSON null value. By default, fields with empty values
  2628  	// are omitted from API requests. See
  2629  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2630  	NullFields []string `json:"-"`
  2631  }
  2632  
  2633  func (s *HugepagesConfig) MarshalJSON() ([]byte, error) {
  2634  	type NoMethod HugepagesConfig
  2635  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2636  }
  2637  
  2638  // ILBSubsettingConfig: ILBSubsettingConfig contains the desired config of L4
  2639  // Internal LoadBalancer subsetting on this cluster.
  2640  type ILBSubsettingConfig struct {
  2641  	// Enabled: Enables l4 ILB subsetting for this cluster.
  2642  	Enabled bool `json:"enabled,omitempty"`
  2643  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  2644  	// include in API requests. By default, fields with empty or default values are
  2645  	// omitted from API requests. See
  2646  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2647  	// details.
  2648  	ForceSendFields []string `json:"-"`
  2649  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  2650  	// requests with the JSON null value. By default, fields with empty values are
  2651  	// omitted from API requests. See
  2652  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2653  	NullFields []string `json:"-"`
  2654  }
  2655  
  2656  func (s *ILBSubsettingConfig) MarshalJSON() ([]byte, error) {
  2657  	type NoMethod ILBSubsettingConfig
  2658  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2659  }
  2660  
  2661  // IPAllocationPolicy: Configuration for controlling how IPs are allocated in
  2662  // the cluster.
  2663  type IPAllocationPolicy struct {
  2664  	// AdditionalPodRangesConfig: Output only. [Output only] The additional pod
  2665  	// ranges that are added to the cluster. These pod ranges can be used by new
  2666  	// node pools to allocate pod IPs automatically. Once the range is removed it
  2667  	// will not show up in IPAllocationPolicy.
  2668  	AdditionalPodRangesConfig *AdditionalPodRangesConfig `json:"additionalPodRangesConfig,omitempty"`
  2669  	// ClusterIpv4Cidr: This field is deprecated, use cluster_ipv4_cidr_block.
  2670  	ClusterIpv4Cidr string `json:"clusterIpv4Cidr,omitempty"`
  2671  	// ClusterIpv4CidrBlock: The IP address range for the cluster pod IPs. If this
  2672  	// field is set, then `cluster.cluster_ipv4_cidr` must be left blank. This
  2673  	// field is only applicable when `use_ip_aliases` is true. Set to blank to have
  2674  	// a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a
  2675  	// range chosen with a specific netmask. Set to a CIDR
  2676  	// (http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g.
  2677  	// `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`,
  2678  	// `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.
  2679  	ClusterIpv4CidrBlock string `json:"clusterIpv4CidrBlock,omitempty"`
  2680  	// ClusterSecondaryRangeName: The name of the secondary range to be used for
  2681  	// the cluster CIDR block. The secondary range will be used for pod IP
  2682  	// addresses. This must be an existing secondary range associated with the
  2683  	// cluster subnetwork. This field is only applicable with use_ip_aliases is
  2684  	// true and create_subnetwork is false.
  2685  	ClusterSecondaryRangeName string `json:"clusterSecondaryRangeName,omitempty"`
  2686  	// CreateSubnetwork: Whether a new subnetwork will be created automatically for
  2687  	// the cluster. This field is only applicable when `use_ip_aliases` is true.
  2688  	CreateSubnetwork bool `json:"createSubnetwork,omitempty"`
  2689  	// DefaultPodIpv4RangeUtilization: Output only. [Output only] The utilization
  2690  	// of the cluster default IPv4 range for the pod. The ratio is Usage/[Total
  2691  	// number of IPs in the secondary range],
  2692  	// Usage=numNodes*numZones*podIPsPerNode.
  2693  	DefaultPodIpv4RangeUtilization float64 `json:"defaultPodIpv4RangeUtilization,omitempty"`
  2694  	// Ipv6AccessType: The ipv6 access type (internal or external) when
  2695  	// create_subnetwork is true
  2696  	//
  2697  	// Possible values:
  2698  	//   "IPV6_ACCESS_TYPE_UNSPECIFIED" - Default value, will be defaulted as type
  2699  	// external.
  2700  	//   "INTERNAL" - Access type internal (all v6 addresses are internal IPs)
  2701  	//   "EXTERNAL" - Access type external (all v6 addresses are external IPs)
  2702  	Ipv6AccessType string `json:"ipv6AccessType,omitempty"`
  2703  	// NodeIpv4Cidr: This field is deprecated, use node_ipv4_cidr_block.
  2704  	NodeIpv4Cidr string `json:"nodeIpv4Cidr,omitempty"`
  2705  	// NodeIpv4CidrBlock: The IP address range of the instance IPs in this cluster.
  2706  	// This is applicable only if `create_subnetwork` is true. Set to blank to have
  2707  	// a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a
  2708  	// range chosen with a specific netmask. Set to a CIDR
  2709  	// (http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g.
  2710  	// `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`,
  2711  	// `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.
  2712  	NodeIpv4CidrBlock string `json:"nodeIpv4CidrBlock,omitempty"`
  2713  	// PodCidrOverprovisionConfig: [PRIVATE FIELD] Pod CIDR size overprovisioning
  2714  	// config for the cluster. Pod CIDR size per node depends on max_pods_per_node.
  2715  	// By default, the value of max_pods_per_node is doubled and then rounded off
  2716  	// to next power of 2 to get the size of pod CIDR block per node. Example:
  2717  	// max_pods_per_node of 30 would result in 64 IPs (/26). This config can
  2718  	// disable the doubling of IPs (we still round off to next power of 2) Example:
  2719  	// max_pods_per_node of 30 will result in 32 IPs (/27) when overprovisioning is
  2720  	// disabled.
  2721  	PodCidrOverprovisionConfig *PodCIDROverprovisionConfig `json:"podCidrOverprovisionConfig,omitempty"`
  2722  	// ServicesIpv4Cidr: This field is deprecated, use services_ipv4_cidr_block.
  2723  	ServicesIpv4Cidr string `json:"servicesIpv4Cidr,omitempty"`
  2724  	// ServicesIpv4CidrBlock: The IP address range of the services IPs in this
  2725  	// cluster. If blank, a range will be automatically chosen with the default
  2726  	// size. This field is only applicable when `use_ip_aliases` is true. Set to
  2727  	// blank to have a range chosen with the default size. Set to /netmask (e.g.
  2728  	// `/14`) to have a range chosen with a specific netmask. Set to a CIDR
  2729  	// (http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g.
  2730  	// `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`,
  2731  	// `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.
  2732  	ServicesIpv4CidrBlock string `json:"servicesIpv4CidrBlock,omitempty"`
  2733  	// ServicesIpv6CidrBlock: Output only. [Output only] The services IPv6 CIDR
  2734  	// block for the cluster.
  2735  	ServicesIpv6CidrBlock string `json:"servicesIpv6CidrBlock,omitempty"`
  2736  	// ServicesSecondaryRangeName: The name of the secondary range to be used as
  2737  	// for the services CIDR block. The secondary range will be used for service
  2738  	// ClusterIPs. This must be an existing secondary range associated with the
  2739  	// cluster subnetwork. This field is only applicable with use_ip_aliases is
  2740  	// true and create_subnetwork is false.
  2741  	ServicesSecondaryRangeName string `json:"servicesSecondaryRangeName,omitempty"`
  2742  	// StackType: The IP stack type of the cluster
  2743  	//
  2744  	// Possible values:
  2745  	//   "STACK_TYPE_UNSPECIFIED" - Default value, will be defaulted as IPV4 only
  2746  	//   "IPV4" - Cluster is IPV4 only
  2747  	//   "IPV4_IPV6" - Cluster can use both IPv4 and IPv6
  2748  	StackType string `json:"stackType,omitempty"`
  2749  	// SubnetIpv6CidrBlock: Output only. [Output only] The subnet's IPv6 CIDR block
  2750  	// used by nodes and pods.
  2751  	SubnetIpv6CidrBlock string `json:"subnetIpv6CidrBlock,omitempty"`
  2752  	// SubnetworkName: A custom subnetwork name to be used if `create_subnetwork`
  2753  	// is true. If this field is empty, then an automatic name will be chosen for
  2754  	// the new subnetwork.
  2755  	SubnetworkName string `json:"subnetworkName,omitempty"`
  2756  	// TpuIpv4CidrBlock: The IP address range of the Cloud TPUs in this cluster. If
  2757  	// unspecified, a range will be automatically chosen with the default size.
  2758  	// This field is only applicable when `use_ip_aliases` is true. If unspecified,
  2759  	// the range will use the default size. Set to /netmask (e.g. `/14`) to have a
  2760  	// range chosen with a specific netmask. Set to a CIDR
  2761  	// (http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g.
  2762  	// `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`,
  2763  	// `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.
  2764  	TpuIpv4CidrBlock string `json:"tpuIpv4CidrBlock,omitempty"`
  2765  	// UseIpAliases: Whether alias IPs will be used for pod IPs in the cluster.
  2766  	// This is used in conjunction with use_routes. It cannot be true if use_routes
  2767  	// is true. If both use_ip_aliases and use_routes are false, then the server
  2768  	// picks the default IP allocation mode
  2769  	UseIpAliases bool `json:"useIpAliases,omitempty"`
  2770  	// UseRoutes: Whether routes will be used for pod IPs in the cluster. This is
  2771  	// used in conjunction with use_ip_aliases. It cannot be true if use_ip_aliases
  2772  	// is true. If both use_ip_aliases and use_routes are false, then the server
  2773  	// picks the default IP allocation mode
  2774  	UseRoutes bool `json:"useRoutes,omitempty"`
  2775  	// ForceSendFields is a list of field names (e.g. "AdditionalPodRangesConfig")
  2776  	// to unconditionally include in API requests. By default, fields with empty or
  2777  	// default values are omitted from API requests. See
  2778  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2779  	// details.
  2780  	ForceSendFields []string `json:"-"`
  2781  	// NullFields is a list of field names (e.g. "AdditionalPodRangesConfig") to
  2782  	// include in API requests with the JSON null value. By default, fields with
  2783  	// empty values are omitted from API requests. See
  2784  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2785  	NullFields []string `json:"-"`
  2786  }
  2787  
  2788  func (s *IPAllocationPolicy) MarshalJSON() ([]byte, error) {
  2789  	type NoMethod IPAllocationPolicy
  2790  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2791  }
  2792  
  2793  func (s *IPAllocationPolicy) UnmarshalJSON(data []byte) error {
  2794  	type NoMethod IPAllocationPolicy
  2795  	var s1 struct {
  2796  		DefaultPodIpv4RangeUtilization gensupport.JSONFloat64 `json:"defaultPodIpv4RangeUtilization"`
  2797  		*NoMethod
  2798  	}
  2799  	s1.NoMethod = (*NoMethod)(s)
  2800  	if err := json.Unmarshal(data, &s1); err != nil {
  2801  		return err
  2802  	}
  2803  	s.DefaultPodIpv4RangeUtilization = float64(s1.DefaultPodIpv4RangeUtilization)
  2804  	return nil
  2805  }
  2806  
  2807  // IdentityServiceConfig: IdentityServiceConfig is configuration for Identity
  2808  // Service which allows customers to use external identity providers with the
  2809  // K8S API
  2810  type IdentityServiceConfig struct {
  2811  	// Enabled: Whether to enable the Identity Service component
  2812  	Enabled bool `json:"enabled,omitempty"`
  2813  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  2814  	// include in API requests. By default, fields with empty or default values are
  2815  	// omitted from API requests. See
  2816  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2817  	// details.
  2818  	ForceSendFields []string `json:"-"`
  2819  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  2820  	// requests with the JSON null value. By default, fields with empty values are
  2821  	// omitted from API requests. See
  2822  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2823  	NullFields []string `json:"-"`
  2824  }
  2825  
  2826  func (s *IdentityServiceConfig) MarshalJSON() ([]byte, error) {
  2827  	type NoMethod IdentityServiceConfig
  2828  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2829  }
  2830  
  2831  // IntraNodeVisibilityConfig: IntraNodeVisibilityConfig contains the desired
  2832  // config of the intra-node visibility on this cluster.
  2833  type IntraNodeVisibilityConfig struct {
  2834  	// Enabled: Enables intra node visibility for this cluster.
  2835  	Enabled bool `json:"enabled,omitempty"`
  2836  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  2837  	// include in API requests. By default, fields with empty or default values are
  2838  	// omitted from API requests. See
  2839  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2840  	// details.
  2841  	ForceSendFields []string `json:"-"`
  2842  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  2843  	// requests with the JSON null value. By default, fields with empty values are
  2844  	// omitted from API requests. See
  2845  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2846  	NullFields []string `json:"-"`
  2847  }
  2848  
  2849  func (s *IntraNodeVisibilityConfig) MarshalJSON() ([]byte, error) {
  2850  	type NoMethod IntraNodeVisibilityConfig
  2851  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2852  }
  2853  
  2854  // Jwk: Jwk is a JSON Web Key as specified in RFC 7517
  2855  type Jwk struct {
  2856  	// Alg: Algorithm.
  2857  	Alg string `json:"alg,omitempty"`
  2858  	// Crv: Used for ECDSA keys.
  2859  	Crv string `json:"crv,omitempty"`
  2860  	// E: Used for RSA keys.
  2861  	E string `json:"e,omitempty"`
  2862  	// Kid: Key ID.
  2863  	Kid string `json:"kid,omitempty"`
  2864  	// Kty: Key Type.
  2865  	Kty string `json:"kty,omitempty"`
  2866  	// N: Used for RSA keys.
  2867  	N string `json:"n,omitempty"`
  2868  	// Use: Permitted uses for the public keys.
  2869  	Use string `json:"use,omitempty"`
  2870  	// X: Used for ECDSA keys.
  2871  	X string `json:"x,omitempty"`
  2872  	// Y: Used for ECDSA keys.
  2873  	Y string `json:"y,omitempty"`
  2874  	// ForceSendFields is a list of field names (e.g. "Alg") to unconditionally
  2875  	// include in API requests. By default, fields with empty or default values are
  2876  	// omitted from API requests. See
  2877  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2878  	// details.
  2879  	ForceSendFields []string `json:"-"`
  2880  	// NullFields is a list of field names (e.g. "Alg") to include in API requests
  2881  	// with the JSON null value. By default, fields with empty values are omitted
  2882  	// from API requests. See
  2883  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2884  	NullFields []string `json:"-"`
  2885  }
  2886  
  2887  func (s *Jwk) MarshalJSON() ([]byte, error) {
  2888  	type NoMethod Jwk
  2889  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2890  }
  2891  
  2892  // K8sBetaAPIConfig: K8sBetaAPIConfig , configuration for beta APIs
  2893  type K8sBetaAPIConfig struct {
  2894  	// EnabledApis: Enabled k8s beta APIs.
  2895  	EnabledApis []string `json:"enabledApis,omitempty"`
  2896  	// ForceSendFields is a list of field names (e.g. "EnabledApis") to
  2897  	// unconditionally include in API requests. By default, fields with empty or
  2898  	// default values are omitted from API requests. See
  2899  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2900  	// details.
  2901  	ForceSendFields []string `json:"-"`
  2902  	// NullFields is a list of field names (e.g. "EnabledApis") to include in API
  2903  	// requests with the JSON null value. By default, fields with empty values are
  2904  	// omitted from API requests. See
  2905  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2906  	NullFields []string `json:"-"`
  2907  }
  2908  
  2909  func (s *K8sBetaAPIConfig) MarshalJSON() ([]byte, error) {
  2910  	type NoMethod K8sBetaAPIConfig
  2911  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2912  }
  2913  
  2914  // KubernetesDashboard: Configuration for the Kubernetes Dashboard.
  2915  type KubernetesDashboard struct {
  2916  	// Disabled: Whether the Kubernetes Dashboard is enabled for this cluster.
  2917  	Disabled bool `json:"disabled,omitempty"`
  2918  	// ForceSendFields is a list of field names (e.g. "Disabled") to
  2919  	// unconditionally include in API requests. By default, fields with empty or
  2920  	// default values are omitted from API requests. See
  2921  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2922  	// details.
  2923  	ForceSendFields []string `json:"-"`
  2924  	// NullFields is a list of field names (e.g. "Disabled") to include in API
  2925  	// requests with the JSON null value. By default, fields with empty values are
  2926  	// omitted from API requests. See
  2927  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2928  	NullFields []string `json:"-"`
  2929  }
  2930  
  2931  func (s *KubernetesDashboard) MarshalJSON() ([]byte, error) {
  2932  	type NoMethod KubernetesDashboard
  2933  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2934  }
  2935  
  2936  // LegacyAbac: Configuration for the legacy Attribute Based Access Control
  2937  // authorization mode.
  2938  type LegacyAbac struct {
  2939  	// Enabled: Whether the ABAC authorizer is enabled for this cluster. When
  2940  	// enabled, identities in the system, including service accounts, nodes, and
  2941  	// controllers, will have statically granted permissions beyond those provided
  2942  	// by the RBAC configuration or IAM.
  2943  	Enabled bool `json:"enabled,omitempty"`
  2944  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  2945  	// include in API requests. By default, fields with empty or default values are
  2946  	// omitted from API requests. See
  2947  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2948  	// details.
  2949  	ForceSendFields []string `json:"-"`
  2950  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  2951  	// requests with the JSON null value. By default, fields with empty values are
  2952  	// omitted from API requests. See
  2953  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2954  	NullFields []string `json:"-"`
  2955  }
  2956  
  2957  func (s *LegacyAbac) MarshalJSON() ([]byte, error) {
  2958  	type NoMethod LegacyAbac
  2959  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2960  }
  2961  
  2962  // LinuxNodeConfig: Parameters that can be configured on Linux nodes.
  2963  type LinuxNodeConfig struct {
  2964  	// CgroupMode: cgroup_mode specifies the cgroup mode to be used on the node.
  2965  	//
  2966  	// Possible values:
  2967  	//   "CGROUP_MODE_UNSPECIFIED" - CGROUP_MODE_UNSPECIFIED is when unspecified
  2968  	// cgroup configuration is used. The default for the GKE node OS image will be
  2969  	// used.
  2970  	//   "CGROUP_MODE_V1" - CGROUP_MODE_V1 specifies to use cgroupv1 for the cgroup
  2971  	// configuration on the node image.
  2972  	//   "CGROUP_MODE_V2" - CGROUP_MODE_V2 specifies to use cgroupv2 for the cgroup
  2973  	// configuration on the node image.
  2974  	CgroupMode string `json:"cgroupMode,omitempty"`
  2975  	// Hugepages: Optional. Amounts for 2M and 1G hugepages
  2976  	Hugepages *HugepagesConfig `json:"hugepages,omitempty"`
  2977  	// Sysctls: The Linux kernel parameters to be applied to the nodes and all pods
  2978  	// running on the nodes. The following parameters are supported.
  2979  	// net.core.busy_poll net.core.busy_read net.core.netdev_max_backlog
  2980  	// net.core.rmem_max net.core.wmem_default net.core.wmem_max
  2981  	// net.core.optmem_max net.core.somaxconn net.ipv4.tcp_rmem net.ipv4.tcp_wmem
  2982  	// net.ipv4.tcp_tw_reuse
  2983  	Sysctls map[string]string `json:"sysctls,omitempty"`
  2984  	// ForceSendFields is a list of field names (e.g. "CgroupMode") to
  2985  	// unconditionally include in API requests. By default, fields with empty or
  2986  	// default values are omitted from API requests. See
  2987  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2988  	// details.
  2989  	ForceSendFields []string `json:"-"`
  2990  	// NullFields is a list of field names (e.g. "CgroupMode") to include in API
  2991  	// requests with the JSON null value. By default, fields with empty values are
  2992  	// omitted from API requests. See
  2993  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2994  	NullFields []string `json:"-"`
  2995  }
  2996  
  2997  func (s *LinuxNodeConfig) MarshalJSON() ([]byte, error) {
  2998  	type NoMethod LinuxNodeConfig
  2999  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3000  }
  3001  
  3002  // ListClustersResponse: ListClustersResponse is the result of
  3003  // ListClustersRequest.
  3004  type ListClustersResponse struct {
  3005  	// Clusters: A list of clusters in the project in the specified zone, or across
  3006  	// all ones.
  3007  	Clusters []*Cluster `json:"clusters,omitempty"`
  3008  	// MissingZones: If any zones are listed here, the list of clusters returned
  3009  	// may be missing those zones.
  3010  	MissingZones []string `json:"missingZones,omitempty"`
  3011  
  3012  	// ServerResponse contains the HTTP response code and headers from the server.
  3013  	googleapi.ServerResponse `json:"-"`
  3014  	// ForceSendFields is a list of field names (e.g. "Clusters") to
  3015  	// unconditionally include in API requests. By default, fields with empty or
  3016  	// default values are omitted from API requests. See
  3017  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3018  	// details.
  3019  	ForceSendFields []string `json:"-"`
  3020  	// NullFields is a list of field names (e.g. "Clusters") to include in API
  3021  	// requests with the JSON null value. By default, fields with empty values are
  3022  	// omitted from API requests. See
  3023  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3024  	NullFields []string `json:"-"`
  3025  }
  3026  
  3027  func (s *ListClustersResponse) MarshalJSON() ([]byte, error) {
  3028  	type NoMethod ListClustersResponse
  3029  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3030  }
  3031  
  3032  // ListNodePoolsResponse: ListNodePoolsResponse is the result of
  3033  // ListNodePoolsRequest.
  3034  type ListNodePoolsResponse struct {
  3035  	// NodePools: A list of node pools for a cluster.
  3036  	NodePools []*NodePool `json:"nodePools,omitempty"`
  3037  
  3038  	// ServerResponse contains the HTTP response code and headers from the server.
  3039  	googleapi.ServerResponse `json:"-"`
  3040  	// ForceSendFields is a list of field names (e.g. "NodePools") to
  3041  	// unconditionally include in API requests. By default, fields with empty or
  3042  	// default values are omitted from API requests. See
  3043  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3044  	// details.
  3045  	ForceSendFields []string `json:"-"`
  3046  	// NullFields is a list of field names (e.g. "NodePools") to include in API
  3047  	// requests with the JSON null value. By default, fields with empty values are
  3048  	// omitted from API requests. See
  3049  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3050  	NullFields []string `json:"-"`
  3051  }
  3052  
  3053  func (s *ListNodePoolsResponse) MarshalJSON() ([]byte, error) {
  3054  	type NoMethod ListNodePoolsResponse
  3055  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3056  }
  3057  
  3058  // ListOperationsResponse: ListOperationsResponse is the result of
  3059  // ListOperationsRequest.
  3060  type ListOperationsResponse struct {
  3061  	// MissingZones: If any zones are listed here, the list of operations returned
  3062  	// may be missing the operations from those zones.
  3063  	MissingZones []string `json:"missingZones,omitempty"`
  3064  	// Operations: A list of operations in the project in the specified zone.
  3065  	Operations []*Operation `json:"operations,omitempty"`
  3066  
  3067  	// ServerResponse contains the HTTP response code and headers from the server.
  3068  	googleapi.ServerResponse `json:"-"`
  3069  	// ForceSendFields is a list of field names (e.g. "MissingZones") to
  3070  	// unconditionally include in API requests. By default, fields with empty or
  3071  	// default values are omitted from API requests. See
  3072  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3073  	// details.
  3074  	ForceSendFields []string `json:"-"`
  3075  	// NullFields is a list of field names (e.g. "MissingZones") to include in API
  3076  	// requests with the JSON null value. By default, fields with empty values are
  3077  	// omitted from API requests. See
  3078  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3079  	NullFields []string `json:"-"`
  3080  }
  3081  
  3082  func (s *ListOperationsResponse) MarshalJSON() ([]byte, error) {
  3083  	type NoMethod ListOperationsResponse
  3084  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3085  }
  3086  
  3087  // ListUsableSubnetworksResponse: ListUsableSubnetworksResponse is the response
  3088  // of ListUsableSubnetworksRequest.
  3089  type ListUsableSubnetworksResponse struct {
  3090  	// NextPageToken: This token allows you to get the next page of results for
  3091  	// list requests. If the number of results is larger than `page_size`, use the
  3092  	// `next_page_token` as a value for the query parameter `page_token` in the
  3093  	// next request. The value will become empty when there are no more pages.
  3094  	NextPageToken string `json:"nextPageToken,omitempty"`
  3095  	// Subnetworks: A list of usable subnetworks in the specified network project.
  3096  	Subnetworks []*UsableSubnetwork `json:"subnetworks,omitempty"`
  3097  
  3098  	// ServerResponse contains the HTTP response code and headers from the server.
  3099  	googleapi.ServerResponse `json:"-"`
  3100  	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
  3101  	// unconditionally include in API requests. By default, fields with empty or
  3102  	// default values are omitted from API requests. See
  3103  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3104  	// details.
  3105  	ForceSendFields []string `json:"-"`
  3106  	// NullFields is a list of field names (e.g. "NextPageToken") to include in API
  3107  	// requests with the JSON null value. By default, fields with empty values are
  3108  	// omitted from API requests. See
  3109  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3110  	NullFields []string `json:"-"`
  3111  }
  3112  
  3113  func (s *ListUsableSubnetworksResponse) MarshalJSON() ([]byte, error) {
  3114  	type NoMethod ListUsableSubnetworksResponse
  3115  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3116  }
  3117  
  3118  // LocalNvmeSsdBlockConfig: LocalNvmeSsdBlockConfig contains configuration for
  3119  // using raw-block local NVMe SSDs
  3120  type LocalNvmeSsdBlockConfig struct {
  3121  	// LocalSsdCount: Number of local NVMe SSDs to use. The limit for this value is
  3122  	// dependent upon the maximum number of disk available on a machine per zone.
  3123  	// See: https://cloud.google.com/compute/docs/disks/local-ssd for more
  3124  	// information. A zero (or unset) value has different meanings depending on
  3125  	// machine type being used: 1. For pre-Gen3 machines, which support flexible
  3126  	// numbers of local ssds, zero (or unset) means to disable using local SSDs as
  3127  	// ephemeral storage. 2. For Gen3 machines which dictate a specific number of
  3128  	// local ssds, zero (or unset) means to use the default number of local ssds
  3129  	// that goes with that machine type. For example, for a c3-standard-8-lssd
  3130  	// machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn't
  3131  	// support local ssds), 0 will be provisioned. See
  3132  	// https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds
  3133  	// for more info.
  3134  	LocalSsdCount int64 `json:"localSsdCount,omitempty"`
  3135  	// ForceSendFields is a list of field names (e.g. "LocalSsdCount") to
  3136  	// unconditionally include in API requests. By default, fields with empty or
  3137  	// default values are omitted from API requests. See
  3138  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3139  	// details.
  3140  	ForceSendFields []string `json:"-"`
  3141  	// NullFields is a list of field names (e.g. "LocalSsdCount") to include in API
  3142  	// requests with the JSON null value. By default, fields with empty values are
  3143  	// omitted from API requests. See
  3144  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3145  	NullFields []string `json:"-"`
  3146  }
  3147  
  3148  func (s *LocalNvmeSsdBlockConfig) MarshalJSON() ([]byte, error) {
  3149  	type NoMethod LocalNvmeSsdBlockConfig
  3150  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3151  }
  3152  
  3153  // LoggingComponentConfig: LoggingComponentConfig is cluster logging component
  3154  // configuration.
  3155  type LoggingComponentConfig struct {
  3156  	// EnableComponents: Select components to collect logs. An empty set would
  3157  	// disable all logging.
  3158  	//
  3159  	// Possible values:
  3160  	//   "COMPONENT_UNSPECIFIED" - Default value. This shouldn't be used.
  3161  	//   "SYSTEM_COMPONENTS" - system components
  3162  	//   "WORKLOADS" - workloads
  3163  	//   "APISERVER" - kube-apiserver
  3164  	//   "SCHEDULER" - kube-scheduler
  3165  	//   "CONTROLLER_MANAGER" - kube-controller-manager
  3166  	EnableComponents []string `json:"enableComponents,omitempty"`
  3167  	// ForceSendFields is a list of field names (e.g. "EnableComponents") to
  3168  	// unconditionally include in API requests. By default, fields with empty or
  3169  	// default values are omitted from API requests. See
  3170  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3171  	// details.
  3172  	ForceSendFields []string `json:"-"`
  3173  	// NullFields is a list of field names (e.g. "EnableComponents") to include in
  3174  	// API requests with the JSON null value. By default, fields with empty values
  3175  	// are omitted from API requests. See
  3176  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3177  	NullFields []string `json:"-"`
  3178  }
  3179  
  3180  func (s *LoggingComponentConfig) MarshalJSON() ([]byte, error) {
  3181  	type NoMethod LoggingComponentConfig
  3182  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3183  }
  3184  
  3185  // LoggingConfig: LoggingConfig is cluster logging configuration.
  3186  type LoggingConfig struct {
  3187  	// ComponentConfig: Logging components configuration
  3188  	ComponentConfig *LoggingComponentConfig `json:"componentConfig,omitempty"`
  3189  	// ForceSendFields is a list of field names (e.g. "ComponentConfig") to
  3190  	// unconditionally include in API requests. By default, fields with empty or
  3191  	// default values are omitted from API requests. See
  3192  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3193  	// details.
  3194  	ForceSendFields []string `json:"-"`
  3195  	// NullFields is a list of field names (e.g. "ComponentConfig") to include in
  3196  	// API requests with the JSON null value. By default, fields with empty values
  3197  	// are omitted from API requests. See
  3198  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3199  	NullFields []string `json:"-"`
  3200  }
  3201  
  3202  func (s *LoggingConfig) MarshalJSON() ([]byte, error) {
  3203  	type NoMethod LoggingConfig
  3204  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3205  }
  3206  
  3207  // LoggingVariantConfig: LoggingVariantConfig specifies the behaviour of the
  3208  // logging component.
  3209  type LoggingVariantConfig struct {
  3210  	// Variant: Logging variant deployed on nodes.
  3211  	//
  3212  	// Possible values:
  3213  	//   "VARIANT_UNSPECIFIED" - Default value. This shouldn't be used.
  3214  	//   "DEFAULT" - default logging variant.
  3215  	//   "MAX_THROUGHPUT" - maximum logging throughput variant.
  3216  	Variant string `json:"variant,omitempty"`
  3217  	// ForceSendFields is a list of field names (e.g. "Variant") to unconditionally
  3218  	// include in API requests. By default, fields with empty or default values are
  3219  	// omitted from API requests. See
  3220  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3221  	// details.
  3222  	ForceSendFields []string `json:"-"`
  3223  	// NullFields is a list of field names (e.g. "Variant") to include in API
  3224  	// requests with the JSON null value. By default, fields with empty values are
  3225  	// omitted from API requests. See
  3226  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3227  	NullFields []string `json:"-"`
  3228  }
  3229  
  3230  func (s *LoggingVariantConfig) MarshalJSON() ([]byte, error) {
  3231  	type NoMethod LoggingVariantConfig
  3232  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3233  }
  3234  
  3235  // MaintenanceExclusionOptions: Represents the Maintenance exclusion option.
  3236  type MaintenanceExclusionOptions struct {
  3237  	// Scope: Scope specifies the upgrade scope which upgrades are blocked by the
  3238  	// exclusion.
  3239  	//
  3240  	// Possible values:
  3241  	//   "NO_UPGRADES" - NO_UPGRADES excludes all upgrades, including patch
  3242  	// upgrades and minor upgrades across control planes and nodes. This is the
  3243  	// default exclusion behavior.
  3244  	//   "NO_MINOR_UPGRADES" - NO_MINOR_UPGRADES excludes all minor upgrades for
  3245  	// the cluster, only patches are allowed.
  3246  	//   "NO_MINOR_OR_NODE_UPGRADES" - NO_MINOR_OR_NODE_UPGRADES excludes all minor
  3247  	// upgrades for the cluster, and also exclude all node pool upgrades. Only
  3248  	// control plane patches are allowed.
  3249  	Scope string `json:"scope,omitempty"`
  3250  	// ForceSendFields is a list of field names (e.g. "Scope") to unconditionally
  3251  	// include in API requests. By default, fields with empty or default values are
  3252  	// omitted from API requests. See
  3253  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3254  	// details.
  3255  	ForceSendFields []string `json:"-"`
  3256  	// NullFields is a list of field names (e.g. "Scope") to include in API
  3257  	// requests with the JSON null value. By default, fields with empty values are
  3258  	// omitted from API requests. See
  3259  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3260  	NullFields []string `json:"-"`
  3261  }
  3262  
  3263  func (s *MaintenanceExclusionOptions) MarshalJSON() ([]byte, error) {
  3264  	type NoMethod MaintenanceExclusionOptions
  3265  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3266  }
  3267  
  3268  // MaintenancePolicy: MaintenancePolicy defines the maintenance policy to be
  3269  // used for the cluster.
  3270  type MaintenancePolicy struct {
  3271  	// ResourceVersion: A hash identifying the version of this policy, so that
  3272  	// updates to fields of the policy won't accidentally undo intermediate changes
  3273  	// (and so that users of the API unaware of some fields won't accidentally
  3274  	// remove other fields). Make a `get()` request to the cluster to get the
  3275  	// current resource version and include it with requests to set the policy.
  3276  	ResourceVersion string `json:"resourceVersion,omitempty"`
  3277  	// Window: Specifies the maintenance window in which maintenance may be
  3278  	// performed.
  3279  	Window *MaintenanceWindow `json:"window,omitempty"`
  3280  	// ForceSendFields is a list of field names (e.g. "ResourceVersion") to
  3281  	// unconditionally include in API requests. By default, fields with empty or
  3282  	// default values are omitted from API requests. See
  3283  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3284  	// details.
  3285  	ForceSendFields []string `json:"-"`
  3286  	// NullFields is a list of field names (e.g. "ResourceVersion") to include in
  3287  	// API requests with the JSON null value. By default, fields with empty values
  3288  	// are omitted from API requests. See
  3289  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3290  	NullFields []string `json:"-"`
  3291  }
  3292  
  3293  func (s *MaintenancePolicy) MarshalJSON() ([]byte, error) {
  3294  	type NoMethod MaintenancePolicy
  3295  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3296  }
  3297  
  3298  // MaintenanceWindow: MaintenanceWindow defines the maintenance window to be
  3299  // used for the cluster.
  3300  type MaintenanceWindow struct {
  3301  	// DailyMaintenanceWindow: DailyMaintenanceWindow specifies a daily maintenance
  3302  	// operation window.
  3303  	DailyMaintenanceWindow *DailyMaintenanceWindow `json:"dailyMaintenanceWindow,omitempty"`
  3304  	// MaintenanceExclusions: Exceptions to maintenance window. Non-emergency
  3305  	// maintenance should not occur in these windows.
  3306  	MaintenanceExclusions map[string]TimeWindow `json:"maintenanceExclusions,omitempty"`
  3307  	// RecurringWindow: RecurringWindow specifies some number of recurring time
  3308  	// periods for maintenance to occur. The time windows may be overlapping. If no
  3309  	// maintenance windows are set, maintenance can occur at any time.
  3310  	RecurringWindow *RecurringTimeWindow `json:"recurringWindow,omitempty"`
  3311  	// ForceSendFields is a list of field names (e.g. "DailyMaintenanceWindow") to
  3312  	// unconditionally include in API requests. By default, fields with empty or
  3313  	// default values are omitted from API requests. See
  3314  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3315  	// details.
  3316  	ForceSendFields []string `json:"-"`
  3317  	// NullFields is a list of field names (e.g. "DailyMaintenanceWindow") to
  3318  	// include in API requests with the JSON null value. By default, fields with
  3319  	// empty values are omitted from API requests. See
  3320  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3321  	NullFields []string `json:"-"`
  3322  }
  3323  
  3324  func (s *MaintenanceWindow) MarshalJSON() ([]byte, error) {
  3325  	type NoMethod MaintenanceWindow
  3326  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3327  }
  3328  
  3329  // ManagedPrometheusConfig: ManagedPrometheusConfig defines the configuration
  3330  // for Google Cloud Managed Service for Prometheus.
  3331  type ManagedPrometheusConfig struct {
  3332  	// Enabled: Enable Managed Collection.
  3333  	Enabled bool `json:"enabled,omitempty"`
  3334  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  3335  	// include in API requests. By default, fields with empty or default values are
  3336  	// omitted from API requests. See
  3337  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3338  	// details.
  3339  	ForceSendFields []string `json:"-"`
  3340  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  3341  	// requests with the JSON null value. By default, fields with empty values are
  3342  	// omitted from API requests. See
  3343  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3344  	NullFields []string `json:"-"`
  3345  }
  3346  
  3347  func (s *ManagedPrometheusConfig) MarshalJSON() ([]byte, error) {
  3348  	type NoMethod ManagedPrometheusConfig
  3349  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3350  }
  3351  
  3352  // MasterAuth: The authentication information for accessing the master
  3353  // endpoint. Authentication can be done using HTTP basic auth or using client
  3354  // certificates.
  3355  type MasterAuth struct {
  3356  	// ClientCertificate: [Output only] Base64-encoded public certificate used by
  3357  	// clients to authenticate to the cluster endpoint.
  3358  	ClientCertificate string `json:"clientCertificate,omitempty"`
  3359  	// ClientCertificateConfig: Configuration for client certificate authentication
  3360  	// on the cluster. For clusters before v1.12, if no configuration is specified,
  3361  	// a client certificate is issued.
  3362  	ClientCertificateConfig *ClientCertificateConfig `json:"clientCertificateConfig,omitempty"`
  3363  	// ClientKey: [Output only] Base64-encoded private key used by clients to
  3364  	// authenticate to the cluster endpoint.
  3365  	ClientKey string `json:"clientKey,omitempty"`
  3366  	// ClusterCaCertificate: [Output only] Base64-encoded public certificate that
  3367  	// is the root of trust for the cluster.
  3368  	ClusterCaCertificate string `json:"clusterCaCertificate,omitempty"`
  3369  	// Password: The password to use for HTTP basic authentication to the master
  3370  	// endpoint. Because the master endpoint is open to the Internet, you should
  3371  	// create a strong password. If a password is provided for cluster creation,
  3372  	// username must be non-empty. Warning: basic authentication is deprecated, and
  3373  	// will be removed in GKE control plane versions 1.19 and newer. For a list of
  3374  	// recommended authentication methods, see:
  3375  	// https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
  3376  	Password string `json:"password,omitempty"`
  3377  	// Username: The username to use for HTTP basic authentication to the master
  3378  	// endpoint. For clusters v1.6.0 and later, basic authentication can be
  3379  	// disabled by leaving username unspecified (or setting it to the empty
  3380  	// string). Warning: basic authentication is deprecated, and will be removed in
  3381  	// GKE control plane versions 1.19 and newer. For a list of recommended
  3382  	// authentication methods, see:
  3383  	// https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
  3384  	Username string `json:"username,omitempty"`
  3385  	// ForceSendFields is a list of field names (e.g. "ClientCertificate") to
  3386  	// unconditionally include in API requests. By default, fields with empty or
  3387  	// default values are omitted from API requests. See
  3388  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3389  	// details.
  3390  	ForceSendFields []string `json:"-"`
  3391  	// NullFields is a list of field names (e.g. "ClientCertificate") to include in
  3392  	// API requests with the JSON null value. By default, fields with empty values
  3393  	// are omitted from API requests. See
  3394  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3395  	NullFields []string `json:"-"`
  3396  }
  3397  
  3398  func (s *MasterAuth) MarshalJSON() ([]byte, error) {
  3399  	type NoMethod MasterAuth
  3400  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3401  }
  3402  
  3403  // MasterAuthorizedNetworksConfig: Configuration options for the master
  3404  // authorized networks feature. Enabled master authorized networks will
  3405  // disallow all external traffic to access Kubernetes master through HTTPS
  3406  // except traffic from the given CIDR blocks, Google Compute Engine Public IPs
  3407  // and Google Prod IPs.
  3408  type MasterAuthorizedNetworksConfig struct {
  3409  	// CidrBlocks: cidr_blocks define up to 50 external networks that could access
  3410  	// Kubernetes master through HTTPS.
  3411  	CidrBlocks []*CidrBlock `json:"cidrBlocks,omitempty"`
  3412  	// Enabled: Whether or not master authorized networks is enabled.
  3413  	Enabled bool `json:"enabled,omitempty"`
  3414  	// GcpPublicCidrsAccessEnabled: Whether master is accessbile via Google Compute
  3415  	// Engine Public IP addresses.
  3416  	GcpPublicCidrsAccessEnabled bool `json:"gcpPublicCidrsAccessEnabled,omitempty"`
  3417  	// ForceSendFields is a list of field names (e.g. "CidrBlocks") to
  3418  	// unconditionally include in API requests. By default, fields with empty or
  3419  	// default values are omitted from API requests. See
  3420  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3421  	// details.
  3422  	ForceSendFields []string `json:"-"`
  3423  	// NullFields is a list of field names (e.g. "CidrBlocks") to include in API
  3424  	// requests with the JSON null value. By default, fields with empty values are
  3425  	// omitted from API requests. See
  3426  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3427  	NullFields []string `json:"-"`
  3428  }
  3429  
  3430  func (s *MasterAuthorizedNetworksConfig) MarshalJSON() ([]byte, error) {
  3431  	type NoMethod MasterAuthorizedNetworksConfig
  3432  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3433  }
  3434  
  3435  // MaxPodsConstraint: Constraints applied to pods.
  3436  type MaxPodsConstraint struct {
  3437  	// MaxPodsPerNode: Constraint enforced on the max num of pods per node.
  3438  	MaxPodsPerNode int64 `json:"maxPodsPerNode,omitempty,string"`
  3439  	// ForceSendFields is a list of field names (e.g. "MaxPodsPerNode") to
  3440  	// unconditionally include in API requests. By default, fields with empty or
  3441  	// default values are omitted from API requests. See
  3442  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3443  	// details.
  3444  	ForceSendFields []string `json:"-"`
  3445  	// NullFields is a list of field names (e.g. "MaxPodsPerNode") to include in
  3446  	// API requests with the JSON null value. By default, fields with empty values
  3447  	// are omitted from API requests. See
  3448  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3449  	NullFields []string `json:"-"`
  3450  }
  3451  
  3452  func (s *MaxPodsConstraint) MarshalJSON() ([]byte, error) {
  3453  	type NoMethod MaxPodsConstraint
  3454  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3455  }
  3456  
  3457  // MeshCertificates: Configuration for issuance of mTLS keys and certificates
  3458  // to Kubernetes pods.
  3459  type MeshCertificates struct {
  3460  	// EnableCertificates: enable_certificates controls issuance of workload mTLS
  3461  	// certificates. If set, the GKE Workload Identity Certificates controller and
  3462  	// node agent will be deployed in the cluster, which can then be configured by
  3463  	// creating a WorkloadCertificateConfig Custom Resource. Requires Workload
  3464  	// Identity (workload_pool must be non-empty).
  3465  	EnableCertificates bool `json:"enableCertificates,omitempty"`
  3466  	// ForceSendFields is a list of field names (e.g. "EnableCertificates") to
  3467  	// unconditionally include in API requests. By default, fields with empty or
  3468  	// default values are omitted from API requests. See
  3469  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3470  	// details.
  3471  	ForceSendFields []string `json:"-"`
  3472  	// NullFields is a list of field names (e.g. "EnableCertificates") to include
  3473  	// in API requests with the JSON null value. By default, fields with empty
  3474  	// values are omitted from API requests. See
  3475  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3476  	NullFields []string `json:"-"`
  3477  }
  3478  
  3479  func (s *MeshCertificates) MarshalJSON() ([]byte, error) {
  3480  	type NoMethod MeshCertificates
  3481  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3482  }
  3483  
  3484  // Metric: Progress metric is (string, int|float|string) pair.
  3485  type Metric struct {
  3486  	// DoubleValue: For metrics with floating point value.
  3487  	DoubleValue float64 `json:"doubleValue,omitempty"`
  3488  	// IntValue: For metrics with integer value.
  3489  	IntValue int64 `json:"intValue,omitempty,string"`
  3490  	// Name: Required. Metric name, e.g., "nodes total", "percent done".
  3491  	Name string `json:"name,omitempty"`
  3492  	// StringValue: For metrics with custom values (ratios, visual progress, etc.).
  3493  	StringValue string `json:"stringValue,omitempty"`
  3494  	// ForceSendFields is a list of field names (e.g. "DoubleValue") to
  3495  	// unconditionally include in API requests. By default, fields with empty or
  3496  	// default values are omitted from API requests. See
  3497  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3498  	// details.
  3499  	ForceSendFields []string `json:"-"`
  3500  	// NullFields is a list of field names (e.g. "DoubleValue") to include in API
  3501  	// requests with the JSON null value. By default, fields with empty values are
  3502  	// omitted from API requests. See
  3503  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3504  	NullFields []string `json:"-"`
  3505  }
  3506  
  3507  func (s *Metric) MarshalJSON() ([]byte, error) {
  3508  	type NoMethod Metric
  3509  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3510  }
  3511  
  3512  func (s *Metric) UnmarshalJSON(data []byte) error {
  3513  	type NoMethod Metric
  3514  	var s1 struct {
  3515  		DoubleValue gensupport.JSONFloat64 `json:"doubleValue"`
  3516  		*NoMethod
  3517  	}
  3518  	s1.NoMethod = (*NoMethod)(s)
  3519  	if err := json.Unmarshal(data, &s1); err != nil {
  3520  		return err
  3521  	}
  3522  	s.DoubleValue = float64(s1.DoubleValue)
  3523  	return nil
  3524  }
  3525  
  3526  // MonitoringComponentConfig: MonitoringComponentConfig is cluster monitoring
  3527  // component configuration.
  3528  type MonitoringComponentConfig struct {
  3529  	// EnableComponents: Select components to collect metrics. An empty set would
  3530  	// disable all monitoring.
  3531  	//
  3532  	// Possible values:
  3533  	//   "COMPONENT_UNSPECIFIED" - Default value. This shouldn't be used.
  3534  	//   "SYSTEM_COMPONENTS" - system components
  3535  	//   "APISERVER" - kube-apiserver
  3536  	//   "SCHEDULER" - kube-scheduler
  3537  	//   "CONTROLLER_MANAGER" - kube-controller-manager
  3538  	//   "STORAGE" - Storage
  3539  	//   "HPA" - Horizontal Pod Autoscaling
  3540  	//   "POD" - Pod
  3541  	//   "DAEMONSET" - DaemonSet
  3542  	//   "DEPLOYMENT" - Deployment
  3543  	//   "STATEFULSET" - Statefulset
  3544  	EnableComponents []string `json:"enableComponents,omitempty"`
  3545  	// ForceSendFields is a list of field names (e.g. "EnableComponents") to
  3546  	// unconditionally include in API requests. By default, fields with empty or
  3547  	// default values are omitted from API requests. See
  3548  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3549  	// details.
  3550  	ForceSendFields []string `json:"-"`
  3551  	// NullFields is a list of field names (e.g. "EnableComponents") to include in
  3552  	// API requests with the JSON null value. By default, fields with empty values
  3553  	// are omitted from API requests. See
  3554  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3555  	NullFields []string `json:"-"`
  3556  }
  3557  
  3558  func (s *MonitoringComponentConfig) MarshalJSON() ([]byte, error) {
  3559  	type NoMethod MonitoringComponentConfig
  3560  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3561  }
  3562  
  3563  // MonitoringConfig: MonitoringConfig is cluster monitoring configuration.
  3564  type MonitoringConfig struct {
  3565  	// AdvancedDatapathObservabilityConfig: Configuration of Advanced Datapath
  3566  	// Observability features.
  3567  	AdvancedDatapathObservabilityConfig *AdvancedDatapathObservabilityConfig `json:"advancedDatapathObservabilityConfig,omitempty"`
  3568  	// ComponentConfig: Monitoring components configuration
  3569  	ComponentConfig *MonitoringComponentConfig `json:"componentConfig,omitempty"`
  3570  	// ManagedPrometheusConfig: Enable Google Cloud Managed Service for Prometheus
  3571  	// in the cluster.
  3572  	ManagedPrometheusConfig *ManagedPrometheusConfig `json:"managedPrometheusConfig,omitempty"`
  3573  	// ForceSendFields is a list of field names (e.g.
  3574  	// "AdvancedDatapathObservabilityConfig") to unconditionally include in API
  3575  	// requests. By default, fields with empty or default values are omitted from
  3576  	// API requests. See
  3577  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3578  	// details.
  3579  	ForceSendFields []string `json:"-"`
  3580  	// NullFields is a list of field names (e.g.
  3581  	// "AdvancedDatapathObservabilityConfig") to include in API requests with the
  3582  	// JSON null value. By default, fields with empty values are omitted from API
  3583  	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
  3584  	// more details.
  3585  	NullFields []string `json:"-"`
  3586  }
  3587  
  3588  func (s *MonitoringConfig) MarshalJSON() ([]byte, error) {
  3589  	type NoMethod MonitoringConfig
  3590  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3591  }
  3592  
  3593  // NetworkConfig: NetworkConfig reports the relative names of network &
  3594  // subnetwork.
  3595  type NetworkConfig struct {
  3596  	// DatapathProvider: The desired datapath provider for this cluster. By
  3597  	// default, uses the IPTables-based kube-proxy implementation.
  3598  	//
  3599  	// Possible values:
  3600  	//   "DATAPATH_PROVIDER_UNSPECIFIED" - Default value.
  3601  	//   "LEGACY_DATAPATH" - Use the IPTables implementation based on kube-proxy.
  3602  	//   "ADVANCED_DATAPATH" - Use the eBPF based GKE Dataplane V2 with additional
  3603  	// features. See the [GKE Dataplane V2
  3604  	// documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/datapla
  3605  	// ne-v2) for more.
  3606  	DatapathProvider string `json:"datapathProvider,omitempty"`
  3607  	// DefaultSnatStatus: Whether the cluster disables default in-node sNAT rules.
  3608  	// In-node sNAT rules will be disabled when default_snat_status is disabled.
  3609  	// When disabled is set to false, default IP masquerade rules will be applied
  3610  	// to the nodes to prevent sNAT on cluster internal traffic.
  3611  	DefaultSnatStatus *DefaultSnatStatus `json:"defaultSnatStatus,omitempty"`
  3612  	// DnsConfig: DNSConfig contains clusterDNS config for this cluster.
  3613  	DnsConfig *DNSConfig `json:"dnsConfig,omitempty"`
  3614  	// EnableCiliumClusterwideNetworkPolicy: Whether CiliumClusterwideNetworkPolicy
  3615  	// is enabled on this cluster.
  3616  	EnableCiliumClusterwideNetworkPolicy bool `json:"enableCiliumClusterwideNetworkPolicy,omitempty"`
  3617  	// EnableFqdnNetworkPolicy: Whether FQDN Network Policy is enabled on this
  3618  	// cluster.
  3619  	EnableFqdnNetworkPolicy bool `json:"enableFqdnNetworkPolicy,omitempty"`
  3620  	// EnableIntraNodeVisibility: Whether Intra-node visibility is enabled for this
  3621  	// cluster. This makes same node pod to pod traffic visible for VPC network.
  3622  	EnableIntraNodeVisibility bool `json:"enableIntraNodeVisibility,omitempty"`
  3623  	// EnableL4ilbSubsetting: Whether L4ILB Subsetting is enabled for this cluster.
  3624  	EnableL4ilbSubsetting bool `json:"enableL4ilbSubsetting,omitempty"`
  3625  	// EnableMultiNetworking: Whether multi-networking is enabled for this cluster.
  3626  	EnableMultiNetworking bool `json:"enableMultiNetworking,omitempty"`
  3627  	// GatewayApiConfig: GatewayAPIConfig contains the desired config of Gateway
  3628  	// API on this cluster.
  3629  	GatewayApiConfig *GatewayAPIConfig `json:"gatewayApiConfig,omitempty"`
  3630  	// InTransitEncryptionConfig: Specify the details of in-transit encryption. Now
  3631  	// named inter-node transparent encryption.
  3632  	//
  3633  	// Possible values:
  3634  	//   "IN_TRANSIT_ENCRYPTION_CONFIG_UNSPECIFIED" - Unspecified, will be inferred
  3635  	// as default - IN_TRANSIT_ENCRYPTION_UNSPECIFIED.
  3636  	//   "IN_TRANSIT_ENCRYPTION_DISABLED" - In-transit encryption is disabled.
  3637  	//   "IN_TRANSIT_ENCRYPTION_INTER_NODE_TRANSPARENT" - Data in-transit is
  3638  	// encrypted using inter-node transparent encryption.
  3639  	InTransitEncryptionConfig string `json:"inTransitEncryptionConfig,omitempty"`
  3640  	// Network: Output only. The relative name of the Google Compute Engine
  3641  	// network(https://cloud.google.com/compute/docs/networks-and-firewalls#networks
  3642  	// ) to which the cluster is connected. Example:
  3643  	// projects/my-project/global/networks/my-network
  3644  	Network string `json:"network,omitempty"`
  3645  	// NetworkPerformanceConfig: Network bandwidth tier configuration.
  3646  	NetworkPerformanceConfig *ClusterNetworkPerformanceConfig `json:"networkPerformanceConfig,omitempty"`
  3647  	// PrivateIpv6GoogleAccess: The desired state of IPv6 connectivity to Google
  3648  	// Services. By default, no private IPv6 access to or from Google Services (all
  3649  	// access will be via IPv4)
  3650  	//
  3651  	// Possible values:
  3652  	//   "PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED" - Default value. Same as DISABLED
  3653  	//   "PRIVATE_IPV6_GOOGLE_ACCESS_DISABLED" - No private access to or from
  3654  	// Google Services
  3655  	//   "PRIVATE_IPV6_GOOGLE_ACCESS_TO_GOOGLE" - Enables private IPv6 access to
  3656  	// Google Services from GKE
  3657  	//   "PRIVATE_IPV6_GOOGLE_ACCESS_BIDIRECTIONAL" - Enables private IPv6 access
  3658  	// to and from Google Services
  3659  	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
  3660  	// ServiceExternalIpsConfig: ServiceExternalIPsConfig specifies if services
  3661  	// with externalIPs field are blocked or not.
  3662  	ServiceExternalIpsConfig *ServiceExternalIPsConfig `json:"serviceExternalIpsConfig,omitempty"`
  3663  	// Subnetwork: Output only. The relative name of the Google Compute Engine
  3664  	// subnetwork (https://cloud.google.com/compute/docs/vpc) to which the cluster
  3665  	// is connected. Example:
  3666  	// projects/my-project/regions/us-central1/subnetworks/my-subnet
  3667  	Subnetwork string `json:"subnetwork,omitempty"`
  3668  	// ForceSendFields is a list of field names (e.g. "DatapathProvider") to
  3669  	// unconditionally include in API requests. By default, fields with empty or
  3670  	// default values are omitted from API requests. See
  3671  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3672  	// details.
  3673  	ForceSendFields []string `json:"-"`
  3674  	// NullFields is a list of field names (e.g. "DatapathProvider") to include in
  3675  	// API requests with the JSON null value. By default, fields with empty values
  3676  	// are omitted from API requests. See
  3677  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3678  	NullFields []string `json:"-"`
  3679  }
  3680  
  3681  func (s *NetworkConfig) MarshalJSON() ([]byte, error) {
  3682  	type NoMethod NetworkConfig
  3683  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3684  }
  3685  
  3686  // NetworkPerformanceConfig: Configuration of all network bandwidth tiers
  3687  type NetworkPerformanceConfig struct {
  3688  	// TotalEgressBandwidthTier: Specifies the total network bandwidth tier for the
  3689  	// NodePool.
  3690  	//
  3691  	// Possible values:
  3692  	//   "TIER_UNSPECIFIED" - Default value
  3693  	//   "TIER_1" - Higher bandwidth, actual values based on VM size.
  3694  	TotalEgressBandwidthTier string `json:"totalEgressBandwidthTier,omitempty"`
  3695  	// ForceSendFields is a list of field names (e.g. "TotalEgressBandwidthTier")
  3696  	// to unconditionally include in API requests. By default, fields with empty or
  3697  	// default values are omitted from API requests. See
  3698  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3699  	// details.
  3700  	ForceSendFields []string `json:"-"`
  3701  	// NullFields is a list of field names (e.g. "TotalEgressBandwidthTier") to
  3702  	// include in API requests with the JSON null value. By default, fields with
  3703  	// empty values are omitted from API requests. See
  3704  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3705  	NullFields []string `json:"-"`
  3706  }
  3707  
  3708  func (s *NetworkPerformanceConfig) MarshalJSON() ([]byte, error) {
  3709  	type NoMethod NetworkPerformanceConfig
  3710  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3711  }
  3712  
  3713  // NetworkPolicy: Configuration options for the NetworkPolicy feature.
  3714  // https://kubernetes.io/docs/concepts/services-networking/networkpolicies/
  3715  type NetworkPolicy struct {
  3716  	// Enabled: Whether network policy is enabled on the cluster.
  3717  	Enabled bool `json:"enabled,omitempty"`
  3718  	// Provider: The selected network policy provider.
  3719  	//
  3720  	// Possible values:
  3721  	//   "PROVIDER_UNSPECIFIED" - Not set
  3722  	//   "CALICO" - Tigera (Calico Felix).
  3723  	Provider string `json:"provider,omitempty"`
  3724  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  3725  	// include in API requests. By default, fields with empty or default values are
  3726  	// omitted from API requests. See
  3727  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3728  	// details.
  3729  	ForceSendFields []string `json:"-"`
  3730  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  3731  	// requests with the JSON null value. By default, fields with empty values are
  3732  	// omitted from API requests. See
  3733  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3734  	NullFields []string `json:"-"`
  3735  }
  3736  
  3737  func (s *NetworkPolicy) MarshalJSON() ([]byte, error) {
  3738  	type NoMethod NetworkPolicy
  3739  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3740  }
  3741  
  3742  // NetworkPolicyConfig: Configuration for NetworkPolicy. This only tracks
  3743  // whether the addon is enabled or not on the Master, it does not track whether
  3744  // network policy is enabled for the nodes.
  3745  type NetworkPolicyConfig struct {
  3746  	// Disabled: Whether NetworkPolicy is enabled for this cluster.
  3747  	Disabled bool `json:"disabled,omitempty"`
  3748  	// ForceSendFields is a list of field names (e.g. "Disabled") to
  3749  	// unconditionally include in API requests. By default, fields with empty or
  3750  	// default values are omitted from API requests. See
  3751  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3752  	// details.
  3753  	ForceSendFields []string `json:"-"`
  3754  	// NullFields is a list of field names (e.g. "Disabled") to include in API
  3755  	// requests with the JSON null value. By default, fields with empty values are
  3756  	// omitted from API requests. See
  3757  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3758  	NullFields []string `json:"-"`
  3759  }
  3760  
  3761  func (s *NetworkPolicyConfig) MarshalJSON() ([]byte, error) {
  3762  	type NoMethod NetworkPolicyConfig
  3763  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3764  }
  3765  
  3766  // NetworkTags: Collection of Compute Engine network tags that can be applied
  3767  // to a node's underlying VM instance.
  3768  type NetworkTags struct {
  3769  	// Tags: List of network tags.
  3770  	Tags []string `json:"tags,omitempty"`
  3771  	// ForceSendFields is a list of field names (e.g. "Tags") to unconditionally
  3772  	// include in API requests. By default, fields with empty or default values are
  3773  	// omitted from API requests. See
  3774  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3775  	// details.
  3776  	ForceSendFields []string `json:"-"`
  3777  	// NullFields is a list of field names (e.g. "Tags") to include in API requests
  3778  	// with the JSON null value. By default, fields with empty values are omitted
  3779  	// from API requests. See
  3780  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3781  	NullFields []string `json:"-"`
  3782  }
  3783  
  3784  func (s *NetworkTags) MarshalJSON() ([]byte, error) {
  3785  	type NoMethod NetworkTags
  3786  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3787  }
  3788  
  3789  // NodeAffinity: Specifies the NodeAffinity key, values, and affinity operator
  3790  // according to shared sole tenant node group affinities
  3791  // (https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity).
  3792  type NodeAffinity struct {
  3793  	// Key: Key for NodeAffinity.
  3794  	Key string `json:"key,omitempty"`
  3795  	// Operator: Operator for NodeAffinity.
  3796  	//
  3797  	// Possible values:
  3798  	//   "OPERATOR_UNSPECIFIED" - Invalid or unspecified affinity operator.
  3799  	//   "IN" - Affinity operator.
  3800  	//   "NOT_IN" - Anti-affinity operator.
  3801  	Operator string `json:"operator,omitempty"`
  3802  	// Values: Values for NodeAffinity.
  3803  	Values []string `json:"values,omitempty"`
  3804  	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
  3805  	// include in API requests. By default, fields with empty or default values are
  3806  	// omitted from API requests. See
  3807  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3808  	// details.
  3809  	ForceSendFields []string `json:"-"`
  3810  	// NullFields is a list of field names (e.g. "Key") to include in API requests
  3811  	// with the JSON null value. By default, fields with empty values are omitted
  3812  	// from API requests. See
  3813  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3814  	NullFields []string `json:"-"`
  3815  }
  3816  
  3817  func (s *NodeAffinity) MarshalJSON() ([]byte, error) {
  3818  	type NoMethod NodeAffinity
  3819  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3820  }
  3821  
  3822  // NodeConfig: Parameters that describe the nodes in a cluster. GKE Autopilot
  3823  // clusters do not recognize parameters in `NodeConfig`. Use
  3824  // AutoprovisioningNodePoolDefaults instead.
  3825  type NodeConfig struct {
  3826  	// Accelerators: A list of hardware accelerators to be attached to each node.
  3827  	// See https://cloud.google.com/compute/docs/gpus for more information about
  3828  	// support for GPUs.
  3829  	Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"`
  3830  	// AdvancedMachineFeatures: Advanced features for the Compute Engine VM.
  3831  	AdvancedMachineFeatures *AdvancedMachineFeatures `json:"advancedMachineFeatures,omitempty"`
  3832  	// BootDiskKmsKey:  The Customer Managed Encryption Key used to encrypt the
  3833  	// boot disk attached to each node in the node pool. This should be of the form
  3834  	// projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKey
  3835  	// s/[KEY_NAME]. For more information about protecting resources with Cloud KMS
  3836  	// Keys please see:
  3837  	// https://cloud.google.com/compute/docs/disks/customer-managed-encryption
  3838  	BootDiskKmsKey string `json:"bootDiskKmsKey,omitempty"`
  3839  	// ConfidentialNodes: Confidential nodes config. All the nodes in the node pool
  3840  	// will be Confidential VM once enabled.
  3841  	ConfidentialNodes *ConfidentialNodes `json:"confidentialNodes,omitempty"`
  3842  	// ContainerdConfig: Parameters for containerd customization.
  3843  	ContainerdConfig *ContainerdConfig `json:"containerdConfig,omitempty"`
  3844  	// DiskSizeGb: Size of the disk attached to each node, specified in GB. The
  3845  	// smallest allowed disk size is 10GB. If unspecified, the default disk size is
  3846  	// 100GB.
  3847  	DiskSizeGb int64 `json:"diskSizeGb,omitempty"`
  3848  	// DiskType: Type of the disk attached to each node (e.g. 'pd-standard',
  3849  	// 'pd-ssd' or 'pd-balanced') If unspecified, the default disk type is
  3850  	// 'pd-standard'
  3851  	DiskType string `json:"diskType,omitempty"`
  3852  	// EnableConfidentialStorage: Optional. Reserved for future use.
  3853  	EnableConfidentialStorage bool `json:"enableConfidentialStorage,omitempty"`
  3854  	// EphemeralStorageLocalSsdConfig: Parameters for the node ephemeral storage
  3855  	// using Local SSDs. If unspecified, ephemeral storage is backed by the boot
  3856  	// disk.
  3857  	EphemeralStorageLocalSsdConfig *EphemeralStorageLocalSsdConfig `json:"ephemeralStorageLocalSsdConfig,omitempty"`
  3858  	// FastSocket: Enable or disable NCCL fast socket for the node pool.
  3859  	FastSocket *FastSocket `json:"fastSocket,omitempty"`
  3860  	// GcfsConfig: Google Container File System (image streaming) configs.
  3861  	GcfsConfig *GcfsConfig `json:"gcfsConfig,omitempty"`
  3862  	// Gvnic: Enable or disable gvnic in the node pool.
  3863  	Gvnic *VirtualNIC `json:"gvnic,omitempty"`
  3864  	// ImageType: The image type to use for this node. Note that for a given image
  3865  	// type, the latest version of it will be used. Please see
  3866  	// https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for
  3867  	// available image types.
  3868  	ImageType string `json:"imageType,omitempty"`
  3869  	// KubeletConfig: Node kubelet configs.
  3870  	KubeletConfig *NodeKubeletConfig `json:"kubeletConfig,omitempty"`
  3871  	// Labels: The map of Kubernetes labels (key/value pairs) to be applied to each
  3872  	// node. These will added in addition to any default label(s) that Kubernetes
  3873  	// may apply to the node. In case of conflict in label keys, the applied set
  3874  	// may differ depending on the Kubernetes version -- it's best to assume the
  3875  	// behavior is undefined and conflicts should be avoided. For more information,
  3876  	// including usage and the valid values, see:
  3877  	// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
  3878  	Labels map[string]string `json:"labels,omitempty"`
  3879  	// LinuxNodeConfig: Parameters that can be configured on Linux nodes.
  3880  	LinuxNodeConfig *LinuxNodeConfig `json:"linuxNodeConfig,omitempty"`
  3881  	// LocalNvmeSsdBlockConfig: Parameters for using raw-block Local NVMe SSDs.
  3882  	LocalNvmeSsdBlockConfig *LocalNvmeSsdBlockConfig `json:"localNvmeSsdBlockConfig,omitempty"`
  3883  	// LocalSsdCount: The number of local SSD disks to be attached to the node. The
  3884  	// limit for this value is dependent upon the maximum number of disks available
  3885  	// on a machine per zone. See:
  3886  	// https://cloud.google.com/compute/docs/disks/local-ssd for more information.
  3887  	LocalSsdCount int64 `json:"localSsdCount,omitempty"`
  3888  	// LoggingConfig: Logging configuration.
  3889  	LoggingConfig *NodePoolLoggingConfig `json:"loggingConfig,omitempty"`
  3890  	// MachineType: The name of a Google Compute Engine machine type
  3891  	// (https://cloud.google.com/compute/docs/machine-types) If unspecified, the
  3892  	// default machine type is `e2-medium`.
  3893  	MachineType string `json:"machineType,omitempty"`
  3894  	// Metadata: The metadata key/value pairs assigned to instances in the cluster.
  3895  	// Keys must conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes
  3896  	// in length. These are reflected as part of a URL in the metadata server.
  3897  	// Additionally, to avoid ambiguity, keys must not conflict with any other
  3898  	// metadata keys for the project or be one of the reserved keys: -
  3899  	// "cluster-location" - "cluster-name" - "cluster-uid" - "configure-sh" -
  3900  	// "containerd-configure-sh" - "enable-os-login" - "gci-ensure-gke-docker" -
  3901  	// "gci-metrics-enabled" - "gci-update-strategy" - "instance-template" -
  3902  	// "kube-env" - "startup-script" - "user-data" - "disable-address-manager" -
  3903  	// "windows-startup-script-ps1" - "common-psm1" - "k8s-node-setup-psm1" -
  3904  	// "install-ssh-psm1" - "user-profile-psm1" Values are free-form strings, and
  3905  	// only have meaning as interpreted by the image running in the instance. The
  3906  	// only restriction placed on them is that each value's size must be less than
  3907  	// or equal to 32 KB. The total size of all keys and values must be less than
  3908  	// 512 KB.
  3909  	Metadata map[string]string `json:"metadata,omitempty"`
  3910  	// MinCpuPlatform: Minimum CPU platform to be used by this instance. The
  3911  	// instance may be scheduled on the specified or newer CPU platform. Applicable
  3912  	// values are the friendly names of CPU platforms, such as `minCpuPlatform:
  3913  	// "Intel Haswell" or `minCpuPlatform: "Intel Sandy Bridge". For more
  3914  	// information, read how to specify min CPU platform
  3915  	// (https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
  3916  	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
  3917  	// NodeGroup: Setting this field will assign instances of this pool to run on
  3918  	// the specified node group. This is useful for running workloads on sole
  3919  	// tenant nodes
  3920  	// (https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes).
  3921  	NodeGroup string `json:"nodeGroup,omitempty"`
  3922  	// OauthScopes: The set of Google API scopes to be made available on all of the
  3923  	// node VMs under the "default" service account. The following scopes are
  3924  	// recommended, but not required, and by default are not included: *
  3925  	// `https://www.googleapis.com/auth/compute` is required for mounting
  3926  	// persistent storage on your nodes. *
  3927  	// `https://www.googleapis.com/auth/devstorage.read_only` is required for
  3928  	// communicating with **gcr.io** (the Google Container Registry
  3929  	// (https://cloud.google.com/container-registry/)). If unspecified, no scopes
  3930  	// are added, unless Cloud Logging or Cloud Monitoring are enabled, in which
  3931  	// case their required scopes will be added.
  3932  	OauthScopes []string `json:"oauthScopes,omitempty"`
  3933  	// Preemptible: Whether the nodes are created as preemptible VM instances. See:
  3934  	// https://cloud.google.com/compute/docs/instances/preemptible for more
  3935  	// information about preemptible VM instances.
  3936  	Preemptible bool `json:"preemptible,omitempty"`
  3937  	// ReservationAffinity: The optional reservation affinity. Setting this field
  3938  	// will apply the specified Zonal Compute Reservation
  3939  	// (https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
  3940  	// to this node pool.
  3941  	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
  3942  	// ResourceLabels: The resource labels for the node pool to use to annotate any
  3943  	// related Google Compute Engine resources.
  3944  	ResourceLabels map[string]string `json:"resourceLabels,omitempty"`
  3945  	// ResourceManagerTags: A map of resource manager tag keys and values to be
  3946  	// attached to the nodes.
  3947  	ResourceManagerTags *ResourceManagerTags `json:"resourceManagerTags,omitempty"`
  3948  	// SandboxConfig: Sandbox configuration for this node.
  3949  	SandboxConfig *SandboxConfig `json:"sandboxConfig,omitempty"`
  3950  	// SecondaryBootDiskUpdateStrategy: Secondary boot disk update strategy.
  3951  	SecondaryBootDiskUpdateStrategy *SecondaryBootDiskUpdateStrategy `json:"secondaryBootDiskUpdateStrategy,omitempty"`
  3952  	// SecondaryBootDisks: List of secondary boot disks attached to the nodes.
  3953  	SecondaryBootDisks []*SecondaryBootDisk `json:"secondaryBootDisks,omitempty"`
  3954  	// ServiceAccount: The Google Cloud Platform Service Account to be used by the
  3955  	// node VMs. Specify the email address of the Service Account; otherwise, if no
  3956  	// Service Account is specified, the "default" service account is used.
  3957  	ServiceAccount string `json:"serviceAccount,omitempty"`
  3958  	// ShieldedInstanceConfig: Shielded Instance options.
  3959  	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
  3960  	// SoleTenantConfig: Parameters for node pools to be backed by shared sole
  3961  	// tenant node groups.
  3962  	SoleTenantConfig *SoleTenantConfig `json:"soleTenantConfig,omitempty"`
  3963  	// Spot: Spot flag for enabling Spot VM, which is a rebrand of the existing
  3964  	// preemptible flag.
  3965  	Spot bool `json:"spot,omitempty"`
  3966  	// Tags: The list of instance tags applied to all nodes. Tags are used to
  3967  	// identify valid sources or targets for network firewalls and are specified by
  3968  	// the client during cluster or node pool creation. Each tag within the list
  3969  	// must comply with RFC1035.
  3970  	Tags []string `json:"tags,omitempty"`
  3971  	// Taints: List of kubernetes taints to be applied to each node. For more
  3972  	// information, including usage and the valid values, see:
  3973  	// https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  3974  	Taints []*NodeTaint `json:"taints,omitempty"`
  3975  	// WindowsNodeConfig: Parameters that can be configured on Windows nodes.
  3976  	WindowsNodeConfig *WindowsNodeConfig `json:"windowsNodeConfig,omitempty"`
  3977  	// WorkloadMetadataConfig: The workload metadata configuration for this node.
  3978  	WorkloadMetadataConfig *WorkloadMetadataConfig `json:"workloadMetadataConfig,omitempty"`
  3979  	// ForceSendFields is a list of field names (e.g. "Accelerators") to
  3980  	// unconditionally include in API requests. By default, fields with empty or
  3981  	// default values are omitted from API requests. See
  3982  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3983  	// details.
  3984  	ForceSendFields []string `json:"-"`
  3985  	// NullFields is a list of field names (e.g. "Accelerators") to include in API
  3986  	// requests with the JSON null value. By default, fields with empty values are
  3987  	// omitted from API requests. See
  3988  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3989  	NullFields []string `json:"-"`
  3990  }
  3991  
  3992  func (s *NodeConfig) MarshalJSON() ([]byte, error) {
  3993  	type NoMethod NodeConfig
  3994  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3995  }
  3996  
  3997  // NodeConfigDefaults: Subset of NodeConfig message that has defaults.
  3998  type NodeConfigDefaults struct {
  3999  	// ContainerdConfig: Parameters for containerd customization.
  4000  	ContainerdConfig *ContainerdConfig `json:"containerdConfig,omitempty"`
  4001  	// GcfsConfig: GCFS (Google Container File System, also known as Riptide)
  4002  	// options.
  4003  	GcfsConfig *GcfsConfig `json:"gcfsConfig,omitempty"`
  4004  	// LoggingConfig: Logging configuration for node pools.
  4005  	LoggingConfig *NodePoolLoggingConfig `json:"loggingConfig,omitempty"`
  4006  	// NodeKubeletConfig: NodeKubeletConfig controls the defaults for new
  4007  	// node-pools. Currently only `insecure_kubelet_readonly_port_enabled` can be
  4008  	// set here.
  4009  	NodeKubeletConfig *NodeKubeletConfig `json:"nodeKubeletConfig,omitempty"`
  4010  	// ForceSendFields is a list of field names (e.g. "ContainerdConfig") to
  4011  	// unconditionally include in API requests. By default, fields with empty or
  4012  	// default values are omitted from API requests. See
  4013  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4014  	// details.
  4015  	ForceSendFields []string `json:"-"`
  4016  	// NullFields is a list of field names (e.g. "ContainerdConfig") to include in
  4017  	// API requests with the JSON null value. By default, fields with empty values
  4018  	// are omitted from API requests. See
  4019  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4020  	NullFields []string `json:"-"`
  4021  }
  4022  
  4023  func (s *NodeConfigDefaults) MarshalJSON() ([]byte, error) {
  4024  	type NoMethod NodeConfigDefaults
  4025  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4026  }
  4027  
  4028  // NodeKubeletConfig: Node kubelet configs.
  4029  type NodeKubeletConfig struct {
  4030  	// CpuCfsQuota: Enable CPU CFS quota enforcement for containers that specify
  4031  	// CPU limits. This option is enabled by default which makes kubelet use CFS
  4032  	// quota (https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt) to
  4033  	// enforce container CPU limits. Otherwise, CPU limits will not be enforced at
  4034  	// all. Disable this option to mitigate CPU throttling problems while still
  4035  	// having your pods to be in Guaranteed QoS class by specifying the CPU limits.
  4036  	// The default value is 'true' if unspecified.
  4037  	CpuCfsQuota bool `json:"cpuCfsQuota,omitempty"`
  4038  	// CpuCfsQuotaPeriod: Set the CPU CFS quota period value 'cpu.cfs_period_us'.
  4039  	// The string must be a sequence of decimal numbers, each with optional
  4040  	// fraction and a unit suffix, such as "300ms". Valid time units are "ns", "us"
  4041  	// (or "µs"), "ms", "s", "m", "h". The value must be a positive duration.
  4042  	CpuCfsQuotaPeriod string `json:"cpuCfsQuotaPeriod,omitempty"`
  4043  	// CpuManagerPolicy: Control the CPU management policy on the node. See
  4044  	// https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/
  4045  	// The following values are allowed. * "none": the default, which represents
  4046  	// the existing scheduling behavior. * "static": allows pods with certain
  4047  	// resource characteristics to be granted increased CPU affinity and
  4048  	// exclusivity on the node. The default value is 'none' if unspecified.
  4049  	CpuManagerPolicy string `json:"cpuManagerPolicy,omitempty"`
  4050  	// InsecureKubeletReadonlyPortEnabled: Enable or disable Kubelet read only
  4051  	// port.
  4052  	InsecureKubeletReadonlyPortEnabled bool `json:"insecureKubeletReadonlyPortEnabled,omitempty"`
  4053  	// PodPidsLimit: Set the Pod PID limits. See
  4054  	// https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits
  4055  	// Controls the maximum number of processes allowed to run in a pod. The value
  4056  	// must be greater than or equal to 1024 and less than 4194304.
  4057  	PodPidsLimit int64 `json:"podPidsLimit,omitempty,string"`
  4058  	// ForceSendFields is a list of field names (e.g. "CpuCfsQuota") to
  4059  	// unconditionally include in API requests. By default, fields with empty or
  4060  	// default values are omitted from API requests. See
  4061  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4062  	// details.
  4063  	ForceSendFields []string `json:"-"`
  4064  	// NullFields is a list of field names (e.g. "CpuCfsQuota") to include in API
  4065  	// requests with the JSON null value. By default, fields with empty values are
  4066  	// omitted from API requests. See
  4067  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4068  	NullFields []string `json:"-"`
  4069  }
  4070  
  4071  func (s *NodeKubeletConfig) MarshalJSON() ([]byte, error) {
  4072  	type NoMethod NodeKubeletConfig
  4073  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4074  }
  4075  
  4076  // NodeLabels: Collection of node-level Kubernetes labels
  4077  // (https://kubernetes.io/docs/concepts/overview/working-with-objects/labels).
  4078  type NodeLabels struct {
  4079  	// Labels: Map of node label keys and node label values.
  4080  	Labels map[string]string `json:"labels,omitempty"`
  4081  	// ForceSendFields is a list of field names (e.g. "Labels") to unconditionally
  4082  	// include in API requests. By default, fields with empty or default values are
  4083  	// omitted from API requests. See
  4084  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4085  	// details.
  4086  	ForceSendFields []string `json:"-"`
  4087  	// NullFields is a list of field names (e.g. "Labels") to include in API
  4088  	// requests with the JSON null value. By default, fields with empty values are
  4089  	// omitted from API requests. See
  4090  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4091  	NullFields []string `json:"-"`
  4092  }
  4093  
  4094  func (s *NodeLabels) MarshalJSON() ([]byte, error) {
  4095  	type NoMethod NodeLabels
  4096  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4097  }
  4098  
  4099  // NodeManagement: NodeManagement defines the set of node management services
  4100  // turned on for the node pool.
  4101  type NodeManagement struct {
  4102  	// AutoRepair: A flag that specifies whether the node auto-repair is enabled
  4103  	// for the node pool. If enabled, the nodes in this node pool will be monitored
  4104  	// and, if they fail health checks too many times, an automatic repair action
  4105  	// will be triggered.
  4106  	AutoRepair bool `json:"autoRepair,omitempty"`
  4107  	// AutoUpgrade: A flag that specifies whether node auto-upgrade is enabled for
  4108  	// the node pool. If enabled, node auto-upgrade helps keep the nodes in your
  4109  	// node pool up to date with the latest release version of Kubernetes.
  4110  	AutoUpgrade bool `json:"autoUpgrade,omitempty"`
  4111  	// UpgradeOptions: Specifies the Auto Upgrade knobs for the node pool.
  4112  	UpgradeOptions *AutoUpgradeOptions `json:"upgradeOptions,omitempty"`
  4113  	// ForceSendFields is a list of field names (e.g. "AutoRepair") to
  4114  	// unconditionally include in API requests. By default, fields with empty or
  4115  	// default values are omitted from API requests. See
  4116  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4117  	// details.
  4118  	ForceSendFields []string `json:"-"`
  4119  	// NullFields is a list of field names (e.g. "AutoRepair") to include in API
  4120  	// requests with the JSON null value. By default, fields with empty values are
  4121  	// omitted from API requests. See
  4122  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4123  	NullFields []string `json:"-"`
  4124  }
  4125  
  4126  func (s *NodeManagement) MarshalJSON() ([]byte, error) {
  4127  	type NoMethod NodeManagement
  4128  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4129  }
  4130  
  4131  // NodeNetworkConfig: Parameters for node pool-level network config.
  4132  type NodeNetworkConfig struct {
  4133  	// AdditionalNodeNetworkConfigs: We specify the additional node networks for
  4134  	// this node pool using this list. Each node network corresponds to an
  4135  	// additional interface
  4136  	AdditionalNodeNetworkConfigs []*AdditionalNodeNetworkConfig `json:"additionalNodeNetworkConfigs,omitempty"`
  4137  	// AdditionalPodNetworkConfigs: We specify the additional pod networks for this
  4138  	// node pool using this list. Each pod network corresponds to an additional
  4139  	// alias IP range for the node
  4140  	AdditionalPodNetworkConfigs []*AdditionalPodNetworkConfig `json:"additionalPodNetworkConfigs,omitempty"`
  4141  	// CreatePodRange: Input only. Whether to create a new range for pod IPs in
  4142  	// this node pool. Defaults are provided for `pod_range` and
  4143  	// `pod_ipv4_cidr_block` if they are not specified. If neither
  4144  	// `create_pod_range` or `pod_range` are specified, the cluster-level default
  4145  	// (`ip_allocation_policy.cluster_ipv4_cidr_block`) is used. Only applicable if
  4146  	// `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed
  4147  	// after the node pool has been created.
  4148  	CreatePodRange bool `json:"createPodRange,omitempty"`
  4149  	// EnablePrivateNodes: Whether nodes have internal IP addresses only. If
  4150  	// enable_private_nodes is not specified, then the value is derived from
  4151  	// cluster.privateClusterConfig.enablePrivateNodes
  4152  	EnablePrivateNodes bool `json:"enablePrivateNodes,omitempty"`
  4153  	// NetworkPerformanceConfig: Network bandwidth tier configuration.
  4154  	NetworkPerformanceConfig *NetworkPerformanceConfig `json:"networkPerformanceConfig,omitempty"`
  4155  	// PodCidrOverprovisionConfig: [PRIVATE FIELD] Pod CIDR size overprovisioning
  4156  	// config for the nodepool. Pod CIDR size per node depends on
  4157  	// max_pods_per_node. By default, the value of max_pods_per_node is rounded off
  4158  	// to next power of 2 and we then double that to get the size of pod CIDR block
  4159  	// per node. Example: max_pods_per_node of 30 would result in 64 IPs (/26).
  4160  	// This config can disable the doubling of IPs (we still round off to next
  4161  	// power of 2) Example: max_pods_per_node of 30 will result in 32 IPs (/27)
  4162  	// when overprovisioning is disabled.
  4163  	PodCidrOverprovisionConfig *PodCIDROverprovisionConfig `json:"podCidrOverprovisionConfig,omitempty"`
  4164  	// PodIpv4CidrBlock: The IP address range for pod IPs in this node pool. Only
  4165  	// applicable if `create_pod_range` is true. Set to blank to have a range
  4166  	// chosen with the default size. Set to /netmask (e.g. `/14`) to have a range
  4167  	// chosen with a specific netmask. Set to a CIDR
  4168  	// (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation
  4169  	// (e.g. `10.96.0.0/14`) to pick a specific range to use. Only applicable if
  4170  	// `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed
  4171  	// after the node pool has been created.
  4172  	PodIpv4CidrBlock string `json:"podIpv4CidrBlock,omitempty"`
  4173  	// PodIpv4RangeUtilization: Output only. [Output only] The utilization of the
  4174  	// IPv4 range for the pod. The ratio is Usage/[Total number of IPs in the
  4175  	// secondary range], Usage=numNodes*numZones*podIPsPerNode.
  4176  	PodIpv4RangeUtilization float64 `json:"podIpv4RangeUtilization,omitempty"`
  4177  	// PodRange: The ID of the secondary range for pod IPs. If `create_pod_range`
  4178  	// is true, this ID is used for the new range. If `create_pod_range` is false,
  4179  	// uses an existing secondary range with this ID. Only applicable if
  4180  	// `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed
  4181  	// after the node pool has been created.
  4182  	PodRange string `json:"podRange,omitempty"`
  4183  	// ForceSendFields is a list of field names (e.g.
  4184  	// "AdditionalNodeNetworkConfigs") to unconditionally include in API requests.
  4185  	// By default, fields with empty or default values are omitted from API
  4186  	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
  4187  	// for more details.
  4188  	ForceSendFields []string `json:"-"`
  4189  	// NullFields is a list of field names (e.g. "AdditionalNodeNetworkConfigs") to
  4190  	// include in API requests with the JSON null value. By default, fields with
  4191  	// empty values are omitted from API requests. See
  4192  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4193  	NullFields []string `json:"-"`
  4194  }
  4195  
  4196  func (s *NodeNetworkConfig) MarshalJSON() ([]byte, error) {
  4197  	type NoMethod NodeNetworkConfig
  4198  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4199  }
  4200  
  4201  func (s *NodeNetworkConfig) UnmarshalJSON(data []byte) error {
  4202  	type NoMethod NodeNetworkConfig
  4203  	var s1 struct {
  4204  		PodIpv4RangeUtilization gensupport.JSONFloat64 `json:"podIpv4RangeUtilization"`
  4205  		*NoMethod
  4206  	}
  4207  	s1.NoMethod = (*NoMethod)(s)
  4208  	if err := json.Unmarshal(data, &s1); err != nil {
  4209  		return err
  4210  	}
  4211  	s.PodIpv4RangeUtilization = float64(s1.PodIpv4RangeUtilization)
  4212  	return nil
  4213  }
  4214  
  4215  // NodePool: NodePool contains the name and configuration for a cluster's node
  4216  // pool. Node pools are a set of nodes (i.e. VM's), with a common configuration
  4217  // and specification, under the control of the cluster master. They may have a
  4218  // set of Kubernetes labels applied to them, which may be used to reference
  4219  // them during pod scheduling. They may also be resized up or down, to
  4220  // accommodate the workload.
  4221  type NodePool struct {
  4222  	// Autoscaling: Autoscaler configuration for this NodePool. Autoscaler is
  4223  	// enabled only if a valid configuration is present.
  4224  	Autoscaling *NodePoolAutoscaling `json:"autoscaling,omitempty"`
  4225  	// BestEffortProvisioning: Enable best effort provisioning for nodes
  4226  	BestEffortProvisioning *BestEffortProvisioning `json:"bestEffortProvisioning,omitempty"`
  4227  	// Conditions: Which conditions caused the current node pool state.
  4228  	Conditions []*StatusCondition `json:"conditions,omitempty"`
  4229  	// Config: The node configuration of the pool.
  4230  	Config *NodeConfig `json:"config,omitempty"`
  4231  	// Etag: This checksum is computed by the server based on the value of node
  4232  	// pool fields, and may be sent on update requests to ensure the client has an
  4233  	// up-to-date value before proceeding.
  4234  	Etag string `json:"etag,omitempty"`
  4235  	// InitialNodeCount: The initial node count for the pool. You must ensure that
  4236  	// your Compute Engine resource quota (https://cloud.google.com/compute/quotas)
  4237  	// is sufficient for this number of instances. You must also have available
  4238  	// firewall and routes quota.
  4239  	InitialNodeCount int64 `json:"initialNodeCount,omitempty"`
  4240  	// InstanceGroupUrls: [Output only] The resource URLs of the managed instance
  4241  	// groups
  4242  	// (https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances)
  4243  	// associated with this node pool. During the node pool blue-green upgrade
  4244  	// operation, the URLs contain both blue and green resources.
  4245  	InstanceGroupUrls []string `json:"instanceGroupUrls,omitempty"`
  4246  	// Locations: The list of Google Compute Engine zones
  4247  	// (https://cloud.google.com/compute/docs/zones#available) in which the
  4248  	// NodePool's nodes should be located. If this value is unspecified during node
  4249  	// pool creation, the Cluster.Locations
  4250  	// (https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.FIELDS.locations)
  4251  	// value will be used, instead. Warning: changing node pool locations will
  4252  	// result in nodes being added and/or removed.
  4253  	Locations []string `json:"locations,omitempty"`
  4254  	// Management: NodeManagement configuration for this NodePool.
  4255  	Management *NodeManagement `json:"management,omitempty"`
  4256  	// MaxPodsConstraint: The constraint on the maximum number of pods that can be
  4257  	// run simultaneously on a node in the node pool.
  4258  	MaxPodsConstraint *MaxPodsConstraint `json:"maxPodsConstraint,omitempty"`
  4259  	// Name: The name of the node pool.
  4260  	Name string `json:"name,omitempty"`
  4261  	// NetworkConfig: Networking configuration for this NodePool. If specified, it
  4262  	// overrides the cluster-level defaults.
  4263  	NetworkConfig *NodeNetworkConfig `json:"networkConfig,omitempty"`
  4264  	// PlacementPolicy: Specifies the node placement policy.
  4265  	PlacementPolicy *PlacementPolicy `json:"placementPolicy,omitempty"`
  4266  	// PodIpv4CidrSize: [Output only] The pod CIDR block size per node in this node
  4267  	// pool.
  4268  	PodIpv4CidrSize int64 `json:"podIpv4CidrSize,omitempty"`
  4269  	// QueuedProvisioning: Specifies the configuration of queued provisioning.
  4270  	QueuedProvisioning *QueuedProvisioning `json:"queuedProvisioning,omitempty"`
  4271  	// SelfLink: [Output only] Server-defined URL for the resource.
  4272  	SelfLink string `json:"selfLink,omitempty"`
  4273  	// Status: [Output only] The status of the nodes in this pool instance.
  4274  	//
  4275  	// Possible values:
  4276  	//   "STATUS_UNSPECIFIED" - Not set.
  4277  	//   "PROVISIONING" - The PROVISIONING state indicates the node pool is being
  4278  	// created.
  4279  	//   "RUNNING" - The RUNNING state indicates the node pool has been created and
  4280  	// is fully usable.
  4281  	//   "RUNNING_WITH_ERROR" - The RUNNING_WITH_ERROR state indicates the node
  4282  	// pool has been created and is partially usable. Some error state has occurred
  4283  	// and some functionality may be impaired. Customer may need to reissue a
  4284  	// request or trigger a new update.
  4285  	//   "RECONCILING" - The RECONCILING state indicates that some work is actively
  4286  	// being done on the node pool, such as upgrading node software. Details can be
  4287  	// found in the `statusMessage` field.
  4288  	//   "STOPPING" - The STOPPING state indicates the node pool is being deleted.
  4289  	//   "ERROR" - The ERROR state indicates the node pool may be unusable. Details
  4290  	// can be found in the `statusMessage` field.
  4291  	Status string `json:"status,omitempty"`
  4292  	// StatusMessage: [Output only] Deprecated. Use conditions instead. Additional
  4293  	// information about the current status of this node pool instance, if
  4294  	// available.
  4295  	StatusMessage string `json:"statusMessage,omitempty"`
  4296  	// UpdateInfo: Output only. [Output only] Update info contains relevant
  4297  	// information during a node pool update.
  4298  	UpdateInfo *UpdateInfo `json:"updateInfo,omitempty"`
  4299  	// UpgradeSettings: Upgrade settings control disruption and speed of the
  4300  	// upgrade.
  4301  	UpgradeSettings *UpgradeSettings `json:"upgradeSettings,omitempty"`
  4302  	// Version: The version of Kubernetes running on this NodePool's nodes. If
  4303  	// unspecified, it defaults as described here
  4304  	// (https://cloud.google.com/kubernetes-engine/versioning#specifying_node_version).
  4305  	Version string `json:"version,omitempty"`
  4306  
  4307  	// ServerResponse contains the HTTP response code and headers from the server.
  4308  	googleapi.ServerResponse `json:"-"`
  4309  	// ForceSendFields is a list of field names (e.g. "Autoscaling") to
  4310  	// unconditionally include in API requests. By default, fields with empty or
  4311  	// default values are omitted from API requests. See
  4312  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4313  	// details.
  4314  	ForceSendFields []string `json:"-"`
  4315  	// NullFields is a list of field names (e.g. "Autoscaling") to include in API
  4316  	// requests with the JSON null value. By default, fields with empty values are
  4317  	// omitted from API requests. See
  4318  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4319  	NullFields []string `json:"-"`
  4320  }
  4321  
  4322  func (s *NodePool) MarshalJSON() ([]byte, error) {
  4323  	type NoMethod NodePool
  4324  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4325  }
  4326  
  4327  // NodePoolAutoConfig: Node pool configs that apply to all auto-provisioned
  4328  // node pools in autopilot clusters and node auto-provisioning enabled
  4329  // clusters.
  4330  type NodePoolAutoConfig struct {
  4331  	// NetworkTags: The list of instance tags applied to all nodes. Tags are used
  4332  	// to identify valid sources or targets for network firewalls and are specified
  4333  	// by the client during cluster creation. Each tag within the list must comply
  4334  	// with RFC1035.
  4335  	NetworkTags *NetworkTags `json:"networkTags,omitempty"`
  4336  	// NodeKubeletConfig: NodeKubeletConfig controls the defaults for
  4337  	// autoprovisioned node-pools. Currently only
  4338  	// `insecure_kubelet_readonly_port_enabled` can be set here.
  4339  	NodeKubeletConfig *NodeKubeletConfig `json:"nodeKubeletConfig,omitempty"`
  4340  	// ResourceManagerTags: Resource manager tag keys and values to be attached to
  4341  	// the nodes for managing Compute Engine firewalls using Network Firewall
  4342  	// Policies.
  4343  	ResourceManagerTags *ResourceManagerTags `json:"resourceManagerTags,omitempty"`
  4344  	// ForceSendFields is a list of field names (e.g. "NetworkTags") to
  4345  	// unconditionally include in API requests. By default, fields with empty or
  4346  	// default values are omitted from API requests. See
  4347  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4348  	// details.
  4349  	ForceSendFields []string `json:"-"`
  4350  	// NullFields is a list of field names (e.g. "NetworkTags") to include in API
  4351  	// requests with the JSON null value. By default, fields with empty values are
  4352  	// omitted from API requests. See
  4353  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4354  	NullFields []string `json:"-"`
  4355  }
  4356  
  4357  func (s *NodePoolAutoConfig) MarshalJSON() ([]byte, error) {
  4358  	type NoMethod NodePoolAutoConfig
  4359  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4360  }
  4361  
  4362  // NodePoolAutoscaling: NodePoolAutoscaling contains information required by
  4363  // cluster autoscaler to adjust the size of the node pool to the current
  4364  // cluster usage.
  4365  type NodePoolAutoscaling struct {
  4366  	// Autoprovisioned: Can this node pool be deleted automatically.
  4367  	Autoprovisioned bool `json:"autoprovisioned,omitempty"`
  4368  	// Enabled: Is autoscaling enabled for this node pool.
  4369  	Enabled bool `json:"enabled,omitempty"`
  4370  	// LocationPolicy: Location policy used when scaling up a nodepool.
  4371  	//
  4372  	// Possible values:
  4373  	//   "LOCATION_POLICY_UNSPECIFIED" - Not set.
  4374  	//   "BALANCED" - BALANCED is a best effort policy that aims to balance the
  4375  	// sizes of different zones.
  4376  	//   "ANY" - ANY policy picks zones that have the highest capacity available.
  4377  	LocationPolicy string `json:"locationPolicy,omitempty"`
  4378  	// MaxNodeCount: Maximum number of nodes for one location in the NodePool. Must
  4379  	// be >= min_node_count. There has to be enough quota to scale up the cluster.
  4380  	MaxNodeCount int64 `json:"maxNodeCount,omitempty"`
  4381  	// MinNodeCount: Minimum number of nodes for one location in the NodePool. Must
  4382  	// be >= 1 and <= max_node_count.
  4383  	MinNodeCount int64 `json:"minNodeCount,omitempty"`
  4384  	// TotalMaxNodeCount: Maximum number of nodes in the node pool. Must be greater
  4385  	// than total_min_node_count. There has to be enough quota to scale up the
  4386  	// cluster. The total_*_node_count fields are mutually exclusive with the
  4387  	// *_node_count fields.
  4388  	TotalMaxNodeCount int64 `json:"totalMaxNodeCount,omitempty"`
  4389  	// TotalMinNodeCount: Minimum number of nodes in the node pool. Must be greater
  4390  	// than 1 less than total_max_node_count. The total_*_node_count fields are
  4391  	// mutually exclusive with the *_node_count fields.
  4392  	TotalMinNodeCount int64 `json:"totalMinNodeCount,omitempty"`
  4393  	// ForceSendFields is a list of field names (e.g. "Autoprovisioned") to
  4394  	// unconditionally include in API requests. By default, fields with empty or
  4395  	// default values are omitted from API requests. See
  4396  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4397  	// details.
  4398  	ForceSendFields []string `json:"-"`
  4399  	// NullFields is a list of field names (e.g. "Autoprovisioned") to include in
  4400  	// API requests with the JSON null value. By default, fields with empty values
  4401  	// are omitted from API requests. See
  4402  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4403  	NullFields []string `json:"-"`
  4404  }
  4405  
  4406  func (s *NodePoolAutoscaling) MarshalJSON() ([]byte, error) {
  4407  	type NoMethod NodePoolAutoscaling
  4408  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4409  }
  4410  
  4411  // NodePoolDefaults: Subset of Nodepool message that has defaults.
  4412  type NodePoolDefaults struct {
  4413  	// NodeConfigDefaults: Subset of NodeConfig message that has defaults.
  4414  	NodeConfigDefaults *NodeConfigDefaults `json:"nodeConfigDefaults,omitempty"`
  4415  	// ForceSendFields is a list of field names (e.g. "NodeConfigDefaults") to
  4416  	// unconditionally include in API requests. By default, fields with empty or
  4417  	// default values are omitted from API requests. See
  4418  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4419  	// details.
  4420  	ForceSendFields []string `json:"-"`
  4421  	// NullFields is a list of field names (e.g. "NodeConfigDefaults") to include
  4422  	// in API requests with the JSON null value. By default, fields with empty
  4423  	// values are omitted from API requests. See
  4424  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4425  	NullFields []string `json:"-"`
  4426  }
  4427  
  4428  func (s *NodePoolDefaults) MarshalJSON() ([]byte, error) {
  4429  	type NoMethod NodePoolDefaults
  4430  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4431  }
  4432  
  4433  // NodePoolLoggingConfig: NodePoolLoggingConfig specifies logging configuration
  4434  // for nodepools.
  4435  type NodePoolLoggingConfig struct {
  4436  	// VariantConfig: Logging variant configuration.
  4437  	VariantConfig *LoggingVariantConfig `json:"variantConfig,omitempty"`
  4438  	// ForceSendFields is a list of field names (e.g. "VariantConfig") to
  4439  	// unconditionally include in API requests. By default, fields with empty or
  4440  	// default values are omitted from API requests. See
  4441  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4442  	// details.
  4443  	ForceSendFields []string `json:"-"`
  4444  	// NullFields is a list of field names (e.g. "VariantConfig") to include in API
  4445  	// requests with the JSON null value. By default, fields with empty values are
  4446  	// omitted from API requests. See
  4447  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4448  	NullFields []string `json:"-"`
  4449  }
  4450  
  4451  func (s *NodePoolLoggingConfig) MarshalJSON() ([]byte, error) {
  4452  	type NoMethod NodePoolLoggingConfig
  4453  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4454  }
  4455  
  4456  // NodeTaint: Kubernetes taint is composed of three fields: key, value, and
  4457  // effect. Effect can only be one of three types: NoSchedule, PreferNoSchedule
  4458  // or NoExecute. See here
  4459  // (https://kubernetes.io/docs/concepts/configuration/taint-and-toleration) for
  4460  // more information, including usage and the valid values.
  4461  type NodeTaint struct {
  4462  	// Effect: Effect for taint.
  4463  	//
  4464  	// Possible values:
  4465  	//   "EFFECT_UNSPECIFIED" - Not set
  4466  	//   "NO_SCHEDULE" - NoSchedule
  4467  	//   "PREFER_NO_SCHEDULE" - PreferNoSchedule
  4468  	//   "NO_EXECUTE" - NoExecute
  4469  	Effect string `json:"effect,omitempty"`
  4470  	// Key: Key for taint.
  4471  	Key string `json:"key,omitempty"`
  4472  	// Value: Value for taint.
  4473  	Value string `json:"value,omitempty"`
  4474  	// ForceSendFields is a list of field names (e.g. "Effect") to unconditionally
  4475  	// include in API requests. By default, fields with empty or default values are
  4476  	// omitted from API requests. See
  4477  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4478  	// details.
  4479  	ForceSendFields []string `json:"-"`
  4480  	// NullFields is a list of field names (e.g. "Effect") to include in API
  4481  	// requests with the JSON null value. By default, fields with empty values are
  4482  	// omitted from API requests. See
  4483  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4484  	NullFields []string `json:"-"`
  4485  }
  4486  
  4487  func (s *NodeTaint) MarshalJSON() ([]byte, error) {
  4488  	type NoMethod NodeTaint
  4489  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4490  }
  4491  
  4492  // NodeTaints: Collection of Kubernetes node taints
  4493  // (https://kubernetes.io/docs/concepts/configuration/taint-and-toleration).
  4494  type NodeTaints struct {
  4495  	// Taints: List of node taints.
  4496  	Taints []*NodeTaint `json:"taints,omitempty"`
  4497  	// ForceSendFields is a list of field names (e.g. "Taints") to unconditionally
  4498  	// include in API requests. By default, fields with empty or default values are
  4499  	// omitted from API requests. See
  4500  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4501  	// details.
  4502  	ForceSendFields []string `json:"-"`
  4503  	// NullFields is a list of field names (e.g. "Taints") to include in API
  4504  	// requests with the JSON null value. By default, fields with empty values are
  4505  	// omitted from API requests. See
  4506  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4507  	NullFields []string `json:"-"`
  4508  }
  4509  
  4510  func (s *NodeTaints) MarshalJSON() ([]byte, error) {
  4511  	type NoMethod NodeTaints
  4512  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4513  }
  4514  
  4515  // NotificationConfig: NotificationConfig is the configuration of
  4516  // notifications.
  4517  type NotificationConfig struct {
  4518  	// Pubsub: Notification config for Pub/Sub.
  4519  	Pubsub *PubSub `json:"pubsub,omitempty"`
  4520  	// ForceSendFields is a list of field names (e.g. "Pubsub") to unconditionally
  4521  	// include in API requests. By default, fields with empty or default values are
  4522  	// omitted from API requests. See
  4523  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4524  	// details.
  4525  	ForceSendFields []string `json:"-"`
  4526  	// NullFields is a list of field names (e.g. "Pubsub") to include in API
  4527  	// requests with the JSON null value. By default, fields with empty values are
  4528  	// omitted from API requests. See
  4529  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4530  	NullFields []string `json:"-"`
  4531  }
  4532  
  4533  func (s *NotificationConfig) MarshalJSON() ([]byte, error) {
  4534  	type NoMethod NotificationConfig
  4535  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4536  }
  4537  
  4538  // Operation: This operation resource represents operations that may have
  4539  // happened or are happening on the cluster. All fields are output only.
  4540  type Operation struct {
  4541  	// ClusterConditions: Which conditions caused the current cluster state.
  4542  	// Deprecated. Use field error instead.
  4543  	ClusterConditions []*StatusCondition `json:"clusterConditions,omitempty"`
  4544  	// Detail: Detailed operation progress, if available.
  4545  	Detail string `json:"detail,omitempty"`
  4546  	// EndTime: [Output only] The time the operation completed, in RFC3339
  4547  	// (https://www.ietf.org/rfc/rfc3339.txt) text format.
  4548  	EndTime string `json:"endTime,omitempty"`
  4549  	// Error: The error result of the operation in case of failure.
  4550  	Error *Status `json:"error,omitempty"`
  4551  	// Location: [Output only] The name of the Google Compute Engine zone
  4552  	// (https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
  4553  	// or region
  4554  	// (https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
  4555  	// in which the cluster resides.
  4556  	Location string `json:"location,omitempty"`
  4557  	// Name: The server-assigned ID for the operation.
  4558  	Name string `json:"name,omitempty"`
  4559  	// NodepoolConditions: Which conditions caused the current node pool state.
  4560  	// Deprecated. Use field error instead.
  4561  	NodepoolConditions []*StatusCondition `json:"nodepoolConditions,omitempty"`
  4562  	// OperationType: The operation type.
  4563  	//
  4564  	// Possible values:
  4565  	//   "TYPE_UNSPECIFIED" - Not set.
  4566  	//   "CREATE_CLUSTER" - The cluster is being created. The cluster should be
  4567  	// assumed to be unusable until the operation finishes. In the event of the
  4568  	// operation failing, the cluster will enter the ERROR state and eventually be
  4569  	// deleted.
  4570  	//   "DELETE_CLUSTER" - The cluster is being deleted. The cluster should be
  4571  	// assumed to be unusable as soon as this operation starts. In the event of the
  4572  	// operation failing, the cluster will enter the ERROR state and the deletion
  4573  	// will be automatically retried until completed.
  4574  	//   "UPGRADE_MASTER" - The cluster version is being updated. Note that this
  4575  	// includes "upgrades" to the same version, which are simply a recreation. This
  4576  	// also includes
  4577  	// [auto-upgrades](https://cloud.google.com/kubernetes-engine/docs/concepts/clus
  4578  	// ter-upgrades#upgrading_automatically). For more details, see [documentation
  4579  	// on cluster
  4580  	// upgrades](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-up
  4581  	// grades#cluster_upgrades).
  4582  	//   "UPGRADE_NODES" - A node pool is being updated. Despite calling this an
  4583  	// "upgrade", this includes most forms of updates to node pools. This also
  4584  	// includes
  4585  	// [auto-upgrades](https://cloud.google.com/kubernetes-engine/docs/how-to/node-a
  4586  	// uto-upgrades). This operation sets the progress field and may be canceled.
  4587  	// The upgrade strategy depends on [node pool
  4588  	// configuration](https://cloud.google.com/kubernetes-engine/docs/concepts/node-
  4589  	// pool-upgrade-strategies). The nodes are generally still usable during this
  4590  	// operation.
  4591  	//   "REPAIR_CLUSTER" - A problem has been detected with the control plane and
  4592  	// is being repaired. This operation type is initiated by GKE. For more
  4593  	// details, see [documentation on
  4594  	// repairs](https://cloud.google.com/kubernetes-engine/docs/concepts/maintenance
  4595  	// -windows-and-exclusions#repairs).
  4596  	//   "UPDATE_CLUSTER" - The cluster is being updated. This is a broad category
  4597  	// of operations and includes operations that only change metadata as well as
  4598  	// those that must recreate the entire cluster. If the control plane must be
  4599  	// recreated, this will cause temporary downtime for zonal clusters. Some
  4600  	// features require recreating the nodes as well. Those will be recreated as
  4601  	// separate operations and the update may not be completely functional until
  4602  	// the node pools recreations finish. Node recreations will generally follow
  4603  	// [maintenance
  4604  	// policies](https://cloud.google.com/kubernetes-engine/docs/concepts/maintenanc
  4605  	// e-windows-and-exclusions). Some GKE-initiated operations use this type. This
  4606  	// includes certain types of auto-upgrades and incident mitigations.
  4607  	//   "CREATE_NODE_POOL" - A node pool is being created. The node pool should be
  4608  	// assumed to be unusable until this operation finishes. In the event of an
  4609  	// error, the node pool may be partially created. If enabled, [node
  4610  	// autoprovisioning](https://cloud.google.com/kubernetes-engine/docs/how-to/node
  4611  	// -auto-provisioning) may have automatically initiated such operations.
  4612  	//   "DELETE_NODE_POOL" - The node pool is being deleted. The node pool should
  4613  	// be assumed to be unusable as soon as this operation starts.
  4614  	//   "SET_NODE_POOL_MANAGEMENT" - The node pool's manamagent field is being
  4615  	// updated. These operations only update metadata and may be concurrent with
  4616  	// most other operations.
  4617  	//   "AUTO_REPAIR_NODES" - A problem has been detected with nodes and [they are
  4618  	// being
  4619  	// repaired](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-re
  4620  	// pair). This operation type is initiated by GKE, typically automatically.
  4621  	// This operation may be concurrent with other operations and there may be
  4622  	// multiple repairs occurring on the same node pool.
  4623  	//   "AUTO_UPGRADE_NODES" - Unused. Automatic node upgrade uses UPGRADE_NODES.
  4624  	//   "SET_LABELS" - Unused. Updating labels uses UPDATE_CLUSTER.
  4625  	//   "SET_MASTER_AUTH" - Unused. Updating master auth uses UPDATE_CLUSTER.
  4626  	//   "SET_NODE_POOL_SIZE" - The node pool is being resized. With the exception
  4627  	// of resizing to or from size zero, the node pool is generally usable during
  4628  	// this operation.
  4629  	//   "SET_NETWORK_POLICY" - Unused. Updating network policy uses
  4630  	// UPDATE_CLUSTER.
  4631  	//   "SET_MAINTENANCE_POLICY" - Unused. Updating maintenance policy uses
  4632  	// UPDATE_CLUSTER.
  4633  	//   "RESIZE_CLUSTER" - The control plane is being resized. This operation type
  4634  	// is initiated by GKE. These operations are often performed preemptively to
  4635  	// ensure that the control plane has sufficient resources and is not typically
  4636  	// an indication of issues. For more details, see [documentation on
  4637  	// resizes](https://cloud.google.com/kubernetes-engine/docs/concepts/maintenance
  4638  	// -windows-and-exclusions#repairs).
  4639  	//   "FLEET_FEATURE_UPGRADE" - Fleet features of GKE Enterprise are being
  4640  	// upgraded. The cluster should be assumed to be blocked for other upgrades
  4641  	// until the operation finishes.
  4642  	OperationType string `json:"operationType,omitempty"`
  4643  	// Progress: Output only. [Output only] Progress information for an operation.
  4644  	Progress *OperationProgress `json:"progress,omitempty"`
  4645  	// SelfLink: Server-defined URI for the operation. Example:
  4646  	// `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1
  4647  	// /operations/operation-123`.
  4648  	SelfLink string `json:"selfLink,omitempty"`
  4649  	// StartTime: [Output only] The time the operation started, in RFC3339
  4650  	// (https://www.ietf.org/rfc/rfc3339.txt) text format.
  4651  	StartTime string `json:"startTime,omitempty"`
  4652  	// Status: The current status of the operation.
  4653  	//
  4654  	// Possible values:
  4655  	//   "STATUS_UNSPECIFIED" - Not set.
  4656  	//   "PENDING" - The operation has been created.
  4657  	//   "RUNNING" - The operation is currently running.
  4658  	//   "DONE" - The operation is done, either cancelled or completed.
  4659  	//   "ABORTING" - The operation is aborting.
  4660  	Status string `json:"status,omitempty"`
  4661  	// StatusMessage: Output only. If an error has occurred, a textual description
  4662  	// of the error. Deprecated. Use the field error instead.
  4663  	StatusMessage string `json:"statusMessage,omitempty"`
  4664  	// TargetLink: Server-defined URI for the target of the operation. The format
  4665  	// of this is a URI to the resource being modified (such as a cluster, node
  4666  	// pool, or node). For node pool repairs, there may be multiple nodes being
  4667  	// repaired, but only one will be the target. Examples: - ##
  4668  	// `https://container.googleapis.com/v1/projects/123/locations/us-central1/clust
  4669  	// ers/my-cluster` ##
  4670  	// `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/cluster
  4671  	// s/my-cluster/nodePools/my-np`
  4672  	// `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/cluster
  4673  	// s/my-cluster/nodePools/my-np/node/my-node`
  4674  	TargetLink string `json:"targetLink,omitempty"`
  4675  	// Zone: The name of the Google Compute Engine zone
  4676  	// (https://cloud.google.com/compute/docs/zones#available) in which the
  4677  	// operation is taking place. This field is deprecated, use location instead.
  4678  	Zone string `json:"zone,omitempty"`
  4679  
  4680  	// ServerResponse contains the HTTP response code and headers from the server.
  4681  	googleapi.ServerResponse `json:"-"`
  4682  	// ForceSendFields is a list of field names (e.g. "ClusterConditions") to
  4683  	// unconditionally include in API requests. By default, fields with empty or
  4684  	// default values are omitted from API requests. See
  4685  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4686  	// details.
  4687  	ForceSendFields []string `json:"-"`
  4688  	// NullFields is a list of field names (e.g. "ClusterConditions") to include in
  4689  	// API requests with the JSON null value. By default, fields with empty values
  4690  	// are omitted from API requests. See
  4691  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4692  	NullFields []string `json:"-"`
  4693  }
  4694  
  4695  func (s *Operation) MarshalJSON() ([]byte, error) {
  4696  	type NoMethod Operation
  4697  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4698  }
  4699  
  4700  // OperationError: OperationError records errors seen from CloudKMS keys
  4701  // encountered during updates to DatabaseEncryption configuration.
  4702  type OperationError struct {
  4703  	// ErrorMessage: Description of the error seen during the operation.
  4704  	ErrorMessage string `json:"errorMessage,omitempty"`
  4705  	// KeyName: CloudKMS key resource that had the error.
  4706  	KeyName string `json:"keyName,omitempty"`
  4707  	// Timestamp: Time when the CloudKMS error was seen.
  4708  	Timestamp string `json:"timestamp,omitempty"`
  4709  	// ForceSendFields is a list of field names (e.g. "ErrorMessage") to
  4710  	// unconditionally include in API requests. By default, fields with empty or
  4711  	// default values are omitted from API requests. See
  4712  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4713  	// details.
  4714  	ForceSendFields []string `json:"-"`
  4715  	// NullFields is a list of field names (e.g. "ErrorMessage") to include in API
  4716  	// requests with the JSON null value. By default, fields with empty values are
  4717  	// omitted from API requests. See
  4718  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4719  	NullFields []string `json:"-"`
  4720  }
  4721  
  4722  func (s *OperationError) MarshalJSON() ([]byte, error) {
  4723  	type NoMethod OperationError
  4724  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4725  }
  4726  
  4727  // OperationProgress: Information about operation (or operation stage)
  4728  // progress.
  4729  type OperationProgress struct {
  4730  	// Metrics: Progress metric bundle, for example: metrics: [{name: "nodes done",
  4731  	// int_value: 15}, {name: "nodes total", int_value: 32}] or metrics: [{name:
  4732  	// "progress", double_value: 0.56}, {name: "progress scale", double_value:
  4733  	// 1.0}]
  4734  	Metrics []*Metric `json:"metrics,omitempty"`
  4735  	// Name: A non-parameterized string describing an operation stage. Unset for
  4736  	// single-stage operations.
  4737  	Name string `json:"name,omitempty"`
  4738  	// Stages: Substages of an operation or a stage.
  4739  	Stages []*OperationProgress `json:"stages,omitempty"`
  4740  	// Status: Status of an operation stage. Unset for single-stage operations.
  4741  	//
  4742  	// Possible values:
  4743  	//   "STATUS_UNSPECIFIED" - Not set.
  4744  	//   "PENDING" - The operation has been created.
  4745  	//   "RUNNING" - The operation is currently running.
  4746  	//   "DONE" - The operation is done, either cancelled or completed.
  4747  	//   "ABORTING" - The operation is aborting.
  4748  	Status string `json:"status,omitempty"`
  4749  	// ForceSendFields is a list of field names (e.g. "Metrics") to unconditionally
  4750  	// include in API requests. By default, fields with empty or default values are
  4751  	// omitted from API requests. See
  4752  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4753  	// details.
  4754  	ForceSendFields []string `json:"-"`
  4755  	// NullFields is a list of field names (e.g. "Metrics") to include in API
  4756  	// requests with the JSON null value. By default, fields with empty values are
  4757  	// omitted from API requests. See
  4758  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4759  	NullFields []string `json:"-"`
  4760  }
  4761  
  4762  func (s *OperationProgress) MarshalJSON() ([]byte, error) {
  4763  	type NoMethod OperationProgress
  4764  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4765  }
  4766  
  4767  // ParentProductConfig: ParentProductConfig is the configuration of the parent
  4768  // product of the cluster. This field is used by Google internal products that
  4769  // are built on top of a GKE cluster and take the ownership of the cluster.
  4770  type ParentProductConfig struct {
  4771  	// Labels: Labels contain the configuration of the parent product.
  4772  	Labels map[string]string `json:"labels,omitempty"`
  4773  	// ProductName: Name of the parent product associated with the cluster.
  4774  	ProductName string `json:"productName,omitempty"`
  4775  	// ForceSendFields is a list of field names (e.g. "Labels") to unconditionally
  4776  	// include in API requests. By default, fields with empty or default values are
  4777  	// omitted from API requests. See
  4778  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4779  	// details.
  4780  	ForceSendFields []string `json:"-"`
  4781  	// NullFields is a list of field names (e.g. "Labels") to include in API
  4782  	// requests with the JSON null value. By default, fields with empty values are
  4783  	// omitted from API requests. See
  4784  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4785  	NullFields []string `json:"-"`
  4786  }
  4787  
  4788  func (s *ParentProductConfig) MarshalJSON() ([]byte, error) {
  4789  	type NoMethod ParentProductConfig
  4790  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4791  }
  4792  
  4793  // PlacementPolicy: PlacementPolicy defines the placement policy used by the
  4794  // node pool.
  4795  type PlacementPolicy struct {
  4796  	// PolicyName: If set, refers to the name of a custom resource policy supplied
  4797  	// by the user. The resource policy must be in the same project and region as
  4798  	// the node pool. If not found, InvalidArgument error is returned.
  4799  	PolicyName string `json:"policyName,omitempty"`
  4800  	// TpuTopology: Optional. TPU placement topology for pod slice node pool.
  4801  	// https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
  4802  	TpuTopology string `json:"tpuTopology,omitempty"`
  4803  	// Type: The type of placement.
  4804  	//
  4805  	// Possible values:
  4806  	//   "TYPE_UNSPECIFIED" - TYPE_UNSPECIFIED specifies no requirements on nodes
  4807  	// placement.
  4808  	//   "COMPACT" - COMPACT specifies node placement in the same availability
  4809  	// domain to ensure low communication latency.
  4810  	Type string `json:"type,omitempty"`
  4811  	// ForceSendFields is a list of field names (e.g. "PolicyName") to
  4812  	// unconditionally include in API requests. By default, fields with empty or
  4813  	// default values are omitted from API requests. See
  4814  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4815  	// details.
  4816  	ForceSendFields []string `json:"-"`
  4817  	// NullFields is a list of field names (e.g. "PolicyName") to include in API
  4818  	// requests with the JSON null value. By default, fields with empty values are
  4819  	// omitted from API requests. See
  4820  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4821  	NullFields []string `json:"-"`
  4822  }
  4823  
  4824  func (s *PlacementPolicy) MarshalJSON() ([]byte, error) {
  4825  	type NoMethod PlacementPolicy
  4826  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4827  }
  4828  
  4829  // PodCIDROverprovisionConfig: [PRIVATE FIELD] Config for pod CIDR size
  4830  // overprovisioning.
  4831  type PodCIDROverprovisionConfig struct {
  4832  	// Disable: Whether Pod CIDR overprovisioning is disabled. Note: Pod CIDR
  4833  	// overprovisioning is enabled by default.
  4834  	Disable bool `json:"disable,omitempty"`
  4835  	// ForceSendFields is a list of field names (e.g. "Disable") to unconditionally
  4836  	// include in API requests. By default, fields with empty or default values are
  4837  	// omitted from API requests. See
  4838  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4839  	// details.
  4840  	ForceSendFields []string `json:"-"`
  4841  	// NullFields is a list of field names (e.g. "Disable") to include in API
  4842  	// requests with the JSON null value. By default, fields with empty values are
  4843  	// omitted from API requests. See
  4844  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4845  	NullFields []string `json:"-"`
  4846  }
  4847  
  4848  func (s *PodCIDROverprovisionConfig) MarshalJSON() ([]byte, error) {
  4849  	type NoMethod PodCIDROverprovisionConfig
  4850  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4851  }
  4852  
  4853  // PrivateClusterConfig: Configuration options for private clusters.
  4854  type PrivateClusterConfig struct {
  4855  	// EnablePrivateEndpoint: Whether the master's internal IP address is used as
  4856  	// the cluster endpoint.
  4857  	EnablePrivateEndpoint bool `json:"enablePrivateEndpoint,omitempty"`
  4858  	// EnablePrivateNodes: Whether nodes have internal IP addresses only. If
  4859  	// enabled, all nodes are given only RFC 1918 private addresses and communicate
  4860  	// with the master via private networking.
  4861  	EnablePrivateNodes bool `json:"enablePrivateNodes,omitempty"`
  4862  	// MasterGlobalAccessConfig: Controls master global access settings.
  4863  	MasterGlobalAccessConfig *PrivateClusterMasterGlobalAccessConfig `json:"masterGlobalAccessConfig,omitempty"`
  4864  	// MasterIpv4CidrBlock: The IP range in CIDR notation to use for the hosted
  4865  	// master network. This range will be used for assigning internal IP addresses
  4866  	// to the master or set of masters, as well as the ILB VIP. This range must not
  4867  	// overlap with any other ranges in use within the cluster's network.
  4868  	MasterIpv4CidrBlock string `json:"masterIpv4CidrBlock,omitempty"`
  4869  	// PeeringName: Output only. The peering name in the customer VPC used by this
  4870  	// cluster.
  4871  	PeeringName string `json:"peeringName,omitempty"`
  4872  	// PrivateEndpoint: Output only. The internal IP address of this cluster's
  4873  	// master endpoint.
  4874  	PrivateEndpoint string `json:"privateEndpoint,omitempty"`
  4875  	// PrivateEndpointSubnetwork: Subnet to provision the master's private endpoint
  4876  	// during cluster creation. Specified in projects/*/regions/*/subnetworks/*
  4877  	// format.
  4878  	PrivateEndpointSubnetwork string `json:"privateEndpointSubnetwork,omitempty"`
  4879  	// PublicEndpoint: Output only. The external IP address of this cluster's
  4880  	// master endpoint.
  4881  	PublicEndpoint string `json:"publicEndpoint,omitempty"`
  4882  	// ForceSendFields is a list of field names (e.g. "EnablePrivateEndpoint") to
  4883  	// unconditionally include in API requests. By default, fields with empty or
  4884  	// default values are omitted from API requests. See
  4885  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4886  	// details.
  4887  	ForceSendFields []string `json:"-"`
  4888  	// NullFields is a list of field names (e.g. "EnablePrivateEndpoint") to
  4889  	// include in API requests with the JSON null value. By default, fields with
  4890  	// empty values are omitted from API requests. See
  4891  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4892  	NullFields []string `json:"-"`
  4893  }
  4894  
  4895  func (s *PrivateClusterConfig) MarshalJSON() ([]byte, error) {
  4896  	type NoMethod PrivateClusterConfig
  4897  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4898  }
  4899  
  4900  // PrivateClusterMasterGlobalAccessConfig: Configuration for controlling master
  4901  // global access settings.
  4902  type PrivateClusterMasterGlobalAccessConfig struct {
  4903  	// Enabled: Whenever master is accessible globally or not.
  4904  	Enabled bool `json:"enabled,omitempty"`
  4905  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  4906  	// include in API requests. By default, fields with empty or default values are
  4907  	// omitted from API requests. See
  4908  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4909  	// details.
  4910  	ForceSendFields []string `json:"-"`
  4911  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  4912  	// requests with the JSON null value. By default, fields with empty values are
  4913  	// omitted from API requests. See
  4914  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4915  	NullFields []string `json:"-"`
  4916  }
  4917  
  4918  func (s *PrivateClusterMasterGlobalAccessConfig) MarshalJSON() ([]byte, error) {
  4919  	type NoMethod PrivateClusterMasterGlobalAccessConfig
  4920  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4921  }
  4922  
  4923  // PrivateRegistryAccessConfig: PrivateRegistryAccessConfig contains access
  4924  // configuration for private container registries.
  4925  type PrivateRegistryAccessConfig struct {
  4926  	// CertificateAuthorityDomainConfig: Private registry access configuration.
  4927  	CertificateAuthorityDomainConfig []*CertificateAuthorityDomainConfig `json:"certificateAuthorityDomainConfig,omitempty"`
  4928  	// Enabled: Private registry access is enabled.
  4929  	Enabled bool `json:"enabled,omitempty"`
  4930  	// ForceSendFields is a list of field names (e.g.
  4931  	// "CertificateAuthorityDomainConfig") to unconditionally include in API
  4932  	// requests. By default, fields with empty or default values are omitted from
  4933  	// API requests. See
  4934  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4935  	// details.
  4936  	ForceSendFields []string `json:"-"`
  4937  	// NullFields is a list of field names (e.g.
  4938  	// "CertificateAuthorityDomainConfig") to include in API requests with the JSON
  4939  	// null value. By default, fields with empty values are omitted from API
  4940  	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-NullFields for
  4941  	// more details.
  4942  	NullFields []string `json:"-"`
  4943  }
  4944  
  4945  func (s *PrivateRegistryAccessConfig) MarshalJSON() ([]byte, error) {
  4946  	type NoMethod PrivateRegistryAccessConfig
  4947  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4948  }
  4949  
  4950  // PubSub: Pub/Sub specific notification config.
  4951  type PubSub struct {
  4952  	// Enabled: Enable notifications for Pub/Sub.
  4953  	Enabled bool `json:"enabled,omitempty"`
  4954  	// Filter: Allows filtering to one or more specific event types. If no filter
  4955  	// is specified, or if a filter is specified with no event types, all event
  4956  	// types will be sent
  4957  	Filter *Filter `json:"filter,omitempty"`
  4958  	// Topic: The desired Pub/Sub topic to which notifications will be sent by GKE.
  4959  	// Format is `projects/{project}/topics/{topic}`.
  4960  	Topic string `json:"topic,omitempty"`
  4961  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  4962  	// include in API requests. By default, fields with empty or default values are
  4963  	// omitted from API requests. See
  4964  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4965  	// details.
  4966  	ForceSendFields []string `json:"-"`
  4967  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  4968  	// requests with the JSON null value. By default, fields with empty values are
  4969  	// omitted from API requests. See
  4970  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4971  	NullFields []string `json:"-"`
  4972  }
  4973  
  4974  func (s *PubSub) MarshalJSON() ([]byte, error) {
  4975  	type NoMethod PubSub
  4976  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  4977  }
  4978  
  4979  // QueuedProvisioning: QueuedProvisioning defines the queued provisioning used
  4980  // by the node pool.
  4981  type QueuedProvisioning struct {
  4982  	// Enabled: Denotes that this nodepool is QRM specific, meaning nodes can be
  4983  	// only obtained through queuing via the Cluster Autoscaler ProvisioningRequest
  4984  	// API.
  4985  	Enabled bool `json:"enabled,omitempty"`
  4986  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  4987  	// include in API requests. By default, fields with empty or default values are
  4988  	// omitted from API requests. See
  4989  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  4990  	// details.
  4991  	ForceSendFields []string `json:"-"`
  4992  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  4993  	// requests with the JSON null value. By default, fields with empty values are
  4994  	// omitted from API requests. See
  4995  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  4996  	NullFields []string `json:"-"`
  4997  }
  4998  
  4999  func (s *QueuedProvisioning) MarshalJSON() ([]byte, error) {
  5000  	type NoMethod QueuedProvisioning
  5001  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5002  }
  5003  
  5004  // RangeInfo: RangeInfo contains the range name and the range utilization by
  5005  // this cluster.
  5006  type RangeInfo struct {
  5007  	// RangeName: Output only. [Output only] Name of a range.
  5008  	RangeName string `json:"rangeName,omitempty"`
  5009  	// Utilization: Output only. [Output only] The utilization of the range.
  5010  	Utilization float64 `json:"utilization,omitempty"`
  5011  	// ForceSendFields is a list of field names (e.g. "RangeName") to
  5012  	// unconditionally include in API requests. By default, fields with empty or
  5013  	// default values are omitted from API requests. See
  5014  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5015  	// details.
  5016  	ForceSendFields []string `json:"-"`
  5017  	// NullFields is a list of field names (e.g. "RangeName") to include in API
  5018  	// requests with the JSON null value. By default, fields with empty values are
  5019  	// omitted from API requests. See
  5020  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5021  	NullFields []string `json:"-"`
  5022  }
  5023  
  5024  func (s *RangeInfo) MarshalJSON() ([]byte, error) {
  5025  	type NoMethod RangeInfo
  5026  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5027  }
  5028  
  5029  func (s *RangeInfo) UnmarshalJSON(data []byte) error {
  5030  	type NoMethod RangeInfo
  5031  	var s1 struct {
  5032  		Utilization gensupport.JSONFloat64 `json:"utilization"`
  5033  		*NoMethod
  5034  	}
  5035  	s1.NoMethod = (*NoMethod)(s)
  5036  	if err := json.Unmarshal(data, &s1); err != nil {
  5037  		return err
  5038  	}
  5039  	s.Utilization = float64(s1.Utilization)
  5040  	return nil
  5041  }
  5042  
  5043  // RecurringTimeWindow: Represents an arbitrary window of time that recurs.
  5044  type RecurringTimeWindow struct {
  5045  	// Recurrence: An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3)
  5046  	// for how this window reccurs. They go on for the span of time between the
  5047  	// start and end time. For example, to have something repeat every weekday,
  5048  	// you'd use: `FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR` To repeat some window daily
  5049  	// (equivalent to the DailyMaintenanceWindow): `FREQ=DAILY` For the first
  5050  	// weekend of every month: `FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU` This specifies
  5051  	// how frequently the window starts. Eg, if you wanted to have a 9-5 UTC-4
  5052  	// window every weekday, you'd use something like: ``` start time =
  5053  	// 2019-01-01T09:00:00-0400 end time = 2019-01-01T17:00:00-0400 recurrence =
  5054  	// FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR ``` Windows can span multiple days. Eg, to
  5055  	// make the window encompass every weekend from midnight Saturday till the last
  5056  	// minute of Sunday UTC: ``` start time = 2019-01-05T00:00:00Z end time =
  5057  	// 2019-01-07T23:59:00Z recurrence = FREQ=WEEKLY;BYDAY=SA ``` Note the start
  5058  	// and end time's specific dates are largely arbitrary except to specify
  5059  	// duration of the window and when it first starts. The FREQ values of HOURLY,
  5060  	// MINUTELY, and SECONDLY are not supported.
  5061  	Recurrence string `json:"recurrence,omitempty"`
  5062  	// Window: The window of the first recurrence.
  5063  	Window *TimeWindow `json:"window,omitempty"`
  5064  	// ForceSendFields is a list of field names (e.g. "Recurrence") to
  5065  	// unconditionally include in API requests. By default, fields with empty or
  5066  	// default values are omitted from API requests. See
  5067  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5068  	// details.
  5069  	ForceSendFields []string `json:"-"`
  5070  	// NullFields is a list of field names (e.g. "Recurrence") to include in API
  5071  	// requests with the JSON null value. By default, fields with empty values are
  5072  	// omitted from API requests. See
  5073  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5074  	NullFields []string `json:"-"`
  5075  }
  5076  
  5077  func (s *RecurringTimeWindow) MarshalJSON() ([]byte, error) {
  5078  	type NoMethod RecurringTimeWindow
  5079  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5080  }
  5081  
  5082  // ReleaseChannel: ReleaseChannel indicates which release channel a cluster is
  5083  // subscribed to. Release channels are arranged in order of risk. When a
  5084  // cluster is subscribed to a release channel, Google maintains both the master
  5085  // version and the node version. Node auto-upgrade defaults to true and cannot
  5086  // be disabled.
  5087  type ReleaseChannel struct {
  5088  	// Channel: channel specifies which release channel the cluster is subscribed
  5089  	// to.
  5090  	//
  5091  	// Possible values:
  5092  	//   "UNSPECIFIED" - No channel specified.
  5093  	//   "RAPID" - RAPID channel is offered on an early access basis for customers
  5094  	// who want to test new releases. WARNING: Versions available in the RAPID
  5095  	// Channel may be subject to unresolved issues with no known workaround and are
  5096  	// not subject to any SLAs.
  5097  	//   "REGULAR" - Clusters subscribed to REGULAR receive versions that are
  5098  	// considered GA quality. REGULAR is intended for production users who want to
  5099  	// take advantage of new features.
  5100  	//   "STABLE" - Clusters subscribed to STABLE receive versions that are known
  5101  	// to be stable and reliable in production.
  5102  	Channel string `json:"channel,omitempty"`
  5103  	// ForceSendFields is a list of field names (e.g. "Channel") to unconditionally
  5104  	// include in API requests. By default, fields with empty or default values are
  5105  	// omitted from API requests. See
  5106  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5107  	// details.
  5108  	ForceSendFields []string `json:"-"`
  5109  	// NullFields is a list of field names (e.g. "Channel") to include in API
  5110  	// requests with the JSON null value. By default, fields with empty values are
  5111  	// omitted from API requests. See
  5112  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5113  	NullFields []string `json:"-"`
  5114  }
  5115  
  5116  func (s *ReleaseChannel) MarshalJSON() ([]byte, error) {
  5117  	type NoMethod ReleaseChannel
  5118  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5119  }
  5120  
  5121  // ReleaseChannelConfig: ReleaseChannelConfig exposes configuration for a
  5122  // release channel.
  5123  type ReleaseChannelConfig struct {
  5124  	// Channel: The release channel this configuration applies to.
  5125  	//
  5126  	// Possible values:
  5127  	//   "UNSPECIFIED" - No channel specified.
  5128  	//   "RAPID" - RAPID channel is offered on an early access basis for customers
  5129  	// who want to test new releases. WARNING: Versions available in the RAPID
  5130  	// Channel may be subject to unresolved issues with no known workaround and are
  5131  	// not subject to any SLAs.
  5132  	//   "REGULAR" - Clusters subscribed to REGULAR receive versions that are
  5133  	// considered GA quality. REGULAR is intended for production users who want to
  5134  	// take advantage of new features.
  5135  	//   "STABLE" - Clusters subscribed to STABLE receive versions that are known
  5136  	// to be stable and reliable in production.
  5137  	Channel string `json:"channel,omitempty"`
  5138  	// DefaultVersion: The default version for newly created clusters on the
  5139  	// channel.
  5140  	DefaultVersion string `json:"defaultVersion,omitempty"`
  5141  	// ValidVersions: List of valid versions for the channel.
  5142  	ValidVersions []string `json:"validVersions,omitempty"`
  5143  	// ForceSendFields is a list of field names (e.g. "Channel") to unconditionally
  5144  	// include in API requests. By default, fields with empty or default values are
  5145  	// omitted from API requests. See
  5146  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5147  	// details.
  5148  	ForceSendFields []string `json:"-"`
  5149  	// NullFields is a list of field names (e.g. "Channel") to include in API
  5150  	// requests with the JSON null value. By default, fields with empty values are
  5151  	// omitted from API requests. See
  5152  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5153  	NullFields []string `json:"-"`
  5154  }
  5155  
  5156  func (s *ReleaseChannelConfig) MarshalJSON() ([]byte, error) {
  5157  	type NoMethod ReleaseChannelConfig
  5158  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5159  }
  5160  
  5161  // ReservationAffinity: ReservationAffinity
  5162  // (https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
  5163  // is the configuration of desired reservation which instances could take
  5164  // capacity from.
  5165  type ReservationAffinity struct {
  5166  	// ConsumeReservationType: Corresponds to the type of reservation consumption.
  5167  	//
  5168  	// Possible values:
  5169  	//   "UNSPECIFIED" - Default value. This should not be used.
  5170  	//   "NO_RESERVATION" - Do not consume from any reserved capacity.
  5171  	//   "ANY_RESERVATION" - Consume any reservation available.
  5172  	//   "SPECIFIC_RESERVATION" - Must consume from a specific reservation. Must
  5173  	// specify key value fields for specifying the reservations.
  5174  	ConsumeReservationType string `json:"consumeReservationType,omitempty"`
  5175  	// Key: Corresponds to the label key of a reservation resource. To target a
  5176  	// SPECIFIC_RESERVATION by name, specify
  5177  	// "compute.googleapis.com/reservation-name" as the key and specify the name of
  5178  	// your reservation as its value.
  5179  	Key string `json:"key,omitempty"`
  5180  	// Values: Corresponds to the label value(s) of reservation resource(s).
  5181  	Values []string `json:"values,omitempty"`
  5182  	// ForceSendFields is a list of field names (e.g. "ConsumeReservationType") to
  5183  	// unconditionally include in API requests. By default, fields with empty or
  5184  	// default values are omitted from API requests. See
  5185  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5186  	// details.
  5187  	ForceSendFields []string `json:"-"`
  5188  	// NullFields is a list of field names (e.g. "ConsumeReservationType") to
  5189  	// include in API requests with the JSON null value. By default, fields with
  5190  	// empty values are omitted from API requests. See
  5191  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5192  	NullFields []string `json:"-"`
  5193  }
  5194  
  5195  func (s *ReservationAffinity) MarshalJSON() ([]byte, error) {
  5196  	type NoMethod ReservationAffinity
  5197  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5198  }
  5199  
  5200  // ResourceLabels: Collection of GCP labels
  5201  // (https://cloud.google.com/resource-manager/docs/creating-managing-labels).
  5202  type ResourceLabels struct {
  5203  	// Labels: Map of node label keys and node label values.
  5204  	Labels map[string]string `json:"labels,omitempty"`
  5205  	// ForceSendFields is a list of field names (e.g. "Labels") to unconditionally
  5206  	// include in API requests. By default, fields with empty or default values are
  5207  	// omitted from API requests. See
  5208  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5209  	// details.
  5210  	ForceSendFields []string `json:"-"`
  5211  	// NullFields is a list of field names (e.g. "Labels") to include in API
  5212  	// requests with the JSON null value. By default, fields with empty values are
  5213  	// omitted from API requests. See
  5214  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5215  	NullFields []string `json:"-"`
  5216  }
  5217  
  5218  func (s *ResourceLabels) MarshalJSON() ([]byte, error) {
  5219  	type NoMethod ResourceLabels
  5220  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5221  }
  5222  
  5223  // ResourceLimit: Contains information about amount of some resource in the
  5224  // cluster. For memory, value should be in GB.
  5225  type ResourceLimit struct {
  5226  	// Maximum: Maximum amount of the resource in the cluster.
  5227  	Maximum int64 `json:"maximum,omitempty,string"`
  5228  	// Minimum: Minimum amount of the resource in the cluster.
  5229  	Minimum int64 `json:"minimum,omitempty,string"`
  5230  	// ResourceType: Resource name "cpu", "memory" or gpu-specific string.
  5231  	ResourceType string `json:"resourceType,omitempty"`
  5232  	// ForceSendFields is a list of field names (e.g. "Maximum") to unconditionally
  5233  	// include in API requests. By default, fields with empty or default values are
  5234  	// omitted from API requests. See
  5235  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5236  	// details.
  5237  	ForceSendFields []string `json:"-"`
  5238  	// NullFields is a list of field names (e.g. "Maximum") to include in API
  5239  	// requests with the JSON null value. By default, fields with empty values are
  5240  	// omitted from API requests. See
  5241  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5242  	NullFields []string `json:"-"`
  5243  }
  5244  
  5245  func (s *ResourceLimit) MarshalJSON() ([]byte, error) {
  5246  	type NoMethod ResourceLimit
  5247  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5248  }
  5249  
  5250  // ResourceManagerTags: A map of resource manager tag keys and values to be
  5251  // attached to the nodes for managing Compute Engine firewalls using Network
  5252  // Firewall Policies. Tags must be according to specifications in
  5253  // https://cloud.google.com/vpc/docs/tags-firewalls-overview#specifications. A
  5254  // maximum of 5 tag key-value pairs can be specified. Existing tags will be
  5255  // replaced with new values.
  5256  type ResourceManagerTags struct {
  5257  	// Tags: TagKeyValue must be in one of the following formats ([KEY]=[VALUE]) 1.
  5258  	// `tagKeys/{tag_key_id}=tagValues/{tag_value_id}` 2.
  5259  	// `{org_id}/{tag_key_name}={tag_value_name}` 3.
  5260  	// `{project_id}/{tag_key_name}={tag_value_name}`
  5261  	Tags map[string]string `json:"tags,omitempty"`
  5262  	// ForceSendFields is a list of field names (e.g. "Tags") to unconditionally
  5263  	// include in API requests. By default, fields with empty or default values are
  5264  	// omitted from API requests. See
  5265  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5266  	// details.
  5267  	ForceSendFields []string `json:"-"`
  5268  	// NullFields is a list of field names (e.g. "Tags") to include in API requests
  5269  	// with the JSON null value. By default, fields with empty values are omitted
  5270  	// from API requests. See
  5271  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5272  	NullFields []string `json:"-"`
  5273  }
  5274  
  5275  func (s *ResourceManagerTags) MarshalJSON() ([]byte, error) {
  5276  	type NoMethod ResourceManagerTags
  5277  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5278  }
  5279  
  5280  // ResourceUsageExportConfig: Configuration for exporting cluster resource
  5281  // usages.
  5282  type ResourceUsageExportConfig struct {
  5283  	// BigqueryDestination: Configuration to use BigQuery as usage export
  5284  	// destination.
  5285  	BigqueryDestination *BigQueryDestination `json:"bigqueryDestination,omitempty"`
  5286  	// ConsumptionMeteringConfig: Configuration to enable resource consumption
  5287  	// metering.
  5288  	ConsumptionMeteringConfig *ConsumptionMeteringConfig `json:"consumptionMeteringConfig,omitempty"`
  5289  	// EnableNetworkEgressMetering: Whether to enable network egress metering for
  5290  	// this cluster. If enabled, a daemonset will be created in the cluster to
  5291  	// meter network egress traffic.
  5292  	EnableNetworkEgressMetering bool `json:"enableNetworkEgressMetering,omitempty"`
  5293  	// ForceSendFields is a list of field names (e.g. "BigqueryDestination") to
  5294  	// unconditionally include in API requests. By default, fields with empty or
  5295  	// default values are omitted from API requests. See
  5296  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5297  	// details.
  5298  	ForceSendFields []string `json:"-"`
  5299  	// NullFields is a list of field names (e.g. "BigqueryDestination") to include
  5300  	// in API requests with the JSON null value. By default, fields with empty
  5301  	// values are omitted from API requests. See
  5302  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5303  	NullFields []string `json:"-"`
  5304  }
  5305  
  5306  func (s *ResourceUsageExportConfig) MarshalJSON() ([]byte, error) {
  5307  	type NoMethod ResourceUsageExportConfig
  5308  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5309  }
  5310  
  5311  // RollbackNodePoolUpgradeRequest: RollbackNodePoolUpgradeRequest rollbacks the
  5312  // previously Aborted or Failed NodePool upgrade. This will be an no-op if the
  5313  // last upgrade successfully completed.
  5314  type RollbackNodePoolUpgradeRequest struct {
  5315  	// ClusterId: Deprecated. The name of the cluster to rollback. This field has
  5316  	// been deprecated and replaced by the name field.
  5317  	ClusterId string `json:"clusterId,omitempty"`
  5318  	// Name: The name (project, location, cluster, node pool id) of the node poll
  5319  	// to rollback upgrade. Specified in the format
  5320  	// `projects/*/locations/*/clusters/*/nodePools/*`.
  5321  	Name string `json:"name,omitempty"`
  5322  	// NodePoolId: Deprecated. The name of the node pool to rollback. This field
  5323  	// has been deprecated and replaced by the name field.
  5324  	NodePoolId string `json:"nodePoolId,omitempty"`
  5325  	// ProjectId: Deprecated. The Google Developers Console project ID or project
  5326  	// number
  5327  	// (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  5328  	// This field has been deprecated and replaced by the name field.
  5329  	ProjectId string `json:"projectId,omitempty"`
  5330  	// RespectPdb: Option for rollback to ignore the PodDisruptionBudget. Default
  5331  	// value is false.
  5332  	RespectPdb bool `json:"respectPdb,omitempty"`
  5333  	// Zone: Deprecated. The name of the Google Compute Engine zone
  5334  	// (https://cloud.google.com/compute/docs/zones#available) in which the cluster
  5335  	// resides. This field has been deprecated and replaced by the name field.
  5336  	Zone string `json:"zone,omitempty"`
  5337  	// ForceSendFields is a list of field names (e.g. "ClusterId") to
  5338  	// unconditionally include in API requests. By default, fields with empty or
  5339  	// default values are omitted from API requests. See
  5340  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5341  	// details.
  5342  	ForceSendFields []string `json:"-"`
  5343  	// NullFields is a list of field names (e.g. "ClusterId") to include in API
  5344  	// requests with the JSON null value. By default, fields with empty values are
  5345  	// omitted from API requests. See
  5346  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5347  	NullFields []string `json:"-"`
  5348  }
  5349  
  5350  func (s *RollbackNodePoolUpgradeRequest) MarshalJSON() ([]byte, error) {
  5351  	type NoMethod RollbackNodePoolUpgradeRequest
  5352  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5353  }
  5354  
  5355  // SandboxConfig: SandboxConfig contains configurations of the sandbox to use
  5356  // for the node.
  5357  type SandboxConfig struct {
  5358  	// Type: Type of the sandbox to use for the node.
  5359  	//
  5360  	// Possible values:
  5361  	//   "UNSPECIFIED" - Default value. This should not be used.
  5362  	//   "GVISOR" - Run sandbox using gvisor.
  5363  	Type string `json:"type,omitempty"`
  5364  	// ForceSendFields is a list of field names (e.g. "Type") to unconditionally
  5365  	// include in API requests. By default, fields with empty or default values are
  5366  	// omitted from API requests. See
  5367  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5368  	// details.
  5369  	ForceSendFields []string `json:"-"`
  5370  	// NullFields is a list of field names (e.g. "Type") to include in API requests
  5371  	// with the JSON null value. By default, fields with empty values are omitted
  5372  	// from API requests. See
  5373  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5374  	NullFields []string `json:"-"`
  5375  }
  5376  
  5377  func (s *SandboxConfig) MarshalJSON() ([]byte, error) {
  5378  	type NoMethod SandboxConfig
  5379  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5380  }
  5381  
  5382  // SecondaryBootDisk: SecondaryBootDisk represents a persistent disk attached
  5383  // to a node with special configurations based on its mode.
  5384  type SecondaryBootDisk struct {
  5385  	// DiskImage: Fully-qualified resource ID for an existing disk image.
  5386  	DiskImage string `json:"diskImage,omitempty"`
  5387  	// Mode: Disk mode (container image cache, etc.)
  5388  	//
  5389  	// Possible values:
  5390  	//   "MODE_UNSPECIFIED" - MODE_UNSPECIFIED is when mode is not set.
  5391  	//   "CONTAINER_IMAGE_CACHE" - CONTAINER_IMAGE_CACHE is for using the secondary
  5392  	// boot disk as a container image cache.
  5393  	Mode string `json:"mode,omitempty"`
  5394  	// ForceSendFields is a list of field names (e.g. "DiskImage") to
  5395  	// unconditionally include in API requests. By default, fields with empty or
  5396  	// default values are omitted from API requests. See
  5397  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5398  	// details.
  5399  	ForceSendFields []string `json:"-"`
  5400  	// NullFields is a list of field names (e.g. "DiskImage") to include in API
  5401  	// requests with the JSON null value. By default, fields with empty values are
  5402  	// omitted from API requests. See
  5403  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5404  	NullFields []string `json:"-"`
  5405  }
  5406  
  5407  func (s *SecondaryBootDisk) MarshalJSON() ([]byte, error) {
  5408  	type NoMethod SecondaryBootDisk
  5409  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5410  }
  5411  
  5412  // SecondaryBootDiskUpdateStrategy: SecondaryBootDiskUpdateStrategy is a
  5413  // placeholder which will be extended in the future to define different options
  5414  // for updating secondary boot disks.
  5415  type SecondaryBootDiskUpdateStrategy struct {
  5416  }
  5417  
  5418  // SecurityBulletinEvent: SecurityBulletinEvent is a notification sent to
  5419  // customers when a security bulletin has been posted that they are vulnerable
  5420  // to.
  5421  type SecurityBulletinEvent struct {
  5422  	// AffectedSupportedMinors: The GKE minor versions affected by this
  5423  	// vulnerability.
  5424  	AffectedSupportedMinors []string `json:"affectedSupportedMinors,omitempty"`
  5425  	// BriefDescription: A brief description of the bulletin. See the bulletin
  5426  	// pointed to by the bulletin_uri field for an expanded description.
  5427  	BriefDescription string `json:"briefDescription,omitempty"`
  5428  	// BulletinId: The ID of the bulletin corresponding to the vulnerability.
  5429  	BulletinId string `json:"bulletinId,omitempty"`
  5430  	// BulletinUri: The URI link to the bulletin on the website for more
  5431  	// information.
  5432  	BulletinUri string `json:"bulletinUri,omitempty"`
  5433  	// CveIds: The CVEs associated with this bulletin.
  5434  	CveIds []string `json:"cveIds,omitempty"`
  5435  	// ManualStepsRequired: If this field is specified, it means there are manual
  5436  	// steps that the user must take to make their clusters safe.
  5437  	ManualStepsRequired bool `json:"manualStepsRequired,omitempty"`
  5438  	// PatchedVersions: The GKE versions where this vulnerability is patched.
  5439  	PatchedVersions []string `json:"patchedVersions,omitempty"`
  5440  	// ResourceTypeAffected: The resource type (node/control plane) that has the
  5441  	// vulnerability. Multiple notifications (1 notification per resource type)
  5442  	// will be sent for a vulnerability that affects > 1 resource type.
  5443  	ResourceTypeAffected string `json:"resourceTypeAffected,omitempty"`
  5444  	// Severity: The severity of this bulletin as it relates to GKE.
  5445  	Severity string `json:"severity,omitempty"`
  5446  	// SuggestedUpgradeTarget: This represents a version selected from the
  5447  	// patched_versions field that the cluster receiving this notification should
  5448  	// most likely want to upgrade to based on its current version. Note that if
  5449  	// this notification is being received by a given cluster, it means that this
  5450  	// version is currently available as an upgrade target in that cluster's
  5451  	// location.
  5452  	SuggestedUpgradeTarget string `json:"suggestedUpgradeTarget,omitempty"`
  5453  	// ForceSendFields is a list of field names (e.g. "AffectedSupportedMinors") to
  5454  	// unconditionally include in API requests. By default, fields with empty or
  5455  	// default values are omitted from API requests. See
  5456  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5457  	// details.
  5458  	ForceSendFields []string `json:"-"`
  5459  	// NullFields is a list of field names (e.g. "AffectedSupportedMinors") to
  5460  	// include in API requests with the JSON null value. By default, fields with
  5461  	// empty values are omitted from API requests. See
  5462  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5463  	NullFields []string `json:"-"`
  5464  }
  5465  
  5466  func (s *SecurityBulletinEvent) MarshalJSON() ([]byte, error) {
  5467  	type NoMethod SecurityBulletinEvent
  5468  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5469  }
  5470  
  5471  // SecurityPostureConfig: SecurityPostureConfig defines the flags needed to
  5472  // enable/disable features for the Security Posture API.
  5473  type SecurityPostureConfig struct {
  5474  	// Mode: Sets which mode to use for Security Posture features.
  5475  	//
  5476  	// Possible values:
  5477  	//   "MODE_UNSPECIFIED" - Default value not specified.
  5478  	//   "DISABLED" - Disables Security Posture features on the cluster.
  5479  	//   "BASIC" - Applies Security Posture features on the cluster.
  5480  	//   "ENTERPRISE" - Applies the Security Posture off cluster Enterprise level
  5481  	// features.
  5482  	Mode string `json:"mode,omitempty"`
  5483  	// VulnerabilityMode: Sets which mode to use for vulnerability scanning.
  5484  	//
  5485  	// Possible values:
  5486  	//   "VULNERABILITY_MODE_UNSPECIFIED" - Default value not specified.
  5487  	//   "VULNERABILITY_DISABLED" - Disables vulnerability scanning on the cluster.
  5488  	//   "VULNERABILITY_BASIC" - Applies basic vulnerability scanning on the
  5489  	// cluster.
  5490  	//   "VULNERABILITY_ENTERPRISE" - Applies the Security Posture's vulnerability
  5491  	// on cluster Enterprise level features.
  5492  	VulnerabilityMode string `json:"vulnerabilityMode,omitempty"`
  5493  	// ForceSendFields is a list of field names (e.g. "Mode") to unconditionally
  5494  	// include in API requests. By default, fields with empty or default values are
  5495  	// omitted from API requests. See
  5496  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5497  	// details.
  5498  	ForceSendFields []string `json:"-"`
  5499  	// NullFields is a list of field names (e.g. "Mode") to include in API requests
  5500  	// with the JSON null value. By default, fields with empty values are omitted
  5501  	// from API requests. See
  5502  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5503  	NullFields []string `json:"-"`
  5504  }
  5505  
  5506  func (s *SecurityPostureConfig) MarshalJSON() ([]byte, error) {
  5507  	type NoMethod SecurityPostureConfig
  5508  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5509  }
  5510  
  5511  // ServerConfig: Kubernetes Engine service configuration.
  5512  type ServerConfig struct {
  5513  	// Channels: List of release channel configurations.
  5514  	Channels []*ReleaseChannelConfig `json:"channels,omitempty"`
  5515  	// DefaultClusterVersion: Version of Kubernetes the service deploys by default.
  5516  	DefaultClusterVersion string `json:"defaultClusterVersion,omitempty"`
  5517  	// DefaultImageType: Default image type.
  5518  	DefaultImageType string `json:"defaultImageType,omitempty"`
  5519  	// ValidImageTypes: List of valid image types.
  5520  	ValidImageTypes []string `json:"validImageTypes,omitempty"`
  5521  	// ValidMasterVersions: List of valid master versions, in descending order.
  5522  	ValidMasterVersions []string `json:"validMasterVersions,omitempty"`
  5523  	// ValidNodeVersions: List of valid node upgrade target versions, in descending
  5524  	// order.
  5525  	ValidNodeVersions []string `json:"validNodeVersions,omitempty"`
  5526  
  5527  	// ServerResponse contains the HTTP response code and headers from the server.
  5528  	googleapi.ServerResponse `json:"-"`
  5529  	// ForceSendFields is a list of field names (e.g. "Channels") to
  5530  	// unconditionally include in API requests. By default, fields with empty or
  5531  	// default values are omitted from API requests. See
  5532  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5533  	// details.
  5534  	ForceSendFields []string `json:"-"`
  5535  	// NullFields is a list of field names (e.g. "Channels") to include in API
  5536  	// requests with the JSON null value. By default, fields with empty values are
  5537  	// omitted from API requests. See
  5538  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5539  	NullFields []string `json:"-"`
  5540  }
  5541  
  5542  func (s *ServerConfig) MarshalJSON() ([]byte, error) {
  5543  	type NoMethod ServerConfig
  5544  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5545  }
  5546  
  5547  // ServiceExternalIPsConfig: Config to block services with externalIPs field.
  5548  type ServiceExternalIPsConfig struct {
  5549  	// Enabled: Whether Services with ExternalIPs field are allowed or not.
  5550  	Enabled bool `json:"enabled,omitempty"`
  5551  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  5552  	// include in API requests. By default, fields with empty or default values are
  5553  	// omitted from API requests. See
  5554  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5555  	// details.
  5556  	ForceSendFields []string `json:"-"`
  5557  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  5558  	// requests with the JSON null value. By default, fields with empty values are
  5559  	// omitted from API requests. See
  5560  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5561  	NullFields []string `json:"-"`
  5562  }
  5563  
  5564  func (s *ServiceExternalIPsConfig) MarshalJSON() ([]byte, error) {
  5565  	type NoMethod ServiceExternalIPsConfig
  5566  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5567  }
  5568  
  5569  // SetAddonsConfigRequest: SetAddonsConfigRequest sets the addons associated
  5570  // with the cluster.
  5571  type SetAddonsConfigRequest struct {
  5572  	// AddonsConfig: Required. The desired configurations for the various addons
  5573  	// available to run in the cluster.
  5574  	AddonsConfig *AddonsConfig `json:"addonsConfig,omitempty"`
  5575  	// ClusterId: Deprecated. The name of the cluster to upgrade. This field has
  5576  	// been deprecated and replaced by the name field.
  5577  	ClusterId string `json:"clusterId,omitempty"`
  5578  	// Name: The name (project, location, cluster) of the cluster to set addons.
  5579  	// Specified in the format `projects/*/locations/*/clusters/*`.
  5580  	Name string `json:"name,omitempty"`
  5581  	// ProjectId: Deprecated. The Google Developers Console project ID or project
  5582  	// number
  5583  	// (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  5584  	// This field has been deprecated and replaced by the name field.
  5585  	ProjectId string `json:"projectId,omitempty"`
  5586  	// Zone: Deprecated. The name of the Google Compute Engine zone
  5587  	// (https://cloud.google.com/compute/docs/zones#available) in which the cluster
  5588  	// resides. This field has been deprecated and replaced by the name field.
  5589  	Zone string `json:"zone,omitempty"`
  5590  	// ForceSendFields is a list of field names (e.g. "AddonsConfig") to
  5591  	// unconditionally include in API requests. By default, fields with empty or
  5592  	// default values are omitted from API requests. See
  5593  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5594  	// details.
  5595  	ForceSendFields []string `json:"-"`
  5596  	// NullFields is a list of field names (e.g. "AddonsConfig") to include in API
  5597  	// requests with the JSON null value. By default, fields with empty values are
  5598  	// omitted from API requests. See
  5599  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5600  	NullFields []string `json:"-"`
  5601  }
  5602  
  5603  func (s *SetAddonsConfigRequest) MarshalJSON() ([]byte, error) {
  5604  	type NoMethod SetAddonsConfigRequest
  5605  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5606  }
  5607  
  5608  // SetLabelsRequest: SetLabelsRequest sets the Google Cloud Platform labels on
  5609  // a Google Container Engine cluster, which will in turn set them for Google
  5610  // Compute Engine resources used by that cluster
  5611  type SetLabelsRequest struct {
  5612  	// ClusterId: Deprecated. The name of the cluster. This field has been
  5613  	// deprecated and replaced by the name field.
  5614  	ClusterId string `json:"clusterId,omitempty"`
  5615  	// LabelFingerprint: Required. The fingerprint of the previous set of labels
  5616  	// for this resource, used to detect conflicts. The fingerprint is initially
  5617  	// generated by Kubernetes Engine and changes after every request to modify or
  5618  	// update labels. You must always provide an up-to-date fingerprint hash when
  5619  	// updating or changing labels. Make a `get()` request to the resource to get
  5620  	// the latest fingerprint.
  5621  	LabelFingerprint string `json:"labelFingerprint,omitempty"`
  5622  	// Name: The name (project, location, cluster name) of the cluster to set
  5623  	// labels. Specified in the format `projects/*/locations/*/clusters/*`.
  5624  	Name string `json:"name,omitempty"`
  5625  	// ProjectId: Deprecated. The Google Developers Console project ID or project
  5626  	// number
  5627  	// (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  5628  	// This field has been deprecated and replaced by the name field.
  5629  	ProjectId string `json:"projectId,omitempty"`
  5630  	// ResourceLabels: Required. The labels to set for that cluster.
  5631  	ResourceLabels map[string]string `json:"resourceLabels,omitempty"`
  5632  	// Zone: Deprecated. The name of the Google Compute Engine zone
  5633  	// (https://cloud.google.com/compute/docs/zones#available) in which the cluster
  5634  	// resides. This field has been deprecated and replaced by the name field.
  5635  	Zone string `json:"zone,omitempty"`
  5636  	// ForceSendFields is a list of field names (e.g. "ClusterId") to
  5637  	// unconditionally include in API requests. By default, fields with empty or
  5638  	// default values are omitted from API requests. See
  5639  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5640  	// details.
  5641  	ForceSendFields []string `json:"-"`
  5642  	// NullFields is a list of field names (e.g. "ClusterId") to include in API
  5643  	// requests with the JSON null value. By default, fields with empty values are
  5644  	// omitted from API requests. See
  5645  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5646  	NullFields []string `json:"-"`
  5647  }
  5648  
  5649  func (s *SetLabelsRequest) MarshalJSON() ([]byte, error) {
  5650  	type NoMethod SetLabelsRequest
  5651  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5652  }
  5653  
  5654  // SetLegacyAbacRequest: SetLegacyAbacRequest enables or disables the ABAC
  5655  // authorization mechanism for a cluster.
  5656  type SetLegacyAbacRequest struct {
  5657  	// ClusterId: Deprecated. The name of the cluster to update. This field has
  5658  	// been deprecated and replaced by the name field.
  5659  	ClusterId string `json:"clusterId,omitempty"`
  5660  	// Enabled: Required. Whether ABAC authorization will be enabled in the
  5661  	// cluster.
  5662  	Enabled bool `json:"enabled,omitempty"`
  5663  	// Name: The name (project, location, cluster name) of the cluster to set
  5664  	// legacy abac. Specified in the format `projects/*/locations/*/clusters/*`.
  5665  	Name string `json:"name,omitempty"`
  5666  	// ProjectId: Deprecated. The Google Developers Console project ID or project
  5667  	// number
  5668  	// (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  5669  	// This field has been deprecated and replaced by the name field.
  5670  	ProjectId string `json:"projectId,omitempty"`
  5671  	// Zone: Deprecated. The name of the Google Compute Engine zone
  5672  	// (https://cloud.google.com/compute/docs/zones#available) in which the cluster
  5673  	// resides. This field has been deprecated and replaced by the name field.
  5674  	Zone string `json:"zone,omitempty"`
  5675  	// ForceSendFields is a list of field names (e.g. "ClusterId") to
  5676  	// unconditionally include in API requests. By default, fields with empty or
  5677  	// default values are omitted from API requests. See
  5678  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5679  	// details.
  5680  	ForceSendFields []string `json:"-"`
  5681  	// NullFields is a list of field names (e.g. "ClusterId") to include in API
  5682  	// requests with the JSON null value. By default, fields with empty values are
  5683  	// omitted from API requests. See
  5684  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5685  	NullFields []string `json:"-"`
  5686  }
  5687  
  5688  func (s *SetLegacyAbacRequest) MarshalJSON() ([]byte, error) {
  5689  	type NoMethod SetLegacyAbacRequest
  5690  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5691  }
  5692  
  5693  // SetLocationsRequest: SetLocationsRequest sets the locations of the cluster.
  5694  type SetLocationsRequest struct {
  5695  	// ClusterId: Deprecated. The name of the cluster to upgrade. This field has
  5696  	// been deprecated and replaced by the name field.
  5697  	ClusterId string `json:"clusterId,omitempty"`
  5698  	// Locations: Required. The desired list of Google Compute Engine zones
  5699  	// (https://cloud.google.com/compute/docs/zones#available) in which the
  5700  	// cluster's nodes should be located. Changing the locations a cluster is in
  5701  	// will result in nodes being either created or removed from the cluster,
  5702  	// depending on whether locations are being added or removed. This list must
  5703  	// always include the cluster's primary zone.
  5704  	Locations []string `json:"locations,omitempty"`
  5705  	// Name: The name (project, location, cluster) of the cluster to set locations.
  5706  	// Specified in the format `projects/*/locations/*/clusters/*`.
  5707  	Name string `json:"name,omitempty"`
  5708  	// ProjectId: Deprecated. The Google Developers Console project ID or project
  5709  	// number
  5710  	// (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  5711  	// This field has been deprecated and replaced by the name field.
  5712  	ProjectId string `json:"projectId,omitempty"`
  5713  	// Zone: Deprecated. The name of the Google Compute Engine zone
  5714  	// (https://cloud.google.com/compute/docs/zones#available) in which the cluster
  5715  	// resides. This field has been deprecated and replaced by the name field.
  5716  	Zone string `json:"zone,omitempty"`
  5717  	// ForceSendFields is a list of field names (e.g. "ClusterId") to
  5718  	// unconditionally include in API requests. By default, fields with empty or
  5719  	// default values are omitted from API requests. See
  5720  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5721  	// details.
  5722  	ForceSendFields []string `json:"-"`
  5723  	// NullFields is a list of field names (e.g. "ClusterId") to include in API
  5724  	// requests with the JSON null value. By default, fields with empty values are
  5725  	// omitted from API requests. See
  5726  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5727  	NullFields []string `json:"-"`
  5728  }
  5729  
  5730  func (s *SetLocationsRequest) MarshalJSON() ([]byte, error) {
  5731  	type NoMethod SetLocationsRequest
  5732  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5733  }
  5734  
  5735  // SetLoggingServiceRequest: SetLoggingServiceRequest sets the logging service
  5736  // of a cluster.
  5737  type SetLoggingServiceRequest struct {
  5738  	// ClusterId: Deprecated. The name of the cluster to upgrade. This field has
  5739  	// been deprecated and replaced by the name field.
  5740  	ClusterId string `json:"clusterId,omitempty"`
  5741  	// LoggingService: Required. The logging service the cluster should use to
  5742  	// write logs. Currently available options: *
  5743  	// `logging.googleapis.com/kubernetes` - The Cloud Logging service with a
  5744  	// Kubernetes-native resource model * `logging.googleapis.com` - The legacy
  5745  	// Cloud Logging service (no longer available as of GKE 1.15). * `none` - no
  5746  	// logs will be exported from the cluster. If left as an empty
  5747  	// string,`logging.googleapis.com/kubernetes` will be used for GKE 1.14+ or
  5748  	// `logging.googleapis.com` for earlier versions.
  5749  	LoggingService string `json:"loggingService,omitempty"`
  5750  	// Name: The name (project, location, cluster) of the cluster to set logging.
  5751  	// Specified in the format `projects/*/locations/*/clusters/*`.
  5752  	Name string `json:"name,omitempty"`
  5753  	// ProjectId: Deprecated. The Google Developers Console project ID or project
  5754  	// number
  5755  	// (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  5756  	// This field has been deprecated and replaced by the name field.
  5757  	ProjectId string `json:"projectId,omitempty"`
  5758  	// Zone: Deprecated. The name of the Google Compute Engine zone
  5759  	// (https://cloud.google.com/compute/docs/zones#available) in which the cluster
  5760  	// resides. This field has been deprecated and replaced by the name field.
  5761  	Zone string `json:"zone,omitempty"`
  5762  	// ForceSendFields is a list of field names (e.g. "ClusterId") to
  5763  	// unconditionally include in API requests. By default, fields with empty or
  5764  	// default values are omitted from API requests. See
  5765  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5766  	// details.
  5767  	ForceSendFields []string `json:"-"`
  5768  	// NullFields is a list of field names (e.g. "ClusterId") to include in API
  5769  	// requests with the JSON null value. By default, fields with empty values are
  5770  	// omitted from API requests. See
  5771  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5772  	NullFields []string `json:"-"`
  5773  }
  5774  
  5775  func (s *SetLoggingServiceRequest) MarshalJSON() ([]byte, error) {
  5776  	type NoMethod SetLoggingServiceRequest
  5777  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5778  }
  5779  
  5780  // SetMaintenancePolicyRequest: SetMaintenancePolicyRequest sets the
  5781  // maintenance policy for a cluster.
  5782  type SetMaintenancePolicyRequest struct {
  5783  	// ClusterId: Required. The name of the cluster to update.
  5784  	ClusterId string `json:"clusterId,omitempty"`
  5785  	// MaintenancePolicy: Required. The maintenance policy to be set for the
  5786  	// cluster. An empty field clears the existing maintenance policy.
  5787  	MaintenancePolicy *MaintenancePolicy `json:"maintenancePolicy,omitempty"`
  5788  	// Name: The name (project, location, cluster name) of the cluster to set
  5789  	// maintenance policy. Specified in the format
  5790  	// `projects/*/locations/*/clusters/*`.
  5791  	Name string `json:"name,omitempty"`
  5792  	// ProjectId: Required. The Google Developers Console project ID or project
  5793  	// number
  5794  	// (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  5795  	ProjectId string `json:"projectId,omitempty"`
  5796  	// Zone: Required. The name of the Google Compute Engine zone
  5797  	// (https://cloud.google.com/compute/docs/zones#available) in which the cluster
  5798  	// resides.
  5799  	Zone string `json:"zone,omitempty"`
  5800  	// ForceSendFields is a list of field names (e.g. "ClusterId") to
  5801  	// unconditionally include in API requests. By default, fields with empty or
  5802  	// default values are omitted from API requests. See
  5803  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5804  	// details.
  5805  	ForceSendFields []string `json:"-"`
  5806  	// NullFields is a list of field names (e.g. "ClusterId") to include in API
  5807  	// requests with the JSON null value. By default, fields with empty values are
  5808  	// omitted from API requests. See
  5809  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5810  	NullFields []string `json:"-"`
  5811  }
  5812  
  5813  func (s *SetMaintenancePolicyRequest) MarshalJSON() ([]byte, error) {
  5814  	type NoMethod SetMaintenancePolicyRequest
  5815  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5816  }
  5817  
  5818  // SetMasterAuthRequest: SetMasterAuthRequest updates the admin password of a
  5819  // cluster.
  5820  type SetMasterAuthRequest struct {
  5821  	// Action: Required. The exact form of action to be taken on the master auth.
  5822  	//
  5823  	// Possible values:
  5824  	//   "UNKNOWN" - Operation is unknown and will error out.
  5825  	//   "SET_PASSWORD" - Set the password to a user generated value.
  5826  	//   "GENERATE_PASSWORD" - Generate a new password and set it to that.
  5827  	//   "SET_USERNAME" - Set the username. If an empty username is provided, basic
  5828  	// authentication is disabled for the cluster. If a non-empty username is
  5829  	// provided, basic authentication is enabled, with either a provided password
  5830  	// or a generated one.
  5831  	Action string `json:"action,omitempty"`
  5832  	// ClusterId: Deprecated. The name of the cluster to upgrade. This field has
  5833  	// been deprecated and replaced by the name field.
  5834  	ClusterId string `json:"clusterId,omitempty"`
  5835  	// Name: The name (project, location, cluster) of the cluster to set auth.
  5836  	// Specified in the format `projects/*/locations/*/clusters/*`.
  5837  	Name string `json:"name,omitempty"`
  5838  	// ProjectId: Deprecated. The Google Developers Console project ID or project
  5839  	// number
  5840  	// (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  5841  	// This field has been deprecated and replaced by the name field.
  5842  	ProjectId string `json:"projectId,omitempty"`
  5843  	// Update: Required. A description of the update.
  5844  	Update *MasterAuth `json:"update,omitempty"`
  5845  	// Zone: Deprecated. The name of the Google Compute Engine zone
  5846  	// (https://cloud.google.com/compute/docs/zones#available) in which the cluster
  5847  	// resides. This field has been deprecated and replaced by the name field.
  5848  	Zone string `json:"zone,omitempty"`
  5849  	// ForceSendFields is a list of field names (e.g. "Action") to unconditionally
  5850  	// include in API requests. By default, fields with empty or default values are
  5851  	// omitted from API requests. See
  5852  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5853  	// details.
  5854  	ForceSendFields []string `json:"-"`
  5855  	// NullFields is a list of field names (e.g. "Action") to include in API
  5856  	// requests with the JSON null value. By default, fields with empty values are
  5857  	// omitted from API requests. See
  5858  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5859  	NullFields []string `json:"-"`
  5860  }
  5861  
  5862  func (s *SetMasterAuthRequest) MarshalJSON() ([]byte, error) {
  5863  	type NoMethod SetMasterAuthRequest
  5864  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5865  }
  5866  
  5867  // SetMonitoringServiceRequest: SetMonitoringServiceRequest sets the monitoring
  5868  // service of a cluster.
  5869  type SetMonitoringServiceRequest struct {
  5870  	// ClusterId: Deprecated. The name of the cluster to upgrade. This field has
  5871  	// been deprecated and replaced by the name field.
  5872  	ClusterId string `json:"clusterId,omitempty"`
  5873  	// MonitoringService: Required. The monitoring service the cluster should use
  5874  	// to write metrics. Currently available options: *
  5875  	// "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring service with a
  5876  	// Kubernetes-native resource model * `monitoring.googleapis.com` - The legacy
  5877  	// Cloud Monitoring service (no longer available as of GKE 1.15). * `none` - No
  5878  	// metrics will be exported from the cluster. If left as an empty
  5879  	// string,`monitoring.googleapis.com/kubernetes` will be used for GKE 1.14+ or
  5880  	// `monitoring.googleapis.com` for earlier versions.
  5881  	MonitoringService string `json:"monitoringService,omitempty"`
  5882  	// Name: The name (project, location, cluster) of the cluster to set
  5883  	// monitoring. Specified in the format `projects/*/locations/*/clusters/*`.
  5884  	Name string `json:"name,omitempty"`
  5885  	// ProjectId: Deprecated. The Google Developers Console project ID or project
  5886  	// number
  5887  	// (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  5888  	// This field has been deprecated and replaced by the name field.
  5889  	ProjectId string `json:"projectId,omitempty"`
  5890  	// Zone: Deprecated. The name of the Google Compute Engine zone
  5891  	// (https://cloud.google.com/compute/docs/zones#available) in which the cluster
  5892  	// resides. This field has been deprecated and replaced by the name field.
  5893  	Zone string `json:"zone,omitempty"`
  5894  	// ForceSendFields is a list of field names (e.g. "ClusterId") to
  5895  	// unconditionally include in API requests. By default, fields with empty or
  5896  	// default values are omitted from API requests. See
  5897  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5898  	// details.
  5899  	ForceSendFields []string `json:"-"`
  5900  	// NullFields is a list of field names (e.g. "ClusterId") to include in API
  5901  	// requests with the JSON null value. By default, fields with empty values are
  5902  	// omitted from API requests. See
  5903  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5904  	NullFields []string `json:"-"`
  5905  }
  5906  
  5907  func (s *SetMonitoringServiceRequest) MarshalJSON() ([]byte, error) {
  5908  	type NoMethod SetMonitoringServiceRequest
  5909  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5910  }
  5911  
  5912  // SetNetworkPolicyRequest: SetNetworkPolicyRequest enables/disables network
  5913  // policy for a cluster.
  5914  type SetNetworkPolicyRequest struct {
  5915  	// ClusterId: Deprecated. The name of the cluster. This field has been
  5916  	// deprecated and replaced by the name field.
  5917  	ClusterId string `json:"clusterId,omitempty"`
  5918  	// Name: The name (project, location, cluster name) of the cluster to set
  5919  	// networking policy. Specified in the format
  5920  	// `projects/*/locations/*/clusters/*`.
  5921  	Name string `json:"name,omitempty"`
  5922  	// NetworkPolicy: Required. Configuration options for the NetworkPolicy
  5923  	// feature.
  5924  	NetworkPolicy *NetworkPolicy `json:"networkPolicy,omitempty"`
  5925  	// ProjectId: Deprecated. The Google Developers Console project ID or project
  5926  	// number
  5927  	// (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  5928  	// This field has been deprecated and replaced by the name field.
  5929  	ProjectId string `json:"projectId,omitempty"`
  5930  	// Zone: Deprecated. The name of the Google Compute Engine zone
  5931  	// (https://cloud.google.com/compute/docs/zones#available) in which the cluster
  5932  	// resides. This field has been deprecated and replaced by the name field.
  5933  	Zone string `json:"zone,omitempty"`
  5934  	// ForceSendFields is a list of field names (e.g. "ClusterId") to
  5935  	// unconditionally include in API requests. By default, fields with empty or
  5936  	// default values are omitted from API requests. See
  5937  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5938  	// details.
  5939  	ForceSendFields []string `json:"-"`
  5940  	// NullFields is a list of field names (e.g. "ClusterId") to include in API
  5941  	// requests with the JSON null value. By default, fields with empty values are
  5942  	// omitted from API requests. See
  5943  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5944  	NullFields []string `json:"-"`
  5945  }
  5946  
  5947  func (s *SetNetworkPolicyRequest) MarshalJSON() ([]byte, error) {
  5948  	type NoMethod SetNetworkPolicyRequest
  5949  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5950  }
  5951  
  5952  // SetNodePoolAutoscalingRequest: SetNodePoolAutoscalingRequest sets the
  5953  // autoscaler settings of a node pool.
  5954  type SetNodePoolAutoscalingRequest struct {
  5955  	// Autoscaling: Required. Autoscaling configuration for the node pool.
  5956  	Autoscaling *NodePoolAutoscaling `json:"autoscaling,omitempty"`
  5957  	// ClusterId: Deprecated. The name of the cluster to upgrade. This field has
  5958  	// been deprecated and replaced by the name field.
  5959  	ClusterId string `json:"clusterId,omitempty"`
  5960  	// Name: The name (project, location, cluster, node pool) of the node pool to
  5961  	// set autoscaler settings. Specified in the format
  5962  	// `projects/*/locations/*/clusters/*/nodePools/*`.
  5963  	Name string `json:"name,omitempty"`
  5964  	// NodePoolId: Deprecated. The name of the node pool to upgrade. This field has
  5965  	// been deprecated and replaced by the name field.
  5966  	NodePoolId string `json:"nodePoolId,omitempty"`
  5967  	// ProjectId: Deprecated. The Google Developers Console project ID or project
  5968  	// number
  5969  	// (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  5970  	// This field has been deprecated and replaced by the name field.
  5971  	ProjectId string `json:"projectId,omitempty"`
  5972  	// Zone: Deprecated. The name of the Google Compute Engine zone
  5973  	// (https://cloud.google.com/compute/docs/zones#available) in which the cluster
  5974  	// resides. This field has been deprecated and replaced by the name field.
  5975  	Zone string `json:"zone,omitempty"`
  5976  	// ForceSendFields is a list of field names (e.g. "Autoscaling") to
  5977  	// unconditionally include in API requests. By default, fields with empty or
  5978  	// default values are omitted from API requests. See
  5979  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  5980  	// details.
  5981  	ForceSendFields []string `json:"-"`
  5982  	// NullFields is a list of field names (e.g. "Autoscaling") to include in API
  5983  	// requests with the JSON null value. By default, fields with empty values are
  5984  	// omitted from API requests. See
  5985  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  5986  	NullFields []string `json:"-"`
  5987  }
  5988  
  5989  func (s *SetNodePoolAutoscalingRequest) MarshalJSON() ([]byte, error) {
  5990  	type NoMethod SetNodePoolAutoscalingRequest
  5991  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  5992  }
  5993  
  5994  // SetNodePoolManagementRequest: SetNodePoolManagementRequest sets the node
  5995  // management properties of a node pool.
  5996  type SetNodePoolManagementRequest struct {
  5997  	// ClusterId: Deprecated. The name of the cluster to update. This field has
  5998  	// been deprecated and replaced by the name field.
  5999  	ClusterId string `json:"clusterId,omitempty"`
  6000  	// Management: Required. NodeManagement configuration for the node pool.
  6001  	Management *NodeManagement `json:"management,omitempty"`
  6002  	// Name: The name (project, location, cluster, node pool id) of the node pool
  6003  	// to set management properties. Specified in the format
  6004  	// `projects/*/locations/*/clusters/*/nodePools/*`.
  6005  	Name string `json:"name,omitempty"`
  6006  	// NodePoolId: Deprecated. The name of the node pool to update. This field has
  6007  	// been deprecated and replaced by the name field.
  6008  	NodePoolId string `json:"nodePoolId,omitempty"`
  6009  	// ProjectId: Deprecated. The Google Developers Console project ID or project
  6010  	// number
  6011  	// (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  6012  	// This field has been deprecated and replaced by the name field.
  6013  	ProjectId string `json:"projectId,omitempty"`
  6014  	// Zone: Deprecated. The name of the Google Compute Engine zone
  6015  	// (https://cloud.google.com/compute/docs/zones#available) in which the cluster
  6016  	// resides. This field has been deprecated and replaced by the name field.
  6017  	Zone string `json:"zone,omitempty"`
  6018  	// ForceSendFields is a list of field names (e.g. "ClusterId") to
  6019  	// unconditionally include in API requests. By default, fields with empty or
  6020  	// default values are omitted from API requests. See
  6021  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6022  	// details.
  6023  	ForceSendFields []string `json:"-"`
  6024  	// NullFields is a list of field names (e.g. "ClusterId") to include in API
  6025  	// requests with the JSON null value. By default, fields with empty values are
  6026  	// omitted from API requests. See
  6027  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6028  	NullFields []string `json:"-"`
  6029  }
  6030  
  6031  func (s *SetNodePoolManagementRequest) MarshalJSON() ([]byte, error) {
  6032  	type NoMethod SetNodePoolManagementRequest
  6033  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6034  }
  6035  
  6036  // SetNodePoolSizeRequest: SetNodePoolSizeRequest sets the size of a node pool.
  6037  type SetNodePoolSizeRequest struct {
  6038  	// ClusterId: Deprecated. The name of the cluster to update. This field has
  6039  	// been deprecated and replaced by the name field.
  6040  	ClusterId string `json:"clusterId,omitempty"`
  6041  	// Name: The name (project, location, cluster, node pool id) of the node pool
  6042  	// to set size. Specified in the format
  6043  	// `projects/*/locations/*/clusters/*/nodePools/*`.
  6044  	Name string `json:"name,omitempty"`
  6045  	// NodeCount: Required. The desired node count for the pool.
  6046  	NodeCount int64 `json:"nodeCount,omitempty"`
  6047  	// NodePoolId: Deprecated. The name of the node pool to update. This field has
  6048  	// been deprecated and replaced by the name field.
  6049  	NodePoolId string `json:"nodePoolId,omitempty"`
  6050  	// ProjectId: Deprecated. The Google Developers Console project ID or project
  6051  	// number
  6052  	// (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  6053  	// This field has been deprecated and replaced by the name field.
  6054  	ProjectId string `json:"projectId,omitempty"`
  6055  	// Zone: Deprecated. The name of the Google Compute Engine zone
  6056  	// (https://cloud.google.com/compute/docs/zones#available) in which the cluster
  6057  	// resides. This field has been deprecated and replaced by the name field.
  6058  	Zone string `json:"zone,omitempty"`
  6059  	// ForceSendFields is a list of field names (e.g. "ClusterId") to
  6060  	// unconditionally include in API requests. By default, fields with empty or
  6061  	// default values are omitted from API requests. See
  6062  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6063  	// details.
  6064  	ForceSendFields []string `json:"-"`
  6065  	// NullFields is a list of field names (e.g. "ClusterId") to include in API
  6066  	// requests with the JSON null value. By default, fields with empty values are
  6067  	// omitted from API requests. See
  6068  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6069  	NullFields []string `json:"-"`
  6070  }
  6071  
  6072  func (s *SetNodePoolSizeRequest) MarshalJSON() ([]byte, error) {
  6073  	type NoMethod SetNodePoolSizeRequest
  6074  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6075  }
  6076  
  6077  // ShieldedInstanceConfig: A set of Shielded Instance options.
  6078  type ShieldedInstanceConfig struct {
  6079  	// EnableIntegrityMonitoring: Defines whether the instance has integrity
  6080  	// monitoring enabled. Enables monitoring and attestation of the boot integrity
  6081  	// of the instance. The attestation is performed against the integrity policy
  6082  	// baseline. This baseline is initially derived from the implicitly trusted
  6083  	// boot image when the instance is created.
  6084  	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
  6085  	// EnableSecureBoot: Defines whether the instance has Secure Boot enabled.
  6086  	// Secure Boot helps ensure that the system only runs authentic software by
  6087  	// verifying the digital signature of all boot components, and halting the boot
  6088  	// process if signature verification fails.
  6089  	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
  6090  	// ForceSendFields is a list of field names (e.g. "EnableIntegrityMonitoring")
  6091  	// to unconditionally include in API requests. By default, fields with empty or
  6092  	// default values are omitted from API requests. See
  6093  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6094  	// details.
  6095  	ForceSendFields []string `json:"-"`
  6096  	// NullFields is a list of field names (e.g. "EnableIntegrityMonitoring") to
  6097  	// include in API requests with the JSON null value. By default, fields with
  6098  	// empty values are omitted from API requests. See
  6099  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6100  	NullFields []string `json:"-"`
  6101  }
  6102  
  6103  func (s *ShieldedInstanceConfig) MarshalJSON() ([]byte, error) {
  6104  	type NoMethod ShieldedInstanceConfig
  6105  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6106  }
  6107  
  6108  // ShieldedNodes: Configuration of Shielded Nodes feature.
  6109  type ShieldedNodes struct {
  6110  	// Enabled: Whether Shielded Nodes features are enabled on all nodes in this
  6111  	// cluster.
  6112  	Enabled bool `json:"enabled,omitempty"`
  6113  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  6114  	// include in API requests. By default, fields with empty or default values are
  6115  	// omitted from API requests. See
  6116  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6117  	// details.
  6118  	ForceSendFields []string `json:"-"`
  6119  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  6120  	// requests with the JSON null value. By default, fields with empty values are
  6121  	// omitted from API requests. See
  6122  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6123  	NullFields []string `json:"-"`
  6124  }
  6125  
  6126  func (s *ShieldedNodes) MarshalJSON() ([]byte, error) {
  6127  	type NoMethod ShieldedNodes
  6128  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6129  }
  6130  
  6131  // SoleTenantConfig: SoleTenantConfig contains the NodeAffinities to specify
  6132  // what shared sole tenant node groups should back the node pool.
  6133  type SoleTenantConfig struct {
  6134  	// NodeAffinities: NodeAffinities used to match to a shared sole tenant node
  6135  	// group.
  6136  	NodeAffinities []*NodeAffinity `json:"nodeAffinities,omitempty"`
  6137  	// ForceSendFields is a list of field names (e.g. "NodeAffinities") to
  6138  	// unconditionally include in API requests. By default, fields with empty or
  6139  	// default values are omitted from API requests. See
  6140  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6141  	// details.
  6142  	ForceSendFields []string `json:"-"`
  6143  	// NullFields is a list of field names (e.g. "NodeAffinities") to include in
  6144  	// API requests with the JSON null value. By default, fields with empty values
  6145  	// are omitted from API requests. See
  6146  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6147  	NullFields []string `json:"-"`
  6148  }
  6149  
  6150  func (s *SoleTenantConfig) MarshalJSON() ([]byte, error) {
  6151  	type NoMethod SoleTenantConfig
  6152  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6153  }
  6154  
  6155  // StandardRolloutPolicy: Standard rollout policy is the default policy for
  6156  // blue-green.
  6157  type StandardRolloutPolicy struct {
  6158  	// BatchNodeCount: Number of blue nodes to drain in a batch.
  6159  	BatchNodeCount int64 `json:"batchNodeCount,omitempty"`
  6160  	// BatchPercentage: Percentage of the blue pool nodes to drain in a batch. The
  6161  	// range of this field should be (0.0, 1.0].
  6162  	BatchPercentage float64 `json:"batchPercentage,omitempty"`
  6163  	// BatchSoakDuration: Soak time after each batch gets drained. Default to zero.
  6164  	BatchSoakDuration string `json:"batchSoakDuration,omitempty"`
  6165  	// ForceSendFields is a list of field names (e.g. "BatchNodeCount") to
  6166  	// unconditionally include in API requests. By default, fields with empty or
  6167  	// default values are omitted from API requests. See
  6168  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6169  	// details.
  6170  	ForceSendFields []string `json:"-"`
  6171  	// NullFields is a list of field names (e.g. "BatchNodeCount") to include in
  6172  	// API requests with the JSON null value. By default, fields with empty values
  6173  	// are omitted from API requests. See
  6174  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6175  	NullFields []string `json:"-"`
  6176  }
  6177  
  6178  func (s *StandardRolloutPolicy) MarshalJSON() ([]byte, error) {
  6179  	type NoMethod StandardRolloutPolicy
  6180  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6181  }
  6182  
  6183  func (s *StandardRolloutPolicy) UnmarshalJSON(data []byte) error {
  6184  	type NoMethod StandardRolloutPolicy
  6185  	var s1 struct {
  6186  		BatchPercentage gensupport.JSONFloat64 `json:"batchPercentage"`
  6187  		*NoMethod
  6188  	}
  6189  	s1.NoMethod = (*NoMethod)(s)
  6190  	if err := json.Unmarshal(data, &s1); err != nil {
  6191  		return err
  6192  	}
  6193  	s.BatchPercentage = float64(s1.BatchPercentage)
  6194  	return nil
  6195  }
  6196  
  6197  // StartIPRotationRequest: StartIPRotationRequest creates a new IP for the
  6198  // cluster and then performs a node upgrade on each node pool to point to the
  6199  // new IP.
  6200  type StartIPRotationRequest struct {
  6201  	// ClusterId: Deprecated. The name of the cluster. This field has been
  6202  	// deprecated and replaced by the name field.
  6203  	ClusterId string `json:"clusterId,omitempty"`
  6204  	// Name: The name (project, location, cluster name) of the cluster to start IP
  6205  	// rotation. Specified in the format `projects/*/locations/*/clusters/*`.
  6206  	Name string `json:"name,omitempty"`
  6207  	// ProjectId: Deprecated. The Google Developers Console project ID or project
  6208  	// number
  6209  	// (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  6210  	// This field has been deprecated and replaced by the name field.
  6211  	ProjectId string `json:"projectId,omitempty"`
  6212  	// RotateCredentials: Whether to rotate credentials during IP rotation.
  6213  	RotateCredentials bool `json:"rotateCredentials,omitempty"`
  6214  	// Zone: Deprecated. The name of the Google Compute Engine zone
  6215  	// (https://cloud.google.com/compute/docs/zones#available) in which the cluster
  6216  	// resides. This field has been deprecated and replaced by the name field.
  6217  	Zone string `json:"zone,omitempty"`
  6218  	// ForceSendFields is a list of field names (e.g. "ClusterId") to
  6219  	// unconditionally include in API requests. By default, fields with empty or
  6220  	// default values are omitted from API requests. See
  6221  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6222  	// details.
  6223  	ForceSendFields []string `json:"-"`
  6224  	// NullFields is a list of field names (e.g. "ClusterId") to include in API
  6225  	// requests with the JSON null value. By default, fields with empty values are
  6226  	// omitted from API requests. See
  6227  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6228  	NullFields []string `json:"-"`
  6229  }
  6230  
  6231  func (s *StartIPRotationRequest) MarshalJSON() ([]byte, error) {
  6232  	type NoMethod StartIPRotationRequest
  6233  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6234  }
  6235  
  6236  // StatefulHAConfig: Configuration for the Stateful HA add-on.
  6237  type StatefulHAConfig struct {
  6238  	// Enabled: Whether the Stateful HA add-on is enabled for this cluster.
  6239  	Enabled bool `json:"enabled,omitempty"`
  6240  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  6241  	// include in API requests. By default, fields with empty or default values are
  6242  	// omitted from API requests. See
  6243  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6244  	// details.
  6245  	ForceSendFields []string `json:"-"`
  6246  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  6247  	// requests with the JSON null value. By default, fields with empty values are
  6248  	// omitted from API requests. See
  6249  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6250  	NullFields []string `json:"-"`
  6251  }
  6252  
  6253  func (s *StatefulHAConfig) MarshalJSON() ([]byte, error) {
  6254  	type NoMethod StatefulHAConfig
  6255  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6256  }
  6257  
  6258  // Status: The `Status` type defines a logical error model that is suitable for
  6259  // different programming environments, including REST APIs and RPC APIs. It is
  6260  // used by gRPC (https://github.com/grpc). Each `Status` message contains three
  6261  // pieces of data: error code, error message, and error details. You can find
  6262  // out more about this error model and how to work with it in the API Design
  6263  // Guide (https://cloud.google.com/apis/design/errors).
  6264  type Status struct {
  6265  	// Code: The status code, which should be an enum value of google.rpc.Code.
  6266  	Code int64 `json:"code,omitempty"`
  6267  	// Details: A list of messages that carry the error details. There is a common
  6268  	// set of message types for APIs to use.
  6269  	Details []googleapi.RawMessage `json:"details,omitempty"`
  6270  	// Message: A developer-facing error message, which should be in English. Any
  6271  	// user-facing error message should be localized and sent in the
  6272  	// google.rpc.Status.details field, or localized by the client.
  6273  	Message string `json:"message,omitempty"`
  6274  	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
  6275  	// include in API requests. By default, fields with empty or default values are
  6276  	// omitted from API requests. See
  6277  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6278  	// details.
  6279  	ForceSendFields []string `json:"-"`
  6280  	// NullFields is a list of field names (e.g. "Code") to include in API requests
  6281  	// with the JSON null value. By default, fields with empty values are omitted
  6282  	// from API requests. See
  6283  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6284  	NullFields []string `json:"-"`
  6285  }
  6286  
  6287  func (s *Status) MarshalJSON() ([]byte, error) {
  6288  	type NoMethod Status
  6289  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6290  }
  6291  
  6292  // StatusCondition: StatusCondition describes why a cluster or a node pool has
  6293  // a certain status (e.g., ERROR or DEGRADED).
  6294  type StatusCondition struct {
  6295  	// CanonicalCode: Canonical code of the condition.
  6296  	//
  6297  	// Possible values:
  6298  	//   "OK" - Not an error; returned on success. HTTP Mapping: 200 OK
  6299  	//   "CANCELLED" - The operation was cancelled, typically by the caller. HTTP
  6300  	// Mapping: 499 Client Closed Request
  6301  	//   "UNKNOWN" - Unknown error. For example, this error may be returned when a
  6302  	// `Status` value received from another address space belongs to an error space
  6303  	// that is not known in this address space. Also errors raised by APIs that do
  6304  	// not return enough error information may be converted to this error. HTTP
  6305  	// Mapping: 500 Internal Server Error
  6306  	//   "INVALID_ARGUMENT" - The client specified an invalid argument. Note that
  6307  	// this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates
  6308  	// arguments that are problematic regardless of the state of the system (e.g.,
  6309  	// a malformed file name). HTTP Mapping: 400 Bad Request
  6310  	//   "DEADLINE_EXCEEDED" - The deadline expired before the operation could
  6311  	// complete. For operations that change the state of the system, this error may
  6312  	// be returned even if the operation has completed successfully. For example, a
  6313  	// successful response from a server could have been delayed long enough for
  6314  	// the deadline to expire. HTTP Mapping: 504 Gateway Timeout
  6315  	//   "NOT_FOUND" - Some requested entity (e.g., file or directory) was not
  6316  	// found. Note to server developers: if a request is denied for an entire class
  6317  	// of users, such as gradual feature rollout or undocumented allowlist,
  6318  	// `NOT_FOUND` may be used. If a request is denied for some users within a
  6319  	// class of users, such as user-based access control, `PERMISSION_DENIED` must
  6320  	// be used. HTTP Mapping: 404 Not Found
  6321  	//   "ALREADY_EXISTS" - The entity that a client attempted to create (e.g.,
  6322  	// file or directory) already exists. HTTP Mapping: 409 Conflict
  6323  	//   "PERMISSION_DENIED" - The caller does not have permission to execute the
  6324  	// specified operation. `PERMISSION_DENIED` must not be used for rejections
  6325  	// caused by exhausting some resource (use `RESOURCE_EXHAUSTED` instead for
  6326  	// those errors). `PERMISSION_DENIED` must not be used if the caller can not be
  6327  	// identified (use `UNAUTHENTICATED` instead for those errors). This error code
  6328  	// does not imply the request is valid or the requested entity exists or
  6329  	// satisfies other pre-conditions. HTTP Mapping: 403 Forbidden
  6330  	//   "UNAUTHENTICATED" - The request does not have valid authentication
  6331  	// credentials for the operation. HTTP Mapping: 401 Unauthorized
  6332  	//   "RESOURCE_EXHAUSTED" - Some resource has been exhausted, perhaps a
  6333  	// per-user quota, or perhaps the entire file system is out of space. HTTP
  6334  	// Mapping: 429 Too Many Requests
  6335  	//   "FAILED_PRECONDITION" - The operation was rejected because the system is
  6336  	// not in a state required for the operation's execution. For example, the
  6337  	// directory to be deleted is non-empty, an rmdir operation is applied to a
  6338  	// non-directory, etc. Service implementors can use the following guidelines to
  6339  	// decide between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`: (a) Use
  6340  	// `UNAVAILABLE` if the client can retry just the failing call. (b) Use
  6341  	// `ABORTED` if the client should retry at a higher level. For example, when a
  6342  	// client-specified test-and-set fails, indicating the client should restart a
  6343  	// read-modify-write sequence. (c) Use `FAILED_PRECONDITION` if the client
  6344  	// should not retry until the system state has been explicitly fixed. For
  6345  	// example, if an "rmdir" fails because the directory is non-empty,
  6346  	// `FAILED_PRECONDITION` should be returned since the client should not retry
  6347  	// unless the files are deleted from the directory. HTTP Mapping: 400 Bad
  6348  	// Request
  6349  	//   "ABORTED" - The operation was aborted, typically due to a concurrency
  6350  	// issue such as a sequencer check failure or transaction abort. See the
  6351  	// guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and
  6352  	// `UNAVAILABLE`. HTTP Mapping: 409 Conflict
  6353  	//   "OUT_OF_RANGE" - The operation was attempted past the valid range. E.g.,
  6354  	// seeking or reading past end-of-file. Unlike `INVALID_ARGUMENT`, this error
  6355  	// indicates a problem that may be fixed if the system state changes. For
  6356  	// example, a 32-bit file system will generate `INVALID_ARGUMENT` if asked to
  6357  	// read at an offset that is not in the range [0,2^32-1], but it will generate
  6358  	// `OUT_OF_RANGE` if asked to read from an offset past the current file size.
  6359  	// There is a fair bit of overlap between `FAILED_PRECONDITION` and
  6360  	// `OUT_OF_RANGE`. We recommend using `OUT_OF_RANGE` (the more specific error)
  6361  	// when it applies so that callers who are iterating through a space can easily
  6362  	// look for an `OUT_OF_RANGE` error to detect when they are done. HTTP Mapping:
  6363  	// 400 Bad Request
  6364  	//   "UNIMPLEMENTED" - The operation is not implemented or is not
  6365  	// supported/enabled in this service. HTTP Mapping: 501 Not Implemented
  6366  	//   "INTERNAL" - Internal errors. This means that some invariants expected by
  6367  	// the underlying system have been broken. This error code is reserved for
  6368  	// serious errors. HTTP Mapping: 500 Internal Server Error
  6369  	//   "UNAVAILABLE" - The service is currently unavailable. This is most likely
  6370  	// a transient condition, which can be corrected by retrying with a backoff.
  6371  	// Note that it is not always safe to retry non-idempotent operations. See the
  6372  	// guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and
  6373  	// `UNAVAILABLE`. HTTP Mapping: 503 Service Unavailable
  6374  	//   "DATA_LOSS" - Unrecoverable data loss or corruption. HTTP Mapping: 500
  6375  	// Internal Server Error
  6376  	CanonicalCode string `json:"canonicalCode,omitempty"`
  6377  	// Code: Machine-friendly representation of the condition Deprecated. Use
  6378  	// canonical_code instead.
  6379  	//
  6380  	// Possible values:
  6381  	//   "UNKNOWN" - UNKNOWN indicates a generic condition.
  6382  	//   "GCE_STOCKOUT" - GCE_STOCKOUT indicates that Google Compute Engine
  6383  	// resources are temporarily unavailable.
  6384  	//   "GKE_SERVICE_ACCOUNT_DELETED" - GKE_SERVICE_ACCOUNT_DELETED indicates that
  6385  	// the user deleted their robot service account.
  6386  	//   "GCE_QUOTA_EXCEEDED" - Google Compute Engine quota was exceeded.
  6387  	//   "SET_BY_OPERATOR" - Cluster state was manually changed by an SRE due to a
  6388  	// system logic error.
  6389  	//   "CLOUD_KMS_KEY_ERROR" - Unable to perform an encrypt operation against the
  6390  	// CloudKMS key used for etcd level encryption.
  6391  	//   "CA_EXPIRING" - Cluster CA is expiring soon.
  6392  	Code string `json:"code,omitempty"`
  6393  	// Message: Human-friendly representation of the condition
  6394  	Message string `json:"message,omitempty"`
  6395  	// ForceSendFields is a list of field names (e.g. "CanonicalCode") to
  6396  	// unconditionally include in API requests. By default, fields with empty or
  6397  	// default values are omitted from API requests. See
  6398  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6399  	// details.
  6400  	ForceSendFields []string `json:"-"`
  6401  	// NullFields is a list of field names (e.g. "CanonicalCode") to include in API
  6402  	// requests with the JSON null value. By default, fields with empty values are
  6403  	// omitted from API requests. See
  6404  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6405  	NullFields []string `json:"-"`
  6406  }
  6407  
  6408  func (s *StatusCondition) MarshalJSON() ([]byte, error) {
  6409  	type NoMethod StatusCondition
  6410  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6411  }
  6412  
  6413  // TimeWindow: Represents an arbitrary window of time.
  6414  type TimeWindow struct {
  6415  	// EndTime: The time that the window ends. The end time should take place after
  6416  	// the start time.
  6417  	EndTime string `json:"endTime,omitempty"`
  6418  	// MaintenanceExclusionOptions: MaintenanceExclusionOptions provides
  6419  	// maintenance exclusion related options.
  6420  	MaintenanceExclusionOptions *MaintenanceExclusionOptions `json:"maintenanceExclusionOptions,omitempty"`
  6421  	// StartTime: The time that the window first starts.
  6422  	StartTime string `json:"startTime,omitempty"`
  6423  	// ForceSendFields is a list of field names (e.g. "EndTime") to unconditionally
  6424  	// include in API requests. By default, fields with empty or default values are
  6425  	// omitted from API requests. See
  6426  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6427  	// details.
  6428  	ForceSendFields []string `json:"-"`
  6429  	// NullFields is a list of field names (e.g. "EndTime") to include in API
  6430  	// requests with the JSON null value. By default, fields with empty values are
  6431  	// omitted from API requests. See
  6432  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6433  	NullFields []string `json:"-"`
  6434  }
  6435  
  6436  func (s *TimeWindow) MarshalJSON() ([]byte, error) {
  6437  	type NoMethod TimeWindow
  6438  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6439  }
  6440  
  6441  // UpdateClusterRequest: UpdateClusterRequest updates the settings of a
  6442  // cluster.
  6443  type UpdateClusterRequest struct {
  6444  	// ClusterId: Deprecated. The name of the cluster to upgrade. This field has
  6445  	// been deprecated and replaced by the name field.
  6446  	ClusterId string `json:"clusterId,omitempty"`
  6447  	// Name: The name (project, location, cluster) of the cluster to update.
  6448  	// Specified in the format `projects/*/locations/*/clusters/*`.
  6449  	Name string `json:"name,omitempty"`
  6450  	// ProjectId: Deprecated. The Google Developers Console project ID or project
  6451  	// number
  6452  	// (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  6453  	// This field has been deprecated and replaced by the name field.
  6454  	ProjectId string `json:"projectId,omitempty"`
  6455  	// Update: Required. A description of the update.
  6456  	Update *ClusterUpdate `json:"update,omitempty"`
  6457  	// Zone: Deprecated. The name of the Google Compute Engine zone
  6458  	// (https://cloud.google.com/compute/docs/zones#available) in which the cluster
  6459  	// resides. This field has been deprecated and replaced by the name field.
  6460  	Zone string `json:"zone,omitempty"`
  6461  	// ForceSendFields is a list of field names (e.g. "ClusterId") to
  6462  	// unconditionally include in API requests. By default, fields with empty or
  6463  	// default values are omitted from API requests. See
  6464  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6465  	// details.
  6466  	ForceSendFields []string `json:"-"`
  6467  	// NullFields is a list of field names (e.g. "ClusterId") to include in API
  6468  	// requests with the JSON null value. By default, fields with empty values are
  6469  	// omitted from API requests. See
  6470  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6471  	NullFields []string `json:"-"`
  6472  }
  6473  
  6474  func (s *UpdateClusterRequest) MarshalJSON() ([]byte, error) {
  6475  	type NoMethod UpdateClusterRequest
  6476  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6477  }
  6478  
  6479  // UpdateInfo: UpdateInfo contains resource (instance groups, etc), status and
  6480  // other intermediate information relevant to a node pool upgrade.
  6481  type UpdateInfo struct {
  6482  	// BlueGreenInfo: Information of a blue-green upgrade.
  6483  	BlueGreenInfo *BlueGreenInfo `json:"blueGreenInfo,omitempty"`
  6484  	// ForceSendFields is a list of field names (e.g. "BlueGreenInfo") to
  6485  	// unconditionally include in API requests. By default, fields with empty or
  6486  	// default values are omitted from API requests. See
  6487  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6488  	// details.
  6489  	ForceSendFields []string `json:"-"`
  6490  	// NullFields is a list of field names (e.g. "BlueGreenInfo") to include in API
  6491  	// requests with the JSON null value. By default, fields with empty values are
  6492  	// omitted from API requests. See
  6493  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6494  	NullFields []string `json:"-"`
  6495  }
  6496  
  6497  func (s *UpdateInfo) MarshalJSON() ([]byte, error) {
  6498  	type NoMethod UpdateInfo
  6499  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6500  }
  6501  
  6502  // UpdateMasterRequest: UpdateMasterRequest updates the master of the cluster.
  6503  type UpdateMasterRequest struct {
  6504  	// ClusterId: Deprecated. The name of the cluster to upgrade. This field has
  6505  	// been deprecated and replaced by the name field.
  6506  	ClusterId string `json:"clusterId,omitempty"`
  6507  	// MasterVersion: Required. The Kubernetes version to change the master to.
  6508  	// Users may specify either explicit versions offered by Kubernetes Engine or
  6509  	// version aliases, which have the following behavior: - "latest": picks the
  6510  	// highest valid Kubernetes version - "1.X": picks the highest valid
  6511  	// patch+gke.N patch in the 1.X version - "1.X.Y": picks the highest valid
  6512  	// gke.N patch in the 1.X.Y version - "1.X.Y-gke.N": picks an explicit
  6513  	// Kubernetes version - "-": picks the default Kubernetes version
  6514  	MasterVersion string `json:"masterVersion,omitempty"`
  6515  	// Name: The name (project, location, cluster) of the cluster to update.
  6516  	// Specified in the format `projects/*/locations/*/clusters/*`.
  6517  	Name string `json:"name,omitempty"`
  6518  	// ProjectId: Deprecated. The Google Developers Console project ID or project
  6519  	// number
  6520  	// (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  6521  	// This field has been deprecated and replaced by the name field.
  6522  	ProjectId string `json:"projectId,omitempty"`
  6523  	// Zone: Deprecated. The name of the Google Compute Engine zone
  6524  	// (https://cloud.google.com/compute/docs/zones#available) in which the cluster
  6525  	// resides. This field has been deprecated and replaced by the name field.
  6526  	Zone string `json:"zone,omitempty"`
  6527  	// ForceSendFields is a list of field names (e.g. "ClusterId") to
  6528  	// unconditionally include in API requests. By default, fields with empty or
  6529  	// default values are omitted from API requests. See
  6530  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6531  	// details.
  6532  	ForceSendFields []string `json:"-"`
  6533  	// NullFields is a list of field names (e.g. "ClusterId") to include in API
  6534  	// requests with the JSON null value. By default, fields with empty values are
  6535  	// omitted from API requests. See
  6536  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6537  	NullFields []string `json:"-"`
  6538  }
  6539  
  6540  func (s *UpdateMasterRequest) MarshalJSON() ([]byte, error) {
  6541  	type NoMethod UpdateMasterRequest
  6542  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6543  }
  6544  
  6545  // UpdateNodePoolRequest: UpdateNodePoolRequests update a node pool's image
  6546  // and/or version.
  6547  type UpdateNodePoolRequest struct {
  6548  	// Accelerators: A list of hardware accelerators to be attached to each node.
  6549  	// See https://cloud.google.com/compute/docs/gpus for more information about
  6550  	// support for GPUs.
  6551  	Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"`
  6552  	// ClusterId: Deprecated. The name of the cluster to upgrade. This field has
  6553  	// been deprecated and replaced by the name field.
  6554  	ClusterId string `json:"clusterId,omitempty"`
  6555  	// ConfidentialNodes: Confidential nodes config. All the nodes in the node pool
  6556  	// will be Confidential VM once enabled.
  6557  	ConfidentialNodes *ConfidentialNodes `json:"confidentialNodes,omitempty"`
  6558  	// ContainerdConfig: The desired containerd config for nodes in the node pool.
  6559  	// Initiates an upgrade operation that recreates the nodes with the new config.
  6560  	ContainerdConfig *ContainerdConfig `json:"containerdConfig,omitempty"`
  6561  	// DiskSizeGb: Optional. The desired disk size for nodes in the node pool
  6562  	// specified in GB. The smallest allowed disk size is 10GB. Initiates an
  6563  	// upgrade operation that migrates the nodes in the node pool to the specified
  6564  	// disk size.
  6565  	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
  6566  	// DiskType: Optional. The desired disk type (e.g. 'pd-standard', 'pd-ssd' or
  6567  	// 'pd-balanced') for nodes in the node pool. Initiates an upgrade operation
  6568  	// that migrates the nodes in the node pool to the specified disk type.
  6569  	DiskType string `json:"diskType,omitempty"`
  6570  	// Etag: The current etag of the node pool. If an etag is provided and does not
  6571  	// match the current etag of the node pool, update will be blocked and an
  6572  	// ABORTED error will be returned.
  6573  	Etag string `json:"etag,omitempty"`
  6574  	// FastSocket: Enable or disable NCCL fast socket for the node pool.
  6575  	FastSocket *FastSocket `json:"fastSocket,omitempty"`
  6576  	// GcfsConfig: GCFS config.
  6577  	GcfsConfig *GcfsConfig `json:"gcfsConfig,omitempty"`
  6578  	// Gvnic: Enable or disable gvnic on the node pool.
  6579  	Gvnic *VirtualNIC `json:"gvnic,omitempty"`
  6580  	// ImageType: Required. The desired image type for the node pool. Please see
  6581  	// https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for
  6582  	// available image types.
  6583  	ImageType string `json:"imageType,omitempty"`
  6584  	// KubeletConfig: Node kubelet configs.
  6585  	KubeletConfig *NodeKubeletConfig `json:"kubeletConfig,omitempty"`
  6586  	// Labels: The desired node labels to be applied to all nodes in the node pool.
  6587  	// If this field is not present, the labels will not be changed. Otherwise, the
  6588  	// existing node labels will be *replaced* with the provided labels.
  6589  	Labels *NodeLabels `json:"labels,omitempty"`
  6590  	// LinuxNodeConfig: Parameters that can be configured on Linux nodes.
  6591  	LinuxNodeConfig *LinuxNodeConfig `json:"linuxNodeConfig,omitempty"`
  6592  	// Locations: The desired list of Google Compute Engine zones
  6593  	// (https://cloud.google.com/compute/docs/zones#available) in which the node
  6594  	// pool's nodes should be located. Changing the locations for a node pool will
  6595  	// result in nodes being either created or removed from the node pool,
  6596  	// depending on whether locations are being added or removed.
  6597  	Locations []string `json:"locations,omitempty"`
  6598  	// LoggingConfig: Logging configuration.
  6599  	LoggingConfig *NodePoolLoggingConfig `json:"loggingConfig,omitempty"`
  6600  	// MachineType: Optional. The desired Google Compute Engine machine type
  6601  	// (https://cloud.google.com/compute/docs/machine-types) for nodes in the node
  6602  	// pool. Initiates an upgrade operation that migrates the nodes in the node
  6603  	// pool to the specified machine type.
  6604  	MachineType string `json:"machineType,omitempty"`
  6605  	// Name: The name (project, location, cluster, node pool) of the node pool to
  6606  	// update. Specified in the format
  6607  	// `projects/*/locations/*/clusters/*/nodePools/*`.
  6608  	Name string `json:"name,omitempty"`
  6609  	// NodeNetworkConfig: Node network config.
  6610  	NodeNetworkConfig *NodeNetworkConfig `json:"nodeNetworkConfig,omitempty"`
  6611  	// NodePoolId: Deprecated. The name of the node pool to upgrade. This field has
  6612  	// been deprecated and replaced by the name field.
  6613  	NodePoolId string `json:"nodePoolId,omitempty"`
  6614  	// NodeVersion: Required. The Kubernetes version to change the nodes to
  6615  	// (typically an upgrade). Users may specify either explicit versions offered
  6616  	// by Kubernetes Engine or version aliases, which have the following behavior:
  6617  	// - "latest": picks the highest valid Kubernetes version - "1.X": picks the
  6618  	// highest valid patch+gke.N patch in the 1.X version - "1.X.Y": picks the
  6619  	// highest valid gke.N patch in the 1.X.Y version - "1.X.Y-gke.N": picks an
  6620  	// explicit Kubernetes version - "-": picks the Kubernetes master version
  6621  	NodeVersion string `json:"nodeVersion,omitempty"`
  6622  	// ProjectId: Deprecated. The Google Developers Console project ID or project
  6623  	// number
  6624  	// (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  6625  	// This field has been deprecated and replaced by the name field.
  6626  	ProjectId string `json:"projectId,omitempty"`
  6627  	// QueuedProvisioning: Specifies the configuration of queued provisioning.
  6628  	QueuedProvisioning *QueuedProvisioning `json:"queuedProvisioning,omitempty"`
  6629  	// ResourceLabels: The resource labels for the node pool to use to annotate any
  6630  	// related Google Compute Engine resources.
  6631  	ResourceLabels *ResourceLabels `json:"resourceLabels,omitempty"`
  6632  	// ResourceManagerTags: Desired resource manager tag keys and values to be
  6633  	// attached to the nodes for managing Compute Engine firewalls using Network
  6634  	// Firewall Policies. Existing tags will be replaced with new values.
  6635  	ResourceManagerTags *ResourceManagerTags `json:"resourceManagerTags,omitempty"`
  6636  	// Tags: The desired network tags to be applied to all nodes in the node pool.
  6637  	// If this field is not present, the tags will not be changed. Otherwise, the
  6638  	// existing network tags will be *replaced* with the provided tags.
  6639  	Tags *NetworkTags `json:"tags,omitempty"`
  6640  	// Taints: The desired node taints to be applied to all nodes in the node pool.
  6641  	// If this field is not present, the taints will not be changed. Otherwise, the
  6642  	// existing node taints will be *replaced* with the provided taints.
  6643  	Taints *NodeTaints `json:"taints,omitempty"`
  6644  	// UpgradeSettings: Upgrade settings control disruption and speed of the
  6645  	// upgrade.
  6646  	UpgradeSettings *UpgradeSettings `json:"upgradeSettings,omitempty"`
  6647  	// WindowsNodeConfig: Parameters that can be configured on Windows nodes.
  6648  	WindowsNodeConfig *WindowsNodeConfig `json:"windowsNodeConfig,omitempty"`
  6649  	// WorkloadMetadataConfig: The desired workload metadata config for the node
  6650  	// pool.
  6651  	WorkloadMetadataConfig *WorkloadMetadataConfig `json:"workloadMetadataConfig,omitempty"`
  6652  	// Zone: Deprecated. The name of the Google Compute Engine zone
  6653  	// (https://cloud.google.com/compute/docs/zones#available) in which the cluster
  6654  	// resides. This field has been deprecated and replaced by the name field.
  6655  	Zone string `json:"zone,omitempty"`
  6656  	// ForceSendFields is a list of field names (e.g. "Accelerators") to
  6657  	// unconditionally include in API requests. By default, fields with empty or
  6658  	// default values are omitted from API requests. See
  6659  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6660  	// details.
  6661  	ForceSendFields []string `json:"-"`
  6662  	// NullFields is a list of field names (e.g. "Accelerators") to include in API
  6663  	// requests with the JSON null value. By default, fields with empty values are
  6664  	// omitted from API requests. See
  6665  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6666  	NullFields []string `json:"-"`
  6667  }
  6668  
  6669  func (s *UpdateNodePoolRequest) MarshalJSON() ([]byte, error) {
  6670  	type NoMethod UpdateNodePoolRequest
  6671  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6672  }
  6673  
  6674  // UpgradeAvailableEvent: UpgradeAvailableEvent is a notification sent to
  6675  // customers when a new available version is released.
  6676  type UpgradeAvailableEvent struct {
  6677  	// ReleaseChannel: The release channel of the version. If empty, it means a
  6678  	// non-channel release.
  6679  	ReleaseChannel *ReleaseChannel `json:"releaseChannel,omitempty"`
  6680  	// Resource: Optional relative path to the resource. For example, the relative
  6681  	// path of the node pool.
  6682  	Resource string `json:"resource,omitempty"`
  6683  	// ResourceType: The resource type of the release version.
  6684  	//
  6685  	// Possible values:
  6686  	//   "UPGRADE_RESOURCE_TYPE_UNSPECIFIED" - Default value. This shouldn't be
  6687  	// used.
  6688  	//   "MASTER" - Master / control plane
  6689  	//   "NODE_POOL" - Node pool
  6690  	ResourceType string `json:"resourceType,omitempty"`
  6691  	// Version: The release version available for upgrade.
  6692  	Version string `json:"version,omitempty"`
  6693  	// ForceSendFields is a list of field names (e.g. "ReleaseChannel") to
  6694  	// unconditionally include in API requests. By default, fields with empty or
  6695  	// default values are omitted from API requests. See
  6696  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6697  	// details.
  6698  	ForceSendFields []string `json:"-"`
  6699  	// NullFields is a list of field names (e.g. "ReleaseChannel") to include in
  6700  	// API requests with the JSON null value. By default, fields with empty values
  6701  	// are omitted from API requests. See
  6702  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6703  	NullFields []string `json:"-"`
  6704  }
  6705  
  6706  func (s *UpgradeAvailableEvent) MarshalJSON() ([]byte, error) {
  6707  	type NoMethod UpgradeAvailableEvent
  6708  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6709  }
  6710  
  6711  // UpgradeEvent: UpgradeEvent is a notification sent to customers by the
  6712  // cluster server when a resource is upgrading.
  6713  type UpgradeEvent struct {
  6714  	// CurrentVersion: The current version before the upgrade.
  6715  	CurrentVersion string `json:"currentVersion,omitempty"`
  6716  	// Operation: The operation associated with this upgrade.
  6717  	Operation string `json:"operation,omitempty"`
  6718  	// OperationStartTime: The time when the operation was started.
  6719  	OperationStartTime string `json:"operationStartTime,omitempty"`
  6720  	// Resource: Optional relative path to the resource. For example in node pool
  6721  	// upgrades, the relative path of the node pool.
  6722  	Resource string `json:"resource,omitempty"`
  6723  	// ResourceType: The resource type that is upgrading.
  6724  	//
  6725  	// Possible values:
  6726  	//   "UPGRADE_RESOURCE_TYPE_UNSPECIFIED" - Default value. This shouldn't be
  6727  	// used.
  6728  	//   "MASTER" - Master / control plane
  6729  	//   "NODE_POOL" - Node pool
  6730  	ResourceType string `json:"resourceType,omitempty"`
  6731  	// TargetVersion: The target version for the upgrade.
  6732  	TargetVersion string `json:"targetVersion,omitempty"`
  6733  	// ForceSendFields is a list of field names (e.g. "CurrentVersion") to
  6734  	// unconditionally include in API requests. By default, fields with empty or
  6735  	// default values are omitted from API requests. See
  6736  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6737  	// details.
  6738  	ForceSendFields []string `json:"-"`
  6739  	// NullFields is a list of field names (e.g. "CurrentVersion") to include in
  6740  	// API requests with the JSON null value. By default, fields with empty values
  6741  	// are omitted from API requests. See
  6742  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6743  	NullFields []string `json:"-"`
  6744  }
  6745  
  6746  func (s *UpgradeEvent) MarshalJSON() ([]byte, error) {
  6747  	type NoMethod UpgradeEvent
  6748  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6749  }
  6750  
  6751  // UpgradeSettings: These upgrade settings control the level of parallelism and
  6752  // the level of disruption caused by an upgrade. maxUnavailable controls the
  6753  // number of nodes that can be simultaneously unavailable. maxSurge controls
  6754  // the number of additional nodes that can be added to the node pool
  6755  // temporarily for the time of the upgrade to increase the number of available
  6756  // nodes. (maxUnavailable + maxSurge) determines the level of parallelism (how
  6757  // many nodes are being upgraded at the same time). Note: upgrades inevitably
  6758  // introduce some disruption since workloads need to be moved from old nodes to
  6759  // new, upgraded ones. Even if maxUnavailable=0, this holds true. (Disruption
  6760  // stays within the limits of PodDisruptionBudget, if it is configured.)
  6761  // Consider a hypothetical node pool with 5 nodes having maxSurge=2,
  6762  // maxUnavailable=1. This means the upgrade process upgrades 3 nodes
  6763  // simultaneously. It creates 2 additional (upgraded) nodes, then it brings
  6764  // down 3 old (not yet upgraded) nodes at the same time. This ensures that
  6765  // there are always at least 4 nodes available. These upgrade settings
  6766  // configure the upgrade strategy for the node pool. Use strategy to switch
  6767  // between the strategies applied to the node pool. If the strategy is ROLLING,
  6768  // use max_surge and max_unavailable to control the level of parallelism and
  6769  // the level of disruption caused by upgrade. 1. maxSurge controls the number
  6770  // of additional nodes that can be added to the node pool temporarily for the
  6771  // time of the upgrade to increase the number of available nodes. 2.
  6772  // maxUnavailable controls the number of nodes that can be simultaneously
  6773  // unavailable. 3. (maxUnavailable + maxSurge) determines the level of
  6774  // parallelism (how many nodes are being upgraded at the same time). If the
  6775  // strategy is BLUE_GREEN, use blue_green_settings to configure the blue-green
  6776  // upgrade related settings. 1. standard_rollout_policy is the default policy.
  6777  // The policy is used to control the way blue pool gets drained. The draining
  6778  // is executed in the batch mode. The batch size could be specified as either
  6779  // percentage of the node pool size or the number of nodes. batch_soak_duration
  6780  // is the soak time after each batch gets drained. 2. node_pool_soak_duration
  6781  // is the soak time after all blue nodes are drained. After this period, the
  6782  // blue pool nodes will be deleted.
  6783  type UpgradeSettings struct {
  6784  	// BlueGreenSettings: Settings for blue-green upgrade strategy.
  6785  	BlueGreenSettings *BlueGreenSettings `json:"blueGreenSettings,omitempty"`
  6786  	// MaxSurge: The maximum number of nodes that can be created beyond the current
  6787  	// size of the node pool during the upgrade process.
  6788  	MaxSurge int64 `json:"maxSurge,omitempty"`
  6789  	// MaxUnavailable: The maximum number of nodes that can be simultaneously
  6790  	// unavailable during the upgrade process. A node is considered available if
  6791  	// its status is Ready.
  6792  	MaxUnavailable int64 `json:"maxUnavailable,omitempty"`
  6793  	// Strategy: Update strategy of the node pool.
  6794  	//
  6795  	// Possible values:
  6796  	//   "NODE_POOL_UPDATE_STRATEGY_UNSPECIFIED" - Default value if unset. GKE
  6797  	// internally defaults the update strategy to SURGE for unspecified strategies.
  6798  	//   "BLUE_GREEN" - blue-green upgrade.
  6799  	//   "SURGE" - SURGE is the traditional way of upgrade a node pool. max_surge
  6800  	// and max_unavailable determines the level of upgrade parallelism.
  6801  	Strategy string `json:"strategy,omitempty"`
  6802  	// ForceSendFields is a list of field names (e.g. "BlueGreenSettings") to
  6803  	// unconditionally include in API requests. By default, fields with empty or
  6804  	// default values are omitted from API requests. See
  6805  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6806  	// details.
  6807  	ForceSendFields []string `json:"-"`
  6808  	// NullFields is a list of field names (e.g. "BlueGreenSettings") to include in
  6809  	// API requests with the JSON null value. By default, fields with empty values
  6810  	// are omitted from API requests. See
  6811  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6812  	NullFields []string `json:"-"`
  6813  }
  6814  
  6815  func (s *UpgradeSettings) MarshalJSON() ([]byte, error) {
  6816  	type NoMethod UpgradeSettings
  6817  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6818  }
  6819  
  6820  // UsableSubnetwork: UsableSubnetwork resource returns the subnetwork name, its
  6821  // associated network and the primary CIDR range.
  6822  type UsableSubnetwork struct {
  6823  	// IpCidrRange: The range of internal addresses that are owned by this
  6824  	// subnetwork.
  6825  	IpCidrRange string `json:"ipCidrRange,omitempty"`
  6826  	// Network: Network Name. Example:
  6827  	// projects/my-project/global/networks/my-network
  6828  	Network string `json:"network,omitempty"`
  6829  	// SecondaryIpRanges: Secondary IP ranges.
  6830  	SecondaryIpRanges []*UsableSubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
  6831  	// StatusMessage: A human readable status message representing the reasons for
  6832  	// cases where the caller cannot use the secondary ranges under the subnet. For
  6833  	// example if the secondary_ip_ranges is empty due to a permission issue, an
  6834  	// insufficient permission message will be given by status_message.
  6835  	StatusMessage string `json:"statusMessage,omitempty"`
  6836  	// Subnetwork: Subnetwork Name. Example:
  6837  	// projects/my-project/regions/us-central1/subnetworks/my-subnet
  6838  	Subnetwork string `json:"subnetwork,omitempty"`
  6839  	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
  6840  	// unconditionally include in API requests. By default, fields with empty or
  6841  	// default values are omitted from API requests. See
  6842  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6843  	// details.
  6844  	ForceSendFields []string `json:"-"`
  6845  	// NullFields is a list of field names (e.g. "IpCidrRange") to include in API
  6846  	// requests with the JSON null value. By default, fields with empty values are
  6847  	// omitted from API requests. See
  6848  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6849  	NullFields []string `json:"-"`
  6850  }
  6851  
  6852  func (s *UsableSubnetwork) MarshalJSON() ([]byte, error) {
  6853  	type NoMethod UsableSubnetwork
  6854  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6855  }
  6856  
  6857  // UsableSubnetworkSecondaryRange: Secondary IP range of a usable subnetwork.
  6858  type UsableSubnetworkSecondaryRange struct {
  6859  	// IpCidrRange: The range of IP addresses belonging to this subnetwork
  6860  	// secondary range.
  6861  	IpCidrRange string `json:"ipCidrRange,omitempty"`
  6862  	// RangeName: The name associated with this subnetwork secondary range, used
  6863  	// when adding an alias IP range to a VM instance.
  6864  	RangeName string `json:"rangeName,omitempty"`
  6865  	// Status: This field is to determine the status of the secondary range
  6866  	// programmably.
  6867  	//
  6868  	// Possible values:
  6869  	//   "UNKNOWN" - UNKNOWN is the zero value of the Status enum. It's not a valid
  6870  	// status.
  6871  	//   "UNUSED" - UNUSED denotes that this range is unclaimed by any cluster.
  6872  	//   "IN_USE_SERVICE" - IN_USE_SERVICE denotes that this range is claimed by
  6873  	// cluster(s) for services. User-managed services range can be shared between
  6874  	// clusters within the same subnetwork.
  6875  	//   "IN_USE_SHAREABLE_POD" - IN_USE_SHAREABLE_POD denotes this range was
  6876  	// created by the network admin and is currently claimed by a cluster for pods.
  6877  	// It can only be used by other clusters as a pod range.
  6878  	//   "IN_USE_MANAGED_POD" - IN_USE_MANAGED_POD denotes this range was created
  6879  	// by GKE and is claimed for pods. It cannot be used for other clusters.
  6880  	Status string `json:"status,omitempty"`
  6881  	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
  6882  	// unconditionally include in API requests. By default, fields with empty or
  6883  	// default values are omitted from API requests. See
  6884  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6885  	// details.
  6886  	ForceSendFields []string `json:"-"`
  6887  	// NullFields is a list of field names (e.g. "IpCidrRange") to include in API
  6888  	// requests with the JSON null value. By default, fields with empty values are
  6889  	// omitted from API requests. See
  6890  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6891  	NullFields []string `json:"-"`
  6892  }
  6893  
  6894  func (s *UsableSubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
  6895  	type NoMethod UsableSubnetworkSecondaryRange
  6896  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6897  }
  6898  
  6899  // VerticalPodAutoscaling: VerticalPodAutoscaling contains global, per-cluster
  6900  // information required by Vertical Pod Autoscaler to automatically adjust the
  6901  // resources of pods controlled by it.
  6902  type VerticalPodAutoscaling struct {
  6903  	// Enabled: Enables vertical pod autoscaling.
  6904  	Enabled bool `json:"enabled,omitempty"`
  6905  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  6906  	// include in API requests. By default, fields with empty or default values are
  6907  	// omitted from API requests. See
  6908  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6909  	// details.
  6910  	ForceSendFields []string `json:"-"`
  6911  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  6912  	// requests with the JSON null value. By default, fields with empty values are
  6913  	// omitted from API requests. See
  6914  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6915  	NullFields []string `json:"-"`
  6916  }
  6917  
  6918  func (s *VerticalPodAutoscaling) MarshalJSON() ([]byte, error) {
  6919  	type NoMethod VerticalPodAutoscaling
  6920  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6921  }
  6922  
  6923  // VirtualNIC: Configuration of gVNIC feature.
  6924  type VirtualNIC struct {
  6925  	// Enabled: Whether gVNIC features are enabled in the node pool.
  6926  	Enabled bool `json:"enabled,omitempty"`
  6927  	// ForceSendFields is a list of field names (e.g. "Enabled") to unconditionally
  6928  	// include in API requests. By default, fields with empty or default values are
  6929  	// omitted from API requests. See
  6930  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6931  	// details.
  6932  	ForceSendFields []string `json:"-"`
  6933  	// NullFields is a list of field names (e.g. "Enabled") to include in API
  6934  	// requests with the JSON null value. By default, fields with empty values are
  6935  	// omitted from API requests. See
  6936  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6937  	NullFields []string `json:"-"`
  6938  }
  6939  
  6940  func (s *VirtualNIC) MarshalJSON() ([]byte, error) {
  6941  	type NoMethod VirtualNIC
  6942  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6943  }
  6944  
  6945  // WindowsNodeConfig: Parameters that can be configured on Windows nodes.
  6946  // Windows Node Config that define the parameters that will be used to
  6947  // configure the Windows node pool settings
  6948  type WindowsNodeConfig struct {
  6949  	// OsVersion: OSVersion specifies the Windows node config to be used on the
  6950  	// node
  6951  	//
  6952  	// Possible values:
  6953  	//   "OS_VERSION_UNSPECIFIED" - When OSVersion is not specified
  6954  	//   "OS_VERSION_LTSC2019" - LTSC2019 specifies to use LTSC2019 as the Windows
  6955  	// Servercore Base Image
  6956  	//   "OS_VERSION_LTSC2022" - LTSC2022 specifies to use LTSC2022 as the Windows
  6957  	// Servercore Base Image
  6958  	OsVersion string `json:"osVersion,omitempty"`
  6959  	// ForceSendFields is a list of field names (e.g. "OsVersion") to
  6960  	// unconditionally include in API requests. By default, fields with empty or
  6961  	// default values are omitted from API requests. See
  6962  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6963  	// details.
  6964  	ForceSendFields []string `json:"-"`
  6965  	// NullFields is a list of field names (e.g. "OsVersion") to include in API
  6966  	// requests with the JSON null value. By default, fields with empty values are
  6967  	// omitted from API requests. See
  6968  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6969  	NullFields []string `json:"-"`
  6970  }
  6971  
  6972  func (s *WindowsNodeConfig) MarshalJSON() ([]byte, error) {
  6973  	type NoMethod WindowsNodeConfig
  6974  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6975  }
  6976  
  6977  // WorkloadIdentityConfig: Configuration for the use of Kubernetes Service
  6978  // Accounts in GCP IAM policies.
  6979  type WorkloadIdentityConfig struct {
  6980  	// WorkloadPool: The workload pool to attach all Kubernetes service accounts
  6981  	// to.
  6982  	WorkloadPool string `json:"workloadPool,omitempty"`
  6983  	// ForceSendFields is a list of field names (e.g. "WorkloadPool") to
  6984  	// unconditionally include in API requests. By default, fields with empty or
  6985  	// default values are omitted from API requests. See
  6986  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  6987  	// details.
  6988  	ForceSendFields []string `json:"-"`
  6989  	// NullFields is a list of field names (e.g. "WorkloadPool") to include in API
  6990  	// requests with the JSON null value. By default, fields with empty values are
  6991  	// omitted from API requests. See
  6992  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  6993  	NullFields []string `json:"-"`
  6994  }
  6995  
  6996  func (s *WorkloadIdentityConfig) MarshalJSON() ([]byte, error) {
  6997  	type NoMethod WorkloadIdentityConfig
  6998  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  6999  }
  7000  
  7001  // WorkloadMetadataConfig: WorkloadMetadataConfig defines the metadata
  7002  // configuration to expose to workloads on the node pool.
  7003  type WorkloadMetadataConfig struct {
  7004  	// Mode: Mode is the configuration for how to expose metadata to workloads
  7005  	// running on the node pool.
  7006  	//
  7007  	// Possible values:
  7008  	//   "MODE_UNSPECIFIED" - Not set.
  7009  	//   "GCE_METADATA" - Expose all Compute Engine metadata to pods.
  7010  	//   "GKE_METADATA" - Run the GKE Metadata Server on this node. The GKE
  7011  	// Metadata Server exposes a metadata API to workloads that is compatible with
  7012  	// the V1 Compute Metadata APIs exposed by the Compute Engine and App Engine
  7013  	// Metadata Servers. This feature can only be enabled if Workload Identity is
  7014  	// enabled at the cluster level.
  7015  	Mode string `json:"mode,omitempty"`
  7016  	// ForceSendFields is a list of field names (e.g. "Mode") to unconditionally
  7017  	// include in API requests. By default, fields with empty or default values are
  7018  	// omitted from API requests. See
  7019  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  7020  	// details.
  7021  	ForceSendFields []string `json:"-"`
  7022  	// NullFields is a list of field names (e.g. "Mode") to include in API requests
  7023  	// with the JSON null value. By default, fields with empty values are omitted
  7024  	// from API requests. See
  7025  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  7026  	NullFields []string `json:"-"`
  7027  }
  7028  
  7029  func (s *WorkloadMetadataConfig) MarshalJSON() ([]byte, error) {
  7030  	type NoMethod WorkloadMetadataConfig
  7031  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  7032  }
  7033  
  7034  // WorkloadPolicyConfig: WorkloadPolicyConfig is the configuration of workload
  7035  // policy for autopilot clusters.
  7036  type WorkloadPolicyConfig struct {
  7037  	// AllowNetAdmin: If true, workloads can use NET_ADMIN capability.
  7038  	AllowNetAdmin bool `json:"allowNetAdmin,omitempty"`
  7039  	// ForceSendFields is a list of field names (e.g. "AllowNetAdmin") to
  7040  	// unconditionally include in API requests. By default, fields with empty or
  7041  	// default values are omitted from API requests. See
  7042  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  7043  	// details.
  7044  	ForceSendFields []string `json:"-"`
  7045  	// NullFields is a list of field names (e.g. "AllowNetAdmin") to include in API
  7046  	// requests with the JSON null value. By default, fields with empty values are
  7047  	// omitted from API requests. See
  7048  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  7049  	NullFields []string `json:"-"`
  7050  }
  7051  
  7052  func (s *WorkloadPolicyConfig) MarshalJSON() ([]byte, error) {
  7053  	type NoMethod WorkloadPolicyConfig
  7054  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  7055  }
  7056  
  7057  type ProjectsAggregatedUsableSubnetworksListCall struct {
  7058  	s            *Service
  7059  	parent       string
  7060  	urlParams_   gensupport.URLParams
  7061  	ifNoneMatch_ string
  7062  	ctx_         context.Context
  7063  	header_      http.Header
  7064  }
  7065  
  7066  // List: Lists subnetworks that are usable for creating clusters in a project.
  7067  //
  7068  //   - parent: The parent project where subnetworks are usable. Specified in the
  7069  //     format `projects/*`.
  7070  func (r *ProjectsAggregatedUsableSubnetworksService) List(parent string) *ProjectsAggregatedUsableSubnetworksListCall {
  7071  	c := &ProjectsAggregatedUsableSubnetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  7072  	c.parent = parent
  7073  	return c
  7074  }
  7075  
  7076  // Filter sets the optional parameter "filter": Filtering currently only
  7077  // supports equality on the networkProjectId and must be in the form:
  7078  // "networkProjectId=[PROJECTID]", where `networkProjectId` is the project
  7079  // which owns the listed subnetworks. This defaults to the parent project ID.
  7080  func (c *ProjectsAggregatedUsableSubnetworksListCall) Filter(filter string) *ProjectsAggregatedUsableSubnetworksListCall {
  7081  	c.urlParams_.Set("filter", filter)
  7082  	return c
  7083  }
  7084  
  7085  // PageSize sets the optional parameter "pageSize": The max number of results
  7086  // per page that should be returned. If the number of available results is
  7087  // larger than `page_size`, a `next_page_token` is returned which can be used
  7088  // to get the next page of results in subsequent requests. Acceptable values
  7089  // are 0 to 500, inclusive. (Default: 500)
  7090  func (c *ProjectsAggregatedUsableSubnetworksListCall) PageSize(pageSize int64) *ProjectsAggregatedUsableSubnetworksListCall {
  7091  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  7092  	return c
  7093  }
  7094  
  7095  // PageToken sets the optional parameter "pageToken": Specifies a page token to
  7096  // use. Set this to the nextPageToken returned by previous list requests to get
  7097  // the next page of results.
  7098  func (c *ProjectsAggregatedUsableSubnetworksListCall) PageToken(pageToken string) *ProjectsAggregatedUsableSubnetworksListCall {
  7099  	c.urlParams_.Set("pageToken", pageToken)
  7100  	return c
  7101  }
  7102  
  7103  // Fields allows partial responses to be retrieved. See
  7104  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  7105  // details.
  7106  func (c *ProjectsAggregatedUsableSubnetworksListCall) Fields(s ...googleapi.Field) *ProjectsAggregatedUsableSubnetworksListCall {
  7107  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  7108  	return c
  7109  }
  7110  
  7111  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  7112  // object's ETag matches the given value. This is useful for getting updates
  7113  // only after the object has changed since the last request.
  7114  func (c *ProjectsAggregatedUsableSubnetworksListCall) IfNoneMatch(entityTag string) *ProjectsAggregatedUsableSubnetworksListCall {
  7115  	c.ifNoneMatch_ = entityTag
  7116  	return c
  7117  }
  7118  
  7119  // Context sets the context to be used in this call's Do method.
  7120  func (c *ProjectsAggregatedUsableSubnetworksListCall) Context(ctx context.Context) *ProjectsAggregatedUsableSubnetworksListCall {
  7121  	c.ctx_ = ctx
  7122  	return c
  7123  }
  7124  
  7125  // Header returns a http.Header that can be modified by the caller to add
  7126  // headers to the request.
  7127  func (c *ProjectsAggregatedUsableSubnetworksListCall) Header() http.Header {
  7128  	if c.header_ == nil {
  7129  		c.header_ = make(http.Header)
  7130  	}
  7131  	return c.header_
  7132  }
  7133  
  7134  func (c *ProjectsAggregatedUsableSubnetworksListCall) doRequest(alt string) (*http.Response, error) {
  7135  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  7136  	if c.ifNoneMatch_ != "" {
  7137  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  7138  	}
  7139  	var body io.Reader = nil
  7140  	c.urlParams_.Set("alt", alt)
  7141  	c.urlParams_.Set("prettyPrint", "false")
  7142  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/aggregated/usableSubnetworks")
  7143  	urls += "?" + c.urlParams_.Encode()
  7144  	req, err := http.NewRequest("GET", urls, body)
  7145  	if err != nil {
  7146  		return nil, err
  7147  	}
  7148  	req.Header = reqHeaders
  7149  	googleapi.Expand(req.URL, map[string]string{
  7150  		"parent": c.parent,
  7151  	})
  7152  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  7153  }
  7154  
  7155  // Do executes the "container.projects.aggregated.usableSubnetworks.list" call.
  7156  // Any non-2xx status code is an error. Response headers are in either
  7157  // *ListUsableSubnetworksResponse.ServerResponse.Header or (if a response was
  7158  // returned at all) in error.(*googleapi.Error).Header. Use
  7159  // googleapi.IsNotModified to check whether the returned error was because
  7160  // http.StatusNotModified was returned.
  7161  func (c *ProjectsAggregatedUsableSubnetworksListCall) Do(opts ...googleapi.CallOption) (*ListUsableSubnetworksResponse, error) {
  7162  	gensupport.SetOptions(c.urlParams_, opts...)
  7163  	res, err := c.doRequest("json")
  7164  	if res != nil && res.StatusCode == http.StatusNotModified {
  7165  		if res.Body != nil {
  7166  			res.Body.Close()
  7167  		}
  7168  		return nil, gensupport.WrapError(&googleapi.Error{
  7169  			Code:   res.StatusCode,
  7170  			Header: res.Header,
  7171  		})
  7172  	}
  7173  	if err != nil {
  7174  		return nil, err
  7175  	}
  7176  	defer googleapi.CloseBody(res)
  7177  	if err := googleapi.CheckResponse(res); err != nil {
  7178  		return nil, gensupport.WrapError(err)
  7179  	}
  7180  	ret := &ListUsableSubnetworksResponse{
  7181  		ServerResponse: googleapi.ServerResponse{
  7182  			Header:         res.Header,
  7183  			HTTPStatusCode: res.StatusCode,
  7184  		},
  7185  	}
  7186  	target := &ret
  7187  	if err := gensupport.DecodeResponse(target, res); err != nil {
  7188  		return nil, err
  7189  	}
  7190  	return ret, nil
  7191  }
  7192  
  7193  // Pages invokes f for each page of results.
  7194  // A non-nil error returned from f will halt the iteration.
  7195  // The provided context supersedes any context provided to the Context method.
  7196  func (c *ProjectsAggregatedUsableSubnetworksListCall) Pages(ctx context.Context, f func(*ListUsableSubnetworksResponse) error) error {
  7197  	c.ctx_ = ctx
  7198  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  7199  	for {
  7200  		x, err := c.Do()
  7201  		if err != nil {
  7202  			return err
  7203  		}
  7204  		if err := f(x); err != nil {
  7205  			return err
  7206  		}
  7207  		if x.NextPageToken == "" {
  7208  			return nil
  7209  		}
  7210  		c.PageToken(x.NextPageToken)
  7211  	}
  7212  }
  7213  
  7214  type ProjectsLocationsGetServerConfigCall struct {
  7215  	s            *Service
  7216  	name         string
  7217  	urlParams_   gensupport.URLParams
  7218  	ifNoneMatch_ string
  7219  	ctx_         context.Context
  7220  	header_      http.Header
  7221  }
  7222  
  7223  // GetServerConfig: Returns configuration info about the Google Kubernetes
  7224  // Engine service.
  7225  //
  7226  //   - name: The name (project and location) of the server config to get,
  7227  //     specified in the format `projects/*/locations/*`.
  7228  func (r *ProjectsLocationsService) GetServerConfig(name string) *ProjectsLocationsGetServerConfigCall {
  7229  	c := &ProjectsLocationsGetServerConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  7230  	c.name = name
  7231  	return c
  7232  }
  7233  
  7234  // ProjectId sets the optional parameter "projectId": Deprecated. The Google
  7235  // Developers Console project ID or project number
  7236  // (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  7237  // This field has been deprecated and replaced by the name field.
  7238  func (c *ProjectsLocationsGetServerConfigCall) ProjectId(projectId string) *ProjectsLocationsGetServerConfigCall {
  7239  	c.urlParams_.Set("projectId", projectId)
  7240  	return c
  7241  }
  7242  
  7243  // Zone sets the optional parameter "zone": Deprecated. The name of the Google
  7244  // Compute Engine zone (https://cloud.google.com/compute/docs/zones#available)
  7245  // to return operations for. This field has been deprecated and replaced by the
  7246  // name field.
  7247  func (c *ProjectsLocationsGetServerConfigCall) Zone(zone string) *ProjectsLocationsGetServerConfigCall {
  7248  	c.urlParams_.Set("zone", zone)
  7249  	return c
  7250  }
  7251  
  7252  // Fields allows partial responses to be retrieved. See
  7253  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  7254  // details.
  7255  func (c *ProjectsLocationsGetServerConfigCall) Fields(s ...googleapi.Field) *ProjectsLocationsGetServerConfigCall {
  7256  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  7257  	return c
  7258  }
  7259  
  7260  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  7261  // object's ETag matches the given value. This is useful for getting updates
  7262  // only after the object has changed since the last request.
  7263  func (c *ProjectsLocationsGetServerConfigCall) IfNoneMatch(entityTag string) *ProjectsLocationsGetServerConfigCall {
  7264  	c.ifNoneMatch_ = entityTag
  7265  	return c
  7266  }
  7267  
  7268  // Context sets the context to be used in this call's Do method.
  7269  func (c *ProjectsLocationsGetServerConfigCall) Context(ctx context.Context) *ProjectsLocationsGetServerConfigCall {
  7270  	c.ctx_ = ctx
  7271  	return c
  7272  }
  7273  
  7274  // Header returns a http.Header that can be modified by the caller to add
  7275  // headers to the request.
  7276  func (c *ProjectsLocationsGetServerConfigCall) Header() http.Header {
  7277  	if c.header_ == nil {
  7278  		c.header_ = make(http.Header)
  7279  	}
  7280  	return c.header_
  7281  }
  7282  
  7283  func (c *ProjectsLocationsGetServerConfigCall) doRequest(alt string) (*http.Response, error) {
  7284  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  7285  	if c.ifNoneMatch_ != "" {
  7286  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  7287  	}
  7288  	var body io.Reader = nil
  7289  	c.urlParams_.Set("alt", alt)
  7290  	c.urlParams_.Set("prettyPrint", "false")
  7291  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/serverConfig")
  7292  	urls += "?" + c.urlParams_.Encode()
  7293  	req, err := http.NewRequest("GET", urls, body)
  7294  	if err != nil {
  7295  		return nil, err
  7296  	}
  7297  	req.Header = reqHeaders
  7298  	googleapi.Expand(req.URL, map[string]string{
  7299  		"name": c.name,
  7300  	})
  7301  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  7302  }
  7303  
  7304  // Do executes the "container.projects.locations.getServerConfig" call.
  7305  // Any non-2xx status code is an error. Response headers are in either
  7306  // *ServerConfig.ServerResponse.Header or (if a response was returned at all)
  7307  // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  7308  // whether the returned error was because http.StatusNotModified was returned.
  7309  func (c *ProjectsLocationsGetServerConfigCall) Do(opts ...googleapi.CallOption) (*ServerConfig, error) {
  7310  	gensupport.SetOptions(c.urlParams_, opts...)
  7311  	res, err := c.doRequest("json")
  7312  	if res != nil && res.StatusCode == http.StatusNotModified {
  7313  		if res.Body != nil {
  7314  			res.Body.Close()
  7315  		}
  7316  		return nil, gensupport.WrapError(&googleapi.Error{
  7317  			Code:   res.StatusCode,
  7318  			Header: res.Header,
  7319  		})
  7320  	}
  7321  	if err != nil {
  7322  		return nil, err
  7323  	}
  7324  	defer googleapi.CloseBody(res)
  7325  	if err := googleapi.CheckResponse(res); err != nil {
  7326  		return nil, gensupport.WrapError(err)
  7327  	}
  7328  	ret := &ServerConfig{
  7329  		ServerResponse: googleapi.ServerResponse{
  7330  			Header:         res.Header,
  7331  			HTTPStatusCode: res.StatusCode,
  7332  		},
  7333  	}
  7334  	target := &ret
  7335  	if err := gensupport.DecodeResponse(target, res); err != nil {
  7336  		return nil, err
  7337  	}
  7338  	return ret, nil
  7339  }
  7340  
  7341  type ProjectsLocationsClustersCheckAutopilotCompatibilityCall struct {
  7342  	s            *Service
  7343  	name         string
  7344  	urlParams_   gensupport.URLParams
  7345  	ifNoneMatch_ string
  7346  	ctx_         context.Context
  7347  	header_      http.Header
  7348  }
  7349  
  7350  // CheckAutopilotCompatibility: Checks the cluster compatibility with Autopilot
  7351  // mode, and returns a list of compatibility issues.
  7352  //
  7353  //   - name: The name (project, location, cluster) of the cluster to retrieve.
  7354  //     Specified in the format `projects/*/locations/*/clusters/*`.
  7355  func (r *ProjectsLocationsClustersService) CheckAutopilotCompatibility(name string) *ProjectsLocationsClustersCheckAutopilotCompatibilityCall {
  7356  	c := &ProjectsLocationsClustersCheckAutopilotCompatibilityCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  7357  	c.name = name
  7358  	return c
  7359  }
  7360  
  7361  // Fields allows partial responses to be retrieved. See
  7362  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  7363  // details.
  7364  func (c *ProjectsLocationsClustersCheckAutopilotCompatibilityCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersCheckAutopilotCompatibilityCall {
  7365  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  7366  	return c
  7367  }
  7368  
  7369  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  7370  // object's ETag matches the given value. This is useful for getting updates
  7371  // only after the object has changed since the last request.
  7372  func (c *ProjectsLocationsClustersCheckAutopilotCompatibilityCall) IfNoneMatch(entityTag string) *ProjectsLocationsClustersCheckAutopilotCompatibilityCall {
  7373  	c.ifNoneMatch_ = entityTag
  7374  	return c
  7375  }
  7376  
  7377  // Context sets the context to be used in this call's Do method.
  7378  func (c *ProjectsLocationsClustersCheckAutopilotCompatibilityCall) Context(ctx context.Context) *ProjectsLocationsClustersCheckAutopilotCompatibilityCall {
  7379  	c.ctx_ = ctx
  7380  	return c
  7381  }
  7382  
  7383  // Header returns a http.Header that can be modified by the caller to add
  7384  // headers to the request.
  7385  func (c *ProjectsLocationsClustersCheckAutopilotCompatibilityCall) Header() http.Header {
  7386  	if c.header_ == nil {
  7387  		c.header_ = make(http.Header)
  7388  	}
  7389  	return c.header_
  7390  }
  7391  
  7392  func (c *ProjectsLocationsClustersCheckAutopilotCompatibilityCall) doRequest(alt string) (*http.Response, error) {
  7393  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  7394  	if c.ifNoneMatch_ != "" {
  7395  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  7396  	}
  7397  	var body io.Reader = nil
  7398  	c.urlParams_.Set("alt", alt)
  7399  	c.urlParams_.Set("prettyPrint", "false")
  7400  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:checkAutopilotCompatibility")
  7401  	urls += "?" + c.urlParams_.Encode()
  7402  	req, err := http.NewRequest("GET", urls, body)
  7403  	if err != nil {
  7404  		return nil, err
  7405  	}
  7406  	req.Header = reqHeaders
  7407  	googleapi.Expand(req.URL, map[string]string{
  7408  		"name": c.name,
  7409  	})
  7410  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  7411  }
  7412  
  7413  // Do executes the "container.projects.locations.clusters.checkAutopilotCompatibility" call.
  7414  // Any non-2xx status code is an error. Response headers are in either
  7415  // *CheckAutopilotCompatibilityResponse.ServerResponse.Header or (if a response
  7416  // was returned at all) in error.(*googleapi.Error).Header. Use
  7417  // googleapi.IsNotModified to check whether the returned error was because
  7418  // http.StatusNotModified was returned.
  7419  func (c *ProjectsLocationsClustersCheckAutopilotCompatibilityCall) Do(opts ...googleapi.CallOption) (*CheckAutopilotCompatibilityResponse, error) {
  7420  	gensupport.SetOptions(c.urlParams_, opts...)
  7421  	res, err := c.doRequest("json")
  7422  	if res != nil && res.StatusCode == http.StatusNotModified {
  7423  		if res.Body != nil {
  7424  			res.Body.Close()
  7425  		}
  7426  		return nil, gensupport.WrapError(&googleapi.Error{
  7427  			Code:   res.StatusCode,
  7428  			Header: res.Header,
  7429  		})
  7430  	}
  7431  	if err != nil {
  7432  		return nil, err
  7433  	}
  7434  	defer googleapi.CloseBody(res)
  7435  	if err := googleapi.CheckResponse(res); err != nil {
  7436  		return nil, gensupport.WrapError(err)
  7437  	}
  7438  	ret := &CheckAutopilotCompatibilityResponse{
  7439  		ServerResponse: googleapi.ServerResponse{
  7440  			Header:         res.Header,
  7441  			HTTPStatusCode: res.StatusCode,
  7442  		},
  7443  	}
  7444  	target := &ret
  7445  	if err := gensupport.DecodeResponse(target, res); err != nil {
  7446  		return nil, err
  7447  	}
  7448  	return ret, nil
  7449  }
  7450  
  7451  type ProjectsLocationsClustersCompleteIpRotationCall struct {
  7452  	s                         *Service
  7453  	name                      string
  7454  	completeiprotationrequest *CompleteIPRotationRequest
  7455  	urlParams_                gensupport.URLParams
  7456  	ctx_                      context.Context
  7457  	header_                   http.Header
  7458  }
  7459  
  7460  // CompleteIpRotation: Completes master IP rotation.
  7461  //
  7462  //   - name: The name (project, location, cluster name) of the cluster to
  7463  //     complete IP rotation. Specified in the format
  7464  //     `projects/*/locations/*/clusters/*`.
  7465  func (r *ProjectsLocationsClustersService) CompleteIpRotation(name string, completeiprotationrequest *CompleteIPRotationRequest) *ProjectsLocationsClustersCompleteIpRotationCall {
  7466  	c := &ProjectsLocationsClustersCompleteIpRotationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  7467  	c.name = name
  7468  	c.completeiprotationrequest = completeiprotationrequest
  7469  	return c
  7470  }
  7471  
  7472  // Fields allows partial responses to be retrieved. See
  7473  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  7474  // details.
  7475  func (c *ProjectsLocationsClustersCompleteIpRotationCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersCompleteIpRotationCall {
  7476  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  7477  	return c
  7478  }
  7479  
  7480  // Context sets the context to be used in this call's Do method.
  7481  func (c *ProjectsLocationsClustersCompleteIpRotationCall) Context(ctx context.Context) *ProjectsLocationsClustersCompleteIpRotationCall {
  7482  	c.ctx_ = ctx
  7483  	return c
  7484  }
  7485  
  7486  // Header returns a http.Header that can be modified by the caller to add
  7487  // headers to the request.
  7488  func (c *ProjectsLocationsClustersCompleteIpRotationCall) Header() http.Header {
  7489  	if c.header_ == nil {
  7490  		c.header_ = make(http.Header)
  7491  	}
  7492  	return c.header_
  7493  }
  7494  
  7495  func (c *ProjectsLocationsClustersCompleteIpRotationCall) doRequest(alt string) (*http.Response, error) {
  7496  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  7497  	var body io.Reader = nil
  7498  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.completeiprotationrequest)
  7499  	if err != nil {
  7500  		return nil, err
  7501  	}
  7502  	c.urlParams_.Set("alt", alt)
  7503  	c.urlParams_.Set("prettyPrint", "false")
  7504  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:completeIpRotation")
  7505  	urls += "?" + c.urlParams_.Encode()
  7506  	req, err := http.NewRequest("POST", urls, body)
  7507  	if err != nil {
  7508  		return nil, err
  7509  	}
  7510  	req.Header = reqHeaders
  7511  	googleapi.Expand(req.URL, map[string]string{
  7512  		"name": c.name,
  7513  	})
  7514  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  7515  }
  7516  
  7517  // Do executes the "container.projects.locations.clusters.completeIpRotation" call.
  7518  // Any non-2xx status code is an error. Response headers are in either
  7519  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  7520  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  7521  // whether the returned error was because http.StatusNotModified was returned.
  7522  func (c *ProjectsLocationsClustersCompleteIpRotationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  7523  	gensupport.SetOptions(c.urlParams_, opts...)
  7524  	res, err := c.doRequest("json")
  7525  	if res != nil && res.StatusCode == http.StatusNotModified {
  7526  		if res.Body != nil {
  7527  			res.Body.Close()
  7528  		}
  7529  		return nil, gensupport.WrapError(&googleapi.Error{
  7530  			Code:   res.StatusCode,
  7531  			Header: res.Header,
  7532  		})
  7533  	}
  7534  	if err != nil {
  7535  		return nil, err
  7536  	}
  7537  	defer googleapi.CloseBody(res)
  7538  	if err := googleapi.CheckResponse(res); err != nil {
  7539  		return nil, gensupport.WrapError(err)
  7540  	}
  7541  	ret := &Operation{
  7542  		ServerResponse: googleapi.ServerResponse{
  7543  			Header:         res.Header,
  7544  			HTTPStatusCode: res.StatusCode,
  7545  		},
  7546  	}
  7547  	target := &ret
  7548  	if err := gensupport.DecodeResponse(target, res); err != nil {
  7549  		return nil, err
  7550  	}
  7551  	return ret, nil
  7552  }
  7553  
  7554  type ProjectsLocationsClustersCreateCall struct {
  7555  	s                    *Service
  7556  	parent               string
  7557  	createclusterrequest *CreateClusterRequest
  7558  	urlParams_           gensupport.URLParams
  7559  	ctx_                 context.Context
  7560  	header_              http.Header
  7561  }
  7562  
  7563  // Create: Creates a cluster, consisting of the specified number and type of
  7564  // Google Compute Engine instances. By default, the cluster is created in the
  7565  // project's default network
  7566  // (https://cloud.google.com/compute/docs/networks-and-firewalls#networks). One
  7567  // firewall is added for the cluster. After cluster creation, the Kubelet
  7568  // creates routes for each node to allow the containers on that node to
  7569  // communicate with all other instances in the cluster. Finally, an entry is
  7570  // added to the project's global metadata indicating which CIDR range the
  7571  // cluster is using.
  7572  //
  7573  //   - parent: The parent (project and location) where the cluster will be
  7574  //     created. Specified in the format `projects/*/locations/*`.
  7575  func (r *ProjectsLocationsClustersService) Create(parent string, createclusterrequest *CreateClusterRequest) *ProjectsLocationsClustersCreateCall {
  7576  	c := &ProjectsLocationsClustersCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  7577  	c.parent = parent
  7578  	c.createclusterrequest = createclusterrequest
  7579  	return c
  7580  }
  7581  
  7582  // Fields allows partial responses to be retrieved. See
  7583  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  7584  // details.
  7585  func (c *ProjectsLocationsClustersCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersCreateCall {
  7586  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  7587  	return c
  7588  }
  7589  
  7590  // Context sets the context to be used in this call's Do method.
  7591  func (c *ProjectsLocationsClustersCreateCall) Context(ctx context.Context) *ProjectsLocationsClustersCreateCall {
  7592  	c.ctx_ = ctx
  7593  	return c
  7594  }
  7595  
  7596  // Header returns a http.Header that can be modified by the caller to add
  7597  // headers to the request.
  7598  func (c *ProjectsLocationsClustersCreateCall) Header() http.Header {
  7599  	if c.header_ == nil {
  7600  		c.header_ = make(http.Header)
  7601  	}
  7602  	return c.header_
  7603  }
  7604  
  7605  func (c *ProjectsLocationsClustersCreateCall) doRequest(alt string) (*http.Response, error) {
  7606  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  7607  	var body io.Reader = nil
  7608  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createclusterrequest)
  7609  	if err != nil {
  7610  		return nil, err
  7611  	}
  7612  	c.urlParams_.Set("alt", alt)
  7613  	c.urlParams_.Set("prettyPrint", "false")
  7614  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/clusters")
  7615  	urls += "?" + c.urlParams_.Encode()
  7616  	req, err := http.NewRequest("POST", urls, body)
  7617  	if err != nil {
  7618  		return nil, err
  7619  	}
  7620  	req.Header = reqHeaders
  7621  	googleapi.Expand(req.URL, map[string]string{
  7622  		"parent": c.parent,
  7623  	})
  7624  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  7625  }
  7626  
  7627  // Do executes the "container.projects.locations.clusters.create" call.
  7628  // Any non-2xx status code is an error. Response headers are in either
  7629  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  7630  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  7631  // whether the returned error was because http.StatusNotModified was returned.
  7632  func (c *ProjectsLocationsClustersCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  7633  	gensupport.SetOptions(c.urlParams_, opts...)
  7634  	res, err := c.doRequest("json")
  7635  	if res != nil && res.StatusCode == http.StatusNotModified {
  7636  		if res.Body != nil {
  7637  			res.Body.Close()
  7638  		}
  7639  		return nil, gensupport.WrapError(&googleapi.Error{
  7640  			Code:   res.StatusCode,
  7641  			Header: res.Header,
  7642  		})
  7643  	}
  7644  	if err != nil {
  7645  		return nil, err
  7646  	}
  7647  	defer googleapi.CloseBody(res)
  7648  	if err := googleapi.CheckResponse(res); err != nil {
  7649  		return nil, gensupport.WrapError(err)
  7650  	}
  7651  	ret := &Operation{
  7652  		ServerResponse: googleapi.ServerResponse{
  7653  			Header:         res.Header,
  7654  			HTTPStatusCode: res.StatusCode,
  7655  		},
  7656  	}
  7657  	target := &ret
  7658  	if err := gensupport.DecodeResponse(target, res); err != nil {
  7659  		return nil, err
  7660  	}
  7661  	return ret, nil
  7662  }
  7663  
  7664  type ProjectsLocationsClustersDeleteCall struct {
  7665  	s          *Service
  7666  	name       string
  7667  	urlParams_ gensupport.URLParams
  7668  	ctx_       context.Context
  7669  	header_    http.Header
  7670  }
  7671  
  7672  // Delete: Deletes the cluster, including the Kubernetes endpoint and all
  7673  // worker nodes. Firewalls and routes that were configured during cluster
  7674  // creation are also deleted. Other Google Compute Engine resources that might
  7675  // be in use by the cluster, such as load balancer resources, are not deleted
  7676  // if they weren't present when the cluster was initially created.
  7677  //
  7678  //   - name: The name (project, location, cluster) of the cluster to delete.
  7679  //     Specified in the format `projects/*/locations/*/clusters/*`.
  7680  func (r *ProjectsLocationsClustersService) Delete(name string) *ProjectsLocationsClustersDeleteCall {
  7681  	c := &ProjectsLocationsClustersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  7682  	c.name = name
  7683  	return c
  7684  }
  7685  
  7686  // ClusterId sets the optional parameter "clusterId": Deprecated. The name of
  7687  // the cluster to delete. This field has been deprecated and replaced by the
  7688  // name field.
  7689  func (c *ProjectsLocationsClustersDeleteCall) ClusterId(clusterId string) *ProjectsLocationsClustersDeleteCall {
  7690  	c.urlParams_.Set("clusterId", clusterId)
  7691  	return c
  7692  }
  7693  
  7694  // ProjectId sets the optional parameter "projectId": Deprecated. The Google
  7695  // Developers Console project ID or project number
  7696  // (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  7697  // This field has been deprecated and replaced by the name field.
  7698  func (c *ProjectsLocationsClustersDeleteCall) ProjectId(projectId string) *ProjectsLocationsClustersDeleteCall {
  7699  	c.urlParams_.Set("projectId", projectId)
  7700  	return c
  7701  }
  7702  
  7703  // Zone sets the optional parameter "zone": Deprecated. The name of the Google
  7704  // Compute Engine zone (https://cloud.google.com/compute/docs/zones#available)
  7705  // in which the cluster resides. This field has been deprecated and replaced by
  7706  // the name field.
  7707  func (c *ProjectsLocationsClustersDeleteCall) Zone(zone string) *ProjectsLocationsClustersDeleteCall {
  7708  	c.urlParams_.Set("zone", zone)
  7709  	return c
  7710  }
  7711  
  7712  // Fields allows partial responses to be retrieved. See
  7713  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  7714  // details.
  7715  func (c *ProjectsLocationsClustersDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersDeleteCall {
  7716  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  7717  	return c
  7718  }
  7719  
  7720  // Context sets the context to be used in this call's Do method.
  7721  func (c *ProjectsLocationsClustersDeleteCall) Context(ctx context.Context) *ProjectsLocationsClustersDeleteCall {
  7722  	c.ctx_ = ctx
  7723  	return c
  7724  }
  7725  
  7726  // Header returns a http.Header that can be modified by the caller to add
  7727  // headers to the request.
  7728  func (c *ProjectsLocationsClustersDeleteCall) Header() http.Header {
  7729  	if c.header_ == nil {
  7730  		c.header_ = make(http.Header)
  7731  	}
  7732  	return c.header_
  7733  }
  7734  
  7735  func (c *ProjectsLocationsClustersDeleteCall) doRequest(alt string) (*http.Response, error) {
  7736  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  7737  	var body io.Reader = nil
  7738  	c.urlParams_.Set("alt", alt)
  7739  	c.urlParams_.Set("prettyPrint", "false")
  7740  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  7741  	urls += "?" + c.urlParams_.Encode()
  7742  	req, err := http.NewRequest("DELETE", urls, body)
  7743  	if err != nil {
  7744  		return nil, err
  7745  	}
  7746  	req.Header = reqHeaders
  7747  	googleapi.Expand(req.URL, map[string]string{
  7748  		"name": c.name,
  7749  	})
  7750  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  7751  }
  7752  
  7753  // Do executes the "container.projects.locations.clusters.delete" call.
  7754  // Any non-2xx status code is an error. Response headers are in either
  7755  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  7756  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  7757  // whether the returned error was because http.StatusNotModified was returned.
  7758  func (c *ProjectsLocationsClustersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  7759  	gensupport.SetOptions(c.urlParams_, opts...)
  7760  	res, err := c.doRequest("json")
  7761  	if res != nil && res.StatusCode == http.StatusNotModified {
  7762  		if res.Body != nil {
  7763  			res.Body.Close()
  7764  		}
  7765  		return nil, gensupport.WrapError(&googleapi.Error{
  7766  			Code:   res.StatusCode,
  7767  			Header: res.Header,
  7768  		})
  7769  	}
  7770  	if err != nil {
  7771  		return nil, err
  7772  	}
  7773  	defer googleapi.CloseBody(res)
  7774  	if err := googleapi.CheckResponse(res); err != nil {
  7775  		return nil, gensupport.WrapError(err)
  7776  	}
  7777  	ret := &Operation{
  7778  		ServerResponse: googleapi.ServerResponse{
  7779  			Header:         res.Header,
  7780  			HTTPStatusCode: res.StatusCode,
  7781  		},
  7782  	}
  7783  	target := &ret
  7784  	if err := gensupport.DecodeResponse(target, res); err != nil {
  7785  		return nil, err
  7786  	}
  7787  	return ret, nil
  7788  }
  7789  
  7790  type ProjectsLocationsClustersGetCall struct {
  7791  	s            *Service
  7792  	name         string
  7793  	urlParams_   gensupport.URLParams
  7794  	ifNoneMatch_ string
  7795  	ctx_         context.Context
  7796  	header_      http.Header
  7797  }
  7798  
  7799  // Get: Gets the details of a specific cluster.
  7800  //
  7801  //   - name: The name (project, location, cluster) of the cluster to retrieve.
  7802  //     Specified in the format `projects/*/locations/*/clusters/*`.
  7803  func (r *ProjectsLocationsClustersService) Get(name string) *ProjectsLocationsClustersGetCall {
  7804  	c := &ProjectsLocationsClustersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  7805  	c.name = name
  7806  	return c
  7807  }
  7808  
  7809  // ClusterId sets the optional parameter "clusterId": Deprecated. The name of
  7810  // the cluster to retrieve. This field has been deprecated and replaced by the
  7811  // name field.
  7812  func (c *ProjectsLocationsClustersGetCall) ClusterId(clusterId string) *ProjectsLocationsClustersGetCall {
  7813  	c.urlParams_.Set("clusterId", clusterId)
  7814  	return c
  7815  }
  7816  
  7817  // ProjectId sets the optional parameter "projectId": Deprecated. The Google
  7818  // Developers Console project ID or project number
  7819  // (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  7820  // This field has been deprecated and replaced by the name field.
  7821  func (c *ProjectsLocationsClustersGetCall) ProjectId(projectId string) *ProjectsLocationsClustersGetCall {
  7822  	c.urlParams_.Set("projectId", projectId)
  7823  	return c
  7824  }
  7825  
  7826  // Zone sets the optional parameter "zone": Deprecated. The name of the Google
  7827  // Compute Engine zone (https://cloud.google.com/compute/docs/zones#available)
  7828  // in which the cluster resides. This field has been deprecated and replaced by
  7829  // the name field.
  7830  func (c *ProjectsLocationsClustersGetCall) Zone(zone string) *ProjectsLocationsClustersGetCall {
  7831  	c.urlParams_.Set("zone", zone)
  7832  	return c
  7833  }
  7834  
  7835  // Fields allows partial responses to be retrieved. See
  7836  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  7837  // details.
  7838  func (c *ProjectsLocationsClustersGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersGetCall {
  7839  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  7840  	return c
  7841  }
  7842  
  7843  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  7844  // object's ETag matches the given value. This is useful for getting updates
  7845  // only after the object has changed since the last request.
  7846  func (c *ProjectsLocationsClustersGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsClustersGetCall {
  7847  	c.ifNoneMatch_ = entityTag
  7848  	return c
  7849  }
  7850  
  7851  // Context sets the context to be used in this call's Do method.
  7852  func (c *ProjectsLocationsClustersGetCall) Context(ctx context.Context) *ProjectsLocationsClustersGetCall {
  7853  	c.ctx_ = ctx
  7854  	return c
  7855  }
  7856  
  7857  // Header returns a http.Header that can be modified by the caller to add
  7858  // headers to the request.
  7859  func (c *ProjectsLocationsClustersGetCall) Header() http.Header {
  7860  	if c.header_ == nil {
  7861  		c.header_ = make(http.Header)
  7862  	}
  7863  	return c.header_
  7864  }
  7865  
  7866  func (c *ProjectsLocationsClustersGetCall) doRequest(alt string) (*http.Response, error) {
  7867  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  7868  	if c.ifNoneMatch_ != "" {
  7869  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  7870  	}
  7871  	var body io.Reader = nil
  7872  	c.urlParams_.Set("alt", alt)
  7873  	c.urlParams_.Set("prettyPrint", "false")
  7874  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  7875  	urls += "?" + c.urlParams_.Encode()
  7876  	req, err := http.NewRequest("GET", urls, body)
  7877  	if err != nil {
  7878  		return nil, err
  7879  	}
  7880  	req.Header = reqHeaders
  7881  	googleapi.Expand(req.URL, map[string]string{
  7882  		"name": c.name,
  7883  	})
  7884  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  7885  }
  7886  
  7887  // Do executes the "container.projects.locations.clusters.get" call.
  7888  // Any non-2xx status code is an error. Response headers are in either
  7889  // *Cluster.ServerResponse.Header or (if a response was returned at all) in
  7890  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  7891  // whether the returned error was because http.StatusNotModified was returned.
  7892  func (c *ProjectsLocationsClustersGetCall) Do(opts ...googleapi.CallOption) (*Cluster, error) {
  7893  	gensupport.SetOptions(c.urlParams_, opts...)
  7894  	res, err := c.doRequest("json")
  7895  	if res != nil && res.StatusCode == http.StatusNotModified {
  7896  		if res.Body != nil {
  7897  			res.Body.Close()
  7898  		}
  7899  		return nil, gensupport.WrapError(&googleapi.Error{
  7900  			Code:   res.StatusCode,
  7901  			Header: res.Header,
  7902  		})
  7903  	}
  7904  	if err != nil {
  7905  		return nil, err
  7906  	}
  7907  	defer googleapi.CloseBody(res)
  7908  	if err := googleapi.CheckResponse(res); err != nil {
  7909  		return nil, gensupport.WrapError(err)
  7910  	}
  7911  	ret := &Cluster{
  7912  		ServerResponse: googleapi.ServerResponse{
  7913  			Header:         res.Header,
  7914  			HTTPStatusCode: res.StatusCode,
  7915  		},
  7916  	}
  7917  	target := &ret
  7918  	if err := gensupport.DecodeResponse(target, res); err != nil {
  7919  		return nil, err
  7920  	}
  7921  	return ret, nil
  7922  }
  7923  
  7924  type ProjectsLocationsClustersGetJwksCall struct {
  7925  	s            *Service
  7926  	parent       string
  7927  	urlParams_   gensupport.URLParams
  7928  	ifNoneMatch_ string
  7929  	ctx_         context.Context
  7930  	header_      http.Header
  7931  }
  7932  
  7933  // GetJwks: Gets the public component of the cluster signing keys in JSON Web
  7934  // Key format.
  7935  //
  7936  //   - parent: The cluster (project, location, cluster name) to get keys for.
  7937  //     Specified in the format `projects/*/locations/*/clusters/*`.
  7938  func (r *ProjectsLocationsClustersService) GetJwks(parent string) *ProjectsLocationsClustersGetJwksCall {
  7939  	c := &ProjectsLocationsClustersGetJwksCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  7940  	c.parent = parent
  7941  	return c
  7942  }
  7943  
  7944  // Fields allows partial responses to be retrieved. See
  7945  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  7946  // details.
  7947  func (c *ProjectsLocationsClustersGetJwksCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersGetJwksCall {
  7948  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  7949  	return c
  7950  }
  7951  
  7952  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  7953  // object's ETag matches the given value. This is useful for getting updates
  7954  // only after the object has changed since the last request.
  7955  func (c *ProjectsLocationsClustersGetJwksCall) IfNoneMatch(entityTag string) *ProjectsLocationsClustersGetJwksCall {
  7956  	c.ifNoneMatch_ = entityTag
  7957  	return c
  7958  }
  7959  
  7960  // Context sets the context to be used in this call's Do method.
  7961  func (c *ProjectsLocationsClustersGetJwksCall) Context(ctx context.Context) *ProjectsLocationsClustersGetJwksCall {
  7962  	c.ctx_ = ctx
  7963  	return c
  7964  }
  7965  
  7966  // Header returns a http.Header that can be modified by the caller to add
  7967  // headers to the request.
  7968  func (c *ProjectsLocationsClustersGetJwksCall) Header() http.Header {
  7969  	if c.header_ == nil {
  7970  		c.header_ = make(http.Header)
  7971  	}
  7972  	return c.header_
  7973  }
  7974  
  7975  func (c *ProjectsLocationsClustersGetJwksCall) doRequest(alt string) (*http.Response, error) {
  7976  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  7977  	if c.ifNoneMatch_ != "" {
  7978  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  7979  	}
  7980  	var body io.Reader = nil
  7981  	c.urlParams_.Set("alt", alt)
  7982  	c.urlParams_.Set("prettyPrint", "false")
  7983  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/jwks")
  7984  	urls += "?" + c.urlParams_.Encode()
  7985  	req, err := http.NewRequest("GET", urls, body)
  7986  	if err != nil {
  7987  		return nil, err
  7988  	}
  7989  	req.Header = reqHeaders
  7990  	googleapi.Expand(req.URL, map[string]string{
  7991  		"parent": c.parent,
  7992  	})
  7993  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  7994  }
  7995  
  7996  // Do executes the "container.projects.locations.clusters.getJwks" call.
  7997  // Any non-2xx status code is an error. Response headers are in either
  7998  // *GetJSONWebKeysResponse.ServerResponse.Header or (if a response was returned
  7999  // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  8000  // check whether the returned error was because http.StatusNotModified was
  8001  // returned.
  8002  func (c *ProjectsLocationsClustersGetJwksCall) Do(opts ...googleapi.CallOption) (*GetJSONWebKeysResponse, error) {
  8003  	gensupport.SetOptions(c.urlParams_, opts...)
  8004  	res, err := c.doRequest("json")
  8005  	if res != nil && res.StatusCode == http.StatusNotModified {
  8006  		if res.Body != nil {
  8007  			res.Body.Close()
  8008  		}
  8009  		return nil, gensupport.WrapError(&googleapi.Error{
  8010  			Code:   res.StatusCode,
  8011  			Header: res.Header,
  8012  		})
  8013  	}
  8014  	if err != nil {
  8015  		return nil, err
  8016  	}
  8017  	defer googleapi.CloseBody(res)
  8018  	if err := googleapi.CheckResponse(res); err != nil {
  8019  		return nil, gensupport.WrapError(err)
  8020  	}
  8021  	ret := &GetJSONWebKeysResponse{
  8022  		ServerResponse: googleapi.ServerResponse{
  8023  			Header:         res.Header,
  8024  			HTTPStatusCode: res.StatusCode,
  8025  		},
  8026  	}
  8027  	target := &ret
  8028  	if err := gensupport.DecodeResponse(target, res); err != nil {
  8029  		return nil, err
  8030  	}
  8031  	return ret, nil
  8032  }
  8033  
  8034  type ProjectsLocationsClustersListCall struct {
  8035  	s            *Service
  8036  	parent       string
  8037  	urlParams_   gensupport.URLParams
  8038  	ifNoneMatch_ string
  8039  	ctx_         context.Context
  8040  	header_      http.Header
  8041  }
  8042  
  8043  // List: Lists all clusters owned by a project in either the specified zone or
  8044  // all zones.
  8045  //
  8046  //   - parent: The parent (project and location) where the clusters will be
  8047  //     listed. Specified in the format `projects/*/locations/*`. Location "-"
  8048  //     matches all zones and all regions.
  8049  func (r *ProjectsLocationsClustersService) List(parent string) *ProjectsLocationsClustersListCall {
  8050  	c := &ProjectsLocationsClustersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  8051  	c.parent = parent
  8052  	return c
  8053  }
  8054  
  8055  // ProjectId sets the optional parameter "projectId": Deprecated. The Google
  8056  // Developers Console project ID or project number
  8057  // (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  8058  // This field has been deprecated and replaced by the parent field.
  8059  func (c *ProjectsLocationsClustersListCall) ProjectId(projectId string) *ProjectsLocationsClustersListCall {
  8060  	c.urlParams_.Set("projectId", projectId)
  8061  	return c
  8062  }
  8063  
  8064  // Zone sets the optional parameter "zone": Deprecated. The name of the Google
  8065  // Compute Engine zone (https://cloud.google.com/compute/docs/zones#available)
  8066  // in which the cluster resides, or "-" for all zones. This field has been
  8067  // deprecated and replaced by the parent field.
  8068  func (c *ProjectsLocationsClustersListCall) Zone(zone string) *ProjectsLocationsClustersListCall {
  8069  	c.urlParams_.Set("zone", zone)
  8070  	return c
  8071  }
  8072  
  8073  // Fields allows partial responses to be retrieved. See
  8074  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  8075  // details.
  8076  func (c *ProjectsLocationsClustersListCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersListCall {
  8077  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  8078  	return c
  8079  }
  8080  
  8081  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  8082  // object's ETag matches the given value. This is useful for getting updates
  8083  // only after the object has changed since the last request.
  8084  func (c *ProjectsLocationsClustersListCall) IfNoneMatch(entityTag string) *ProjectsLocationsClustersListCall {
  8085  	c.ifNoneMatch_ = entityTag
  8086  	return c
  8087  }
  8088  
  8089  // Context sets the context to be used in this call's Do method.
  8090  func (c *ProjectsLocationsClustersListCall) Context(ctx context.Context) *ProjectsLocationsClustersListCall {
  8091  	c.ctx_ = ctx
  8092  	return c
  8093  }
  8094  
  8095  // Header returns a http.Header that can be modified by the caller to add
  8096  // headers to the request.
  8097  func (c *ProjectsLocationsClustersListCall) Header() http.Header {
  8098  	if c.header_ == nil {
  8099  		c.header_ = make(http.Header)
  8100  	}
  8101  	return c.header_
  8102  }
  8103  
  8104  func (c *ProjectsLocationsClustersListCall) doRequest(alt string) (*http.Response, error) {
  8105  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  8106  	if c.ifNoneMatch_ != "" {
  8107  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  8108  	}
  8109  	var body io.Reader = nil
  8110  	c.urlParams_.Set("alt", alt)
  8111  	c.urlParams_.Set("prettyPrint", "false")
  8112  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/clusters")
  8113  	urls += "?" + c.urlParams_.Encode()
  8114  	req, err := http.NewRequest("GET", urls, body)
  8115  	if err != nil {
  8116  		return nil, err
  8117  	}
  8118  	req.Header = reqHeaders
  8119  	googleapi.Expand(req.URL, map[string]string{
  8120  		"parent": c.parent,
  8121  	})
  8122  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  8123  }
  8124  
  8125  // Do executes the "container.projects.locations.clusters.list" call.
  8126  // Any non-2xx status code is an error. Response headers are in either
  8127  // *ListClustersResponse.ServerResponse.Header or (if a response was returned
  8128  // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  8129  // check whether the returned error was because http.StatusNotModified was
  8130  // returned.
  8131  func (c *ProjectsLocationsClustersListCall) Do(opts ...googleapi.CallOption) (*ListClustersResponse, error) {
  8132  	gensupport.SetOptions(c.urlParams_, opts...)
  8133  	res, err := c.doRequest("json")
  8134  	if res != nil && res.StatusCode == http.StatusNotModified {
  8135  		if res.Body != nil {
  8136  			res.Body.Close()
  8137  		}
  8138  		return nil, gensupport.WrapError(&googleapi.Error{
  8139  			Code:   res.StatusCode,
  8140  			Header: res.Header,
  8141  		})
  8142  	}
  8143  	if err != nil {
  8144  		return nil, err
  8145  	}
  8146  	defer googleapi.CloseBody(res)
  8147  	if err := googleapi.CheckResponse(res); err != nil {
  8148  		return nil, gensupport.WrapError(err)
  8149  	}
  8150  	ret := &ListClustersResponse{
  8151  		ServerResponse: googleapi.ServerResponse{
  8152  			Header:         res.Header,
  8153  			HTTPStatusCode: res.StatusCode,
  8154  		},
  8155  	}
  8156  	target := &ret
  8157  	if err := gensupport.DecodeResponse(target, res); err != nil {
  8158  		return nil, err
  8159  	}
  8160  	return ret, nil
  8161  }
  8162  
  8163  type ProjectsLocationsClustersSetAddonsCall struct {
  8164  	s                      *Service
  8165  	name                   string
  8166  	setaddonsconfigrequest *SetAddonsConfigRequest
  8167  	urlParams_             gensupport.URLParams
  8168  	ctx_                   context.Context
  8169  	header_                http.Header
  8170  }
  8171  
  8172  // SetAddons: Sets the addons for a specific cluster.
  8173  //
  8174  //   - name: The name (project, location, cluster) of the cluster to set addons.
  8175  //     Specified in the format `projects/*/locations/*/clusters/*`.
  8176  func (r *ProjectsLocationsClustersService) SetAddons(name string, setaddonsconfigrequest *SetAddonsConfigRequest) *ProjectsLocationsClustersSetAddonsCall {
  8177  	c := &ProjectsLocationsClustersSetAddonsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  8178  	c.name = name
  8179  	c.setaddonsconfigrequest = setaddonsconfigrequest
  8180  	return c
  8181  }
  8182  
  8183  // Fields allows partial responses to be retrieved. See
  8184  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  8185  // details.
  8186  func (c *ProjectsLocationsClustersSetAddonsCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersSetAddonsCall {
  8187  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  8188  	return c
  8189  }
  8190  
  8191  // Context sets the context to be used in this call's Do method.
  8192  func (c *ProjectsLocationsClustersSetAddonsCall) Context(ctx context.Context) *ProjectsLocationsClustersSetAddonsCall {
  8193  	c.ctx_ = ctx
  8194  	return c
  8195  }
  8196  
  8197  // Header returns a http.Header that can be modified by the caller to add
  8198  // headers to the request.
  8199  func (c *ProjectsLocationsClustersSetAddonsCall) Header() http.Header {
  8200  	if c.header_ == nil {
  8201  		c.header_ = make(http.Header)
  8202  	}
  8203  	return c.header_
  8204  }
  8205  
  8206  func (c *ProjectsLocationsClustersSetAddonsCall) doRequest(alt string) (*http.Response, error) {
  8207  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  8208  	var body io.Reader = nil
  8209  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setaddonsconfigrequest)
  8210  	if err != nil {
  8211  		return nil, err
  8212  	}
  8213  	c.urlParams_.Set("alt", alt)
  8214  	c.urlParams_.Set("prettyPrint", "false")
  8215  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setAddons")
  8216  	urls += "?" + c.urlParams_.Encode()
  8217  	req, err := http.NewRequest("POST", urls, body)
  8218  	if err != nil {
  8219  		return nil, err
  8220  	}
  8221  	req.Header = reqHeaders
  8222  	googleapi.Expand(req.URL, map[string]string{
  8223  		"name": c.name,
  8224  	})
  8225  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  8226  }
  8227  
  8228  // Do executes the "container.projects.locations.clusters.setAddons" call.
  8229  // Any non-2xx status code is an error. Response headers are in either
  8230  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  8231  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  8232  // whether the returned error was because http.StatusNotModified was returned.
  8233  func (c *ProjectsLocationsClustersSetAddonsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  8234  	gensupport.SetOptions(c.urlParams_, opts...)
  8235  	res, err := c.doRequest("json")
  8236  	if res != nil && res.StatusCode == http.StatusNotModified {
  8237  		if res.Body != nil {
  8238  			res.Body.Close()
  8239  		}
  8240  		return nil, gensupport.WrapError(&googleapi.Error{
  8241  			Code:   res.StatusCode,
  8242  			Header: res.Header,
  8243  		})
  8244  	}
  8245  	if err != nil {
  8246  		return nil, err
  8247  	}
  8248  	defer googleapi.CloseBody(res)
  8249  	if err := googleapi.CheckResponse(res); err != nil {
  8250  		return nil, gensupport.WrapError(err)
  8251  	}
  8252  	ret := &Operation{
  8253  		ServerResponse: googleapi.ServerResponse{
  8254  			Header:         res.Header,
  8255  			HTTPStatusCode: res.StatusCode,
  8256  		},
  8257  	}
  8258  	target := &ret
  8259  	if err := gensupport.DecodeResponse(target, res); err != nil {
  8260  		return nil, err
  8261  	}
  8262  	return ret, nil
  8263  }
  8264  
  8265  type ProjectsLocationsClustersSetLegacyAbacCall struct {
  8266  	s                    *Service
  8267  	name                 string
  8268  	setlegacyabacrequest *SetLegacyAbacRequest
  8269  	urlParams_           gensupport.URLParams
  8270  	ctx_                 context.Context
  8271  	header_              http.Header
  8272  }
  8273  
  8274  // SetLegacyAbac: Enables or disables the ABAC authorization mechanism on a
  8275  // cluster.
  8276  //
  8277  //   - name: The name (project, location, cluster name) of the cluster to set
  8278  //     legacy abac. Specified in the format `projects/*/locations/*/clusters/*`.
  8279  func (r *ProjectsLocationsClustersService) SetLegacyAbac(name string, setlegacyabacrequest *SetLegacyAbacRequest) *ProjectsLocationsClustersSetLegacyAbacCall {
  8280  	c := &ProjectsLocationsClustersSetLegacyAbacCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  8281  	c.name = name
  8282  	c.setlegacyabacrequest = setlegacyabacrequest
  8283  	return c
  8284  }
  8285  
  8286  // Fields allows partial responses to be retrieved. See
  8287  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  8288  // details.
  8289  func (c *ProjectsLocationsClustersSetLegacyAbacCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersSetLegacyAbacCall {
  8290  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  8291  	return c
  8292  }
  8293  
  8294  // Context sets the context to be used in this call's Do method.
  8295  func (c *ProjectsLocationsClustersSetLegacyAbacCall) Context(ctx context.Context) *ProjectsLocationsClustersSetLegacyAbacCall {
  8296  	c.ctx_ = ctx
  8297  	return c
  8298  }
  8299  
  8300  // Header returns a http.Header that can be modified by the caller to add
  8301  // headers to the request.
  8302  func (c *ProjectsLocationsClustersSetLegacyAbacCall) Header() http.Header {
  8303  	if c.header_ == nil {
  8304  		c.header_ = make(http.Header)
  8305  	}
  8306  	return c.header_
  8307  }
  8308  
  8309  func (c *ProjectsLocationsClustersSetLegacyAbacCall) doRequest(alt string) (*http.Response, error) {
  8310  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  8311  	var body io.Reader = nil
  8312  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setlegacyabacrequest)
  8313  	if err != nil {
  8314  		return nil, err
  8315  	}
  8316  	c.urlParams_.Set("alt", alt)
  8317  	c.urlParams_.Set("prettyPrint", "false")
  8318  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setLegacyAbac")
  8319  	urls += "?" + c.urlParams_.Encode()
  8320  	req, err := http.NewRequest("POST", urls, body)
  8321  	if err != nil {
  8322  		return nil, err
  8323  	}
  8324  	req.Header = reqHeaders
  8325  	googleapi.Expand(req.URL, map[string]string{
  8326  		"name": c.name,
  8327  	})
  8328  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  8329  }
  8330  
  8331  // Do executes the "container.projects.locations.clusters.setLegacyAbac" call.
  8332  // Any non-2xx status code is an error. Response headers are in either
  8333  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  8334  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  8335  // whether the returned error was because http.StatusNotModified was returned.
  8336  func (c *ProjectsLocationsClustersSetLegacyAbacCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  8337  	gensupport.SetOptions(c.urlParams_, opts...)
  8338  	res, err := c.doRequest("json")
  8339  	if res != nil && res.StatusCode == http.StatusNotModified {
  8340  		if res.Body != nil {
  8341  			res.Body.Close()
  8342  		}
  8343  		return nil, gensupport.WrapError(&googleapi.Error{
  8344  			Code:   res.StatusCode,
  8345  			Header: res.Header,
  8346  		})
  8347  	}
  8348  	if err != nil {
  8349  		return nil, err
  8350  	}
  8351  	defer googleapi.CloseBody(res)
  8352  	if err := googleapi.CheckResponse(res); err != nil {
  8353  		return nil, gensupport.WrapError(err)
  8354  	}
  8355  	ret := &Operation{
  8356  		ServerResponse: googleapi.ServerResponse{
  8357  			Header:         res.Header,
  8358  			HTTPStatusCode: res.StatusCode,
  8359  		},
  8360  	}
  8361  	target := &ret
  8362  	if err := gensupport.DecodeResponse(target, res); err != nil {
  8363  		return nil, err
  8364  	}
  8365  	return ret, nil
  8366  }
  8367  
  8368  type ProjectsLocationsClustersSetLocationsCall struct {
  8369  	s                   *Service
  8370  	name                string
  8371  	setlocationsrequest *SetLocationsRequest
  8372  	urlParams_          gensupport.URLParams
  8373  	ctx_                context.Context
  8374  	header_             http.Header
  8375  }
  8376  
  8377  // SetLocations: Sets the locations for a specific cluster. Deprecated. Use
  8378  // projects.locations.clusters.update
  8379  // (https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/update)
  8380  // instead.
  8381  //
  8382  //   - name: The name (project, location, cluster) of the cluster to set
  8383  //     locations. Specified in the format `projects/*/locations/*/clusters/*`.
  8384  func (r *ProjectsLocationsClustersService) SetLocations(name string, setlocationsrequest *SetLocationsRequest) *ProjectsLocationsClustersSetLocationsCall {
  8385  	c := &ProjectsLocationsClustersSetLocationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  8386  	c.name = name
  8387  	c.setlocationsrequest = setlocationsrequest
  8388  	return c
  8389  }
  8390  
  8391  // Fields allows partial responses to be retrieved. See
  8392  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  8393  // details.
  8394  func (c *ProjectsLocationsClustersSetLocationsCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersSetLocationsCall {
  8395  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  8396  	return c
  8397  }
  8398  
  8399  // Context sets the context to be used in this call's Do method.
  8400  func (c *ProjectsLocationsClustersSetLocationsCall) Context(ctx context.Context) *ProjectsLocationsClustersSetLocationsCall {
  8401  	c.ctx_ = ctx
  8402  	return c
  8403  }
  8404  
  8405  // Header returns a http.Header that can be modified by the caller to add
  8406  // headers to the request.
  8407  func (c *ProjectsLocationsClustersSetLocationsCall) Header() http.Header {
  8408  	if c.header_ == nil {
  8409  		c.header_ = make(http.Header)
  8410  	}
  8411  	return c.header_
  8412  }
  8413  
  8414  func (c *ProjectsLocationsClustersSetLocationsCall) doRequest(alt string) (*http.Response, error) {
  8415  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  8416  	var body io.Reader = nil
  8417  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setlocationsrequest)
  8418  	if err != nil {
  8419  		return nil, err
  8420  	}
  8421  	c.urlParams_.Set("alt", alt)
  8422  	c.urlParams_.Set("prettyPrint", "false")
  8423  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setLocations")
  8424  	urls += "?" + c.urlParams_.Encode()
  8425  	req, err := http.NewRequest("POST", urls, body)
  8426  	if err != nil {
  8427  		return nil, err
  8428  	}
  8429  	req.Header = reqHeaders
  8430  	googleapi.Expand(req.URL, map[string]string{
  8431  		"name": c.name,
  8432  	})
  8433  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  8434  }
  8435  
  8436  // Do executes the "container.projects.locations.clusters.setLocations" call.
  8437  // Any non-2xx status code is an error. Response headers are in either
  8438  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  8439  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  8440  // whether the returned error was because http.StatusNotModified was returned.
  8441  func (c *ProjectsLocationsClustersSetLocationsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  8442  	gensupport.SetOptions(c.urlParams_, opts...)
  8443  	res, err := c.doRequest("json")
  8444  	if res != nil && res.StatusCode == http.StatusNotModified {
  8445  		if res.Body != nil {
  8446  			res.Body.Close()
  8447  		}
  8448  		return nil, gensupport.WrapError(&googleapi.Error{
  8449  			Code:   res.StatusCode,
  8450  			Header: res.Header,
  8451  		})
  8452  	}
  8453  	if err != nil {
  8454  		return nil, err
  8455  	}
  8456  	defer googleapi.CloseBody(res)
  8457  	if err := googleapi.CheckResponse(res); err != nil {
  8458  		return nil, gensupport.WrapError(err)
  8459  	}
  8460  	ret := &Operation{
  8461  		ServerResponse: googleapi.ServerResponse{
  8462  			Header:         res.Header,
  8463  			HTTPStatusCode: res.StatusCode,
  8464  		},
  8465  	}
  8466  	target := &ret
  8467  	if err := gensupport.DecodeResponse(target, res); err != nil {
  8468  		return nil, err
  8469  	}
  8470  	return ret, nil
  8471  }
  8472  
  8473  type ProjectsLocationsClustersSetLoggingCall struct {
  8474  	s                        *Service
  8475  	name                     string
  8476  	setloggingservicerequest *SetLoggingServiceRequest
  8477  	urlParams_               gensupport.URLParams
  8478  	ctx_                     context.Context
  8479  	header_                  http.Header
  8480  }
  8481  
  8482  // SetLogging: Sets the logging service for a specific cluster.
  8483  //
  8484  //   - name: The name (project, location, cluster) of the cluster to set logging.
  8485  //     Specified in the format `projects/*/locations/*/clusters/*`.
  8486  func (r *ProjectsLocationsClustersService) SetLogging(name string, setloggingservicerequest *SetLoggingServiceRequest) *ProjectsLocationsClustersSetLoggingCall {
  8487  	c := &ProjectsLocationsClustersSetLoggingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  8488  	c.name = name
  8489  	c.setloggingservicerequest = setloggingservicerequest
  8490  	return c
  8491  }
  8492  
  8493  // Fields allows partial responses to be retrieved. See
  8494  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  8495  // details.
  8496  func (c *ProjectsLocationsClustersSetLoggingCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersSetLoggingCall {
  8497  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  8498  	return c
  8499  }
  8500  
  8501  // Context sets the context to be used in this call's Do method.
  8502  func (c *ProjectsLocationsClustersSetLoggingCall) Context(ctx context.Context) *ProjectsLocationsClustersSetLoggingCall {
  8503  	c.ctx_ = ctx
  8504  	return c
  8505  }
  8506  
  8507  // Header returns a http.Header that can be modified by the caller to add
  8508  // headers to the request.
  8509  func (c *ProjectsLocationsClustersSetLoggingCall) Header() http.Header {
  8510  	if c.header_ == nil {
  8511  		c.header_ = make(http.Header)
  8512  	}
  8513  	return c.header_
  8514  }
  8515  
  8516  func (c *ProjectsLocationsClustersSetLoggingCall) doRequest(alt string) (*http.Response, error) {
  8517  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  8518  	var body io.Reader = nil
  8519  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setloggingservicerequest)
  8520  	if err != nil {
  8521  		return nil, err
  8522  	}
  8523  	c.urlParams_.Set("alt", alt)
  8524  	c.urlParams_.Set("prettyPrint", "false")
  8525  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setLogging")
  8526  	urls += "?" + c.urlParams_.Encode()
  8527  	req, err := http.NewRequest("POST", urls, body)
  8528  	if err != nil {
  8529  		return nil, err
  8530  	}
  8531  	req.Header = reqHeaders
  8532  	googleapi.Expand(req.URL, map[string]string{
  8533  		"name": c.name,
  8534  	})
  8535  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  8536  }
  8537  
  8538  // Do executes the "container.projects.locations.clusters.setLogging" call.
  8539  // Any non-2xx status code is an error. Response headers are in either
  8540  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  8541  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  8542  // whether the returned error was because http.StatusNotModified was returned.
  8543  func (c *ProjectsLocationsClustersSetLoggingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  8544  	gensupport.SetOptions(c.urlParams_, opts...)
  8545  	res, err := c.doRequest("json")
  8546  	if res != nil && res.StatusCode == http.StatusNotModified {
  8547  		if res.Body != nil {
  8548  			res.Body.Close()
  8549  		}
  8550  		return nil, gensupport.WrapError(&googleapi.Error{
  8551  			Code:   res.StatusCode,
  8552  			Header: res.Header,
  8553  		})
  8554  	}
  8555  	if err != nil {
  8556  		return nil, err
  8557  	}
  8558  	defer googleapi.CloseBody(res)
  8559  	if err := googleapi.CheckResponse(res); err != nil {
  8560  		return nil, gensupport.WrapError(err)
  8561  	}
  8562  	ret := &Operation{
  8563  		ServerResponse: googleapi.ServerResponse{
  8564  			Header:         res.Header,
  8565  			HTTPStatusCode: res.StatusCode,
  8566  		},
  8567  	}
  8568  	target := &ret
  8569  	if err := gensupport.DecodeResponse(target, res); err != nil {
  8570  		return nil, err
  8571  	}
  8572  	return ret, nil
  8573  }
  8574  
  8575  type ProjectsLocationsClustersSetMaintenancePolicyCall struct {
  8576  	s                           *Service
  8577  	name                        string
  8578  	setmaintenancepolicyrequest *SetMaintenancePolicyRequest
  8579  	urlParams_                  gensupport.URLParams
  8580  	ctx_                        context.Context
  8581  	header_                     http.Header
  8582  }
  8583  
  8584  // SetMaintenancePolicy: Sets the maintenance policy for a cluster.
  8585  //
  8586  //   - name: The name (project, location, cluster name) of the cluster to set
  8587  //     maintenance policy. Specified in the format
  8588  //     `projects/*/locations/*/clusters/*`.
  8589  func (r *ProjectsLocationsClustersService) SetMaintenancePolicy(name string, setmaintenancepolicyrequest *SetMaintenancePolicyRequest) *ProjectsLocationsClustersSetMaintenancePolicyCall {
  8590  	c := &ProjectsLocationsClustersSetMaintenancePolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  8591  	c.name = name
  8592  	c.setmaintenancepolicyrequest = setmaintenancepolicyrequest
  8593  	return c
  8594  }
  8595  
  8596  // Fields allows partial responses to be retrieved. See
  8597  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  8598  // details.
  8599  func (c *ProjectsLocationsClustersSetMaintenancePolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersSetMaintenancePolicyCall {
  8600  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  8601  	return c
  8602  }
  8603  
  8604  // Context sets the context to be used in this call's Do method.
  8605  func (c *ProjectsLocationsClustersSetMaintenancePolicyCall) Context(ctx context.Context) *ProjectsLocationsClustersSetMaintenancePolicyCall {
  8606  	c.ctx_ = ctx
  8607  	return c
  8608  }
  8609  
  8610  // Header returns a http.Header that can be modified by the caller to add
  8611  // headers to the request.
  8612  func (c *ProjectsLocationsClustersSetMaintenancePolicyCall) Header() http.Header {
  8613  	if c.header_ == nil {
  8614  		c.header_ = make(http.Header)
  8615  	}
  8616  	return c.header_
  8617  }
  8618  
  8619  func (c *ProjectsLocationsClustersSetMaintenancePolicyCall) doRequest(alt string) (*http.Response, error) {
  8620  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  8621  	var body io.Reader = nil
  8622  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setmaintenancepolicyrequest)
  8623  	if err != nil {
  8624  		return nil, err
  8625  	}
  8626  	c.urlParams_.Set("alt", alt)
  8627  	c.urlParams_.Set("prettyPrint", "false")
  8628  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setMaintenancePolicy")
  8629  	urls += "?" + c.urlParams_.Encode()
  8630  	req, err := http.NewRequest("POST", urls, body)
  8631  	if err != nil {
  8632  		return nil, err
  8633  	}
  8634  	req.Header = reqHeaders
  8635  	googleapi.Expand(req.URL, map[string]string{
  8636  		"name": c.name,
  8637  	})
  8638  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  8639  }
  8640  
  8641  // Do executes the "container.projects.locations.clusters.setMaintenancePolicy" call.
  8642  // Any non-2xx status code is an error. Response headers are in either
  8643  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  8644  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  8645  // whether the returned error was because http.StatusNotModified was returned.
  8646  func (c *ProjectsLocationsClustersSetMaintenancePolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  8647  	gensupport.SetOptions(c.urlParams_, opts...)
  8648  	res, err := c.doRequest("json")
  8649  	if res != nil && res.StatusCode == http.StatusNotModified {
  8650  		if res.Body != nil {
  8651  			res.Body.Close()
  8652  		}
  8653  		return nil, gensupport.WrapError(&googleapi.Error{
  8654  			Code:   res.StatusCode,
  8655  			Header: res.Header,
  8656  		})
  8657  	}
  8658  	if err != nil {
  8659  		return nil, err
  8660  	}
  8661  	defer googleapi.CloseBody(res)
  8662  	if err := googleapi.CheckResponse(res); err != nil {
  8663  		return nil, gensupport.WrapError(err)
  8664  	}
  8665  	ret := &Operation{
  8666  		ServerResponse: googleapi.ServerResponse{
  8667  			Header:         res.Header,
  8668  			HTTPStatusCode: res.StatusCode,
  8669  		},
  8670  	}
  8671  	target := &ret
  8672  	if err := gensupport.DecodeResponse(target, res); err != nil {
  8673  		return nil, err
  8674  	}
  8675  	return ret, nil
  8676  }
  8677  
  8678  type ProjectsLocationsClustersSetMasterAuthCall struct {
  8679  	s                    *Service
  8680  	name                 string
  8681  	setmasterauthrequest *SetMasterAuthRequest
  8682  	urlParams_           gensupport.URLParams
  8683  	ctx_                 context.Context
  8684  	header_              http.Header
  8685  }
  8686  
  8687  // SetMasterAuth: Sets master auth materials. Currently supports changing the
  8688  // admin password or a specific cluster, either via password generation or
  8689  // explicitly setting the password.
  8690  //
  8691  //   - name: The name (project, location, cluster) of the cluster to set auth.
  8692  //     Specified in the format `projects/*/locations/*/clusters/*`.
  8693  func (r *ProjectsLocationsClustersService) SetMasterAuth(name string, setmasterauthrequest *SetMasterAuthRequest) *ProjectsLocationsClustersSetMasterAuthCall {
  8694  	c := &ProjectsLocationsClustersSetMasterAuthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  8695  	c.name = name
  8696  	c.setmasterauthrequest = setmasterauthrequest
  8697  	return c
  8698  }
  8699  
  8700  // Fields allows partial responses to be retrieved. See
  8701  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  8702  // details.
  8703  func (c *ProjectsLocationsClustersSetMasterAuthCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersSetMasterAuthCall {
  8704  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  8705  	return c
  8706  }
  8707  
  8708  // Context sets the context to be used in this call's Do method.
  8709  func (c *ProjectsLocationsClustersSetMasterAuthCall) Context(ctx context.Context) *ProjectsLocationsClustersSetMasterAuthCall {
  8710  	c.ctx_ = ctx
  8711  	return c
  8712  }
  8713  
  8714  // Header returns a http.Header that can be modified by the caller to add
  8715  // headers to the request.
  8716  func (c *ProjectsLocationsClustersSetMasterAuthCall) Header() http.Header {
  8717  	if c.header_ == nil {
  8718  		c.header_ = make(http.Header)
  8719  	}
  8720  	return c.header_
  8721  }
  8722  
  8723  func (c *ProjectsLocationsClustersSetMasterAuthCall) doRequest(alt string) (*http.Response, error) {
  8724  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  8725  	var body io.Reader = nil
  8726  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setmasterauthrequest)
  8727  	if err != nil {
  8728  		return nil, err
  8729  	}
  8730  	c.urlParams_.Set("alt", alt)
  8731  	c.urlParams_.Set("prettyPrint", "false")
  8732  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setMasterAuth")
  8733  	urls += "?" + c.urlParams_.Encode()
  8734  	req, err := http.NewRequest("POST", urls, body)
  8735  	if err != nil {
  8736  		return nil, err
  8737  	}
  8738  	req.Header = reqHeaders
  8739  	googleapi.Expand(req.URL, map[string]string{
  8740  		"name": c.name,
  8741  	})
  8742  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  8743  }
  8744  
  8745  // Do executes the "container.projects.locations.clusters.setMasterAuth" call.
  8746  // Any non-2xx status code is an error. Response headers are in either
  8747  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  8748  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  8749  // whether the returned error was because http.StatusNotModified was returned.
  8750  func (c *ProjectsLocationsClustersSetMasterAuthCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  8751  	gensupport.SetOptions(c.urlParams_, opts...)
  8752  	res, err := c.doRequest("json")
  8753  	if res != nil && res.StatusCode == http.StatusNotModified {
  8754  		if res.Body != nil {
  8755  			res.Body.Close()
  8756  		}
  8757  		return nil, gensupport.WrapError(&googleapi.Error{
  8758  			Code:   res.StatusCode,
  8759  			Header: res.Header,
  8760  		})
  8761  	}
  8762  	if err != nil {
  8763  		return nil, err
  8764  	}
  8765  	defer googleapi.CloseBody(res)
  8766  	if err := googleapi.CheckResponse(res); err != nil {
  8767  		return nil, gensupport.WrapError(err)
  8768  	}
  8769  	ret := &Operation{
  8770  		ServerResponse: googleapi.ServerResponse{
  8771  			Header:         res.Header,
  8772  			HTTPStatusCode: res.StatusCode,
  8773  		},
  8774  	}
  8775  	target := &ret
  8776  	if err := gensupport.DecodeResponse(target, res); err != nil {
  8777  		return nil, err
  8778  	}
  8779  	return ret, nil
  8780  }
  8781  
  8782  type ProjectsLocationsClustersSetMonitoringCall struct {
  8783  	s                           *Service
  8784  	name                        string
  8785  	setmonitoringservicerequest *SetMonitoringServiceRequest
  8786  	urlParams_                  gensupport.URLParams
  8787  	ctx_                        context.Context
  8788  	header_                     http.Header
  8789  }
  8790  
  8791  // SetMonitoring: Sets the monitoring service for a specific cluster.
  8792  //
  8793  //   - name: The name (project, location, cluster) of the cluster to set
  8794  //     monitoring. Specified in the format `projects/*/locations/*/clusters/*`.
  8795  func (r *ProjectsLocationsClustersService) SetMonitoring(name string, setmonitoringservicerequest *SetMonitoringServiceRequest) *ProjectsLocationsClustersSetMonitoringCall {
  8796  	c := &ProjectsLocationsClustersSetMonitoringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  8797  	c.name = name
  8798  	c.setmonitoringservicerequest = setmonitoringservicerequest
  8799  	return c
  8800  }
  8801  
  8802  // Fields allows partial responses to be retrieved. See
  8803  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  8804  // details.
  8805  func (c *ProjectsLocationsClustersSetMonitoringCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersSetMonitoringCall {
  8806  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  8807  	return c
  8808  }
  8809  
  8810  // Context sets the context to be used in this call's Do method.
  8811  func (c *ProjectsLocationsClustersSetMonitoringCall) Context(ctx context.Context) *ProjectsLocationsClustersSetMonitoringCall {
  8812  	c.ctx_ = ctx
  8813  	return c
  8814  }
  8815  
  8816  // Header returns a http.Header that can be modified by the caller to add
  8817  // headers to the request.
  8818  func (c *ProjectsLocationsClustersSetMonitoringCall) Header() http.Header {
  8819  	if c.header_ == nil {
  8820  		c.header_ = make(http.Header)
  8821  	}
  8822  	return c.header_
  8823  }
  8824  
  8825  func (c *ProjectsLocationsClustersSetMonitoringCall) doRequest(alt string) (*http.Response, error) {
  8826  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  8827  	var body io.Reader = nil
  8828  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setmonitoringservicerequest)
  8829  	if err != nil {
  8830  		return nil, err
  8831  	}
  8832  	c.urlParams_.Set("alt", alt)
  8833  	c.urlParams_.Set("prettyPrint", "false")
  8834  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setMonitoring")
  8835  	urls += "?" + c.urlParams_.Encode()
  8836  	req, err := http.NewRequest("POST", urls, body)
  8837  	if err != nil {
  8838  		return nil, err
  8839  	}
  8840  	req.Header = reqHeaders
  8841  	googleapi.Expand(req.URL, map[string]string{
  8842  		"name": c.name,
  8843  	})
  8844  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  8845  }
  8846  
  8847  // Do executes the "container.projects.locations.clusters.setMonitoring" call.
  8848  // Any non-2xx status code is an error. Response headers are in either
  8849  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  8850  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  8851  // whether the returned error was because http.StatusNotModified was returned.
  8852  func (c *ProjectsLocationsClustersSetMonitoringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  8853  	gensupport.SetOptions(c.urlParams_, opts...)
  8854  	res, err := c.doRequest("json")
  8855  	if res != nil && res.StatusCode == http.StatusNotModified {
  8856  		if res.Body != nil {
  8857  			res.Body.Close()
  8858  		}
  8859  		return nil, gensupport.WrapError(&googleapi.Error{
  8860  			Code:   res.StatusCode,
  8861  			Header: res.Header,
  8862  		})
  8863  	}
  8864  	if err != nil {
  8865  		return nil, err
  8866  	}
  8867  	defer googleapi.CloseBody(res)
  8868  	if err := googleapi.CheckResponse(res); err != nil {
  8869  		return nil, gensupport.WrapError(err)
  8870  	}
  8871  	ret := &Operation{
  8872  		ServerResponse: googleapi.ServerResponse{
  8873  			Header:         res.Header,
  8874  			HTTPStatusCode: res.StatusCode,
  8875  		},
  8876  	}
  8877  	target := &ret
  8878  	if err := gensupport.DecodeResponse(target, res); err != nil {
  8879  		return nil, err
  8880  	}
  8881  	return ret, nil
  8882  }
  8883  
  8884  type ProjectsLocationsClustersSetNetworkPolicyCall struct {
  8885  	s                       *Service
  8886  	name                    string
  8887  	setnetworkpolicyrequest *SetNetworkPolicyRequest
  8888  	urlParams_              gensupport.URLParams
  8889  	ctx_                    context.Context
  8890  	header_                 http.Header
  8891  }
  8892  
  8893  // SetNetworkPolicy: Enables or disables Network Policy for a cluster.
  8894  //
  8895  //   - name: The name (project, location, cluster name) of the cluster to set
  8896  //     networking policy. Specified in the format
  8897  //     `projects/*/locations/*/clusters/*`.
  8898  func (r *ProjectsLocationsClustersService) SetNetworkPolicy(name string, setnetworkpolicyrequest *SetNetworkPolicyRequest) *ProjectsLocationsClustersSetNetworkPolicyCall {
  8899  	c := &ProjectsLocationsClustersSetNetworkPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  8900  	c.name = name
  8901  	c.setnetworkpolicyrequest = setnetworkpolicyrequest
  8902  	return c
  8903  }
  8904  
  8905  // Fields allows partial responses to be retrieved. See
  8906  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  8907  // details.
  8908  func (c *ProjectsLocationsClustersSetNetworkPolicyCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersSetNetworkPolicyCall {
  8909  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  8910  	return c
  8911  }
  8912  
  8913  // Context sets the context to be used in this call's Do method.
  8914  func (c *ProjectsLocationsClustersSetNetworkPolicyCall) Context(ctx context.Context) *ProjectsLocationsClustersSetNetworkPolicyCall {
  8915  	c.ctx_ = ctx
  8916  	return c
  8917  }
  8918  
  8919  // Header returns a http.Header that can be modified by the caller to add
  8920  // headers to the request.
  8921  func (c *ProjectsLocationsClustersSetNetworkPolicyCall) Header() http.Header {
  8922  	if c.header_ == nil {
  8923  		c.header_ = make(http.Header)
  8924  	}
  8925  	return c.header_
  8926  }
  8927  
  8928  func (c *ProjectsLocationsClustersSetNetworkPolicyCall) doRequest(alt string) (*http.Response, error) {
  8929  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  8930  	var body io.Reader = nil
  8931  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setnetworkpolicyrequest)
  8932  	if err != nil {
  8933  		return nil, err
  8934  	}
  8935  	c.urlParams_.Set("alt", alt)
  8936  	c.urlParams_.Set("prettyPrint", "false")
  8937  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setNetworkPolicy")
  8938  	urls += "?" + c.urlParams_.Encode()
  8939  	req, err := http.NewRequest("POST", urls, body)
  8940  	if err != nil {
  8941  		return nil, err
  8942  	}
  8943  	req.Header = reqHeaders
  8944  	googleapi.Expand(req.URL, map[string]string{
  8945  		"name": c.name,
  8946  	})
  8947  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  8948  }
  8949  
  8950  // Do executes the "container.projects.locations.clusters.setNetworkPolicy" call.
  8951  // Any non-2xx status code is an error. Response headers are in either
  8952  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  8953  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  8954  // whether the returned error was because http.StatusNotModified was returned.
  8955  func (c *ProjectsLocationsClustersSetNetworkPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  8956  	gensupport.SetOptions(c.urlParams_, opts...)
  8957  	res, err := c.doRequest("json")
  8958  	if res != nil && res.StatusCode == http.StatusNotModified {
  8959  		if res.Body != nil {
  8960  			res.Body.Close()
  8961  		}
  8962  		return nil, gensupport.WrapError(&googleapi.Error{
  8963  			Code:   res.StatusCode,
  8964  			Header: res.Header,
  8965  		})
  8966  	}
  8967  	if err != nil {
  8968  		return nil, err
  8969  	}
  8970  	defer googleapi.CloseBody(res)
  8971  	if err := googleapi.CheckResponse(res); err != nil {
  8972  		return nil, gensupport.WrapError(err)
  8973  	}
  8974  	ret := &Operation{
  8975  		ServerResponse: googleapi.ServerResponse{
  8976  			Header:         res.Header,
  8977  			HTTPStatusCode: res.StatusCode,
  8978  		},
  8979  	}
  8980  	target := &ret
  8981  	if err := gensupport.DecodeResponse(target, res); err != nil {
  8982  		return nil, err
  8983  	}
  8984  	return ret, nil
  8985  }
  8986  
  8987  type ProjectsLocationsClustersSetResourceLabelsCall struct {
  8988  	s                *Service
  8989  	name             string
  8990  	setlabelsrequest *SetLabelsRequest
  8991  	urlParams_       gensupport.URLParams
  8992  	ctx_             context.Context
  8993  	header_          http.Header
  8994  }
  8995  
  8996  // SetResourceLabels: Sets labels on a cluster.
  8997  //
  8998  //   - name: The name (project, location, cluster name) of the cluster to set
  8999  //     labels. Specified in the format `projects/*/locations/*/clusters/*`.
  9000  func (r *ProjectsLocationsClustersService) SetResourceLabels(name string, setlabelsrequest *SetLabelsRequest) *ProjectsLocationsClustersSetResourceLabelsCall {
  9001  	c := &ProjectsLocationsClustersSetResourceLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  9002  	c.name = name
  9003  	c.setlabelsrequest = setlabelsrequest
  9004  	return c
  9005  }
  9006  
  9007  // Fields allows partial responses to be retrieved. See
  9008  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  9009  // details.
  9010  func (c *ProjectsLocationsClustersSetResourceLabelsCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersSetResourceLabelsCall {
  9011  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  9012  	return c
  9013  }
  9014  
  9015  // Context sets the context to be used in this call's Do method.
  9016  func (c *ProjectsLocationsClustersSetResourceLabelsCall) Context(ctx context.Context) *ProjectsLocationsClustersSetResourceLabelsCall {
  9017  	c.ctx_ = ctx
  9018  	return c
  9019  }
  9020  
  9021  // Header returns a http.Header that can be modified by the caller to add
  9022  // headers to the request.
  9023  func (c *ProjectsLocationsClustersSetResourceLabelsCall) Header() http.Header {
  9024  	if c.header_ == nil {
  9025  		c.header_ = make(http.Header)
  9026  	}
  9027  	return c.header_
  9028  }
  9029  
  9030  func (c *ProjectsLocationsClustersSetResourceLabelsCall) doRequest(alt string) (*http.Response, error) {
  9031  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  9032  	var body io.Reader = nil
  9033  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setlabelsrequest)
  9034  	if err != nil {
  9035  		return nil, err
  9036  	}
  9037  	c.urlParams_.Set("alt", alt)
  9038  	c.urlParams_.Set("prettyPrint", "false")
  9039  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setResourceLabels")
  9040  	urls += "?" + c.urlParams_.Encode()
  9041  	req, err := http.NewRequest("POST", urls, body)
  9042  	if err != nil {
  9043  		return nil, err
  9044  	}
  9045  	req.Header = reqHeaders
  9046  	googleapi.Expand(req.URL, map[string]string{
  9047  		"name": c.name,
  9048  	})
  9049  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  9050  }
  9051  
  9052  // Do executes the "container.projects.locations.clusters.setResourceLabels" call.
  9053  // Any non-2xx status code is an error. Response headers are in either
  9054  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  9055  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  9056  // whether the returned error was because http.StatusNotModified was returned.
  9057  func (c *ProjectsLocationsClustersSetResourceLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  9058  	gensupport.SetOptions(c.urlParams_, opts...)
  9059  	res, err := c.doRequest("json")
  9060  	if res != nil && res.StatusCode == http.StatusNotModified {
  9061  		if res.Body != nil {
  9062  			res.Body.Close()
  9063  		}
  9064  		return nil, gensupport.WrapError(&googleapi.Error{
  9065  			Code:   res.StatusCode,
  9066  			Header: res.Header,
  9067  		})
  9068  	}
  9069  	if err != nil {
  9070  		return nil, err
  9071  	}
  9072  	defer googleapi.CloseBody(res)
  9073  	if err := googleapi.CheckResponse(res); err != nil {
  9074  		return nil, gensupport.WrapError(err)
  9075  	}
  9076  	ret := &Operation{
  9077  		ServerResponse: googleapi.ServerResponse{
  9078  			Header:         res.Header,
  9079  			HTTPStatusCode: res.StatusCode,
  9080  		},
  9081  	}
  9082  	target := &ret
  9083  	if err := gensupport.DecodeResponse(target, res); err != nil {
  9084  		return nil, err
  9085  	}
  9086  	return ret, nil
  9087  }
  9088  
  9089  type ProjectsLocationsClustersStartIpRotationCall struct {
  9090  	s                      *Service
  9091  	name                   string
  9092  	startiprotationrequest *StartIPRotationRequest
  9093  	urlParams_             gensupport.URLParams
  9094  	ctx_                   context.Context
  9095  	header_                http.Header
  9096  }
  9097  
  9098  // StartIpRotation: Starts master IP rotation.
  9099  //
  9100  //   - name: The name (project, location, cluster name) of the cluster to start
  9101  //     IP rotation. Specified in the format `projects/*/locations/*/clusters/*`.
  9102  func (r *ProjectsLocationsClustersService) StartIpRotation(name string, startiprotationrequest *StartIPRotationRequest) *ProjectsLocationsClustersStartIpRotationCall {
  9103  	c := &ProjectsLocationsClustersStartIpRotationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  9104  	c.name = name
  9105  	c.startiprotationrequest = startiprotationrequest
  9106  	return c
  9107  }
  9108  
  9109  // Fields allows partial responses to be retrieved. See
  9110  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  9111  // details.
  9112  func (c *ProjectsLocationsClustersStartIpRotationCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersStartIpRotationCall {
  9113  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  9114  	return c
  9115  }
  9116  
  9117  // Context sets the context to be used in this call's Do method.
  9118  func (c *ProjectsLocationsClustersStartIpRotationCall) Context(ctx context.Context) *ProjectsLocationsClustersStartIpRotationCall {
  9119  	c.ctx_ = ctx
  9120  	return c
  9121  }
  9122  
  9123  // Header returns a http.Header that can be modified by the caller to add
  9124  // headers to the request.
  9125  func (c *ProjectsLocationsClustersStartIpRotationCall) Header() http.Header {
  9126  	if c.header_ == nil {
  9127  		c.header_ = make(http.Header)
  9128  	}
  9129  	return c.header_
  9130  }
  9131  
  9132  func (c *ProjectsLocationsClustersStartIpRotationCall) doRequest(alt string) (*http.Response, error) {
  9133  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  9134  	var body io.Reader = nil
  9135  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.startiprotationrequest)
  9136  	if err != nil {
  9137  		return nil, err
  9138  	}
  9139  	c.urlParams_.Set("alt", alt)
  9140  	c.urlParams_.Set("prettyPrint", "false")
  9141  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:startIpRotation")
  9142  	urls += "?" + c.urlParams_.Encode()
  9143  	req, err := http.NewRequest("POST", urls, body)
  9144  	if err != nil {
  9145  		return nil, err
  9146  	}
  9147  	req.Header = reqHeaders
  9148  	googleapi.Expand(req.URL, map[string]string{
  9149  		"name": c.name,
  9150  	})
  9151  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  9152  }
  9153  
  9154  // Do executes the "container.projects.locations.clusters.startIpRotation" call.
  9155  // Any non-2xx status code is an error. Response headers are in either
  9156  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  9157  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  9158  // whether the returned error was because http.StatusNotModified was returned.
  9159  func (c *ProjectsLocationsClustersStartIpRotationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  9160  	gensupport.SetOptions(c.urlParams_, opts...)
  9161  	res, err := c.doRequest("json")
  9162  	if res != nil && res.StatusCode == http.StatusNotModified {
  9163  		if res.Body != nil {
  9164  			res.Body.Close()
  9165  		}
  9166  		return nil, gensupport.WrapError(&googleapi.Error{
  9167  			Code:   res.StatusCode,
  9168  			Header: res.Header,
  9169  		})
  9170  	}
  9171  	if err != nil {
  9172  		return nil, err
  9173  	}
  9174  	defer googleapi.CloseBody(res)
  9175  	if err := googleapi.CheckResponse(res); err != nil {
  9176  		return nil, gensupport.WrapError(err)
  9177  	}
  9178  	ret := &Operation{
  9179  		ServerResponse: googleapi.ServerResponse{
  9180  			Header:         res.Header,
  9181  			HTTPStatusCode: res.StatusCode,
  9182  		},
  9183  	}
  9184  	target := &ret
  9185  	if err := gensupport.DecodeResponse(target, res); err != nil {
  9186  		return nil, err
  9187  	}
  9188  	return ret, nil
  9189  }
  9190  
  9191  type ProjectsLocationsClustersUpdateCall struct {
  9192  	s                    *Service
  9193  	name                 string
  9194  	updateclusterrequest *UpdateClusterRequest
  9195  	urlParams_           gensupport.URLParams
  9196  	ctx_                 context.Context
  9197  	header_              http.Header
  9198  }
  9199  
  9200  // Update: Updates the settings of a specific cluster.
  9201  //
  9202  //   - name: The name (project, location, cluster) of the cluster to update.
  9203  //     Specified in the format `projects/*/locations/*/clusters/*`.
  9204  func (r *ProjectsLocationsClustersService) Update(name string, updateclusterrequest *UpdateClusterRequest) *ProjectsLocationsClustersUpdateCall {
  9205  	c := &ProjectsLocationsClustersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  9206  	c.name = name
  9207  	c.updateclusterrequest = updateclusterrequest
  9208  	return c
  9209  }
  9210  
  9211  // Fields allows partial responses to be retrieved. See
  9212  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  9213  // details.
  9214  func (c *ProjectsLocationsClustersUpdateCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersUpdateCall {
  9215  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  9216  	return c
  9217  }
  9218  
  9219  // Context sets the context to be used in this call's Do method.
  9220  func (c *ProjectsLocationsClustersUpdateCall) Context(ctx context.Context) *ProjectsLocationsClustersUpdateCall {
  9221  	c.ctx_ = ctx
  9222  	return c
  9223  }
  9224  
  9225  // Header returns a http.Header that can be modified by the caller to add
  9226  // headers to the request.
  9227  func (c *ProjectsLocationsClustersUpdateCall) Header() http.Header {
  9228  	if c.header_ == nil {
  9229  		c.header_ = make(http.Header)
  9230  	}
  9231  	return c.header_
  9232  }
  9233  
  9234  func (c *ProjectsLocationsClustersUpdateCall) doRequest(alt string) (*http.Response, error) {
  9235  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  9236  	var body io.Reader = nil
  9237  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updateclusterrequest)
  9238  	if err != nil {
  9239  		return nil, err
  9240  	}
  9241  	c.urlParams_.Set("alt", alt)
  9242  	c.urlParams_.Set("prettyPrint", "false")
  9243  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  9244  	urls += "?" + c.urlParams_.Encode()
  9245  	req, err := http.NewRequest("PUT", urls, body)
  9246  	if err != nil {
  9247  		return nil, err
  9248  	}
  9249  	req.Header = reqHeaders
  9250  	googleapi.Expand(req.URL, map[string]string{
  9251  		"name": c.name,
  9252  	})
  9253  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  9254  }
  9255  
  9256  // Do executes the "container.projects.locations.clusters.update" call.
  9257  // Any non-2xx status code is an error. Response headers are in either
  9258  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  9259  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  9260  // whether the returned error was because http.StatusNotModified was returned.
  9261  func (c *ProjectsLocationsClustersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  9262  	gensupport.SetOptions(c.urlParams_, opts...)
  9263  	res, err := c.doRequest("json")
  9264  	if res != nil && res.StatusCode == http.StatusNotModified {
  9265  		if res.Body != nil {
  9266  			res.Body.Close()
  9267  		}
  9268  		return nil, gensupport.WrapError(&googleapi.Error{
  9269  			Code:   res.StatusCode,
  9270  			Header: res.Header,
  9271  		})
  9272  	}
  9273  	if err != nil {
  9274  		return nil, err
  9275  	}
  9276  	defer googleapi.CloseBody(res)
  9277  	if err := googleapi.CheckResponse(res); err != nil {
  9278  		return nil, gensupport.WrapError(err)
  9279  	}
  9280  	ret := &Operation{
  9281  		ServerResponse: googleapi.ServerResponse{
  9282  			Header:         res.Header,
  9283  			HTTPStatusCode: res.StatusCode,
  9284  		},
  9285  	}
  9286  	target := &ret
  9287  	if err := gensupport.DecodeResponse(target, res); err != nil {
  9288  		return nil, err
  9289  	}
  9290  	return ret, nil
  9291  }
  9292  
  9293  type ProjectsLocationsClustersUpdateMasterCall struct {
  9294  	s                   *Service
  9295  	name                string
  9296  	updatemasterrequest *UpdateMasterRequest
  9297  	urlParams_          gensupport.URLParams
  9298  	ctx_                context.Context
  9299  	header_             http.Header
  9300  }
  9301  
  9302  // UpdateMaster: Updates the master for a specific cluster.
  9303  //
  9304  //   - name: The name (project, location, cluster) of the cluster to update.
  9305  //     Specified in the format `projects/*/locations/*/clusters/*`.
  9306  func (r *ProjectsLocationsClustersService) UpdateMaster(name string, updatemasterrequest *UpdateMasterRequest) *ProjectsLocationsClustersUpdateMasterCall {
  9307  	c := &ProjectsLocationsClustersUpdateMasterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  9308  	c.name = name
  9309  	c.updatemasterrequest = updatemasterrequest
  9310  	return c
  9311  }
  9312  
  9313  // Fields allows partial responses to be retrieved. See
  9314  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  9315  // details.
  9316  func (c *ProjectsLocationsClustersUpdateMasterCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersUpdateMasterCall {
  9317  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  9318  	return c
  9319  }
  9320  
  9321  // Context sets the context to be used in this call's Do method.
  9322  func (c *ProjectsLocationsClustersUpdateMasterCall) Context(ctx context.Context) *ProjectsLocationsClustersUpdateMasterCall {
  9323  	c.ctx_ = ctx
  9324  	return c
  9325  }
  9326  
  9327  // Header returns a http.Header that can be modified by the caller to add
  9328  // headers to the request.
  9329  func (c *ProjectsLocationsClustersUpdateMasterCall) Header() http.Header {
  9330  	if c.header_ == nil {
  9331  		c.header_ = make(http.Header)
  9332  	}
  9333  	return c.header_
  9334  }
  9335  
  9336  func (c *ProjectsLocationsClustersUpdateMasterCall) doRequest(alt string) (*http.Response, error) {
  9337  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  9338  	var body io.Reader = nil
  9339  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updatemasterrequest)
  9340  	if err != nil {
  9341  		return nil, err
  9342  	}
  9343  	c.urlParams_.Set("alt", alt)
  9344  	c.urlParams_.Set("prettyPrint", "false")
  9345  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:updateMaster")
  9346  	urls += "?" + c.urlParams_.Encode()
  9347  	req, err := http.NewRequest("POST", urls, body)
  9348  	if err != nil {
  9349  		return nil, err
  9350  	}
  9351  	req.Header = reqHeaders
  9352  	googleapi.Expand(req.URL, map[string]string{
  9353  		"name": c.name,
  9354  	})
  9355  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  9356  }
  9357  
  9358  // Do executes the "container.projects.locations.clusters.updateMaster" call.
  9359  // Any non-2xx status code is an error. Response headers are in either
  9360  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  9361  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  9362  // whether the returned error was because http.StatusNotModified was returned.
  9363  func (c *ProjectsLocationsClustersUpdateMasterCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  9364  	gensupport.SetOptions(c.urlParams_, opts...)
  9365  	res, err := c.doRequest("json")
  9366  	if res != nil && res.StatusCode == http.StatusNotModified {
  9367  		if res.Body != nil {
  9368  			res.Body.Close()
  9369  		}
  9370  		return nil, gensupport.WrapError(&googleapi.Error{
  9371  			Code:   res.StatusCode,
  9372  			Header: res.Header,
  9373  		})
  9374  	}
  9375  	if err != nil {
  9376  		return nil, err
  9377  	}
  9378  	defer googleapi.CloseBody(res)
  9379  	if err := googleapi.CheckResponse(res); err != nil {
  9380  		return nil, gensupport.WrapError(err)
  9381  	}
  9382  	ret := &Operation{
  9383  		ServerResponse: googleapi.ServerResponse{
  9384  			Header:         res.Header,
  9385  			HTTPStatusCode: res.StatusCode,
  9386  		},
  9387  	}
  9388  	target := &ret
  9389  	if err := gensupport.DecodeResponse(target, res); err != nil {
  9390  		return nil, err
  9391  	}
  9392  	return ret, nil
  9393  }
  9394  
  9395  type ProjectsLocationsClustersNodePoolsCompleteUpgradeCall struct {
  9396  	s                              *Service
  9397  	name                           string
  9398  	completenodepoolupgraderequest *CompleteNodePoolUpgradeRequest
  9399  	urlParams_                     gensupport.URLParams
  9400  	ctx_                           context.Context
  9401  	header_                        http.Header
  9402  }
  9403  
  9404  // CompleteUpgrade: CompleteNodePoolUpgrade will signal an on-going node pool
  9405  // upgrade to complete.
  9406  //
  9407  //   - name: The name (project, location, cluster, node pool id) of the node pool
  9408  //     to complete upgrade. Specified in the format
  9409  //     `projects/*/locations/*/clusters/*/nodePools/*`.
  9410  func (r *ProjectsLocationsClustersNodePoolsService) CompleteUpgrade(name string, completenodepoolupgraderequest *CompleteNodePoolUpgradeRequest) *ProjectsLocationsClustersNodePoolsCompleteUpgradeCall {
  9411  	c := &ProjectsLocationsClustersNodePoolsCompleteUpgradeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  9412  	c.name = name
  9413  	c.completenodepoolupgraderequest = completenodepoolupgraderequest
  9414  	return c
  9415  }
  9416  
  9417  // Fields allows partial responses to be retrieved. See
  9418  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  9419  // details.
  9420  func (c *ProjectsLocationsClustersNodePoolsCompleteUpgradeCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersNodePoolsCompleteUpgradeCall {
  9421  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  9422  	return c
  9423  }
  9424  
  9425  // Context sets the context to be used in this call's Do method.
  9426  func (c *ProjectsLocationsClustersNodePoolsCompleteUpgradeCall) Context(ctx context.Context) *ProjectsLocationsClustersNodePoolsCompleteUpgradeCall {
  9427  	c.ctx_ = ctx
  9428  	return c
  9429  }
  9430  
  9431  // Header returns a http.Header that can be modified by the caller to add
  9432  // headers to the request.
  9433  func (c *ProjectsLocationsClustersNodePoolsCompleteUpgradeCall) Header() http.Header {
  9434  	if c.header_ == nil {
  9435  		c.header_ = make(http.Header)
  9436  	}
  9437  	return c.header_
  9438  }
  9439  
  9440  func (c *ProjectsLocationsClustersNodePoolsCompleteUpgradeCall) doRequest(alt string) (*http.Response, error) {
  9441  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  9442  	var body io.Reader = nil
  9443  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.completenodepoolupgraderequest)
  9444  	if err != nil {
  9445  		return nil, err
  9446  	}
  9447  	c.urlParams_.Set("alt", alt)
  9448  	c.urlParams_.Set("prettyPrint", "false")
  9449  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:completeUpgrade")
  9450  	urls += "?" + c.urlParams_.Encode()
  9451  	req, err := http.NewRequest("POST", urls, body)
  9452  	if err != nil {
  9453  		return nil, err
  9454  	}
  9455  	req.Header = reqHeaders
  9456  	googleapi.Expand(req.URL, map[string]string{
  9457  		"name": c.name,
  9458  	})
  9459  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  9460  }
  9461  
  9462  // Do executes the "container.projects.locations.clusters.nodePools.completeUpgrade" call.
  9463  // Any non-2xx status code is an error. Response headers are in either
  9464  // *Empty.ServerResponse.Header or (if a response was returned at all) in
  9465  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  9466  // whether the returned error was because http.StatusNotModified was returned.
  9467  func (c *ProjectsLocationsClustersNodePoolsCompleteUpgradeCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
  9468  	gensupport.SetOptions(c.urlParams_, opts...)
  9469  	res, err := c.doRequest("json")
  9470  	if res != nil && res.StatusCode == http.StatusNotModified {
  9471  		if res.Body != nil {
  9472  			res.Body.Close()
  9473  		}
  9474  		return nil, gensupport.WrapError(&googleapi.Error{
  9475  			Code:   res.StatusCode,
  9476  			Header: res.Header,
  9477  		})
  9478  	}
  9479  	if err != nil {
  9480  		return nil, err
  9481  	}
  9482  	defer googleapi.CloseBody(res)
  9483  	if err := googleapi.CheckResponse(res); err != nil {
  9484  		return nil, gensupport.WrapError(err)
  9485  	}
  9486  	ret := &Empty{
  9487  		ServerResponse: googleapi.ServerResponse{
  9488  			Header:         res.Header,
  9489  			HTTPStatusCode: res.StatusCode,
  9490  		},
  9491  	}
  9492  	target := &ret
  9493  	if err := gensupport.DecodeResponse(target, res); err != nil {
  9494  		return nil, err
  9495  	}
  9496  	return ret, nil
  9497  }
  9498  
  9499  type ProjectsLocationsClustersNodePoolsCreateCall struct {
  9500  	s                     *Service
  9501  	parent                string
  9502  	createnodepoolrequest *CreateNodePoolRequest
  9503  	urlParams_            gensupport.URLParams
  9504  	ctx_                  context.Context
  9505  	header_               http.Header
  9506  }
  9507  
  9508  // Create: Creates a node pool for a cluster.
  9509  //
  9510  //   - parent: The parent (project, location, cluster name) where the node pool
  9511  //     will be created. Specified in the format
  9512  //     `projects/*/locations/*/clusters/*`.
  9513  func (r *ProjectsLocationsClustersNodePoolsService) Create(parent string, createnodepoolrequest *CreateNodePoolRequest) *ProjectsLocationsClustersNodePoolsCreateCall {
  9514  	c := &ProjectsLocationsClustersNodePoolsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  9515  	c.parent = parent
  9516  	c.createnodepoolrequest = createnodepoolrequest
  9517  	return c
  9518  }
  9519  
  9520  // Fields allows partial responses to be retrieved. See
  9521  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  9522  // details.
  9523  func (c *ProjectsLocationsClustersNodePoolsCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersNodePoolsCreateCall {
  9524  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  9525  	return c
  9526  }
  9527  
  9528  // Context sets the context to be used in this call's Do method.
  9529  func (c *ProjectsLocationsClustersNodePoolsCreateCall) Context(ctx context.Context) *ProjectsLocationsClustersNodePoolsCreateCall {
  9530  	c.ctx_ = ctx
  9531  	return c
  9532  }
  9533  
  9534  // Header returns a http.Header that can be modified by the caller to add
  9535  // headers to the request.
  9536  func (c *ProjectsLocationsClustersNodePoolsCreateCall) Header() http.Header {
  9537  	if c.header_ == nil {
  9538  		c.header_ = make(http.Header)
  9539  	}
  9540  	return c.header_
  9541  }
  9542  
  9543  func (c *ProjectsLocationsClustersNodePoolsCreateCall) doRequest(alt string) (*http.Response, error) {
  9544  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  9545  	var body io.Reader = nil
  9546  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createnodepoolrequest)
  9547  	if err != nil {
  9548  		return nil, err
  9549  	}
  9550  	c.urlParams_.Set("alt", alt)
  9551  	c.urlParams_.Set("prettyPrint", "false")
  9552  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/nodePools")
  9553  	urls += "?" + c.urlParams_.Encode()
  9554  	req, err := http.NewRequest("POST", urls, body)
  9555  	if err != nil {
  9556  		return nil, err
  9557  	}
  9558  	req.Header = reqHeaders
  9559  	googleapi.Expand(req.URL, map[string]string{
  9560  		"parent": c.parent,
  9561  	})
  9562  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  9563  }
  9564  
  9565  // Do executes the "container.projects.locations.clusters.nodePools.create" call.
  9566  // Any non-2xx status code is an error. Response headers are in either
  9567  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  9568  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  9569  // whether the returned error was because http.StatusNotModified was returned.
  9570  func (c *ProjectsLocationsClustersNodePoolsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  9571  	gensupport.SetOptions(c.urlParams_, opts...)
  9572  	res, err := c.doRequest("json")
  9573  	if res != nil && res.StatusCode == http.StatusNotModified {
  9574  		if res.Body != nil {
  9575  			res.Body.Close()
  9576  		}
  9577  		return nil, gensupport.WrapError(&googleapi.Error{
  9578  			Code:   res.StatusCode,
  9579  			Header: res.Header,
  9580  		})
  9581  	}
  9582  	if err != nil {
  9583  		return nil, err
  9584  	}
  9585  	defer googleapi.CloseBody(res)
  9586  	if err := googleapi.CheckResponse(res); err != nil {
  9587  		return nil, gensupport.WrapError(err)
  9588  	}
  9589  	ret := &Operation{
  9590  		ServerResponse: googleapi.ServerResponse{
  9591  			Header:         res.Header,
  9592  			HTTPStatusCode: res.StatusCode,
  9593  		},
  9594  	}
  9595  	target := &ret
  9596  	if err := gensupport.DecodeResponse(target, res); err != nil {
  9597  		return nil, err
  9598  	}
  9599  	return ret, nil
  9600  }
  9601  
  9602  type ProjectsLocationsClustersNodePoolsDeleteCall struct {
  9603  	s          *Service
  9604  	name       string
  9605  	urlParams_ gensupport.URLParams
  9606  	ctx_       context.Context
  9607  	header_    http.Header
  9608  }
  9609  
  9610  // Delete: Deletes a node pool from a cluster.
  9611  //
  9612  //   - name: The name (project, location, cluster, node pool id) of the node pool
  9613  //     to delete. Specified in the format
  9614  //     `projects/*/locations/*/clusters/*/nodePools/*`.
  9615  func (r *ProjectsLocationsClustersNodePoolsService) Delete(name string) *ProjectsLocationsClustersNodePoolsDeleteCall {
  9616  	c := &ProjectsLocationsClustersNodePoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  9617  	c.name = name
  9618  	return c
  9619  }
  9620  
  9621  // ClusterId sets the optional parameter "clusterId": Deprecated. The name of
  9622  // the cluster. This field has been deprecated and replaced by the name field.
  9623  func (c *ProjectsLocationsClustersNodePoolsDeleteCall) ClusterId(clusterId string) *ProjectsLocationsClustersNodePoolsDeleteCall {
  9624  	c.urlParams_.Set("clusterId", clusterId)
  9625  	return c
  9626  }
  9627  
  9628  // NodePoolId sets the optional parameter "nodePoolId": Deprecated. The name of
  9629  // the node pool to delete. This field has been deprecated and replaced by the
  9630  // name field.
  9631  func (c *ProjectsLocationsClustersNodePoolsDeleteCall) NodePoolId(nodePoolId string) *ProjectsLocationsClustersNodePoolsDeleteCall {
  9632  	c.urlParams_.Set("nodePoolId", nodePoolId)
  9633  	return c
  9634  }
  9635  
  9636  // ProjectId sets the optional parameter "projectId": Deprecated. The Google
  9637  // Developers Console project ID or project number
  9638  // (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  9639  // This field has been deprecated and replaced by the name field.
  9640  func (c *ProjectsLocationsClustersNodePoolsDeleteCall) ProjectId(projectId string) *ProjectsLocationsClustersNodePoolsDeleteCall {
  9641  	c.urlParams_.Set("projectId", projectId)
  9642  	return c
  9643  }
  9644  
  9645  // Zone sets the optional parameter "zone": Deprecated. The name of the Google
  9646  // Compute Engine zone (https://cloud.google.com/compute/docs/zones#available)
  9647  // in which the cluster resides. This field has been deprecated and replaced by
  9648  // the name field.
  9649  func (c *ProjectsLocationsClustersNodePoolsDeleteCall) Zone(zone string) *ProjectsLocationsClustersNodePoolsDeleteCall {
  9650  	c.urlParams_.Set("zone", zone)
  9651  	return c
  9652  }
  9653  
  9654  // Fields allows partial responses to be retrieved. See
  9655  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  9656  // details.
  9657  func (c *ProjectsLocationsClustersNodePoolsDeleteCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersNodePoolsDeleteCall {
  9658  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  9659  	return c
  9660  }
  9661  
  9662  // Context sets the context to be used in this call's Do method.
  9663  func (c *ProjectsLocationsClustersNodePoolsDeleteCall) Context(ctx context.Context) *ProjectsLocationsClustersNodePoolsDeleteCall {
  9664  	c.ctx_ = ctx
  9665  	return c
  9666  }
  9667  
  9668  // Header returns a http.Header that can be modified by the caller to add
  9669  // headers to the request.
  9670  func (c *ProjectsLocationsClustersNodePoolsDeleteCall) Header() http.Header {
  9671  	if c.header_ == nil {
  9672  		c.header_ = make(http.Header)
  9673  	}
  9674  	return c.header_
  9675  }
  9676  
  9677  func (c *ProjectsLocationsClustersNodePoolsDeleteCall) doRequest(alt string) (*http.Response, error) {
  9678  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  9679  	var body io.Reader = nil
  9680  	c.urlParams_.Set("alt", alt)
  9681  	c.urlParams_.Set("prettyPrint", "false")
  9682  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  9683  	urls += "?" + c.urlParams_.Encode()
  9684  	req, err := http.NewRequest("DELETE", urls, body)
  9685  	if err != nil {
  9686  		return nil, err
  9687  	}
  9688  	req.Header = reqHeaders
  9689  	googleapi.Expand(req.URL, map[string]string{
  9690  		"name": c.name,
  9691  	})
  9692  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  9693  }
  9694  
  9695  // Do executes the "container.projects.locations.clusters.nodePools.delete" call.
  9696  // Any non-2xx status code is an error. Response headers are in either
  9697  // *Operation.ServerResponse.Header or (if a response was returned at all) in
  9698  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  9699  // whether the returned error was because http.StatusNotModified was returned.
  9700  func (c *ProjectsLocationsClustersNodePoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
  9701  	gensupport.SetOptions(c.urlParams_, opts...)
  9702  	res, err := c.doRequest("json")
  9703  	if res != nil && res.StatusCode == http.StatusNotModified {
  9704  		if res.Body != nil {
  9705  			res.Body.Close()
  9706  		}
  9707  		return nil, gensupport.WrapError(&googleapi.Error{
  9708  			Code:   res.StatusCode,
  9709  			Header: res.Header,
  9710  		})
  9711  	}
  9712  	if err != nil {
  9713  		return nil, err
  9714  	}
  9715  	defer googleapi.CloseBody(res)
  9716  	if err := googleapi.CheckResponse(res); err != nil {
  9717  		return nil, gensupport.WrapError(err)
  9718  	}
  9719  	ret := &Operation{
  9720  		ServerResponse: googleapi.ServerResponse{
  9721  			Header:         res.Header,
  9722  			HTTPStatusCode: res.StatusCode,
  9723  		},
  9724  	}
  9725  	target := &ret
  9726  	if err := gensupport.DecodeResponse(target, res); err != nil {
  9727  		return nil, err
  9728  	}
  9729  	return ret, nil
  9730  }
  9731  
  9732  type ProjectsLocationsClustersNodePoolsGetCall struct {
  9733  	s            *Service
  9734  	name         string
  9735  	urlParams_   gensupport.URLParams
  9736  	ifNoneMatch_ string
  9737  	ctx_         context.Context
  9738  	header_      http.Header
  9739  }
  9740  
  9741  // Get: Retrieves the requested node pool.
  9742  //
  9743  //   - name: The name (project, location, cluster, node pool id) of the node pool
  9744  //     to get. Specified in the format
  9745  //     `projects/*/locations/*/clusters/*/nodePools/*`.
  9746  func (r *ProjectsLocationsClustersNodePoolsService) Get(name string) *ProjectsLocationsClustersNodePoolsGetCall {
  9747  	c := &ProjectsLocationsClustersNodePoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  9748  	c.name = name
  9749  	return c
  9750  }
  9751  
  9752  // ClusterId sets the optional parameter "clusterId": Deprecated. The name of
  9753  // the cluster. This field has been deprecated and replaced by the name field.
  9754  func (c *ProjectsLocationsClustersNodePoolsGetCall) ClusterId(clusterId string) *ProjectsLocationsClustersNodePoolsGetCall {
  9755  	c.urlParams_.Set("clusterId", clusterId)
  9756  	return c
  9757  }
  9758  
  9759  // NodePoolId sets the optional parameter "nodePoolId": Deprecated. The name of
  9760  // the node pool. This field has been deprecated and replaced by the name
  9761  // field.
  9762  func (c *ProjectsLocationsClustersNodePoolsGetCall) NodePoolId(nodePoolId string) *ProjectsLocationsClustersNodePoolsGetCall {
  9763  	c.urlParams_.Set("nodePoolId", nodePoolId)
  9764  	return c
  9765  }
  9766  
  9767  // ProjectId sets the optional parameter "projectId": Deprecated. The Google
  9768  // Developers Console project ID or project number
  9769  // (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  9770  // This field has been deprecated and replaced by the name field.
  9771  func (c *ProjectsLocationsClustersNodePoolsGetCall) ProjectId(projectId string) *ProjectsLocationsClustersNodePoolsGetCall {
  9772  	c.urlParams_.Set("projectId", projectId)
  9773  	return c
  9774  }
  9775  
  9776  // Zone sets the optional parameter "zone": Deprecated. The name of the Google
  9777  // Compute Engine zone (https://cloud.google.com/compute/docs/zones#available)
  9778  // in which the cluster resides. This field has been deprecated and replaced by
  9779  // the name field.
  9780  func (c *ProjectsLocationsClustersNodePoolsGetCall) Zone(zone string) *ProjectsLocationsClustersNodePoolsGetCall {
  9781  	c.urlParams_.Set("zone", zone)
  9782  	return c
  9783  }
  9784  
  9785  // Fields allows partial responses to be retrieved. See
  9786  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  9787  // details.
  9788  func (c *ProjectsLocationsClustersNodePoolsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersNodePoolsGetCall {
  9789  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  9790  	return c
  9791  }
  9792  
  9793  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  9794  // object's ETag matches the given value. This is useful for getting updates
  9795  // only after the object has changed since the last request.
  9796  func (c *ProjectsLocationsClustersNodePoolsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsClustersNodePoolsGetCall {
  9797  	c.ifNoneMatch_ = entityTag
  9798  	return c
  9799  }
  9800  
  9801  // Context sets the context to be used in this call's Do method.
  9802  func (c *ProjectsLocationsClustersNodePoolsGetCall) Context(ctx context.Context) *ProjectsLocationsClustersNodePoolsGetCall {
  9803  	c.ctx_ = ctx
  9804  	return c
  9805  }
  9806  
  9807  // Header returns a http.Header that can be modified by the caller to add
  9808  // headers to the request.
  9809  func (c *ProjectsLocationsClustersNodePoolsGetCall) Header() http.Header {
  9810  	if c.header_ == nil {
  9811  		c.header_ = make(http.Header)
  9812  	}
  9813  	return c.header_
  9814  }
  9815  
  9816  func (c *ProjectsLocationsClustersNodePoolsGetCall) doRequest(alt string) (*http.Response, error) {
  9817  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  9818  	if c.ifNoneMatch_ != "" {
  9819  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  9820  	}
  9821  	var body io.Reader = nil
  9822  	c.urlParams_.Set("alt", alt)
  9823  	c.urlParams_.Set("prettyPrint", "false")
  9824  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  9825  	urls += "?" + c.urlParams_.Encode()
  9826  	req, err := http.NewRequest("GET", urls, body)
  9827  	if err != nil {
  9828  		return nil, err
  9829  	}
  9830  	req.Header = reqHeaders
  9831  	googleapi.Expand(req.URL, map[string]string{
  9832  		"name": c.name,
  9833  	})
  9834  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  9835  }
  9836  
  9837  // Do executes the "container.projects.locations.clusters.nodePools.get" call.
  9838  // Any non-2xx status code is an error. Response headers are in either
  9839  // *NodePool.ServerResponse.Header or (if a response was returned at all) in
  9840  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  9841  // whether the returned error was because http.StatusNotModified was returned.
  9842  func (c *ProjectsLocationsClustersNodePoolsGetCall) Do(opts ...googleapi.CallOption) (*NodePool, error) {
  9843  	gensupport.SetOptions(c.urlParams_, opts...)
  9844  	res, err := c.doRequest("json")
  9845  	if res != nil && res.StatusCode == http.StatusNotModified {
  9846  		if res.Body != nil {
  9847  			res.Body.Close()
  9848  		}
  9849  		return nil, gensupport.WrapError(&googleapi.Error{
  9850  			Code:   res.StatusCode,
  9851  			Header: res.Header,
  9852  		})
  9853  	}
  9854  	if err != nil {
  9855  		return nil, err
  9856  	}
  9857  	defer googleapi.CloseBody(res)
  9858  	if err := googleapi.CheckResponse(res); err != nil {
  9859  		return nil, gensupport.WrapError(err)
  9860  	}
  9861  	ret := &NodePool{
  9862  		ServerResponse: googleapi.ServerResponse{
  9863  			Header:         res.Header,
  9864  			HTTPStatusCode: res.StatusCode,
  9865  		},
  9866  	}
  9867  	target := &ret
  9868  	if err := gensupport.DecodeResponse(target, res); err != nil {
  9869  		return nil, err
  9870  	}
  9871  	return ret, nil
  9872  }
  9873  
  9874  type ProjectsLocationsClustersNodePoolsListCall struct {
  9875  	s            *Service
  9876  	parent       string
  9877  	urlParams_   gensupport.URLParams
  9878  	ifNoneMatch_ string
  9879  	ctx_         context.Context
  9880  	header_      http.Header
  9881  }
  9882  
  9883  // List: Lists the node pools for a cluster.
  9884  //
  9885  //   - parent: The parent (project, location, cluster name) where the node pools
  9886  //     will be listed. Specified in the format
  9887  //     `projects/*/locations/*/clusters/*`.
  9888  func (r *ProjectsLocationsClustersNodePoolsService) List(parent string) *ProjectsLocationsClustersNodePoolsListCall {
  9889  	c := &ProjectsLocationsClustersNodePoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  9890  	c.parent = parent
  9891  	return c
  9892  }
  9893  
  9894  // ClusterId sets the optional parameter "clusterId": Deprecated. The name of
  9895  // the cluster. This field has been deprecated and replaced by the parent
  9896  // field.
  9897  func (c *ProjectsLocationsClustersNodePoolsListCall) ClusterId(clusterId string) *ProjectsLocationsClustersNodePoolsListCall {
  9898  	c.urlParams_.Set("clusterId", clusterId)
  9899  	return c
  9900  }
  9901  
  9902  // ProjectId sets the optional parameter "projectId": Deprecated. The Google
  9903  // Developers Console project ID or project number
  9904  // (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  9905  // This field has been deprecated and replaced by the parent field.
  9906  func (c *ProjectsLocationsClustersNodePoolsListCall) ProjectId(projectId string) *ProjectsLocationsClustersNodePoolsListCall {
  9907  	c.urlParams_.Set("projectId", projectId)
  9908  	return c
  9909  }
  9910  
  9911  // Zone sets the optional parameter "zone": Deprecated. The name of the Google
  9912  // Compute Engine zone (https://cloud.google.com/compute/docs/zones#available)
  9913  // in which the cluster resides. This field has been deprecated and replaced by
  9914  // the parent field.
  9915  func (c *ProjectsLocationsClustersNodePoolsListCall) Zone(zone string) *ProjectsLocationsClustersNodePoolsListCall {
  9916  	c.urlParams_.Set("zone", zone)
  9917  	return c
  9918  }
  9919  
  9920  // Fields allows partial responses to be retrieved. See
  9921  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  9922  // details.
  9923  func (c *ProjectsLocationsClustersNodePoolsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersNodePoolsListCall {
  9924  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  9925  	return c
  9926  }
  9927  
  9928  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  9929  // object's ETag matches the given value. This is useful for getting updates
  9930  // only after the object has changed since the last request.
  9931  func (c *ProjectsLocationsClustersNodePoolsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsClustersNodePoolsListCall {
  9932  	c.ifNoneMatch_ = entityTag
  9933  	return c
  9934  }
  9935  
  9936  // Context sets the context to be used in this call's Do method.
  9937  func (c *ProjectsLocationsClustersNodePoolsListCall) Context(ctx context.Context) *ProjectsLocationsClustersNodePoolsListCall {
  9938  	c.ctx_ = ctx
  9939  	return c
  9940  }
  9941  
  9942  // Header returns a http.Header that can be modified by the caller to add
  9943  // headers to the request.
  9944  func (c *ProjectsLocationsClustersNodePoolsListCall) Header() http.Header {
  9945  	if c.header_ == nil {
  9946  		c.header_ = make(http.Header)
  9947  	}
  9948  	return c.header_
  9949  }
  9950  
  9951  func (c *ProjectsLocationsClustersNodePoolsListCall) doRequest(alt string) (*http.Response, error) {
  9952  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  9953  	if c.ifNoneMatch_ != "" {
  9954  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  9955  	}
  9956  	var body io.Reader = nil
  9957  	c.urlParams_.Set("alt", alt)
  9958  	c.urlParams_.Set("prettyPrint", "false")
  9959  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/nodePools")
  9960  	urls += "?" + c.urlParams_.Encode()
  9961  	req, err := http.NewRequest("GET", urls, body)
  9962  	if err != nil {
  9963  		return nil, err
  9964  	}
  9965  	req.Header = reqHeaders
  9966  	googleapi.Expand(req.URL, map[string]string{
  9967  		"parent": c.parent,
  9968  	})
  9969  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  9970  }
  9971  
  9972  // Do executes the "container.projects.locations.clusters.nodePools.list" call.
  9973  // Any non-2xx status code is an error. Response headers are in either
  9974  // *ListNodePoolsResponse.ServerResponse.Header or (if a response was returned
  9975  // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  9976  // check whether the returned error was because http.StatusNotModified was
  9977  // returned.
  9978  func (c *ProjectsLocationsClustersNodePoolsListCall) Do(opts ...googleapi.CallOption) (*ListNodePoolsResponse, error) {
  9979  	gensupport.SetOptions(c.urlParams_, opts...)
  9980  	res, err := c.doRequest("json")
  9981  	if res != nil && res.StatusCode == http.StatusNotModified {
  9982  		if res.Body != nil {
  9983  			res.Body.Close()
  9984  		}
  9985  		return nil, gensupport.WrapError(&googleapi.Error{
  9986  			Code:   res.StatusCode,
  9987  			Header: res.Header,
  9988  		})
  9989  	}
  9990  	if err != nil {
  9991  		return nil, err
  9992  	}
  9993  	defer googleapi.CloseBody(res)
  9994  	if err := googleapi.CheckResponse(res); err != nil {
  9995  		return nil, gensupport.WrapError(err)
  9996  	}
  9997  	ret := &ListNodePoolsResponse{
  9998  		ServerResponse: googleapi.ServerResponse{
  9999  			Header:         res.Header,
 10000  			HTTPStatusCode: res.StatusCode,
 10001  		},
 10002  	}
 10003  	target := &ret
 10004  	if err := gensupport.DecodeResponse(target, res); err != nil {
 10005  		return nil, err
 10006  	}
 10007  	return ret, nil
 10008  }
 10009  
 10010  type ProjectsLocationsClustersNodePoolsRollbackCall struct {
 10011  	s                              *Service
 10012  	name                           string
 10013  	rollbacknodepoolupgraderequest *RollbackNodePoolUpgradeRequest
 10014  	urlParams_                     gensupport.URLParams
 10015  	ctx_                           context.Context
 10016  	header_                        http.Header
 10017  }
 10018  
 10019  // Rollback: Rolls back a previously Aborted or Failed NodePool upgrade. This
 10020  // makes no changes if the last upgrade successfully completed.
 10021  //
 10022  //   - name: The name (project, location, cluster, node pool id) of the node poll
 10023  //     to rollback upgrade. Specified in the format
 10024  //     `projects/*/locations/*/clusters/*/nodePools/*`.
 10025  func (r *ProjectsLocationsClustersNodePoolsService) Rollback(name string, rollbacknodepoolupgraderequest *RollbackNodePoolUpgradeRequest) *ProjectsLocationsClustersNodePoolsRollbackCall {
 10026  	c := &ProjectsLocationsClustersNodePoolsRollbackCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 10027  	c.name = name
 10028  	c.rollbacknodepoolupgraderequest = rollbacknodepoolupgraderequest
 10029  	return c
 10030  }
 10031  
 10032  // Fields allows partial responses to be retrieved. See
 10033  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 10034  // details.
 10035  func (c *ProjectsLocationsClustersNodePoolsRollbackCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersNodePoolsRollbackCall {
 10036  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 10037  	return c
 10038  }
 10039  
 10040  // Context sets the context to be used in this call's Do method.
 10041  func (c *ProjectsLocationsClustersNodePoolsRollbackCall) Context(ctx context.Context) *ProjectsLocationsClustersNodePoolsRollbackCall {
 10042  	c.ctx_ = ctx
 10043  	return c
 10044  }
 10045  
 10046  // Header returns a http.Header that can be modified by the caller to add
 10047  // headers to the request.
 10048  func (c *ProjectsLocationsClustersNodePoolsRollbackCall) Header() http.Header {
 10049  	if c.header_ == nil {
 10050  		c.header_ = make(http.Header)
 10051  	}
 10052  	return c.header_
 10053  }
 10054  
 10055  func (c *ProjectsLocationsClustersNodePoolsRollbackCall) doRequest(alt string) (*http.Response, error) {
 10056  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 10057  	var body io.Reader = nil
 10058  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.rollbacknodepoolupgraderequest)
 10059  	if err != nil {
 10060  		return nil, err
 10061  	}
 10062  	c.urlParams_.Set("alt", alt)
 10063  	c.urlParams_.Set("prettyPrint", "false")
 10064  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:rollback")
 10065  	urls += "?" + c.urlParams_.Encode()
 10066  	req, err := http.NewRequest("POST", urls, body)
 10067  	if err != nil {
 10068  		return nil, err
 10069  	}
 10070  	req.Header = reqHeaders
 10071  	googleapi.Expand(req.URL, map[string]string{
 10072  		"name": c.name,
 10073  	})
 10074  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 10075  }
 10076  
 10077  // Do executes the "container.projects.locations.clusters.nodePools.rollback" call.
 10078  // Any non-2xx status code is an error. Response headers are in either
 10079  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 10080  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 10081  // whether the returned error was because http.StatusNotModified was returned.
 10082  func (c *ProjectsLocationsClustersNodePoolsRollbackCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 10083  	gensupport.SetOptions(c.urlParams_, opts...)
 10084  	res, err := c.doRequest("json")
 10085  	if res != nil && res.StatusCode == http.StatusNotModified {
 10086  		if res.Body != nil {
 10087  			res.Body.Close()
 10088  		}
 10089  		return nil, gensupport.WrapError(&googleapi.Error{
 10090  			Code:   res.StatusCode,
 10091  			Header: res.Header,
 10092  		})
 10093  	}
 10094  	if err != nil {
 10095  		return nil, err
 10096  	}
 10097  	defer googleapi.CloseBody(res)
 10098  	if err := googleapi.CheckResponse(res); err != nil {
 10099  		return nil, gensupport.WrapError(err)
 10100  	}
 10101  	ret := &Operation{
 10102  		ServerResponse: googleapi.ServerResponse{
 10103  			Header:         res.Header,
 10104  			HTTPStatusCode: res.StatusCode,
 10105  		},
 10106  	}
 10107  	target := &ret
 10108  	if err := gensupport.DecodeResponse(target, res); err != nil {
 10109  		return nil, err
 10110  	}
 10111  	return ret, nil
 10112  }
 10113  
 10114  type ProjectsLocationsClustersNodePoolsSetAutoscalingCall struct {
 10115  	s                             *Service
 10116  	name                          string
 10117  	setnodepoolautoscalingrequest *SetNodePoolAutoscalingRequest
 10118  	urlParams_                    gensupport.URLParams
 10119  	ctx_                          context.Context
 10120  	header_                       http.Header
 10121  }
 10122  
 10123  // SetAutoscaling: Sets the autoscaling settings for the specified node pool.
 10124  //
 10125  //   - name: The name (project, location, cluster, node pool) of the node pool to
 10126  //     set autoscaler settings. Specified in the format
 10127  //     `projects/*/locations/*/clusters/*/nodePools/*`.
 10128  func (r *ProjectsLocationsClustersNodePoolsService) SetAutoscaling(name string, setnodepoolautoscalingrequest *SetNodePoolAutoscalingRequest) *ProjectsLocationsClustersNodePoolsSetAutoscalingCall {
 10129  	c := &ProjectsLocationsClustersNodePoolsSetAutoscalingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 10130  	c.name = name
 10131  	c.setnodepoolautoscalingrequest = setnodepoolautoscalingrequest
 10132  	return c
 10133  }
 10134  
 10135  // Fields allows partial responses to be retrieved. See
 10136  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 10137  // details.
 10138  func (c *ProjectsLocationsClustersNodePoolsSetAutoscalingCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersNodePoolsSetAutoscalingCall {
 10139  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 10140  	return c
 10141  }
 10142  
 10143  // Context sets the context to be used in this call's Do method.
 10144  func (c *ProjectsLocationsClustersNodePoolsSetAutoscalingCall) Context(ctx context.Context) *ProjectsLocationsClustersNodePoolsSetAutoscalingCall {
 10145  	c.ctx_ = ctx
 10146  	return c
 10147  }
 10148  
 10149  // Header returns a http.Header that can be modified by the caller to add
 10150  // headers to the request.
 10151  func (c *ProjectsLocationsClustersNodePoolsSetAutoscalingCall) Header() http.Header {
 10152  	if c.header_ == nil {
 10153  		c.header_ = make(http.Header)
 10154  	}
 10155  	return c.header_
 10156  }
 10157  
 10158  func (c *ProjectsLocationsClustersNodePoolsSetAutoscalingCall) doRequest(alt string) (*http.Response, error) {
 10159  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 10160  	var body io.Reader = nil
 10161  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setnodepoolautoscalingrequest)
 10162  	if err != nil {
 10163  		return nil, err
 10164  	}
 10165  	c.urlParams_.Set("alt", alt)
 10166  	c.urlParams_.Set("prettyPrint", "false")
 10167  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setAutoscaling")
 10168  	urls += "?" + c.urlParams_.Encode()
 10169  	req, err := http.NewRequest("POST", urls, body)
 10170  	if err != nil {
 10171  		return nil, err
 10172  	}
 10173  	req.Header = reqHeaders
 10174  	googleapi.Expand(req.URL, map[string]string{
 10175  		"name": c.name,
 10176  	})
 10177  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 10178  }
 10179  
 10180  // Do executes the "container.projects.locations.clusters.nodePools.setAutoscaling" call.
 10181  // Any non-2xx status code is an error. Response headers are in either
 10182  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 10183  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 10184  // whether the returned error was because http.StatusNotModified was returned.
 10185  func (c *ProjectsLocationsClustersNodePoolsSetAutoscalingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 10186  	gensupport.SetOptions(c.urlParams_, opts...)
 10187  	res, err := c.doRequest("json")
 10188  	if res != nil && res.StatusCode == http.StatusNotModified {
 10189  		if res.Body != nil {
 10190  			res.Body.Close()
 10191  		}
 10192  		return nil, gensupport.WrapError(&googleapi.Error{
 10193  			Code:   res.StatusCode,
 10194  			Header: res.Header,
 10195  		})
 10196  	}
 10197  	if err != nil {
 10198  		return nil, err
 10199  	}
 10200  	defer googleapi.CloseBody(res)
 10201  	if err := googleapi.CheckResponse(res); err != nil {
 10202  		return nil, gensupport.WrapError(err)
 10203  	}
 10204  	ret := &Operation{
 10205  		ServerResponse: googleapi.ServerResponse{
 10206  			Header:         res.Header,
 10207  			HTTPStatusCode: res.StatusCode,
 10208  		},
 10209  	}
 10210  	target := &ret
 10211  	if err := gensupport.DecodeResponse(target, res); err != nil {
 10212  		return nil, err
 10213  	}
 10214  	return ret, nil
 10215  }
 10216  
 10217  type ProjectsLocationsClustersNodePoolsSetManagementCall struct {
 10218  	s                            *Service
 10219  	name                         string
 10220  	setnodepoolmanagementrequest *SetNodePoolManagementRequest
 10221  	urlParams_                   gensupport.URLParams
 10222  	ctx_                         context.Context
 10223  	header_                      http.Header
 10224  }
 10225  
 10226  // SetManagement: Sets the NodeManagement options for a node pool.
 10227  //
 10228  //   - name: The name (project, location, cluster, node pool id) of the node pool
 10229  //     to set management properties. Specified in the format
 10230  //     `projects/*/locations/*/clusters/*/nodePools/*`.
 10231  func (r *ProjectsLocationsClustersNodePoolsService) SetManagement(name string, setnodepoolmanagementrequest *SetNodePoolManagementRequest) *ProjectsLocationsClustersNodePoolsSetManagementCall {
 10232  	c := &ProjectsLocationsClustersNodePoolsSetManagementCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 10233  	c.name = name
 10234  	c.setnodepoolmanagementrequest = setnodepoolmanagementrequest
 10235  	return c
 10236  }
 10237  
 10238  // Fields allows partial responses to be retrieved. See
 10239  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 10240  // details.
 10241  func (c *ProjectsLocationsClustersNodePoolsSetManagementCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersNodePoolsSetManagementCall {
 10242  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 10243  	return c
 10244  }
 10245  
 10246  // Context sets the context to be used in this call's Do method.
 10247  func (c *ProjectsLocationsClustersNodePoolsSetManagementCall) Context(ctx context.Context) *ProjectsLocationsClustersNodePoolsSetManagementCall {
 10248  	c.ctx_ = ctx
 10249  	return c
 10250  }
 10251  
 10252  // Header returns a http.Header that can be modified by the caller to add
 10253  // headers to the request.
 10254  func (c *ProjectsLocationsClustersNodePoolsSetManagementCall) Header() http.Header {
 10255  	if c.header_ == nil {
 10256  		c.header_ = make(http.Header)
 10257  	}
 10258  	return c.header_
 10259  }
 10260  
 10261  func (c *ProjectsLocationsClustersNodePoolsSetManagementCall) doRequest(alt string) (*http.Response, error) {
 10262  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 10263  	var body io.Reader = nil
 10264  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setnodepoolmanagementrequest)
 10265  	if err != nil {
 10266  		return nil, err
 10267  	}
 10268  	c.urlParams_.Set("alt", alt)
 10269  	c.urlParams_.Set("prettyPrint", "false")
 10270  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setManagement")
 10271  	urls += "?" + c.urlParams_.Encode()
 10272  	req, err := http.NewRequest("POST", urls, body)
 10273  	if err != nil {
 10274  		return nil, err
 10275  	}
 10276  	req.Header = reqHeaders
 10277  	googleapi.Expand(req.URL, map[string]string{
 10278  		"name": c.name,
 10279  	})
 10280  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 10281  }
 10282  
 10283  // Do executes the "container.projects.locations.clusters.nodePools.setManagement" call.
 10284  // Any non-2xx status code is an error. Response headers are in either
 10285  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 10286  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 10287  // whether the returned error was because http.StatusNotModified was returned.
 10288  func (c *ProjectsLocationsClustersNodePoolsSetManagementCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 10289  	gensupport.SetOptions(c.urlParams_, opts...)
 10290  	res, err := c.doRequest("json")
 10291  	if res != nil && res.StatusCode == http.StatusNotModified {
 10292  		if res.Body != nil {
 10293  			res.Body.Close()
 10294  		}
 10295  		return nil, gensupport.WrapError(&googleapi.Error{
 10296  			Code:   res.StatusCode,
 10297  			Header: res.Header,
 10298  		})
 10299  	}
 10300  	if err != nil {
 10301  		return nil, err
 10302  	}
 10303  	defer googleapi.CloseBody(res)
 10304  	if err := googleapi.CheckResponse(res); err != nil {
 10305  		return nil, gensupport.WrapError(err)
 10306  	}
 10307  	ret := &Operation{
 10308  		ServerResponse: googleapi.ServerResponse{
 10309  			Header:         res.Header,
 10310  			HTTPStatusCode: res.StatusCode,
 10311  		},
 10312  	}
 10313  	target := &ret
 10314  	if err := gensupport.DecodeResponse(target, res); err != nil {
 10315  		return nil, err
 10316  	}
 10317  	return ret, nil
 10318  }
 10319  
 10320  type ProjectsLocationsClustersNodePoolsSetSizeCall struct {
 10321  	s                      *Service
 10322  	name                   string
 10323  	setnodepoolsizerequest *SetNodePoolSizeRequest
 10324  	urlParams_             gensupport.URLParams
 10325  	ctx_                   context.Context
 10326  	header_                http.Header
 10327  }
 10328  
 10329  // SetSize: Sets the size for a specific node pool. The new size will be used
 10330  // for all replicas, including future replicas created by modifying
 10331  // NodePool.locations.
 10332  //
 10333  //   - name: The name (project, location, cluster, node pool id) of the node pool
 10334  //     to set size. Specified in the format
 10335  //     `projects/*/locations/*/clusters/*/nodePools/*`.
 10336  func (r *ProjectsLocationsClustersNodePoolsService) SetSize(name string, setnodepoolsizerequest *SetNodePoolSizeRequest) *ProjectsLocationsClustersNodePoolsSetSizeCall {
 10337  	c := &ProjectsLocationsClustersNodePoolsSetSizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 10338  	c.name = name
 10339  	c.setnodepoolsizerequest = setnodepoolsizerequest
 10340  	return c
 10341  }
 10342  
 10343  // Fields allows partial responses to be retrieved. See
 10344  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 10345  // details.
 10346  func (c *ProjectsLocationsClustersNodePoolsSetSizeCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersNodePoolsSetSizeCall {
 10347  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 10348  	return c
 10349  }
 10350  
 10351  // Context sets the context to be used in this call's Do method.
 10352  func (c *ProjectsLocationsClustersNodePoolsSetSizeCall) Context(ctx context.Context) *ProjectsLocationsClustersNodePoolsSetSizeCall {
 10353  	c.ctx_ = ctx
 10354  	return c
 10355  }
 10356  
 10357  // Header returns a http.Header that can be modified by the caller to add
 10358  // headers to the request.
 10359  func (c *ProjectsLocationsClustersNodePoolsSetSizeCall) Header() http.Header {
 10360  	if c.header_ == nil {
 10361  		c.header_ = make(http.Header)
 10362  	}
 10363  	return c.header_
 10364  }
 10365  
 10366  func (c *ProjectsLocationsClustersNodePoolsSetSizeCall) doRequest(alt string) (*http.Response, error) {
 10367  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 10368  	var body io.Reader = nil
 10369  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setnodepoolsizerequest)
 10370  	if err != nil {
 10371  		return nil, err
 10372  	}
 10373  	c.urlParams_.Set("alt", alt)
 10374  	c.urlParams_.Set("prettyPrint", "false")
 10375  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:setSize")
 10376  	urls += "?" + c.urlParams_.Encode()
 10377  	req, err := http.NewRequest("POST", urls, body)
 10378  	if err != nil {
 10379  		return nil, err
 10380  	}
 10381  	req.Header = reqHeaders
 10382  	googleapi.Expand(req.URL, map[string]string{
 10383  		"name": c.name,
 10384  	})
 10385  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 10386  }
 10387  
 10388  // Do executes the "container.projects.locations.clusters.nodePools.setSize" call.
 10389  // Any non-2xx status code is an error. Response headers are in either
 10390  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 10391  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 10392  // whether the returned error was because http.StatusNotModified was returned.
 10393  func (c *ProjectsLocationsClustersNodePoolsSetSizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 10394  	gensupport.SetOptions(c.urlParams_, opts...)
 10395  	res, err := c.doRequest("json")
 10396  	if res != nil && res.StatusCode == http.StatusNotModified {
 10397  		if res.Body != nil {
 10398  			res.Body.Close()
 10399  		}
 10400  		return nil, gensupport.WrapError(&googleapi.Error{
 10401  			Code:   res.StatusCode,
 10402  			Header: res.Header,
 10403  		})
 10404  	}
 10405  	if err != nil {
 10406  		return nil, err
 10407  	}
 10408  	defer googleapi.CloseBody(res)
 10409  	if err := googleapi.CheckResponse(res); err != nil {
 10410  		return nil, gensupport.WrapError(err)
 10411  	}
 10412  	ret := &Operation{
 10413  		ServerResponse: googleapi.ServerResponse{
 10414  			Header:         res.Header,
 10415  			HTTPStatusCode: res.StatusCode,
 10416  		},
 10417  	}
 10418  	target := &ret
 10419  	if err := gensupport.DecodeResponse(target, res); err != nil {
 10420  		return nil, err
 10421  	}
 10422  	return ret, nil
 10423  }
 10424  
 10425  type ProjectsLocationsClustersNodePoolsUpdateCall struct {
 10426  	s                     *Service
 10427  	name                  string
 10428  	updatenodepoolrequest *UpdateNodePoolRequest
 10429  	urlParams_            gensupport.URLParams
 10430  	ctx_                  context.Context
 10431  	header_               http.Header
 10432  }
 10433  
 10434  // Update: Updates the version and/or image type for the specified node pool.
 10435  //
 10436  //   - name: The name (project, location, cluster, node pool) of the node pool to
 10437  //     update. Specified in the format
 10438  //     `projects/*/locations/*/clusters/*/nodePools/*`.
 10439  func (r *ProjectsLocationsClustersNodePoolsService) Update(name string, updatenodepoolrequest *UpdateNodePoolRequest) *ProjectsLocationsClustersNodePoolsUpdateCall {
 10440  	c := &ProjectsLocationsClustersNodePoolsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 10441  	c.name = name
 10442  	c.updatenodepoolrequest = updatenodepoolrequest
 10443  	return c
 10444  }
 10445  
 10446  // Fields allows partial responses to be retrieved. See
 10447  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 10448  // details.
 10449  func (c *ProjectsLocationsClustersNodePoolsUpdateCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersNodePoolsUpdateCall {
 10450  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 10451  	return c
 10452  }
 10453  
 10454  // Context sets the context to be used in this call's Do method.
 10455  func (c *ProjectsLocationsClustersNodePoolsUpdateCall) Context(ctx context.Context) *ProjectsLocationsClustersNodePoolsUpdateCall {
 10456  	c.ctx_ = ctx
 10457  	return c
 10458  }
 10459  
 10460  // Header returns a http.Header that can be modified by the caller to add
 10461  // headers to the request.
 10462  func (c *ProjectsLocationsClustersNodePoolsUpdateCall) Header() http.Header {
 10463  	if c.header_ == nil {
 10464  		c.header_ = make(http.Header)
 10465  	}
 10466  	return c.header_
 10467  }
 10468  
 10469  func (c *ProjectsLocationsClustersNodePoolsUpdateCall) doRequest(alt string) (*http.Response, error) {
 10470  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 10471  	var body io.Reader = nil
 10472  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updatenodepoolrequest)
 10473  	if err != nil {
 10474  		return nil, err
 10475  	}
 10476  	c.urlParams_.Set("alt", alt)
 10477  	c.urlParams_.Set("prettyPrint", "false")
 10478  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
 10479  	urls += "?" + c.urlParams_.Encode()
 10480  	req, err := http.NewRequest("PUT", urls, body)
 10481  	if err != nil {
 10482  		return nil, err
 10483  	}
 10484  	req.Header = reqHeaders
 10485  	googleapi.Expand(req.URL, map[string]string{
 10486  		"name": c.name,
 10487  	})
 10488  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 10489  }
 10490  
 10491  // Do executes the "container.projects.locations.clusters.nodePools.update" call.
 10492  // Any non-2xx status code is an error. Response headers are in either
 10493  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 10494  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 10495  // whether the returned error was because http.StatusNotModified was returned.
 10496  func (c *ProjectsLocationsClustersNodePoolsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 10497  	gensupport.SetOptions(c.urlParams_, opts...)
 10498  	res, err := c.doRequest("json")
 10499  	if res != nil && res.StatusCode == http.StatusNotModified {
 10500  		if res.Body != nil {
 10501  			res.Body.Close()
 10502  		}
 10503  		return nil, gensupport.WrapError(&googleapi.Error{
 10504  			Code:   res.StatusCode,
 10505  			Header: res.Header,
 10506  		})
 10507  	}
 10508  	if err != nil {
 10509  		return nil, err
 10510  	}
 10511  	defer googleapi.CloseBody(res)
 10512  	if err := googleapi.CheckResponse(res); err != nil {
 10513  		return nil, gensupport.WrapError(err)
 10514  	}
 10515  	ret := &Operation{
 10516  		ServerResponse: googleapi.ServerResponse{
 10517  			Header:         res.Header,
 10518  			HTTPStatusCode: res.StatusCode,
 10519  		},
 10520  	}
 10521  	target := &ret
 10522  	if err := gensupport.DecodeResponse(target, res); err != nil {
 10523  		return nil, err
 10524  	}
 10525  	return ret, nil
 10526  }
 10527  
 10528  type ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall struct {
 10529  	s            *Service
 10530  	parent       string
 10531  	urlParams_   gensupport.URLParams
 10532  	ifNoneMatch_ string
 10533  	ctx_         context.Context
 10534  	header_      http.Header
 10535  }
 10536  
 10537  // GetOpenidConfiguration: Gets the OIDC discovery document for the cluster.
 10538  // See the OpenID Connect Discovery 1.0 specification
 10539  // (https://openid.net/specs/openid-connect-discovery-1_0.html) for details.
 10540  //
 10541  //   - parent: The cluster (project, location, cluster name) to get the discovery
 10542  //     document for. Specified in the format `projects/*/locations/*/clusters/*`.
 10543  func (r *ProjectsLocationsClustersWellKnownService) GetOpenidConfiguration(parent string) *ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall {
 10544  	c := &ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 10545  	c.parent = parent
 10546  	return c
 10547  }
 10548  
 10549  // Fields allows partial responses to be retrieved. See
 10550  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 10551  // details.
 10552  func (c *ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall) Fields(s ...googleapi.Field) *ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall {
 10553  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 10554  	return c
 10555  }
 10556  
 10557  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 10558  // object's ETag matches the given value. This is useful for getting updates
 10559  // only after the object has changed since the last request.
 10560  func (c *ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall) IfNoneMatch(entityTag string) *ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall {
 10561  	c.ifNoneMatch_ = entityTag
 10562  	return c
 10563  }
 10564  
 10565  // Context sets the context to be used in this call's Do method.
 10566  func (c *ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall) Context(ctx context.Context) *ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall {
 10567  	c.ctx_ = ctx
 10568  	return c
 10569  }
 10570  
 10571  // Header returns a http.Header that can be modified by the caller to add
 10572  // headers to the request.
 10573  func (c *ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall) Header() http.Header {
 10574  	if c.header_ == nil {
 10575  		c.header_ = make(http.Header)
 10576  	}
 10577  	return c.header_
 10578  }
 10579  
 10580  func (c *ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall) doRequest(alt string) (*http.Response, error) {
 10581  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 10582  	if c.ifNoneMatch_ != "" {
 10583  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 10584  	}
 10585  	var body io.Reader = nil
 10586  	c.urlParams_.Set("alt", alt)
 10587  	c.urlParams_.Set("prettyPrint", "false")
 10588  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/.well-known/openid-configuration")
 10589  	urls += "?" + c.urlParams_.Encode()
 10590  	req, err := http.NewRequest("GET", urls, body)
 10591  	if err != nil {
 10592  		return nil, err
 10593  	}
 10594  	req.Header = reqHeaders
 10595  	googleapi.Expand(req.URL, map[string]string{
 10596  		"parent": c.parent,
 10597  	})
 10598  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 10599  }
 10600  
 10601  // Do executes the "container.projects.locations.clusters.well-known.getOpenid-configuration" call.
 10602  // Any non-2xx status code is an error. Response headers are in either
 10603  // *GetOpenIDConfigResponse.ServerResponse.Header or (if a response was
 10604  // returned at all) in error.(*googleapi.Error).Header. Use
 10605  // googleapi.IsNotModified to check whether the returned error was because
 10606  // http.StatusNotModified was returned.
 10607  func (c *ProjectsLocationsClustersWellKnownGetOpenidConfigurationCall) Do(opts ...googleapi.CallOption) (*GetOpenIDConfigResponse, error) {
 10608  	gensupport.SetOptions(c.urlParams_, opts...)
 10609  	res, err := c.doRequest("json")
 10610  	if res != nil && res.StatusCode == http.StatusNotModified {
 10611  		if res.Body != nil {
 10612  			res.Body.Close()
 10613  		}
 10614  		return nil, gensupport.WrapError(&googleapi.Error{
 10615  			Code:   res.StatusCode,
 10616  			Header: res.Header,
 10617  		})
 10618  	}
 10619  	if err != nil {
 10620  		return nil, err
 10621  	}
 10622  	defer googleapi.CloseBody(res)
 10623  	if err := googleapi.CheckResponse(res); err != nil {
 10624  		return nil, gensupport.WrapError(err)
 10625  	}
 10626  	ret := &GetOpenIDConfigResponse{
 10627  		ServerResponse: googleapi.ServerResponse{
 10628  			Header:         res.Header,
 10629  			HTTPStatusCode: res.StatusCode,
 10630  		},
 10631  	}
 10632  	target := &ret
 10633  	if err := gensupport.DecodeResponse(target, res); err != nil {
 10634  		return nil, err
 10635  	}
 10636  	return ret, nil
 10637  }
 10638  
 10639  type ProjectsLocationsOperationsCancelCall struct {
 10640  	s                      *Service
 10641  	name                   string
 10642  	canceloperationrequest *CancelOperationRequest
 10643  	urlParams_             gensupport.URLParams
 10644  	ctx_                   context.Context
 10645  	header_                http.Header
 10646  }
 10647  
 10648  // Cancel: Cancels the specified operation.
 10649  //
 10650  //   - name: The name (project, location, operation id) of the operation to
 10651  //     cancel. Specified in the format `projects/*/locations/*/operations/*`.
 10652  func (r *ProjectsLocationsOperationsService) Cancel(name string, canceloperationrequest *CancelOperationRequest) *ProjectsLocationsOperationsCancelCall {
 10653  	c := &ProjectsLocationsOperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 10654  	c.name = name
 10655  	c.canceloperationrequest = canceloperationrequest
 10656  	return c
 10657  }
 10658  
 10659  // Fields allows partial responses to be retrieved. See
 10660  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 10661  // details.
 10662  func (c *ProjectsLocationsOperationsCancelCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsCancelCall {
 10663  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 10664  	return c
 10665  }
 10666  
 10667  // Context sets the context to be used in this call's Do method.
 10668  func (c *ProjectsLocationsOperationsCancelCall) Context(ctx context.Context) *ProjectsLocationsOperationsCancelCall {
 10669  	c.ctx_ = ctx
 10670  	return c
 10671  }
 10672  
 10673  // Header returns a http.Header that can be modified by the caller to add
 10674  // headers to the request.
 10675  func (c *ProjectsLocationsOperationsCancelCall) Header() http.Header {
 10676  	if c.header_ == nil {
 10677  		c.header_ = make(http.Header)
 10678  	}
 10679  	return c.header_
 10680  }
 10681  
 10682  func (c *ProjectsLocationsOperationsCancelCall) doRequest(alt string) (*http.Response, error) {
 10683  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 10684  	var body io.Reader = nil
 10685  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.canceloperationrequest)
 10686  	if err != nil {
 10687  		return nil, err
 10688  	}
 10689  	c.urlParams_.Set("alt", alt)
 10690  	c.urlParams_.Set("prettyPrint", "false")
 10691  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:cancel")
 10692  	urls += "?" + c.urlParams_.Encode()
 10693  	req, err := http.NewRequest("POST", urls, body)
 10694  	if err != nil {
 10695  		return nil, err
 10696  	}
 10697  	req.Header = reqHeaders
 10698  	googleapi.Expand(req.URL, map[string]string{
 10699  		"name": c.name,
 10700  	})
 10701  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 10702  }
 10703  
 10704  // Do executes the "container.projects.locations.operations.cancel" call.
 10705  // Any non-2xx status code is an error. Response headers are in either
 10706  // *Empty.ServerResponse.Header or (if a response was returned at all) in
 10707  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 10708  // whether the returned error was because http.StatusNotModified was returned.
 10709  func (c *ProjectsLocationsOperationsCancelCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
 10710  	gensupport.SetOptions(c.urlParams_, opts...)
 10711  	res, err := c.doRequest("json")
 10712  	if res != nil && res.StatusCode == http.StatusNotModified {
 10713  		if res.Body != nil {
 10714  			res.Body.Close()
 10715  		}
 10716  		return nil, gensupport.WrapError(&googleapi.Error{
 10717  			Code:   res.StatusCode,
 10718  			Header: res.Header,
 10719  		})
 10720  	}
 10721  	if err != nil {
 10722  		return nil, err
 10723  	}
 10724  	defer googleapi.CloseBody(res)
 10725  	if err := googleapi.CheckResponse(res); err != nil {
 10726  		return nil, gensupport.WrapError(err)
 10727  	}
 10728  	ret := &Empty{
 10729  		ServerResponse: googleapi.ServerResponse{
 10730  			Header:         res.Header,
 10731  			HTTPStatusCode: res.StatusCode,
 10732  		},
 10733  	}
 10734  	target := &ret
 10735  	if err := gensupport.DecodeResponse(target, res); err != nil {
 10736  		return nil, err
 10737  	}
 10738  	return ret, nil
 10739  }
 10740  
 10741  type ProjectsLocationsOperationsGetCall struct {
 10742  	s            *Service
 10743  	name         string
 10744  	urlParams_   gensupport.URLParams
 10745  	ifNoneMatch_ string
 10746  	ctx_         context.Context
 10747  	header_      http.Header
 10748  }
 10749  
 10750  // Get: Gets the specified operation.
 10751  //
 10752  //   - name: The name (project, location, operation id) of the operation to get.
 10753  //     Specified in the format `projects/*/locations/*/operations/*`.
 10754  func (r *ProjectsLocationsOperationsService) Get(name string) *ProjectsLocationsOperationsGetCall {
 10755  	c := &ProjectsLocationsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 10756  	c.name = name
 10757  	return c
 10758  }
 10759  
 10760  // OperationId sets the optional parameter "operationId": Deprecated. The
 10761  // server-assigned `name` of the operation. This field has been deprecated and
 10762  // replaced by the name field.
 10763  func (c *ProjectsLocationsOperationsGetCall) OperationId(operationId string) *ProjectsLocationsOperationsGetCall {
 10764  	c.urlParams_.Set("operationId", operationId)
 10765  	return c
 10766  }
 10767  
 10768  // ProjectId sets the optional parameter "projectId": Deprecated. The Google
 10769  // Developers Console project ID or project number
 10770  // (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 10771  // This field has been deprecated and replaced by the name field.
 10772  func (c *ProjectsLocationsOperationsGetCall) ProjectId(projectId string) *ProjectsLocationsOperationsGetCall {
 10773  	c.urlParams_.Set("projectId", projectId)
 10774  	return c
 10775  }
 10776  
 10777  // Zone sets the optional parameter "zone": Deprecated. The name of the Google
 10778  // Compute Engine zone (https://cloud.google.com/compute/docs/zones#available)
 10779  // in which the cluster resides. This field has been deprecated and replaced by
 10780  // the name field.
 10781  func (c *ProjectsLocationsOperationsGetCall) Zone(zone string) *ProjectsLocationsOperationsGetCall {
 10782  	c.urlParams_.Set("zone", zone)
 10783  	return c
 10784  }
 10785  
 10786  // Fields allows partial responses to be retrieved. See
 10787  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 10788  // details.
 10789  func (c *ProjectsLocationsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsGetCall {
 10790  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 10791  	return c
 10792  }
 10793  
 10794  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 10795  // object's ETag matches the given value. This is useful for getting updates
 10796  // only after the object has changed since the last request.
 10797  func (c *ProjectsLocationsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsLocationsOperationsGetCall {
 10798  	c.ifNoneMatch_ = entityTag
 10799  	return c
 10800  }
 10801  
 10802  // Context sets the context to be used in this call's Do method.
 10803  func (c *ProjectsLocationsOperationsGetCall) Context(ctx context.Context) *ProjectsLocationsOperationsGetCall {
 10804  	c.ctx_ = ctx
 10805  	return c
 10806  }
 10807  
 10808  // Header returns a http.Header that can be modified by the caller to add
 10809  // headers to the request.
 10810  func (c *ProjectsLocationsOperationsGetCall) Header() http.Header {
 10811  	if c.header_ == nil {
 10812  		c.header_ = make(http.Header)
 10813  	}
 10814  	return c.header_
 10815  }
 10816  
 10817  func (c *ProjectsLocationsOperationsGetCall) doRequest(alt string) (*http.Response, error) {
 10818  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 10819  	if c.ifNoneMatch_ != "" {
 10820  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 10821  	}
 10822  	var body io.Reader = nil
 10823  	c.urlParams_.Set("alt", alt)
 10824  	c.urlParams_.Set("prettyPrint", "false")
 10825  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
 10826  	urls += "?" + c.urlParams_.Encode()
 10827  	req, err := http.NewRequest("GET", urls, body)
 10828  	if err != nil {
 10829  		return nil, err
 10830  	}
 10831  	req.Header = reqHeaders
 10832  	googleapi.Expand(req.URL, map[string]string{
 10833  		"name": c.name,
 10834  	})
 10835  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 10836  }
 10837  
 10838  // Do executes the "container.projects.locations.operations.get" call.
 10839  // Any non-2xx status code is an error. Response headers are in either
 10840  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 10841  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 10842  // whether the returned error was because http.StatusNotModified was returned.
 10843  func (c *ProjectsLocationsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 10844  	gensupport.SetOptions(c.urlParams_, opts...)
 10845  	res, err := c.doRequest("json")
 10846  	if res != nil && res.StatusCode == http.StatusNotModified {
 10847  		if res.Body != nil {
 10848  			res.Body.Close()
 10849  		}
 10850  		return nil, gensupport.WrapError(&googleapi.Error{
 10851  			Code:   res.StatusCode,
 10852  			Header: res.Header,
 10853  		})
 10854  	}
 10855  	if err != nil {
 10856  		return nil, err
 10857  	}
 10858  	defer googleapi.CloseBody(res)
 10859  	if err := googleapi.CheckResponse(res); err != nil {
 10860  		return nil, gensupport.WrapError(err)
 10861  	}
 10862  	ret := &Operation{
 10863  		ServerResponse: googleapi.ServerResponse{
 10864  			Header:         res.Header,
 10865  			HTTPStatusCode: res.StatusCode,
 10866  		},
 10867  	}
 10868  	target := &ret
 10869  	if err := gensupport.DecodeResponse(target, res); err != nil {
 10870  		return nil, err
 10871  	}
 10872  	return ret, nil
 10873  }
 10874  
 10875  type ProjectsLocationsOperationsListCall struct {
 10876  	s            *Service
 10877  	parent       string
 10878  	urlParams_   gensupport.URLParams
 10879  	ifNoneMatch_ string
 10880  	ctx_         context.Context
 10881  	header_      http.Header
 10882  }
 10883  
 10884  // List: Lists all operations in a project in a specific zone or all zones.
 10885  //
 10886  //   - parent: The parent (project and location) where the operations will be
 10887  //     listed. Specified in the format `projects/*/locations/*`. Location "-"
 10888  //     matches all zones and all regions.
 10889  func (r *ProjectsLocationsOperationsService) List(parent string) *ProjectsLocationsOperationsListCall {
 10890  	c := &ProjectsLocationsOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 10891  	c.parent = parent
 10892  	return c
 10893  }
 10894  
 10895  // ProjectId sets the optional parameter "projectId": Deprecated. The Google
 10896  // Developers Console project ID or project number
 10897  // (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 10898  // This field has been deprecated and replaced by the parent field.
 10899  func (c *ProjectsLocationsOperationsListCall) ProjectId(projectId string) *ProjectsLocationsOperationsListCall {
 10900  	c.urlParams_.Set("projectId", projectId)
 10901  	return c
 10902  }
 10903  
 10904  // Zone sets the optional parameter "zone": Deprecated. The name of the Google
 10905  // Compute Engine zone (https://cloud.google.com/compute/docs/zones#available)
 10906  // to return operations for, or `-` for all zones. This field has been
 10907  // deprecated and replaced by the parent field.
 10908  func (c *ProjectsLocationsOperationsListCall) Zone(zone string) *ProjectsLocationsOperationsListCall {
 10909  	c.urlParams_.Set("zone", zone)
 10910  	return c
 10911  }
 10912  
 10913  // Fields allows partial responses to be retrieved. See
 10914  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 10915  // details.
 10916  func (c *ProjectsLocationsOperationsListCall) Fields(s ...googleapi.Field) *ProjectsLocationsOperationsListCall {
 10917  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 10918  	return c
 10919  }
 10920  
 10921  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 10922  // object's ETag matches the given value. This is useful for getting updates
 10923  // only after the object has changed since the last request.
 10924  func (c *ProjectsLocationsOperationsListCall) IfNoneMatch(entityTag string) *ProjectsLocationsOperationsListCall {
 10925  	c.ifNoneMatch_ = entityTag
 10926  	return c
 10927  }
 10928  
 10929  // Context sets the context to be used in this call's Do method.
 10930  func (c *ProjectsLocationsOperationsListCall) Context(ctx context.Context) *ProjectsLocationsOperationsListCall {
 10931  	c.ctx_ = ctx
 10932  	return c
 10933  }
 10934  
 10935  // Header returns a http.Header that can be modified by the caller to add
 10936  // headers to the request.
 10937  func (c *ProjectsLocationsOperationsListCall) Header() http.Header {
 10938  	if c.header_ == nil {
 10939  		c.header_ = make(http.Header)
 10940  	}
 10941  	return c.header_
 10942  }
 10943  
 10944  func (c *ProjectsLocationsOperationsListCall) doRequest(alt string) (*http.Response, error) {
 10945  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 10946  	if c.ifNoneMatch_ != "" {
 10947  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 10948  	}
 10949  	var body io.Reader = nil
 10950  	c.urlParams_.Set("alt", alt)
 10951  	c.urlParams_.Set("prettyPrint", "false")
 10952  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/operations")
 10953  	urls += "?" + c.urlParams_.Encode()
 10954  	req, err := http.NewRequest("GET", urls, body)
 10955  	if err != nil {
 10956  		return nil, err
 10957  	}
 10958  	req.Header = reqHeaders
 10959  	googleapi.Expand(req.URL, map[string]string{
 10960  		"parent": c.parent,
 10961  	})
 10962  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 10963  }
 10964  
 10965  // Do executes the "container.projects.locations.operations.list" call.
 10966  // Any non-2xx status code is an error. Response headers are in either
 10967  // *ListOperationsResponse.ServerResponse.Header or (if a response was returned
 10968  // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
 10969  // check whether the returned error was because http.StatusNotModified was
 10970  // returned.
 10971  func (c *ProjectsLocationsOperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) {
 10972  	gensupport.SetOptions(c.urlParams_, opts...)
 10973  	res, err := c.doRequest("json")
 10974  	if res != nil && res.StatusCode == http.StatusNotModified {
 10975  		if res.Body != nil {
 10976  			res.Body.Close()
 10977  		}
 10978  		return nil, gensupport.WrapError(&googleapi.Error{
 10979  			Code:   res.StatusCode,
 10980  			Header: res.Header,
 10981  		})
 10982  	}
 10983  	if err != nil {
 10984  		return nil, err
 10985  	}
 10986  	defer googleapi.CloseBody(res)
 10987  	if err := googleapi.CheckResponse(res); err != nil {
 10988  		return nil, gensupport.WrapError(err)
 10989  	}
 10990  	ret := &ListOperationsResponse{
 10991  		ServerResponse: googleapi.ServerResponse{
 10992  			Header:         res.Header,
 10993  			HTTPStatusCode: res.StatusCode,
 10994  		},
 10995  	}
 10996  	target := &ret
 10997  	if err := gensupport.DecodeResponse(target, res); err != nil {
 10998  		return nil, err
 10999  	}
 11000  	return ret, nil
 11001  }
 11002  
 11003  type ProjectsZonesGetServerconfigCall struct {
 11004  	s            *Service
 11005  	projectId    string
 11006  	zone         string
 11007  	urlParams_   gensupport.URLParams
 11008  	ifNoneMatch_ string
 11009  	ctx_         context.Context
 11010  	header_      http.Header
 11011  }
 11012  
 11013  // GetServerconfig: Returns configuration info about the Google Kubernetes
 11014  // Engine service.
 11015  //
 11016  //   - projectId: Deprecated. The Google Developers Console project ID or project
 11017  //     number
 11018  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 11019  //     This field has been deprecated and replaced by the name field.
 11020  //   - zone: Deprecated. The name of the Google Compute Engine zone
 11021  //     (https://cloud.google.com/compute/docs/zones#available) to return
 11022  //     operations for. This field has been deprecated and replaced by the name
 11023  //     field.
 11024  func (r *ProjectsZonesService) GetServerconfig(projectId string, zone string) *ProjectsZonesGetServerconfigCall {
 11025  	c := &ProjectsZonesGetServerconfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 11026  	c.projectId = projectId
 11027  	c.zone = zone
 11028  	return c
 11029  }
 11030  
 11031  // Name sets the optional parameter "name": The name (project and location) of
 11032  // the server config to get, specified in the format `projects/*/locations/*`.
 11033  func (c *ProjectsZonesGetServerconfigCall) Name(name string) *ProjectsZonesGetServerconfigCall {
 11034  	c.urlParams_.Set("name", name)
 11035  	return c
 11036  }
 11037  
 11038  // Fields allows partial responses to be retrieved. See
 11039  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 11040  // details.
 11041  func (c *ProjectsZonesGetServerconfigCall) Fields(s ...googleapi.Field) *ProjectsZonesGetServerconfigCall {
 11042  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 11043  	return c
 11044  }
 11045  
 11046  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 11047  // object's ETag matches the given value. This is useful for getting updates
 11048  // only after the object has changed since the last request.
 11049  func (c *ProjectsZonesGetServerconfigCall) IfNoneMatch(entityTag string) *ProjectsZonesGetServerconfigCall {
 11050  	c.ifNoneMatch_ = entityTag
 11051  	return c
 11052  }
 11053  
 11054  // Context sets the context to be used in this call's Do method.
 11055  func (c *ProjectsZonesGetServerconfigCall) Context(ctx context.Context) *ProjectsZonesGetServerconfigCall {
 11056  	c.ctx_ = ctx
 11057  	return c
 11058  }
 11059  
 11060  // Header returns a http.Header that can be modified by the caller to add
 11061  // headers to the request.
 11062  func (c *ProjectsZonesGetServerconfigCall) Header() http.Header {
 11063  	if c.header_ == nil {
 11064  		c.header_ = make(http.Header)
 11065  	}
 11066  	return c.header_
 11067  }
 11068  
 11069  func (c *ProjectsZonesGetServerconfigCall) doRequest(alt string) (*http.Response, error) {
 11070  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 11071  	if c.ifNoneMatch_ != "" {
 11072  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 11073  	}
 11074  	var body io.Reader = nil
 11075  	c.urlParams_.Set("alt", alt)
 11076  	c.urlParams_.Set("prettyPrint", "false")
 11077  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/serverconfig")
 11078  	urls += "?" + c.urlParams_.Encode()
 11079  	req, err := http.NewRequest("GET", urls, body)
 11080  	if err != nil {
 11081  		return nil, err
 11082  	}
 11083  	req.Header = reqHeaders
 11084  	googleapi.Expand(req.URL, map[string]string{
 11085  		"projectId": c.projectId,
 11086  		"zone":      c.zone,
 11087  	})
 11088  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 11089  }
 11090  
 11091  // Do executes the "container.projects.zones.getServerconfig" call.
 11092  // Any non-2xx status code is an error. Response headers are in either
 11093  // *ServerConfig.ServerResponse.Header or (if a response was returned at all)
 11094  // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 11095  // whether the returned error was because http.StatusNotModified was returned.
 11096  func (c *ProjectsZonesGetServerconfigCall) Do(opts ...googleapi.CallOption) (*ServerConfig, error) {
 11097  	gensupport.SetOptions(c.urlParams_, opts...)
 11098  	res, err := c.doRequest("json")
 11099  	if res != nil && res.StatusCode == http.StatusNotModified {
 11100  		if res.Body != nil {
 11101  			res.Body.Close()
 11102  		}
 11103  		return nil, gensupport.WrapError(&googleapi.Error{
 11104  			Code:   res.StatusCode,
 11105  			Header: res.Header,
 11106  		})
 11107  	}
 11108  	if err != nil {
 11109  		return nil, err
 11110  	}
 11111  	defer googleapi.CloseBody(res)
 11112  	if err := googleapi.CheckResponse(res); err != nil {
 11113  		return nil, gensupport.WrapError(err)
 11114  	}
 11115  	ret := &ServerConfig{
 11116  		ServerResponse: googleapi.ServerResponse{
 11117  			Header:         res.Header,
 11118  			HTTPStatusCode: res.StatusCode,
 11119  		},
 11120  	}
 11121  	target := &ret
 11122  	if err := gensupport.DecodeResponse(target, res); err != nil {
 11123  		return nil, err
 11124  	}
 11125  	return ret, nil
 11126  }
 11127  
 11128  type ProjectsZonesClustersAddonsCall struct {
 11129  	s                      *Service
 11130  	projectId              string
 11131  	zone                   string
 11132  	clusterId              string
 11133  	setaddonsconfigrequest *SetAddonsConfigRequest
 11134  	urlParams_             gensupport.URLParams
 11135  	ctx_                   context.Context
 11136  	header_                http.Header
 11137  }
 11138  
 11139  // Addons: Sets the addons for a specific cluster.
 11140  //
 11141  //   - clusterId: Deprecated. The name of the cluster to upgrade. This field has
 11142  //     been deprecated and replaced by the name field.
 11143  //   - projectId: Deprecated. The Google Developers Console project ID or project
 11144  //     number
 11145  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 11146  //     This field has been deprecated and replaced by the name field.
 11147  //   - zone: Deprecated. The name of the Google Compute Engine zone
 11148  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 11149  //     cluster resides. This field has been deprecated and replaced by the name
 11150  //     field.
 11151  func (r *ProjectsZonesClustersService) Addons(projectId string, zone string, clusterId string, setaddonsconfigrequest *SetAddonsConfigRequest) *ProjectsZonesClustersAddonsCall {
 11152  	c := &ProjectsZonesClustersAddonsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 11153  	c.projectId = projectId
 11154  	c.zone = zone
 11155  	c.clusterId = clusterId
 11156  	c.setaddonsconfigrequest = setaddonsconfigrequest
 11157  	return c
 11158  }
 11159  
 11160  // Fields allows partial responses to be retrieved. See
 11161  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 11162  // details.
 11163  func (c *ProjectsZonesClustersAddonsCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersAddonsCall {
 11164  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 11165  	return c
 11166  }
 11167  
 11168  // Context sets the context to be used in this call's Do method.
 11169  func (c *ProjectsZonesClustersAddonsCall) Context(ctx context.Context) *ProjectsZonesClustersAddonsCall {
 11170  	c.ctx_ = ctx
 11171  	return c
 11172  }
 11173  
 11174  // Header returns a http.Header that can be modified by the caller to add
 11175  // headers to the request.
 11176  func (c *ProjectsZonesClustersAddonsCall) Header() http.Header {
 11177  	if c.header_ == nil {
 11178  		c.header_ = make(http.Header)
 11179  	}
 11180  	return c.header_
 11181  }
 11182  
 11183  func (c *ProjectsZonesClustersAddonsCall) doRequest(alt string) (*http.Response, error) {
 11184  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 11185  	var body io.Reader = nil
 11186  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setaddonsconfigrequest)
 11187  	if err != nil {
 11188  		return nil, err
 11189  	}
 11190  	c.urlParams_.Set("alt", alt)
 11191  	c.urlParams_.Set("prettyPrint", "false")
 11192  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/addons")
 11193  	urls += "?" + c.urlParams_.Encode()
 11194  	req, err := http.NewRequest("POST", urls, body)
 11195  	if err != nil {
 11196  		return nil, err
 11197  	}
 11198  	req.Header = reqHeaders
 11199  	googleapi.Expand(req.URL, map[string]string{
 11200  		"projectId": c.projectId,
 11201  		"zone":      c.zone,
 11202  		"clusterId": c.clusterId,
 11203  	})
 11204  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 11205  }
 11206  
 11207  // Do executes the "container.projects.zones.clusters.addons" call.
 11208  // Any non-2xx status code is an error. Response headers are in either
 11209  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 11210  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 11211  // whether the returned error was because http.StatusNotModified was returned.
 11212  func (c *ProjectsZonesClustersAddonsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 11213  	gensupport.SetOptions(c.urlParams_, opts...)
 11214  	res, err := c.doRequest("json")
 11215  	if res != nil && res.StatusCode == http.StatusNotModified {
 11216  		if res.Body != nil {
 11217  			res.Body.Close()
 11218  		}
 11219  		return nil, gensupport.WrapError(&googleapi.Error{
 11220  			Code:   res.StatusCode,
 11221  			Header: res.Header,
 11222  		})
 11223  	}
 11224  	if err != nil {
 11225  		return nil, err
 11226  	}
 11227  	defer googleapi.CloseBody(res)
 11228  	if err := googleapi.CheckResponse(res); err != nil {
 11229  		return nil, gensupport.WrapError(err)
 11230  	}
 11231  	ret := &Operation{
 11232  		ServerResponse: googleapi.ServerResponse{
 11233  			Header:         res.Header,
 11234  			HTTPStatusCode: res.StatusCode,
 11235  		},
 11236  	}
 11237  	target := &ret
 11238  	if err := gensupport.DecodeResponse(target, res); err != nil {
 11239  		return nil, err
 11240  	}
 11241  	return ret, nil
 11242  }
 11243  
 11244  type ProjectsZonesClustersCompleteIpRotationCall struct {
 11245  	s                         *Service
 11246  	projectId                 string
 11247  	zone                      string
 11248  	clusterId                 string
 11249  	completeiprotationrequest *CompleteIPRotationRequest
 11250  	urlParams_                gensupport.URLParams
 11251  	ctx_                      context.Context
 11252  	header_                   http.Header
 11253  }
 11254  
 11255  // CompleteIpRotation: Completes master IP rotation.
 11256  //
 11257  //   - clusterId: Deprecated. The name of the cluster. This field has been
 11258  //     deprecated and replaced by the name field.
 11259  //   - projectId: Deprecated. The Google Developers Console project ID or project
 11260  //     number
 11261  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 11262  //     This field has been deprecated and replaced by the name field.
 11263  //   - zone: Deprecated. The name of the Google Compute Engine zone
 11264  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 11265  //     cluster resides. This field has been deprecated and replaced by the name
 11266  //     field.
 11267  func (r *ProjectsZonesClustersService) CompleteIpRotation(projectId string, zone string, clusterId string, completeiprotationrequest *CompleteIPRotationRequest) *ProjectsZonesClustersCompleteIpRotationCall {
 11268  	c := &ProjectsZonesClustersCompleteIpRotationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 11269  	c.projectId = projectId
 11270  	c.zone = zone
 11271  	c.clusterId = clusterId
 11272  	c.completeiprotationrequest = completeiprotationrequest
 11273  	return c
 11274  }
 11275  
 11276  // Fields allows partial responses to be retrieved. See
 11277  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 11278  // details.
 11279  func (c *ProjectsZonesClustersCompleteIpRotationCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersCompleteIpRotationCall {
 11280  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 11281  	return c
 11282  }
 11283  
 11284  // Context sets the context to be used in this call's Do method.
 11285  func (c *ProjectsZonesClustersCompleteIpRotationCall) Context(ctx context.Context) *ProjectsZonesClustersCompleteIpRotationCall {
 11286  	c.ctx_ = ctx
 11287  	return c
 11288  }
 11289  
 11290  // Header returns a http.Header that can be modified by the caller to add
 11291  // headers to the request.
 11292  func (c *ProjectsZonesClustersCompleteIpRotationCall) Header() http.Header {
 11293  	if c.header_ == nil {
 11294  		c.header_ = make(http.Header)
 11295  	}
 11296  	return c.header_
 11297  }
 11298  
 11299  func (c *ProjectsZonesClustersCompleteIpRotationCall) doRequest(alt string) (*http.Response, error) {
 11300  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 11301  	var body io.Reader = nil
 11302  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.completeiprotationrequest)
 11303  	if err != nil {
 11304  		return nil, err
 11305  	}
 11306  	c.urlParams_.Set("alt", alt)
 11307  	c.urlParams_.Set("prettyPrint", "false")
 11308  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:completeIpRotation")
 11309  	urls += "?" + c.urlParams_.Encode()
 11310  	req, err := http.NewRequest("POST", urls, body)
 11311  	if err != nil {
 11312  		return nil, err
 11313  	}
 11314  	req.Header = reqHeaders
 11315  	googleapi.Expand(req.URL, map[string]string{
 11316  		"projectId": c.projectId,
 11317  		"zone":      c.zone,
 11318  		"clusterId": c.clusterId,
 11319  	})
 11320  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 11321  }
 11322  
 11323  // Do executes the "container.projects.zones.clusters.completeIpRotation" call.
 11324  // Any non-2xx status code is an error. Response headers are in either
 11325  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 11326  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 11327  // whether the returned error was because http.StatusNotModified was returned.
 11328  func (c *ProjectsZonesClustersCompleteIpRotationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 11329  	gensupport.SetOptions(c.urlParams_, opts...)
 11330  	res, err := c.doRequest("json")
 11331  	if res != nil && res.StatusCode == http.StatusNotModified {
 11332  		if res.Body != nil {
 11333  			res.Body.Close()
 11334  		}
 11335  		return nil, gensupport.WrapError(&googleapi.Error{
 11336  			Code:   res.StatusCode,
 11337  			Header: res.Header,
 11338  		})
 11339  	}
 11340  	if err != nil {
 11341  		return nil, err
 11342  	}
 11343  	defer googleapi.CloseBody(res)
 11344  	if err := googleapi.CheckResponse(res); err != nil {
 11345  		return nil, gensupport.WrapError(err)
 11346  	}
 11347  	ret := &Operation{
 11348  		ServerResponse: googleapi.ServerResponse{
 11349  			Header:         res.Header,
 11350  			HTTPStatusCode: res.StatusCode,
 11351  		},
 11352  	}
 11353  	target := &ret
 11354  	if err := gensupport.DecodeResponse(target, res); err != nil {
 11355  		return nil, err
 11356  	}
 11357  	return ret, nil
 11358  }
 11359  
 11360  type ProjectsZonesClustersCreateCall struct {
 11361  	s                    *Service
 11362  	projectId            string
 11363  	zone                 string
 11364  	createclusterrequest *CreateClusterRequest
 11365  	urlParams_           gensupport.URLParams
 11366  	ctx_                 context.Context
 11367  	header_              http.Header
 11368  }
 11369  
 11370  // Create: Creates a cluster, consisting of the specified number and type of
 11371  // Google Compute Engine instances. By default, the cluster is created in the
 11372  // project's default network
 11373  // (https://cloud.google.com/compute/docs/networks-and-firewalls#networks). One
 11374  // firewall is added for the cluster. After cluster creation, the Kubelet
 11375  // creates routes for each node to allow the containers on that node to
 11376  // communicate with all other instances in the cluster. Finally, an entry is
 11377  // added to the project's global metadata indicating which CIDR range the
 11378  // cluster is using.
 11379  //
 11380  //   - projectId: Deprecated. The Google Developers Console project ID or project
 11381  //     number
 11382  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 11383  //     This field has been deprecated and replaced by the parent field.
 11384  //   - zone: Deprecated. The name of the Google Compute Engine zone
 11385  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 11386  //     cluster resides. This field has been deprecated and replaced by the parent
 11387  //     field.
 11388  func (r *ProjectsZonesClustersService) Create(projectId string, zone string, createclusterrequest *CreateClusterRequest) *ProjectsZonesClustersCreateCall {
 11389  	c := &ProjectsZonesClustersCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 11390  	c.projectId = projectId
 11391  	c.zone = zone
 11392  	c.createclusterrequest = createclusterrequest
 11393  	return c
 11394  }
 11395  
 11396  // Fields allows partial responses to be retrieved. See
 11397  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 11398  // details.
 11399  func (c *ProjectsZonesClustersCreateCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersCreateCall {
 11400  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 11401  	return c
 11402  }
 11403  
 11404  // Context sets the context to be used in this call's Do method.
 11405  func (c *ProjectsZonesClustersCreateCall) Context(ctx context.Context) *ProjectsZonesClustersCreateCall {
 11406  	c.ctx_ = ctx
 11407  	return c
 11408  }
 11409  
 11410  // Header returns a http.Header that can be modified by the caller to add
 11411  // headers to the request.
 11412  func (c *ProjectsZonesClustersCreateCall) Header() http.Header {
 11413  	if c.header_ == nil {
 11414  		c.header_ = make(http.Header)
 11415  	}
 11416  	return c.header_
 11417  }
 11418  
 11419  func (c *ProjectsZonesClustersCreateCall) doRequest(alt string) (*http.Response, error) {
 11420  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 11421  	var body io.Reader = nil
 11422  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createclusterrequest)
 11423  	if err != nil {
 11424  		return nil, err
 11425  	}
 11426  	c.urlParams_.Set("alt", alt)
 11427  	c.urlParams_.Set("prettyPrint", "false")
 11428  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters")
 11429  	urls += "?" + c.urlParams_.Encode()
 11430  	req, err := http.NewRequest("POST", urls, body)
 11431  	if err != nil {
 11432  		return nil, err
 11433  	}
 11434  	req.Header = reqHeaders
 11435  	googleapi.Expand(req.URL, map[string]string{
 11436  		"projectId": c.projectId,
 11437  		"zone":      c.zone,
 11438  	})
 11439  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 11440  }
 11441  
 11442  // Do executes the "container.projects.zones.clusters.create" call.
 11443  // Any non-2xx status code is an error. Response headers are in either
 11444  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 11445  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 11446  // whether the returned error was because http.StatusNotModified was returned.
 11447  func (c *ProjectsZonesClustersCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 11448  	gensupport.SetOptions(c.urlParams_, opts...)
 11449  	res, err := c.doRequest("json")
 11450  	if res != nil && res.StatusCode == http.StatusNotModified {
 11451  		if res.Body != nil {
 11452  			res.Body.Close()
 11453  		}
 11454  		return nil, gensupport.WrapError(&googleapi.Error{
 11455  			Code:   res.StatusCode,
 11456  			Header: res.Header,
 11457  		})
 11458  	}
 11459  	if err != nil {
 11460  		return nil, err
 11461  	}
 11462  	defer googleapi.CloseBody(res)
 11463  	if err := googleapi.CheckResponse(res); err != nil {
 11464  		return nil, gensupport.WrapError(err)
 11465  	}
 11466  	ret := &Operation{
 11467  		ServerResponse: googleapi.ServerResponse{
 11468  			Header:         res.Header,
 11469  			HTTPStatusCode: res.StatusCode,
 11470  		},
 11471  	}
 11472  	target := &ret
 11473  	if err := gensupport.DecodeResponse(target, res); err != nil {
 11474  		return nil, err
 11475  	}
 11476  	return ret, nil
 11477  }
 11478  
 11479  type ProjectsZonesClustersDeleteCall struct {
 11480  	s          *Service
 11481  	projectId  string
 11482  	zone       string
 11483  	clusterId  string
 11484  	urlParams_ gensupport.URLParams
 11485  	ctx_       context.Context
 11486  	header_    http.Header
 11487  }
 11488  
 11489  // Delete: Deletes the cluster, including the Kubernetes endpoint and all
 11490  // worker nodes. Firewalls and routes that were configured during cluster
 11491  // creation are also deleted. Other Google Compute Engine resources that might
 11492  // be in use by the cluster, such as load balancer resources, are not deleted
 11493  // if they weren't present when the cluster was initially created.
 11494  //
 11495  //   - clusterId: Deprecated. The name of the cluster to delete. This field has
 11496  //     been deprecated and replaced by the name field.
 11497  //   - projectId: Deprecated. The Google Developers Console project ID or project
 11498  //     number
 11499  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 11500  //     This field has been deprecated and replaced by the name field.
 11501  //   - zone: Deprecated. The name of the Google Compute Engine zone
 11502  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 11503  //     cluster resides. This field has been deprecated and replaced by the name
 11504  //     field.
 11505  func (r *ProjectsZonesClustersService) Delete(projectId string, zone string, clusterId string) *ProjectsZonesClustersDeleteCall {
 11506  	c := &ProjectsZonesClustersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 11507  	c.projectId = projectId
 11508  	c.zone = zone
 11509  	c.clusterId = clusterId
 11510  	return c
 11511  }
 11512  
 11513  // Name sets the optional parameter "name": The name (project, location,
 11514  // cluster) of the cluster to delete. Specified in the format
 11515  // `projects/*/locations/*/clusters/*`.
 11516  func (c *ProjectsZonesClustersDeleteCall) Name(name string) *ProjectsZonesClustersDeleteCall {
 11517  	c.urlParams_.Set("name", name)
 11518  	return c
 11519  }
 11520  
 11521  // Fields allows partial responses to be retrieved. See
 11522  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 11523  // details.
 11524  func (c *ProjectsZonesClustersDeleteCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersDeleteCall {
 11525  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 11526  	return c
 11527  }
 11528  
 11529  // Context sets the context to be used in this call's Do method.
 11530  func (c *ProjectsZonesClustersDeleteCall) Context(ctx context.Context) *ProjectsZonesClustersDeleteCall {
 11531  	c.ctx_ = ctx
 11532  	return c
 11533  }
 11534  
 11535  // Header returns a http.Header that can be modified by the caller to add
 11536  // headers to the request.
 11537  func (c *ProjectsZonesClustersDeleteCall) Header() http.Header {
 11538  	if c.header_ == nil {
 11539  		c.header_ = make(http.Header)
 11540  	}
 11541  	return c.header_
 11542  }
 11543  
 11544  func (c *ProjectsZonesClustersDeleteCall) doRequest(alt string) (*http.Response, error) {
 11545  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 11546  	var body io.Reader = nil
 11547  	c.urlParams_.Set("alt", alt)
 11548  	c.urlParams_.Set("prettyPrint", "false")
 11549  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}")
 11550  	urls += "?" + c.urlParams_.Encode()
 11551  	req, err := http.NewRequest("DELETE", urls, body)
 11552  	if err != nil {
 11553  		return nil, err
 11554  	}
 11555  	req.Header = reqHeaders
 11556  	googleapi.Expand(req.URL, map[string]string{
 11557  		"projectId": c.projectId,
 11558  		"zone":      c.zone,
 11559  		"clusterId": c.clusterId,
 11560  	})
 11561  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 11562  }
 11563  
 11564  // Do executes the "container.projects.zones.clusters.delete" call.
 11565  // Any non-2xx status code is an error. Response headers are in either
 11566  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 11567  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 11568  // whether the returned error was because http.StatusNotModified was returned.
 11569  func (c *ProjectsZonesClustersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 11570  	gensupport.SetOptions(c.urlParams_, opts...)
 11571  	res, err := c.doRequest("json")
 11572  	if res != nil && res.StatusCode == http.StatusNotModified {
 11573  		if res.Body != nil {
 11574  			res.Body.Close()
 11575  		}
 11576  		return nil, gensupport.WrapError(&googleapi.Error{
 11577  			Code:   res.StatusCode,
 11578  			Header: res.Header,
 11579  		})
 11580  	}
 11581  	if err != nil {
 11582  		return nil, err
 11583  	}
 11584  	defer googleapi.CloseBody(res)
 11585  	if err := googleapi.CheckResponse(res); err != nil {
 11586  		return nil, gensupport.WrapError(err)
 11587  	}
 11588  	ret := &Operation{
 11589  		ServerResponse: googleapi.ServerResponse{
 11590  			Header:         res.Header,
 11591  			HTTPStatusCode: res.StatusCode,
 11592  		},
 11593  	}
 11594  	target := &ret
 11595  	if err := gensupport.DecodeResponse(target, res); err != nil {
 11596  		return nil, err
 11597  	}
 11598  	return ret, nil
 11599  }
 11600  
 11601  type ProjectsZonesClustersGetCall struct {
 11602  	s            *Service
 11603  	projectId    string
 11604  	zone         string
 11605  	clusterId    string
 11606  	urlParams_   gensupport.URLParams
 11607  	ifNoneMatch_ string
 11608  	ctx_         context.Context
 11609  	header_      http.Header
 11610  }
 11611  
 11612  // Get: Gets the details of a specific cluster.
 11613  //
 11614  //   - clusterId: Deprecated. The name of the cluster to retrieve. This field has
 11615  //     been deprecated and replaced by the name field.
 11616  //   - projectId: Deprecated. The Google Developers Console project ID or project
 11617  //     number
 11618  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 11619  //     This field has been deprecated and replaced by the name field.
 11620  //   - zone: Deprecated. The name of the Google Compute Engine zone
 11621  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 11622  //     cluster resides. This field has been deprecated and replaced by the name
 11623  //     field.
 11624  func (r *ProjectsZonesClustersService) Get(projectId string, zone string, clusterId string) *ProjectsZonesClustersGetCall {
 11625  	c := &ProjectsZonesClustersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 11626  	c.projectId = projectId
 11627  	c.zone = zone
 11628  	c.clusterId = clusterId
 11629  	return c
 11630  }
 11631  
 11632  // Name sets the optional parameter "name": The name (project, location,
 11633  // cluster) of the cluster to retrieve. Specified in the format
 11634  // `projects/*/locations/*/clusters/*`.
 11635  func (c *ProjectsZonesClustersGetCall) Name(name string) *ProjectsZonesClustersGetCall {
 11636  	c.urlParams_.Set("name", name)
 11637  	return c
 11638  }
 11639  
 11640  // Fields allows partial responses to be retrieved. See
 11641  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 11642  // details.
 11643  func (c *ProjectsZonesClustersGetCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersGetCall {
 11644  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 11645  	return c
 11646  }
 11647  
 11648  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 11649  // object's ETag matches the given value. This is useful for getting updates
 11650  // only after the object has changed since the last request.
 11651  func (c *ProjectsZonesClustersGetCall) IfNoneMatch(entityTag string) *ProjectsZonesClustersGetCall {
 11652  	c.ifNoneMatch_ = entityTag
 11653  	return c
 11654  }
 11655  
 11656  // Context sets the context to be used in this call's Do method.
 11657  func (c *ProjectsZonesClustersGetCall) Context(ctx context.Context) *ProjectsZonesClustersGetCall {
 11658  	c.ctx_ = ctx
 11659  	return c
 11660  }
 11661  
 11662  // Header returns a http.Header that can be modified by the caller to add
 11663  // headers to the request.
 11664  func (c *ProjectsZonesClustersGetCall) Header() http.Header {
 11665  	if c.header_ == nil {
 11666  		c.header_ = make(http.Header)
 11667  	}
 11668  	return c.header_
 11669  }
 11670  
 11671  func (c *ProjectsZonesClustersGetCall) doRequest(alt string) (*http.Response, error) {
 11672  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 11673  	if c.ifNoneMatch_ != "" {
 11674  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 11675  	}
 11676  	var body io.Reader = nil
 11677  	c.urlParams_.Set("alt", alt)
 11678  	c.urlParams_.Set("prettyPrint", "false")
 11679  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}")
 11680  	urls += "?" + c.urlParams_.Encode()
 11681  	req, err := http.NewRequest("GET", urls, body)
 11682  	if err != nil {
 11683  		return nil, err
 11684  	}
 11685  	req.Header = reqHeaders
 11686  	googleapi.Expand(req.URL, map[string]string{
 11687  		"projectId": c.projectId,
 11688  		"zone":      c.zone,
 11689  		"clusterId": c.clusterId,
 11690  	})
 11691  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 11692  }
 11693  
 11694  // Do executes the "container.projects.zones.clusters.get" call.
 11695  // Any non-2xx status code is an error. Response headers are in either
 11696  // *Cluster.ServerResponse.Header or (if a response was returned at all) in
 11697  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 11698  // whether the returned error was because http.StatusNotModified was returned.
 11699  func (c *ProjectsZonesClustersGetCall) Do(opts ...googleapi.CallOption) (*Cluster, error) {
 11700  	gensupport.SetOptions(c.urlParams_, opts...)
 11701  	res, err := c.doRequest("json")
 11702  	if res != nil && res.StatusCode == http.StatusNotModified {
 11703  		if res.Body != nil {
 11704  			res.Body.Close()
 11705  		}
 11706  		return nil, gensupport.WrapError(&googleapi.Error{
 11707  			Code:   res.StatusCode,
 11708  			Header: res.Header,
 11709  		})
 11710  	}
 11711  	if err != nil {
 11712  		return nil, err
 11713  	}
 11714  	defer googleapi.CloseBody(res)
 11715  	if err := googleapi.CheckResponse(res); err != nil {
 11716  		return nil, gensupport.WrapError(err)
 11717  	}
 11718  	ret := &Cluster{
 11719  		ServerResponse: googleapi.ServerResponse{
 11720  			Header:         res.Header,
 11721  			HTTPStatusCode: res.StatusCode,
 11722  		},
 11723  	}
 11724  	target := &ret
 11725  	if err := gensupport.DecodeResponse(target, res); err != nil {
 11726  		return nil, err
 11727  	}
 11728  	return ret, nil
 11729  }
 11730  
 11731  type ProjectsZonesClustersLegacyAbacCall struct {
 11732  	s                    *Service
 11733  	projectId            string
 11734  	zone                 string
 11735  	clusterId            string
 11736  	setlegacyabacrequest *SetLegacyAbacRequest
 11737  	urlParams_           gensupport.URLParams
 11738  	ctx_                 context.Context
 11739  	header_              http.Header
 11740  }
 11741  
 11742  // LegacyAbac: Enables or disables the ABAC authorization mechanism on a
 11743  // cluster.
 11744  //
 11745  //   - clusterId: Deprecated. The name of the cluster to update. This field has
 11746  //     been deprecated and replaced by the name field.
 11747  //   - projectId: Deprecated. The Google Developers Console project ID or project
 11748  //     number
 11749  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 11750  //     This field has been deprecated and replaced by the name field.
 11751  //   - zone: Deprecated. The name of the Google Compute Engine zone
 11752  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 11753  //     cluster resides. This field has been deprecated and replaced by the name
 11754  //     field.
 11755  func (r *ProjectsZonesClustersService) LegacyAbac(projectId string, zone string, clusterId string, setlegacyabacrequest *SetLegacyAbacRequest) *ProjectsZonesClustersLegacyAbacCall {
 11756  	c := &ProjectsZonesClustersLegacyAbacCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 11757  	c.projectId = projectId
 11758  	c.zone = zone
 11759  	c.clusterId = clusterId
 11760  	c.setlegacyabacrequest = setlegacyabacrequest
 11761  	return c
 11762  }
 11763  
 11764  // Fields allows partial responses to be retrieved. See
 11765  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 11766  // details.
 11767  func (c *ProjectsZonesClustersLegacyAbacCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersLegacyAbacCall {
 11768  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 11769  	return c
 11770  }
 11771  
 11772  // Context sets the context to be used in this call's Do method.
 11773  func (c *ProjectsZonesClustersLegacyAbacCall) Context(ctx context.Context) *ProjectsZonesClustersLegacyAbacCall {
 11774  	c.ctx_ = ctx
 11775  	return c
 11776  }
 11777  
 11778  // Header returns a http.Header that can be modified by the caller to add
 11779  // headers to the request.
 11780  func (c *ProjectsZonesClustersLegacyAbacCall) Header() http.Header {
 11781  	if c.header_ == nil {
 11782  		c.header_ = make(http.Header)
 11783  	}
 11784  	return c.header_
 11785  }
 11786  
 11787  func (c *ProjectsZonesClustersLegacyAbacCall) doRequest(alt string) (*http.Response, error) {
 11788  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 11789  	var body io.Reader = nil
 11790  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setlegacyabacrequest)
 11791  	if err != nil {
 11792  		return nil, err
 11793  	}
 11794  	c.urlParams_.Set("alt", alt)
 11795  	c.urlParams_.Set("prettyPrint", "false")
 11796  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/legacyAbac")
 11797  	urls += "?" + c.urlParams_.Encode()
 11798  	req, err := http.NewRequest("POST", urls, body)
 11799  	if err != nil {
 11800  		return nil, err
 11801  	}
 11802  	req.Header = reqHeaders
 11803  	googleapi.Expand(req.URL, map[string]string{
 11804  		"projectId": c.projectId,
 11805  		"zone":      c.zone,
 11806  		"clusterId": c.clusterId,
 11807  	})
 11808  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 11809  }
 11810  
 11811  // Do executes the "container.projects.zones.clusters.legacyAbac" call.
 11812  // Any non-2xx status code is an error. Response headers are in either
 11813  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 11814  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 11815  // whether the returned error was because http.StatusNotModified was returned.
 11816  func (c *ProjectsZonesClustersLegacyAbacCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 11817  	gensupport.SetOptions(c.urlParams_, opts...)
 11818  	res, err := c.doRequest("json")
 11819  	if res != nil && res.StatusCode == http.StatusNotModified {
 11820  		if res.Body != nil {
 11821  			res.Body.Close()
 11822  		}
 11823  		return nil, gensupport.WrapError(&googleapi.Error{
 11824  			Code:   res.StatusCode,
 11825  			Header: res.Header,
 11826  		})
 11827  	}
 11828  	if err != nil {
 11829  		return nil, err
 11830  	}
 11831  	defer googleapi.CloseBody(res)
 11832  	if err := googleapi.CheckResponse(res); err != nil {
 11833  		return nil, gensupport.WrapError(err)
 11834  	}
 11835  	ret := &Operation{
 11836  		ServerResponse: googleapi.ServerResponse{
 11837  			Header:         res.Header,
 11838  			HTTPStatusCode: res.StatusCode,
 11839  		},
 11840  	}
 11841  	target := &ret
 11842  	if err := gensupport.DecodeResponse(target, res); err != nil {
 11843  		return nil, err
 11844  	}
 11845  	return ret, nil
 11846  }
 11847  
 11848  type ProjectsZonesClustersListCall struct {
 11849  	s            *Service
 11850  	projectId    string
 11851  	zone         string
 11852  	urlParams_   gensupport.URLParams
 11853  	ifNoneMatch_ string
 11854  	ctx_         context.Context
 11855  	header_      http.Header
 11856  }
 11857  
 11858  // List: Lists all clusters owned by a project in either the specified zone or
 11859  // all zones.
 11860  //
 11861  //   - projectId: Deprecated. The Google Developers Console project ID or project
 11862  //     number
 11863  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 11864  //     This field has been deprecated and replaced by the parent field.
 11865  //   - zone: Deprecated. The name of the Google Compute Engine zone
 11866  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 11867  //     cluster resides, or "-" for all zones. This field has been deprecated and
 11868  //     replaced by the parent field.
 11869  func (r *ProjectsZonesClustersService) List(projectId string, zone string) *ProjectsZonesClustersListCall {
 11870  	c := &ProjectsZonesClustersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 11871  	c.projectId = projectId
 11872  	c.zone = zone
 11873  	return c
 11874  }
 11875  
 11876  // Parent sets the optional parameter "parent": The parent (project and
 11877  // location) where the clusters will be listed. Specified in the format
 11878  // `projects/*/locations/*`. Location "-" matches all zones and all regions.
 11879  func (c *ProjectsZonesClustersListCall) Parent(parent string) *ProjectsZonesClustersListCall {
 11880  	c.urlParams_.Set("parent", parent)
 11881  	return c
 11882  }
 11883  
 11884  // Fields allows partial responses to be retrieved. See
 11885  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 11886  // details.
 11887  func (c *ProjectsZonesClustersListCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersListCall {
 11888  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 11889  	return c
 11890  }
 11891  
 11892  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 11893  // object's ETag matches the given value. This is useful for getting updates
 11894  // only after the object has changed since the last request.
 11895  func (c *ProjectsZonesClustersListCall) IfNoneMatch(entityTag string) *ProjectsZonesClustersListCall {
 11896  	c.ifNoneMatch_ = entityTag
 11897  	return c
 11898  }
 11899  
 11900  // Context sets the context to be used in this call's Do method.
 11901  func (c *ProjectsZonesClustersListCall) Context(ctx context.Context) *ProjectsZonesClustersListCall {
 11902  	c.ctx_ = ctx
 11903  	return c
 11904  }
 11905  
 11906  // Header returns a http.Header that can be modified by the caller to add
 11907  // headers to the request.
 11908  func (c *ProjectsZonesClustersListCall) Header() http.Header {
 11909  	if c.header_ == nil {
 11910  		c.header_ = make(http.Header)
 11911  	}
 11912  	return c.header_
 11913  }
 11914  
 11915  func (c *ProjectsZonesClustersListCall) doRequest(alt string) (*http.Response, error) {
 11916  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 11917  	if c.ifNoneMatch_ != "" {
 11918  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 11919  	}
 11920  	var body io.Reader = nil
 11921  	c.urlParams_.Set("alt", alt)
 11922  	c.urlParams_.Set("prettyPrint", "false")
 11923  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters")
 11924  	urls += "?" + c.urlParams_.Encode()
 11925  	req, err := http.NewRequest("GET", urls, body)
 11926  	if err != nil {
 11927  		return nil, err
 11928  	}
 11929  	req.Header = reqHeaders
 11930  	googleapi.Expand(req.URL, map[string]string{
 11931  		"projectId": c.projectId,
 11932  		"zone":      c.zone,
 11933  	})
 11934  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 11935  }
 11936  
 11937  // Do executes the "container.projects.zones.clusters.list" call.
 11938  // Any non-2xx status code is an error. Response headers are in either
 11939  // *ListClustersResponse.ServerResponse.Header or (if a response was returned
 11940  // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
 11941  // check whether the returned error was because http.StatusNotModified was
 11942  // returned.
 11943  func (c *ProjectsZonesClustersListCall) Do(opts ...googleapi.CallOption) (*ListClustersResponse, error) {
 11944  	gensupport.SetOptions(c.urlParams_, opts...)
 11945  	res, err := c.doRequest("json")
 11946  	if res != nil && res.StatusCode == http.StatusNotModified {
 11947  		if res.Body != nil {
 11948  			res.Body.Close()
 11949  		}
 11950  		return nil, gensupport.WrapError(&googleapi.Error{
 11951  			Code:   res.StatusCode,
 11952  			Header: res.Header,
 11953  		})
 11954  	}
 11955  	if err != nil {
 11956  		return nil, err
 11957  	}
 11958  	defer googleapi.CloseBody(res)
 11959  	if err := googleapi.CheckResponse(res); err != nil {
 11960  		return nil, gensupport.WrapError(err)
 11961  	}
 11962  	ret := &ListClustersResponse{
 11963  		ServerResponse: googleapi.ServerResponse{
 11964  			Header:         res.Header,
 11965  			HTTPStatusCode: res.StatusCode,
 11966  		},
 11967  	}
 11968  	target := &ret
 11969  	if err := gensupport.DecodeResponse(target, res); err != nil {
 11970  		return nil, err
 11971  	}
 11972  	return ret, nil
 11973  }
 11974  
 11975  type ProjectsZonesClustersLocationsCall struct {
 11976  	s                   *Service
 11977  	projectId           string
 11978  	zone                string
 11979  	clusterId           string
 11980  	setlocationsrequest *SetLocationsRequest
 11981  	urlParams_          gensupport.URLParams
 11982  	ctx_                context.Context
 11983  	header_             http.Header
 11984  }
 11985  
 11986  // Locations: Sets the locations for a specific cluster. Deprecated. Use
 11987  // projects.locations.clusters.update
 11988  // (https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/update)
 11989  // instead.
 11990  //
 11991  //   - clusterId: Deprecated. The name of the cluster to upgrade. This field has
 11992  //     been deprecated and replaced by the name field.
 11993  //   - projectId: Deprecated. The Google Developers Console project ID or project
 11994  //     number
 11995  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 11996  //     This field has been deprecated and replaced by the name field.
 11997  //   - zone: Deprecated. The name of the Google Compute Engine zone
 11998  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 11999  //     cluster resides. This field has been deprecated and replaced by the name
 12000  //     field.
 12001  func (r *ProjectsZonesClustersService) Locations(projectId string, zone string, clusterId string, setlocationsrequest *SetLocationsRequest) *ProjectsZonesClustersLocationsCall {
 12002  	c := &ProjectsZonesClustersLocationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 12003  	c.projectId = projectId
 12004  	c.zone = zone
 12005  	c.clusterId = clusterId
 12006  	c.setlocationsrequest = setlocationsrequest
 12007  	return c
 12008  }
 12009  
 12010  // Fields allows partial responses to be retrieved. See
 12011  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 12012  // details.
 12013  func (c *ProjectsZonesClustersLocationsCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersLocationsCall {
 12014  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 12015  	return c
 12016  }
 12017  
 12018  // Context sets the context to be used in this call's Do method.
 12019  func (c *ProjectsZonesClustersLocationsCall) Context(ctx context.Context) *ProjectsZonesClustersLocationsCall {
 12020  	c.ctx_ = ctx
 12021  	return c
 12022  }
 12023  
 12024  // Header returns a http.Header that can be modified by the caller to add
 12025  // headers to the request.
 12026  func (c *ProjectsZonesClustersLocationsCall) Header() http.Header {
 12027  	if c.header_ == nil {
 12028  		c.header_ = make(http.Header)
 12029  	}
 12030  	return c.header_
 12031  }
 12032  
 12033  func (c *ProjectsZonesClustersLocationsCall) doRequest(alt string) (*http.Response, error) {
 12034  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 12035  	var body io.Reader = nil
 12036  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setlocationsrequest)
 12037  	if err != nil {
 12038  		return nil, err
 12039  	}
 12040  	c.urlParams_.Set("alt", alt)
 12041  	c.urlParams_.Set("prettyPrint", "false")
 12042  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/locations")
 12043  	urls += "?" + c.urlParams_.Encode()
 12044  	req, err := http.NewRequest("POST", urls, body)
 12045  	if err != nil {
 12046  		return nil, err
 12047  	}
 12048  	req.Header = reqHeaders
 12049  	googleapi.Expand(req.URL, map[string]string{
 12050  		"projectId": c.projectId,
 12051  		"zone":      c.zone,
 12052  		"clusterId": c.clusterId,
 12053  	})
 12054  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 12055  }
 12056  
 12057  // Do executes the "container.projects.zones.clusters.locations" call.
 12058  // Any non-2xx status code is an error. Response headers are in either
 12059  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 12060  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 12061  // whether the returned error was because http.StatusNotModified was returned.
 12062  func (c *ProjectsZonesClustersLocationsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 12063  	gensupport.SetOptions(c.urlParams_, opts...)
 12064  	res, err := c.doRequest("json")
 12065  	if res != nil && res.StatusCode == http.StatusNotModified {
 12066  		if res.Body != nil {
 12067  			res.Body.Close()
 12068  		}
 12069  		return nil, gensupport.WrapError(&googleapi.Error{
 12070  			Code:   res.StatusCode,
 12071  			Header: res.Header,
 12072  		})
 12073  	}
 12074  	if err != nil {
 12075  		return nil, err
 12076  	}
 12077  	defer googleapi.CloseBody(res)
 12078  	if err := googleapi.CheckResponse(res); err != nil {
 12079  		return nil, gensupport.WrapError(err)
 12080  	}
 12081  	ret := &Operation{
 12082  		ServerResponse: googleapi.ServerResponse{
 12083  			Header:         res.Header,
 12084  			HTTPStatusCode: res.StatusCode,
 12085  		},
 12086  	}
 12087  	target := &ret
 12088  	if err := gensupport.DecodeResponse(target, res); err != nil {
 12089  		return nil, err
 12090  	}
 12091  	return ret, nil
 12092  }
 12093  
 12094  type ProjectsZonesClustersLoggingCall struct {
 12095  	s                        *Service
 12096  	projectId                string
 12097  	zone                     string
 12098  	clusterId                string
 12099  	setloggingservicerequest *SetLoggingServiceRequest
 12100  	urlParams_               gensupport.URLParams
 12101  	ctx_                     context.Context
 12102  	header_                  http.Header
 12103  }
 12104  
 12105  // Logging: Sets the logging service for a specific cluster.
 12106  //
 12107  //   - clusterId: Deprecated. The name of the cluster to upgrade. This field has
 12108  //     been deprecated and replaced by the name field.
 12109  //   - projectId: Deprecated. The Google Developers Console project ID or project
 12110  //     number
 12111  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 12112  //     This field has been deprecated and replaced by the name field.
 12113  //   - zone: Deprecated. The name of the Google Compute Engine zone
 12114  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 12115  //     cluster resides. This field has been deprecated and replaced by the name
 12116  //     field.
 12117  func (r *ProjectsZonesClustersService) Logging(projectId string, zone string, clusterId string, setloggingservicerequest *SetLoggingServiceRequest) *ProjectsZonesClustersLoggingCall {
 12118  	c := &ProjectsZonesClustersLoggingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 12119  	c.projectId = projectId
 12120  	c.zone = zone
 12121  	c.clusterId = clusterId
 12122  	c.setloggingservicerequest = setloggingservicerequest
 12123  	return c
 12124  }
 12125  
 12126  // Fields allows partial responses to be retrieved. See
 12127  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 12128  // details.
 12129  func (c *ProjectsZonesClustersLoggingCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersLoggingCall {
 12130  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 12131  	return c
 12132  }
 12133  
 12134  // Context sets the context to be used in this call's Do method.
 12135  func (c *ProjectsZonesClustersLoggingCall) Context(ctx context.Context) *ProjectsZonesClustersLoggingCall {
 12136  	c.ctx_ = ctx
 12137  	return c
 12138  }
 12139  
 12140  // Header returns a http.Header that can be modified by the caller to add
 12141  // headers to the request.
 12142  func (c *ProjectsZonesClustersLoggingCall) Header() http.Header {
 12143  	if c.header_ == nil {
 12144  		c.header_ = make(http.Header)
 12145  	}
 12146  	return c.header_
 12147  }
 12148  
 12149  func (c *ProjectsZonesClustersLoggingCall) doRequest(alt string) (*http.Response, error) {
 12150  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 12151  	var body io.Reader = nil
 12152  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setloggingservicerequest)
 12153  	if err != nil {
 12154  		return nil, err
 12155  	}
 12156  	c.urlParams_.Set("alt", alt)
 12157  	c.urlParams_.Set("prettyPrint", "false")
 12158  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/logging")
 12159  	urls += "?" + c.urlParams_.Encode()
 12160  	req, err := http.NewRequest("POST", urls, body)
 12161  	if err != nil {
 12162  		return nil, err
 12163  	}
 12164  	req.Header = reqHeaders
 12165  	googleapi.Expand(req.URL, map[string]string{
 12166  		"projectId": c.projectId,
 12167  		"zone":      c.zone,
 12168  		"clusterId": c.clusterId,
 12169  	})
 12170  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 12171  }
 12172  
 12173  // Do executes the "container.projects.zones.clusters.logging" call.
 12174  // Any non-2xx status code is an error. Response headers are in either
 12175  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 12176  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 12177  // whether the returned error was because http.StatusNotModified was returned.
 12178  func (c *ProjectsZonesClustersLoggingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 12179  	gensupport.SetOptions(c.urlParams_, opts...)
 12180  	res, err := c.doRequest("json")
 12181  	if res != nil && res.StatusCode == http.StatusNotModified {
 12182  		if res.Body != nil {
 12183  			res.Body.Close()
 12184  		}
 12185  		return nil, gensupport.WrapError(&googleapi.Error{
 12186  			Code:   res.StatusCode,
 12187  			Header: res.Header,
 12188  		})
 12189  	}
 12190  	if err != nil {
 12191  		return nil, err
 12192  	}
 12193  	defer googleapi.CloseBody(res)
 12194  	if err := googleapi.CheckResponse(res); err != nil {
 12195  		return nil, gensupport.WrapError(err)
 12196  	}
 12197  	ret := &Operation{
 12198  		ServerResponse: googleapi.ServerResponse{
 12199  			Header:         res.Header,
 12200  			HTTPStatusCode: res.StatusCode,
 12201  		},
 12202  	}
 12203  	target := &ret
 12204  	if err := gensupport.DecodeResponse(target, res); err != nil {
 12205  		return nil, err
 12206  	}
 12207  	return ret, nil
 12208  }
 12209  
 12210  type ProjectsZonesClustersMasterCall struct {
 12211  	s                   *Service
 12212  	projectId           string
 12213  	zone                string
 12214  	clusterId           string
 12215  	updatemasterrequest *UpdateMasterRequest
 12216  	urlParams_          gensupport.URLParams
 12217  	ctx_                context.Context
 12218  	header_             http.Header
 12219  }
 12220  
 12221  // Master: Updates the master for a specific cluster.
 12222  //
 12223  //   - clusterId: Deprecated. The name of the cluster to upgrade. This field has
 12224  //     been deprecated and replaced by the name field.
 12225  //   - projectId: Deprecated. The Google Developers Console project ID or project
 12226  //     number
 12227  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 12228  //     This field has been deprecated and replaced by the name field.
 12229  //   - zone: Deprecated. The name of the Google Compute Engine zone
 12230  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 12231  //     cluster resides. This field has been deprecated and replaced by the name
 12232  //     field.
 12233  func (r *ProjectsZonesClustersService) Master(projectId string, zone string, clusterId string, updatemasterrequest *UpdateMasterRequest) *ProjectsZonesClustersMasterCall {
 12234  	c := &ProjectsZonesClustersMasterCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 12235  	c.projectId = projectId
 12236  	c.zone = zone
 12237  	c.clusterId = clusterId
 12238  	c.updatemasterrequest = updatemasterrequest
 12239  	return c
 12240  }
 12241  
 12242  // Fields allows partial responses to be retrieved. See
 12243  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 12244  // details.
 12245  func (c *ProjectsZonesClustersMasterCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersMasterCall {
 12246  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 12247  	return c
 12248  }
 12249  
 12250  // Context sets the context to be used in this call's Do method.
 12251  func (c *ProjectsZonesClustersMasterCall) Context(ctx context.Context) *ProjectsZonesClustersMasterCall {
 12252  	c.ctx_ = ctx
 12253  	return c
 12254  }
 12255  
 12256  // Header returns a http.Header that can be modified by the caller to add
 12257  // headers to the request.
 12258  func (c *ProjectsZonesClustersMasterCall) Header() http.Header {
 12259  	if c.header_ == nil {
 12260  		c.header_ = make(http.Header)
 12261  	}
 12262  	return c.header_
 12263  }
 12264  
 12265  func (c *ProjectsZonesClustersMasterCall) doRequest(alt string) (*http.Response, error) {
 12266  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 12267  	var body io.Reader = nil
 12268  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updatemasterrequest)
 12269  	if err != nil {
 12270  		return nil, err
 12271  	}
 12272  	c.urlParams_.Set("alt", alt)
 12273  	c.urlParams_.Set("prettyPrint", "false")
 12274  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/master")
 12275  	urls += "?" + c.urlParams_.Encode()
 12276  	req, err := http.NewRequest("POST", urls, body)
 12277  	if err != nil {
 12278  		return nil, err
 12279  	}
 12280  	req.Header = reqHeaders
 12281  	googleapi.Expand(req.URL, map[string]string{
 12282  		"projectId": c.projectId,
 12283  		"zone":      c.zone,
 12284  		"clusterId": c.clusterId,
 12285  	})
 12286  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 12287  }
 12288  
 12289  // Do executes the "container.projects.zones.clusters.master" call.
 12290  // Any non-2xx status code is an error. Response headers are in either
 12291  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 12292  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 12293  // whether the returned error was because http.StatusNotModified was returned.
 12294  func (c *ProjectsZonesClustersMasterCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 12295  	gensupport.SetOptions(c.urlParams_, opts...)
 12296  	res, err := c.doRequest("json")
 12297  	if res != nil && res.StatusCode == http.StatusNotModified {
 12298  		if res.Body != nil {
 12299  			res.Body.Close()
 12300  		}
 12301  		return nil, gensupport.WrapError(&googleapi.Error{
 12302  			Code:   res.StatusCode,
 12303  			Header: res.Header,
 12304  		})
 12305  	}
 12306  	if err != nil {
 12307  		return nil, err
 12308  	}
 12309  	defer googleapi.CloseBody(res)
 12310  	if err := googleapi.CheckResponse(res); err != nil {
 12311  		return nil, gensupport.WrapError(err)
 12312  	}
 12313  	ret := &Operation{
 12314  		ServerResponse: googleapi.ServerResponse{
 12315  			Header:         res.Header,
 12316  			HTTPStatusCode: res.StatusCode,
 12317  		},
 12318  	}
 12319  	target := &ret
 12320  	if err := gensupport.DecodeResponse(target, res); err != nil {
 12321  		return nil, err
 12322  	}
 12323  	return ret, nil
 12324  }
 12325  
 12326  type ProjectsZonesClustersMonitoringCall struct {
 12327  	s                           *Service
 12328  	projectId                   string
 12329  	zone                        string
 12330  	clusterId                   string
 12331  	setmonitoringservicerequest *SetMonitoringServiceRequest
 12332  	urlParams_                  gensupport.URLParams
 12333  	ctx_                        context.Context
 12334  	header_                     http.Header
 12335  }
 12336  
 12337  // Monitoring: Sets the monitoring service for a specific cluster.
 12338  //
 12339  //   - clusterId: Deprecated. The name of the cluster to upgrade. This field has
 12340  //     been deprecated and replaced by the name field.
 12341  //   - projectId: Deprecated. The Google Developers Console project ID or project
 12342  //     number
 12343  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 12344  //     This field has been deprecated and replaced by the name field.
 12345  //   - zone: Deprecated. The name of the Google Compute Engine zone
 12346  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 12347  //     cluster resides. This field has been deprecated and replaced by the name
 12348  //     field.
 12349  func (r *ProjectsZonesClustersService) Monitoring(projectId string, zone string, clusterId string, setmonitoringservicerequest *SetMonitoringServiceRequest) *ProjectsZonesClustersMonitoringCall {
 12350  	c := &ProjectsZonesClustersMonitoringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 12351  	c.projectId = projectId
 12352  	c.zone = zone
 12353  	c.clusterId = clusterId
 12354  	c.setmonitoringservicerequest = setmonitoringservicerequest
 12355  	return c
 12356  }
 12357  
 12358  // Fields allows partial responses to be retrieved. See
 12359  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 12360  // details.
 12361  func (c *ProjectsZonesClustersMonitoringCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersMonitoringCall {
 12362  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 12363  	return c
 12364  }
 12365  
 12366  // Context sets the context to be used in this call's Do method.
 12367  func (c *ProjectsZonesClustersMonitoringCall) Context(ctx context.Context) *ProjectsZonesClustersMonitoringCall {
 12368  	c.ctx_ = ctx
 12369  	return c
 12370  }
 12371  
 12372  // Header returns a http.Header that can be modified by the caller to add
 12373  // headers to the request.
 12374  func (c *ProjectsZonesClustersMonitoringCall) Header() http.Header {
 12375  	if c.header_ == nil {
 12376  		c.header_ = make(http.Header)
 12377  	}
 12378  	return c.header_
 12379  }
 12380  
 12381  func (c *ProjectsZonesClustersMonitoringCall) doRequest(alt string) (*http.Response, error) {
 12382  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 12383  	var body io.Reader = nil
 12384  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setmonitoringservicerequest)
 12385  	if err != nil {
 12386  		return nil, err
 12387  	}
 12388  	c.urlParams_.Set("alt", alt)
 12389  	c.urlParams_.Set("prettyPrint", "false")
 12390  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/monitoring")
 12391  	urls += "?" + c.urlParams_.Encode()
 12392  	req, err := http.NewRequest("POST", urls, body)
 12393  	if err != nil {
 12394  		return nil, err
 12395  	}
 12396  	req.Header = reqHeaders
 12397  	googleapi.Expand(req.URL, map[string]string{
 12398  		"projectId": c.projectId,
 12399  		"zone":      c.zone,
 12400  		"clusterId": c.clusterId,
 12401  	})
 12402  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 12403  }
 12404  
 12405  // Do executes the "container.projects.zones.clusters.monitoring" call.
 12406  // Any non-2xx status code is an error. Response headers are in either
 12407  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 12408  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 12409  // whether the returned error was because http.StatusNotModified was returned.
 12410  func (c *ProjectsZonesClustersMonitoringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 12411  	gensupport.SetOptions(c.urlParams_, opts...)
 12412  	res, err := c.doRequest("json")
 12413  	if res != nil && res.StatusCode == http.StatusNotModified {
 12414  		if res.Body != nil {
 12415  			res.Body.Close()
 12416  		}
 12417  		return nil, gensupport.WrapError(&googleapi.Error{
 12418  			Code:   res.StatusCode,
 12419  			Header: res.Header,
 12420  		})
 12421  	}
 12422  	if err != nil {
 12423  		return nil, err
 12424  	}
 12425  	defer googleapi.CloseBody(res)
 12426  	if err := googleapi.CheckResponse(res); err != nil {
 12427  		return nil, gensupport.WrapError(err)
 12428  	}
 12429  	ret := &Operation{
 12430  		ServerResponse: googleapi.ServerResponse{
 12431  			Header:         res.Header,
 12432  			HTTPStatusCode: res.StatusCode,
 12433  		},
 12434  	}
 12435  	target := &ret
 12436  	if err := gensupport.DecodeResponse(target, res); err != nil {
 12437  		return nil, err
 12438  	}
 12439  	return ret, nil
 12440  }
 12441  
 12442  type ProjectsZonesClustersResourceLabelsCall struct {
 12443  	s                *Service
 12444  	projectId        string
 12445  	zone             string
 12446  	clusterId        string
 12447  	setlabelsrequest *SetLabelsRequest
 12448  	urlParams_       gensupport.URLParams
 12449  	ctx_             context.Context
 12450  	header_          http.Header
 12451  }
 12452  
 12453  // ResourceLabels: Sets labels on a cluster.
 12454  //
 12455  //   - clusterId: Deprecated. The name of the cluster. This field has been
 12456  //     deprecated and replaced by the name field.
 12457  //   - projectId: Deprecated. The Google Developers Console project ID or project
 12458  //     number
 12459  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 12460  //     This field has been deprecated and replaced by the name field.
 12461  //   - zone: Deprecated. The name of the Google Compute Engine zone
 12462  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 12463  //     cluster resides. This field has been deprecated and replaced by the name
 12464  //     field.
 12465  func (r *ProjectsZonesClustersService) ResourceLabels(projectId string, zone string, clusterId string, setlabelsrequest *SetLabelsRequest) *ProjectsZonesClustersResourceLabelsCall {
 12466  	c := &ProjectsZonesClustersResourceLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 12467  	c.projectId = projectId
 12468  	c.zone = zone
 12469  	c.clusterId = clusterId
 12470  	c.setlabelsrequest = setlabelsrequest
 12471  	return c
 12472  }
 12473  
 12474  // Fields allows partial responses to be retrieved. See
 12475  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 12476  // details.
 12477  func (c *ProjectsZonesClustersResourceLabelsCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersResourceLabelsCall {
 12478  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 12479  	return c
 12480  }
 12481  
 12482  // Context sets the context to be used in this call's Do method.
 12483  func (c *ProjectsZonesClustersResourceLabelsCall) Context(ctx context.Context) *ProjectsZonesClustersResourceLabelsCall {
 12484  	c.ctx_ = ctx
 12485  	return c
 12486  }
 12487  
 12488  // Header returns a http.Header that can be modified by the caller to add
 12489  // headers to the request.
 12490  func (c *ProjectsZonesClustersResourceLabelsCall) Header() http.Header {
 12491  	if c.header_ == nil {
 12492  		c.header_ = make(http.Header)
 12493  	}
 12494  	return c.header_
 12495  }
 12496  
 12497  func (c *ProjectsZonesClustersResourceLabelsCall) doRequest(alt string) (*http.Response, error) {
 12498  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 12499  	var body io.Reader = nil
 12500  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setlabelsrequest)
 12501  	if err != nil {
 12502  		return nil, err
 12503  	}
 12504  	c.urlParams_.Set("alt", alt)
 12505  	c.urlParams_.Set("prettyPrint", "false")
 12506  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/resourceLabels")
 12507  	urls += "?" + c.urlParams_.Encode()
 12508  	req, err := http.NewRequest("POST", urls, body)
 12509  	if err != nil {
 12510  		return nil, err
 12511  	}
 12512  	req.Header = reqHeaders
 12513  	googleapi.Expand(req.URL, map[string]string{
 12514  		"projectId": c.projectId,
 12515  		"zone":      c.zone,
 12516  		"clusterId": c.clusterId,
 12517  	})
 12518  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 12519  }
 12520  
 12521  // Do executes the "container.projects.zones.clusters.resourceLabels" call.
 12522  // Any non-2xx status code is an error. Response headers are in either
 12523  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 12524  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 12525  // whether the returned error was because http.StatusNotModified was returned.
 12526  func (c *ProjectsZonesClustersResourceLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 12527  	gensupport.SetOptions(c.urlParams_, opts...)
 12528  	res, err := c.doRequest("json")
 12529  	if res != nil && res.StatusCode == http.StatusNotModified {
 12530  		if res.Body != nil {
 12531  			res.Body.Close()
 12532  		}
 12533  		return nil, gensupport.WrapError(&googleapi.Error{
 12534  			Code:   res.StatusCode,
 12535  			Header: res.Header,
 12536  		})
 12537  	}
 12538  	if err != nil {
 12539  		return nil, err
 12540  	}
 12541  	defer googleapi.CloseBody(res)
 12542  	if err := googleapi.CheckResponse(res); err != nil {
 12543  		return nil, gensupport.WrapError(err)
 12544  	}
 12545  	ret := &Operation{
 12546  		ServerResponse: googleapi.ServerResponse{
 12547  			Header:         res.Header,
 12548  			HTTPStatusCode: res.StatusCode,
 12549  		},
 12550  	}
 12551  	target := &ret
 12552  	if err := gensupport.DecodeResponse(target, res); err != nil {
 12553  		return nil, err
 12554  	}
 12555  	return ret, nil
 12556  }
 12557  
 12558  type ProjectsZonesClustersSetMaintenancePolicyCall struct {
 12559  	s                           *Service
 12560  	projectId                   string
 12561  	zone                        string
 12562  	clusterId                   string
 12563  	setmaintenancepolicyrequest *SetMaintenancePolicyRequest
 12564  	urlParams_                  gensupport.URLParams
 12565  	ctx_                        context.Context
 12566  	header_                     http.Header
 12567  }
 12568  
 12569  // SetMaintenancePolicy: Sets the maintenance policy for a cluster.
 12570  //
 12571  //   - clusterId: The name of the cluster to update.
 12572  //   - projectId: The Google Developers Console project ID or project number
 12573  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 12574  //   - zone: The name of the Google Compute Engine zone
 12575  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 12576  //     cluster resides.
 12577  func (r *ProjectsZonesClustersService) SetMaintenancePolicy(projectId string, zone string, clusterId string, setmaintenancepolicyrequest *SetMaintenancePolicyRequest) *ProjectsZonesClustersSetMaintenancePolicyCall {
 12578  	c := &ProjectsZonesClustersSetMaintenancePolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 12579  	c.projectId = projectId
 12580  	c.zone = zone
 12581  	c.clusterId = clusterId
 12582  	c.setmaintenancepolicyrequest = setmaintenancepolicyrequest
 12583  	return c
 12584  }
 12585  
 12586  // Fields allows partial responses to be retrieved. See
 12587  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 12588  // details.
 12589  func (c *ProjectsZonesClustersSetMaintenancePolicyCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersSetMaintenancePolicyCall {
 12590  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 12591  	return c
 12592  }
 12593  
 12594  // Context sets the context to be used in this call's Do method.
 12595  func (c *ProjectsZonesClustersSetMaintenancePolicyCall) Context(ctx context.Context) *ProjectsZonesClustersSetMaintenancePolicyCall {
 12596  	c.ctx_ = ctx
 12597  	return c
 12598  }
 12599  
 12600  // Header returns a http.Header that can be modified by the caller to add
 12601  // headers to the request.
 12602  func (c *ProjectsZonesClustersSetMaintenancePolicyCall) Header() http.Header {
 12603  	if c.header_ == nil {
 12604  		c.header_ = make(http.Header)
 12605  	}
 12606  	return c.header_
 12607  }
 12608  
 12609  func (c *ProjectsZonesClustersSetMaintenancePolicyCall) doRequest(alt string) (*http.Response, error) {
 12610  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 12611  	var body io.Reader = nil
 12612  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setmaintenancepolicyrequest)
 12613  	if err != nil {
 12614  		return nil, err
 12615  	}
 12616  	c.urlParams_.Set("alt", alt)
 12617  	c.urlParams_.Set("prettyPrint", "false")
 12618  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMaintenancePolicy")
 12619  	urls += "?" + c.urlParams_.Encode()
 12620  	req, err := http.NewRequest("POST", urls, body)
 12621  	if err != nil {
 12622  		return nil, err
 12623  	}
 12624  	req.Header = reqHeaders
 12625  	googleapi.Expand(req.URL, map[string]string{
 12626  		"projectId": c.projectId,
 12627  		"zone":      c.zone,
 12628  		"clusterId": c.clusterId,
 12629  	})
 12630  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 12631  }
 12632  
 12633  // Do executes the "container.projects.zones.clusters.setMaintenancePolicy" call.
 12634  // Any non-2xx status code is an error. Response headers are in either
 12635  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 12636  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 12637  // whether the returned error was because http.StatusNotModified was returned.
 12638  func (c *ProjectsZonesClustersSetMaintenancePolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 12639  	gensupport.SetOptions(c.urlParams_, opts...)
 12640  	res, err := c.doRequest("json")
 12641  	if res != nil && res.StatusCode == http.StatusNotModified {
 12642  		if res.Body != nil {
 12643  			res.Body.Close()
 12644  		}
 12645  		return nil, gensupport.WrapError(&googleapi.Error{
 12646  			Code:   res.StatusCode,
 12647  			Header: res.Header,
 12648  		})
 12649  	}
 12650  	if err != nil {
 12651  		return nil, err
 12652  	}
 12653  	defer googleapi.CloseBody(res)
 12654  	if err := googleapi.CheckResponse(res); err != nil {
 12655  		return nil, gensupport.WrapError(err)
 12656  	}
 12657  	ret := &Operation{
 12658  		ServerResponse: googleapi.ServerResponse{
 12659  			Header:         res.Header,
 12660  			HTTPStatusCode: res.StatusCode,
 12661  		},
 12662  	}
 12663  	target := &ret
 12664  	if err := gensupport.DecodeResponse(target, res); err != nil {
 12665  		return nil, err
 12666  	}
 12667  	return ret, nil
 12668  }
 12669  
 12670  type ProjectsZonesClustersSetMasterAuthCall struct {
 12671  	s                    *Service
 12672  	projectId            string
 12673  	zone                 string
 12674  	clusterId            string
 12675  	setmasterauthrequest *SetMasterAuthRequest
 12676  	urlParams_           gensupport.URLParams
 12677  	ctx_                 context.Context
 12678  	header_              http.Header
 12679  }
 12680  
 12681  // SetMasterAuth: Sets master auth materials. Currently supports changing the
 12682  // admin password or a specific cluster, either via password generation or
 12683  // explicitly setting the password.
 12684  //
 12685  //   - clusterId: Deprecated. The name of the cluster to upgrade. This field has
 12686  //     been deprecated and replaced by the name field.
 12687  //   - projectId: Deprecated. The Google Developers Console project ID or project
 12688  //     number
 12689  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 12690  //     This field has been deprecated and replaced by the name field.
 12691  //   - zone: Deprecated. The name of the Google Compute Engine zone
 12692  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 12693  //     cluster resides. This field has been deprecated and replaced by the name
 12694  //     field.
 12695  func (r *ProjectsZonesClustersService) SetMasterAuth(projectId string, zone string, clusterId string, setmasterauthrequest *SetMasterAuthRequest) *ProjectsZonesClustersSetMasterAuthCall {
 12696  	c := &ProjectsZonesClustersSetMasterAuthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 12697  	c.projectId = projectId
 12698  	c.zone = zone
 12699  	c.clusterId = clusterId
 12700  	c.setmasterauthrequest = setmasterauthrequest
 12701  	return c
 12702  }
 12703  
 12704  // Fields allows partial responses to be retrieved. See
 12705  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 12706  // details.
 12707  func (c *ProjectsZonesClustersSetMasterAuthCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersSetMasterAuthCall {
 12708  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 12709  	return c
 12710  }
 12711  
 12712  // Context sets the context to be used in this call's Do method.
 12713  func (c *ProjectsZonesClustersSetMasterAuthCall) Context(ctx context.Context) *ProjectsZonesClustersSetMasterAuthCall {
 12714  	c.ctx_ = ctx
 12715  	return c
 12716  }
 12717  
 12718  // Header returns a http.Header that can be modified by the caller to add
 12719  // headers to the request.
 12720  func (c *ProjectsZonesClustersSetMasterAuthCall) Header() http.Header {
 12721  	if c.header_ == nil {
 12722  		c.header_ = make(http.Header)
 12723  	}
 12724  	return c.header_
 12725  }
 12726  
 12727  func (c *ProjectsZonesClustersSetMasterAuthCall) doRequest(alt string) (*http.Response, error) {
 12728  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 12729  	var body io.Reader = nil
 12730  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setmasterauthrequest)
 12731  	if err != nil {
 12732  		return nil, err
 12733  	}
 12734  	c.urlParams_.Set("alt", alt)
 12735  	c.urlParams_.Set("prettyPrint", "false")
 12736  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setMasterAuth")
 12737  	urls += "?" + c.urlParams_.Encode()
 12738  	req, err := http.NewRequest("POST", urls, body)
 12739  	if err != nil {
 12740  		return nil, err
 12741  	}
 12742  	req.Header = reqHeaders
 12743  	googleapi.Expand(req.URL, map[string]string{
 12744  		"projectId": c.projectId,
 12745  		"zone":      c.zone,
 12746  		"clusterId": c.clusterId,
 12747  	})
 12748  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 12749  }
 12750  
 12751  // Do executes the "container.projects.zones.clusters.setMasterAuth" call.
 12752  // Any non-2xx status code is an error. Response headers are in either
 12753  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 12754  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 12755  // whether the returned error was because http.StatusNotModified was returned.
 12756  func (c *ProjectsZonesClustersSetMasterAuthCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 12757  	gensupport.SetOptions(c.urlParams_, opts...)
 12758  	res, err := c.doRequest("json")
 12759  	if res != nil && res.StatusCode == http.StatusNotModified {
 12760  		if res.Body != nil {
 12761  			res.Body.Close()
 12762  		}
 12763  		return nil, gensupport.WrapError(&googleapi.Error{
 12764  			Code:   res.StatusCode,
 12765  			Header: res.Header,
 12766  		})
 12767  	}
 12768  	if err != nil {
 12769  		return nil, err
 12770  	}
 12771  	defer googleapi.CloseBody(res)
 12772  	if err := googleapi.CheckResponse(res); err != nil {
 12773  		return nil, gensupport.WrapError(err)
 12774  	}
 12775  	ret := &Operation{
 12776  		ServerResponse: googleapi.ServerResponse{
 12777  			Header:         res.Header,
 12778  			HTTPStatusCode: res.StatusCode,
 12779  		},
 12780  	}
 12781  	target := &ret
 12782  	if err := gensupport.DecodeResponse(target, res); err != nil {
 12783  		return nil, err
 12784  	}
 12785  	return ret, nil
 12786  }
 12787  
 12788  type ProjectsZonesClustersSetNetworkPolicyCall struct {
 12789  	s                       *Service
 12790  	projectId               string
 12791  	zone                    string
 12792  	clusterId               string
 12793  	setnetworkpolicyrequest *SetNetworkPolicyRequest
 12794  	urlParams_              gensupport.URLParams
 12795  	ctx_                    context.Context
 12796  	header_                 http.Header
 12797  }
 12798  
 12799  // SetNetworkPolicy: Enables or disables Network Policy for a cluster.
 12800  //
 12801  //   - clusterId: Deprecated. The name of the cluster. This field has been
 12802  //     deprecated and replaced by the name field.
 12803  //   - projectId: Deprecated. The Google Developers Console project ID or project
 12804  //     number
 12805  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 12806  //     This field has been deprecated and replaced by the name field.
 12807  //   - zone: Deprecated. The name of the Google Compute Engine zone
 12808  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 12809  //     cluster resides. This field has been deprecated and replaced by the name
 12810  //     field.
 12811  func (r *ProjectsZonesClustersService) SetNetworkPolicy(projectId string, zone string, clusterId string, setnetworkpolicyrequest *SetNetworkPolicyRequest) *ProjectsZonesClustersSetNetworkPolicyCall {
 12812  	c := &ProjectsZonesClustersSetNetworkPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 12813  	c.projectId = projectId
 12814  	c.zone = zone
 12815  	c.clusterId = clusterId
 12816  	c.setnetworkpolicyrequest = setnetworkpolicyrequest
 12817  	return c
 12818  }
 12819  
 12820  // Fields allows partial responses to be retrieved. See
 12821  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 12822  // details.
 12823  func (c *ProjectsZonesClustersSetNetworkPolicyCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersSetNetworkPolicyCall {
 12824  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 12825  	return c
 12826  }
 12827  
 12828  // Context sets the context to be used in this call's Do method.
 12829  func (c *ProjectsZonesClustersSetNetworkPolicyCall) Context(ctx context.Context) *ProjectsZonesClustersSetNetworkPolicyCall {
 12830  	c.ctx_ = ctx
 12831  	return c
 12832  }
 12833  
 12834  // Header returns a http.Header that can be modified by the caller to add
 12835  // headers to the request.
 12836  func (c *ProjectsZonesClustersSetNetworkPolicyCall) Header() http.Header {
 12837  	if c.header_ == nil {
 12838  		c.header_ = make(http.Header)
 12839  	}
 12840  	return c.header_
 12841  }
 12842  
 12843  func (c *ProjectsZonesClustersSetNetworkPolicyCall) doRequest(alt string) (*http.Response, error) {
 12844  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 12845  	var body io.Reader = nil
 12846  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setnetworkpolicyrequest)
 12847  	if err != nil {
 12848  		return nil, err
 12849  	}
 12850  	c.urlParams_.Set("alt", alt)
 12851  	c.urlParams_.Set("prettyPrint", "false")
 12852  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:setNetworkPolicy")
 12853  	urls += "?" + c.urlParams_.Encode()
 12854  	req, err := http.NewRequest("POST", urls, body)
 12855  	if err != nil {
 12856  		return nil, err
 12857  	}
 12858  	req.Header = reqHeaders
 12859  	googleapi.Expand(req.URL, map[string]string{
 12860  		"projectId": c.projectId,
 12861  		"zone":      c.zone,
 12862  		"clusterId": c.clusterId,
 12863  	})
 12864  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 12865  }
 12866  
 12867  // Do executes the "container.projects.zones.clusters.setNetworkPolicy" call.
 12868  // Any non-2xx status code is an error. Response headers are in either
 12869  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 12870  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 12871  // whether the returned error was because http.StatusNotModified was returned.
 12872  func (c *ProjectsZonesClustersSetNetworkPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 12873  	gensupport.SetOptions(c.urlParams_, opts...)
 12874  	res, err := c.doRequest("json")
 12875  	if res != nil && res.StatusCode == http.StatusNotModified {
 12876  		if res.Body != nil {
 12877  			res.Body.Close()
 12878  		}
 12879  		return nil, gensupport.WrapError(&googleapi.Error{
 12880  			Code:   res.StatusCode,
 12881  			Header: res.Header,
 12882  		})
 12883  	}
 12884  	if err != nil {
 12885  		return nil, err
 12886  	}
 12887  	defer googleapi.CloseBody(res)
 12888  	if err := googleapi.CheckResponse(res); err != nil {
 12889  		return nil, gensupport.WrapError(err)
 12890  	}
 12891  	ret := &Operation{
 12892  		ServerResponse: googleapi.ServerResponse{
 12893  			Header:         res.Header,
 12894  			HTTPStatusCode: res.StatusCode,
 12895  		},
 12896  	}
 12897  	target := &ret
 12898  	if err := gensupport.DecodeResponse(target, res); err != nil {
 12899  		return nil, err
 12900  	}
 12901  	return ret, nil
 12902  }
 12903  
 12904  type ProjectsZonesClustersStartIpRotationCall struct {
 12905  	s                      *Service
 12906  	projectId              string
 12907  	zone                   string
 12908  	clusterId              string
 12909  	startiprotationrequest *StartIPRotationRequest
 12910  	urlParams_             gensupport.URLParams
 12911  	ctx_                   context.Context
 12912  	header_                http.Header
 12913  }
 12914  
 12915  // StartIpRotation: Starts master IP rotation.
 12916  //
 12917  //   - clusterId: Deprecated. The name of the cluster. This field has been
 12918  //     deprecated and replaced by the name field.
 12919  //   - projectId: Deprecated. The Google Developers Console project ID or project
 12920  //     number
 12921  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 12922  //     This field has been deprecated and replaced by the name field.
 12923  //   - zone: Deprecated. The name of the Google Compute Engine zone
 12924  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 12925  //     cluster resides. This field has been deprecated and replaced by the name
 12926  //     field.
 12927  func (r *ProjectsZonesClustersService) StartIpRotation(projectId string, zone string, clusterId string, startiprotationrequest *StartIPRotationRequest) *ProjectsZonesClustersStartIpRotationCall {
 12928  	c := &ProjectsZonesClustersStartIpRotationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 12929  	c.projectId = projectId
 12930  	c.zone = zone
 12931  	c.clusterId = clusterId
 12932  	c.startiprotationrequest = startiprotationrequest
 12933  	return c
 12934  }
 12935  
 12936  // Fields allows partial responses to be retrieved. See
 12937  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 12938  // details.
 12939  func (c *ProjectsZonesClustersStartIpRotationCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersStartIpRotationCall {
 12940  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 12941  	return c
 12942  }
 12943  
 12944  // Context sets the context to be used in this call's Do method.
 12945  func (c *ProjectsZonesClustersStartIpRotationCall) Context(ctx context.Context) *ProjectsZonesClustersStartIpRotationCall {
 12946  	c.ctx_ = ctx
 12947  	return c
 12948  }
 12949  
 12950  // Header returns a http.Header that can be modified by the caller to add
 12951  // headers to the request.
 12952  func (c *ProjectsZonesClustersStartIpRotationCall) Header() http.Header {
 12953  	if c.header_ == nil {
 12954  		c.header_ = make(http.Header)
 12955  	}
 12956  	return c.header_
 12957  }
 12958  
 12959  func (c *ProjectsZonesClustersStartIpRotationCall) doRequest(alt string) (*http.Response, error) {
 12960  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 12961  	var body io.Reader = nil
 12962  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.startiprotationrequest)
 12963  	if err != nil {
 12964  		return nil, err
 12965  	}
 12966  	c.urlParams_.Set("alt", alt)
 12967  	c.urlParams_.Set("prettyPrint", "false")
 12968  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}:startIpRotation")
 12969  	urls += "?" + c.urlParams_.Encode()
 12970  	req, err := http.NewRequest("POST", urls, body)
 12971  	if err != nil {
 12972  		return nil, err
 12973  	}
 12974  	req.Header = reqHeaders
 12975  	googleapi.Expand(req.URL, map[string]string{
 12976  		"projectId": c.projectId,
 12977  		"zone":      c.zone,
 12978  		"clusterId": c.clusterId,
 12979  	})
 12980  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 12981  }
 12982  
 12983  // Do executes the "container.projects.zones.clusters.startIpRotation" call.
 12984  // Any non-2xx status code is an error. Response headers are in either
 12985  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 12986  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 12987  // whether the returned error was because http.StatusNotModified was returned.
 12988  func (c *ProjectsZonesClustersStartIpRotationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 12989  	gensupport.SetOptions(c.urlParams_, opts...)
 12990  	res, err := c.doRequest("json")
 12991  	if res != nil && res.StatusCode == http.StatusNotModified {
 12992  		if res.Body != nil {
 12993  			res.Body.Close()
 12994  		}
 12995  		return nil, gensupport.WrapError(&googleapi.Error{
 12996  			Code:   res.StatusCode,
 12997  			Header: res.Header,
 12998  		})
 12999  	}
 13000  	if err != nil {
 13001  		return nil, err
 13002  	}
 13003  	defer googleapi.CloseBody(res)
 13004  	if err := googleapi.CheckResponse(res); err != nil {
 13005  		return nil, gensupport.WrapError(err)
 13006  	}
 13007  	ret := &Operation{
 13008  		ServerResponse: googleapi.ServerResponse{
 13009  			Header:         res.Header,
 13010  			HTTPStatusCode: res.StatusCode,
 13011  		},
 13012  	}
 13013  	target := &ret
 13014  	if err := gensupport.DecodeResponse(target, res); err != nil {
 13015  		return nil, err
 13016  	}
 13017  	return ret, nil
 13018  }
 13019  
 13020  type ProjectsZonesClustersUpdateCall struct {
 13021  	s                    *Service
 13022  	projectId            string
 13023  	zone                 string
 13024  	clusterId            string
 13025  	updateclusterrequest *UpdateClusterRequest
 13026  	urlParams_           gensupport.URLParams
 13027  	ctx_                 context.Context
 13028  	header_              http.Header
 13029  }
 13030  
 13031  // Update: Updates the settings of a specific cluster.
 13032  //
 13033  //   - clusterId: Deprecated. The name of the cluster to upgrade. This field has
 13034  //     been deprecated and replaced by the name field.
 13035  //   - projectId: Deprecated. The Google Developers Console project ID or project
 13036  //     number
 13037  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 13038  //     This field has been deprecated and replaced by the name field.
 13039  //   - zone: Deprecated. The name of the Google Compute Engine zone
 13040  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 13041  //     cluster resides. This field has been deprecated and replaced by the name
 13042  //     field.
 13043  func (r *ProjectsZonesClustersService) Update(projectId string, zone string, clusterId string, updateclusterrequest *UpdateClusterRequest) *ProjectsZonesClustersUpdateCall {
 13044  	c := &ProjectsZonesClustersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 13045  	c.projectId = projectId
 13046  	c.zone = zone
 13047  	c.clusterId = clusterId
 13048  	c.updateclusterrequest = updateclusterrequest
 13049  	return c
 13050  }
 13051  
 13052  // Fields allows partial responses to be retrieved. See
 13053  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 13054  // details.
 13055  func (c *ProjectsZonesClustersUpdateCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersUpdateCall {
 13056  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 13057  	return c
 13058  }
 13059  
 13060  // Context sets the context to be used in this call's Do method.
 13061  func (c *ProjectsZonesClustersUpdateCall) Context(ctx context.Context) *ProjectsZonesClustersUpdateCall {
 13062  	c.ctx_ = ctx
 13063  	return c
 13064  }
 13065  
 13066  // Header returns a http.Header that can be modified by the caller to add
 13067  // headers to the request.
 13068  func (c *ProjectsZonesClustersUpdateCall) Header() http.Header {
 13069  	if c.header_ == nil {
 13070  		c.header_ = make(http.Header)
 13071  	}
 13072  	return c.header_
 13073  }
 13074  
 13075  func (c *ProjectsZonesClustersUpdateCall) doRequest(alt string) (*http.Response, error) {
 13076  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 13077  	var body io.Reader = nil
 13078  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updateclusterrequest)
 13079  	if err != nil {
 13080  		return nil, err
 13081  	}
 13082  	c.urlParams_.Set("alt", alt)
 13083  	c.urlParams_.Set("prettyPrint", "false")
 13084  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}")
 13085  	urls += "?" + c.urlParams_.Encode()
 13086  	req, err := http.NewRequest("PUT", urls, body)
 13087  	if err != nil {
 13088  		return nil, err
 13089  	}
 13090  	req.Header = reqHeaders
 13091  	googleapi.Expand(req.URL, map[string]string{
 13092  		"projectId": c.projectId,
 13093  		"zone":      c.zone,
 13094  		"clusterId": c.clusterId,
 13095  	})
 13096  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 13097  }
 13098  
 13099  // Do executes the "container.projects.zones.clusters.update" call.
 13100  // Any non-2xx status code is an error. Response headers are in either
 13101  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 13102  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 13103  // whether the returned error was because http.StatusNotModified was returned.
 13104  func (c *ProjectsZonesClustersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 13105  	gensupport.SetOptions(c.urlParams_, opts...)
 13106  	res, err := c.doRequest("json")
 13107  	if res != nil && res.StatusCode == http.StatusNotModified {
 13108  		if res.Body != nil {
 13109  			res.Body.Close()
 13110  		}
 13111  		return nil, gensupport.WrapError(&googleapi.Error{
 13112  			Code:   res.StatusCode,
 13113  			Header: res.Header,
 13114  		})
 13115  	}
 13116  	if err != nil {
 13117  		return nil, err
 13118  	}
 13119  	defer googleapi.CloseBody(res)
 13120  	if err := googleapi.CheckResponse(res); err != nil {
 13121  		return nil, gensupport.WrapError(err)
 13122  	}
 13123  	ret := &Operation{
 13124  		ServerResponse: googleapi.ServerResponse{
 13125  			Header:         res.Header,
 13126  			HTTPStatusCode: res.StatusCode,
 13127  		},
 13128  	}
 13129  	target := &ret
 13130  	if err := gensupport.DecodeResponse(target, res); err != nil {
 13131  		return nil, err
 13132  	}
 13133  	return ret, nil
 13134  }
 13135  
 13136  type ProjectsZonesClustersNodePoolsAutoscalingCall struct {
 13137  	s                             *Service
 13138  	projectId                     string
 13139  	zone                          string
 13140  	clusterId                     string
 13141  	nodePoolId                    string
 13142  	setnodepoolautoscalingrequest *SetNodePoolAutoscalingRequest
 13143  	urlParams_                    gensupport.URLParams
 13144  	ctx_                          context.Context
 13145  	header_                       http.Header
 13146  }
 13147  
 13148  // Autoscaling: Sets the autoscaling settings for the specified node pool.
 13149  //
 13150  //   - clusterId: Deprecated. The name of the cluster to upgrade. This field has
 13151  //     been deprecated and replaced by the name field.
 13152  //   - nodePoolId: Deprecated. The name of the node pool to upgrade. This field
 13153  //     has been deprecated and replaced by the name field.
 13154  //   - projectId: Deprecated. The Google Developers Console project ID or project
 13155  //     number
 13156  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 13157  //     This field has been deprecated and replaced by the name field.
 13158  //   - zone: Deprecated. The name of the Google Compute Engine zone
 13159  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 13160  //     cluster resides. This field has been deprecated and replaced by the name
 13161  //     field.
 13162  func (r *ProjectsZonesClustersNodePoolsService) Autoscaling(projectId string, zone string, clusterId string, nodePoolId string, setnodepoolautoscalingrequest *SetNodePoolAutoscalingRequest) *ProjectsZonesClustersNodePoolsAutoscalingCall {
 13163  	c := &ProjectsZonesClustersNodePoolsAutoscalingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 13164  	c.projectId = projectId
 13165  	c.zone = zone
 13166  	c.clusterId = clusterId
 13167  	c.nodePoolId = nodePoolId
 13168  	c.setnodepoolautoscalingrequest = setnodepoolautoscalingrequest
 13169  	return c
 13170  }
 13171  
 13172  // Fields allows partial responses to be retrieved. See
 13173  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 13174  // details.
 13175  func (c *ProjectsZonesClustersNodePoolsAutoscalingCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersNodePoolsAutoscalingCall {
 13176  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 13177  	return c
 13178  }
 13179  
 13180  // Context sets the context to be used in this call's Do method.
 13181  func (c *ProjectsZonesClustersNodePoolsAutoscalingCall) Context(ctx context.Context) *ProjectsZonesClustersNodePoolsAutoscalingCall {
 13182  	c.ctx_ = ctx
 13183  	return c
 13184  }
 13185  
 13186  // Header returns a http.Header that can be modified by the caller to add
 13187  // headers to the request.
 13188  func (c *ProjectsZonesClustersNodePoolsAutoscalingCall) Header() http.Header {
 13189  	if c.header_ == nil {
 13190  		c.header_ = make(http.Header)
 13191  	}
 13192  	return c.header_
 13193  }
 13194  
 13195  func (c *ProjectsZonesClustersNodePoolsAutoscalingCall) doRequest(alt string) (*http.Response, error) {
 13196  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 13197  	var body io.Reader = nil
 13198  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setnodepoolautoscalingrequest)
 13199  	if err != nil {
 13200  		return nil, err
 13201  	}
 13202  	c.urlParams_.Set("alt", alt)
 13203  	c.urlParams_.Set("prettyPrint", "false")
 13204  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/autoscaling")
 13205  	urls += "?" + c.urlParams_.Encode()
 13206  	req, err := http.NewRequest("POST", urls, body)
 13207  	if err != nil {
 13208  		return nil, err
 13209  	}
 13210  	req.Header = reqHeaders
 13211  	googleapi.Expand(req.URL, map[string]string{
 13212  		"projectId":  c.projectId,
 13213  		"zone":       c.zone,
 13214  		"clusterId":  c.clusterId,
 13215  		"nodePoolId": c.nodePoolId,
 13216  	})
 13217  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 13218  }
 13219  
 13220  // Do executes the "container.projects.zones.clusters.nodePools.autoscaling" call.
 13221  // Any non-2xx status code is an error. Response headers are in either
 13222  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 13223  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 13224  // whether the returned error was because http.StatusNotModified was returned.
 13225  func (c *ProjectsZonesClustersNodePoolsAutoscalingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 13226  	gensupport.SetOptions(c.urlParams_, opts...)
 13227  	res, err := c.doRequest("json")
 13228  	if res != nil && res.StatusCode == http.StatusNotModified {
 13229  		if res.Body != nil {
 13230  			res.Body.Close()
 13231  		}
 13232  		return nil, gensupport.WrapError(&googleapi.Error{
 13233  			Code:   res.StatusCode,
 13234  			Header: res.Header,
 13235  		})
 13236  	}
 13237  	if err != nil {
 13238  		return nil, err
 13239  	}
 13240  	defer googleapi.CloseBody(res)
 13241  	if err := googleapi.CheckResponse(res); err != nil {
 13242  		return nil, gensupport.WrapError(err)
 13243  	}
 13244  	ret := &Operation{
 13245  		ServerResponse: googleapi.ServerResponse{
 13246  			Header:         res.Header,
 13247  			HTTPStatusCode: res.StatusCode,
 13248  		},
 13249  	}
 13250  	target := &ret
 13251  	if err := gensupport.DecodeResponse(target, res); err != nil {
 13252  		return nil, err
 13253  	}
 13254  	return ret, nil
 13255  }
 13256  
 13257  type ProjectsZonesClustersNodePoolsCreateCall struct {
 13258  	s                     *Service
 13259  	projectId             string
 13260  	zone                  string
 13261  	clusterId             string
 13262  	createnodepoolrequest *CreateNodePoolRequest
 13263  	urlParams_            gensupport.URLParams
 13264  	ctx_                  context.Context
 13265  	header_               http.Header
 13266  }
 13267  
 13268  // Create: Creates a node pool for a cluster.
 13269  //
 13270  //   - clusterId: Deprecated. The name of the cluster. This field has been
 13271  //     deprecated and replaced by the parent field.
 13272  //   - projectId: Deprecated. The Google Developers Console project ID or project
 13273  //     number
 13274  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 13275  //     This field has been deprecated and replaced by the parent field.
 13276  //   - zone: Deprecated. The name of the Google Compute Engine zone
 13277  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 13278  //     cluster resides. This field has been deprecated and replaced by the parent
 13279  //     field.
 13280  func (r *ProjectsZonesClustersNodePoolsService) Create(projectId string, zone string, clusterId string, createnodepoolrequest *CreateNodePoolRequest) *ProjectsZonesClustersNodePoolsCreateCall {
 13281  	c := &ProjectsZonesClustersNodePoolsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 13282  	c.projectId = projectId
 13283  	c.zone = zone
 13284  	c.clusterId = clusterId
 13285  	c.createnodepoolrequest = createnodepoolrequest
 13286  	return c
 13287  }
 13288  
 13289  // Fields allows partial responses to be retrieved. See
 13290  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 13291  // details.
 13292  func (c *ProjectsZonesClustersNodePoolsCreateCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersNodePoolsCreateCall {
 13293  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 13294  	return c
 13295  }
 13296  
 13297  // Context sets the context to be used in this call's Do method.
 13298  func (c *ProjectsZonesClustersNodePoolsCreateCall) Context(ctx context.Context) *ProjectsZonesClustersNodePoolsCreateCall {
 13299  	c.ctx_ = ctx
 13300  	return c
 13301  }
 13302  
 13303  // Header returns a http.Header that can be modified by the caller to add
 13304  // headers to the request.
 13305  func (c *ProjectsZonesClustersNodePoolsCreateCall) Header() http.Header {
 13306  	if c.header_ == nil {
 13307  		c.header_ = make(http.Header)
 13308  	}
 13309  	return c.header_
 13310  }
 13311  
 13312  func (c *ProjectsZonesClustersNodePoolsCreateCall) doRequest(alt string) (*http.Response, error) {
 13313  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 13314  	var body io.Reader = nil
 13315  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.createnodepoolrequest)
 13316  	if err != nil {
 13317  		return nil, err
 13318  	}
 13319  	c.urlParams_.Set("alt", alt)
 13320  	c.urlParams_.Set("prettyPrint", "false")
 13321  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools")
 13322  	urls += "?" + c.urlParams_.Encode()
 13323  	req, err := http.NewRequest("POST", urls, body)
 13324  	if err != nil {
 13325  		return nil, err
 13326  	}
 13327  	req.Header = reqHeaders
 13328  	googleapi.Expand(req.URL, map[string]string{
 13329  		"projectId": c.projectId,
 13330  		"zone":      c.zone,
 13331  		"clusterId": c.clusterId,
 13332  	})
 13333  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 13334  }
 13335  
 13336  // Do executes the "container.projects.zones.clusters.nodePools.create" call.
 13337  // Any non-2xx status code is an error. Response headers are in either
 13338  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 13339  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 13340  // whether the returned error was because http.StatusNotModified was returned.
 13341  func (c *ProjectsZonesClustersNodePoolsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 13342  	gensupport.SetOptions(c.urlParams_, opts...)
 13343  	res, err := c.doRequest("json")
 13344  	if res != nil && res.StatusCode == http.StatusNotModified {
 13345  		if res.Body != nil {
 13346  			res.Body.Close()
 13347  		}
 13348  		return nil, gensupport.WrapError(&googleapi.Error{
 13349  			Code:   res.StatusCode,
 13350  			Header: res.Header,
 13351  		})
 13352  	}
 13353  	if err != nil {
 13354  		return nil, err
 13355  	}
 13356  	defer googleapi.CloseBody(res)
 13357  	if err := googleapi.CheckResponse(res); err != nil {
 13358  		return nil, gensupport.WrapError(err)
 13359  	}
 13360  	ret := &Operation{
 13361  		ServerResponse: googleapi.ServerResponse{
 13362  			Header:         res.Header,
 13363  			HTTPStatusCode: res.StatusCode,
 13364  		},
 13365  	}
 13366  	target := &ret
 13367  	if err := gensupport.DecodeResponse(target, res); err != nil {
 13368  		return nil, err
 13369  	}
 13370  	return ret, nil
 13371  }
 13372  
 13373  type ProjectsZonesClustersNodePoolsDeleteCall struct {
 13374  	s          *Service
 13375  	projectId  string
 13376  	zone       string
 13377  	clusterId  string
 13378  	nodePoolId string
 13379  	urlParams_ gensupport.URLParams
 13380  	ctx_       context.Context
 13381  	header_    http.Header
 13382  }
 13383  
 13384  // Delete: Deletes a node pool from a cluster.
 13385  //
 13386  //   - clusterId: Deprecated. The name of the cluster. This field has been
 13387  //     deprecated and replaced by the name field.
 13388  //   - nodePoolId: Deprecated. The name of the node pool to delete. This field
 13389  //     has been deprecated and replaced by the name field.
 13390  //   - projectId: Deprecated. The Google Developers Console project ID or project
 13391  //     number
 13392  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 13393  //     This field has been deprecated and replaced by the name field.
 13394  //   - zone: Deprecated. The name of the Google Compute Engine zone
 13395  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 13396  //     cluster resides. This field has been deprecated and replaced by the name
 13397  //     field.
 13398  func (r *ProjectsZonesClustersNodePoolsService) Delete(projectId string, zone string, clusterId string, nodePoolId string) *ProjectsZonesClustersNodePoolsDeleteCall {
 13399  	c := &ProjectsZonesClustersNodePoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 13400  	c.projectId = projectId
 13401  	c.zone = zone
 13402  	c.clusterId = clusterId
 13403  	c.nodePoolId = nodePoolId
 13404  	return c
 13405  }
 13406  
 13407  // Name sets the optional parameter "name": The name (project, location,
 13408  // cluster, node pool id) of the node pool to delete. Specified in the format
 13409  // `projects/*/locations/*/clusters/*/nodePools/*`.
 13410  func (c *ProjectsZonesClustersNodePoolsDeleteCall) Name(name string) *ProjectsZonesClustersNodePoolsDeleteCall {
 13411  	c.urlParams_.Set("name", name)
 13412  	return c
 13413  }
 13414  
 13415  // Fields allows partial responses to be retrieved. See
 13416  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 13417  // details.
 13418  func (c *ProjectsZonesClustersNodePoolsDeleteCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersNodePoolsDeleteCall {
 13419  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 13420  	return c
 13421  }
 13422  
 13423  // Context sets the context to be used in this call's Do method.
 13424  func (c *ProjectsZonesClustersNodePoolsDeleteCall) Context(ctx context.Context) *ProjectsZonesClustersNodePoolsDeleteCall {
 13425  	c.ctx_ = ctx
 13426  	return c
 13427  }
 13428  
 13429  // Header returns a http.Header that can be modified by the caller to add
 13430  // headers to the request.
 13431  func (c *ProjectsZonesClustersNodePoolsDeleteCall) Header() http.Header {
 13432  	if c.header_ == nil {
 13433  		c.header_ = make(http.Header)
 13434  	}
 13435  	return c.header_
 13436  }
 13437  
 13438  func (c *ProjectsZonesClustersNodePoolsDeleteCall) doRequest(alt string) (*http.Response, error) {
 13439  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 13440  	var body io.Reader = nil
 13441  	c.urlParams_.Set("alt", alt)
 13442  	c.urlParams_.Set("prettyPrint", "false")
 13443  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}")
 13444  	urls += "?" + c.urlParams_.Encode()
 13445  	req, err := http.NewRequest("DELETE", urls, body)
 13446  	if err != nil {
 13447  		return nil, err
 13448  	}
 13449  	req.Header = reqHeaders
 13450  	googleapi.Expand(req.URL, map[string]string{
 13451  		"projectId":  c.projectId,
 13452  		"zone":       c.zone,
 13453  		"clusterId":  c.clusterId,
 13454  		"nodePoolId": c.nodePoolId,
 13455  	})
 13456  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 13457  }
 13458  
 13459  // Do executes the "container.projects.zones.clusters.nodePools.delete" call.
 13460  // Any non-2xx status code is an error. Response headers are in either
 13461  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 13462  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 13463  // whether the returned error was because http.StatusNotModified was returned.
 13464  func (c *ProjectsZonesClustersNodePoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 13465  	gensupport.SetOptions(c.urlParams_, opts...)
 13466  	res, err := c.doRequest("json")
 13467  	if res != nil && res.StatusCode == http.StatusNotModified {
 13468  		if res.Body != nil {
 13469  			res.Body.Close()
 13470  		}
 13471  		return nil, gensupport.WrapError(&googleapi.Error{
 13472  			Code:   res.StatusCode,
 13473  			Header: res.Header,
 13474  		})
 13475  	}
 13476  	if err != nil {
 13477  		return nil, err
 13478  	}
 13479  	defer googleapi.CloseBody(res)
 13480  	if err := googleapi.CheckResponse(res); err != nil {
 13481  		return nil, gensupport.WrapError(err)
 13482  	}
 13483  	ret := &Operation{
 13484  		ServerResponse: googleapi.ServerResponse{
 13485  			Header:         res.Header,
 13486  			HTTPStatusCode: res.StatusCode,
 13487  		},
 13488  	}
 13489  	target := &ret
 13490  	if err := gensupport.DecodeResponse(target, res); err != nil {
 13491  		return nil, err
 13492  	}
 13493  	return ret, nil
 13494  }
 13495  
 13496  type ProjectsZonesClustersNodePoolsGetCall struct {
 13497  	s            *Service
 13498  	projectId    string
 13499  	zone         string
 13500  	clusterId    string
 13501  	nodePoolId   string
 13502  	urlParams_   gensupport.URLParams
 13503  	ifNoneMatch_ string
 13504  	ctx_         context.Context
 13505  	header_      http.Header
 13506  }
 13507  
 13508  // Get: Retrieves the requested node pool.
 13509  //
 13510  //   - clusterId: Deprecated. The name of the cluster. This field has been
 13511  //     deprecated and replaced by the name field.
 13512  //   - nodePoolId: Deprecated. The name of the node pool. This field has been
 13513  //     deprecated and replaced by the name field.
 13514  //   - projectId: Deprecated. The Google Developers Console project ID or project
 13515  //     number
 13516  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 13517  //     This field has been deprecated and replaced by the name field.
 13518  //   - zone: Deprecated. The name of the Google Compute Engine zone
 13519  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 13520  //     cluster resides. This field has been deprecated and replaced by the name
 13521  //     field.
 13522  func (r *ProjectsZonesClustersNodePoolsService) Get(projectId string, zone string, clusterId string, nodePoolId string) *ProjectsZonesClustersNodePoolsGetCall {
 13523  	c := &ProjectsZonesClustersNodePoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 13524  	c.projectId = projectId
 13525  	c.zone = zone
 13526  	c.clusterId = clusterId
 13527  	c.nodePoolId = nodePoolId
 13528  	return c
 13529  }
 13530  
 13531  // Name sets the optional parameter "name": The name (project, location,
 13532  // cluster, node pool id) of the node pool to get. Specified in the format
 13533  // `projects/*/locations/*/clusters/*/nodePools/*`.
 13534  func (c *ProjectsZonesClustersNodePoolsGetCall) Name(name string) *ProjectsZonesClustersNodePoolsGetCall {
 13535  	c.urlParams_.Set("name", name)
 13536  	return c
 13537  }
 13538  
 13539  // Fields allows partial responses to be retrieved. See
 13540  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 13541  // details.
 13542  func (c *ProjectsZonesClustersNodePoolsGetCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersNodePoolsGetCall {
 13543  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 13544  	return c
 13545  }
 13546  
 13547  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 13548  // object's ETag matches the given value. This is useful for getting updates
 13549  // only after the object has changed since the last request.
 13550  func (c *ProjectsZonesClustersNodePoolsGetCall) IfNoneMatch(entityTag string) *ProjectsZonesClustersNodePoolsGetCall {
 13551  	c.ifNoneMatch_ = entityTag
 13552  	return c
 13553  }
 13554  
 13555  // Context sets the context to be used in this call's Do method.
 13556  func (c *ProjectsZonesClustersNodePoolsGetCall) Context(ctx context.Context) *ProjectsZonesClustersNodePoolsGetCall {
 13557  	c.ctx_ = ctx
 13558  	return c
 13559  }
 13560  
 13561  // Header returns a http.Header that can be modified by the caller to add
 13562  // headers to the request.
 13563  func (c *ProjectsZonesClustersNodePoolsGetCall) Header() http.Header {
 13564  	if c.header_ == nil {
 13565  		c.header_ = make(http.Header)
 13566  	}
 13567  	return c.header_
 13568  }
 13569  
 13570  func (c *ProjectsZonesClustersNodePoolsGetCall) doRequest(alt string) (*http.Response, error) {
 13571  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 13572  	if c.ifNoneMatch_ != "" {
 13573  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 13574  	}
 13575  	var body io.Reader = nil
 13576  	c.urlParams_.Set("alt", alt)
 13577  	c.urlParams_.Set("prettyPrint", "false")
 13578  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}")
 13579  	urls += "?" + c.urlParams_.Encode()
 13580  	req, err := http.NewRequest("GET", urls, body)
 13581  	if err != nil {
 13582  		return nil, err
 13583  	}
 13584  	req.Header = reqHeaders
 13585  	googleapi.Expand(req.URL, map[string]string{
 13586  		"projectId":  c.projectId,
 13587  		"zone":       c.zone,
 13588  		"clusterId":  c.clusterId,
 13589  		"nodePoolId": c.nodePoolId,
 13590  	})
 13591  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 13592  }
 13593  
 13594  // Do executes the "container.projects.zones.clusters.nodePools.get" call.
 13595  // Any non-2xx status code is an error. Response headers are in either
 13596  // *NodePool.ServerResponse.Header or (if a response was returned at all) in
 13597  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 13598  // whether the returned error was because http.StatusNotModified was returned.
 13599  func (c *ProjectsZonesClustersNodePoolsGetCall) Do(opts ...googleapi.CallOption) (*NodePool, error) {
 13600  	gensupport.SetOptions(c.urlParams_, opts...)
 13601  	res, err := c.doRequest("json")
 13602  	if res != nil && res.StatusCode == http.StatusNotModified {
 13603  		if res.Body != nil {
 13604  			res.Body.Close()
 13605  		}
 13606  		return nil, gensupport.WrapError(&googleapi.Error{
 13607  			Code:   res.StatusCode,
 13608  			Header: res.Header,
 13609  		})
 13610  	}
 13611  	if err != nil {
 13612  		return nil, err
 13613  	}
 13614  	defer googleapi.CloseBody(res)
 13615  	if err := googleapi.CheckResponse(res); err != nil {
 13616  		return nil, gensupport.WrapError(err)
 13617  	}
 13618  	ret := &NodePool{
 13619  		ServerResponse: googleapi.ServerResponse{
 13620  			Header:         res.Header,
 13621  			HTTPStatusCode: res.StatusCode,
 13622  		},
 13623  	}
 13624  	target := &ret
 13625  	if err := gensupport.DecodeResponse(target, res); err != nil {
 13626  		return nil, err
 13627  	}
 13628  	return ret, nil
 13629  }
 13630  
 13631  type ProjectsZonesClustersNodePoolsListCall struct {
 13632  	s            *Service
 13633  	projectId    string
 13634  	zone         string
 13635  	clusterId    string
 13636  	urlParams_   gensupport.URLParams
 13637  	ifNoneMatch_ string
 13638  	ctx_         context.Context
 13639  	header_      http.Header
 13640  }
 13641  
 13642  // List: Lists the node pools for a cluster.
 13643  //
 13644  //   - clusterId: Deprecated. The name of the cluster. This field has been
 13645  //     deprecated and replaced by the parent field.
 13646  //   - projectId: Deprecated. The Google Developers Console project ID or project
 13647  //     number
 13648  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 13649  //     This field has been deprecated and replaced by the parent field.
 13650  //   - zone: Deprecated. The name of the Google Compute Engine zone
 13651  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 13652  //     cluster resides. This field has been deprecated and replaced by the parent
 13653  //     field.
 13654  func (r *ProjectsZonesClustersNodePoolsService) List(projectId string, zone string, clusterId string) *ProjectsZonesClustersNodePoolsListCall {
 13655  	c := &ProjectsZonesClustersNodePoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 13656  	c.projectId = projectId
 13657  	c.zone = zone
 13658  	c.clusterId = clusterId
 13659  	return c
 13660  }
 13661  
 13662  // Parent sets the optional parameter "parent": The parent (project, location,
 13663  // cluster name) where the node pools will be listed. Specified in the format
 13664  // `projects/*/locations/*/clusters/*`.
 13665  func (c *ProjectsZonesClustersNodePoolsListCall) Parent(parent string) *ProjectsZonesClustersNodePoolsListCall {
 13666  	c.urlParams_.Set("parent", parent)
 13667  	return c
 13668  }
 13669  
 13670  // Fields allows partial responses to be retrieved. See
 13671  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 13672  // details.
 13673  func (c *ProjectsZonesClustersNodePoolsListCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersNodePoolsListCall {
 13674  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 13675  	return c
 13676  }
 13677  
 13678  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 13679  // object's ETag matches the given value. This is useful for getting updates
 13680  // only after the object has changed since the last request.
 13681  func (c *ProjectsZonesClustersNodePoolsListCall) IfNoneMatch(entityTag string) *ProjectsZonesClustersNodePoolsListCall {
 13682  	c.ifNoneMatch_ = entityTag
 13683  	return c
 13684  }
 13685  
 13686  // Context sets the context to be used in this call's Do method.
 13687  func (c *ProjectsZonesClustersNodePoolsListCall) Context(ctx context.Context) *ProjectsZonesClustersNodePoolsListCall {
 13688  	c.ctx_ = ctx
 13689  	return c
 13690  }
 13691  
 13692  // Header returns a http.Header that can be modified by the caller to add
 13693  // headers to the request.
 13694  func (c *ProjectsZonesClustersNodePoolsListCall) Header() http.Header {
 13695  	if c.header_ == nil {
 13696  		c.header_ = make(http.Header)
 13697  	}
 13698  	return c.header_
 13699  }
 13700  
 13701  func (c *ProjectsZonesClustersNodePoolsListCall) doRequest(alt string) (*http.Response, error) {
 13702  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 13703  	if c.ifNoneMatch_ != "" {
 13704  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 13705  	}
 13706  	var body io.Reader = nil
 13707  	c.urlParams_.Set("alt", alt)
 13708  	c.urlParams_.Set("prettyPrint", "false")
 13709  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools")
 13710  	urls += "?" + c.urlParams_.Encode()
 13711  	req, err := http.NewRequest("GET", urls, body)
 13712  	if err != nil {
 13713  		return nil, err
 13714  	}
 13715  	req.Header = reqHeaders
 13716  	googleapi.Expand(req.URL, map[string]string{
 13717  		"projectId": c.projectId,
 13718  		"zone":      c.zone,
 13719  		"clusterId": c.clusterId,
 13720  	})
 13721  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 13722  }
 13723  
 13724  // Do executes the "container.projects.zones.clusters.nodePools.list" call.
 13725  // Any non-2xx status code is an error. Response headers are in either
 13726  // *ListNodePoolsResponse.ServerResponse.Header or (if a response was returned
 13727  // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
 13728  // check whether the returned error was because http.StatusNotModified was
 13729  // returned.
 13730  func (c *ProjectsZonesClustersNodePoolsListCall) Do(opts ...googleapi.CallOption) (*ListNodePoolsResponse, error) {
 13731  	gensupport.SetOptions(c.urlParams_, opts...)
 13732  	res, err := c.doRequest("json")
 13733  	if res != nil && res.StatusCode == http.StatusNotModified {
 13734  		if res.Body != nil {
 13735  			res.Body.Close()
 13736  		}
 13737  		return nil, gensupport.WrapError(&googleapi.Error{
 13738  			Code:   res.StatusCode,
 13739  			Header: res.Header,
 13740  		})
 13741  	}
 13742  	if err != nil {
 13743  		return nil, err
 13744  	}
 13745  	defer googleapi.CloseBody(res)
 13746  	if err := googleapi.CheckResponse(res); err != nil {
 13747  		return nil, gensupport.WrapError(err)
 13748  	}
 13749  	ret := &ListNodePoolsResponse{
 13750  		ServerResponse: googleapi.ServerResponse{
 13751  			Header:         res.Header,
 13752  			HTTPStatusCode: res.StatusCode,
 13753  		},
 13754  	}
 13755  	target := &ret
 13756  	if err := gensupport.DecodeResponse(target, res); err != nil {
 13757  		return nil, err
 13758  	}
 13759  	return ret, nil
 13760  }
 13761  
 13762  type ProjectsZonesClustersNodePoolsRollbackCall struct {
 13763  	s                              *Service
 13764  	projectId                      string
 13765  	zone                           string
 13766  	clusterId                      string
 13767  	nodePoolId                     string
 13768  	rollbacknodepoolupgraderequest *RollbackNodePoolUpgradeRequest
 13769  	urlParams_                     gensupport.URLParams
 13770  	ctx_                           context.Context
 13771  	header_                        http.Header
 13772  }
 13773  
 13774  // Rollback: Rolls back a previously Aborted or Failed NodePool upgrade. This
 13775  // makes no changes if the last upgrade successfully completed.
 13776  //
 13777  //   - clusterId: Deprecated. The name of the cluster to rollback. This field has
 13778  //     been deprecated and replaced by the name field.
 13779  //   - nodePoolId: Deprecated. The name of the node pool to rollback. This field
 13780  //     has been deprecated and replaced by the name field.
 13781  //   - projectId: Deprecated. The Google Developers Console project ID or project
 13782  //     number
 13783  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 13784  //     This field has been deprecated and replaced by the name field.
 13785  //   - zone: Deprecated. The name of the Google Compute Engine zone
 13786  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 13787  //     cluster resides. This field has been deprecated and replaced by the name
 13788  //     field.
 13789  func (r *ProjectsZonesClustersNodePoolsService) Rollback(projectId string, zone string, clusterId string, nodePoolId string, rollbacknodepoolupgraderequest *RollbackNodePoolUpgradeRequest) *ProjectsZonesClustersNodePoolsRollbackCall {
 13790  	c := &ProjectsZonesClustersNodePoolsRollbackCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 13791  	c.projectId = projectId
 13792  	c.zone = zone
 13793  	c.clusterId = clusterId
 13794  	c.nodePoolId = nodePoolId
 13795  	c.rollbacknodepoolupgraderequest = rollbacknodepoolupgraderequest
 13796  	return c
 13797  }
 13798  
 13799  // Fields allows partial responses to be retrieved. See
 13800  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 13801  // details.
 13802  func (c *ProjectsZonesClustersNodePoolsRollbackCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersNodePoolsRollbackCall {
 13803  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 13804  	return c
 13805  }
 13806  
 13807  // Context sets the context to be used in this call's Do method.
 13808  func (c *ProjectsZonesClustersNodePoolsRollbackCall) Context(ctx context.Context) *ProjectsZonesClustersNodePoolsRollbackCall {
 13809  	c.ctx_ = ctx
 13810  	return c
 13811  }
 13812  
 13813  // Header returns a http.Header that can be modified by the caller to add
 13814  // headers to the request.
 13815  func (c *ProjectsZonesClustersNodePoolsRollbackCall) Header() http.Header {
 13816  	if c.header_ == nil {
 13817  		c.header_ = make(http.Header)
 13818  	}
 13819  	return c.header_
 13820  }
 13821  
 13822  func (c *ProjectsZonesClustersNodePoolsRollbackCall) doRequest(alt string) (*http.Response, error) {
 13823  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 13824  	var body io.Reader = nil
 13825  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.rollbacknodepoolupgraderequest)
 13826  	if err != nil {
 13827  		return nil, err
 13828  	}
 13829  	c.urlParams_.Set("alt", alt)
 13830  	c.urlParams_.Set("prettyPrint", "false")
 13831  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}:rollback")
 13832  	urls += "?" + c.urlParams_.Encode()
 13833  	req, err := http.NewRequest("POST", urls, body)
 13834  	if err != nil {
 13835  		return nil, err
 13836  	}
 13837  	req.Header = reqHeaders
 13838  	googleapi.Expand(req.URL, map[string]string{
 13839  		"projectId":  c.projectId,
 13840  		"zone":       c.zone,
 13841  		"clusterId":  c.clusterId,
 13842  		"nodePoolId": c.nodePoolId,
 13843  	})
 13844  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 13845  }
 13846  
 13847  // Do executes the "container.projects.zones.clusters.nodePools.rollback" call.
 13848  // Any non-2xx status code is an error. Response headers are in either
 13849  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 13850  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 13851  // whether the returned error was because http.StatusNotModified was returned.
 13852  func (c *ProjectsZonesClustersNodePoolsRollbackCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 13853  	gensupport.SetOptions(c.urlParams_, opts...)
 13854  	res, err := c.doRequest("json")
 13855  	if res != nil && res.StatusCode == http.StatusNotModified {
 13856  		if res.Body != nil {
 13857  			res.Body.Close()
 13858  		}
 13859  		return nil, gensupport.WrapError(&googleapi.Error{
 13860  			Code:   res.StatusCode,
 13861  			Header: res.Header,
 13862  		})
 13863  	}
 13864  	if err != nil {
 13865  		return nil, err
 13866  	}
 13867  	defer googleapi.CloseBody(res)
 13868  	if err := googleapi.CheckResponse(res); err != nil {
 13869  		return nil, gensupport.WrapError(err)
 13870  	}
 13871  	ret := &Operation{
 13872  		ServerResponse: googleapi.ServerResponse{
 13873  			Header:         res.Header,
 13874  			HTTPStatusCode: res.StatusCode,
 13875  		},
 13876  	}
 13877  	target := &ret
 13878  	if err := gensupport.DecodeResponse(target, res); err != nil {
 13879  		return nil, err
 13880  	}
 13881  	return ret, nil
 13882  }
 13883  
 13884  type ProjectsZonesClustersNodePoolsSetManagementCall struct {
 13885  	s                            *Service
 13886  	projectId                    string
 13887  	zone                         string
 13888  	clusterId                    string
 13889  	nodePoolId                   string
 13890  	setnodepoolmanagementrequest *SetNodePoolManagementRequest
 13891  	urlParams_                   gensupport.URLParams
 13892  	ctx_                         context.Context
 13893  	header_                      http.Header
 13894  }
 13895  
 13896  // SetManagement: Sets the NodeManagement options for a node pool.
 13897  //
 13898  //   - clusterId: Deprecated. The name of the cluster to update. This field has
 13899  //     been deprecated and replaced by the name field.
 13900  //   - nodePoolId: Deprecated. The name of the node pool to update. This field
 13901  //     has been deprecated and replaced by the name field.
 13902  //   - projectId: Deprecated. The Google Developers Console project ID or project
 13903  //     number
 13904  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 13905  //     This field has been deprecated and replaced by the name field.
 13906  //   - zone: Deprecated. The name of the Google Compute Engine zone
 13907  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 13908  //     cluster resides. This field has been deprecated and replaced by the name
 13909  //     field.
 13910  func (r *ProjectsZonesClustersNodePoolsService) SetManagement(projectId string, zone string, clusterId string, nodePoolId string, setnodepoolmanagementrequest *SetNodePoolManagementRequest) *ProjectsZonesClustersNodePoolsSetManagementCall {
 13911  	c := &ProjectsZonesClustersNodePoolsSetManagementCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 13912  	c.projectId = projectId
 13913  	c.zone = zone
 13914  	c.clusterId = clusterId
 13915  	c.nodePoolId = nodePoolId
 13916  	c.setnodepoolmanagementrequest = setnodepoolmanagementrequest
 13917  	return c
 13918  }
 13919  
 13920  // Fields allows partial responses to be retrieved. See
 13921  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 13922  // details.
 13923  func (c *ProjectsZonesClustersNodePoolsSetManagementCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersNodePoolsSetManagementCall {
 13924  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 13925  	return c
 13926  }
 13927  
 13928  // Context sets the context to be used in this call's Do method.
 13929  func (c *ProjectsZonesClustersNodePoolsSetManagementCall) Context(ctx context.Context) *ProjectsZonesClustersNodePoolsSetManagementCall {
 13930  	c.ctx_ = ctx
 13931  	return c
 13932  }
 13933  
 13934  // Header returns a http.Header that can be modified by the caller to add
 13935  // headers to the request.
 13936  func (c *ProjectsZonesClustersNodePoolsSetManagementCall) Header() http.Header {
 13937  	if c.header_ == nil {
 13938  		c.header_ = make(http.Header)
 13939  	}
 13940  	return c.header_
 13941  }
 13942  
 13943  func (c *ProjectsZonesClustersNodePoolsSetManagementCall) doRequest(alt string) (*http.Response, error) {
 13944  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 13945  	var body io.Reader = nil
 13946  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setnodepoolmanagementrequest)
 13947  	if err != nil {
 13948  		return nil, err
 13949  	}
 13950  	c.urlParams_.Set("alt", alt)
 13951  	c.urlParams_.Set("prettyPrint", "false")
 13952  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setManagement")
 13953  	urls += "?" + c.urlParams_.Encode()
 13954  	req, err := http.NewRequest("POST", urls, body)
 13955  	if err != nil {
 13956  		return nil, err
 13957  	}
 13958  	req.Header = reqHeaders
 13959  	googleapi.Expand(req.URL, map[string]string{
 13960  		"projectId":  c.projectId,
 13961  		"zone":       c.zone,
 13962  		"clusterId":  c.clusterId,
 13963  		"nodePoolId": c.nodePoolId,
 13964  	})
 13965  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 13966  }
 13967  
 13968  // Do executes the "container.projects.zones.clusters.nodePools.setManagement" call.
 13969  // Any non-2xx status code is an error. Response headers are in either
 13970  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 13971  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 13972  // whether the returned error was because http.StatusNotModified was returned.
 13973  func (c *ProjectsZonesClustersNodePoolsSetManagementCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 13974  	gensupport.SetOptions(c.urlParams_, opts...)
 13975  	res, err := c.doRequest("json")
 13976  	if res != nil && res.StatusCode == http.StatusNotModified {
 13977  		if res.Body != nil {
 13978  			res.Body.Close()
 13979  		}
 13980  		return nil, gensupport.WrapError(&googleapi.Error{
 13981  			Code:   res.StatusCode,
 13982  			Header: res.Header,
 13983  		})
 13984  	}
 13985  	if err != nil {
 13986  		return nil, err
 13987  	}
 13988  	defer googleapi.CloseBody(res)
 13989  	if err := googleapi.CheckResponse(res); err != nil {
 13990  		return nil, gensupport.WrapError(err)
 13991  	}
 13992  	ret := &Operation{
 13993  		ServerResponse: googleapi.ServerResponse{
 13994  			Header:         res.Header,
 13995  			HTTPStatusCode: res.StatusCode,
 13996  		},
 13997  	}
 13998  	target := &ret
 13999  	if err := gensupport.DecodeResponse(target, res); err != nil {
 14000  		return nil, err
 14001  	}
 14002  	return ret, nil
 14003  }
 14004  
 14005  type ProjectsZonesClustersNodePoolsSetSizeCall struct {
 14006  	s                      *Service
 14007  	projectId              string
 14008  	zone                   string
 14009  	clusterId              string
 14010  	nodePoolId             string
 14011  	setnodepoolsizerequest *SetNodePoolSizeRequest
 14012  	urlParams_             gensupport.URLParams
 14013  	ctx_                   context.Context
 14014  	header_                http.Header
 14015  }
 14016  
 14017  // SetSize: Sets the size for a specific node pool. The new size will be used
 14018  // for all replicas, including future replicas created by modifying
 14019  // NodePool.locations.
 14020  //
 14021  //   - clusterId: Deprecated. The name of the cluster to update. This field has
 14022  //     been deprecated and replaced by the name field.
 14023  //   - nodePoolId: Deprecated. The name of the node pool to update. This field
 14024  //     has been deprecated and replaced by the name field.
 14025  //   - projectId: Deprecated. The Google Developers Console project ID or project
 14026  //     number
 14027  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 14028  //     This field has been deprecated and replaced by the name field.
 14029  //   - zone: Deprecated. The name of the Google Compute Engine zone
 14030  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 14031  //     cluster resides. This field has been deprecated and replaced by the name
 14032  //     field.
 14033  func (r *ProjectsZonesClustersNodePoolsService) SetSize(projectId string, zone string, clusterId string, nodePoolId string, setnodepoolsizerequest *SetNodePoolSizeRequest) *ProjectsZonesClustersNodePoolsSetSizeCall {
 14034  	c := &ProjectsZonesClustersNodePoolsSetSizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 14035  	c.projectId = projectId
 14036  	c.zone = zone
 14037  	c.clusterId = clusterId
 14038  	c.nodePoolId = nodePoolId
 14039  	c.setnodepoolsizerequest = setnodepoolsizerequest
 14040  	return c
 14041  }
 14042  
 14043  // Fields allows partial responses to be retrieved. See
 14044  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 14045  // details.
 14046  func (c *ProjectsZonesClustersNodePoolsSetSizeCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersNodePoolsSetSizeCall {
 14047  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 14048  	return c
 14049  }
 14050  
 14051  // Context sets the context to be used in this call's Do method.
 14052  func (c *ProjectsZonesClustersNodePoolsSetSizeCall) Context(ctx context.Context) *ProjectsZonesClustersNodePoolsSetSizeCall {
 14053  	c.ctx_ = ctx
 14054  	return c
 14055  }
 14056  
 14057  // Header returns a http.Header that can be modified by the caller to add
 14058  // headers to the request.
 14059  func (c *ProjectsZonesClustersNodePoolsSetSizeCall) Header() http.Header {
 14060  	if c.header_ == nil {
 14061  		c.header_ = make(http.Header)
 14062  	}
 14063  	return c.header_
 14064  }
 14065  
 14066  func (c *ProjectsZonesClustersNodePoolsSetSizeCall) doRequest(alt string) (*http.Response, error) {
 14067  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 14068  	var body io.Reader = nil
 14069  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.setnodepoolsizerequest)
 14070  	if err != nil {
 14071  		return nil, err
 14072  	}
 14073  	c.urlParams_.Set("alt", alt)
 14074  	c.urlParams_.Set("prettyPrint", "false")
 14075  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/setSize")
 14076  	urls += "?" + c.urlParams_.Encode()
 14077  	req, err := http.NewRequest("POST", urls, body)
 14078  	if err != nil {
 14079  		return nil, err
 14080  	}
 14081  	req.Header = reqHeaders
 14082  	googleapi.Expand(req.URL, map[string]string{
 14083  		"projectId":  c.projectId,
 14084  		"zone":       c.zone,
 14085  		"clusterId":  c.clusterId,
 14086  		"nodePoolId": c.nodePoolId,
 14087  	})
 14088  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 14089  }
 14090  
 14091  // Do executes the "container.projects.zones.clusters.nodePools.setSize" call.
 14092  // Any non-2xx status code is an error. Response headers are in either
 14093  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 14094  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 14095  // whether the returned error was because http.StatusNotModified was returned.
 14096  func (c *ProjectsZonesClustersNodePoolsSetSizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 14097  	gensupport.SetOptions(c.urlParams_, opts...)
 14098  	res, err := c.doRequest("json")
 14099  	if res != nil && res.StatusCode == http.StatusNotModified {
 14100  		if res.Body != nil {
 14101  			res.Body.Close()
 14102  		}
 14103  		return nil, gensupport.WrapError(&googleapi.Error{
 14104  			Code:   res.StatusCode,
 14105  			Header: res.Header,
 14106  		})
 14107  	}
 14108  	if err != nil {
 14109  		return nil, err
 14110  	}
 14111  	defer googleapi.CloseBody(res)
 14112  	if err := googleapi.CheckResponse(res); err != nil {
 14113  		return nil, gensupport.WrapError(err)
 14114  	}
 14115  	ret := &Operation{
 14116  		ServerResponse: googleapi.ServerResponse{
 14117  			Header:         res.Header,
 14118  			HTTPStatusCode: res.StatusCode,
 14119  		},
 14120  	}
 14121  	target := &ret
 14122  	if err := gensupport.DecodeResponse(target, res); err != nil {
 14123  		return nil, err
 14124  	}
 14125  	return ret, nil
 14126  }
 14127  
 14128  type ProjectsZonesClustersNodePoolsUpdateCall struct {
 14129  	s                     *Service
 14130  	projectId             string
 14131  	zone                  string
 14132  	clusterId             string
 14133  	nodePoolId            string
 14134  	updatenodepoolrequest *UpdateNodePoolRequest
 14135  	urlParams_            gensupport.URLParams
 14136  	ctx_                  context.Context
 14137  	header_               http.Header
 14138  }
 14139  
 14140  // Update: Updates the version and/or image type for the specified node pool.
 14141  //
 14142  //   - clusterId: Deprecated. The name of the cluster to upgrade. This field has
 14143  //     been deprecated and replaced by the name field.
 14144  //   - nodePoolId: Deprecated. The name of the node pool to upgrade. This field
 14145  //     has been deprecated and replaced by the name field.
 14146  //   - projectId: Deprecated. The Google Developers Console project ID or project
 14147  //     number
 14148  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 14149  //     This field has been deprecated and replaced by the name field.
 14150  //   - zone: Deprecated. The name of the Google Compute Engine zone
 14151  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 14152  //     cluster resides. This field has been deprecated and replaced by the name
 14153  //     field.
 14154  func (r *ProjectsZonesClustersNodePoolsService) Update(projectId string, zone string, clusterId string, nodePoolId string, updatenodepoolrequest *UpdateNodePoolRequest) *ProjectsZonesClustersNodePoolsUpdateCall {
 14155  	c := &ProjectsZonesClustersNodePoolsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 14156  	c.projectId = projectId
 14157  	c.zone = zone
 14158  	c.clusterId = clusterId
 14159  	c.nodePoolId = nodePoolId
 14160  	c.updatenodepoolrequest = updatenodepoolrequest
 14161  	return c
 14162  }
 14163  
 14164  // Fields allows partial responses to be retrieved. See
 14165  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 14166  // details.
 14167  func (c *ProjectsZonesClustersNodePoolsUpdateCall) Fields(s ...googleapi.Field) *ProjectsZonesClustersNodePoolsUpdateCall {
 14168  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 14169  	return c
 14170  }
 14171  
 14172  // Context sets the context to be used in this call's Do method.
 14173  func (c *ProjectsZonesClustersNodePoolsUpdateCall) Context(ctx context.Context) *ProjectsZonesClustersNodePoolsUpdateCall {
 14174  	c.ctx_ = ctx
 14175  	return c
 14176  }
 14177  
 14178  // Header returns a http.Header that can be modified by the caller to add
 14179  // headers to the request.
 14180  func (c *ProjectsZonesClustersNodePoolsUpdateCall) Header() http.Header {
 14181  	if c.header_ == nil {
 14182  		c.header_ = make(http.Header)
 14183  	}
 14184  	return c.header_
 14185  }
 14186  
 14187  func (c *ProjectsZonesClustersNodePoolsUpdateCall) doRequest(alt string) (*http.Response, error) {
 14188  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 14189  	var body io.Reader = nil
 14190  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.updatenodepoolrequest)
 14191  	if err != nil {
 14192  		return nil, err
 14193  	}
 14194  	c.urlParams_.Set("alt", alt)
 14195  	c.urlParams_.Set("prettyPrint", "false")
 14196  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/clusters/{clusterId}/nodePools/{nodePoolId}/update")
 14197  	urls += "?" + c.urlParams_.Encode()
 14198  	req, err := http.NewRequest("POST", urls, body)
 14199  	if err != nil {
 14200  		return nil, err
 14201  	}
 14202  	req.Header = reqHeaders
 14203  	googleapi.Expand(req.URL, map[string]string{
 14204  		"projectId":  c.projectId,
 14205  		"zone":       c.zone,
 14206  		"clusterId":  c.clusterId,
 14207  		"nodePoolId": c.nodePoolId,
 14208  	})
 14209  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 14210  }
 14211  
 14212  // Do executes the "container.projects.zones.clusters.nodePools.update" call.
 14213  // Any non-2xx status code is an error. Response headers are in either
 14214  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 14215  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 14216  // whether the returned error was because http.StatusNotModified was returned.
 14217  func (c *ProjectsZonesClustersNodePoolsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 14218  	gensupport.SetOptions(c.urlParams_, opts...)
 14219  	res, err := c.doRequest("json")
 14220  	if res != nil && res.StatusCode == http.StatusNotModified {
 14221  		if res.Body != nil {
 14222  			res.Body.Close()
 14223  		}
 14224  		return nil, gensupport.WrapError(&googleapi.Error{
 14225  			Code:   res.StatusCode,
 14226  			Header: res.Header,
 14227  		})
 14228  	}
 14229  	if err != nil {
 14230  		return nil, err
 14231  	}
 14232  	defer googleapi.CloseBody(res)
 14233  	if err := googleapi.CheckResponse(res); err != nil {
 14234  		return nil, gensupport.WrapError(err)
 14235  	}
 14236  	ret := &Operation{
 14237  		ServerResponse: googleapi.ServerResponse{
 14238  			Header:         res.Header,
 14239  			HTTPStatusCode: res.StatusCode,
 14240  		},
 14241  	}
 14242  	target := &ret
 14243  	if err := gensupport.DecodeResponse(target, res); err != nil {
 14244  		return nil, err
 14245  	}
 14246  	return ret, nil
 14247  }
 14248  
 14249  type ProjectsZonesOperationsCancelCall struct {
 14250  	s                      *Service
 14251  	projectId              string
 14252  	zone                   string
 14253  	operationId            string
 14254  	canceloperationrequest *CancelOperationRequest
 14255  	urlParams_             gensupport.URLParams
 14256  	ctx_                   context.Context
 14257  	header_                http.Header
 14258  }
 14259  
 14260  // Cancel: Cancels the specified operation.
 14261  //
 14262  //   - operationId: Deprecated. The server-assigned `name` of the operation. This
 14263  //     field has been deprecated and replaced by the name field.
 14264  //   - projectId: Deprecated. The Google Developers Console project ID or project
 14265  //     number
 14266  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 14267  //     This field has been deprecated and replaced by the name field.
 14268  //   - zone: Deprecated. The name of the Google Compute Engine zone
 14269  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 14270  //     operation resides. This field has been deprecated and replaced by the name
 14271  //     field.
 14272  func (r *ProjectsZonesOperationsService) Cancel(projectId string, zone string, operationId string, canceloperationrequest *CancelOperationRequest) *ProjectsZonesOperationsCancelCall {
 14273  	c := &ProjectsZonesOperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 14274  	c.projectId = projectId
 14275  	c.zone = zone
 14276  	c.operationId = operationId
 14277  	c.canceloperationrequest = canceloperationrequest
 14278  	return c
 14279  }
 14280  
 14281  // Fields allows partial responses to be retrieved. See
 14282  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 14283  // details.
 14284  func (c *ProjectsZonesOperationsCancelCall) Fields(s ...googleapi.Field) *ProjectsZonesOperationsCancelCall {
 14285  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 14286  	return c
 14287  }
 14288  
 14289  // Context sets the context to be used in this call's Do method.
 14290  func (c *ProjectsZonesOperationsCancelCall) Context(ctx context.Context) *ProjectsZonesOperationsCancelCall {
 14291  	c.ctx_ = ctx
 14292  	return c
 14293  }
 14294  
 14295  // Header returns a http.Header that can be modified by the caller to add
 14296  // headers to the request.
 14297  func (c *ProjectsZonesOperationsCancelCall) Header() http.Header {
 14298  	if c.header_ == nil {
 14299  		c.header_ = make(http.Header)
 14300  	}
 14301  	return c.header_
 14302  }
 14303  
 14304  func (c *ProjectsZonesOperationsCancelCall) doRequest(alt string) (*http.Response, error) {
 14305  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
 14306  	var body io.Reader = nil
 14307  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.canceloperationrequest)
 14308  	if err != nil {
 14309  		return nil, err
 14310  	}
 14311  	c.urlParams_.Set("alt", alt)
 14312  	c.urlParams_.Set("prettyPrint", "false")
 14313  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/operations/{operationId}:cancel")
 14314  	urls += "?" + c.urlParams_.Encode()
 14315  	req, err := http.NewRequest("POST", urls, body)
 14316  	if err != nil {
 14317  		return nil, err
 14318  	}
 14319  	req.Header = reqHeaders
 14320  	googleapi.Expand(req.URL, map[string]string{
 14321  		"projectId":   c.projectId,
 14322  		"zone":        c.zone,
 14323  		"operationId": c.operationId,
 14324  	})
 14325  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 14326  }
 14327  
 14328  // Do executes the "container.projects.zones.operations.cancel" call.
 14329  // Any non-2xx status code is an error. Response headers are in either
 14330  // *Empty.ServerResponse.Header or (if a response was returned at all) in
 14331  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 14332  // whether the returned error was because http.StatusNotModified was returned.
 14333  func (c *ProjectsZonesOperationsCancelCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
 14334  	gensupport.SetOptions(c.urlParams_, opts...)
 14335  	res, err := c.doRequest("json")
 14336  	if res != nil && res.StatusCode == http.StatusNotModified {
 14337  		if res.Body != nil {
 14338  			res.Body.Close()
 14339  		}
 14340  		return nil, gensupport.WrapError(&googleapi.Error{
 14341  			Code:   res.StatusCode,
 14342  			Header: res.Header,
 14343  		})
 14344  	}
 14345  	if err != nil {
 14346  		return nil, err
 14347  	}
 14348  	defer googleapi.CloseBody(res)
 14349  	if err := googleapi.CheckResponse(res); err != nil {
 14350  		return nil, gensupport.WrapError(err)
 14351  	}
 14352  	ret := &Empty{
 14353  		ServerResponse: googleapi.ServerResponse{
 14354  			Header:         res.Header,
 14355  			HTTPStatusCode: res.StatusCode,
 14356  		},
 14357  	}
 14358  	target := &ret
 14359  	if err := gensupport.DecodeResponse(target, res); err != nil {
 14360  		return nil, err
 14361  	}
 14362  	return ret, nil
 14363  }
 14364  
 14365  type ProjectsZonesOperationsGetCall struct {
 14366  	s            *Service
 14367  	projectId    string
 14368  	zone         string
 14369  	operationId  string
 14370  	urlParams_   gensupport.URLParams
 14371  	ifNoneMatch_ string
 14372  	ctx_         context.Context
 14373  	header_      http.Header
 14374  }
 14375  
 14376  // Get: Gets the specified operation.
 14377  //
 14378  //   - operationId: Deprecated. The server-assigned `name` of the operation. This
 14379  //     field has been deprecated and replaced by the name field.
 14380  //   - projectId: Deprecated. The Google Developers Console project ID or project
 14381  //     number
 14382  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 14383  //     This field has been deprecated and replaced by the name field.
 14384  //   - zone: Deprecated. The name of the Google Compute Engine zone
 14385  //     (https://cloud.google.com/compute/docs/zones#available) in which the
 14386  //     cluster resides. This field has been deprecated and replaced by the name
 14387  //     field.
 14388  func (r *ProjectsZonesOperationsService) Get(projectId string, zone string, operationId string) *ProjectsZonesOperationsGetCall {
 14389  	c := &ProjectsZonesOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 14390  	c.projectId = projectId
 14391  	c.zone = zone
 14392  	c.operationId = operationId
 14393  	return c
 14394  }
 14395  
 14396  // Name sets the optional parameter "name": The name (project, location,
 14397  // operation id) of the operation to get. Specified in the format
 14398  // `projects/*/locations/*/operations/*`.
 14399  func (c *ProjectsZonesOperationsGetCall) Name(name string) *ProjectsZonesOperationsGetCall {
 14400  	c.urlParams_.Set("name", name)
 14401  	return c
 14402  }
 14403  
 14404  // Fields allows partial responses to be retrieved. See
 14405  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 14406  // details.
 14407  func (c *ProjectsZonesOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsZonesOperationsGetCall {
 14408  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 14409  	return c
 14410  }
 14411  
 14412  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 14413  // object's ETag matches the given value. This is useful for getting updates
 14414  // only after the object has changed since the last request.
 14415  func (c *ProjectsZonesOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsZonesOperationsGetCall {
 14416  	c.ifNoneMatch_ = entityTag
 14417  	return c
 14418  }
 14419  
 14420  // Context sets the context to be used in this call's Do method.
 14421  func (c *ProjectsZonesOperationsGetCall) Context(ctx context.Context) *ProjectsZonesOperationsGetCall {
 14422  	c.ctx_ = ctx
 14423  	return c
 14424  }
 14425  
 14426  // Header returns a http.Header that can be modified by the caller to add
 14427  // headers to the request.
 14428  func (c *ProjectsZonesOperationsGetCall) Header() http.Header {
 14429  	if c.header_ == nil {
 14430  		c.header_ = make(http.Header)
 14431  	}
 14432  	return c.header_
 14433  }
 14434  
 14435  func (c *ProjectsZonesOperationsGetCall) doRequest(alt string) (*http.Response, error) {
 14436  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 14437  	if c.ifNoneMatch_ != "" {
 14438  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 14439  	}
 14440  	var body io.Reader = nil
 14441  	c.urlParams_.Set("alt", alt)
 14442  	c.urlParams_.Set("prettyPrint", "false")
 14443  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/operations/{operationId}")
 14444  	urls += "?" + c.urlParams_.Encode()
 14445  	req, err := http.NewRequest("GET", urls, body)
 14446  	if err != nil {
 14447  		return nil, err
 14448  	}
 14449  	req.Header = reqHeaders
 14450  	googleapi.Expand(req.URL, map[string]string{
 14451  		"projectId":   c.projectId,
 14452  		"zone":        c.zone,
 14453  		"operationId": c.operationId,
 14454  	})
 14455  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 14456  }
 14457  
 14458  // Do executes the "container.projects.zones.operations.get" call.
 14459  // Any non-2xx status code is an error. Response headers are in either
 14460  // *Operation.ServerResponse.Header or (if a response was returned at all) in
 14461  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
 14462  // whether the returned error was because http.StatusNotModified was returned.
 14463  func (c *ProjectsZonesOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
 14464  	gensupport.SetOptions(c.urlParams_, opts...)
 14465  	res, err := c.doRequest("json")
 14466  	if res != nil && res.StatusCode == http.StatusNotModified {
 14467  		if res.Body != nil {
 14468  			res.Body.Close()
 14469  		}
 14470  		return nil, gensupport.WrapError(&googleapi.Error{
 14471  			Code:   res.StatusCode,
 14472  			Header: res.Header,
 14473  		})
 14474  	}
 14475  	if err != nil {
 14476  		return nil, err
 14477  	}
 14478  	defer googleapi.CloseBody(res)
 14479  	if err := googleapi.CheckResponse(res); err != nil {
 14480  		return nil, gensupport.WrapError(err)
 14481  	}
 14482  	ret := &Operation{
 14483  		ServerResponse: googleapi.ServerResponse{
 14484  			Header:         res.Header,
 14485  			HTTPStatusCode: res.StatusCode,
 14486  		},
 14487  	}
 14488  	target := &ret
 14489  	if err := gensupport.DecodeResponse(target, res); err != nil {
 14490  		return nil, err
 14491  	}
 14492  	return ret, nil
 14493  }
 14494  
 14495  type ProjectsZonesOperationsListCall struct {
 14496  	s            *Service
 14497  	projectId    string
 14498  	zone         string
 14499  	urlParams_   gensupport.URLParams
 14500  	ifNoneMatch_ string
 14501  	ctx_         context.Context
 14502  	header_      http.Header
 14503  }
 14504  
 14505  // List: Lists all operations in a project in a specific zone or all zones.
 14506  //
 14507  //   - projectId: Deprecated. The Google Developers Console project ID or project
 14508  //     number
 14509  //     (https://cloud.google.com/resource-manager/docs/creating-managing-projects).
 14510  //     This field has been deprecated and replaced by the parent field.
 14511  //   - zone: Deprecated. The name of the Google Compute Engine zone
 14512  //     (https://cloud.google.com/compute/docs/zones#available) to return
 14513  //     operations for, or `-` for all zones. This field has been deprecated and
 14514  //     replaced by the parent field.
 14515  func (r *ProjectsZonesOperationsService) List(projectId string, zone string) *ProjectsZonesOperationsListCall {
 14516  	c := &ProjectsZonesOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
 14517  	c.projectId = projectId
 14518  	c.zone = zone
 14519  	return c
 14520  }
 14521  
 14522  // Parent sets the optional parameter "parent": The parent (project and
 14523  // location) where the operations will be listed. Specified in the format
 14524  // `projects/*/locations/*`. Location "-" matches all zones and all regions.
 14525  func (c *ProjectsZonesOperationsListCall) Parent(parent string) *ProjectsZonesOperationsListCall {
 14526  	c.urlParams_.Set("parent", parent)
 14527  	return c
 14528  }
 14529  
 14530  // Fields allows partial responses to be retrieved. See
 14531  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
 14532  // details.
 14533  func (c *ProjectsZonesOperationsListCall) Fields(s ...googleapi.Field) *ProjectsZonesOperationsListCall {
 14534  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
 14535  	return c
 14536  }
 14537  
 14538  // IfNoneMatch sets an optional parameter which makes the operation fail if the
 14539  // object's ETag matches the given value. This is useful for getting updates
 14540  // only after the object has changed since the last request.
 14541  func (c *ProjectsZonesOperationsListCall) IfNoneMatch(entityTag string) *ProjectsZonesOperationsListCall {
 14542  	c.ifNoneMatch_ = entityTag
 14543  	return c
 14544  }
 14545  
 14546  // Context sets the context to be used in this call's Do method.
 14547  func (c *ProjectsZonesOperationsListCall) Context(ctx context.Context) *ProjectsZonesOperationsListCall {
 14548  	c.ctx_ = ctx
 14549  	return c
 14550  }
 14551  
 14552  // Header returns a http.Header that can be modified by the caller to add
 14553  // headers to the request.
 14554  func (c *ProjectsZonesOperationsListCall) Header() http.Header {
 14555  	if c.header_ == nil {
 14556  		c.header_ = make(http.Header)
 14557  	}
 14558  	return c.header_
 14559  }
 14560  
 14561  func (c *ProjectsZonesOperationsListCall) doRequest(alt string) (*http.Response, error) {
 14562  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
 14563  	if c.ifNoneMatch_ != "" {
 14564  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
 14565  	}
 14566  	var body io.Reader = nil
 14567  	c.urlParams_.Set("alt", alt)
 14568  	c.urlParams_.Set("prettyPrint", "false")
 14569  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/zones/{zone}/operations")
 14570  	urls += "?" + c.urlParams_.Encode()
 14571  	req, err := http.NewRequest("GET", urls, body)
 14572  	if err != nil {
 14573  		return nil, err
 14574  	}
 14575  	req.Header = reqHeaders
 14576  	googleapi.Expand(req.URL, map[string]string{
 14577  		"projectId": c.projectId,
 14578  		"zone":      c.zone,
 14579  	})
 14580  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
 14581  }
 14582  
 14583  // Do executes the "container.projects.zones.operations.list" call.
 14584  // Any non-2xx status code is an error. Response headers are in either
 14585  // *ListOperationsResponse.ServerResponse.Header or (if a response was returned
 14586  // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
 14587  // check whether the returned error was because http.StatusNotModified was
 14588  // returned.
 14589  func (c *ProjectsZonesOperationsListCall) Do(opts ...googleapi.CallOption) (*ListOperationsResponse, error) {
 14590  	gensupport.SetOptions(c.urlParams_, opts...)
 14591  	res, err := c.doRequest("json")
 14592  	if res != nil && res.StatusCode == http.StatusNotModified {
 14593  		if res.Body != nil {
 14594  			res.Body.Close()
 14595  		}
 14596  		return nil, gensupport.WrapError(&googleapi.Error{
 14597  			Code:   res.StatusCode,
 14598  			Header: res.Header,
 14599  		})
 14600  	}
 14601  	if err != nil {
 14602  		return nil, err
 14603  	}
 14604  	defer googleapi.CloseBody(res)
 14605  	if err := googleapi.CheckResponse(res); err != nil {
 14606  		return nil, gensupport.WrapError(err)
 14607  	}
 14608  	ret := &ListOperationsResponse{
 14609  		ServerResponse: googleapi.ServerResponse{
 14610  			Header:         res.Header,
 14611  			HTTPStatusCode: res.StatusCode,
 14612  		},
 14613  	}
 14614  	target := &ret
 14615  	if err := gensupport.DecodeResponse(target, res); err != nil {
 14616  		return nil, err
 14617  	}
 14618  	return ret, nil
 14619  }
 14620  

View as plain text