blob: 34320166951977e34b9b7b6b7c45217c7d42f5bc [file] [log] [blame]
// Copyright 2020 Google LLC.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Code generated file. DO NOT EDIT.
// Package container provides access to the Kubernetes Engine API.
//
// For product documentation, see: https://cloud.google.com/container-engine/
//
// Creating a client
//
// Usage example:
//
// import "google.golang.org/api/container/v1"
// ...
// ctx := context.Background()
// containerService, err := container.NewService(ctx)
//
// In this example, Google Application Default Credentials are used for authentication.
//
// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
//
// Other authentication options
//
// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
//
// containerService, err := container.NewService(ctx, option.WithAPIKey("AIza..."))
//
// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
//
// config := &oauth2.Config{...}
// // ...
// token, err := config.Exchange(ctx, ...)
// containerService, err := container.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
//
// See https://godoc.org/google.golang.org/api/option/ for details on options.
package container // import "google.golang.org/api/container/v1"
import (
"bytes"
"context"
"encoding/json"
"errors"
"fmt"
"io"
"net/http"
"net/url"
"strconv"
"strings"
googleapi "google.golang.org/api/googleapi"
gensupport "google.golang.org/api/internal/gensupport"
option "google.golang.org/api/option"
internaloption "google.golang.org/api/option/internaloption"
htransport "google.golang.org/api/transport/http"
)
// Always reference these packages, just in case the auto-generated code
// below doesn't.
var _ = bytes.NewBuffer
var _ = strconv.Itoa
var _ = fmt.Sprintf
var _ = json.NewDecoder
var _ = io.Copy
var _ = url.Parse
var _ = gensupport.MarshalJSON
var _ = googleapi.Version
var _ = errors.New
var _ = strings.Replace
var _ = context.Canceled
var _ = internaloption.WithDefaultEndpoint
const apiId = "container:v1"
const apiName = "container"
const apiVersion = "v1"
const basePath = "https://container.googleapis.com/"
const mtlsBasePath = "https://container.mtls.googleapis.com/"
// OAuth2 scopes used by this API.
const (
// View and manage your data across Google Cloud Platform services
CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
)
// NewService creates a new Service.
func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
scopesOption := option.WithScopes(
"https://www.googleapis.com/auth/cloud-platform",
)
// NOTE: prepend, so we don't override user-specified scopes.
opts = append([]option.ClientOption{scopesOption}, opts...)
opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
client, endpoint, err := htransport.NewClient(ctx, opts...)
if err != nil {
return nil, err
}
s, err := New(client)
if err != nil {
return nil, err
}
if endpoint != "" {
s.BasePath = endpoint
}
return s, nil
}
// New creates a new Service. It uses the provided http.Client for requests.
//
// Deprecated: please use NewService instead.
// To provide a custom HTTP client, use option.WithHTTPClient.
// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
func New(client *http.Client) (*Service, error) {
if client == nil {
return nil, errors.New("client is nil")
}
s := &Service{client: client, BasePath: basePath}
s.Projects = NewProjectsService(s)
return s, nil
}
type Service struct {
client *http.Client
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
Projects *ProjectsService
}
func (s *Service) userAgent() string {
if s.UserAgent == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
}
func NewProjectsService(s *Service) *ProjectsService {
rs := &ProjectsService{s: s}
rs.Aggregated = NewProjectsAggregatedService(s)
rs.Locations = NewProjectsLocationsService(s)
rs.Zones = NewProjectsZonesService(s)
return rs
}
type ProjectsService struct {
s *Service
Aggregated *ProjectsAggregatedService
Locations *ProjectsLocationsService
Zones *ProjectsZonesService
}
func NewProjectsAggregatedService(s *Service) *ProjectsAggregatedService {
rs := &ProjectsAggregatedService{s: s}
rs.UsableSubnetworks = NewProjectsAggregatedUsableSubnetworksService(s)
return rs
}
type ProjectsAggregatedService struct {
s *Service
UsableSubnetworks *ProjectsAggregatedUsableSubnetworksService
}
func NewProjectsAggregatedUsableSubnetworksService(s *Service) *ProjectsAggregatedUsableSubnetworksService {
rs := &ProjectsAggregatedUsableSubnetworksService{s: s}
return rs
}
type ProjectsAggregatedUsableSubnetworksService struct {
s *Service
}
func NewProjectsLocationsService(s *Service) *ProjectsLocationsService {
rs := &ProjectsLocationsService{s: s}
rs.Clusters = NewProjectsLocationsClustersService(s)
rs.Operations = NewProjectsLocationsOperationsService(s)
return rs
}
type ProjectsLocationsService struct {
s *Service
Clusters *ProjectsLocationsClustersService
Operations *ProjectsLocationsOperationsService
}
func NewProjectsLocationsClustersService(s *Service) *ProjectsLocationsClustersService {
rs := &ProjectsLocationsClustersService{s: s}
rs.NodePools = NewProjectsLocationsClustersNodePoolsService(s)
rs.WellKnown = NewProjectsLocationsClustersWellKnownService(s)
return rs
}
type ProjectsLocationsClustersService struct {
s *Service
NodePools *ProjectsLocationsClustersNodePoolsService
WellKnown *ProjectsLocationsClustersWellKnownService
}
func NewProjectsLocationsClustersNodePoolsService(s *Service) *ProjectsLocationsClustersNodePoolsService {
rs := &ProjectsLocationsClustersNodePoolsService{s: s}
return rs
}
type ProjectsLocationsClustersNodePoolsService struct {
s *Service
}
func NewProjectsLocationsClustersWellKnownService(s *Service) *ProjectsLocationsClustersWellKnownService {
rs := &ProjectsLocationsClustersWellKnownService{s: s}
return rs
}
type ProjectsLocationsClustersWellKnownService struct {
s *Service
}
func NewProjectsLocationsOperationsService(s *Service) *ProjectsLocationsOperationsService {
rs := &ProjectsLocationsOperationsService{s: s}
return rs
}
type ProjectsLocationsOperationsService struct {
s *Service
}
func NewProjectsZonesService(s *Service) *ProjectsZonesService {
rs := &ProjectsZonesService{s: s}
rs.Clusters = NewProjectsZonesClustersService(s)
rs.Operations = NewProjectsZonesOperationsService(s)
return rs
}
type ProjectsZonesService struct {
s *Service
Clusters *ProjectsZonesClustersService
Operations *ProjectsZonesOperationsService
}
func NewProjectsZonesClustersService(s *Service) *ProjectsZonesClustersService {
rs := &ProjectsZonesClustersService{s: s}
rs.NodePools = NewProjectsZonesClustersNodePoolsService(s)
return rs
}
type ProjectsZonesClustersService struct {
s *Service
NodePools *ProjectsZonesClustersNodePoolsService
}
func NewProjectsZonesClustersNodePoolsService(s *Service) *ProjectsZonesClustersNodePoolsService {
rs := &ProjectsZonesClustersNodePoolsService{s: s}
return rs
}
type ProjectsZonesClustersNodePoolsService struct {
s *Service
}
func NewProjectsZonesOperationsService(s *Service) *ProjectsZonesOperationsService {
rs := &ProjectsZonesOperationsService{s: s}
return rs
}
type ProjectsZonesOperationsService struct {
s *Service
}
// AcceleratorConfig: AcceleratorConfig represents a Hardware
// Accelerator request.
type AcceleratorConfig struct {
// AcceleratorCount: The number of the accelerator cards exposed to an
// instance.
AcceleratorCount int64 `json:"acceleratorCount,omitempty,string"`
// AcceleratorType: The accelerator type resource name. List of
// supported accelerators
// [here](https://cloud.google.com/compute/docs/gpus)
AcceleratorType string `json:"acceleratorType,omitempty"`
// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AcceleratorCount") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *AcceleratorConfig) MarshalJSON() ([]byte, error) {
type NoMethod AcceleratorConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AddonsConfig: Configuration for the addons that can be automatically
// spun up in the cluster, enabling additional functionality.
type AddonsConfig struct {
// CloudRunConfig: Configuration for the Cloud Run addon, which allows
// the user to use a managed Knative service.
CloudRunConfig *CloudRunConfig `json:"cloudRunConfig,omitempty"`
// ConfigConnectorConfig: Configuration for the ConfigConnector add-on,
// a Kubernetes extension to manage hosted GCP services through the
// Kubernetes API
ConfigConnectorConfig *ConfigConnectorConfig `json:"configConnectorConfig,omitempty"`
// DnsCacheConfig: Configuration for NodeLocalDNS, a dns cache running
// on cluster nodes
DnsCacheConfig *DnsCacheConfig `json:"dnsCacheConfig,omitempty"`
// HorizontalPodAutoscaling: Configuration for the horizontal pod
// autoscaling feature, which increases or decreases the number of
// replica pods a replication controller has based on the resource usage
// of the existing pods.
HorizontalPodAutoscaling *HorizontalPodAutoscaling `json:"horizontalPodAutoscaling,omitempty"`
// HttpLoadBalancing: Configuration for the HTTP (L7) load balancing
// controller addon, which makes it easy to set up HTTP load balancers
// for services in a cluster.
HttpLoadBalancing *HttpLoadBalancing `json:"httpLoadBalancing,omitempty"`
// KubernetesDashboard: Configuration for the Kubernetes Dashboard. This
// addon is deprecated, and will be disabled in 1.15. It is recommended
// to use the Cloud Console to manage and monitor your Kubernetes
// clusters, workloads and applications. For more information, see:
// https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards
KubernetesDashboard *KubernetesDashboard `json:"kubernetesDashboard,omitempty"`
// NetworkPolicyConfig: Configuration for NetworkPolicy. This only
// tracks whether the addon is enabled or not on the Master, it does not
// track whether network policy is enabled for the nodes.
NetworkPolicyConfig *NetworkPolicyConfig `json:"networkPolicyConfig,omitempty"`
// ForceSendFields is a list of field names (e.g. "CloudRunConfig") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "CloudRunConfig") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *AddonsConfig) MarshalJSON() ([]byte, error) {
type NoMethod AddonsConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AuthenticatorGroupsConfig: Configuration for returning group
// information from authenticators.
type AuthenticatorGroupsConfig struct {
// Enabled: Whether this cluster should return group membership lookups
// during authentication using a group of security groups.
Enabled bool `json:"enabled,omitempty"`
// SecurityGroup: The name of the security group-of-groups to be used.
// Only relevant if enabled = true.
SecurityGroup string `json:"securityGroup,omitempty"`
// ForceSendFields is a list of field names (e.g. "Enabled") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Enabled") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *AuthenticatorGroupsConfig) MarshalJSON() ([]byte, error) {
type NoMethod AuthenticatorGroupsConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AutoUpgradeOptions: AutoUpgradeOptions defines the set of options for
// the user to control how the Auto Upgrades will proceed.
type AutoUpgradeOptions struct {
// AutoUpgradeStartTime: [Output only] This field is set when upgrades
// are about to commence with the approximate start time for the
// upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
// format.
AutoUpgradeStartTime string `json:"autoUpgradeStartTime,omitempty"`
// Description: [Output only] This field is set when upgrades are about
// to commence with the description of the upgrade.
Description string `json:"description,omitempty"`
// ForceSendFields is a list of field names (e.g.
// "AutoUpgradeStartTime") to unconditionally include in API requests.
// By default, fields with empty values are omitted from API requests.
// However, any non-pointer, non-interface field appearing in
// ForceSendFields will be sent to the server regardless of whether the
// field is empty or not. This may be used to include empty fields in
// Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AutoUpgradeStartTime") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *AutoUpgradeOptions) MarshalJSON() ([]byte, error) {
type NoMethod AutoUpgradeOptions
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// AutoprovisioningNodePoolDefaults: AutoprovisioningNodePoolDefaults
// contains defaults for a node pool created by NAP.
type AutoprovisioningNodePoolDefaults struct {
// BootDiskKmsKey: The Customer Managed Encryption Key used to encrypt
// the boot disk attached to each node in the node pool. This should be
// of the form
// projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cr
// yptoKeys/[KEY_NAME]. For more information about protecting resources
// with Cloud KMS Keys please see:
// https://cloud.google.com/compute/docs/disks/customer-managed-encryption
BootDiskKmsKey string `json:"bootDiskKmsKey,omitempty"`
// DiskSizeGb: Size of the disk attached to each node, specified in GB.
// The smallest allowed disk size is 10GB. If unspecified, the default
// disk size is 100GB.
DiskSizeGb int64 `json:"diskSizeGb,omitempty"`
// DiskType: Type of the disk attached to each node (e.g. 'pd-standard'
// or 'pd-ssd') If unspecified, the default disk type is 'pd-standard'
DiskType string `json:"diskType,omitempty"`
// Management: Specifies the node management options for NAP created
// node-pools.
Management *NodeManagement `json:"management,omitempty"`
// MinCpuPlatform: Minimum CPU platform to be used for NAP created node
// pools. The instance may be scheduled on the specified or newer CPU
// platform. Applicable values are the friendly names of CPU platforms,
// such as minCpuPlatform: Intel Haswell or minCpuPlatform: Intel Sandy
// Bridge. For more information, read [how to specify min CPU
// platform](https://cloud.google.com/compute/docs/instances/specify-min-
// cpu-platform) To unset the min cpu platform field pass "automatic" as
// field value.
MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
// OauthScopes: Scopes that are used by NAP when creating node pools.
OauthScopes []string `json:"oauthScopes,omitempty"`
// ServiceAccount: The Google Cloud Platform Service Account to be used
// by the node VMs.
ServiceAccount string `json:"serviceAccount,omitempty"`
// ShieldedInstanceConfig: Shielded Instance options.
ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
// UpgradeSettings: Specifies the upgrade settings for NAP created node
// pools
UpgradeSettings *UpgradeSettings `json:"upgradeSettings,omitempty"`
// ForceSendFields is a list of field names (e.g. "BootDiskKmsKey") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "BootDiskKmsKey") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *AutoprovisioningNodePoolDefaults) MarshalJSON() ([]byte, error) {
type NoMethod AutoprovisioningNodePoolDefaults
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// BigQueryDestination: Parameters for using BigQuery as the destination
// of resource usage export.
type BigQueryDestination struct {
// DatasetId: The ID of a BigQuery Dataset.
DatasetId string `json:"datasetId,omitempty"`
// ForceSendFields is a list of field names (e.g. "DatasetId") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "DatasetId") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *BigQueryDestination) MarshalJSON() ([]byte, error) {
type NoMethod BigQueryDestination
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// BinaryAuthorization: Configuration for Binary Authorization.
type BinaryAuthorization struct {
// Enabled: Enable Binary Authorization for this cluster. If enabled,
// all container images will be validated by Binary Authorization.
Enabled bool `json:"enabled,omitempty"`
// ForceSendFields is a list of field names (e.g. "Enabled") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Enabled") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *BinaryAuthorization) MarshalJSON() ([]byte, error) {
type NoMethod BinaryAuthorization
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CancelOperationRequest: CancelOperationRequest cancels a single
// operation.
type CancelOperationRequest struct {
// Name: The name (project, location, operation id) of the operation to
// cancel. Specified in the format
// `projects/*/locations/*/operations/*`.
Name string `json:"name,omitempty"`
// OperationId: Deprecated. The server-assigned `name` of the operation.
// This field has been deprecated and replaced by the name field.
OperationId string `json:"operationId,omitempty"`
// ProjectId: Deprecated. The Google Developers Console [project ID or
// project number](https://support.google.com/cloud/answer/6158840).
// This field has been deprecated and replaced by the name field.
ProjectId string `json:"projectId,omitempty"`
// Zone: Deprecated. The name of the Google Compute Engine
// [zone](https://cloud.google.com/compute/docs/zones#available) in
// which the operation resides. This field has been deprecated and
// replaced by the name field.
Zone string `json:"zone,omitempty"`
// ForceSendFields is a list of field names (e.g. "Name") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Name") to include in API
// requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *CancelOperationRequest) MarshalJSON() ([]byte, error) {
type NoMethod CancelOperationRequest
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CidrBlock: CidrBlock contains an optional name and one CIDR block.
type CidrBlock struct {
// CidrBlock: cidr_block must be specified in CIDR notation.
CidrBlock string `json:"cidrBlock,omitempty"`
// DisplayName: display_name is an optional field for users to identify
// CIDR blocks.
DisplayName string `json:"displayName,omitempty"`
// ForceSendFields is a list of field names (e.g. "CidrBlock") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "CidrBlock") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *CidrBlock) MarshalJSON() ([]byte, error) {
type NoMethod CidrBlock
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ClientCertificateConfig: Configuration for client certificates on the
// cluster.
type ClientCertificateConfig struct {
// IssueClientCertificate: Issue a client certificate.
IssueClientCertificate bool `json:"issueClientCertificate,omitempty"`
// ForceSendFields is a list of field names (e.g.
// "IssueClientCertificate") to unconditionally include in API requests.
// By default, fields with empty values are omitted from API requests.
// However, any non-pointer, non-interface field appearing in
// ForceSendFields will be sent to the server regardless of whether the
// field is empty or not. This may be used to include empty fields in
// Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "IssueClientCertificate")
// to include in API requests with the JSON null value. By default,
// fields with empty values are omitted from API requests. However, any
// field with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *ClientCertificateConfig) MarshalJSON() ([]byte, error) {
type NoMethod ClientCertificateConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CloudRunConfig: Configuration options for the Cloud Run feature.
type CloudRunConfig struct {
// Disabled: Whether Cloud Run addon is enabled for this cluster.
Disabled bool `json:"disabled,omitempty"`
// LoadBalancerType: Which load balancer type is installed for Cloud
// Run.
//
// Possible values:
// "LOAD_BALANCER_TYPE_UNSPECIFIED" - Load balancer type for Cloud Run
// is unspecified.
// "LOAD_BALANCER_TYPE_EXTERNAL" - Install external load balancer for
// Cloud Run.
// "LOAD_BALANCER_TYPE_INTERNAL" - Install internal load balancer for
// Cloud Run.
LoadBalancerType string `json:"loadBalancerType,omitempty"`
// ForceSendFields is a list of field names (e.g. "Disabled") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Disabled") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *CloudRunConfig) MarshalJSON() ([]byte, error) {
type NoMethod CloudRunConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// Cluster: A Google Kubernetes Engine cluster.
type Cluster struct {
// AddonsConfig: Configurations for the various addons available to run
// in the cluster.
AddonsConfig *AddonsConfig `json:"addonsConfig,omitempty"`
// AuthenticatorGroupsConfig: Configuration controlling RBAC group
// membership information.
AuthenticatorGroupsConfig *AuthenticatorGroupsConfig `json:"authenticatorGroupsConfig,omitempty"`
// Autoscaling: Cluster-level autoscaling configuration.
Autoscaling *ClusterAutoscaling `json:"autoscaling,omitempty"`
// BinaryAuthorization: Configuration for Binary Authorization.
BinaryAuthorization *BinaryAuthorization `json:"binaryAuthorization,omitempty"`
// ClusterIpv4Cidr: The IP address range of the container pods in this
// cluster, in
// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
// notation (e.g. `10.96.0.0/14`). Leave blank to have one automatically
// chosen or specify a `/14` block in `10.0.0.0/8`.
ClusterIpv4Cidr string `json:"clusterIpv4Cidr,omitempty"`
// Conditions: Which conditions caused the current cluster state.
Conditions []*StatusCondition `json:"conditions,omitempty"`
// CreateTime: [Output only] The time the cluster was created, in
// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
CreateTime string `json:"createTime,omitempty"`
// CurrentMasterVersion: [Output only] The current software version of
// the master endpoint.
CurrentMasterVersion string `json:"currentMasterVersion,omitempty"`
// CurrentNodeCount: [Output only] The number of nodes currently in the
// cluster. Deprecated. Call Kubernetes API directly to retrieve node
// information.
CurrentNodeCount int64 `json:"currentNodeCount,omitempty"`
// CurrentNodeVersion: [Output only] Deprecated, use
// [NodePools.version](https://cloud.google.com/kubernetes-engine/docs/re
// ference/rest/v1/projects.locations.clusters.nodePools) instead. The
// current version of the node software components. If they are
// currently at multiple versions because they're in the process of
// being upgraded, this reflects the minimum version of all nodes.
CurrentNodeVersion string `json:"currentNodeVersion,omitempty"`
// DatabaseEncryption: Configuration of etcd encryption.
DatabaseEncryption *DatabaseEncryption `json:"databaseEncryption,omitempty"`
// DefaultMaxPodsConstraint: The default constraint on the maximum
// number of pods that can be run simultaneously on a node in the node
// pool of this cluster. Only honored if cluster created with IP Alias
// support.
DefaultMaxPodsConstraint *MaxPodsConstraint `json:"defaultMaxPodsConstraint,omitempty"`
// Description: An optional description of this cluster.
Description string `json:"description,omitempty"`
// EnableKubernetesAlpha: Kubernetes alpha features are enabled on this
// cluster. This includes alpha API groups (e.g. v1alpha1) and features
// that may not be production ready in the kubernetes version of the
// master and nodes. The cluster has no SLA for uptime and master/node
// upgrades are disabled. Alpha enabled clusters are automatically
// deleted thirty days after creation.
EnableKubernetesAlpha bool `json:"enableKubernetesAlpha,omitempty"`
// EnableTpu: Enable the ability to use Cloud TPUs in this cluster.
EnableTpu bool `json:"enableTpu,omitempty"`
// Endpoint: [Output only] The IP address of this cluster's master
// endpoint. The endpoint can be accessed from the internet at
// `https://username:password@endpoint/`. See the `masterAuth` property
// of this resource for username and password information.
Endpoint string `json:"endpoint,omitempty"`
// ExpireTime: [Output only] The time the cluster will be automatically
// deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text
// format.
ExpireTime string `json:"expireTime,omitempty"`
// InitialClusterVersion: The initial Kubernetes version for this
// cluster. Valid versions are those found in validMasterVersions
// returned by getServerConfig. The version can be upgraded over time;
// such upgrades are reflected in currentMasterVersion and
// currentNodeVersion. Users may specify either explicit versions
// offered by Kubernetes Engine or version aliases, which have the
// following behavior: - "latest": picks the highest valid Kubernetes
// version - "1.X": picks the highest valid patch+gke.N patch in the 1.X
// version - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y
// version - "1.X.Y-gke.N": picks an explicit Kubernetes version -
// "","-": picks the default Kubernetes version
InitialClusterVersion string `json:"initialClusterVersion,omitempty"`
// InitialNodeCount: The number of nodes to create in this cluster. You
// must ensure that your Compute Engine [resource
// quota](https://cloud.google.com/compute/quotas) is sufficient for
// this number of instances. You must also have available firewall and
// routes quota. For requests, this field should only be used in lieu of
// a "node_pool" object, since this configuration (along with the
// "node_config") will be used to create a "NodePool" object with an
// auto-generated name. Do not use this and a node_pool at the same
// time. This field is deprecated, use node_pool.initial_node_count
// instead.
InitialNodeCount int64 `json:"initialNodeCount,omitempty"`
// InstanceGroupUrls: Deprecated. Use node_pools.instance_group_urls.
InstanceGroupUrls []string `json:"instanceGroupUrls,omitempty"`
// IpAllocationPolicy: Configuration for cluster IP allocation.
IpAllocationPolicy *IPAllocationPolicy `json:"ipAllocationPolicy,omitempty"`
// LabelFingerprint: The fingerprint of the set of labels for this
// cluster.
LabelFingerprint string `json:"labelFingerprint,omitempty"`
// LegacyAbac: Configuration for the legacy ABAC authorization mode.
LegacyAbac *LegacyAbac `json:"legacyAbac,omitempty"`
// Location: [Output only] The name of the Google Compute Engine
// [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zon
// es#available) or
// [region](https://cloud.google.com/compute/docs/regions-zones/regions-z
// ones#available) in which the cluster resides.
Location string `json:"location,omitempty"`
// Locations: The list of Google Compute Engine
// [zones](https://cloud.google.com/compute/docs/zones#available) in
// which the cluster's nodes should be located.
Locations []string `json:"locations,omitempty"`
// LoggingService: The logging service the cluster should use to write
// logs. Currently available options: *
// `logging.googleapis.com/kubernetes` - The Cloud Logging service with
// a Kubernetes-native resource model * `logging.googleapis.com` - The
// legacy Cloud Logging service (no longer available as of GKE 1.15). *
// `none` - no logs will be exported from the cluster. If left as an
// empty string,`logging.googleapis.com/kubernetes` will be used for GKE
// 1.14+ or `logging.googleapis.com` for earlier versions.
LoggingService string `json:"loggingService,omitempty"`
// MaintenancePolicy: Configure the maintenance policy for this cluster.
MaintenancePolicy *MaintenancePolicy `json:"maintenancePolicy,omitempty"`
// MasterAuth: The authentication information for accessing the master
// endpoint. If unspecified, the defaults are used: For clusters before
// v1.12, if master_auth is unspecified, `username` will be set to
// "admin", a random password will be generated, and a client
// certificate will be issued.
MasterAuth *MasterAuth `json:"masterAuth,omitempty"`
// MasterAuthorizedNetworksConfig: The configuration options for master
// authorized networks feature.
MasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `json:"masterAuthorizedNetworksConfig,omitempty"`
// MonitoringService: The monitoring service the cluster should use to
// write metrics. Currently available options: *
// "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring service
// with a Kubernetes-native resource model * `monitoring.googleapis.com`
// - The legacy Cloud Monitoring service (no longer available as of GKE
// 1.15). * `none` - No metrics will be exported from the cluster. If
// left as an empty string,`monitoring.googleapis.com/kubernetes` will
// be used for GKE 1.14+ or `monitoring.googleapis.com` for earlier
// versions.
MonitoringService string `json:"monitoringService,omitempty"`
// Name: The name of this cluster. The name must be unique within this
// project and location (e.g. zone or region), and can be up to 40
// characters with the following restrictions: * Lowercase letters,
// numbers, and hyphens only. * Must start with a letter. * Must end
// with a number or a letter.
Name string `json:"name,omitempty"`
// Network: The name of the Google Compute Engine
// [network](https://cloud.google.com/compute/docs/networks-and-firewalls
// #networks) to which the cluster is connected. If left unspecified,
// the `default` network will be used.
Network string `json:"network,omitempty"`
// NetworkConfig: Configuration for cluster networking.
NetworkConfig *NetworkConfig `json:"networkConfig,omitempty"`
// NetworkPolicy: Configuration options for the NetworkPolicy feature.
NetworkPolicy *NetworkPolicy `json:"networkPolicy,omitempty"`
// NodeConfig: Parameters used in creating the cluster's nodes. For
// requests, this field should only be used in lieu of a "node_pool"
// object, since this configuration (along with the
// "initial_node_count") will be used to create a "NodePool" object with
// an auto-generated name. Do not use this and a node_pool at the same
// time. For responses, this field will be populated with the node
// configuration of the first node pool. (For configuration of each node
// pool, see `node_pool.config`) If unspecified, the defaults are used.
// This field is deprecated, use node_pool.config instead.
NodeConfig *NodeConfig `json:"nodeConfig,omitempty"`
// NodeIpv4CidrSize: [Output only] The size of the address space on each
// node for hosting containers. This is provisioned from within the
// `container_ipv4_cidr` range. This field will only be set when cluster
// is in route-based network mode.
NodeIpv4CidrSize int64 `json:"nodeIpv4CidrSize,omitempty"`
// NodePools: The node pools associated with this cluster. This field
// should not be set if "node_config" or "initial_node_count" are
// specified.
NodePools []*NodePool `json:"nodePools,omitempty"`
// PrivateClusterConfig: Configuration for private cluster.
PrivateClusterConfig *PrivateClusterConfig `json:"privateClusterConfig,omitempty"`
// ReleaseChannel: Release channel configuration.
ReleaseChannel *ReleaseChannel `json:"releaseChannel,omitempty"`
// ResourceLabels: The resource labels for the cluster to use to
// annotate any related Google Compute Engine resources.
ResourceLabels map[string]string `json:"resourceLabels,omitempty"`
// ResourceUsageExportConfig: Configuration for exporting resource
// usages. Resource usage export is disabled when this config is
// unspecified.
ResourceUsageExportConfig *ResourceUsageExportConfig `json:"resourceUsageExportConfig,omitempty"`
// SelfLink: [Output only] Server-defined URL for the resource.
SelfLink string `json:"selfLink,omitempty"`
// ServicesIpv4Cidr: [Output only] The IP address range of the
// Kubernetes services in this cluster, in
// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
// notation (e.g. `1.2.3.4/29`). Service addresses are typically put in
// the last `/16` from the container CIDR.
ServicesIpv4Cidr string `json:"servicesIpv4Cidr,omitempty"`
// ShieldedNodes: Shielded Nodes configuration.
ShieldedNodes *ShieldedNodes `json:"shieldedNodes,omitempty"`
// Status: [Output only] The current status of this cluster.
//
// Possible values:
// "STATUS_UNSPECIFIED" - Not set.
// "PROVISIONING" - The PROVISIONING state indicates the cluster is
// being created.
// "RUNNING" - The RUNNING state indicates the cluster has been
// created and is fully usable.
// "RECONCILING" - The RECONCILING state indicates that some work is
// actively being done on the cluster, such as upgrading the master or
// node software. Details can be found in the `statusMessage` field.
// "STOPPING" - The STOPPING state indicates the cluster is being
// deleted.
// "ERROR" - The ERROR state indicates the cluster is unusable. It
// will be automatically deleted. Details can be found in the
// `statusMessage` field.
// "DEGRADED" - The DEGRADED state indicates the cluster requires user
// action to restore full functionality. Details can be found in the
// `statusMessage` field.
Status string `json:"status,omitempty"`
// StatusMessage: [Output only] Additional information about the current
// status of this cluster, if available.
StatusMessage string `json:"statusMessage,omitempty"`
// Subnetwork: The name of the Google Compute Engine
// [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to
// which the cluster is connected.
Subnetwork string `json:"subnetwork,omitempty"`
// TpuIpv4CidrBlock: [Output only] The IP address range of the Cloud
// TPUs in this cluster, in
// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
// notation (e.g. `1.2.3.4/29`).
TpuIpv4CidrBlock string `json:"tpuIpv4CidrBlock,omitempty"`
// VerticalPodAutoscaling: Cluster-level Vertical Pod Autoscaling
// configuration.
VerticalPodAutoscaling *VerticalPodAutoscaling `json:"verticalPodAutoscaling,omitempty"`
// WorkloadIdentityConfig: Configuration for the use of Kubernetes
// Service Accounts in GCP IAM policies.
WorkloadIdentityConfig *WorkloadIdentityConfig `json:"workloadIdentityConfig,omitempty"`
// Zone: [Output only] The name of the Google Compute Engine
// [zone](https://cloud.google.com/compute/docs/zones#available) in
// which the cluster resides. This field is deprecated, use location
// instead.
Zone string `json:"zone,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "AddonsConfig") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AddonsConfig") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *Cluster) MarshalJSON() ([]byte, error) {
type NoMethod Cluster
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ClusterAutoscaling: ClusterAutoscaling contains global, per-cluster
// information required by Cluster Autoscaler to automatically adjust
// the size of the cluster and create/delete node pools based on the
// current needs.
type ClusterAutoscaling struct {
// AutoprovisioningLocations: The list of Google Compute Engine
// [zones](https://cloud.google.com/compute/docs/zones#available) in
// which the NodePool's nodes can be created by NAP.
AutoprovisioningLocations []string `json:"autoprovisioningLocations,omitempty"`
// AutoprovisioningNodePoolDefaults: AutoprovisioningNodePoolDefaults
// contains defaults for a node pool created by NAP.
AutoprovisioningNodePoolDefaults *AutoprovisioningNodePoolDefaults `json:"autoprovisioningNodePoolDefaults,omitempty"`
// EnableNodeAutoprovisioning: Enables automatic node pool creation and
// deletion.
EnableNodeAutoprovisioning bool `json:"enableNodeAutoprovisioning,omitempty"`
// ResourceLimits: Contains global constraints regarding minimum and
// maximum amount of resources in the cluster.
ResourceLimits []*ResourceLimit `json:"resourceLimits,omitempty"`
// ForceSendFields is a list of field names (e.g.
// "AutoprovisioningLocations") to unconditionally include in API
// requests. By default, fields with empty values are omitted from API
// requests. However, any non-pointer, non-interface field appearing in
// ForceSendFields will be sent to the server regardless of whether the
// field is empty or not. This may be used to include empty fields in
// Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g.
// "AutoprovisioningLocations") to include in API requests with the JSON
// null value. By default, fields with empty values are omitted from API
// requests. However, any field with an empty value appearing in
// NullFields will be sent to the server as null. It is an error if a
// field in this list has a non-empty value. This may be used to include
// null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *ClusterAutoscaling) MarshalJSON() ([]byte, error) {
type NoMethod ClusterAutoscaling
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ClusterUpdate: ClusterUpdate describes an update to the cluster.
// Exactly one update can be applied to a cluster with each request, so
// at most one field can be provided.
type ClusterUpdate struct {
// DesiredAddonsConfig: Configurations for the various addons available
// to run in the cluster.
DesiredAddonsConfig *AddonsConfig `json:"desiredAddonsConfig,omitempty"`
// DesiredBinaryAuthorization: The desired configuration options for the
// Binary Authorization feature.
DesiredBinaryAuthorization *BinaryAuthorization `json:"desiredBinaryAuthorization,omitempty"`
// DesiredClusterAutoscaling: Cluster-level autoscaling configuration.
DesiredClusterAutoscaling *ClusterAutoscaling `json:"desiredClusterAutoscaling,omitempty"`
// DesiredDatabaseEncryption: Configuration of etcd encryption.
DesiredDatabaseEncryption *DatabaseEncryption `json:"desiredDatabaseEncryption,omitempty"`
// DesiredDefaultSnatStatus: The desired status of whether to disable
// default sNAT for this cluster.
DesiredDefaultSnatStatus *DefaultSnatStatus `json:"desiredDefaultSnatStatus,omitempty"`
// DesiredImageType: The desired image type for the node pool. NOTE: Set
// the "desired_node_pool" field as well.
DesiredImageType string `json:"desiredImageType,omitempty"`
// DesiredIntraNodeVisibilityConfig: The desired config of Intra-node
// visibility.
DesiredIntraNodeVisibilityConfig *IntraNodeVisibilityConfig `json:"desiredIntraNodeVisibilityConfig,omitempty"`
// DesiredLocations: The desired list of Google Compute Engine
// [zones](https://cloud.google.com/compute/docs/zones#available) in
// which the cluster's nodes should be located. Changing the locations a
// cluster is in will result in nodes being either created or removed
// from the cluster, depending on whether locations are being added or
// removed. This list must always include the cluster's primary zone.
DesiredLocations []string `json:"desiredLocations,omitempty"`
// DesiredLoggingService: The logging service the cluster should use to
// write logs. Currently available options: *
// `logging.googleapis.com/kubernetes` - The Cloud Logging service with
// a Kubernetes-native resource model * `logging.googleapis.com` - The
// legacy Cloud Logging service (no longer available as of GKE 1.15). *
// `none` - no logs will be exported from the cluster. If left as an
// empty string,`logging.googleapis.com/kubernetes` will be used for GKE
// 1.14+ or `logging.googleapis.com` for earlier versions.
DesiredLoggingService string `json:"desiredLoggingService,omitempty"`
// DesiredMasterAuthorizedNetworksConfig: The desired configuration
// options for master authorized networks feature.
DesiredMasterAuthorizedNetworksConfig *MasterAuthorizedNetworksConfig `json:"desiredMasterAuthorizedNetworksConfig,omitempty"`
// DesiredMasterVersion: The Kubernetes version to change the master to.
// Users may specify either explicit versions offered by Kubernetes
// Engine or version aliases, which have the following behavior: -
// "latest": picks the highest valid Kubernetes version - "1.X": picks
// the highest valid patch+gke.N patch in the 1.X version - "1.X.Y":
// picks the highest valid gke.N patch in the 1.X.Y version -
// "1.X.Y-gke.N": picks an explicit Kubernetes version - "-": picks the
// default Kubernetes version
DesiredMasterVersion string `json:"desiredMasterVersion,omitempty"`
// DesiredMonitoringService: The monitoring service the cluster should
// use to write metrics. Currently available options: *
// "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring service
// with a Kubernetes-native resource model * `monitoring.googleapis.com`
// - The legacy Cloud Monitoring service (no longer available as of GKE
// 1.15). * `none` - No metrics will be exported from the cluster. If
// left as an empty string,`monitoring.googleapis.com/kubernetes` will
// be used for GKE 1.14+ or `monitoring.googleapis.com` for earlier
// versions.
DesiredMonitoringService string `json:"desiredMonitoringService,omitempty"`
// DesiredNodePoolAutoscaling: Autoscaler configuration for the node
// pool specified in desired_node_pool_id. If there is only one pool in
// the cluster and desired_node_pool_id is not provided then the change
// applies to that single node pool.
DesiredNodePoolAutoscaling *NodePoolAutoscaling `json:"desiredNodePoolAutoscaling,omitempty"`
// DesiredNodePoolId: The node pool to be upgraded. This field is
// mandatory if "desired_node_version", "desired_image_family" or
// "desired_node_pool_autoscaling" is specified and there is more than
// one node pool on the cluster.
DesiredNodePoolId string `json:"desiredNodePoolId,omitempty"`
// DesiredNodeVersion: The Kubernetes version to change the nodes to
// (typically an upgrade). Users may specify either explicit versions
// offered by Kubernetes Engine or version aliases, which have the
// following behavior: - "latest": picks the highest valid Kubernetes
// version - "1.X": picks the highest valid patch+gke.N patch in the 1.X
// version - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y
// version - "1.X.Y-gke.N": picks an explicit Kubernetes version - "-":
// picks the Kubernetes master version
DesiredNodeVersion string `json:"desiredNodeVersion,omitempty"`
// DesiredPrivateClusterConfig: The desired private cluster
// configuration.
DesiredPrivateClusterConfig *PrivateClusterConfig `json:"desiredPrivateClusterConfig,omitempty"`
// DesiredReleaseChannel: The desired release channel configuration.
DesiredReleaseChannel *ReleaseChannel `json:"desiredReleaseChannel,omitempty"`
// DesiredResourceUsageExportConfig: The desired configuration for
// exporting resource usage.
DesiredResourceUsageExportConfig *ResourceUsageExportConfig `json:"desiredResourceUsageExportConfig,omitempty"`
// DesiredShieldedNodes: Configuration for Shielded Nodes.
DesiredShieldedNodes *ShieldedNodes `json:"desiredShieldedNodes,omitempty"`
// DesiredVerticalPodAutoscaling: Cluster-level Vertical Pod Autoscaling
// configuration.
DesiredVerticalPodAutoscaling *VerticalPodAutoscaling `json:"desiredVerticalPodAutoscaling,omitempty"`
// DesiredWorkloadIdentityConfig: Configuration for Workload Identity.
DesiredWorkloadIdentityConfig *WorkloadIdentityConfig `json:"desiredWorkloadIdentityConfig,omitempty"`
// ForceSendFields is a list of field names (e.g. "DesiredAddonsConfig")
// to unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "DesiredAddonsConfig") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *ClusterUpdate) MarshalJSON() ([]byte, error) {
type NoMethod ClusterUpdate
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CompleteIPRotationRequest: CompleteIPRotationRequest moves the
// cluster master back into single-IP mode.
type CompleteIPRotationRequest struct {
// ClusterId: Deprecated. The name of the cluster. This field has been
// deprecated and replaced by the name field.
ClusterId string `json:"clusterId,omitempty"`
// Name: The name (project, location, cluster id) of the cluster to
// complete IP rotation. Specified in the format
// `projects/*/locations/*/clusters/*`.
Name string `json:"name,omitempty"`
// ProjectId: Deprecated. The Google Developers Console [project ID or
// project
// number](https://developers.google.com/console/help/new/#projectnumber)
// . This field has been deprecated and replaced by the name field.
ProjectId string `json:"projectId,omitempty"`
// Zone: Deprecated. The name of the Google Compute Engine
// [zone](https://cloud.google.com/compute/docs/zones#available) in
// which the cluster resides. This field has been deprecated and
// replaced by the name field.
Zone string `json:"zone,omitempty"`
// ForceSendFields is a list of field names (e.g. "ClusterId") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "ClusterId") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *CompleteIPRotationRequest) MarshalJSON() ([]byte, error) {
type NoMethod CompleteIPRotationRequest
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ConfigConnectorConfig: Configuration options for the Config Connector
// add-on.
type ConfigConnectorConfig struct {
// Enabled: Whether Cloud Connector is enabled for this cluster.
Enabled bool `json:"enabled,omitempty"`
// ForceSendFields is a list of field names (e.g. "Enabled") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Enabled") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *ConfigConnectorConfig) MarshalJSON() ([]byte, error) {
type NoMethod ConfigConnectorConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ConsumptionMeteringConfig: Parameters for controlling consumption
// metering.
type ConsumptionMeteringConfig struct {
// Enabled: Whether to enable consumption metering for this cluster. If
// enabled, a second BigQuery table will be created to hold resource
// consumption records.
Enabled bool `json:"enabled,omitempty"`
// ForceSendFields is a list of field names (e.g. "Enabled") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Enabled") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *ConsumptionMeteringConfig) MarshalJSON() ([]byte, error) {
type NoMethod ConsumptionMeteringConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CreateClusterRequest: CreateClusterRequest creates a cluster.
type CreateClusterRequest struct {
// Cluster: Required. A [cluster
// resource](https://cloud.google.com/container-engine/reference/rest/v1/
// projects.locations.clusters)
Cluster *Cluster `json:"cluster,omitempty"`
// Parent: The parent (project and location) where the cluster will be
// created. Specified in the format `projects/*/locations/*`.
Parent string `json:"parent,omitempty"`
// ProjectId: Deprecated. The Google Developers Console [project ID or
// project number](https://support.google.com/cloud/answer/6158840).
// This field has been deprecated and replaced by the parent field.
ProjectId string `json:"projectId,omitempty"`
// Zone: Deprecated. The name of the Google Compute Engine
// [zone](https://cloud.google.com/compute/docs/zones#available) in
// which the cluster resides. This field has been deprecated and
// replaced by the parent field.
Zone string `json:"zone,omitempty"`
// ForceSendFields is a list of field names (e.g. "Cluster") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Cluster") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *CreateClusterRequest) MarshalJSON() ([]byte, error) {
type NoMethod CreateClusterRequest
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// CreateNodePoolRequest: CreateNodePoolRequest creates a node pool for
// a cluster.
type CreateNodePoolRequest struct {
// ClusterId: Deprecated. The name of the cluster. This field has been
// deprecated and replaced by the parent field.
ClusterId string `json:"clusterId,omitempty"`
// NodePool: Required. The node pool to create.
NodePool *NodePool `json:"nodePool,omitempty"`
// Parent: The parent (project, location, cluster id) where the node
// pool will be created. Specified in the format
// `projects/*/locations/*/clusters/*`.
Parent string `json:"parent,omitempty"`
// ProjectId: Deprecated. The Google Developers Console [project ID or
// project
// number](https://developers.google.com/console/help/new/#projectnumber)
// . This field has been deprecated and replaced by the parent field.
ProjectId string `json:"projectId,omitempty"`
// Zone: Deprecated. The name of the Google Compute Engine
// [zone](https://cloud.google.com/compute/docs/zones#available) in
// which the cluster resides. This field has been deprecated and
// replaced by the parent field.
Zone string `json:"zone,omitempty"`
// ForceSendFields is a list of field names (e.g. "ClusterId") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "ClusterId") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *CreateNodePoolRequest) MarshalJSON() ([]byte, error) {
type NoMethod CreateNodePoolRequest
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// DailyMaintenanceWindow: Time window specified for daily maintenance
// operations.
type DailyMaintenanceWindow struct {
// Duration: [Output only] Duration of the time window, automatically
// chosen to be smallest possible in the given scenario. Duration will
// be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format
// "PTnHnMnS".
Duration string `json:"duration,omitempty"`
// StartTime: Time within the maintenance window to start the
// maintenance operations. Time format should be in
// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format "HH:MM", where
// HH : [00-23] and MM : [00-59] GMT.
StartTime string `json:"startTime,omitempty"`
// ForceSendFields is a list of field names (e.g. "Duration") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Duration") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *DailyMaintenanceWindow) MarshalJSON() ([]byte, error) {
type NoMethod DailyMaintenanceWindow
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// DatabaseEncryption: Configuration of etcd encryption.
type DatabaseEncryption struct {
// KeyName: Name of CloudKMS key to use for the encryption of secrets in
// etcd. Ex.
// projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-ke
// y
KeyName string `json:"keyName,omitempty"`
// State: Denotes the state of etcd encryption.
//
// Possible values:
// "UNKNOWN" - Should never be set
// "ENCRYPTED" - Secrets in etcd are encrypted.
// "DECRYPTED" - Secrets in etcd are stored in plain text (at etcd
// level) - this is unrelated to Compute Engine level full disk
// encryption.
State string `json:"state,omitempty"`
// ForceSendFields is a list of field names (e.g. "KeyName") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "KeyName") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *DatabaseEncryption) MarshalJSON() ([]byte, error) {
type NoMethod DatabaseEncryption
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// DefaultSnatStatus: DefaultSnatStatus contains the desired state of
// whether default sNAT should be disabled on the cluster.
type DefaultSnatStatus struct {
// Disabled: Disables cluster default sNAT rules.
Disabled bool `json:"disabled,omitempty"`
// ForceSendFields is a list of field names (e.g. "Disabled") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Disabled") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *DefaultSnatStatus) MarshalJSON() ([]byte, error) {
type NoMethod DefaultSnatStatus
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// DnsCacheConfig: Configuration for NodeLocal DNSCache
type DnsCacheConfig struct {
// Enabled: Whether NodeLocal DNSCache is enabled for this cluster.
Enabled bool `json:"enabled,omitempty"`
// ForceSendFields is a list of field names (e.g. "Enabled") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Enabled") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *DnsCacheConfig) MarshalJSON() ([]byte, error) {
type NoMethod DnsCacheConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// Empty: A generic empty message that you can re-use to avoid defining
// duplicated empty messages in your APIs. A typical example is to use
// it as the request or the response type of an API method. For
// instance: service Foo { rpc Bar(google.protobuf.Empty) returns
// (google.protobuf.Empty); } The JSON representation for `Empty` is
// empty JSON object `{}`.
type Empty struct {
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
}
// GetJSONWebKeysResponse: GetJSONWebKeysResponse is a valid JSON Web
// Key Set as specififed in rfc 7517
type GetJSONWebKeysResponse struct {
// CacheHeader: OnePlatform automatically extracts this field and uses
// it to set the HTTP Cache-Control header.
CacheHeader *HttpCacheControlResponseHeader `json:"cacheHeader,omitempty"`
// Keys: The public component of the keys used by the cluster to sign
// token requests.
Keys []*Jwk `json:"keys,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "CacheHeader") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "CacheHeader") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *GetJSONWebKeysResponse) MarshalJSON() ([]byte, error) {
type NoMethod GetJSONWebKeysResponse
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// GetOpenIDConfigResponse: GetOpenIDConfigResponse is an OIDC discovery
// document for the cluster. See the OpenID Connect Discovery 1.0
// specification for details.
type GetOpenIDConfigResponse struct {
// CacheHeader: OnePlatform automatically extracts this field and uses
// it to set the HTTP Cache-Control header.
CacheHeader *HttpCacheControlResponseHeader `json:"cacheHeader,omitempty"`
// ClaimsSupported: Supported claims.
ClaimsSupported []string `json:"claims_supported,omitempty"`
// GrantTypes: Supported grant types.
GrantTypes []string `json:"grant_types,omitempty"`
// IdTokenSigningAlgValuesSupported: supported ID Token signing
// Algorithms.
IdTokenSigningAlgValuesSupported []string `json:"id_token_signing_alg_values_supported,omitempty"`
// Issuer: OIDC Issuer.
Issuer string `json:"issuer,omitempty"`
// JwksUri: JSON Web Key uri.
JwksUri string `json:"jwks_uri,omitempty"`
// ResponseTypesSupported: Supported response types.
ResponseTypesSupported []string `json:"response_types_supported,omitempty"`
// SubjectTypesSupported: Supported subject types.
SubjectTypesSupported []string `json:"subject_types_supported,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "CacheHeader") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "CacheHeader") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *GetOpenIDConfigResponse) MarshalJSON() ([]byte, error) {
type NoMethod GetOpenIDConfigResponse
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// HorizontalPodAutoscaling: Configuration options for the horizontal
// pod autoscaling feature, which increases or decreases the number of
// replica pods a replication controller has based on the resource usage
// of the existing pods.
type HorizontalPodAutoscaling struct {
// Disabled: Whether the Horizontal Pod Autoscaling feature is enabled
// in the cluster. When enabled, it ensures that metrics are collected
// into Stackdriver Monitoring.
Disabled bool `json:"disabled,omitempty"`
// ForceSendFields is a list of field names (e.g. "Disabled") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Disabled") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *HorizontalPodAutoscaling) MarshalJSON() ([]byte, error) {
type NoMethod HorizontalPodAutoscaling
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// HttpCacheControlResponseHeader: RFC-2616: cache control support
type HttpCacheControlResponseHeader struct {
// Age: 14.6 response cache age, in seconds since the response is
// generated
Age int64 `json:"age,omitempty,string"`
// Directive: 14.9 request and response directives
Directive string `json:"directive,omitempty"`
// Expires: 14.21 response cache expires, in RFC 1123 date format
Expires string `json:"expires,omitempty"`
// ForceSendFields is a list of field names (e.g. "Age") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Age") to include in API
// requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *HttpCacheControlResponseHeader) MarshalJSON() ([]byte, error) {
type NoMethod HttpCacheControlResponseHeader
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// HttpLoadBalancing: Configuration options for the HTTP (L7) load
// balancing controller addon, which makes it easy to set up HTTP load
// balancers for services in a cluster.
type HttpLoadBalancing struct {
// Disabled: Whether the HTTP Load Balancing controller is enabled in
// the cluster. When enabled, it runs a small pod in the cluster that
// manages the load balancers.
Disabled bool `json:"disabled,omitempty"`
// ForceSendFields is a list of field names (e.g. "Disabled") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Disabled") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *HttpLoadBalancing) MarshalJSON() ([]byte, error) {
type NoMethod HttpLoadBalancing
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// IPAllocationPolicy: Configuration for controlling how IPs are
// allocated in the cluster.
type IPAllocationPolicy struct {
// ClusterIpv4Cidr: This field is deprecated, use
// cluster_ipv4_cidr_block.
ClusterIpv4Cidr string `json:"clusterIpv4Cidr,omitempty"`
// ClusterIpv4CidrBlock: The IP address range for the cluster pod IPs.
// If this field is set, then `cluster.cluster_ipv4_cidr` must be left
// blank. This field is only applicable when `use_ip_aliases` is true.
// Set to blank to have a range chosen with the default size. Set to
// /netmask (e.g. `/14`) to have a range chosen with a specific netmask.
// Set to a
// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks
// (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a
// specific range to use.
ClusterIpv4CidrBlock string `json:"clusterIpv4CidrBlock,omitempty"`
// ClusterSecondaryRangeName: The name of the secondary range to be used
// for the cluster CIDR block. The secondary range will be used for pod
// IP addresses. This must be an existing secondary range associated
// with the cluster subnetwork. This field is only applicable with
// use_ip_aliases is true and create_subnetwork is false.
ClusterSecondaryRangeName string `json:"clusterSecondaryRangeName,omitempty"`
// CreateSubnetwork: Whether a new subnetwork will be created
// automatically for the cluster. This field is only applicable when
// `use_ip_aliases` is true.
CreateSubnetwork bool `json:"createSubnetwork,omitempty"`
// NodeIpv4Cidr: This field is deprecated, use node_ipv4_cidr_block.
NodeIpv4Cidr string `json:"nodeIpv4Cidr,omitempty"`
// NodeIpv4CidrBlock: The IP address range of the instance IPs in this
// cluster. This is applicable only if `create_subnetwork` is true. Set
// to blank to have a range chosen with the default size. Set to
// /netmask (e.g. `/14`) to have a range chosen with a specific netmask.
// Set to a
// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks
// (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a
// specific range to use.
NodeIpv4CidrBlock string `json:"nodeIpv4CidrBlock,omitempty"`
// ServicesIpv4Cidr: This field is deprecated, use
// services_ipv4_cidr_block.
ServicesIpv4Cidr string `json:"servicesIpv4Cidr,omitempty"`
// ServicesIpv4CidrBlock: The IP address range of the services IPs in
// this cluster. If blank, a range will be automatically chosen with the
// default size. This field is only applicable when `use_ip_aliases` is
// true. Set to blank to have a range chosen with the default size. Set
// to /netmask (e.g. `/14`) to have a range chosen with a specific
// netmask. Set to a
// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks
// (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a
// specific range to use.
ServicesIpv4CidrBlock string `json:"servicesIpv4CidrBlock,omitempty"`
// ServicesSecondaryRangeName: The name of the secondary range to be
// used as for the services CIDR block. The secondary range will be used
// for service ClusterIPs. This must be an existing secondary range
// associated with the cluster subnetwork. This field is only applicable
// with use_ip_aliases is true and create_subnetwork is false.
ServicesSecondaryRangeName string `json:"servicesSecondaryRangeName,omitempty"`
// SubnetworkName: A custom subnetwork name to be used if
// `create_subnetwork` is true. If this field is empty, then an
// automatic name will be chosen for the new subnetwork.
SubnetworkName string `json:"subnetworkName,omitempty"`
// TpuIpv4CidrBlock: The IP address range of the Cloud TPUs in this
// cluster. If unspecified, a range will be automatically chosen with
// the default size. This field is only applicable when `use_ip_aliases`
// is true. If unspecified, the range will use the default size. Set to
// /netmask (e.g. `/14`) to have a range chosen with a specific netmask.
// Set to a
// [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
// notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks
// (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a
// specific range to use.
TpuIpv4CidrBlock string `json:"tpuIpv4CidrBlock,omitempty"`
// UseIpAliases: Whether alias IPs will be used for pod IPs in the
// cluster. This is used in conjunction with use_routes. It cannot be
// true if use_routes is true. If both use_ip_aliases and use_routes are
// false, then the server picks the default IP allocation mode
UseIpAliases bool `json:"useIpAliases,omitempty"`
// UseRoutes: Whether routes will be used for pod IPs in the cluster.
// This is used in conjunction with use_ip_aliases. It cannot be true if
// use_ip_aliases is true. If both use_ip_aliases and use_routes are
// false, then the server picks the default IP allocation mode
UseRoutes bool `json:"useRoutes,omitempty"`
// ForceSendFields is a list of field names (e.g. "ClusterIpv4Cidr") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "ClusterIpv4Cidr") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *IPAllocationPolicy) MarshalJSON() ([]byte, error) {
type NoMethod IPAllocationPolicy
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// IntraNodeVisibilityConfig: IntraNodeVisibilityConfig contains the
// desired config of the intra-node visibility on this cluster.
type IntraNodeVisibilityConfig struct {
// Enabled: Enables intra node visibility for this cluster.
Enabled bool `json:"enabled,omitempty"`
// ForceSendFields is a list of field names (e.g. "Enabled") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Enabled") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *IntraNodeVisibilityConfig) MarshalJSON() ([]byte, error) {
type NoMethod IntraNodeVisibilityConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// Jwk: Jwk is a JSON Web Key as specified in RFC 7517
type Jwk struct {
// Alg: Algorithm.
Alg string `json:"alg,omitempty"`
// Crv: Used for ECDSA keys.
Crv string `json:"crv,omitempty"`
// E: Used for RSA keys.
E string `json:"e,omitempty"`
// Kid: Key ID.
Kid string `json:"kid,omitempty"`
// Kty: Key Type.
Kty string `json:"kty,omitempty"`
// N: Used for RSA keys.
N string `json:"n,omitempty"`
// Use: Permitted uses for the public keys.
Use string `json:"use,omitempty"`
// X: Used for ECDSA keys.
X string `json:"x,omitempty"`
// Y: Used for ECDSA keys.
Y string `json:"y,omitempty"`
// ForceSendFields is a list of field names (e.g. "Alg") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Alg") to include in API
// requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *Jwk) MarshalJSON() ([]byte, error) {
type NoMethod Jwk
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// KubernetesDashboard: Configuration for the Kubernetes Dashboard.
type KubernetesDashboard struct {
// Disabled: Whether the Kubernetes Dashboard is enabled for this
// cluster.
Disabled bool `json:"disabled,omitempty"`
// ForceSendFields is a list of field names (e.g. "Disabled") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Disabled") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *KubernetesDashboard) MarshalJSON() ([]byte, error) {
type NoMethod KubernetesDashboard
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// LegacyAbac: Configuration for the legacy Attribute Based Access
// Control authorization mode.
type LegacyAbac struct {
// Enabled: Whether the ABAC authorizer is enabled for this cluster.
// When enabled, identities in the system, including service accounts,
// nodes, and controllers, will have statically granted permissions
// beyond those provided by the RBAC configuration or IAM.
Enabled bool `json:"enabled,omitempty"`
// ForceSendFields is a list of field names (e.g. "Enabled") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Enabled") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *LegacyAbac) MarshalJSON() ([]byte, error) {
type NoMethod LegacyAbac
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ListClustersResponse: ListClustersResponse is the result of
// ListClustersRequest.
type ListClustersResponse struct {
// Clusters: A list of clusters in the project in the specified zone, or
// across all ones.
Clusters []*Cluster `json:"clusters,omitempty"`
// MissingZones: If any zones are listed here, the list of clusters
// returned may be missing those zones.
MissingZones []string `json:"missingZones,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "Clusters") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Clusters") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *ListClustersResponse) MarshalJSON() ([]byte, error) {
type NoMethod ListClustersResponse
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ListNodePoolsResponse: ListNodePoolsResponse is the result of
// ListNodePoolsRequest.
type ListNodePoolsResponse struct {
// NodePools: A list of node pools for a cluster.
NodePools []*NodePool `json:"nodePools,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "NodePools") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "NodePools") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *ListNodePoolsResponse) MarshalJSON() ([]byte, error) {
type NoMethod ListNodePoolsResponse
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ListOperationsResponse: ListOperationsResponse is the result of
// ListOperationsRequest.
type ListOperationsResponse struct {
// MissingZones: If any zones are listed here, the list of operations
// returned may be missing the operations from those zones.
MissingZones []string `json:"missingZones,omitempty"`
// Operations: A list of operations in the project in the specified
// zone.
Operations []*Operation `json:"operations,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "MissingZones") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "MissingZones") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *ListOperationsResponse) MarshalJSON() ([]byte, error) {
type NoMethod ListOperationsResponse
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ListUsableSubnetworksResponse: ListUsableSubnetworksResponse is the
// response of ListUsableSubnetworksRequest.
type ListUsableSubnetworksResponse struct {
// NextPageToken: This token allows you to get the next page of results
// for list requests. If the number of results is larger than
// `page_size`, use the `next_page_token` as a value for the query
// parameter `page_token` in the next request. The value will become
// empty when there are no more pages.
NextPageToken string `json:"nextPageToken,omitempty"`
// Subnetworks: A list of usable subnetworks in the specified network
// project.
Subnetworks []*UsableSubnetwork `json:"subnetworks,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "NextPageToken") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "NextPageToken") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *ListUsableSubnetworksResponse) MarshalJSON() ([]byte, error) {
type NoMethod ListUsableSubnetworksResponse
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// MaintenancePolicy: MaintenancePolicy defines the maintenance policy
// to be used for the cluster.
type MaintenancePolicy struct {
// ResourceVersion: A hash identifying the version of this policy, so
// that updates to fields of the policy won't accidentally undo
// intermediate changes (and so that users of the API unaware of some
// fields won't accidentally remove other fields). Make a `get()`
// request to the cluster to get the current resource version and
// include it with requests to set the policy.
ResourceVersion string `json:"resourceVersion,omitempty"`
// Window: Specifies the maintenance window in which maintenance may be
// performed.
Window *MaintenanceWindow `json:"window,omitempty"`
// ForceSendFields is a list of field names (e.g. "ResourceVersion") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "ResourceVersion") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *MaintenancePolicy) MarshalJSON() ([]byte, error) {
type NoMethod MaintenancePolicy
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// MaintenanceWindow: MaintenanceWindow defines the maintenance window
// to be used for the cluster.
type MaintenanceWindow struct {
// DailyMaintenanceWindow: DailyMaintenanceWindow specifies a daily
// maintenance operation window.
DailyMaintenanceWindow *DailyMaintenanceWindow `json:"dailyMaintenanceWindow,omitempty"`
// MaintenanceExclusions: Exceptions to maintenance window.
// Non-emergency maintenance should not occur in these windows.
MaintenanceExclusions map[string]TimeWindow `json:"maintenanceExclusions,omitempty"`
// RecurringWindow: RecurringWindow specifies some number of recurring
// time periods for maintenance to occur. The time windows may be
// overlapping. If no maintenance windows are set, maintenance can occur
// at any time.
RecurringWindow *RecurringTimeWindow `json:"recurringWindow,omitempty"`
// ForceSendFields is a list of field names (e.g.
// "DailyMaintenanceWindow") to unconditionally include in API requests.
// By default, fields with empty values are omitted from API requests.
// However, any non-pointer, non-interface field appearing in
// ForceSendFields will be sent to the server regardless of whether the
// field is empty or not. This may be used to include empty fields in
// Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "DailyMaintenanceWindow")
// to include in API requests with the JSON null value. By default,
// fields with empty values are omitted from API requests. However, any
// field with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *MaintenanceWindow) MarshalJSON() ([]byte, error) {
type NoMethod MaintenanceWindow
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// MasterAuth: The authentication information for accessing the master
// endpoint. Authentication can be done using HTTP basic auth or using
// client certificates.
type MasterAuth struct {
// ClientCertificate: [Output only] Base64-encoded public certificate
// used by clients to authenticate to the cluster endpoint.
ClientCertificate string `json:"clientCertificate,omitempty"`
// ClientCertificateConfig: Configuration for client certificate
// authentication on the cluster. For clusters before v1.12, if no
// configuration is specified, a client certificate is issued.
ClientCertificateConfig *ClientCertificateConfig `json:"clientCertificateConfig,omitempty"`
// ClientKey: [Output only] Base64-encoded private key used by clients
// to authenticate to the cluster endpoint.
ClientKey string `json:"clientKey,omitempty"`
// ClusterCaCertificate: [Output only] Base64-encoded public certificate
// that is the root of trust for the cluster.
ClusterCaCertificate string `json:"clusterCaCertificate,omitempty"`
// Password: The password to use for HTTP basic authentication to the
// master endpoint. Because the master endpoint is open to the Internet,
// you should create a strong password. If a password is provided for
// cluster creation, username must be non-empty. Warning: basic
// authentication is deprecated, and will be removed in GKE control
// plane versions 1.19 and newer. For a list of recommended
// authentication methods, see:
// https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
Password string `json:"password,omitempty"`
// Username: The username to use for HTTP basic authentication to the
// master endpoint. For clusters v1.6.0 and later, basic authentication
// can be disabled by leaving username unspecified (or setting it to the
// empty string). Warning: basic authentication is deprecated, and will
// be removed in GKE control plane versions 1.19 and newer. For a list
// of recommended authentication methods, see:
// https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
Username string `json:"username,omitempty"`
// ForceSendFields is a list of field names (e.g. "ClientCertificate")
// to unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "ClientCertificate") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *MasterAuth) MarshalJSON() ([]byte, error) {
type NoMethod MasterAuth
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// MasterAuthorizedNetworksConfig: Configuration options for the master
// authorized networks feature. Enabled master authorized networks will
// disallow all external traffic to access Kubernetes master through
// HTTPS except traffic from the given CIDR blocks, Google Compute
// Engine Public IPs and Google Prod IPs.
type MasterAuthorizedNetworksConfig struct {
// CidrBlocks: cidr_blocks define up to 50 external networks that could
// access Kubernetes master through HTTPS.
CidrBlocks []*CidrBlock `json:"cidrBlocks,omitempty"`
// Enabled: Whether or not master authorized networks is enabled.
Enabled bool `json:"enabled,omitempty"`
// ForceSendFields is a list of field names (e.g. "CidrBlocks") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "CidrBlocks") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *MasterAuthorizedNetworksConfig) MarshalJSON() ([]byte, error) {
type NoMethod MasterAuthorizedNetworksConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// MaxPodsConstraint: Constraints applied to pods.
type MaxPodsConstraint struct {
// MaxPodsPerNode: Constraint enforced on the max num of pods per node.
MaxPodsPerNode int64 `json:"maxPodsPerNode,omitempty,string"`
// ForceSendFields is a list of field names (e.g. "MaxPodsPerNode") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "MaxPodsPerNode") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *MaxPodsConstraint) MarshalJSON() ([]byte, error) {
type NoMethod MaxPodsConstraint
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// Metric: Progress metric is (string, int|float|string) pair.
type Metric struct {
// DoubleValue: For metrics with floating point value.
DoubleValue float64 `json:"doubleValue,omitempty"`
// IntValue: For metrics with integer value.
IntValue int64 `json:"intValue,omitempty,string"`
// Name: Required. Metric name, e.g., "nodes total", "percent done".
Name string `json:"name,omitempty"`
// StringValue: For metrics with custom values (ratios, visual progress,
// etc.).
StringValue string `json:"stringValue,omitempty"`
// ForceSendFields is a list of field names (e.g. "DoubleValue") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "DoubleValue") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *Metric) MarshalJSON() ([]byte, error) {
type NoMethod Metric
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
func (s *Metric) UnmarshalJSON(data []byte) error {
type NoMethod Metric
var s1 struct {
DoubleValue gensupport.JSONFloat64 `json:"doubleValue"`
*NoMethod
}
s1.NoMethod = (*NoMethod)(s)
if err := json.Unmarshal(data, &s1); err != nil {
return err
}
s.DoubleValue = float64(s1.DoubleValue)
return nil
}
// NetworkConfig: NetworkConfig reports the relative names of network &
// subnetwork.
type NetworkConfig struct {
// DefaultSnatStatus: Whether the cluster disables default in-node sNAT
// rules. In-node sNAT rules will be disabled when default_snat_status
// is disabled. When disabled is set to false, default IP masquerade
// rules will be applied to the nodes to prevent sNAT on cluster
// internal traffic.
DefaultSnatStatus *DefaultSnatStatus `json:"defaultSnatStatus,omitempty"`
// EnableIntraNodeVisibility: Whether Intra-node visibility is enabled
// for this cluster. This makes same node pod to pod traffic visible for
// VPC network.
EnableIntraNodeVisibility bool `json:"enableIntraNodeVisibility,omitempty"`
// Network: Output only. The relative name of the Google Compute Engine
// network(https://cloud.google.com/compute/docs/networks-and-firewalls#n
// etworks) to which the cluster is connected. Example:
// projects/my-project/global/networks/my-network
Network string `json:"network,omitempty"`
// Subnetwork: Output only. The relative name of the Google Compute
// Engine [subnetwork](https://cloud.google.com/compute/docs/vpc) to
// which the cluster is connected. Example:
// projects/my-project/regions/us-central1/subnetworks/my-subnet
Subnetwork string `json:"subnetwork,omitempty"`
// ForceSendFields is a list of field names (e.g. "DefaultSnatStatus")
// to unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "DefaultSnatStatus") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *NetworkConfig) MarshalJSON() ([]byte, error) {
type NoMethod NetworkConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// NetworkPolicy: Configuration options for the NetworkPolicy feature.
// https://kubernetes.io/docs/concepts/services-networking/networkpolicies/
type NetworkPolicy struct {
// Enabled: Whether network policy is enabled on the cluster.
Enabled bool `json:"enabled,omitempty"`
// Provider: The selected network policy provider.
//
// Possible values:
// "PROVIDER_UNSPECIFIED" - Not set
// "CALICO" - Tigera (Calico Felix).
Provider string `json:"provider,omitempty"`
// ForceSendFields is a list of field names (e.g. "Enabled") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Enabled") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *NetworkPolicy) MarshalJSON() ([]byte, error) {
type NoMethod NetworkPolicy
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// NetworkPolicyConfig: Configuration for NetworkPolicy. This only
// tracks whether the addon is enabled or not on the Master, it does not
// track whether network policy is enabled for the nodes.
type NetworkPolicyConfig struct {
// Disabled: Whether NetworkPolicy is enabled for this cluster.
Disabled bool `json:"disabled,omitempty"`
// ForceSendFields is a list of field names (e.g. "Disabled") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Disabled") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *NetworkPolicyConfig) MarshalJSON() ([]byte, error) {
type NoMethod NetworkPolicyConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// NodeConfig: Parameters that describe the nodes in a cluster.
type NodeConfig struct {
// Accelerators: A list of hardware accelerators to be attached to each
// node. See https://cloud.google.com/compute/docs/gpus for more
// information about support for GPUs.
Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"`
// BootDiskKmsKey: The Customer Managed Encryption Key used to encrypt
// the boot disk attached to each node in the node pool. This should be
// of the form
// projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cr
// yptoKeys/[KEY_NAME]. For more information about protecting resources
// with Cloud KMS Keys please see:
// https://cloud.google.com/compute/docs/disks/customer-managed-encryption
BootDiskKmsKey string `json:"bootDiskKmsKey,omitempty"`
// DiskSizeGb: Size of the disk attached to each node, specified in GB.
// The smallest allowed disk size is 10GB. If unspecified, the default
// disk size is 100GB.
DiskSizeGb int64 `json:"diskSizeGb,omitempty"`
// DiskType: Type of the disk attached to each node (e.g. 'pd-standard'
// or 'pd-ssd') If unspecified, the default disk type is 'pd-standard'
DiskType string `json:"diskType,omitempty"`
// ImageType: The image type to use for this node. Note that for a given
// image type, the latest version of it will be used.
ImageType string `json:"imageType,omitempty"`
// Labels: The map of Kubernetes labels (key/value pairs) to be applied
// to each node. These will added in addition to any default label(s)
// that Kubernetes may apply to the node. In case of conflict in label
// keys, the applied set may differ depending on the Kubernetes version
// -- it's best to assume the behavior is undefined and conflicts should
// be avoided. For more information, including usage and the valid
// values, see:
// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
Labels map[string]string `json:"labels,omitempty"`
// LocalSsdCount: The number of local SSD disks to be attached to the
// node. The limit for this value is dependent upon the maximum number
// of disks available on a machine per zone. See:
// https://cloud.google.com/compute/docs/disks/local-ssd for more
// information.
LocalSsdCount int64 `json:"localSsdCount,omitempty"`
// MachineType: The name of a Google Compute Engine [machine
// type](https://cloud.google.com/compute/docs/machine-types) If
// unspecified, the default machine type is `e2-medium`.
MachineType string `json:"machineType,omitempty"`
// Metadata: The metadata key/value pairs assigned to instances in the
// cluster. Keys must conform to the regexp `[a-zA-Z0-9-_]+` and be less
// than 128 bytes in length. These are reflected as part of a URL in the
// metadata server. Additionally, to avoid ambiguity, keys must not
// conflict with any other metadata keys for the project or be one of
// the reserved keys: - "cluster-location" - "cluster-name" -
// "cluster-uid" - "configure-sh" - "containerd-configure-sh" -
// "enable-os-login" - "gci-ensure-gke-docker" - "gci-metrics-enabled" -
// "gci-update-strategy" - "instance-template" - "kube-env" -
// "startup-script" - "user-data" - "disable-address-manager" -
// "windows-startup-script-ps1" - "common-psm1" - "k8s-node-setup-psm1"
// - "install-ssh-psm1" - "user-profile-psm1" -
// "serial-port-logging-enable" Values are free-form strings, and only
// have meaning as interpreted by the image running in the instance. The
// only restriction placed on them is that each value's size must be
// less than or equal to 32 KB. The total size of all keys and values
// must be less than 512 KB.
Metadata map[string]string `json:"metadata,omitempty"`
// MinCpuPlatform: Minimum CPU platform to be used by this instance. The
// instance may be scheduled on the specified or newer CPU platform.
// Applicable values are the friendly names of CPU platforms, such as
// `minCpuPlatform: "Intel Haswell" or `minCpuPlatform: "Intel Sandy
// Bridge". For more information, read [how to specify min CPU
// platform](https://cloud.google.com/compute/docs/instances/specify-min-
// cpu-platform)
MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
// NodeGroup: Setting this field will assign instances of this pool to
// run on the specified node group. This is useful for running workloads
// on [sole tenant
// nodes](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes).
NodeGroup string `json:"nodeGroup,omitempty"`
// OauthScopes: The set of Google API scopes to be made available on all
// of the node VMs under the "default" service account. The following
// scopes are recommended, but not required, and by default are not
// included: * `https://www.googleapis.com/auth/compute` is required for
// mounting persistent storage on your nodes. *
// `https://www.googleapis.com/auth/devstorage.read_only` is required
// for communicating with **gcr.io** (the [Google Container
// Registry](https://cloud.google.com/container-registry/)). If
// unspecified, no scopes are added, unless Cloud Logging or Cloud
// Monitoring are enabled, in which case their required scopes will be
// added.
OauthScopes []string `json:"oauthScopes,omitempty"`
// Preemptible: Whether the nodes are created as preemptible VM
// instances. See:
// https://cloud.google.com/compute/docs/instances/preemptible for more
// information about preemptible VM instances.
Preemptible bool `json:"preemptible,omitempty"`
// ReservationAffinity: The optional reservation affinity. Setting this
// field will apply the specified [Zonal Compute
// Reservation](https://cloud.google.com/compute/docs/instances/reserving
// -zonal-resources) to this node pool.
ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
// SandboxConfig: Sandbox configuration for this node.
SandboxConfig *SandboxConfig `json:"sandboxConfig,omitempty"`
// ServiceAccount: The Google Cloud Platform Service Account to be used
// by the node VMs. Specify the email address of the Service Account;
// otherwise, if no Service Account is specified, the "default" service
// account is used.
ServiceAccount string `json:"serviceAccount,omitempty"`
// ShieldedInstanceConfig: Shielded Instance options.
ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
// Tags: The list of instance tags applied to all nodes. Tags are used
// to identify valid sources or targets for network firewalls and are
// specified by the client during cluster or node pool creation. Each
// tag within the list must comply with RFC1035.
Tags []string `json:"tags,omitempty"`
// Taints: List of kubernetes taints to be applied to each node. For
// more information, including usage and the valid values, see:
// https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
Taints []*NodeTaint `json:"taints,omitempty"`
// WorkloadMetadataConfig: The workload metadata configuration for this
// node.
WorkloadMetadataConfig *WorkloadMetadataConfig `json:"workloadMetadataConfig,omitempty"`
// ForceSendFields is a list of field names (e.g. "Accelerators") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Accelerators") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *NodeConfig) MarshalJSON() ([]byte, error) {
type NoMethod NodeConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// NodeManagement: NodeManagement defines the set of node management
// services turned on for the node pool.
type NodeManagement struct {
// AutoRepair: A flag that specifies whether the node auto-repair is
// enabled for the node pool. If enabled, the nodes in this node pool
// will be monitored and, if they fail health checks too many times, an
// automatic repair action will be triggered.
AutoRepair bool `json:"autoRepair,omitempty"`
// AutoUpgrade: A flag that specifies whether node auto-upgrade is
// enabled for the node pool. If enabled, node auto-upgrade helps keep
// the nodes in your node pool up to date with the latest release
// version of Kubernetes.
AutoUpgrade bool `json:"autoUpgrade,omitempty"`
// UpgradeOptions: Specifies the Auto Upgrade knobs for the node pool.
UpgradeOptions *AutoUpgradeOptions `json:"upgradeOptions,omitempty"`
// ForceSendFields is a list of field names (e.g. "AutoRepair") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AutoRepair") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *NodeManagement) MarshalJSON() ([]byte, error) {
type NoMethod NodeManagement
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// NodePool: NodePool contains the name and configuration for a
// cluster's node pool. Node pools are a set of nodes (i.e. VM's), with
// a common configuration and specification, under the control of the
// cluster master. They may have a set of Kubernetes labels applied to
// them, which may be used to reference them during pod scheduling. They
// may also be resized up or down, to accommodate the workload.
type NodePool struct {
// Autoscaling: Autoscaler configuration for this NodePool. Autoscaler
// is enabled only if a valid configuration is present.
Autoscaling *NodePoolAutoscaling `json:"autoscaling,omitempty"`
// Conditions: Which conditions caused the current node pool state.
Conditions []*StatusCondition `json:"conditions,omitempty"`
// Config: The node configuration of the pool.
Config *NodeConfig `json:"config,omitempty"`
// InitialNodeCount: The initial node count for the pool. You must
// ensure that your Compute Engine [resource
// quota](https://cloud.google.com/compute/quotas) is sufficient for
// this number of instances. You must also have available firewall and
// routes quota.
InitialNodeCount int64 `json:"initialNodeCount,omitempty"`
// InstanceGroupUrls: [Output only] The resource URLs of the [managed
// instance
// groups](https://cloud.google.com/compute/docs/instance-groups/creating
// -groups-of-managed-instances) associated with this node pool.
InstanceGroupUrls []string `json:"instanceGroupUrls,omitempty"`
// Locations: The list of Google Compute Engine
// [zones](https://cloud.google.com/compute/docs/zones#available) in
// which the NodePool's nodes should be located.
Locations []string `json:"locations,omitempty"`
// Management: NodeManagement configuration for this NodePool.
Management *NodeManagement `json:"management,omitempty"`
// MaxPodsConstraint: The constraint on the maximum number of pods that
// can be run simultaneously on a node in the node pool.
MaxPodsConstraint *MaxPodsConstraint `json:"maxPodsConstraint,omitempty"`
// Name: The name of the node pool.
Name string `json:"name,omitempty"`
// PodIpv4CidrSize: [Output only] The pod CIDR block size per node in
// this node pool.
PodIpv4CidrSize int64 `json:"podIpv4CidrSize,omitempty"`
// SelfLink: [Output only] Server-defined URL for the resource.
SelfLink string `json:"selfLink,omitempty"`
// Status: [Output only] The status of the nodes in this pool instance.
//
// Possible values:
// "STATUS_UNSPECIFIED" - Not set.
// "PROVISIONING" - The PROVISIONING state indicates the node pool is
// being created.
// "RUNNING" - The RUNNING state indicates the node pool has been
// created and is fully usable.
// "RUNNING_WITH_ERROR" - The RUNNING_WITH_ERROR state indicates the
// node pool has been created and is partially usable. Some error state
// has occurred and some functionality may be impaired. Customer may
// need to reissue a request or trigger a new update.
// "RECONCILING" - The RECONCILING state indicates that some work is
// actively being done on the node pool, such as upgrading node
// software. Details can be found in the `statusMessage` field.
// "STOPPING" - The STOPPING state indicates the node pool is being
// deleted.
// "ERROR" - The ERROR state indicates the node pool may be unusable.
// Details can be found in the `statusMessage` field.
Status string `json:"status,omitempty"`
// StatusMessage: [Output only] Additional information about the current
// status of this node pool instance, if available.
StatusMessage string `json:"statusMessage,omitempty"`
// UpgradeSettings: Upgrade settings control disruption and speed of the
// upgrade.
UpgradeSettings *UpgradeSettings `json:"upgradeSettings,omitempty"`
// Version: The version of the Kubernetes of this node.
Version string `json:"version,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "Autoscaling") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Autoscaling") to include
// in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. However, any field with
// an empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *NodePool) MarshalJSON() ([]byte, error) {
type NoMethod NodePool
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// NodePoolAutoscaling: NodePoolAutoscaling contains information
// required by cluster autoscaler to adjust the size of the node pool to
// the current cluster usage.
type NodePoolAutoscaling struct {
// Autoprovisioned: Can this node pool be deleted automatically.
Autoprovisioned bool `json:"autoprovisioned,omitempty"`
// Enabled: Is autoscaling enabled for this node pool.
Enabled bool `json:"enabled,omitempty"`
// MaxNodeCount: Maximum number of nodes in the NodePool. Must be >=
// min_node_count. There has to enough quota to scale up the cluster.
MaxNodeCount int64 `json:"maxNodeCount,omitempty"`
// MinNodeCount: Minimum number of nodes in the NodePool. Must be >= 1
// and <= max_node_count.
MinNodeCount int64 `json:"minNodeCount,omitempty"`
// ForceSendFields is a list of field names (e.g. "Autoprovisioned") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Autoprovisioned") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *NodePoolAutoscaling) MarshalJSON() ([]byte, error) {
type NoMethod NodePoolAutoscaling
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// NodeTaint: Kubernetes taint is comprised of three fields: key, value,
// and effect. Effect can only be one of three types: NoSchedule,
// PreferNoSchedule or NoExecute. See
// [here](https://kubernetes.io/docs/concepts/configuration/taint-and-tol
// eration) for more information, including usage and the valid values.
type NodeTaint struct {
// Effect: Effect for taint.
//
// Possible values:
// "EFFECT_UNSPECIFIED" - Not set
// "NO_SCHEDULE" - NoSchedule
// "PREFER_NO_SCHEDULE" - PreferNoSchedule
// "NO_EXECUTE" - NoExecute
Effect string `json:"effect,omitempty"`
// Key: Key for taint.
Key string `json:"key,omitempty"`
// Value: Value for taint.
Value string `json:"value,omitempty"`
// ForceSendFields is a list of field names (e.g. "Effect") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Effect") to include in API
// requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *NodeTaint) MarshalJSON() ([]byte, error) {
type NoMethod NodeTaint
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// Operation: This operation resource represents operations that may
// have happened or are happening on the cluster. All fields are output
// only.
type Operation struct {
// ClusterConditions: Which conditions caused the current cluster state.
ClusterConditions []*StatusCondition `json:"clusterConditions,omitempty"`
// Detail: Detailed operation progress, if available.
Detail string `json:"detail,omitempty"`
// EndTime: [Output only] The time the operation completed, in
// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
EndTime string `json:"endTime,omitempty"`
// Location: [Output only] The name of the Google Compute Engine
// [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zon
// es#available) or
// [region](https://cloud.google.com/compute/docs/regions-zones/regions-z
// ones#available) in which the cluster resides.
Location string `json:"location,omitempty"`
// Name: The server-assigned ID for the operation.
Name string `json:"name,omitempty"`
// NodepoolConditions: Which conditions caused the current node pool
// state.
NodepoolConditions []*StatusCondition `json:"nodepoolConditions,omitempty"`
// OperationType: The operation type.
//
// Possible values:
// "TYPE_UNSPECIFIED" - Not set.
// "CREATE_CLUSTER" - Cluster create.
// "DELETE_CLUSTER" - Cluster delete.
// "UPGRADE_MASTER" - A master upgrade.
// "UPGRADE_NODES" - A node upgrade.
// "REPAIR_CLUSTER" - Cluster repair.
// "UPDATE_CLUSTER" - Cluster update.
// "CREATE_NODE_POOL" - Node pool create.
// "DELETE_NODE_POOL" - Node pool delete.
// "SET_NODE_POOL_MANAGEMENT" - Set node pool management.
// "AUTO_REPAIR_NODES" - Automatic node pool repair.
// "AUTO_UPGRADE_NODES" - Automatic node upgrade.
// "SET_LABELS" - Set labels.
// "SET_MASTER_AUTH" - Set/generate master auth materials
// "SET_NODE_POOL_SIZE" - Set node pool size.
// "SET_NETWORK_POLICY" - Updates network policy for a cluster.
// "SET_MAINTENANCE_POLICY" - Set the maintenance policy.
OperationType string `json:"operationType,omitempty"`
// Progress: Output only. [Output only] Progress information for an
// operation.
Progress *OperationProgress `json:"progress,omitempty"`
// SelfLink: Server-defined URL for the resource.
SelfLink string `json:"selfLink,omitempty"`
// StartTime: [Output only] The time the operation started, in
// [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
StartTime string `json:"startTime,omitempty"`
// Status: The current status of the operation.
//
// Possible values:
// "STATUS_UNSPECIFIED" - Not set.
// "PENDING" - The operation has been created.
// "RUNNING" - The operation is currently running.
// "DONE" - The operation is done, either cancelled or completed.
// "ABORTING" - The operation is aborting.
Status string `json:"status,omitempty"`
// StatusMessage: Output only. If an error has occurred, a textual
// description of the error.
StatusMessage string `json:"statusMessage,omitempty"`
// TargetLink: Server-defined URL for the target of the operation.
TargetLink string `json:"targetLink,omitempty"`
// Zone: The name of the Google Compute Engine
// [zone](https://cloud.google.com/compute/docs/zones#available) in
// which the operation is taking place. This field is deprecated, use
// location instead.
Zone string `json:"zone,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "ClusterConditions")
// to unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "ClusterConditions") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *Operation) MarshalJSON() ([]byte, error) {
type NoMethod Operation
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// OperationProgress: Information about operation (or operation stage)
// progress.
type OperationProgress struct {
// Metrics: Progress metric bundle, for example: metrics: [{name: "nodes
// done", int_value: 15}, {name: "nodes total", int_value: 32}] or
// metrics: [{name: "progress", double_value: 0.56}, {name: "progress
// scale", double_value: 1.0}]
Metrics []*Metric `json:"metrics,omitempty"`
// Name: A non-parameterized string describing an operation stage. Unset
// for single-stage operations.
Name string `json:"name,omitempty"`
// Stages: Substages of an operation or a stage.
Stages []*OperationProgress `json:"stages,omitempty"`
// Status: Status of an operation stage. Unset for single-stage
// operations.
//
// Possible values:
// "STATUS_UNSPECIFIED" - Not set.
// "PENDING" - The operation has been created.
// "RUNNING" - The operation is currently running.
// "DONE" - The operation is done, either cancelled or completed.
// "ABORTING" - The operation is aborting.
Status string `json:"status,omitempty"`
// ForceSendFields is a list of field names (e.g. "Metrics") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Metrics") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *OperationProgress) MarshalJSON() ([]byte, error) {
type NoMethod OperationProgress
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// PrivateClusterConfig: Configuration options for private clusters.
type PrivateClusterConfig struct {
// EnablePrivateEndpoint: Whether the master's internal IP address is
// used as the cluster endpoint.
EnablePrivateEndpoint bool `json:"enablePrivateEndpoint,omitempty"`
// EnablePrivateNodes: Whether nodes have internal IP addresses only. If
// enabled, all nodes are given only RFC 1918 private addresses and
// communicate with the master via private networking.
EnablePrivateNodes bool `json:"enablePrivateNodes,omitempty"`
// MasterGlobalAccessConfig: Controls master global access settings.
MasterGlobalAccessConfig *PrivateClusterMasterGlobalAccessConfig `json:"masterGlobalAccessConfig,omitempty"`
// MasterIpv4CidrBlock: The IP range in CIDR notation to use for the
// hosted master network. This range will be used for assigning internal
// IP addresses to the master or set of masters, as well as the ILB VIP.
// This range must not overlap with any other ranges in use within the
// cluster's network.
MasterIpv4CidrBlock string `json:"masterIpv4CidrBlock,omitempty"`
// PeeringName: Output only. The peering name in the customer VPC used
// by this cluster.
PeeringName string `json:"peeringName,omitempty"`
// PrivateEndpoint: Output only. The internal IP address of this
// cluster's master endpoint.
PrivateEndpoint string `json:"privateEndpoint,omitempty"`
// PublicEndpoint: Output only. The external IP address of this
// cluster's master endpoint.
PublicEndpoint string `json:"publicEndpoint,omitempty"`
// ForceSendFields is a list of field names (e.g.
// "EnablePrivateEndpoint") to unconditionally include in API requests.
// By default, fields with empty values are omitted from API requests.
// However, any non-pointer, non-interface field appearing in
// ForceSendFields will be sent to the server regardless of whether the
// field is empty or not. This may be used to include empty fields in
// Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "EnablePrivateEndpoint") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *PrivateClusterConfig) MarshalJSON() ([]byte, error) {
type NoMethod PrivateClusterConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// PrivateClusterMasterGlobalAccessConfig: Configuration for controlling
// master global access settings.
type PrivateClusterMasterGlobalAccessConfig struct {
// Enabled: Whenever master is accessible globally or not.
Enabled bool `json:"enabled,omitempty"`
// ForceSendFields is a list of field names (e.g. "Enabled") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Enabled") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *PrivateClusterMasterGlobalAccessConfig) MarshalJSON() ([]byte, error) {
type NoMethod PrivateClusterMasterGlobalAccessConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// RecurringTimeWindow: Represents an arbitrary window of time that
// recurs.
type RecurringTimeWindow struct {
// Recurrence: An RRULE
// (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how this
// window reccurs. They go on for the span of time between the start and
// end time. For example, to have something repeat every weekday, you'd
// use: `FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR` To repeat some window daily
// (equivalent to the DailyMaintenanceWindow): `FREQ=DAILY` For the
// first weekend of every month: `FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU`
// This specifies how frequently the window starts. Eg, if you wanted to
// have a 9-5 UTC-4 window every weekday, you'd use something like: ```
// start time = 2019-01-01T09:00:00-0400 end time =
// 2019-01-01T17:00:00-0400 recurrence =
// FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR ``` Windows can span multiple days.
// Eg, to make the window encompass every weekend from midnight Saturday
// till the last minute of Sunday UTC: ``` start time =
// 2019-01-05T00:00:00Z end time = 2019-01-07T23:59:00Z recurrence =
// FREQ=WEEKLY;BYDAY=SA ``` Note the start and end time's specific dates
// are largely arbitrary except to specify duration of the window and
// when it first starts. The FREQ values of HOURLY, MINUTELY, and
// SECONDLY are not supported.
Recurrence string `json:"recurrence,omitempty"`
// Window: The window of the first recurrence.
Window *TimeWindow `json:"window,omitempty"`
// ForceSendFields is a list of field names (e.g. "Recurrence") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Recurrence") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *RecurringTimeWindow) MarshalJSON() ([]byte, error) {
type NoMethod RecurringTimeWindow
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ReleaseChannel: ReleaseChannel indicates which release channel a
// cluster is subscribed to. Release channels are arranged in order of
// risk. When a cluster is subscribed to a release channel, Google
// maintains both the master version and the node version. Node
// auto-upgrade defaults to true and cannot be disabled.
type ReleaseChannel struct {
// Channel: channel specifies which release channel the cluster is
// subscribed to.
//
// Possible values:
// "UNSPECIFIED" - No channel specified.
// "RAPID" - RAPID channel is offered on an early access basis for
// customers who want to test new releases. WARNING: Versions available
// in the RAPID Channel may be subject to unresolved issues with no
// known workaround and are not subject to any SLAs.
// "REGULAR" - Clusters subscribed to REGULAR receive versions that
// are considered GA quality. REGULAR is intended for production users
// who want to take advantage of new features.
// "STABLE" - Clusters subscribed to STABLE receive versions that are
// known to be stable and reliable in production.
Channel string `json:"channel,omitempty"`
// ForceSendFields is a list of field names (e.g. "Channel") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Channel") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *ReleaseChannel) MarshalJSON() ([]byte, error) {
type NoMethod ReleaseChannel
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ReleaseChannelConfig: ReleaseChannelConfig exposes configuration for
// a release channel.
type ReleaseChannelConfig struct {
// Channel: The release channel this configuration applies to.
//
// Possible values:
// "UNSPECIFIED" - No channel specified.
// "RAPID" - RAPID channel is offered on an early access basis for
// customers who want to test new releases. WARNING: Versions available
// in the RAPID Channel may be subject to unresolved issues with no
// known workaround and are not subject to any SLAs.
// "REGULAR" - Clusters subscribed to REGULAR receive versions that
// are considered GA quality. REGULAR is intended for production users
// who want to take advantage of new features.
// "STABLE" - Clusters subscribed to STABLE receive versions that are
// known to be stable and reliable in production.
Channel string `json:"channel,omitempty"`
// DefaultVersion: The default version for newly created clusters on the
// channel.
DefaultVersion string `json:"defaultVersion,omitempty"`
// ValidVersions: List of valid versions for the channel.
ValidVersions []string `json:"validVersions,omitempty"`
// ForceSendFields is a list of field names (e.g. "Channel") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Channel") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *ReleaseChannelConfig) MarshalJSON() ([]byte, error) {
type NoMethod ReleaseChannelConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ReservationAffinity:
// [ReservationAffinity](https://cloud.google.com/compute/docs/instances/
// reserving-zonal-resources) is the configuration of desired
// reservation which instances could take capacity from.
type ReservationAffinity struct {
// ConsumeReservationType: Corresponds to the type of reservation
// consumption.
//
// Possible values:
// "UNSPECIFIED" - Default value. This should not be used.
// "NO_RESERVATION" - Do not consume from any reserved capacity.
// "ANY_RESERVATION" - Consume any reservation available.
// "SPECIFIC_RESERVATION" - Must consume from a specific reservation.
// Must specify key value fields for specifying the reservations.
ConsumeReservationType string `json:"consumeReservationType,omitempty"`
// Key: Corresponds to the label key of a reservation resource. To
// target a SPECIFIC_RESERVATION by name, specify
// "googleapis.com/reservation-name" as the key and specify the name of
// your reservation as its value.
Key string `json:"key,omitempty"`
// Values: Corresponds to the label value(s) of reservation resource(s).
Values []string `json:"values,omitempty"`
// ForceSendFields is a list of field names (e.g.
// "ConsumeReservationType") to unconditionally include in API requests.
// By default, fields with empty values are omitted from API requests.
// However, any non-pointer, non-interface field appearing in
// ForceSendFields will be sent to the server regardless of whether the
// field is empty or not. This may be used to include empty fields in
// Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "ConsumeReservationType")
// to include in API requests with the JSON null value. By default,
// fields with empty values are omitted from API requests. However, any
// field with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *ReservationAffinity) MarshalJSON() ([]byte, error) {
type NoMethod ReservationAffinity
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ResourceLimit: Contains information about amount of some resource in
// the cluster. For memory, value should be in GB.
type ResourceLimit struct {
// Maximum: Maximum amount of the resource in the cluster.
Maximum int64 `json:"maximum,omitempty,string"`
// Minimum: Minimum amount of the resource in the cluster.
Minimum int64 `json:"minimum,omitempty,string"`
// ResourceType: Resource name "cpu", "memory" or gpu-specific string.
ResourceType string `json:"resourceType,omitempty"`
// ForceSendFields is a list of field names (e.g. "Maximum") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Maximum") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *ResourceLimit) MarshalJSON() ([]byte, error) {
type NoMethod ResourceLimit
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// ResourceUsageExportConfig: Configuration for exporting cluster
// resource usages.
type ResourceUsageExportConfig struct {
// BigqueryDestination: Configuration to use BigQuery as usage export
// destination.
BigqueryDestination *BigQueryDestination `json:"bigqueryDestination,omitempty"`
// ConsumptionMeteringConfig: Configuration to enable resource
// consumption metering.
ConsumptionMeteringConfig *ConsumptionMeteringConfig `json:"consumptionMeteringConfig,omitempty"`
// EnableNetworkEgressMetering: Whether to enable network egress
// metering for this cluster. If enabled, a daemonset will be created in
// the cluster to meter network egress traffic.
EnableNetworkEgressMetering bool `json:"enableNetworkEgressMetering,omitempty"`
// ForceSendFields is a list of field names (e.g. "BigqueryDestination")
// to unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "BigqueryDestination") to
// include in API requests with the JSON null value. By default, fields
// with empty values are omitted from API requests. However, any field
// with an empty value appearing in NullFields will be sent to the
// server as null. It is an error if a field in this list has a
// non-empty value. This may be used to include null fields in Patch
// requests.
NullFields []string `json:"-"`
}
func (s *ResourceUsageExportConfig) MarshalJSON() ([]byte, error) {
type NoMethod ResourceUsageExportConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// RollbackNodePoolUpgradeRequest: RollbackNodePoolUpgradeRequest
// rollbacks the previously Aborted or Failed NodePool upgrade. This
// will be an no-op if the last upgrade successfully completed.
type RollbackNodePoolUpgradeRequest struct {
// ClusterId: Deprecated. The name of the cluster to rollback. This
// field has been deprecated and replaced by the name field.
ClusterId string `json:"clusterId,omitempty"`
// Name: The name (project, location, cluster, node pool id) of the node
// poll to rollback upgrade. Specified in the format
// `projects/*/locations/*/clusters/*/nodePools/*`.
Name string `json:"name,omitempty"`
// NodePoolId: Deprecated. The name of the node pool to rollback. This
// field has been deprecated and replaced by the name field.
NodePoolId string `json:"nodePoolId,omitempty"`
// ProjectId: Deprecated. The Google Developers Console [project ID or
// project number](https://support.google.com/cloud/answer/6158840).
// This field has been deprecated and replaced by the name field.
ProjectId string `json:"projectId,omitempty"`
// Zone: Deprecated. The name of the Google Compute Engine
// [zone](https://cloud.google.com/compute/docs/zones#available) in
// which the cluster resides. This field has been deprecated and
// replaced by the name field.
Zone string `json:"zone,omitempty"`
// ForceSendFields is a list of field names (e.g. "ClusterId") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "ClusterId") to include in
// API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullFields will be sent to the server as
// null. It is an error if a field in this list has a non-empty value.
// This may be used to include null fields in Patch requests.
NullFields []string `json:"-"`
}
func (s *RollbackNodePoolUpgradeRequest) MarshalJSON() ([]byte, error) {
type NoMethod RollbackNodePoolUpgradeRequest
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// SandboxConfig: SandboxConfig contains configurations of the sandbox
// to use for the node.
type SandboxConfig struct {
// Type: Type of the sandbox to use for the node.
//
// Possible values:
// "UNSPECIFIED" - Default value. This should not be used.
// "GVISOR" - Run sandbox using gvisor.
Type string `json:"type,omitempty"`
// ForceSendFields is a list of field names (e.g. "Type") to
// unconditionally include in API requests. By default, fields with
// empty values are omitted from API requests. However, any non-pointer,
// non-interface field appearing in ForceSendFields will be sent to the
// server regardless of whether the field is empty or not. This may be
// used to include empty fields in Patch requests.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Type") to include in API
// requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. However, any field with an
// empty value appearing in NullF