All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.aliyun.sdk.service.cs20151215.models.ModifyClusterNodePoolRequest Maven / Gradle / Ivy

// This file is auto-generated, don't edit it. Thanks.
package com.aliyun.sdk.service.cs20151215.models;

import darabonba.core.RequestModel;
import darabonba.core.TeaModel;
import com.aliyun.sdk.gateway.pop.models.*;

/**
 * {@link ModifyClusterNodePoolRequest} extends {@link RequestModel}
 *
 * 

ModifyClusterNodePoolRequest

*/ public class ModifyClusterNodePoolRequest extends Request { @com.aliyun.core.annotation.Path @com.aliyun.core.annotation.NameInMap("ClusterId") @com.aliyun.core.annotation.Validation(required = true) private String clusterId; @com.aliyun.core.annotation.Path @com.aliyun.core.annotation.NameInMap("NodepoolId") @com.aliyun.core.annotation.Validation(required = true) private String nodepoolId; @com.aliyun.core.annotation.Body @com.aliyun.core.annotation.NameInMap("auto_scaling") private AutoScaling autoScaling; @com.aliyun.core.annotation.Body @com.aliyun.core.annotation.NameInMap("concurrency") private Boolean concurrency; @com.aliyun.core.annotation.Body @com.aliyun.core.annotation.NameInMap("kubernetes_config") private KubernetesConfig kubernetesConfig; @com.aliyun.core.annotation.Body @com.aliyun.core.annotation.NameInMap("management") private Management management; @com.aliyun.core.annotation.Body @com.aliyun.core.annotation.NameInMap("nodepool_info") private NodepoolInfo nodepoolInfo; @com.aliyun.core.annotation.Body @com.aliyun.core.annotation.NameInMap("scaling_group") private ScalingGroup scalingGroup; @com.aliyun.core.annotation.Body @com.aliyun.core.annotation.NameInMap("tee_config") private TeeConfig teeConfig; @com.aliyun.core.annotation.Body @com.aliyun.core.annotation.NameInMap("update_nodes") private Boolean updateNodes; private ModifyClusterNodePoolRequest(Builder builder) { super(builder); this.clusterId = builder.clusterId; this.nodepoolId = builder.nodepoolId; this.autoScaling = builder.autoScaling; this.concurrency = builder.concurrency; this.kubernetesConfig = builder.kubernetesConfig; this.management = builder.management; this.nodepoolInfo = builder.nodepoolInfo; this.scalingGroup = builder.scalingGroup; this.teeConfig = builder.teeConfig; this.updateNodes = builder.updateNodes; } public static Builder builder() { return new Builder(); } public static ModifyClusterNodePoolRequest create() { return builder().build(); } @Override public Builder toBuilder() { return new Builder(this); } /** * @return clusterId */ public String getClusterId() { return this.clusterId; } /** * @return nodepoolId */ public String getNodepoolId() { return this.nodepoolId; } /** * @return autoScaling */ public AutoScaling getAutoScaling() { return this.autoScaling; } /** * @return concurrency */ public Boolean getConcurrency() { return this.concurrency; } /** * @return kubernetesConfig */ public KubernetesConfig getKubernetesConfig() { return this.kubernetesConfig; } /** * @return management */ public Management getManagement() { return this.management; } /** * @return nodepoolInfo */ public NodepoolInfo getNodepoolInfo() { return this.nodepoolInfo; } /** * @return scalingGroup */ public ScalingGroup getScalingGroup() { return this.scalingGroup; } /** * @return teeConfig */ public TeeConfig getTeeConfig() { return this.teeConfig; } /** * @return updateNodes */ public Boolean getUpdateNodes() { return this.updateNodes; } public static final class Builder extends Request.Builder { private String clusterId; private String nodepoolId; private AutoScaling autoScaling; private Boolean concurrency; private KubernetesConfig kubernetesConfig; private Management management; private NodepoolInfo nodepoolInfo; private ScalingGroup scalingGroup; private TeeConfig teeConfig; private Boolean updateNodes; private Builder() { super(); } private Builder(ModifyClusterNodePoolRequest request) { super(request); this.clusterId = request.clusterId; this.nodepoolId = request.nodepoolId; this.autoScaling = request.autoScaling; this.concurrency = request.concurrency; this.kubernetesConfig = request.kubernetesConfig; this.management = request.management; this.nodepoolInfo = request.nodepoolInfo; this.scalingGroup = request.scalingGroup; this.teeConfig = request.teeConfig; this.updateNodes = request.updateNodes; } /** * The cluster ID. */ public Builder clusterId(String clusterId) { this.putPathParameter("ClusterId", clusterId); this.clusterId = clusterId; return this; } /** * The node pool ID. */ public Builder nodepoolId(String nodepoolId) { this.putPathParameter("NodepoolId", nodepoolId); this.nodepoolId = nodepoolId; return this; } /** * The configuration of auto scaling. */ public Builder autoScaling(AutoScaling autoScaling) { this.putBodyParameter("auto_scaling", autoScaling); this.autoScaling = autoScaling; return this; } /** * Specifies whether concurrency is supported. */ public Builder concurrency(Boolean concurrency) { this.putBodyParameter("concurrency", concurrency); this.concurrency = concurrency; return this; } /** * The configuration of the cluster where the node pool is deployed. */ public Builder kubernetesConfig(KubernetesConfig kubernetesConfig) { this.putBodyParameter("kubernetes_config", kubernetesConfig); this.kubernetesConfig = kubernetesConfig; return this; } /** * The configuration of the managed node pool feature. */ public Builder management(Management management) { this.putBodyParameter("management", management); this.management = management; return this; } /** * The configurations of the node pool. */ public Builder nodepoolInfo(NodepoolInfo nodepoolInfo) { this.putBodyParameter("nodepool_info", nodepoolInfo); this.nodepoolInfo = nodepoolInfo; return this; } /** * The configurations of the scaling group. */ public Builder scalingGroup(ScalingGroup scalingGroup) { this.putBodyParameter("scaling_group", scalingGroup); this.scalingGroup = scalingGroup; return this; } /** * The configurations about confidential computing for the cluster. */ public Builder teeConfig(TeeConfig teeConfig) { this.putBodyParameter("tee_config", teeConfig); this.teeConfig = teeConfig; return this; } /** * Specifies whether to update node information, such as labels and taints. */ public Builder updateNodes(Boolean updateNodes) { this.putBodyParameter("update_nodes", updateNodes); this.updateNodes = updateNodes; return this; } @Override public ModifyClusterNodePoolRequest build() { return new ModifyClusterNodePoolRequest(this); } } public static class AutoScaling extends TeaModel { @com.aliyun.core.annotation.NameInMap("eip_bandwidth") @Deprecated private Long eipBandwidth; @com.aliyun.core.annotation.NameInMap("eip_internet_charge_type") @Deprecated private String eipInternetChargeType; @com.aliyun.core.annotation.NameInMap("enable") private Boolean enable; @com.aliyun.core.annotation.NameInMap("is_bond_eip") @Deprecated private Boolean isBondEip; @com.aliyun.core.annotation.NameInMap("max_instances") private Long maxInstances; @com.aliyun.core.annotation.NameInMap("min_instances") private Long minInstances; @com.aliyun.core.annotation.NameInMap("type") @Deprecated private String type; private AutoScaling(Builder builder) { this.eipBandwidth = builder.eipBandwidth; this.eipInternetChargeType = builder.eipInternetChargeType; this.enable = builder.enable; this.isBondEip = builder.isBondEip; this.maxInstances = builder.maxInstances; this.minInstances = builder.minInstances; this.type = builder.type; } public static Builder builder() { return new Builder(); } public static AutoScaling create() { return builder().build(); } /** * @return eipBandwidth */ public Long getEipBandwidth() { return this.eipBandwidth; } /** * @return eipInternetChargeType */ public String getEipInternetChargeType() { return this.eipInternetChargeType; } /** * @return enable */ public Boolean getEnable() { return this.enable; } /** * @return isBondEip */ public Boolean getIsBondEip() { return this.isBondEip; } /** * @return maxInstances */ public Long getMaxInstances() { return this.maxInstances; } /** * @return minInstances */ public Long getMinInstances() { return this.minInstances; } /** * @return type */ public String getType() { return this.type; } public static final class Builder { private Long eipBandwidth; private String eipInternetChargeType; private Boolean enable; private Boolean isBondEip; private Long maxInstances; private Long minInstances; private String type; /** * The maximum bandwidth of the EIP. */ public Builder eipBandwidth(Long eipBandwidth) { this.eipBandwidth = eipBandwidth; return this; } /** * The metering method of the EIP. Valid values: *

* * * `PayByBandwidth`: pay-by-bandwidth. * * `PayByTraffic`: pay-by-data-transfer. * * Default value: `PayByBandwidth`. */ public Builder eipInternetChargeType(String eipInternetChargeType) { this.eipInternetChargeType = eipInternetChargeType; return this; } /** * Specifies whether to enable auto scaling. Valid values: *

* * * `true`: enables auto scaling for the node pool. * * `false`: disables auto scaling for the node pool. If you set this parameter to false, other parameters in the `auto_scaling` section do not take effect. * * Default value: `false`. */ public Builder enable(Boolean enable) { this.enable = enable; return this; } /** * Specifies whether to associate an elastic IP address (EIP) with the node pool. Valid values: *

* * * `true`: associates an EIP with the node pool. * * `false`: does not associate an EIP with the node pool. * * Default value: `false`. */ public Builder isBondEip(Boolean isBondEip) { this.isBondEip = isBondEip; return this; } /** * The maximum number of Elastic Compute Service (ECS) instances that can be created in the node pool. */ public Builder maxInstances(Long maxInstances) { this.maxInstances = maxInstances; return this; } /** * The minimum number of ECS instances that must be kept in the node pool. */ public Builder minInstances(Long minInstances) { this.minInstances = minInstances; return this; } /** * The instance types that can be used for auto scaling of the node pool. Valid values: *

* * * `cpu`: regular instance. * * `gpu`: GPU-accelerated instance. * * `gpushare`: shared GPU-accelerated instance. * * `spot`: preemptible instance. * * Default value: `cpu`. */ public Builder type(String type) { this.type = type; return this; } public AutoScaling build() { return new AutoScaling(this); } } } public static class KubernetesConfig extends TeaModel { @com.aliyun.core.annotation.NameInMap("cms_enabled") private Boolean cmsEnabled; @com.aliyun.core.annotation.NameInMap("cpu_policy") private String cpuPolicy; @com.aliyun.core.annotation.NameInMap("labels") private java.util.List < Tag > labels; @com.aliyun.core.annotation.NameInMap("runtime") private String runtime; @com.aliyun.core.annotation.NameInMap("runtime_version") private String runtimeVersion; @com.aliyun.core.annotation.NameInMap("taints") private java.util.List < Taint > taints; @com.aliyun.core.annotation.NameInMap("unschedulable") private Boolean unschedulable; @com.aliyun.core.annotation.NameInMap("user_data") private String userData; private KubernetesConfig(Builder builder) { this.cmsEnabled = builder.cmsEnabled; this.cpuPolicy = builder.cpuPolicy; this.labels = builder.labels; this.runtime = builder.runtime; this.runtimeVersion = builder.runtimeVersion; this.taints = builder.taints; this.unschedulable = builder.unschedulable; this.userData = builder.userData; } public static Builder builder() { return new Builder(); } public static KubernetesConfig create() { return builder().build(); } /** * @return cmsEnabled */ public Boolean getCmsEnabled() { return this.cmsEnabled; } /** * @return cpuPolicy */ public String getCpuPolicy() { return this.cpuPolicy; } /** * @return labels */ public java.util.List < Tag > getLabels() { return this.labels; } /** * @return runtime */ public String getRuntime() { return this.runtime; } /** * @return runtimeVersion */ public String getRuntimeVersion() { return this.runtimeVersion; } /** * @return taints */ public java.util.List < Taint > getTaints() { return this.taints; } /** * @return unschedulable */ public Boolean getUnschedulable() { return this.unschedulable; } /** * @return userData */ public String getUserData() { return this.userData; } public static final class Builder { private Boolean cmsEnabled; private String cpuPolicy; private java.util.List < Tag > labels; private String runtime; private String runtimeVersion; private java.util.List < Taint > taints; private Boolean unschedulable; private String userData; /** * Specifies whether to install the CloudMonitor agent on ECS nodes. After the CloudMonitor agent is installed on ECS nodes, you can view monitoring information about the instances in the CloudMonitor console. We recommend that you install the CloudMonitor agent. Valid values: *

* * * `true`: installs the CloudMonitor agent on ECS nodes. * * `false`: does not install the CloudMonitor agent on ECS nodes. * * Default value: `false`. */ public Builder cmsEnabled(Boolean cmsEnabled) { this.cmsEnabled = cmsEnabled; return this; } /** * The CPU management policy of the nodes in the node pool. The following policies are supported if the Kubernetes version of the cluster is 1.12.6 or later: *

* * * `static`: allows pods with specific resource characteristics on the node to be granted enhanced CPU affinity and exclusivity. * * `none`: specifies that the default CPU affinity is used. * * Default value: `none`. */ public Builder cpuPolicy(String cpuPolicy) { this.cpuPolicy = cpuPolicy; return this; } /** * The labels of the nodes in the node pool. You can add labels to the nodes in the cluster. You must add labels based on the following rules: *

* * * A tag is a case-sensitive key-value pair. You can add up to 20 tags. * * The key must be unique and cannot exceed 64 characters in length. The value can be empty and cannot exceed 128 characters in length. Keys and values cannot start with `aliyun`, `acs:`, `https://`, or `http://`. For more information, see [Labels and Selectors](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set). */ public Builder labels(java.util.List < Tag > labels) { this.labels = labels; return this; } /** * The name of the container runtime. */ public Builder runtime(String runtime) { this.runtime = runtime; return this; } /** * The version of the container runtime. */ public Builder runtimeVersion(String runtimeVersion) { this.runtimeVersion = runtimeVersion; return this; } /** * The configuration of a node taint. */ public Builder taints(java.util.List < Taint > taints) { this.taints = taints; return this; } /** * Specifies whether the nodes are unschedulable after a scale-out activity is performed. */ public Builder unschedulable(Boolean unschedulable) { this.unschedulable = unschedulable; return this; } /** * The user-defined data of the node pool. For more information, see [Prepare user data](~~49121~~). */ public Builder userData(String userData) { this.userData = userData; return this; } public KubernetesConfig build() { return new KubernetesConfig(this); } } } public static class AutoRepairPolicy extends TeaModel { @com.aliyun.core.annotation.NameInMap("restart_node") private Boolean restartNode; private AutoRepairPolicy(Builder builder) { this.restartNode = builder.restartNode; } public static Builder builder() { return new Builder(); } public static AutoRepairPolicy create() { return builder().build(); } /** * @return restartNode */ public Boolean getRestartNode() { return this.restartNode; } public static final class Builder { private Boolean restartNode; /** * Specifies whether ACK is allowed to automatically restart nodes after repairing the nodes. Valid values: *

* * * `true`: yes. * * `false`: no. */ public Builder restartNode(Boolean restartNode) { this.restartNode = restartNode; return this; } public AutoRepairPolicy build() { return new AutoRepairPolicy(this); } } } public static class AutoUpgradePolicy extends TeaModel { @com.aliyun.core.annotation.NameInMap("auto_upgrade_kubelet") private Boolean autoUpgradeKubelet; @com.aliyun.core.annotation.NameInMap("auto_upgrade_os") private Boolean autoUpgradeOs; @com.aliyun.core.annotation.NameInMap("auto_upgrade_runtime") private Boolean autoUpgradeRuntime; private AutoUpgradePolicy(Builder builder) { this.autoUpgradeKubelet = builder.autoUpgradeKubelet; this.autoUpgradeOs = builder.autoUpgradeOs; this.autoUpgradeRuntime = builder.autoUpgradeRuntime; } public static Builder builder() { return new Builder(); } public static AutoUpgradePolicy create() { return builder().build(); } /** * @return autoUpgradeKubelet */ public Boolean getAutoUpgradeKubelet() { return this.autoUpgradeKubelet; } /** * @return autoUpgradeOs */ public Boolean getAutoUpgradeOs() { return this.autoUpgradeOs; } /** * @return autoUpgradeRuntime */ public Boolean getAutoUpgradeRuntime() { return this.autoUpgradeRuntime; } public static final class Builder { private Boolean autoUpgradeKubelet; private Boolean autoUpgradeOs; private Boolean autoUpgradeRuntime; /** * Specifies whether ACK is allowed to automatically update the kubelet. Valid values: *

* * * `true`: yes. * * `false`: no. */ public Builder autoUpgradeKubelet(Boolean autoUpgradeKubelet) { this.autoUpgradeKubelet = autoUpgradeKubelet; return this; } /** * Specifies whether ACK is allowed to automatically update the operating system. This parameter takes effect only when you specify `auto_upgrade=true`. Valid values: *

* * * `true`: yes. * * `false`: no. * * Default value: `false`. */ public Builder autoUpgradeOs(Boolean autoUpgradeOs) { this.autoUpgradeOs = autoUpgradeOs; return this; } /** * Specifies whether ACK is allowed to automatically update the runtime. This parameter takes effect only when you specify `auto_upgrade=true`. Valid values: *

* * * `true`: yes. * * `false`: no. * * Default value: `false`. */ public Builder autoUpgradeRuntime(Boolean autoUpgradeRuntime) { this.autoUpgradeRuntime = autoUpgradeRuntime; return this; } public AutoUpgradePolicy build() { return new AutoUpgradePolicy(this); } } } public static class AutoVulFixPolicy extends TeaModel { @com.aliyun.core.annotation.NameInMap("restart_node") private Boolean restartNode; @com.aliyun.core.annotation.NameInMap("vul_level") private String vulLevel; private AutoVulFixPolicy(Builder builder) { this.restartNode = builder.restartNode; this.vulLevel = builder.vulLevel; } public static Builder builder() { return new Builder(); } public static AutoVulFixPolicy create() { return builder().build(); } /** * @return restartNode */ public Boolean getRestartNode() { return this.restartNode; } /** * @return vulLevel */ public String getVulLevel() { return this.vulLevel; } public static final class Builder { private Boolean restartNode; private String vulLevel; /** * Specifies whether ACK is allowed to automatically restart nodes after patching CVE vulnerabilities. Valid values: *

* * * `true`: yes. * * `false`: no. */ public Builder restartNode(Boolean restartNode) { this.restartNode = restartNode; return this; } /** * The severity levels of vulnerabilities that ACK is allowed to automatically patch. Multiple severity levels are separated by commas (,). */ public Builder vulLevel(String vulLevel) { this.vulLevel = vulLevel; return this; } public AutoVulFixPolicy build() { return new AutoVulFixPolicy(this); } } } public static class UpgradeConfig extends TeaModel { @com.aliyun.core.annotation.NameInMap("auto_upgrade") @Deprecated private Boolean autoUpgrade; @com.aliyun.core.annotation.NameInMap("max_unavailable") private Long maxUnavailable; @com.aliyun.core.annotation.NameInMap("surge") private Long surge; @com.aliyun.core.annotation.NameInMap("surge_percentage") private Long surgePercentage; private UpgradeConfig(Builder builder) { this.autoUpgrade = builder.autoUpgrade; this.maxUnavailable = builder.maxUnavailable; this.surge = builder.surge; this.surgePercentage = builder.surgePercentage; } public static Builder builder() { return new Builder(); } public static UpgradeConfig create() { return builder().build(); } /** * @return autoUpgrade */ public Boolean getAutoUpgrade() { return this.autoUpgrade; } /** * @return maxUnavailable */ public Long getMaxUnavailable() { return this.maxUnavailable; } /** * @return surge */ public Long getSurge() { return this.surge; } /** * @return surgePercentage */ public Long getSurgePercentage() { return this.surgePercentage; } public static final class Builder { private Boolean autoUpgrade; private Long maxUnavailable; private Long surge; private Long surgePercentage; /** * Specifies whether to enable auto update. *

* * * true: enables auto update. * * false: disables auto update. * * Default value: `true`. */ public Builder autoUpgrade(Boolean autoUpgrade) { this.autoUpgrade = autoUpgrade; return this; } /** * The maximum number of nodes that can be in the Unavailable state. *

* * Valid values: 1 to 1000. * * Default value: 1. */ public Builder maxUnavailable(Long maxUnavailable) { this.maxUnavailable = maxUnavailable; return this; } /** * The number of nodes that are temporarily added to the node pool during an auto update. Additional nodes are used to host the workloads of nodes that are being updated. *

* * > We recommend that you set the number of additional nodes to a value that does not exceed the current number of existing nodes. */ public Builder surge(Long surge) { this.surge = surge; return this; } /** * The percentage of additional nodes to the nodes in the node pool. You must set this parameter or `surge`. */ public Builder surgePercentage(Long surgePercentage) { this.surgePercentage = surgePercentage; return this; } public UpgradeConfig build() { return new UpgradeConfig(this); } } } public static class Management extends TeaModel { @com.aliyun.core.annotation.NameInMap("auto_repair") private Boolean autoRepair; @com.aliyun.core.annotation.NameInMap("auto_repair_policy") private AutoRepairPolicy autoRepairPolicy; @com.aliyun.core.annotation.NameInMap("auto_upgrade") private Boolean autoUpgrade; @com.aliyun.core.annotation.NameInMap("auto_upgrade_policy") private AutoUpgradePolicy autoUpgradePolicy; @com.aliyun.core.annotation.NameInMap("auto_vul_fix") private Boolean autoVulFix; @com.aliyun.core.annotation.NameInMap("auto_vul_fix_policy") private AutoVulFixPolicy autoVulFixPolicy; @com.aliyun.core.annotation.NameInMap("enable") private Boolean enable; @com.aliyun.core.annotation.NameInMap("upgrade_config") @Deprecated private UpgradeConfig upgradeConfig; private Management(Builder builder) { this.autoRepair = builder.autoRepair; this.autoRepairPolicy = builder.autoRepairPolicy; this.autoUpgrade = builder.autoUpgrade; this.autoUpgradePolicy = builder.autoUpgradePolicy; this.autoVulFix = builder.autoVulFix; this.autoVulFixPolicy = builder.autoVulFixPolicy; this.enable = builder.enable; this.upgradeConfig = builder.upgradeConfig; } public static Builder builder() { return new Builder(); } public static Management create() { return builder().build(); } /** * @return autoRepair */ public Boolean getAutoRepair() { return this.autoRepair; } /** * @return autoRepairPolicy */ public AutoRepairPolicy getAutoRepairPolicy() { return this.autoRepairPolicy; } /** * @return autoUpgrade */ public Boolean getAutoUpgrade() { return this.autoUpgrade; } /** * @return autoUpgradePolicy */ public AutoUpgradePolicy getAutoUpgradePolicy() { return this.autoUpgradePolicy; } /** * @return autoVulFix */ public Boolean getAutoVulFix() { return this.autoVulFix; } /** * @return autoVulFixPolicy */ public AutoVulFixPolicy getAutoVulFixPolicy() { return this.autoVulFixPolicy; } /** * @return enable */ public Boolean getEnable() { return this.enable; } /** * @return upgradeConfig */ public UpgradeConfig getUpgradeConfig() { return this.upgradeConfig; } public static final class Builder { private Boolean autoRepair; private AutoRepairPolicy autoRepairPolicy; private Boolean autoUpgrade; private AutoUpgradePolicy autoUpgradePolicy; private Boolean autoVulFix; private AutoVulFixPolicy autoVulFixPolicy; private Boolean enable; private UpgradeConfig upgradeConfig; /** * Specifies whether to enable auto repair. This parameter takes effect only when you specify `enable=true`. Valid values: *

* * * `true`: enables auto repair. * * `false`: disables auto repair. * * Default value: `true`. */ public Builder autoRepair(Boolean autoRepair) { this.autoRepair = autoRepair; return this; } /** * The auto node repair policy. */ public Builder autoRepairPolicy(AutoRepairPolicy autoRepairPolicy) { this.autoRepairPolicy = autoRepairPolicy; return this; } /** * Specifies whether to enable auto update. Valid values: *

* * * `true`: enables auto update. * * `false`: disables auto update. */ public Builder autoUpgrade(Boolean autoUpgrade) { this.autoUpgrade = autoUpgrade; return this; } /** * The auto update policy. */ public Builder autoUpgradePolicy(AutoUpgradePolicy autoUpgradePolicy) { this.autoUpgradePolicy = autoUpgradePolicy; return this; } /** * Specifies whether ACK is allowed to automatically patch CVE vulnerabilities. Valid values: *

* * * `true`: yes. * * `true`: no. */ public Builder autoVulFix(Boolean autoVulFix) { this.autoVulFix = autoVulFix; return this; } /** * The auto CVE patching policy. */ public Builder autoVulFixPolicy(AutoVulFixPolicy autoVulFixPolicy) { this.autoVulFixPolicy = autoVulFixPolicy; return this; } /** * Specifies whether to enable the managed node pool feature. Valid values: *

* * * `true`: enables the managed node pool feature. * * `false`: disables the managed node pool feature. Other parameters in this section take effect only when `enable=true` is specified. * * Default value: `false`. */ public Builder enable(Boolean enable) { this.enable = enable; return this; } /** * The configuration of auto update. The configuration takes effect only when `enable=true` is specified. */ public Builder upgradeConfig(UpgradeConfig upgradeConfig) { this.upgradeConfig = upgradeConfig; return this; } public Management build() { return new Management(this); } } } public static class NodepoolInfo extends TeaModel { @com.aliyun.core.annotation.NameInMap("name") private String name; @com.aliyun.core.annotation.NameInMap("resource_group_id") private String resourceGroupId; private NodepoolInfo(Builder builder) { this.name = builder.name; this.resourceGroupId = builder.resourceGroupId; } public static Builder builder() { return new Builder(); } public static NodepoolInfo create() { return builder().build(); } /** * @return name */ public String getName() { return this.name; } /** * @return resourceGroupId */ public String getResourceGroupId() { return this.resourceGroupId; } public static final class Builder { private String name; private String resourceGroupId; /** * The name of the node pool. *

* * The name must be 1 to 63 characters in length, and can contain digits, letters, and hyphens (-). It cannot start with a hyphen (-). */ public Builder name(String name) { this.name = name; return this; } /** * The ID of the resource group. */ public Builder resourceGroupId(String resourceGroupId) { this.resourceGroupId = resourceGroupId; return this; } public NodepoolInfo build() { return new NodepoolInfo(this); } } } public static class PrivatePoolOptions extends TeaModel { @com.aliyun.core.annotation.NameInMap("id") private String id; @com.aliyun.core.annotation.NameInMap("match_criteria") private String matchCriteria; private PrivatePoolOptions(Builder builder) { this.id = builder.id; this.matchCriteria = builder.matchCriteria; } public static Builder builder() { return new Builder(); } public static PrivatePoolOptions create() { return builder().build(); } /** * @return id */ public String getId() { return this.id; } /** * @return matchCriteria */ public String getMatchCriteria() { return this.matchCriteria; } public static final class Builder { private String id; private String matchCriteria; /** * The ID of the private node pool. */ public Builder id(String id) { this.id = id; return this; } /** * The type of the private node pool. This parameter specifies the type of private node pool that you want to use to create instances. A private node pool is generated when an elasticity assurance or a capacity reservation service takes effect. The system selects a private node pool to launch instances. Valid values: *

* * * `Open`: specifies an open private node pool. The system selects an open private node pool to launch instances. If no matching open private node pool is available, the resources in the public node pool are used. * * `Target`: specifies a private node pool. The system uses the resources of the specified private node pool to launch instances. If the specified private node pool is unavailable, instances cannot be launched. * * `None`: no private node pool is used. The resources of private node pools are not used to launch the instances. */ public Builder matchCriteria(String matchCriteria) { this.matchCriteria = matchCriteria; return this; } public PrivatePoolOptions build() { return new PrivatePoolOptions(this); } } } public static class SpotPriceLimit extends TeaModel { @com.aliyun.core.annotation.NameInMap("instance_type") private String instanceType; @com.aliyun.core.annotation.NameInMap("price_limit") private String priceLimit; private SpotPriceLimit(Builder builder) { this.instanceType = builder.instanceType; this.priceLimit = builder.priceLimit; } public static Builder builder() { return new Builder(); } public static SpotPriceLimit create() { return builder().build(); } /** * @return instanceType */ public String getInstanceType() { return this.instanceType; } /** * @return priceLimit */ public String getPriceLimit() { return this.priceLimit; } public static final class Builder { private String instanceType; private String priceLimit; /** * The instance type of preemptible instances. */ public Builder instanceType(String instanceType) { this.instanceType = instanceType; return this; } /** * The maximum bid price of a preemptible instance. *

* * Unit: USD/hour. */ public Builder priceLimit(String priceLimit) { this.priceLimit = priceLimit; return this; } public SpotPriceLimit build() { return new SpotPriceLimit(this); } } } public static class ScalingGroup extends TeaModel { @com.aliyun.core.annotation.NameInMap("auto_renew") private Boolean autoRenew; @com.aliyun.core.annotation.NameInMap("auto_renew_period") private Long autoRenewPeriod; @com.aliyun.core.annotation.NameInMap("compensate_with_on_demand") private Boolean compensateWithOnDemand; @com.aliyun.core.annotation.NameInMap("data_disks") private java.util.List < DataDisk > dataDisks; @com.aliyun.core.annotation.NameInMap("desired_size") private Long desiredSize; @com.aliyun.core.annotation.NameInMap("image_id") private String imageId; @com.aliyun.core.annotation.NameInMap("image_type") private String imageType; @com.aliyun.core.annotation.NameInMap("instance_charge_type") private String instanceChargeType; @com.aliyun.core.annotation.NameInMap("instance_patterns") private java.util.List < InstancePatterns > instancePatterns; @com.aliyun.core.annotation.NameInMap("instance_types") private java.util.List < String > instanceTypes; @com.aliyun.core.annotation.NameInMap("internet_charge_type") private String internetChargeType; @com.aliyun.core.annotation.NameInMap("internet_max_bandwidth_out") private Long internetMaxBandwidthOut; @com.aliyun.core.annotation.NameInMap("key_pair") private String keyPair; @com.aliyun.core.annotation.NameInMap("login_password") private String loginPassword; @com.aliyun.core.annotation.NameInMap("multi_az_policy") private String multiAzPolicy; @com.aliyun.core.annotation.NameInMap("on_demand_base_capacity") private Long onDemandBaseCapacity; @com.aliyun.core.annotation.NameInMap("on_demand_percentage_above_base_capacity") private Long onDemandPercentageAboveBaseCapacity; @com.aliyun.core.annotation.NameInMap("period") private Long period; @com.aliyun.core.annotation.NameInMap("period_unit") private String periodUnit; @com.aliyun.core.annotation.NameInMap("platform") @Deprecated private String platform; @com.aliyun.core.annotation.NameInMap("private_pool_options") private PrivatePoolOptions privatePoolOptions; @com.aliyun.core.annotation.NameInMap("rds_instances") private java.util.List < String > rdsInstances; @com.aliyun.core.annotation.NameInMap("scaling_policy") private String scalingPolicy; @com.aliyun.core.annotation.NameInMap("spot_instance_pools") private Long spotInstancePools; @com.aliyun.core.annotation.NameInMap("spot_instance_remedy") private Boolean spotInstanceRemedy; @com.aliyun.core.annotation.NameInMap("spot_price_limit") private java.util.List < SpotPriceLimit> spotPriceLimit; @com.aliyun.core.annotation.NameInMap("spot_strategy") private String spotStrategy; @com.aliyun.core.annotation.NameInMap("system_disk_bursting_enabled") private Boolean systemDiskBurstingEnabled; @com.aliyun.core.annotation.NameInMap("system_disk_categories") private java.util.List < String > systemDiskCategories; @com.aliyun.core.annotation.NameInMap("system_disk_category") private String systemDiskCategory; @com.aliyun.core.annotation.NameInMap("system_disk_encrypt_algorithm") private String systemDiskEncryptAlgorithm; @com.aliyun.core.annotation.NameInMap("system_disk_encrypted") private Boolean systemDiskEncrypted; @com.aliyun.core.annotation.NameInMap("system_disk_kms_key_id") private String systemDiskKmsKeyId; @com.aliyun.core.annotation.NameInMap("system_disk_performance_level") private String systemDiskPerformanceLevel; @com.aliyun.core.annotation.NameInMap("system_disk_provisioned_iops") private Long systemDiskProvisionedIops; @com.aliyun.core.annotation.NameInMap("system_disk_size") private Long systemDiskSize; @com.aliyun.core.annotation.NameInMap("tags") private java.util.List < Tag > tags; @com.aliyun.core.annotation.NameInMap("vswitch_ids") private java.util.List < String > vswitchIds; private ScalingGroup(Builder builder) { this.autoRenew = builder.autoRenew; this.autoRenewPeriod = builder.autoRenewPeriod; this.compensateWithOnDemand = builder.compensateWithOnDemand; this.dataDisks = builder.dataDisks; this.desiredSize = builder.desiredSize; this.imageId = builder.imageId; this.imageType = builder.imageType; this.instanceChargeType = builder.instanceChargeType; this.instancePatterns = builder.instancePatterns; this.instanceTypes = builder.instanceTypes; this.internetChargeType = builder.internetChargeType; this.internetMaxBandwidthOut = builder.internetMaxBandwidthOut; this.keyPair = builder.keyPair; this.loginPassword = builder.loginPassword; this.multiAzPolicy = builder.multiAzPolicy; this.onDemandBaseCapacity = builder.onDemandBaseCapacity; this.onDemandPercentageAboveBaseCapacity = builder.onDemandPercentageAboveBaseCapacity; this.period = builder.period; this.periodUnit = builder.periodUnit; this.platform = builder.platform; this.privatePoolOptions = builder.privatePoolOptions; this.rdsInstances = builder.rdsInstances; this.scalingPolicy = builder.scalingPolicy; this.spotInstancePools = builder.spotInstancePools; this.spotInstanceRemedy = builder.spotInstanceRemedy; this.spotPriceLimit = builder.spotPriceLimit; this.spotStrategy = builder.spotStrategy; this.systemDiskBurstingEnabled = builder.systemDiskBurstingEnabled; this.systemDiskCategories = builder.systemDiskCategories; this.systemDiskCategory = builder.systemDiskCategory; this.systemDiskEncryptAlgorithm = builder.systemDiskEncryptAlgorithm; this.systemDiskEncrypted = builder.systemDiskEncrypted; this.systemDiskKmsKeyId = builder.systemDiskKmsKeyId; this.systemDiskPerformanceLevel = builder.systemDiskPerformanceLevel; this.systemDiskProvisionedIops = builder.systemDiskProvisionedIops; this.systemDiskSize = builder.systemDiskSize; this.tags = builder.tags; this.vswitchIds = builder.vswitchIds; } public static Builder builder() { return new Builder(); } public static ScalingGroup create() { return builder().build(); } /** * @return autoRenew */ public Boolean getAutoRenew() { return this.autoRenew; } /** * @return autoRenewPeriod */ public Long getAutoRenewPeriod() { return this.autoRenewPeriod; } /** * @return compensateWithOnDemand */ public Boolean getCompensateWithOnDemand() { return this.compensateWithOnDemand; } /** * @return dataDisks */ public java.util.List < DataDisk > getDataDisks() { return this.dataDisks; } /** * @return desiredSize */ public Long getDesiredSize() { return this.desiredSize; } /** * @return imageId */ public String getImageId() { return this.imageId; } /** * @return imageType */ public String getImageType() { return this.imageType; } /** * @return instanceChargeType */ public String getInstanceChargeType() { return this.instanceChargeType; } /** * @return instancePatterns */ public java.util.List < InstancePatterns > getInstancePatterns() { return this.instancePatterns; } /** * @return instanceTypes */ public java.util.List < String > getInstanceTypes() { return this.instanceTypes; } /** * @return internetChargeType */ public String getInternetChargeType() { return this.internetChargeType; } /** * @return internetMaxBandwidthOut */ public Long getInternetMaxBandwidthOut() { return this.internetMaxBandwidthOut; } /** * @return keyPair */ public String getKeyPair() { return this.keyPair; } /** * @return loginPassword */ public String getLoginPassword() { return this.loginPassword; } /** * @return multiAzPolicy */ public String getMultiAzPolicy() { return this.multiAzPolicy; } /** * @return onDemandBaseCapacity */ public Long getOnDemandBaseCapacity() { return this.onDemandBaseCapacity; } /** * @return onDemandPercentageAboveBaseCapacity */ public Long getOnDemandPercentageAboveBaseCapacity() { return this.onDemandPercentageAboveBaseCapacity; } /** * @return period */ public Long getPeriod() { return this.period; } /** * @return periodUnit */ public String getPeriodUnit() { return this.periodUnit; } /** * @return platform */ public String getPlatform() { return this.platform; } /** * @return privatePoolOptions */ public PrivatePoolOptions getPrivatePoolOptions() { return this.privatePoolOptions; } /** * @return rdsInstances */ public java.util.List < String > getRdsInstances() { return this.rdsInstances; } /** * @return scalingPolicy */ public String getScalingPolicy() { return this.scalingPolicy; } /** * @return spotInstancePools */ public Long getSpotInstancePools() { return this.spotInstancePools; } /** * @return spotInstanceRemedy */ public Boolean getSpotInstanceRemedy() { return this.spotInstanceRemedy; } /** * @return spotPriceLimit */ public java.util.List < SpotPriceLimit> getSpotPriceLimit() { return this.spotPriceLimit; } /** * @return spotStrategy */ public String getSpotStrategy() { return this.spotStrategy; } /** * @return systemDiskBurstingEnabled */ public Boolean getSystemDiskBurstingEnabled() { return this.systemDiskBurstingEnabled; } /** * @return systemDiskCategories */ public java.util.List < String > getSystemDiskCategories() { return this.systemDiskCategories; } /** * @return systemDiskCategory */ public String getSystemDiskCategory() { return this.systemDiskCategory; } /** * @return systemDiskEncryptAlgorithm */ public String getSystemDiskEncryptAlgorithm() { return this.systemDiskEncryptAlgorithm; } /** * @return systemDiskEncrypted */ public Boolean getSystemDiskEncrypted() { return this.systemDiskEncrypted; } /** * @return systemDiskKmsKeyId */ public String getSystemDiskKmsKeyId() { return this.systemDiskKmsKeyId; } /** * @return systemDiskPerformanceLevel */ public String getSystemDiskPerformanceLevel() { return this.systemDiskPerformanceLevel; } /** * @return systemDiskProvisionedIops */ public Long getSystemDiskProvisionedIops() { return this.systemDiskProvisionedIops; } /** * @return systemDiskSize */ public Long getSystemDiskSize() { return this.systemDiskSize; } /** * @return tags */ public java.util.List < Tag > getTags() { return this.tags; } /** * @return vswitchIds */ public java.util.List < String > getVswitchIds() { return this.vswitchIds; } public static final class Builder { private Boolean autoRenew; private Long autoRenewPeriod; private Boolean compensateWithOnDemand; private java.util.List < DataDisk > dataDisks; private Long desiredSize; private String imageId; private String imageType; private String instanceChargeType; private java.util.List < InstancePatterns > instancePatterns; private java.util.List < String > instanceTypes; private String internetChargeType; private Long internetMaxBandwidthOut; private String keyPair; private String loginPassword; private String multiAzPolicy; private Long onDemandBaseCapacity; private Long onDemandPercentageAboveBaseCapacity; private Long period; private String periodUnit; private String platform; private PrivatePoolOptions privatePoolOptions; private java.util.List < String > rdsInstances; private String scalingPolicy; private Long spotInstancePools; private Boolean spotInstanceRemedy; private java.util.List < SpotPriceLimit> spotPriceLimit; private String spotStrategy; private Boolean systemDiskBurstingEnabled; private java.util.List < String > systemDiskCategories; private String systemDiskCategory; private String systemDiskEncryptAlgorithm; private Boolean systemDiskEncrypted; private String systemDiskKmsKeyId; private String systemDiskPerformanceLevel; private Long systemDiskProvisionedIops; private Long systemDiskSize; private java.util.List < Tag > tags; private java.util.List < String > vswitchIds; /** * Specifies whether to enable auto-renewal for the nodes in the node pool. This parameter takes effect only when you set `instance_charge_type` to `PrePaid`. Valid values: *

* * * `true`: enables auto-renewal. * * `false`: disables auto-renewal. * * Default value: `true`. */ public Builder autoRenew(Boolean autoRenew) { this.autoRenew = autoRenew; return this; } /** * The auto-renewal duration. This parameter takes effect and is required only when you set `instance_charge_type` to `PrePaid`. *

* * If you specify `PeriodUnit=Month`, the valid values are 1, 2, 3, 6, and 12. */ public Builder autoRenewPeriod(Long autoRenewPeriod) { this.autoRenewPeriod = autoRenewPeriod; return this; } /** * Specifies whether to automatically create pay-as-you-go instances to meet the required number of ECS instances if preemptible instances cannot be created due to reasons such as the cost or insufficient inventory. This parameter takes effect when you set `multi_az_policy` to `COST_OPTIMIZED`. Valid values: *

* * * `true`: automatically creates pay-as-you-go instances to meet the required number of ECS instances if preemptible instances cannot be created * * `false`: does not create pay-as-you-go instances to meet the required number of ECS instances if preemptible instances cannot be created. */ public Builder compensateWithOnDemand(Boolean compensateWithOnDemand) { this.compensateWithOnDemand = compensateWithOnDemand; return this; } /** * The configurations of the data disks that are mounted to the nodes in the node pool. You can mount at most 10 data disks to the nodes in the node pool. */ public Builder dataDisks(java.util.List < DataDisk > dataDisks) { this.dataDisks = dataDisks; return this; } /** * The expected number of nodes in the node pool. */ public Builder desiredSize(Long desiredSize) { this.desiredSize = desiredSize; return this; } /** * The ID of the custom image. You can call the `DescribeKubernetesVersionMetadata` operation to query the supported images. By default, the latest image is used. */ public Builder imageId(String imageId) { this.imageId = imageId; return this; } /** * The type of OS distribution that you want to use. To specify the node OS, we recommend that you use this parameter. Valid values: CentOS, AliyunLinux, AliyunLinux Qboot, AliyunLinuxUEFI, AliyunLinux3, Windows, WindowsCore, AliyunLinux3Arm64, and ContainerOS. */ public Builder imageType(String imageType) { this.imageType = imageType; return this; } /** * The billing method of the nodes in the node pool. Valid values: *

* * * `PrePaid`: subscription. * * `PostPaid`: pay-as-you-go. * * Default value: `PostPaid`. */ public Builder instanceChargeType(String instanceChargeType) { this.instanceChargeType = instanceChargeType; return this; } /** * instance_patterns. */ public Builder instancePatterns(java.util.List < InstancePatterns > instancePatterns) { this.instancePatterns = instancePatterns; return this; } /** * A list of instance types. You can select multiple instance types. When the system needs to create a node, it starts from the first instance type until the node is created. The instance type that is used to create the node varies based on the actual instance stock. */ public Builder instanceTypes(java.util.List < String > instanceTypes) { this.instanceTypes = instanceTypes; return this; } /** * The metering method of the public IP address. Valid values: *

* * * `PayByBandwidth`: pay-by-bandwidth. * * `PayByTraffic`: pay-by-data-transfer. */ public Builder internetChargeType(String internetChargeType) { this.internetChargeType = internetChargeType; return this; } /** * The maximum outbound bandwidth of the public IP address of the node. Unit: Mbit/s. Valid values: 1 to 100. */ public Builder internetMaxBandwidthOut(Long internetMaxBandwidthOut) { this.internetMaxBandwidthOut = internetMaxBandwidthOut; return this; } /** * The name of the key pair. You must set this parameter or the `login_password` parameter. You must set `key_pair` if the node pool is a managed node pool. */ public Builder keyPair(String keyPair) { this.keyPair = keyPair; return this; } /** * The password for SSH logon. You must set this parameter or the `key_pair` parameter. The password must be 8 to 30 characters in length, and must contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. */ public Builder loginPassword(String loginPassword) { this.loginPassword = loginPassword; return this; } /** * The ECS instance scaling policy for the multi-zone scaling group. Valid values: *

* * * `PRIORITY`: The scaling group is scaled based on the VSwitchIds.N parameter. If an ECS instance cannot be created in the zone where the vSwitch that has the highest priority resides, Auto Scaling creates the ECS instance in the zone where the vSwitch that has the next highest priority resides. * * * `COST_OPTIMIZED`: ECS instances are created based on the vCPU unit price in ascending order. Preemptible instances are preferably created when preemptible instance types are specified in the scaling configuration. You can set the `CompensateWithOnDemand` parameter to specify whether to automatically create pay-as-you-go instances when preemptible instances cannot be created due to insufficient resources. * * ** * * **Note** `COST_OPTIMIZED` is valid only when multiple instance types are specified or at least one preemptible instance type is specified. * * * `BALANCE`: ECS instances are evenly distributed across multiple zones specified by the scaling group. If ECS instances become imbalanced among multiple zones due to the insufficient inventory, you can call the `RebalanceInstances` operation of Auto Scaling to balance the instance distribution among zones. For more information, see [RebalanceInstances](~~71516~~). * * Default value: `PRIORITY`. */ public Builder multiAzPolicy(String multiAzPolicy) { this.multiAzPolicy = multiAzPolicy; return this; } /** * The minimum number of pay-as-you-go instances that must be kept in the scaling group. Valid values: 0 to 1000. If the number of pay-as-you-go instances is less than the value of this parameter, Auto Scaling preferably creates pay-as-you-go instances. */ public Builder onDemandBaseCapacity(Long onDemandBaseCapacity) { this.onDemandBaseCapacity = onDemandBaseCapacity; return this; } /** * The percentage of pay-as-you-go instances among the extra instances that exceed the number specified by `on_demand_base_capacity`. Valid values: 0 to 100. */ public Builder onDemandPercentageAboveBaseCapacity(Long onDemandPercentageAboveBaseCapacity) { this.onDemandPercentageAboveBaseCapacity = onDemandPercentageAboveBaseCapacity; return this; } /** * The subscription duration of the nodes in the node pool. This parameter takes effect and is required only when you set `instance_charge_type` to `PrePaid`. *

* * If `PeriodUnit=Month` is specified, the valid values are 1, 2, 3, 6, 12, 24, 36, 48, and 60. */ public Builder period(Long period) { this.period = period; return this; } /** * The billing cycle of the nodes in the node pool. This parameter is required if you set `instance_charge_type` to `PrePaid`. *

* * The billing cycle is measured only in months. * * Default value: `Month`. */ public Builder periodUnit(String periodUnit) { this.periodUnit = periodUnit; return this; } /** * The operating system. Valid values: *

* * * `AliyunLinux` * * `CentOS` * * `Windows` * * `WindowsCore` */ public Builder platform(String platform) { this.platform = platform; return this; } /** * The configuration of the private node pool. */ public Builder privatePoolOptions(PrivatePoolOptions privatePoolOptions) { this.privatePoolOptions = privatePoolOptions; return this; } /** * A list of ApsaraDB RDS instances. */ public Builder rdsInstances(java.util.List < String > rdsInstances) { this.rdsInstances = rdsInstances; return this; } /** * The scaling mode of the scaling group. Valid values: *

* * * `release`: the standard mode. ECS instances are created and released based on the resource usage. * * `recycle`: the swift mode. ECS instances are created, stopped, or started during scaling events. This reduces the time required for the next scale-out event. When the instance is stopped, you are charged only for the storage service. This does not apply to ECS instances that are attached with local disks. */ public Builder scalingPolicy(String scalingPolicy) { this.scalingPolicy = scalingPolicy; return this; } /** * The number of instance types that are available for creating preemptible instances. Auto Scaling creates preemptible instances of multiple instance types that are available at the lowest cost. Valid values: 1 to 10. */ public Builder spotInstancePools(Long spotInstancePools) { this.spotInstancePools = spotInstancePools; return this; } /** * Specifies whether to supplement preemptible instances. If this parameter is set to true, when the scaling group receives a system message that a preemptible instance is to be reclaimed, the scaling group attempts to create a new instance to replace this instance. Valid values: *

* * * `true`: enables the supplementation of preemptible instances. * * `false`: disables the supplementation of preemptible instances. */ public Builder spotInstanceRemedy(Boolean spotInstanceRemedy) { this.spotInstanceRemedy = spotInstanceRemedy; return this; } /** * The bid configurations of preemptible instances. */ public Builder spotPriceLimit(java.util.List < SpotPriceLimit> spotPriceLimit) { this.spotPriceLimit = spotPriceLimit; return this; } /** * The bidding policy of preemptible instances. Valid values: *

* * * `NoSpot`: non-preemptible instance. * * `SpotWithPriceLimit`: specifies the highest bid for the preemptible instance. * * `SpotAsPriceGo`: automatically submits bids based on the up-to-date market price. * * For more information, see [Preemptible instances](~~157759~~). */ public Builder spotStrategy(String spotStrategy) { this.spotStrategy = spotStrategy; return this; } /** * Specifies whether to enable Burst for the system disk when the disk type is cloud_auto. */ public Builder systemDiskBurstingEnabled(Boolean systemDiskBurstingEnabled) { this.systemDiskBurstingEnabled = systemDiskBurstingEnabled; return this; } /** * The types of system disks. The system attempts to create system disks from a disk type with a lower priority when the disk type with a higher priority is unavailable. Valid values: cloud: disk. cloud_efficiency: ultra disk. cloud_ssd: standard SSD. cloud_essd: enhanced SSD (ESSD). */ public Builder systemDiskCategories(java.util.List < String > systemDiskCategories) { this.systemDiskCategories = systemDiskCategories; return this; } /** * The type of the system disk. Valid values: *

* * * `cloud_efficiency`: ultra disk. * * `cloud_ssd`: standard SSD. * * Default value: `cloud_ssd`. */ public Builder systemDiskCategory(String systemDiskCategory) { this.systemDiskCategory = systemDiskCategory; return this; } /** * The algorithm that you want to use to encrypt the system disk. The value is aes-256. */ public Builder systemDiskEncryptAlgorithm(String systemDiskEncryptAlgorithm) { this.systemDiskEncryptAlgorithm = systemDiskEncryptAlgorithm; return this; } /** * Specifies whether to encrypt the system disk. Valid values: true: encrypts the system disk. false: does not encrypt the system disk. */ public Builder systemDiskEncrypted(Boolean systemDiskEncrypted) { this.systemDiskEncrypted = systemDiskEncrypted; return this; } /** * The ID of the Key Management Service (KMS) key that is used to encrypt the system disk. */ public Builder systemDiskKmsKeyId(String systemDiskKmsKeyId) { this.systemDiskKmsKeyId = systemDiskKmsKeyId; return this; } /** * The performance level (PL) of the system disk that you want to use for the node. This parameter takes effect only for enhanced SSDs. You can specify a higher PL if you increase the size of the system disk. For more information, see [ESSDs](~~122389~~). */ public Builder systemDiskPerformanceLevel(String systemDiskPerformanceLevel) { this.systemDiskPerformanceLevel = systemDiskPerformanceLevel; return this; } /** * The predefined read and write IOPS of the system disk when the disk type is cloud_auto. */ public Builder systemDiskProvisionedIops(Long systemDiskProvisionedIops) { this.systemDiskProvisionedIops = systemDiskProvisionedIops; return this; } /** * The size of the system disk in GiB. *

* * Valid values: 20 to 500. * * The value of this parameter must be at least 20 and greater than or equal to the size of the image. * * Default value: the greater value between 40 and the image size. */ public Builder systemDiskSize(Long systemDiskSize) { this.systemDiskSize = systemDiskSize; return this; } /** * The labels that you want to add only to ECS instances. *

* * The tag key must be unique and cannot exceed 128 characters in length. The tag key and value must not start with aliyun or acs: or contain https:// or http://. */ public Builder tags(java.util.List < Tag > tags) { this.tags = tags; return this; } /** * The IDs of vSwitches. You can specify 1 to 20 vSwitches. *

* * > To ensure high availability, we recommend that you select vSwitches in different zones. */ public Builder vswitchIds(java.util.List < String > vswitchIds) { this.vswitchIds = vswitchIds; return this; } public ScalingGroup build() { return new ScalingGroup(this); } } } public static class TeeConfig extends TeaModel { @com.aliyun.core.annotation.NameInMap("tee_enable") private Boolean teeEnable; private TeeConfig(Builder builder) { this.teeEnable = builder.teeEnable; } public static Builder builder() { return new Builder(); } public static TeeConfig create() { return builder().build(); } /** * @return teeEnable */ public Boolean getTeeEnable() { return this.teeEnable; } public static final class Builder { private Boolean teeEnable; /** * Specifies whether to enable confidential computing for the cluster. Valid values: *

* * * `true`: enables confidential computing for the cluster. * * `false`: disables confidential computing for the cluster. * * Default value: `false`. */ public Builder teeEnable(Boolean teeEnable) { this.teeEnable = teeEnable; return this; } public TeeConfig build() { return new TeeConfig(this); } } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy