/// Parameters that can be configured on Linux nodes.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LinuxNodeConfig {
/// 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
#[prost(map = "string, string", tag = "1")]
pub sysctls:
::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
}
/// Node kubelet configs.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NodeKubeletConfig {
/// Control the CPU management policy on the node.
/// See
///
///
/// 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.
#[prost(string, tag = "1")]
pub cpu_manager_policy: ::prost::alloc::string::String,
/// Enable CPU CFS quota enforcement for containers that specify CPU limits.
///
/// This option is enabled by default which makes kubelet use CFS quota
/// () 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.
#[prost(message, optional, tag = "2")]
pub cpu_cfs_quota: ::core::option::Option,
/// 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.
#[prost(string, tag = "3")]
pub cpu_cfs_quota_period: ::prost::alloc::string::String,
}
/// Parameters that describe the nodes in a cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NodeConfig {
/// The name of a Google Compute Engine [machine
/// type]().
///
/// If unspecified, the default machine type is
/// `e2-medium`.
#[prost(string, tag = "1")]
pub machine_type: ::prost::alloc::string::String,
/// 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.
#[prost(int32, tag = "2")]
pub disk_size_gb: i32,
/// 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:
///
/// * ` is required for mounting
/// persistent storage on your nodes.
/// * ` is required for
/// communicating with **gcr.io**
/// (the [Google 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.
#[prost(string, repeated, tag = "3")]
pub oauth_scopes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// 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.
#[prost(string, tag = "9")]
pub service_account: ::prost::alloc::string::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"
/// - "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"
///
/// 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.
#[prost(map = "string, string", tag = "4")]
pub metadata:
::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
/// The image type to use for this node. Note that for a given image type,
/// the latest version of it will be used.
#[prost(string, tag = "5")]
pub image_type: ::prost::alloc::string::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:
///
#[prost(map = "string, string", tag = "6")]
pub labels:
::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
/// 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:
///
/// for more information.
#[prost(int32, tag = "7")]
pub local_ssd_count: i32,
/// 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.
#[prost(string, repeated, tag = "8")]
pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// Whether the nodes are created as preemptible VM instances. See:
/// for more
/// inforamtion about preemptible VM instances.
#[prost(bool, tag = "10")]
pub preemptible: bool,
/// A list of hardware accelerators to be attached to each node.
/// See for more information about
/// support for GPUs.
#[prost(message, repeated, tag = "11")]
pub accelerators: ::prost::alloc::vec::Vec,
/// Sandbox configuration for this node.
#[prost(message, optional, tag = "17")]
pub sandbox_config: ::core::option::Option,
/// 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]().
#[prost(string, tag = "18")]
pub node_group: ::prost::alloc::string::String,
/// The optional reservation affinity. Setting this field will apply
/// the specified [Zonal Compute
/// Reservation]()
/// to this node pool.
#[prost(message, optional, tag = "19")]
pub reservation_affinity: ::core::option::Option,
/// Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or
/// 'pd-balanced')
///
/// If unspecified, the default disk type is 'pd-standard'
#[prost(string, tag = "12")]
pub disk_type: ::prost::alloc::string::String,
/// 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]()
#[prost(string, tag = "13")]
pub min_cpu_platform: ::prost::alloc::string::String,
/// The workload metadata configuration for this node.
#[prost(message, optional, tag = "14")]
pub workload_metadata_config: ::core::option::Option,
/// List of kubernetes taints to be applied to each node.
///
/// For more information, including usage and the valid values, see:
///
#[prost(message, repeated, tag = "15")]
pub taints: ::prost::alloc::vec::Vec,
///
/// 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]/cryptoKeys/[KEY_NAME\].
/// For more information about protecting resources with Cloud KMS Keys please
/// see:
///
#[prost(string, tag = "23")]
pub boot_disk_kms_key: ::prost::alloc::string::String,
/// Shielded Instance options.
#[prost(message, optional, tag = "20")]
pub shielded_instance_config: ::core::option::Option,
/// Parameters that can be configured on Linux nodes.
#[prost(message, optional, tag = "21")]
pub linux_node_config: ::core::option::Option,
/// Node kubelet configs.
#[prost(message, optional, tag = "22")]
pub kubelet_config: ::core::option::Option,
/// Parameters for the ephemeral storage filesystem.
/// If unspecified, ephemeral storage is backed by the boot disk.
#[prost(message, optional, tag = "24")]
pub ephemeral_storage_config: ::core::option::Option,
/// Enable or disable gvnic on the node pool.
#[prost(message, optional, tag = "29")]
pub gvnic: ::core::option::Option,
}
/// Parameters for node pool-level network config.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NodeNetworkConfig {
/// Input only. Whether to create a new range for pod IPs in this node pool.
/// Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they
/// are not specified.
///
/// If neither `create_pod_range` or `pod_range` are specified, the
/// cluster-level default (`ip_allocation_policy.cluster_ipv4_cidr_block`) is
/// used.
///
/// Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
///
/// This field cannot be changed after the node pool has been created.
#[prost(bool, tag = "4")]
pub create_pod_range: bool,
/// The ID of the secondary range for pod IPs.
/// If `create_pod_range` is true, this ID is used for the new range.
/// If `create_pod_range` is false, uses an existing secondary range with this
/// ID.
///
/// Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
///
/// This field cannot be changed after the node pool has been created.
#[prost(string, tag = "5")]
pub pod_range: ::prost::alloc::string::String,
/// The IP address range for pod IPs in this node pool.
///
/// Only applicable if `create_pod_range` 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\]()
/// notation (e.g. `10.96.0.0/14`) to pick a specific range to use.
///
/// Only applicable if `ip_allocation_policy.use_ip_aliases` is true.
///
/// This field cannot be changed after the node pool has been created.
#[prost(string, tag = "6")]
pub pod_ipv4_cidr_block: ::prost::alloc::string::String,
}
/// A set of Shielded Instance options.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ShieldedInstanceConfig {
/// Defines whether the instance has Secure Boot enabled.
///
/// Secure Boot helps ensure that the system only runs authentic software by
/// verifying the digital signature of all boot components, and halting the
/// boot process if signature verification fails.
#[prost(bool, tag = "1")]
pub enable_secure_boot: bool,
/// Defines whether the instance has integrity monitoring enabled.
///
/// Enables monitoring and attestation of the boot integrity of the instance.
/// The attestation is performed against the integrity policy baseline. This
/// baseline is initially derived from the implicitly trusted boot image when
/// the instance is created.
#[prost(bool, tag = "2")]
pub enable_integrity_monitoring: bool,
}
/// SandboxConfig contains configurations of the sandbox to use for the node.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SandboxConfig {
/// Type of the sandbox to use for the node (e.g. 'gvisor')
#[deprecated]
#[prost(string, tag = "1")]
pub sandbox_type: ::prost::alloc::string::String,
/// Type of the sandbox to use for the node.
#[prost(enumeration = "sandbox_config::Type", tag = "2")]
pub r#type: i32,
}
/// Nested message and enum types in `SandboxConfig`.
pub mod sandbox_config {
/// Possible types of sandboxes.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Type {
/// Default value. This should not be used.
Unspecified = 0,
/// Run sandbox using gvisor.
Gvisor = 1,
}
}
/// EphemeralStorageConfig contains configuration for the ephemeral storage
/// filesystem.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EphemeralStorageConfig {
/// Number of local SSDs to use to back ephemeral storage. Uses NVMe
/// interfaces. Each local SSD is 375 GB in size.
/// If zero, it means to disable using local SSDs as ephemeral storage.
#[prost(int32, tag = "1")]
pub local_ssd_count: i32,
}
/// \[ReservationAffinity\]()
/// is the configuration of desired reservation which instances could take
/// capacity from.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReservationAffinity {
/// Corresponds to the type of reservation consumption.
#[prost(enumeration = "reservation_affinity::Type", tag = "1")]
pub consume_reservation_type: i32,
/// Corresponds to the label key of a reservation resource. To target a
/// SPECIFIC_RESERVATION by name, specify "googleapis.com/reservation-name" as
/// the key and specify the name of your reservation as its value.
#[prost(string, tag = "2")]
pub key: ::prost::alloc::string::String,
/// Corresponds to the label value(s) of reservation resource(s).
#[prost(string, repeated, tag = "3")]
pub values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
/// Nested message and enum types in `ReservationAffinity`.
pub mod reservation_affinity {
/// Indicates whether to consume capacity from a reservation or not.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Type {
/// Default value. This should not be used.
Unspecified = 0,
/// Do not consume from any reserved capacity.
NoReservation = 1,
/// Consume any reservation available.
AnyReservation = 2,
/// Must consume from a specific reservation. Must specify key value fields
/// for specifying the reservations.
SpecificReservation = 3,
}
}
/// 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\]()
/// for more information, including usage and the valid values.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NodeTaint {
/// Key for taint.
#[prost(string, tag = "1")]
pub key: ::prost::alloc::string::String,
/// Value for taint.
#[prost(string, tag = "2")]
pub value: ::prost::alloc::string::String,
/// Effect for taint.
#[prost(enumeration = "node_taint::Effect", tag = "3")]
pub effect: i32,
}
/// Nested message and enum types in `NodeTaint`.
pub mod node_taint {
/// Possible values for Effect in taint.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Effect {
/// Not set
Unspecified = 0,
/// NoSchedule
NoSchedule = 1,
/// PreferNoSchedule
PreferNoSchedule = 2,
/// NoExecute
NoExecute = 3,
}
}
/// Collection of Kubernetes [node
/// taints]().
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NodeTaints {
/// List of node taints.
#[prost(message, repeated, tag = "1")]
pub taints: ::prost::alloc::vec::Vec,
}
/// Collection of node-level [Kubernetes
/// labels]().
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NodeLabels {
/// Map of node label keys and node label values.
#[prost(map = "string, string", tag = "1")]
pub labels:
::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
}
/// Collection of Compute Engine network tags that can be applied to a node's
/// underlying VM instance. (See `tags` field in
/// \[`NodeConfig`\](/kubernetes-engine/docs/reference/rest/v1/NodeConfig)).
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NetworkTags {
/// List of network tags.
#[prost(string, repeated, tag = "1")]
pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
/// The authentication information for accessing the master endpoint.
/// Authentication can be done using HTTP basic auth or using client
/// certificates.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MasterAuth {
/// 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:
///
#[deprecated]
#[prost(string, tag = "1")]
pub username: ::prost::alloc::string::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.
///
/// 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:
///
#[deprecated]
#[prost(string, tag = "2")]
pub password: ::prost::alloc::string::String,
/// Configuration for client certificate authentication on the cluster. For
/// clusters before v1.12, if no configuration is specified, a client
/// certificate is issued.
#[prost(message, optional, tag = "3")]
pub client_certificate_config: ::core::option::Option,
#[prost(string, tag = "100")]
pub cluster_ca_certificate: ::prost::alloc::string::String,
/// [Output only] Base64-encoded public certificate used by clients to
/// authenticate to the cluster endpoint.
#[prost(string, tag = "101")]
pub client_certificate: ::prost::alloc::string::String,
/// [Output only] Base64-encoded private key used by clients to authenticate
/// to the cluster endpoint.
#[prost(string, tag = "102")]
pub client_key: ::prost::alloc::string::String,
}
/// Configuration for client certificates on the cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClientCertificateConfig {
/// Issue a client certificate.
#[prost(bool, tag = "1")]
pub issue_client_certificate: bool,
}
/// Configuration for the addons that can be automatically spun up in the
/// cluster, enabling additional functionality.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AddonsConfig {
/// Configuration for the HTTP (L7) load balancing controller addon, which
/// makes it easy to set up HTTP load balancers for services in a cluster.
#[prost(message, optional, tag = "1")]
pub http_load_balancing: ::core::option::Option,
/// 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.
#[prost(message, optional, tag = "2")]
pub horizontal_pod_autoscaling: ::core::option::Option,
/// 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:
///
#[deprecated]
#[prost(message, optional, tag = "3")]
pub kubernetes_dashboard: ::core::option::Option,
/// 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.
#[prost(message, optional, tag = "4")]
pub network_policy_config: ::core::option::Option,
/// Configuration for Istio, an open platform to connect, manage, and secure
/// microservices.
#[prost(message, optional, tag = "5")]
pub istio_config: ::core::option::Option,
/// 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.
#[prost(message, optional, tag = "7")]
pub cloud_run_config: ::core::option::Option,
/// Configuration for NodeLocalDNS, a dns cache running on cluster nodes
#[prost(message, optional, tag = "8")]
pub dns_cache_config: ::core::option::Option,
/// Configuration for the ConfigConnector add-on, a Kubernetes
/// extension to manage hosted GCP services through the Kubernetes API
#[prost(message, optional, tag = "10")]
pub config_connector_config: ::core::option::Option,
/// Configuration for the Compute Engine Persistent Disk CSI driver.
#[prost(message, optional, tag = "11")]
pub gce_persistent_disk_csi_driver_config:
::core::option::Option,
/// Configuration for the KALM addon, which manages the lifecycle of k8s
/// applications.
#[deprecated]
#[prost(message, optional, tag = "12")]
pub kalm_config: ::core::option::Option,
}
/// 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.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct 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.
#[prost(bool, tag = "1")]
pub disabled: bool,
}
/// 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.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HorizontalPodAutoscaling {
/// Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
/// When enabled, it ensures that metrics are collected into Stackdriver
/// Monitoring.
#[prost(bool, tag = "1")]
pub disabled: bool,
}
/// Configuration for the Kubernetes Dashboard.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct KubernetesDashboard {
/// Whether the Kubernetes Dashboard is enabled for this cluster.
#[prost(bool, tag = "1")]
pub disabled: bool,
}
/// 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.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NetworkPolicyConfig {
/// Whether NetworkPolicy is enabled for this cluster.
#[prost(bool, tag = "1")]
pub disabled: bool,
}
/// Configuration for NodeLocal DNSCache
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DnsCacheConfig {
/// Whether NodeLocal DNSCache is enabled for this cluster.
#[prost(bool, tag = "1")]
pub enabled: bool,
}
/// Configuration options for the KALM addon.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct KalmConfig {
/// Whether KALM is enabled for this cluster.
#[deprecated]
#[prost(bool, tag = "1")]
pub enabled: bool,
}
/// Configuration options for the Config Connector add-on.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigConnectorConfig {
/// Whether Cloud Connector is enabled for this cluster.
#[prost(bool, tag = "1")]
pub enabled: bool,
}
/// Configuration for the Compute Engine PD CSI driver.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GcePersistentDiskCsiDriverConfig {
/// Whether the Compute Engine PD CSI driver is enabled for this cluster.
#[prost(bool, tag = "1")]
pub enabled: bool,
}
/// Configuration for controlling master global access settings.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PrivateClusterMasterGlobalAccessConfig {
/// Whenever master is accessible globally or not.
#[prost(bool, tag = "1")]
pub enabled: bool,
}
/// Configuration options for private clusters.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PrivateClusterConfig {
/// Whether nodes have internal IP addresses only. If enabled, all nodes are
/// given only RFC 1918 private addresses and communicate with the master via
/// private networking.
#[prost(bool, tag = "1")]
pub enable_private_nodes: bool,
/// Whether the master's internal IP address is used as the cluster endpoint.
#[prost(bool, tag = "2")]
pub enable_private_endpoint: bool,
/// The IP range in CIDR notation to use for the hosted master network. This
/// range will be used for assigning internal IP addresses to the master or
/// set of masters, as well as the ILB VIP. This range must not overlap with
/// any other ranges in use within the cluster's network.
#[prost(string, tag = "3")]
pub master_ipv4_cidr_block: ::prost::alloc::string::String,
/// Output only. The internal IP address of this cluster's master endpoint.
#[prost(string, tag = "4")]
pub private_endpoint: ::prost::alloc::string::String,
/// Output only. The external IP address of this cluster's master endpoint.
#[prost(string, tag = "5")]
pub public_endpoint: ::prost::alloc::string::String,
/// Output only. The peering name in the customer VPC used by this cluster.
#[prost(string, tag = "7")]
pub peering_name: ::prost::alloc::string::String,
/// Controls master global access settings.
#[prost(message, optional, tag = "8")]
pub master_global_access_config: ::core::option::Option,
}
/// Configuration options for Istio addon.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IstioConfig {
/// Whether Istio is enabled for this cluster.
#[prost(bool, tag = "1")]
pub disabled: bool,
/// The specified Istio auth mode, either none, or mutual TLS.
#[prost(enumeration = "istio_config::IstioAuthMode", tag = "2")]
pub auth: i32,
}
/// Nested message and enum types in `IstioConfig`.
pub mod istio_config {
/// Istio auth mode,
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum IstioAuthMode {
/// auth not enabled
AuthNone = 0,
/// auth mutual TLS enabled
AuthMutualTls = 1,
}
}
/// Configuration options for the Cloud Run feature.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CloudRunConfig {
/// Whether Cloud Run addon is enabled for this cluster.
#[prost(bool, tag = "1")]
pub disabled: bool,
/// Which load balancer type is installed for Cloud Run.
#[prost(enumeration = "cloud_run_config::LoadBalancerType", tag = "3")]
pub load_balancer_type: i32,
}
/// Nested message and enum types in `CloudRunConfig`.
pub mod cloud_run_config {
/// Load balancer type of ingress service of Cloud Run.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum LoadBalancerType {
/// Load balancer type for Cloud Run is unspecified.
Unspecified = 0,
/// Install external load balancer for Cloud Run.
External = 1,
/// Install internal load balancer for Cloud Run.
Internal = 2,
}
}
/// 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.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MasterAuthorizedNetworksConfig {
/// Whether or not master authorized networks is enabled.
#[prost(bool, tag = "1")]
pub enabled: bool,
/// cidr_blocks define up to 10 external networks that could access
/// Kubernetes master through HTTPS.
#[prost(message, repeated, tag = "2")]
pub cidr_blocks: ::prost::alloc::vec::Vec,
}
/// Nested message and enum types in `MasterAuthorizedNetworksConfig`.
pub mod master_authorized_networks_config {
/// CidrBlock contains an optional name and one CIDR block.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CidrBlock {
/// display_name is an optional field for users to identify CIDR blocks.
#[prost(string, tag = "1")]
pub display_name: ::prost::alloc::string::String,
/// cidr_block must be specified in CIDR notation.
#[prost(string, tag = "2")]
pub cidr_block: ::prost::alloc::string::String,
}
}
/// Configuration for the legacy Attribute Based Access Control authorization
/// mode.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct 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.
#[prost(bool, tag = "1")]
pub enabled: bool,
}
/// Configuration options for the NetworkPolicy feature.
///
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NetworkPolicy {
/// The selected network policy provider.
#[prost(enumeration = "network_policy::Provider", tag = "1")]
pub provider: i32,
/// Whether network policy is enabled on the cluster.
#[prost(bool, tag = "2")]
pub enabled: bool,
}
/// Nested message and enum types in `NetworkPolicy`.
pub mod network_policy {
/// Allowed Network Policy providers.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Provider {
/// Not set
Unspecified = 0,
/// Tigera (Calico Felix).
Calico = 1,
}
}
/// Configuration for controlling how IPs are allocated in the cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IpAllocationPolicy {
/// 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
#[prost(bool, tag = "1")]
pub use_ip_aliases: bool,
/// Whether a new subnetwork will be created automatically for the cluster.
///
/// This field is only applicable when `use_ip_aliases` is true.
#[prost(bool, tag = "2")]
pub create_subnetwork: bool,
/// 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.
#[prost(string, tag = "3")]
pub subnetwork_name: ::prost::alloc::string::String,
/// This field is deprecated, use cluster_ipv4_cidr_block.
#[deprecated]
#[prost(string, tag = "4")]
pub cluster_ipv4_cidr: ::prost::alloc::string::String,
/// This field is deprecated, use node_ipv4_cidr_block.
#[deprecated]
#[prost(string, tag = "5")]
pub node_ipv4_cidr: ::prost::alloc::string::String,
/// This field is deprecated, use services_ipv4_cidr_block.
#[deprecated]
#[prost(string, tag = "6")]
pub services_ipv4_cidr: ::prost::alloc::string::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.
#[prost(string, tag = "7")]
pub cluster_secondary_range_name: ::prost::alloc::string::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.
#[prost(string, tag = "8")]
pub services_secondary_range_name: ::prost::alloc::string::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\]()
/// 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.
#[prost(string, tag = "9")]
pub cluster_ipv4_cidr_block: ::prost::alloc::string::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\]()
/// 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.
#[prost(string, tag = "10")]
pub node_ipv4_cidr_block: ::prost::alloc::string::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\]()
/// 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.
#[prost(string, tag = "11")]
pub services_ipv4_cidr_block: ::prost::alloc::string::String,
/// 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.
#[prost(bool, tag = "12")]
pub allow_route_overlap: bool,
/// 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\]()
/// 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.
#[prost(string, tag = "13")]
pub tpu_ipv4_cidr_block: ::prost::alloc::string::String,
/// 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
#[prost(bool, tag = "15")]
pub use_routes: bool,
}
/// Configuration for Binary Authorization.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BinaryAuthorization {
/// Enable Binary Authorization for this cluster. If enabled, all container
/// images will be validated by Google Binauthz.
#[prost(bool, tag = "1")]
pub enabled: bool,
}
/// Configuration for the PodSecurityPolicy feature.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PodSecurityPolicyConfig {
/// Enable the PodSecurityPolicy controller for this cluster. If enabled, pods
/// must be valid under a PodSecurityPolicy to be created.
#[prost(bool, tag = "1")]
pub enabled: bool,
}
/// Configuration for returning group information from authenticators.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AuthenticatorGroupsConfig {
/// Whether this cluster should return group membership lookups
/// during authentication using a group of security groups.
#[prost(bool, tag = "1")]
pub enabled: bool,
/// The name of the security group-of-groups to be used. Only relevant
/// if enabled = true.
#[prost(string, tag = "2")]
pub security_group: ::prost::alloc::string::String,
}
/// Telemetry integration for the cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClusterTelemetry {
/// Type of the integration.
#[prost(enumeration = "cluster_telemetry::Type", tag = "1")]
pub r#type: i32,
}
/// Nested message and enum types in `ClusterTelemetry`.
pub mod cluster_telemetry {
/// Type of the integration.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Type {
/// Not set.
Unspecified = 0,
/// Monitoring integration is disabled.
Disabled = 1,
/// Monitoring integration is enabled.
Enabled = 2,
/// Only system components are monitored and logged.
SystemOnly = 3,
}
}
/// A Google Kubernetes Engine cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Cluster {
/// 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.
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
/// An optional description of this cluster.
#[prost(string, tag = "2")]
pub description: ::prost::alloc::string::String,
/// The number of nodes to create in this cluster. You must ensure that your
/// Compute Engine [resource quota]()
/// 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.
#[deprecated]
#[prost(int32, tag = "3")]
pub initial_node_count: i32,
/// 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.
#[deprecated]
#[prost(message, optional, tag = "4")]
pub node_config: ::core::option::Option,
/// 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.
#[prost(message, optional, tag = "5")]
pub master_auth: ::core::option::Option,
/// 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.
#[prost(string, tag = "6")]
pub logging_service: ::prost::alloc::string::String,
/// 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.
#[prost(string, tag = "7")]
pub monitoring_service: ::prost::alloc::string::String,
/// The name of the Google Compute Engine
/// \[network\]()
/// 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.
#[prost(string, tag = "8")]
pub network: ::prost::alloc::string::String,
/// The IP address range of the container pods in this cluster, in
/// \[CIDR\]()
/// 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`.
#[prost(string, tag = "9")]
pub cluster_ipv4_cidr: ::prost::alloc::string::String,
/// Configurations for the various addons available to run in the cluster.
#[prost(message, optional, tag = "10")]
pub addons_config: ::core::option::Option,
/// The name of the Google Compute Engine
/// \[subnetwork\]() to which
/// the cluster is connected. On output this shows the subnetwork ID instead of
/// the name.
#[prost(string, tag = "11")]
pub subnetwork: ::prost::alloc::string::String,
/// The node pools associated with this cluster.
/// This field should not be set if "node_config" or "initial_node_count" are
/// specified.
#[prost(message, repeated, tag = "12")]
pub node_pools: ::prost::alloc::vec::Vec,
/// The list of Google Compute Engine
/// \[zones\]() in which the
/// cluster's nodes should be located.
///
/// This field provides a default value if
/// \[NodePool.Locations\]()
/// are not specified during node pool creation.
///
/// Warning: changing cluster locations will update the
/// \[NodePool.Locations\]()
/// of all node pools and will result in nodes being added and/or removed.
#[prost(string, repeated, tag = "13")]
pub locations: ::prost::alloc::vec::Vec<::prost::alloc::string::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.
#[prost(bool, tag = "14")]
pub enable_kubernetes_alpha: bool,
/// The resource labels for the cluster to use to annotate any related
/// Google Compute Engine resources.
#[prost(map = "string, string", tag = "15")]
pub resource_labels:
::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
/// The fingerprint of the set of labels for this cluster.
#[prost(string, tag = "16")]
pub label_fingerprint: ::prost::alloc::string::String,
/// Configuration for the legacy ABAC authorization mode.
#[prost(message, optional, tag = "18")]
pub legacy_abac: ::core::option::Option,
/// Configuration options for the NetworkPolicy feature.
#[prost(message, optional, tag = "19")]
pub network_policy: ::core::option::Option,
/// Configuration for cluster IP allocation.
#[prost(message, optional, tag = "20")]
pub ip_allocation_policy: ::core::option::Option,
/// The configuration options for master authorized networks feature.
#[prost(message, optional, tag = "22")]
pub master_authorized_networks_config: ::core::option::Option,
/// Configure the maintenance policy for this cluster.
#[prost(message, optional, tag = "23")]
pub maintenance_policy: ::core::option::Option,
/// Configuration for Binary Authorization.
#[prost(message, optional, tag = "24")]
pub binary_authorization: ::core::option::Option,
/// Configuration for the PodSecurityPolicy feature.
#[prost(message, optional, tag = "25")]
pub pod_security_policy_config: ::core::option::Option,
/// Cluster-level autoscaling configuration.
#[prost(message, optional, tag = "26")]
pub autoscaling: ::core::option::Option,
/// Configuration for cluster networking.
#[prost(message, optional, tag = "27")]
pub network_config: ::core::option::Option,
/// 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.
#[deprecated]
#[prost(bool, tag = "28")]
pub private_cluster: bool,
/// 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.
#[deprecated]
#[prost(string, tag = "29")]
pub master_ipv4_cidr_block: ::prost::alloc::string::String,
/// 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.
#[prost(message, optional, tag = "30")]
pub default_max_pods_constraint: ::core::option::Option,
/// Configuration for exporting resource usages. Resource usage export is
/// disabled when this config unspecified.
#[prost(message, optional, tag = "33")]
pub resource_usage_export_config: ::core::option::Option,
/// Configuration controlling RBAC group membership information.
#[prost(message, optional, tag = "34")]
pub authenticator_groups_config: ::core::option::Option,
/// Configuration for private cluster.
#[prost(message, optional, tag = "37")]
pub private_cluster_config: ::core::option::Option,
/// Cluster-level Vertical Pod Autoscaling configuration.
#[prost(message, optional, tag = "39")]
pub vertical_pod_autoscaling: ::core::option::Option,
/// Shielded Nodes configuration.
#[prost(message, optional, tag = "40")]
pub shielded_nodes: ::core::option::Option,
/// Release channel configuration.
#[prost(message, optional, tag = "41")]
pub release_channel: ::core::option::Option,
/// Configuration for the use of Kubernetes Service Accounts in GCP IAM
/// policies.
#[prost(message, optional, tag = "43")]
pub workload_identity_config: ::core::option::Option,
/// Configuration for issuance of mTLS keys and certificates to Kubernetes
/// pods.
#[prost(message, optional, tag = "52")]
pub workload_certificates: ::core::option::Option,
/// Telemetry integration for the cluster.
#[prost(message, optional, tag = "46")]
pub cluster_telemetry: ::core::option::Option,
/// Configuration for Cloud TPU support;
#[prost(message, optional, tag = "47")]
pub tpu_config: ::core::option::Option,
/// Notification configuration of the cluster.
#[prost(message, optional, tag = "49")]
pub notification_config: ::core::option::Option,
/// Configuration of Confidential Nodes
#[prost(message, optional, tag = "50")]
pub confidential_nodes: ::core::option::Option,
/// Configuration for Identity Service component.
#[prost(message, optional, tag = "54")]
pub identity_service_config: ::core::option::Option,
/// [Output only] Server-defined URL for the resource.
#[prost(string, tag = "100")]
pub self_link: ::prost::alloc::string::String,
/// [Output only] The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field is deprecated, use location instead.
#[deprecated]
#[prost(string, tag = "101")]
pub zone: ::prost::alloc::string::String,
/// [Output only] The IP address of this cluster's master endpoint.
/// The endpoint can be accessed from the internet at
/// `
///
/// See the `masterAuth` property of this resource for username and
/// password information.
#[prost(string, tag = "102")]
pub endpoint: ::prost::alloc::string::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
#[prost(string, tag = "103")]
pub initial_cluster_version: ::prost::alloc::string::String,
/// [Output only] The current software version of the master endpoint.
#[prost(string, tag = "104")]
pub current_master_version: ::prost::alloc::string::String,
/// [Output only] Deprecated, use
/// \[NodePool.version\]()
/// 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.
#[deprecated]
#[prost(string, tag = "105")]
pub current_node_version: ::prost::alloc::string::String,
/// [Output only] The time the cluster was created, in
/// \[RFC3339\]() text format.
#[prost(string, tag = "106")]
pub create_time: ::prost::alloc::string::String,
/// [Output only] The current status of this cluster.
#[prost(enumeration = "cluster::Status", tag = "107")]
pub status: i32,
/// [Output only] Deprecated. Use conditions instead.
/// Additional information about the current status of this
/// cluster, if available.
#[deprecated]
#[prost(string, tag = "108")]
pub status_message: ::prost::alloc::string::String,
/// [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.
#[prost(int32, tag = "109")]
pub node_ipv4_cidr_size: i32,
/// [Output only] The IP address range of the Kubernetes services in
/// this cluster, in
/// \[CIDR\]()
/// notation (e.g. `1.2.3.4/29`). Service addresses are
/// typically put in the last `/16` from the container CIDR.
#[prost(string, tag = "110")]
pub services_ipv4_cidr: ::prost::alloc::string::String,
/// Deprecated. Use node_pools.instance_group_urls.
#[deprecated]
#[prost(string, repeated, tag = "111")]
pub instance_group_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// [Output only] The number of nodes currently in the cluster. Deprecated.
/// Call Kubernetes API directly to retrieve node information.
#[deprecated]
#[prost(int32, tag = "112")]
pub current_node_count: i32,
/// [Output only] The time the cluster will be automatically
/// deleted in \[RFC3339\]() text format.
#[prost(string, tag = "113")]
pub expire_time: ::prost::alloc::string::String,
/// [Output only] The name of the Google Compute Engine
/// \[zone\]()
/// or
/// \[region\]()
/// in which the cluster resides.
#[prost(string, tag = "114")]
pub location: ::prost::alloc::string::String,
/// Enable the ability to use Cloud TPUs in this cluster.
/// This field is deprecated, use tpu_config.enabled instead.
#[prost(bool, tag = "115")]
pub enable_tpu: bool,
/// [Output only] The IP address range of the Cloud TPUs in this cluster, in
/// \[CIDR\]()
/// notation (e.g. `1.2.3.4/29`).
#[prost(string, tag = "116")]
pub tpu_ipv4_cidr_block: ::prost::alloc::string::String,
/// Configuration of etcd encryption.
#[prost(message, optional, tag = "38")]
pub database_encryption: ::core::option::Option,
/// Which conditions caused the current cluster state.
#[prost(message, repeated, tag = "118")]
pub conditions: ::prost::alloc::vec::Vec,
/// Configuration for master components.
#[prost(message, optional, tag = "124")]
pub master: ::core::option::Option,
/// Autopilot configuration for the cluster.
#[prost(message, optional, tag = "128")]
pub autopilot: ::core::option::Option,
/// Output only. Unique id for the cluster.
#[prost(string, tag = "129")]
pub id: ::prost::alloc::string::String,
/// Default NodePool settings for the entire cluster. These settings are
/// overridden if specified on the specific NodePool object.
#[prost(message, optional, tag = "131")]
pub node_pool_defaults: ::core::option::Option,
/// Logging configuration for the cluster.
#[prost(message, optional, tag = "132")]
pub logging_config: ::core::option::Option,
/// Monitoring configuration for the cluster.
#[prost(message, optional, tag = "133")]
pub monitoring_config: ::core::option::Option,
}
/// Nested message and enum types in `Cluster`.
pub mod cluster {
/// The current status of the cluster.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Status {
/// Not set.
Unspecified = 0,
/// The PROVISIONING state indicates the cluster is being created.
Provisioning = 1,
/// The RUNNING state indicates the cluster has been created and is fully
/// usable.
Running = 2,
/// 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.
Reconciling = 3,
/// The STOPPING state indicates the cluster is being deleted.
Stopping = 4,
/// The ERROR state indicates the cluster may be unusable. Details
/// can be found in the `statusMessage` field.
Error = 5,
/// The DEGRADED state indicates the cluster requires user action to restore
/// full functionality. Details can be found in the `statusMessage` field.
Degraded = 6,
}
}
/// Subset of Nodepool message that has defaults.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NodePoolDefaults {
/// Subset of NodeConfig message that has defaults.
#[prost(message, optional, tag = "1")]
pub node_config_defaults: ::core::option::Option,
}
/// Subset of NodeConfig message that has defaults.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NodeConfigDefaults {}
/// 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.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClusterUpdate {
/// 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
#[prost(string, tag = "4")]
pub desired_node_version: ::prost::alloc::string::String,
/// 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.
#[prost(string, tag = "5")]
pub desired_monitoring_service: ::prost::alloc::string::String,
/// Configurations for the various addons available to run in the cluster.
#[prost(message, optional, tag = "6")]
pub desired_addons_config: ::core::option::Option,
/// 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.
#[prost(string, tag = "7")]
pub desired_node_pool_id: ::prost::alloc::string::String,
/// The desired image type for the node pool.
/// NOTE: Set the "desired_node_pool" field as well.
#[prost(string, tag = "8")]
pub desired_image_type: ::prost::alloc::string::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.
#[prost(message, optional, tag = "9")]
pub desired_node_pool_autoscaling: ::core::option::Option,
/// The desired list of Google Compute Engine
/// \[zones\]() in which the
/// cluster's nodes should be located.
///
/// This list must always include the cluster's primary zone.
///
/// Warning: changing cluster locations will update the locations of all node
/// pools and will result in nodes being added and/or removed.
#[prost(string, repeated, tag = "10")]
pub desired_locations: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// The desired configuration options for master authorized networks feature.
#[prost(message, optional, tag = "12")]
pub desired_master_authorized_networks_config:
::core::option::Option,
/// The desired configuration options for the PodSecurityPolicy feature.
#[prost(message, optional, tag = "14")]
pub desired_pod_security_policy_config: ::core::option::Option,
/// Cluster-level autoscaling configuration.
#[prost(message, optional, tag = "15")]
pub desired_cluster_autoscaling: ::core::option::Option,
/// The desired configuration options for the Binary Authorization feature.
#[prost(message, optional, tag = "16")]
pub desired_binary_authorization: ::core::option::Option,
/// 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.
#[prost(string, tag = "19")]
pub desired_logging_service: ::prost::alloc::string::String,
/// The desired configuration for exporting resource usage.
#[prost(message, optional, tag = "21")]
pub desired_resource_usage_export_config: ::core::option::Option,
/// Cluster-level Vertical Pod Autoscaling configuration.
#[prost(message, optional, tag = "22")]
pub desired_vertical_pod_autoscaling: ::core::option::Option,
/// The desired private cluster configuration.
#[prost(message, optional, tag = "25")]
pub desired_private_cluster_config: ::core::option::Option,
/// The desired config of Intra-node visibility.
#[prost(message, optional, tag = "26")]
pub desired_intra_node_visibility_config: ::core::option::Option,
/// The desired status of whether to disable default sNAT for this cluster.
#[prost(message, optional, tag = "28")]
pub desired_default_snat_status: ::core::option::Option,
/// The desired telemetry integration for the cluster.
#[prost(message, optional, tag = "30")]
pub desired_cluster_telemetry: ::core::option::Option,
/// The desired release channel configuration.
#[prost(message, optional, tag = "31")]
pub desired_release_channel: ::core::option::Option,
/// The desired Cloud TPU configuration.
#[prost(message, optional, tag = "38")]
pub desired_tpu_config: ::core::option::Option,
/// The desired L4 Internal Load Balancer Subsetting configuration.
#[prost(message, optional, tag = "39")]
pub desired_l4ilb_subsetting_config: ::core::option::Option,
/// The desired datapath provider for the cluster.
#[prost(enumeration = "DatapathProvider", tag = "50")]
pub desired_datapath_provider: i32,
/// The desired state of IPv6 connectivity to Google Services.
#[prost(enumeration = "PrivateIPv6GoogleAccess", tag = "51")]
pub desired_private_ipv6_google_access: i32,
/// The desired notification configuration.
#[prost(message, optional, tag = "55")]
pub desired_notification_config: ::core::option::Option,
/// 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
#[prost(string, tag = "100")]
pub desired_master_version: ::prost::alloc::string::String,
/// Configuration of etcd encryption.
#[prost(message, optional, tag = "46")]
pub desired_database_encryption: ::core::option::Option,
/// Configuration for Workload Identity.
#[prost(message, optional, tag = "47")]
pub desired_workload_identity_config: ::core::option::Option,
/// Configuration for issuance of mTLS keys and certificates to Kubernetes
/// pods.
#[prost(message, optional, tag = "61")]
pub desired_workload_certificates: ::core::option::Option,
/// Configuration for Shielded Nodes.
#[prost(message, optional, tag = "48")]
pub desired_shielded_nodes: ::core::option::Option,
/// Configuration for master components.
#[prost(message, optional, tag = "52")]
pub desired_master: ::core::option::Option,
/// DNSConfig contains clusterDNS config for this cluster.
#[prost(message, optional, tag = "53")]
pub desired_dns_config: ::core::option::Option,
/// ServiceExternalIPsConfig specifies the config for the use of Services with
/// ExternalIPs field.
#[prost(message, optional, tag = "60")]
pub desired_service_external_ips_config: ::core::option::Option,
/// AuthenticatorGroupsConfig specifies the config for the cluster security
/// groups settings.
#[prost(message, optional, tag = "63")]
pub desired_authenticator_groups_config: ::core::option::Option,
/// The desired logging configuration.
#[prost(message, optional, tag = "64")]
pub desired_logging_config: ::core::option::Option,
/// The desired monitoring configuration.
#[prost(message, optional, tag = "65")]
pub desired_monitoring_config: ::core::option::Option,
/// The desired Identity Service component configuration.
#[prost(message, optional, tag = "66")]
pub desired_identity_service_config: ::core::option::Option,
}
/// This operation resource represents operations that may have happened or are
/// happening on the cluster. All fields are output only.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Operation {
/// The server-assigned ID for the operation.
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
/// The name of the Google Compute Engine
/// \[zone\]() in which the
/// operation is taking place. This field is deprecated, use location instead.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// The operation type.
#[prost(enumeration = "operation::Type", tag = "3")]
pub operation_type: i32,
/// The current status of the operation.
#[prost(enumeration = "operation::Status", tag = "4")]
pub status: i32,
/// Detailed operation progress, if available.
#[prost(string, tag = "8")]
pub detail: ::prost::alloc::string::String,
/// Output only. If an error has occurred, a textual description of the error.
/// Deprecated. Use field error instead.
#[deprecated]
#[prost(string, tag = "5")]
pub status_message: ::prost::alloc::string::String,
/// Server-defined URL for the resource.
#[prost(string, tag = "6")]
pub self_link: ::prost::alloc::string::String,
/// Server-defined URL for the target of the operation.
#[prost(string, tag = "7")]
pub target_link: ::prost::alloc::string::String,
/// [Output only] The name of the Google Compute Engine
/// \[zone\]()
/// or
/// \[region\]()
/// in which the cluster resides.
#[prost(string, tag = "9")]
pub location: ::prost::alloc::string::String,
/// [Output only] The time the operation started, in
/// \[RFC3339\]() text format.
#[prost(string, tag = "10")]
pub start_time: ::prost::alloc::string::String,
/// [Output only] The time the operation completed, in
/// \[RFC3339\]() text format.
#[prost(string, tag = "11")]
pub end_time: ::prost::alloc::string::String,
/// Output only. [Output only] Progress information for an operation.
#[prost(message, optional, tag = "12")]
pub progress: ::core::option::Option,
/// Which conditions caused the current cluster state.
/// Deprecated. Use field error instead.
#[deprecated]
#[prost(message, repeated, tag = "13")]
pub cluster_conditions: ::prost::alloc::vec::Vec,
/// Which conditions caused the current node pool state.
/// Deprecated. Use field error instead.
#[deprecated]
#[prost(message, repeated, tag = "14")]
pub nodepool_conditions: ::prost::alloc::vec::Vec,
/// The error result of the operation in case of failure.
#[prost(message, optional, tag = "15")]
pub error: ::core::option::Option,
}
/// Nested message and enum types in `Operation`.
pub mod operation {
/// Current status of the operation.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Status {
/// Not set.
Unspecified = 0,
/// The operation has been created.
Pending = 1,
/// The operation is currently running.
Running = 2,
/// The operation is done, either cancelled or completed.
Done = 3,
/// The operation is aborting.
Aborting = 4,
}
/// Operation type.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Type {
/// Not set.
Unspecified = 0,
/// Cluster create.
CreateCluster = 1,
/// Cluster delete.
DeleteCluster = 2,
/// A master upgrade.
UpgradeMaster = 3,
/// A node upgrade.
UpgradeNodes = 4,
/// Cluster repair.
RepairCluster = 5,
/// Cluster update.
UpdateCluster = 6,
/// Node pool create.
CreateNodePool = 7,
/// Node pool delete.
DeleteNodePool = 8,
/// Set node pool management.
SetNodePoolManagement = 9,
/// Automatic node pool repair.
AutoRepairNodes = 10,
/// Automatic node upgrade.
AutoUpgradeNodes = 11,
/// Set labels.
SetLabels = 12,
/// Set/generate master auth materials
SetMasterAuth = 13,
/// Set node pool size.
SetNodePoolSize = 14,
/// Updates network policy for a cluster.
SetNetworkPolicy = 15,
/// Set the maintenance policy.
SetMaintenancePolicy = 16,
}
}
/// Information about operation (or operation stage) progress.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OperationProgress {
/// A non-parameterized string describing an operation stage.
/// Unset for single-stage operations.
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
/// Status of an operation stage.
/// Unset for single-stage operations.
#[prost(enumeration = "operation::Status", tag = "2")]
pub status: i32,
/// Progress metric bundle, for example:
/// metrics: [{name: "nodes done", int_value: 15},
/// {name: "nodes total", int_value: 32}]
/// or
/// metrics: [{name: "progress", double_value: 0.56},
/// {name: "progress scale", double_value: 1.0}]
#[prost(message, repeated, tag = "3")]
pub metrics: ::prost::alloc::vec::Vec,
/// Substages of an operation or a stage.
#[prost(message, repeated, tag = "4")]
pub stages: ::prost::alloc::vec::Vec,
}
/// Nested message and enum types in `OperationProgress`.
pub mod operation_progress {
/// Progress metric is (string, int|float|string) pair.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Metric {
/// Required. Metric name, e.g., "nodes total", "percent done".
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
/// Strictly one of the values is required.
#[prost(oneof = "metric::Value", tags = "2, 3, 4")]
pub value: ::core::option::Option,
}
/// Nested message and enum types in `Metric`.
pub mod metric {
/// Strictly one of the values is required.
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Value {
/// For metrics with integer value.
#[prost(int64, tag = "2")]
IntValue(i64),
/// For metrics with floating point value.
#[prost(double, tag = "3")]
DoubleValue(f64),
/// For metrics with custom values (ratios, visual progress, etc.).
#[prost(string, tag = "4")]
StringValue(::prost::alloc::string::String),
}
}
}
/// CreateClusterRequest creates a cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateClusterRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the parent field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the parent
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. A [cluster
/// resource]()
#[prost(message, optional, tag = "3")]
pub cluster: ::core::option::Option,
/// The parent (project and location) where the cluster will be created.
/// Specified in the format `projects/*/locations/*`.
#[prost(string, tag = "5")]
pub parent: ::prost::alloc::string::String,
}
/// GetClusterRequest gets the settings of a cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetClusterRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster to retrieve.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// The name (project, location, cluster) of the cluster to retrieve.
/// Specified in the format `projects/*/locations/*/clusters/*`.
#[prost(string, tag = "5")]
pub name: ::prost::alloc::string::String,
}
/// UpdateClusterRequest updates the settings of a cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateClusterRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster to upgrade.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// Required. A description of the update.
#[prost(message, optional, tag = "4")]
pub update: ::core::option::Option,
/// The name (project, location, cluster) of the cluster to update.
/// Specified in the format `projects/*/locations/*/clusters/*`.
#[prost(string, tag = "5")]
pub name: ::prost::alloc::string::String,
}
/// SetNodePoolVersionRequest updates the version of a node pool.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateNodePoolRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster to upgrade.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the node pool to upgrade.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "4")]
pub node_pool_id: ::prost::alloc::string::String,
/// Required. 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
#[prost(string, tag = "5")]
pub node_version: ::prost::alloc::string::String,
/// Required. The desired image type for the node pool.
#[prost(string, tag = "6")]
pub image_type: ::prost::alloc::string::String,
/// The desired list of Google Compute Engine
/// \[zones\]() in which the
/// node pool's nodes should be located. Changing the locations for a node pool
/// will result in nodes being either created or removed from the node pool,
/// depending on whether locations are being added or removed.
#[prost(string, repeated, tag = "13")]
pub locations: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// The desired workload metadata config for the node pool.
#[prost(message, optional, tag = "14")]
pub workload_metadata_config: ::core::option::Option,
/// The name (project, location, cluster, node pool) of the node pool to
/// update. Specified in the format
/// `projects/*/locations/*/clusters/*/nodePools/*`.
#[prost(string, tag = "8")]
pub name: ::prost::alloc::string::String,
/// Upgrade settings control disruption and speed of the upgrade.
#[prost(message, optional, tag = "15")]
pub upgrade_settings: ::core::option::Option,
/// The desired network tags to be applied to all nodes in the node pool.
/// If this field is not present, the tags will not be changed. Otherwise,
/// the existing network tags will be *replaced* with the provided tags.
#[prost(message, optional, tag = "16")]
pub tags: ::core::option::Option,
/// The desired node taints to be applied to all nodes in the node pool.
/// If this field is not present, the taints will not be changed. Otherwise,
/// the existing node taints will be *replaced* with the provided taints.
#[prost(message, optional, tag = "17")]
pub taints: ::core::option::Option,
/// The desired node labels to be applied to all nodes in the node pool.
/// If this field is not present, the labels will not be changed. Otherwise,
/// the existing node labels will be *replaced* with the provided labels.
#[prost(message, optional, tag = "18")]
pub labels: ::core::option::Option,
/// Parameters that can be configured on Linux nodes.
#[prost(message, optional, tag = "19")]
pub linux_node_config: ::core::option::Option,
/// Node kubelet configs.
#[prost(message, optional, tag = "20")]
pub kubelet_config: ::core::option::Option,
/// Enable or disable gvnic on the node pool.
#[prost(message, optional, tag = "29")]
pub gvnic: ::core::option::Option,
}
/// SetNodePoolAutoscalingRequest sets the autoscaler settings of a node pool.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetNodePoolAutoscalingRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster to upgrade.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the node pool to upgrade.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "4")]
pub node_pool_id: ::prost::alloc::string::String,
/// Required. Autoscaling configuration for the node pool.
#[prost(message, optional, tag = "5")]
pub autoscaling: ::core::option::Option,
/// The name (project, location, cluster, node pool) of the node pool to set
/// autoscaler settings. Specified in the format
/// `projects/*/locations/*/clusters/*/nodePools/*`.
#[prost(string, tag = "6")]
pub name: ::prost::alloc::string::String,
}
/// SetLoggingServiceRequest sets the logging service of a cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetLoggingServiceRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster to upgrade.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// Required. 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.
#[prost(string, tag = "4")]
pub logging_service: ::prost::alloc::string::String,
/// The name (project, location, cluster) of the cluster to set logging.
/// Specified in the format `projects/*/locations/*/clusters/*`.
#[prost(string, tag = "5")]
pub name: ::prost::alloc::string::String,
}
/// SetMonitoringServiceRequest sets the monitoring service of a cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetMonitoringServiceRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster to upgrade.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// Required. 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.
#[prost(string, tag = "4")]
pub monitoring_service: ::prost::alloc::string::String,
/// The name (project, location, cluster) of the cluster to set monitoring.
/// Specified in the format `projects/*/locations/*/clusters/*`.
#[prost(string, tag = "6")]
pub name: ::prost::alloc::string::String,
}
/// SetAddonsRequest sets the addons associated with the cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetAddonsConfigRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster to upgrade.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// Required. The desired configurations for the various addons available to
/// run in the cluster.
#[prost(message, optional, tag = "4")]
pub addons_config: ::core::option::Option,
/// The name (project, location, cluster) of the cluster to set addons.
/// Specified in the format `projects/*/locations/*/clusters/*`.
#[prost(string, tag = "6")]
pub name: ::prost::alloc::string::String,
}
/// SetLocationsRequest sets the locations of the cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetLocationsRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster to upgrade.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// Required. The desired list of Google Compute Engine
/// \[zones\]() 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.
#[prost(string, repeated, tag = "4")]
pub locations: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// The name (project, location, cluster) of the cluster to set locations.
/// Specified in the format `projects/*/locations/*/clusters/*`.
#[prost(string, tag = "6")]
pub name: ::prost::alloc::string::String,
}
/// UpdateMasterRequest updates the master of the cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateMasterRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster to upgrade.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// Required. The Kubernetes version to change the master to.
///
/// Users may specify either explicit versions offered by
/// Kubernetes Engine or version aliases, which have the following behavior:
///
/// - "latest": picks the highest valid Kubernetes version
/// - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
/// - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
/// - "1.X.Y-gke.N": picks an explicit Kubernetes version
/// - "-": picks the default Kubernetes version
#[prost(string, tag = "4")]
pub master_version: ::prost::alloc::string::String,
/// The name (project, location, cluster) of the cluster to update.
/// Specified in the format `projects/*/locations/*/clusters/*`.
#[prost(string, tag = "7")]
pub name: ::prost::alloc::string::String,
}
/// SetMasterAuthRequest updates the admin password of a cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetMasterAuthRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster to upgrade.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// Required. The exact form of action to be taken on the master auth.
#[prost(enumeration = "set_master_auth_request::Action", tag = "4")]
pub action: i32,
/// Required. A description of the update.
#[prost(message, optional, tag = "5")]
pub update: ::core::option::Option,
/// The name (project, location, cluster) of the cluster to set auth.
/// Specified in the format `projects/*/locations/*/clusters/*`.
#[prost(string, tag = "7")]
pub name: ::prost::alloc::string::String,
}
/// Nested message and enum types in `SetMasterAuthRequest`.
pub mod set_master_auth_request {
/// Operation type: what type update to perform.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Action {
/// Operation is unknown and will error out.
Unknown = 0,
/// Set the password to a user generated value.
SetPassword = 1,
/// Generate a new password and set it to that.
GeneratePassword = 2,
/// Set the username. If an empty username is provided, basic authentication
/// is disabled for the cluster. If a non-empty username is provided, basic
/// authentication is enabled, with either a provided password or a generated
/// one.
SetUsername = 3,
}
}
/// DeleteClusterRequest deletes a cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteClusterRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster to delete.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// The name (project, location, cluster) of the cluster to delete.
/// Specified in the format `projects/*/locations/*/clusters/*`.
#[prost(string, tag = "4")]
pub name: ::prost::alloc::string::String,
}
/// ListClustersRequest lists clusters.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListClustersRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the parent field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides, or "-" for all zones. This field has been deprecated and
/// replaced by the parent field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// The parent (project and location) where the clusters will be listed.
/// Specified in the format `projects/*/locations/*`.
/// Location "-" matches all zones and all regions.
#[prost(string, tag = "4")]
pub parent: ::prost::alloc::string::String,
}
/// ListClustersResponse is the result of ListClustersRequest.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListClustersResponse {
/// A list of clusters in the project in the specified zone, or
/// across all ones.
#[prost(message, repeated, tag = "1")]
pub clusters: ::prost::alloc::vec::Vec,
/// If any zones are listed here, the list of clusters returned
/// may be missing those zones.
#[prost(string, repeated, tag = "2")]
pub missing_zones: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
/// GetOperationRequest gets a single operation.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetOperationRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The server-assigned `name` of the operation.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub operation_id: ::prost::alloc::string::String,
/// The name (project, location, operation id) of the operation to get.
/// Specified in the format `projects/*/locations/*/operations/*`.
#[prost(string, tag = "5")]
pub name: ::prost::alloc::string::String,
}
/// ListOperationsRequest lists operations.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListOperationsRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the parent field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() to return
/// operations for, or `-` for all zones. This field has been deprecated and
/// replaced by the parent field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// The parent (project and location) where the operations will be listed.
/// Specified in the format `projects/*/locations/*`.
/// Location "-" matches all zones and all regions.
#[prost(string, tag = "4")]
pub parent: ::prost::alloc::string::String,
}
/// CancelOperationRequest cancels a single operation.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CancelOperationRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// operation resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The server-assigned `name` of the operation.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub operation_id: ::prost::alloc::string::String,
/// The name (project, location, operation id) of the operation to cancel.
/// Specified in the format `projects/*/locations/*/operations/*`.
#[prost(string, tag = "4")]
pub name: ::prost::alloc::string::String,
}
/// ListOperationsResponse is the result of ListOperationsRequest.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListOperationsResponse {
/// A list of operations in the project in the specified zone.
#[prost(message, repeated, tag = "1")]
pub operations: ::prost::alloc::vec::Vec,
/// If any zones are listed here, the list of operations returned
/// may be missing the operations from those zones.
#[prost(string, repeated, tag = "2")]
pub missing_zones: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
/// Gets the current Kubernetes Engine service configuration.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetServerConfigRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() to return
/// operations for. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// The name (project and location) of the server config to get,
/// specified in the format `projects/*/locations/*`.
#[prost(string, tag = "4")]
pub name: ::prost::alloc::string::String,
}
/// Kubernetes Engine service configuration.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ServerConfig {
/// Version of Kubernetes the service deploys by default.
#[prost(string, tag = "1")]
pub default_cluster_version: ::prost::alloc::string::String,
/// List of valid node upgrade target versions, in descending order.
#[prost(string, repeated, tag = "3")]
pub valid_node_versions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// Default image type.
#[prost(string, tag = "4")]
pub default_image_type: ::prost::alloc::string::String,
/// List of valid image types.
#[prost(string, repeated, tag = "5")]
pub valid_image_types: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// List of valid master versions, in descending order.
#[prost(string, repeated, tag = "6")]
pub valid_master_versions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// List of release channel configurations.
#[prost(message, repeated, tag = "9")]
pub channels: ::prost::alloc::vec::Vec,
/// Maps of Kubernetes version and supported Windows server versions.
#[prost(map = "string, message", tag = "10")]
pub windows_version_maps:
::std::collections::HashMap<::prost::alloc::string::String, WindowsVersions>,
}
/// Nested message and enum types in `ServerConfig`.
pub mod server_config {
/// ReleaseChannelConfig exposes configuration for a release channel.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReleaseChannelConfig {
/// The release channel this configuration applies to.
#[prost(enumeration = "super::release_channel::Channel", tag = "1")]
pub channel: i32,
/// The default version for newly created clusters on the channel.
#[prost(string, tag = "2")]
pub default_version: ::prost::alloc::string::String,
/// Deprecated.
/// This field has been deprecated and replaced with the valid_versions
/// field.
#[deprecated]
#[prost(message, repeated, tag = "3")]
pub available_versions: ::prost::alloc::vec::Vec,
/// List of valid versions for the channel.
#[prost(string, repeated, tag = "4")]
pub valid_versions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
/// Nested message and enum types in `ReleaseChannelConfig`.
pub mod release_channel_config {
/// Deprecated.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AvailableVersion {
/// Kubernetes version.
#[prost(string, tag = "1")]
pub version: ::prost::alloc::string::String,
/// Reason for availability.
#[prost(string, tag = "2")]
pub reason: ::prost::alloc::string::String,
}
}
}
/// Windows server versions.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WindowsVersions {
/// List of Windows server versions.
#[prost(message, repeated, tag = "1")]
pub windows_versions: ::prost::alloc::vec::Vec,
}
/// Nested message and enum types in `WindowsVersions`.
pub mod windows_versions {
/// Windows server version.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WindowsVersion {
/// Windows server image type
#[prost(string, tag = "1")]
pub image_type: ::prost::alloc::string::String,
/// Windows server build number
#[prost(string, tag = "2")]
pub os_version: ::prost::alloc::string::String,
/// Mainstream support end date
#[prost(message, optional, tag = "3")]
pub support_end_date: ::core::option::Option,
}
}
/// CreateNodePoolRequest creates a node pool for a cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateNodePoolRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the parent field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the parent
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster.
/// This field has been deprecated and replaced by the parent field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// Required. The node pool to create.
#[prost(message, optional, tag = "4")]
pub node_pool: ::core::option::Option,
/// The parent (project, location, cluster id) where the node pool will be
/// created. Specified in the format
/// `projects/*/locations/*/clusters/*`.
#[prost(string, tag = "6")]
pub parent: ::prost::alloc::string::String,
}
/// DeleteNodePoolRequest deletes a node pool for a cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteNodePoolRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the node pool to delete.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "4")]
pub node_pool_id: ::prost::alloc::string::String,
/// The name (project, location, cluster, node pool id) of the node pool to
/// delete. Specified in the format
/// `projects/*/locations/*/clusters/*/nodePools/*`.
#[prost(string, tag = "6")]
pub name: ::prost::alloc::string::String,
}
/// ListNodePoolsRequest lists the node pool(s) for a cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListNodePoolsRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the parent field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the parent
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster.
/// This field has been deprecated and replaced by the parent field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// The parent (project, location, cluster id) where the node pools will be
/// listed. Specified in the format `projects/*/locations/*/clusters/*`.
#[prost(string, tag = "5")]
pub parent: ::prost::alloc::string::String,
}
/// GetNodePoolRequest retrieves a node pool for a cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetNodePoolRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the node pool.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "4")]
pub node_pool_id: ::prost::alloc::string::String,
/// The name (project, location, cluster, node pool id) of the node pool to
/// get. Specified in the format
/// `projects/*/locations/*/clusters/*/nodePools/*`.
#[prost(string, tag = "6")]
pub name: ::prost::alloc::string::String,
}
/// 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.
/// These upgrade settings control the level of parallelism and the level of
/// disruption caused by an upgrade.
///
/// maxUnavailable controls the number of nodes that can be simultaneously
/// unavailable.
///
/// maxSurge controls the number of additional nodes that can be added to the
/// node pool temporarily for the time of the upgrade to increase the number of
/// available nodes.
///
/// (maxUnavailable + maxSurge) determines the level of parallelism (how many
/// nodes are being upgraded at the same time).
///
/// Note: upgrades inevitably introduce some disruption since workloads need to
/// be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
/// this holds true. (Disruption stays within the limits of
/// PodDisruptionBudget, if it is configured.)
///
/// Consider a hypothetical node pool with 5 nodes having maxSurge=2,
/// maxUnavailable=1. This means the upgrade process upgrades 3 nodes
/// simultaneously. It creates 2 additional (upgraded) nodes, then it brings
/// down 3 old (not yet upgraded) nodes at the same time. This ensures that
/// there are always at least 4 nodes available.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NodePool {
/// The name of the node pool.
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
/// The node configuration of the pool.
#[prost(message, optional, tag = "2")]
pub config: ::core::option::Option,
/// The initial node count for the pool. You must ensure that your
/// Compute Engine [resource quota]()
/// is sufficient for this number of instances. You must also have available
/// firewall and routes quota.
#[prost(int32, tag = "3")]
pub initial_node_count: i32,
/// The list of Google Compute Engine
/// \[zones\]() in which the
/// NodePool's nodes should be located.
///
/// If this value is unspecified during node pool creation, the
/// \[Cluster.Locations\]()
/// value will be used, instead.
///
/// Warning: changing node pool locations will result in nodes being added
/// and/or removed.
#[prost(string, repeated, tag = "13")]
pub locations: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// Networking configuration for this NodePool. If specified, it overrides the
/// cluster-level defaults.
#[prost(message, optional, tag = "14")]
pub network_config: ::core::option::Option,
/// [Output only] Server-defined URL for the resource.
#[prost(string, tag = "100")]
pub self_link: ::prost::alloc::string::String,
/// The version of the Kubernetes of this node.
#[prost(string, tag = "101")]
pub version: ::prost::alloc::string::String,
/// [Output only] The resource URLs of the [managed instance
/// groups]()
/// associated with this node pool.
#[prost(string, repeated, tag = "102")]
pub instance_group_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// [Output only] The status of the nodes in this pool instance.
#[prost(enumeration = "node_pool::Status", tag = "103")]
pub status: i32,
/// [Output only] Deprecated. Use conditions instead.
/// Additional information about the current status of this
/// node pool instance, if available.
#[deprecated]
#[prost(string, tag = "104")]
pub status_message: ::prost::alloc::string::String,
/// Autoscaler configuration for this NodePool. Autoscaler is enabled
/// only if a valid configuration is present.
#[prost(message, optional, tag = "4")]
pub autoscaling: ::core::option::Option,
/// NodeManagement configuration for this NodePool.
#[prost(message, optional, tag = "5")]
pub management: ::core::option::Option,
/// The constraint on the maximum number of pods that can be run
/// simultaneously on a node in the node pool.
#[prost(message, optional, tag = "6")]
pub max_pods_constraint: ::core::option::Option,
/// Which conditions caused the current node pool state.
#[prost(message, repeated, tag = "105")]
pub conditions: ::prost::alloc::vec::Vec,
/// [Output only] The pod CIDR block size per node in this node pool.
#[prost(int32, tag = "7")]
pub pod_ipv4_cidr_size: i32,
/// Upgrade settings control disruption and speed of the upgrade.
#[prost(message, optional, tag = "107")]
pub upgrade_settings: ::core::option::Option,
}
/// Nested message and enum types in `NodePool`.
pub mod node_pool {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpgradeSettings {
/// The maximum number of nodes that can be created beyond the current size
/// of the node pool during the upgrade process.
#[prost(int32, tag = "1")]
pub max_surge: i32,
/// The maximum number of nodes that can be simultaneously unavailable during
/// the upgrade process. A node is considered available if its status is
/// Ready.
#[prost(int32, tag = "2")]
pub max_unavailable: i32,
}
/// The current status of the node pool instance.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Status {
/// Not set.
Unspecified = 0,
/// The PROVISIONING state indicates the node pool is being created.
Provisioning = 1,
/// The RUNNING state indicates the node pool has been created
/// and is fully usable.
Running = 2,
/// 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.
RunningWithError = 3,
/// 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.
Reconciling = 4,
/// The STOPPING state indicates the node pool is being deleted.
Stopping = 5,
/// The ERROR state indicates the node pool may be unusable. Details
/// can be found in the `statusMessage` field.
Error = 6,
}
}
/// NodeManagement defines the set of node management services turned on for the
/// node pool.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NodeManagement {
/// Whether the nodes will be automatically upgraded.
#[prost(bool, tag = "1")]
pub auto_upgrade: bool,
/// Whether the nodes will be automatically repaired.
#[prost(bool, tag = "2")]
pub auto_repair: bool,
/// Specifies the Auto Upgrade knobs for the node pool.
#[prost(message, optional, tag = "10")]
pub upgrade_options: ::core::option::Option,
}
/// AutoUpgradeOptions defines the set of options for the user to control how
/// the Auto Upgrades will proceed.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AutoUpgradeOptions {
/// [Output only] This field is set when upgrades are about to commence
/// with the approximate start time for the upgrades, in
/// \[RFC3339\]() text format.
#[prost(string, tag = "1")]
pub auto_upgrade_start_time: ::prost::alloc::string::String,
/// [Output only] This field is set when upgrades are about to commence
/// with the description of the upgrade.
#[prost(string, tag = "2")]
pub description: ::prost::alloc::string::String,
}
/// MaintenancePolicy defines the maintenance policy to be used for the cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MaintenancePolicy {
/// Specifies the maintenance window in which maintenance may be performed.
#[prost(message, optional, tag = "1")]
pub window: ::core::option::Option,
/// 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.
#[prost(string, tag = "3")]
pub resource_version: ::prost::alloc::string::String,
}
/// MaintenanceWindow defines the maintenance window to be used for the cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MaintenanceWindow {
/// Exceptions to maintenance window. Non-emergency maintenance should not
/// occur in these windows.
#[prost(map = "string, message", tag = "4")]
pub maintenance_exclusions:
::std::collections::HashMap<::prost::alloc::string::String, TimeWindow>,
/// Unimplemented, reserved for future use.
/// HourlyMaintenanceWindow hourly_maintenance_window = 1;
#[prost(oneof = "maintenance_window::Policy", tags = "2, 3")]
pub policy: ::core::option::Option,
}
/// Nested message and enum types in `MaintenanceWindow`.
pub mod maintenance_window {
/// Unimplemented, reserved for future use.
/// HourlyMaintenanceWindow hourly_maintenance_window = 1;
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Policy {
/// DailyMaintenanceWindow specifies a daily maintenance operation window.
#[prost(message, tag = "2")]
DailyMaintenanceWindow(super::DailyMaintenanceWindow),
/// 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.
#[prost(message, tag = "3")]
RecurringWindow(super::RecurringTimeWindow),
}
}
/// Represents an arbitrary window of time.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TimeWindow {
/// The time that the window first starts.
#[prost(message, optional, tag = "1")]
pub start_time: ::core::option::Option<::prost_types::Timestamp>,
/// The time that the window ends. The end time should take place after the
/// start time.
#[prost(message, optional, tag = "2")]
pub end_time: ::core::option::Option<::prost_types::Timestamp>,
}
/// Represents an arbitrary window of time that recurs.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RecurringTimeWindow {
/// The window of the first recurrence.
#[prost(message, optional, tag = "1")]
pub window: ::core::option::Option,
/// An RRULE () for how
/// this window reccurs. They go on for the span of time between the start and
/// end time.
///
/// For example, to have something repeat every weekday, you'd use:
/// `FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR`
///
/// To repeat some window daily (equivalent to the DailyMaintenanceWindow):
/// `FREQ=DAILY`
///
/// For the first weekend of every month:
/// `FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU`
///
/// This specifies how frequently the window starts. Eg, if you wanted to have
/// a 9-5 UTC-4 window every weekday, you'd use something like:
/// ```
/// start time = 2019-01-01T09:00:00-0400
/// end time = 2019-01-01T17:00:00-0400
/// recurrence = FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR
/// ```
///
/// Windows can span multiple days. Eg, to make the window encompass every
/// weekend from midnight Saturday till the last minute of Sunday UTC:
/// ```
/// start time = 2019-01-05T00:00:00Z
/// end time = 2019-01-07T23:59:00Z
/// recurrence = FREQ=WEEKLY;BYDAY=SA
/// ```
///
/// Note the start and end time's specific dates are largely arbitrary except
/// to specify duration of the window and when it first starts.
/// The FREQ values of HOURLY, MINUTELY, and SECONDLY are not supported.
#[prost(string, tag = "2")]
pub recurrence: ::prost::alloc::string::String,
}
/// Time window specified for daily maintenance operations.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DailyMaintenanceWindow {
/// 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.
#[prost(string, tag = "2")]
pub start_time: ::prost::alloc::string::String,
/// [Output only] Duration of the time window, automatically chosen to be
/// smallest possible in the given scenario.
#[prost(string, tag = "3")]
pub duration: ::prost::alloc::string::String,
}
/// SetNodePoolManagementRequest sets the node management properties of a node
/// pool.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetNodePoolManagementRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster to update.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the node pool to update.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "4")]
pub node_pool_id: ::prost::alloc::string::String,
/// Required. NodeManagement configuration for the node pool.
#[prost(message, optional, tag = "5")]
pub management: ::core::option::Option,
/// The name (project, location, cluster, node pool id) of the node pool to set
/// management properties. Specified in the format
/// `projects/*/locations/*/clusters/*/nodePools/*`.
#[prost(string, tag = "7")]
pub name: ::prost::alloc::string::String,
}
/// SetNodePoolSizeRequest sets the size of a node pool.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetNodePoolSizeRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster to update.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the node pool to update.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "4")]
pub node_pool_id: ::prost::alloc::string::String,
/// Required. The desired node count for the pool.
#[prost(int32, tag = "5")]
pub node_count: i32,
/// The name (project, location, cluster, node pool id) of the node pool to set
/// size.
/// Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.
#[prost(string, tag = "7")]
pub name: ::prost::alloc::string::String,
}
/// RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed
/// NodePool upgrade. This will be an no-op if the last upgrade successfully
/// completed.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RollbackNodePoolUpgradeRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster to rollback.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the node pool to rollback.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "4")]
pub node_pool_id: ::prost::alloc::string::String,
/// The name (project, location, cluster, node pool id) of the node poll to
/// rollback upgrade.
/// Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.
#[prost(string, tag = "6")]
pub name: ::prost::alloc::string::String,
}
/// ListNodePoolsResponse is the result of ListNodePoolsRequest.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListNodePoolsResponse {
/// A list of node pools for a cluster.
#[prost(message, repeated, tag = "1")]
pub node_pools: ::prost::alloc::vec::Vec,
}
/// 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.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClusterAutoscaling {
/// Enables automatic node pool creation and deletion.
#[prost(bool, tag = "1")]
pub enable_node_autoprovisioning: bool,
/// Contains global constraints regarding minimum and maximum
/// amount of resources in the cluster.
#[prost(message, repeated, tag = "2")]
pub resource_limits: ::prost::alloc::vec::Vec,
/// Defines autoscaling behaviour.
#[prost(enumeration = "cluster_autoscaling::AutoscalingProfile", tag = "3")]
pub autoscaling_profile: i32,
/// AutoprovisioningNodePoolDefaults contains defaults for a node pool
/// created by NAP.
#[prost(message, optional, tag = "4")]
pub autoprovisioning_node_pool_defaults:
::core::option::Option,
/// The list of Google Compute Engine
/// \[zones\]() in which the
/// NodePool's nodes can be created by NAP.
#[prost(string, repeated, tag = "5")]
pub autoprovisioning_locations: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
/// Nested message and enum types in `ClusterAutoscaling`.
pub mod cluster_autoscaling {
/// Defines possible options for autoscaling_profile field.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum AutoscalingProfile {
/// No change to autoscaling configuration.
ProfileUnspecified = 0,
/// Prioritize optimizing utilization of resources.
OptimizeUtilization = 1,
/// Use default (balanced) autoscaling configuration.
Balanced = 2,
}
}
/// AutoprovisioningNodePoolDefaults contains defaults for a node pool created
/// by NAP.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AutoprovisioningNodePoolDefaults {
/// 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:
///
/// * ` is required for mounting
/// persistent storage on your nodes.
/// * ` is required for
/// communicating with **gcr.io**
/// (the [Google 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.
#[prost(string, repeated, tag = "1")]
pub oauth_scopes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// 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.
#[prost(string, tag = "2")]
pub service_account: ::prost::alloc::string::String,
/// Upgrade settings control disruption and speed of the upgrade.
#[prost(message, optional, tag = "3")]
pub upgrade_settings: ::core::option::Option,
/// NodeManagement configuration for this NodePool.
#[prost(message, optional, tag = "4")]
pub management: ::core::option::Option,
/// 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]()
/// To unset the min cpu platform field pass "automatic"
/// as field value.
#[prost(string, tag = "5")]
pub min_cpu_platform: ::prost::alloc::string::String,
/// 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.
#[prost(int32, tag = "6")]
pub disk_size_gb: i32,
/// Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or
/// 'pd-balanced')
///
/// If unspecified, the default disk type is 'pd-standard'
#[prost(string, tag = "7")]
pub disk_type: ::prost::alloc::string::String,
/// Shielded Instance options.
#[prost(message, optional, tag = "8")]
pub shielded_instance_config: ::core::option::Option,
///
/// 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]/cryptoKeys/[KEY_NAME\].
/// For more information about protecting resources with Cloud KMS Keys please
/// see:
///
#[prost(string, tag = "9")]
pub boot_disk_kms_key: ::prost::alloc::string::String,
/// The image type to use for NAP created node.
#[prost(string, tag = "10")]
pub image_type: ::prost::alloc::string::String,
}
/// Contains information about amount of some resource in the cluster.
/// For memory, value should be in GB.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResourceLimit {
/// Resource name "cpu", "memory" or gpu-specific string.
#[prost(string, tag = "1")]
pub resource_type: ::prost::alloc::string::String,
/// Minimum amount of the resource in the cluster.
#[prost(int64, tag = "2")]
pub minimum: i64,
/// Maximum amount of the resource in the cluster.
#[prost(int64, tag = "3")]
pub maximum: i64,
}
/// NodePoolAutoscaling contains information required by cluster autoscaler to
/// adjust the size of the node pool to the current cluster usage.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NodePoolAutoscaling {
/// Is autoscaling enabled for this node pool.
#[prost(bool, tag = "1")]
pub enabled: bool,
/// Minimum number of nodes in the NodePool. Must be >= 1 and <=
/// max_node_count.
#[prost(int32, tag = "2")]
pub min_node_count: i32,
/// Maximum number of nodes in the NodePool. Must be >= min_node_count. There
/// has to be enough quota to scale up the cluster.
#[prost(int32, tag = "3")]
pub max_node_count: i32,
/// Can this node pool be deleted automatically.
#[prost(bool, tag = "4")]
pub autoprovisioned: bool,
}
/// 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
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetLabelsRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// Required. The labels to set for that cluster.
#[prost(map = "string, string", tag = "4")]
pub resource_labels:
::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
/// Required. 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 `get()` request to the
/// resource to get the latest fingerprint.
#[prost(string, tag = "5")]
pub label_fingerprint: ::prost::alloc::string::String,
/// The name (project, location, cluster id) of the cluster to set labels.
/// Specified in the format `projects/*/locations/*/clusters/*`.
#[prost(string, tag = "7")]
pub name: ::prost::alloc::string::String,
}
/// SetLegacyAbacRequest enables or disables the ABAC authorization mechanism for
/// a cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetLegacyAbacRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster to update.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// Required. Whether ABAC authorization will be enabled in the cluster.
#[prost(bool, tag = "4")]
pub enabled: bool,
/// The name (project, location, cluster id) of the cluster to set legacy abac.
/// Specified in the format `projects/*/locations/*/clusters/*`.
#[prost(string, tag = "6")]
pub name: ::prost::alloc::string::String,
}
/// StartIPRotationRequest creates a new IP for the cluster and then performs
/// a node upgrade on each node pool to point to the new IP.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StartIpRotationRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// The name (project, location, cluster id) of the cluster to start IP
/// rotation. Specified in the format `projects/*/locations/*/clusters/*`.
#[prost(string, tag = "6")]
pub name: ::prost::alloc::string::String,
/// Whether to rotate credentials during IP rotation.
#[prost(bool, tag = "7")]
pub rotate_credentials: bool,
}
/// CompleteIPRotationRequest moves the cluster master back into single-IP mode.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CompleteIpRotationRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// The name (project, location, cluster id) of the cluster to complete IP
/// rotation. Specified in the format `projects/*/locations/*/clusters/*`.
#[prost(string, tag = "7")]
pub name: ::prost::alloc::string::String,
}
/// AcceleratorConfig represents a Hardware Accelerator request.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AcceleratorConfig {
/// The number of the accelerator cards exposed to an instance.
#[prost(int64, tag = "1")]
pub accelerator_count: i64,
/// The accelerator type resource name. List of supported accelerators
/// \[here\]()
#[prost(string, tag = "2")]
pub accelerator_type: ::prost::alloc::string::String,
/// Size of partitions to create on the GPU. Valid values are described in the
/// NVIDIA [mig user
/// guide]().
#[prost(string, tag = "3")]
pub gpu_partition_size: ::prost::alloc::string::String,
}
/// WorkloadMetadataConfig defines the metadata configuration to expose to
/// workloads on the node pool.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WorkloadMetadataConfig {
/// NodeMetadata is the configuration for how to expose metadata to the
/// workloads running on the node.
#[deprecated]
#[prost(enumeration = "workload_metadata_config::NodeMetadata", tag = "1")]
pub node_metadata: i32,
/// Mode is the configuration for how to expose metadata to workloads running
/// on the node pool.
#[prost(enumeration = "workload_metadata_config::Mode", tag = "2")]
pub mode: i32,
}
/// Nested message and enum types in `WorkloadMetadataConfig`.
pub mod workload_metadata_config {
/// NodeMetadata is the configuration for if and how to expose the node
/// metadata to the workload running on the node.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum NodeMetadata {
/// Not set.
Unspecified = 0,
/// Prevent workloads not in hostNetwork from accessing certain VM metadata,
/// specifically kube-env, which contains Kubelet credentials, and the
/// instance identity token.
///
/// Metadata concealment is a temporary security solution available while the
/// bootstrapping process for cluster nodes is being redesigned with
/// significant security improvements. This feature is scheduled to be
/// deprecated in the future and later removed.
Secure = 1,
/// Expose all VM metadata to pods.
Expose = 2,
/// Run the GKE Metadata Server on this node. The GKE Metadata Server exposes
/// a metadata API to workloads that is compatible with the V1 Compute
/// Metadata APIs exposed by the Compute Engine and App Engine Metadata
/// Servers. This feature can only be enabled if Workload Identity is enabled
/// at the cluster level.
GkeMetadataServer = 3,
}
/// Mode is the configuration for how to expose metadata to workloads running
/// on the node.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Mode {
/// Not set.
Unspecified = 0,
/// Expose all Compute Engine metadata to pods.
GceMetadata = 1,
/// Run the GKE Metadata Server on this node. The GKE Metadata Server exposes
/// a metadata API to workloads that is compatible with the V1 Compute
/// Metadata APIs exposed by the Compute Engine and App Engine Metadata
/// Servers. This feature can only be enabled if Workload Identity is enabled
/// at the cluster level.
GkeMetadata = 2,
}
}
/// SetNetworkPolicyRequest enables/disables network policy for a cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetNetworkPolicyRequest {
/// Required. Deprecated. The Google Developers Console [project ID or project
/// number]().
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the Google Compute Engine
/// \[zone\]() in which the
/// cluster resides. This field has been deprecated and replaced by the name
/// field.
#[deprecated]
#[prost(string, tag = "2")]
pub zone: ::prost::alloc::string::String,
/// Required. Deprecated. The name of the cluster.
/// This field has been deprecated and replaced by the name field.
#[deprecated]
#[prost(string, tag = "3")]
pub cluster_id: ::prost::alloc::string::String,
/// Required. Configuration options for the NetworkPolicy feature.
#[prost(message, optional, tag = "4")]
pub network_policy: ::core::option::Option,
/// The name (project, location, cluster id) of the cluster to set networking
/// policy. Specified in the format `projects/*/locations/*/clusters/*`.
#[prost(string, tag = "6")]
pub name: ::prost::alloc::string::String,
}
/// SetMaintenancePolicyRequest sets the maintenance policy for a cluster.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetMaintenancePolicyRequest {
/// Required. The Google Developers Console [project ID or project
/// number]().
#[prost(string, tag = "1")]
pub project_id: ::prost::alloc::string::String,
/// Required. The name of the Google Compute Engine
/// \[zone\](