blob: 78b3aa803f295d40b1e9040a0d38f820bc490ec8 [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/v1beta1"
// ...
// 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/v1beta1"
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:v1beta1"
const apiName = "container"
const apiVersion = "v1beta1"
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. The
// `IstioConfig` addon must be enabled in order to enable Cloud Run
// addon. This option can only be enabled at cluster creation time.
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"`
// GcePersistentDiskCsiDriverConfig: Configuration for the Compute
// Engine Persistent Disk CSI driver.
GcePersistentDiskCsiDriverConfig *GcePersistentDiskCsiDriverConfig `json:"gcePersistentDiskCsiDriverConfig,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"`
// IstioConfig: Configuration for Istio, an open platform to connect,
// manage, and secure microservices.
IstioConfig *IstioConfig `json:"istioConfig,omitempty"`
// KalmConfig: Configuration for the KALM addon, which manages the
// lifecycle of k8s applications.
KalmConfig *KalmConfig `json:"kalmConfig,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: NodeManagement configuration for this NodePool.
Management *NodeManagement `json:"management,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) To unset the min cpu platform field pass "automatic" as
// field value.
MinCpuPlatform string `json:"minCpuPlatform,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"`
// 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"`
// UpgradeSettings: Upgrade settings control disruption and speed of the
// upgrade.
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)
}
// AvailableVersion: Deprecated.
type AvailableVersion struct {
// Reason: Reason for availability.
Reason string `json:"reason,omitempty"`
// Version: Kubernetes version.
Version string `json:"version,omitempty"`
// ForceSendFields is a list of field names (e.g. "Reason") 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. "Reason") 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 *AvailableVersion) MarshalJSON() ([]byte, error) {
type NoMethod AvailableVersion
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 Google Binauthz.
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: Required. 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: Required. 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: Required. 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"`
// ClusterTelemetry: Telemetry integration for the cluster.
ClusterTelemetry *ClusterTelemetry `json:"clusterTelemetry,omitempty"`
// Conditions: Which conditions caused the current cluster state.
Conditions []*StatusCondition `json:"conditions,omitempty"`
// ConfidentialNodes: Configuration of Confidential Nodes
ConfidentialNodes *ConfidentialNodes `json:"confidentialNodes,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
// [NodePool.version](https://cloud.google.com/kubernetes-engine/docs/ref
// erence/rest/v1beta1/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. v1beta1) 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. This
// field is deprecated, use tpu_config.enabled instead.
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"`
// Master: Configuration for master components.
Master *Master `json:"master,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"`
// MasterIpv4CidrBlock: The IP prefix in CIDR notation to use for the
// hosted master network. This prefix will be used for assigning private
// IP addresses to the master or set of masters, as well as the ILB VIP.
// This field is deprecated, use
// private_cluster_config.master_ipv4_cidr_block instead.
MasterIpv4CidrBlock string `json:"masterIpv4CidrBlock,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. On output this shows the network
// ID instead of the name.
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"`
// NotificationConfig: Notification configuration of the cluster.
NotificationConfig *NotificationConfig `json:"notificationConfig,omitempty"`
// PodSecurityPolicyConfig: Configuration for the PodSecurityPolicy
// feature.
PodSecurityPolicyConfig *PodSecurityPolicyConfig `json:"podSecurityPolicyConfig,omitempty"`
// PrivateCluster: If this is a private cluster setup. Private clusters
// are clusters that, by default have no external IP addresses on the
// nodes and where nodes and the master communicate over private IP
// addresses. This field is deprecated, use
// private_cluster_config.enable_private_nodes instead.
PrivateCluster bool `json:"privateCluster,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
// 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 may be unusable.
// 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. On output this shows the subnetwork
// ID instead of the name.
Subnetwork string `json:"subnetwork,omitempty"`
// TpuConfig: Configuration for Cloud TPU support;
TpuConfig *TpuConfig `json:"tpuConfig,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"`
// AutoscalingProfile: Defines autoscaling behaviour.
//
// Possible values:
// "PROFILE_UNSPECIFIED" - No change to autoscaling configuration.
// "OPTIMIZE_UTILIZATION" - Prioritize optimizing utilization of
// resources.
// "BALANCED" - Use default (balanced) autoscaling configuration.
AutoscalingProfile string `json:"autoscalingProfile,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)
}
// ClusterTelemetry: Telemetry integration for the cluster.
type ClusterTelemetry struct {
// Type: Type of the integration.
//
// Possible values:
// "UNSPECIFIED" - Not set.
// "DISABLED" - Monitoring integration is disabled.
// "ENABLED" - Monitoring integration is enabled.
// "SYSTEM_ONLY" - Only system components are monitored and logged.
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 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 *ClusterTelemetry) MarshalJSON() ([]byte, error) {
type NoMethod ClusterTelemetry
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"`
// DesiredClusterTelemetry: The desired telemetry integration for the
// cluster.
DesiredClusterTelemetry *ClusterTelemetry `json:"desiredClusterTelemetry,omitempty"`
// DesiredDatabaseEncryption: Configuration of etcd encryption.
DesiredDatabaseEncryption *DatabaseEncryption `json:"desiredDatabaseEncryption,omitempty"`
// DesiredDatapathProvider: The desired datapath provider for the
// cluster.
//
// Possible values:
// "DATAPATH_PROVIDER_UNSPECIFIED" - Default value.
// "LEGACY_DATAPATH" - Use the IPTables implementation based on
// kube-proxy.
// "ADVANCED_DATAPATH" - Use the eBPF based data plane with additional
// visibility features.
DesiredDatapathProvider string `json:"desiredDatapathProvider,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"`
// DesiredMaster: Configuration for master components.
DesiredMaster *Master `json:"desiredMaster,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.
// The only valid value is the latest supported version. 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",
// "desired_node_pool_autoscaling", or
// "desired_workload_metadata_config" 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"`
// DesiredNotificationConfig: The desired notification configuration.
DesiredNotificationConfig *NotificationConfig `json:"desiredNotificationConfig,omitempty"`
// DesiredPodSecurityPolicyConfig: The desired configuration options for
// the PodSecurityPolicy feature.
DesiredPodSecurityPolicyConfig *PodSecurityPolicyConfig `json:"desiredPodSecurityPolicyConfig,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"`
// DesiredTpuConfig: The desired Cloud TPU configuration.
DesiredTpuConfig *TpuConfig `json:"desiredTpuConfig,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: Required. 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: Required. 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: Required. 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)
}
// ConfidentialNodes: ConfidentialNodes is configuration for the
// confidential nodes feature, which makes nodes run on confidential
// VMs.
type ConfidentialNodes struct {
// Enabled: Whether Confidential Nodes feature is enabled for all nodes
// in 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 *ConfidentialNodes) MarshalJSON() ([]byte, error) {
type NoMethod ConfidentialNodes
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/v1b
// eta1/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: Required. 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: Required. 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: Required. 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: Required. 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: Required. 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 string `json:"duration,omitempty"`
// StartTime: Time within the maintenance window to start the
// maintenance operations. It must be in 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:"-"`
}
// GcePersistentDiskCsiDriverConfig: Configuration for the Compute
// Engine PD CSI driver. This option can only be enabled at cluster
// creation time.
type GcePersistentDiskCsiDriverConfig struct {
// Enabled: Whether the Compute Engine PD CSI driver 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 *GcePersistentDiskCsiDriverConfig) MarshalJSON() ([]byte, error) {
type NoMethod GcePersistentDiskCsiDriverConfig
raw := NoMethod(*s)
return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
}
// 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 {
// AllowRouteOverlap: If true, allow allocation of cluster CIDR ranges
// that overlap with certain kinds of network routes. By default we do
// not allow cluster CIDR ranges to intersect with any user declared
// routes. With allow_route_overlap == true, we allow overlapping with
// CIDR ranges that are larger than the cluster CIDR range. If this
// field is set to true, then cluster and services CIDRs must be
// fully-specified (e.g. `10.96.0.0/14`, but not `/14`), which means: 1)
// When `use_ip_aliases` is true, `cluster_ipv4_cidr_block` and
// `services_ipv4_cidr_block` must be fully-specified. 2) When
// `use_ip_aliases` is false, `cluster.cluster_ipv4_cidr` muse be
// fully-specified.
AllowRouteOverlap bool `json:"allowRouteOverlap,omitempty"`
// 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 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 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. This field is deprecated, use
// cluster.tpu_config.ipv4_cidr_block instead.
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. "AllowRouteOverlap")
// 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. "AllowRouteOverlap") 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)
}
// IstioConfig: Configuration options for Istio addon.
type IstioConfig struct {
// Auth: The specified Istio auth mode, either none, or mutual TLS.
//
// Possible values:
// "AUTH_NONE" - auth not enabled
// "AUTH_MUTUAL_TLS" - auth mutual TLS enabled
Auth string `json:"auth,omitempty"`
// Disabled: Whether Istio is enabled for this cluster.
Disabled bool `json:"disabled,omitempty"`
// ForceSendFields is a list of field names (e.g. "Auth") 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. "Auth") 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 *IstioConfig) MarshalJSON() ([]byte, error) {
type NoMethod IstioConfig
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)
}
// KalmConfig: Configuration options for the KALM addon.
type KalmConfig struct {
// Enabled: Whether KALM 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 *KalmConfig) MarshalJSON() ([]byte, error) {
type NoMethod KalmConfig
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)
}
// LinuxNodeConfig: Parameters that can be configured on Linux nodes.
type LinuxNodeConfig struct {
// Sysctls: The Linux kernel parameters to be applied to the nodes and
// all pods running on the nodes. The following parameters are
// supported. net.core.netdev_max_backlog net.core.rmem_max
// net.core.wmem_default net.core.wmem_max net.core.optmem_max
// net.core.somaxconn net.ipv4.tcp_rmem net.ipv4.tcp_wmem
// net.ipv4.tcp_tw_reuse
Sysctls map[string]string `json:"sysctls,omitempty"`
// ForceSendFields is a list of field names (e.g. "Sysctls") 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. "Sysctls") 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 *LinuxNodeConfig) MarshalJSON() ([]byte, error) {
type NoMethod LinuxNodeConfig
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)
}
// ListLocationsResponse: ListLocationsResponse returns the list of all
// GKE locations and their recommendation state.
type ListLocationsResponse struct {
// Locations: A full list of GKE locations.
Locations []*Location `json:"locations,omitempty"`
// NextPageToken: Only return ListLocationsResponse that occur after the
// page_token. This value should be populated from the
// ListLocationsResponse.next_page_token if that response token was set
// (which happens when listing more Locations than fit in a single
// ListLocationsResponse).
NextPageToken string `json:"nextPageToken,omitempty"`
// ServerResponse contains the HTTP response code and headers from the
// server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "Locations") 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. "Locations") 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 *ListLocationsResponse) MarshalJSON() ([]byte, error) {
type NoMethod ListLocationsResponse
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)
}
// Location: Location returns the location name, and if the location is
// recommended for GKE cluster scheduling.
type Location struct {
// Name: Contains the name of the resource requested. Specified in the
// format `projects/*/locations/*`.
Name string `json:"name,omitempty"`
// Recommended: Whether the location is recomended for GKE cluster
// scheduling.
Recommended bool `json:"recommended,omitempty"`
// Type: Contains the type of location this Location is for. Regional or
// Zonal.
//
// Possible values:
// "LOCATION_TYPE_UNSPECIFIED" - LOCATION_TYPE_UNSPECIFIED means the
// location type was not determined.
// "ZONE" - A GKE Location where Zonal clusters can be created.
// "REGION" - A GKE Location where Regional clusters can be created.
Type string `json:"type,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 *Location) MarshalJSON() ([]byte, error) {
type NoMethod Location
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)
}
// Master: Master is the configuration for components on master.
type Master struct {
}
// 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 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 10 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 {
// DatapathProvider: The desired datapath provider for this cluster. By
// default, uses the IPTables-based kube-proxy implementation.
//
// Possible values:
// "DATAPATH_PROVIDER_UNSPECIFIED" - Default value.
// "LEGACY_DATAPATH" - Use the IPTables implementation based on
// kube-proxy.
// "ADVANCED_DATAPATH" - Use the eBPF based data plane with additional
// visibility features.
DatapathProvider string `json:"datapathProvider,omitempty"`
// 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. "DatapathProvider") 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. "DatapathProvider") 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"`
// KubeletConfig: Node kubelet configs.
KubeletConfig *NodeKubeletConfig `json:"kubeletConfig,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"`
// LinuxNodeConfig: Parameters that can be configured on Linux nodes.
LinuxNodeConfig *LinuxNodeConfig `json:"linuxNodeConfig,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-oslogin" - "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
// inforamtion 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)
}
// NodeKubeletConfig: Node kubelet configs.
type NodeKubeletConfig struct {
// CpuCfsQuota: Enable CPU CFS quota enforcement for containers that
// specify CPU limits. This option is enabled by default which makes
// kubelet use CFS quota
// (https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt) to
// enforce container CPU limits. Otherwise, CPU limits will not be
// enforced at all. Disable this option to mitigate CPU throttling
// problems while still having your pods to be in Guaranteed QoS class
// by specifying the CPU limits. The default value is 'true' if
// unspecified.
CpuCfsQuota bool `json:"cpuCfsQuota,omitempty"`
// CpuCfsQuotaPeriod: Set the CPU CFS quota period value
// 'cpu.cfs_period_us'. The string must be a sequence of decimal
// numbers, each with optional fraction and a unit suffix, such as
// "300ms". Valid time units are "ns", "us" (or "┬Ás"), "ms", "s", "m",
// "h". The value must be a positive duration.
CpuCfsQuotaPeriod string `json:"cpuCfsQuotaPeriod,omitempty"`
// CpuManagerPolicy: Control the CPU management policy on the node. See
// https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ The following values are allowed. - "none": the default, which represents the existing scheduling behavior. - "static": allows pods with certain resource characteristics to be granted increased CPU affinity and exclusivity on the node. The default value is 'none' if
// unspecified.
CpuManagerPolicy string `json:"cpuManagerPolicy,omitempty"`
// ForceSendFields is a list of field names (e.g. "CpuCfsQuota") 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. "CpuCfsQuota") 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 *NodeKubeletConfig) MarshalJSON() ([]byte, error) {
type NoMethod NodeKubeletConfig
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: Whether the nodes will be automatically repaired.
AutoRepair bool `json:"autoRepair,omitempty"`
// AutoUpgrade: Whether the nodes will be automatically upgraded.
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)
}
// NotificationConfig: NotificationConfig is the configuration of
// notifications.
type NotificationConfig struct {
// Pubsub: Notification config for Pub/Sub.
Pubsub *PubSub `json:"pubsub,omitempty"`
// ForceSendFields is a list of field names (e.g. "Pubsub") 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. "Pubsub") 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 *NotificationConfig) MarshalJSON() ([]byte, error) {
type NoMethod NotificationConfig
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.
// Deprecated. Use field error instead.
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"`
// Error: The error result of the operation in case of failure.
Error *Status `json:"error,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. Deprecated. Use field error instead.
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. Deprecated. Use field error instead.
StatusMessage string `json:"statusMessage,omitempty"`
// TargetLink: Server-defined URL for the target of the operation.
TargetLink string `json:"targetLink,omitempty"`