googleapis
Version:
Google APIs Client Library for Node.js
1,344 lines • 147 kB
TypeScript
/**
* Copyright 2015 Google Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { AxiosPromise } from 'axios';
import { GoogleApis } from '../..';
import { BodyResponseCallback, GlobalOptions, MethodOptions } from '../../lib/api';
/**
* Google Kubernetes Engine API
*
* The Google Kubernetes Engine API is used for building and managing container
* based applications, powered by the open source Kubernetes technology.
*
* @example
* const google = require('googleapis');
* const container = google.container('v1beta1');
*
* @namespace container
* @type {Function}
* @version v1beta1
* @variation v1beta1
* @param {object=} options Options for Container
*/
export declare class Container {
_options: GlobalOptions;
google: GoogleApis;
root: this;
projects: Resource$Projects;
constructor(options: GlobalOptions, google: GoogleApis);
getRoot(): this;
}
/**
* AcceleratorConfig represents a Hardware Accelerator request.
*/
export interface Schema$AcceleratorConfig {
/**
* The number of the accelerator cards exposed to an instance.
*/
acceleratorCount: string;
/**
* The accelerator type resource name. List of supported accelerators
* [here](/compute/docs/gpus/#Introduction)
*/
acceleratorType: string;
}
/**
* Configuration for the addons that can be automatically spun up in the
* cluster, enabling additional functionality.
*/
export interface Schema$AddonsConfig {
/**
* 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: Schema$HorizontalPodAutoscaling;
/**
* 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: Schema$HttpLoadBalancing;
/**
* Configuration for the Kubernetes Dashboard.
*/
kubernetesDashboard: Schema$KubernetesDashboard;
/**
* 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: Schema$NetworkPolicyConfig;
}
/**
* AutoUpgradeOptions defines the set of options for the user to control how the
* Auto Upgrades will proceed.
*/
export interface Schema$AutoUpgradeOptions {
/**
* [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;
/**
* [Output only] This field is set when upgrades are about to commence with
* the description of the upgrade.
*/
description: string;
}
/**
* CancelOperationRequest cancels a single operation.
*/
export interface Schema$CancelOperationRequest {
/**
* The name (project, location, operation id) of the operation to cancel.
* Specified in the format 'projects/x/locations/x/operations/*'.
*/
name: string;
/**
* Deprecated. The server-assigned `name` of the operation. This field has
* been deprecated and replaced by the name field.
*/
operationId: string;
/**
* 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;
/**
* Deprecated. The name of the Google Compute Engine
* [zone](/compute/docs/zones#available) in which the operation resides. This
* field has been deprecated and replaced by the name field.
*/
zone: string;
}
/**
* CidrBlock contains an optional name and one CIDR block.
*/
export interface Schema$CidrBlock {
/**
* cidr_block must be specified in CIDR notation.
*/
cidrBlock: string;
/**
* display_name is an optional field for users to identify CIDR blocks.
*/
displayName: string;
}
/**
* Configuration for client certificates on the cluster.
*/
export interface Schema$ClientCertificateConfig {
/**
* Issue a client certificate.
*/
issueClientCertificate: boolean;
}
/**
* A Google Kubernetes Engine cluster.
*/
export interface Schema$Cluster {
/**
* Configurations for the various addons available to run in the cluster.
*/
addonsConfig: Schema$AddonsConfig;
/**
* 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;
/**
* [Output only] The time the cluster was created, in
* [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
*/
createTime: string;
/**
* [Output only] The current software version of the master endpoint.
*/
currentMasterVersion: string;
/**
* [Output only] The number of nodes currently in the cluster.
*/
currentNodeCount: number;
/**
* [Output only] 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;
/**
* An optional description of this cluster.
*/
description: string;
/**
* 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: boolean;
/**
* [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;
/**
* [Output only] The time the cluster will be automatically deleted in
* [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
*/
expireTime: string;
/**
* 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;
/**
* The number of nodes to create in this cluster. You must ensure that your
* Compute Engine <a
* href="/compute/docs/resource-quotas">resource quota</a>
* 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.
*/
initialNodeCount: number;
/**
* Deprecated. Use node_pools.instance_group_urls.
*/
instanceGroupUrls: string[];
/**
* Configuration for cluster IP allocation.
*/
ipAllocationPolicy: Schema$IPAllocationPolicy;
/**
* The fingerprint of the set of labels for this cluster.
*/
labelFingerprint: string;
/**
* Configuration for the legacy ABAC authorization mode.
*/
legacyAbac: Schema$LegacyAbac;
/**
* [Output only] The name of the Google Compute Engine
* [zone](/compute/docs/regions-zones/regions-zones#available) or
* [region](/compute/docs/regions-zones/regions-zones#available) in which the
* cluster resides.
*/
location: string;
/**
* The list of Google Compute Engine
* [locations](/compute/docs/zones#available) in which the cluster's nodes
* should be located.
*/
locations: string[];
/**
* The logging service the cluster should use to write logs. Currently
* available options: * `logging.googleapis.com` - the Google Cloud Logging
* service. * `none` - no logs will be exported from the cluster. * if left as
* an empty string,`logging.googleapis.com` will be used.
*/
loggingService: string;
/**
* Configure the maintenance policy for this cluster.
*/
maintenancePolicy: Schema$MaintenancePolicy;
/**
* The authentication information for accessing the master endpoint.
*/
masterAuth: Schema$MasterAuth;
/**
* The configuration options for master authorized networks feature.
*/
masterAuthorizedNetworksConfig: Schema$MasterAuthorizedNetworksConfig;
/**
* 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.
*/
masterIpv4CidrBlock: string;
/**
* The monitoring service the cluster should use to write metrics. Currently
* available options: * `monitoring.googleapis.com` - the Google Cloud
* Monitoring service. * `none` - no metrics will be exported from the
* cluster. * if left as an empty string, `monitoring.googleapis.com` will be
* used.
*/
monitoringService: string;
/**
* The name of this cluster. The name must be unique within this project and
* zone, 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;
/**
* The name of the Google Compute Engine
* [network](/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;
/**
* Configuration options for the NetworkPolicy feature.
*/
networkPolicy: Schema$NetworkPolicy;
/**
* Parameters used in creating the cluster's nodes. See `nodeConfig` for
* the description of its properties. 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. If
* unspecified, the defaults are used.
*/
nodeConfig: Schema$NodeConfig;
/**
* [Output only] The size of the address space on each node for hosting
* containers. This is provisioned from within the `container_ipv4_cidr`
* range.
*/
nodeIpv4CidrSize: number;
/**
* The node pools associated with this cluster. This field should not be set
* if "node_config" or "initial_node_count" are specified.
*/
nodePools: Schema$NodePool[];
/**
* Configuration for the PodSecurityPolicy feature.
*/
podSecurityPolicyConfig: Schema$PodSecurityPolicyConfig;
/**
* 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.
*/
privateCluster: boolean;
/**
* The resource labels for the cluster to use to annotate any related GCE
* resources.
*/
resourceLabels: any;
/**
* [Output only] Server-defined URL for the resource.
*/
selfLink: string;
/**
* [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;
/**
* [Output only] The current status of this cluster.
*/
status: string;
/**
* [Output only] Additional information about the current status of this
* cluster, if available.
*/
statusMessage: string;
/**
* The name of the Google Compute Engine
* [subnetwork](/compute/docs/subnetworks) to which the cluster is connected.
* On output this shows the subnetwork ID instead of the name.
*/
subnetwork: string;
/**
* [Output only] The name of the Google Compute Engine
* [zone](/compute/docs/zones#available) in which the cluster resides. This
* field is deprecated, use location instead.
*/
zone: string;
}
/**
* 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.
*/
export interface Schema$ClusterUpdate {
/**
* Configurations for the various addons available to run in the cluster.
*/
desiredAddonsConfig: Schema$AddonsConfig;
/**
* The desired image type for the node pool. NOTE: Set the
* "desired_node_pool" field as well.
*/
desiredImageType: string;
/**
* The desired list of Google Compute Engine
* [locations](/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[];
/**
* The desired configuration options for master authorized networks feature.
*/
desiredMasterAuthorizedNetworksConfig: Schema$MasterAuthorizedNetworksConfig;
/**
* 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;
/**
* The monitoring service the cluster should use to write metrics. Currently
* available options: * "monitoring.googleapis.com" - the Google
* Cloud Monitoring service * "none" - no metrics will be exported
* from the cluster
*/
desiredMonitoringService: string;
/**
* 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: Schema$NodePoolAutoscaling;
/**
* The node pool to be upgraded. This field is mandatory if
* "desired_node_version", "desired_image_family" or
* "desired_node_pool_autoscaling" is specified and there is more
* than one node pool on the cluster.
*/
desiredNodePoolId: string;
/**
* 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;
/**
* The desired configuration options for the PodSecurityPolicy feature.
*/
desiredPodSecurityPolicyConfig: Schema$PodSecurityPolicyConfig;
}
/**
* CompleteIPRotationRequest moves the cluster master back into single-IP mode.
*/
export interface Schema$CompleteIPRotationRequest {
/**
* Deprecated. The name of the cluster. This field has been deprecated and
* replaced by the name field.
*/
clusterId: string;
/**
* The name (project, location, cluster id) of the cluster to complete IP
* rotation. Specified in the format
* 'projects/x/locations/x/clusters/*'.
*/
name: string;
/**
* 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;
/**
* Deprecated. The name of the Google Compute Engine
* [zone](/compute/docs/zones#available) in which the cluster resides. This
* field has been deprecated and replaced by the name field.
*/
zone: string;
}
/**
* CreateClusterRequest creates a cluster.
*/
export interface Schema$CreateClusterRequest {
/**
* A [cluster
* resource](/container-engine/reference/rest/v1beta1/projects.zones.clusters)
*/
cluster: Schema$Cluster;
/**
* The parent (project and location) where the cluster will be created.
* Specified in the format 'projects/x/locations/*'.
*/
parent: string;
/**
* 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;
/**
* Deprecated. The name of the Google Compute Engine
* [zone](/compute/docs/zones#available) in which the cluster resides. This
* field has been deprecated and replaced by the parent field.
*/
zone: string;
}
/**
* CreateNodePoolRequest creates a node pool for a cluster.
*/
export interface Schema$CreateNodePoolRequest {
/**
* Deprecated. The name of the cluster. This field has been deprecated and
* replaced by the parent field.
*/
clusterId: string;
/**
* The node pool to create.
*/
nodePool: Schema$NodePool;
/**
* The parent (project, location, cluster id) where the node pool will be
* created. Specified in the format
* 'projects/x/locations/x/clusters/x/nodePools/*'.
*/
parent: string;
/**
* 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;
/**
* Deprecated. The name of the Google Compute Engine
* [zone](/compute/docs/zones#available) in which the cluster resides. This
* field has been deprecated and replaced by the parent field.
*/
zone: string;
}
/**
* Time window specified for daily maintenance operations.
*/
export interface Schema$DailyMaintenanceWindow {
/**
* [Output only] Duration of the time window, automatically chosen to be
* smallest possible in the given scenario.
*/
duration: string;
/**
* 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;
}
/**
* 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 `{}`.
*/
export interface Schema$Empty {
}
/**
* 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.
*/
export interface Schema$HorizontalPodAutoscaling {
/**
* Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
* When enabled, it ensures that a Heapster pod is running in the cluster,
* which is also used by the Cloud Monitoring service.
*/
disabled: boolean;
}
/**
* 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.
*/
export interface Schema$HttpLoadBalancing {
/**
* 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: boolean;
}
/**
* Configuration for controlling how IPs are allocated in the cluster.
*/
export interface Schema$IPAllocationPolicy {
/**
* 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: boolean;
/**
* This field is deprecated, use cluster_ipv4_cidr_block.
*/
clusterIpv4Cidr: string;
/**
* 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;
/**
* 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;
/**
* Whether a new subnetwork will be created automatically for the cluster.
* This field is only applicable when `use_ip_aliases` is true.
*/
createSubnetwork: boolean;
/**
* This field is deprecated, use node_ipv4_cidr_block.
*/
nodeIpv4Cidr: string;
/**
* 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;
/**
* This field is deprecated, use services_ipv4_cidr_block.
*/
servicesIpv4Cidr: string;
/**
* 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;
/**
* 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;
/**
* 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;
/**
* Whether alias IPs will be used for pod IPs in the cluster.
*/
useIpAliases: boolean;
}
/**
* Configuration for the Kubernetes Dashboard.
*/
export interface Schema$KubernetesDashboard {
/**
* Whether the Kubernetes Dashboard is enabled for this cluster.
*/
disabled: boolean;
}
/**
* Configuration for the legacy Attribute Based Access Control authorization
* mode.
*/
export interface Schema$LegacyAbac {
/**
* 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: boolean;
}
/**
* ListClustersResponse is the result of ListClustersRequest.
*/
export interface Schema$ListClustersResponse {
/**
* A list of clusters in the project in the specified zone, or across all
* ones.
*/
clusters: Schema$Cluster[];
/**
* If any zones are listed here, the list of clusters returned may be missing
* those zones.
*/
missingZones: string[];
}
/**
* ListNodePoolsResponse is the result of ListNodePoolsRequest.
*/
export interface Schema$ListNodePoolsResponse {
/**
* A list of node pools for a cluster.
*/
nodePools: Schema$NodePool[];
}
/**
* ListOperationsResponse is the result of ListOperationsRequest.
*/
export interface Schema$ListOperationsResponse {
/**
* If any zones are listed here, the list of operations returned may be
* missing the operations from those zones.
*/
missingZones: string[];
/**
* A list of operations in the project in the specified zone.
*/
operations: Schema$Operation[];
}
/**
* MaintenancePolicy defines the maintenance policy to be used for the cluster.
*/
export interface Schema$MaintenancePolicy {
/**
* Specifies the maintenance window in which maintenance may be performed.
*/
window: Schema$MaintenanceWindow;
}
/**
* MaintenanceWindow defines the maintenance window to be used for the cluster.
*/
export interface Schema$MaintenanceWindow {
/**
* DailyMaintenanceWindow specifies a daily maintenance operation window.
*/
dailyMaintenanceWindow: Schema$DailyMaintenanceWindow;
}
/**
* The authentication information for accessing the master endpoint.
* Authentication can be done using HTTP basic auth or using client
* certificates.
*/
export interface Schema$MasterAuth {
/**
* [Output only] Base64-encoded public certificate used by clients to
* authenticate to the cluster endpoint.
*/
clientCertificate: string;
/**
* Configuration for client certificate authentication on the cluster. If no
* configuration is specified, a client certificate is issued.
*/
clientCertificateConfig: Schema$ClientCertificateConfig;
/**
* [Output only] Base64-encoded private key used by clients to authenticate to
* the cluster endpoint.
*/
clientKey: string;
/**
* [Output only] Base64-encoded public certificate that is the root of trust
* for the cluster.
*/
clusterCaCertificate: string;
/**
* 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.
*/
password: string;
/**
* The username to use for HTTP basic authentication to the master endpoint.
* For clusters v1.6.0 and later, you can disable basic authentication by
* providing an empty username.
*/
username: string;
}
/**
* 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.
*/
export interface Schema$MasterAuthorizedNetworksConfig {
/**
* cidr_blocks define up to 10 external networks that could access Kubernetes
* master through HTTPS.
*/
cidrBlocks: Schema$CidrBlock[];
/**
* Whether or not master authorized networks is enabled.
*/
enabled: boolean;
}
/**
* Configuration options for the NetworkPolicy feature.
* https://kubernetes.io/docs/concepts/services-networking/networkpolicies/
*/
export interface Schema$NetworkPolicy {
/**
* Whether network policy is enabled on the cluster.
*/
enabled: boolean;
/**
* The selected network policy provider.
*/
provider: string;
}
/**
* 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.
*/
export interface Schema$NetworkPolicyConfig {
/**
* Whether NetworkPolicy is enabled for this cluster.
*/
disabled: boolean;
}
/**
* Parameters that describe the nodes in a cluster.
*/
export interface Schema$NodeConfig {
/**
* 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: Schema$AcceleratorConfig[];
/**
* 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: number;
/**
* 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;
/**
* 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: any;
/**
* The number of local SSD disks to be attached to the node. The limit for
* this value is dependant upon the maximum number of disks available on a
* machine per zone. See:
* https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits for
* more information.
*/
localSsdCount: number;
/**
* The name of a Google Compute Engine [machine
* type](/compute/docs/machine-types) (e.g. `n1-standard-1`). If unspecified,
* the default machine type is `n1-standard-1`.
*/
machineType: string;
/**
* 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"
* "gci-update-strategy" "gci-ensure-gke-docker"
* "instance-template" "kube-env"
* "startup-script" "user-data" 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: any;
/**
* 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 <code>minCpuPlatform:
* &quot;Intel Haswell&quot;</code> or
* <code>minCpuPlatform: &quot;Intel Sandy
* Bridge&quot;</code>. For more information, read [how to specify
* min CPU
* platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
*/
minCpuPlatform: string;
/**
* 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](/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[];
/**
* 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: boolean;
/**
* The Google Cloud Platform Service Account to be used by the node VMs. If no
* Service Account is specified, the "default" service account is
* used.
*/
serviceAccount: string;
/**
* 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[];
/**
* 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: Schema$NodeTaint[];
/**
* The workload metadata configuration for this node.
*/
workloadMetadataConfig: Schema$WorkloadMetadataConfig;
}
/**
* NodeManagement defines the set of node management services turned on for the
* node pool.
*/
export interface Schema$NodeManagement {
/**
* Whether the nodes will be automatically repaired.
*/
autoRepair: boolean;
/**
* Whether the nodes will be automatically upgraded.
*/
autoUpgrade: boolean;
/**
* Specifies the Auto Upgrade knobs for the node pool.
*/
upgradeOptions: Schema$AutoUpgradeOptions;
}
/**
* 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.
*/
export interface Schema$NodePool {
/**
* Autoscaler configuration for this NodePool. Autoscaler is enabled only if a
* valid configuration is present.
*/
autoscaling: Schema$NodePoolAutoscaling;
/**
* The node configuration of the pool.
*/
config: Schema$NodeConfig;
/**
* The initial node count for the pool. You must ensure that your Compute
* Engine <a href="/compute/docs/resource-quotas">resource
* quota</a> is sufficient for this number of instances. You must also
* have available firewall and routes quota.
*/
initialNodeCount: number;
/**
* [Output only] The resource URLs of the [managed instance
* groups](/compute/docs/instance-groups/creating-groups-of-managed-instances)
* associated with this node pool.
*/
instanceGroupUrls: string[];
/**
* NodeManagement configuration for this NodePool.
*/
management: Schema$NodeManagement;
/**
* The name of the node pool.
*/
name: string;
/**
* [Output only] Server-defined URL for the resource.
*/
selfLink: string;
/**
* [Output only] The status of the nodes in this pool instance.
*/
status: string;
/**
* [Output only] Additional information about the current status of this node
* pool instance, if available.
*/
statusMessage: string;
/**
* The version of the Kubernetes of this node.
*/
version: string;
}
/**
* NodePoolAutoscaling contains information required by cluster autoscaler to
* adjust the size of the node pool to the current cluster usage.
*/
export interface Schema$NodePoolAutoscaling {
/**
* Is autoscaling enabled for this node pool.
*/
enabled: boolean;
/**
* Maximum number of nodes in the NodePool. Must be >= min_node_count.
* There has to enough quota to scale up the cluster.
*/
maxNodeCount: number;
/**
* Minimum number of nodes in the NodePool. Must be >= 1 and <=
* max_node_count.
*/
minNodeCount: number;
}
/**
* Kubernetes taint is comprised of three fields: key, value, and effect. Effect
* can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute.
* For more information, including usage and the valid values, see:
* https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
*/
export interface Schema$NodeTaint {
/**
* Effect for taint.
*/
effect: string;
/**
* Key for taint.
*/
key: string;
/**
* Value for taint.
*/
value: string;
}
/**
* This operation resource represents operations that may have happened or are
* happening on the cluster. All fields are output only.
*/
export interface Schema$Operation {
/**
* Detailed operation progress, if available.
*/
detail: string;
/**
* [Output only] The time the operation completed, in
* [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
*/
endTime: string;
/**
* [Output only] The name of the Google Compute Engine
* [zone](/compute/docs/regions-zones/regions-zones#available) or
* [region](/compute/docs/regions-zones/regions-zones#available) in which the
* cluster resides.
*/
location: string;
/**
* The server-assigned ID for the operation.
*/
name: string;
/**
* The operation type.
*/
operationType: string;
/**
* Server-defined URL for the resource.
*/
selfLink: string;
/**
* [Output only] The time the operation started, in
* [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
*/
startTime: string;
/**
* The current status of the operation.
*/
status: string;
/**
* If an error has occurred, a textual description of the error.
*/
statusMessage: string;
/**
* Server-defined URL for the target of the operation.
*/
targetLink: string;
/**
* The name of the Google Compute Engine [zone](/compute/docs/zones#available)
* in which the operation is taking place. This field is deprecated, use
* location instead.
*/
zone: string;
}
/**
* Configuration for the PodSecurityPolicy feature.
*/
export interface Schema$PodSecurityPolicyConfig {
/**
* Enable the PodSecurityPolicy controller for this cluster. If enabled, pods
* must be valid under a PodSecurityPolicy to be created.
*/
enabled: boolean;
}
/**
* RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed
* NodePool upgrade. This will be an no-op if the last upgrade successfully
* completed.
*/
export interface Schema$RollbackNodePoolUpgradeRequest {
/**
* Deprecated. The name of the cluster to rollback. This field has been
* deprecated and replaced by the name field.
*/
clusterId: string;
/**
* The name (project, location, cluster, node pool id) of the node poll to
* rollback upgrade. Specified in the format
* 'projects/x/locations/x/clusters/x/nodePools/*'.
*/
name: string;
/**
* Deprecated. The name of the node pool to rollback. This field has been
* deprecated and replaced by the name field.
*/
nodePoolId: string;
/**
* 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;
/**
* Deprecated. The name of the Google Compute Engine
* [zone](/compute/docs/zones#available) in which the cluster resides. This
* field has been deprecated and replaced by the name field.
*/
zone: string;
}
/**
* Kubernetes Engine service configuration.
*/
export interface Schema$ServerConfig {
/**
* Version of Kubernetes the service deploys by default.
*/
defaultClusterVersion: string;
/**
* Default image type.
*/
defaultImageType: string;
/**
* List of valid image types.
*/
validImageTypes: string[];
/**
* List of valid master versions.
*/
validMasterVersions: string[];
/**
* List of valid node upgrade target versions.
*/
validNodeVersions: string[];
}
/**
* SetAddonsRequest sets the addons associated with the cluster.
*/
export interface Schema$SetAddonsConfigRequest {
/**
* The desired configurations for the various addons available to run in the
* cluster.
*/
addonsConfig: Schema$AddonsConfig;
/**
* Deprecated. The name of the cluster to upgrade. This field has been
* deprecated and replaced by the name field.
*/
clusterId: string;
/**
* The name (project, location, cluster) of the cluster to set addons.
* Specified in the format 'projects/x/locations/x/clusters/*'.
*/
name: string;
/**
* 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;
/**
* Deprecated. The name of the Google Compute Engine
* [zone](/compute/docs/zones#available) in which the cluster resides. This
* field has been deprecated and replaced by the name field.
*/
zone: string;
}
/**
* SetLabelsRequest sets the Google Cloud Platform labels on a Google Container
* Engine cluster, which will in turn set them for Google Compute Engine
* resources used by that cluster
*/
export interface Schema$SetLabelsRequest {
/**
* Deprecated. The name of the cluster. This field has been deprecated and
* replaced by the name field.
*/
clusterId: string;
/**
* The fingerprint of the previous set of labels for this resource, used to
* detect conflicts. The fingerprint is initially generated by Kubernetes
* Engine and changes after every request to modify or update labels. You must
* always provide an up-to-date fingerprint hash when updating or changing
* labels. Make a <code>get()</code> request to the resource to
* get the latest fingerprint.
*/
labelFingerprint: string;
/**
* The name (project, location, cluster id) of the cluster to set labels.
* Specified in the format 'projects/x/locations/x/clusters/*'.
*/
name: string;
/**
* 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;
/**
* The labels to set for that cluster.
*/
resourceLabels: any;
/**
* Deprecated. The name of the Google Compute Engine
* [zone](/compute/docs/zones#available) in which the cluster resides. This
* field has been deprecated and replaced by the name field.
*/
zone: string;
}
/**
* SetLegacyAbacRequest enables or disables the ABAC authorization mechanism for
* a cluster.
*/
export interface Schema$SetLegacyAbacRequest {
/**
* Deprecated. The name of the cluster to update. This field has been
* deprecated and replaced by the name field.
*/
clusterId: string;
/**
* Whether ABAC authorization will be enabled in the cluster.
*/
enabled: boolean;
/**
* The name (project, location, cluster id) of the cluster to set legacy abac.
* Specified in the format 'projects/x/locations/x/clusters/*'.
*/
name: string;
/**
* 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;
/**
* Deprecated. The name of the Google Compute Engine
* [zone](/compute/docs/zones#available) in which the cluster resides. This
* field has been deprecated and replaced by the name field.
*/
zone: string;
}
/**
* SetLocationsRequest sets the locations of the cluster.
*/
export interface Schema$SetLocationsRequest {
/**
* Deprecated. The name of the cluster to upgrade. This field has been
* deprecated and replaced by the name field.
*/
clusterId: string;
/**
* The desired list of Google Compute Engine
* [locations](/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.
*/
locations: string[];
/**
* The name (project, location, cluster) of the cluster to set locations.
* Specified in the format 'projects/x/locations/x/clusters/*'.
*/
name: string;
/**
* 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;
/**
* Deprecated. The name of the Google Compute Engine
* [zone](/compute/docs/zones#available) in which the