// This file is auto-generated, don't edit it import * as $dara from '@darabonba/typescript'; import { DataDisk } from "./DataDisk"; import { DiskInit } from "./DiskInit"; import { InstanceMetadataOptions } from "./InstanceMetadataOptions"; import { KubeletConfig } from "./KubeletConfig"; import { Tag } from "./Tag"; import { Taint } from "./Taint"; export class NodepoolAutoScaling extends $dara.Model { /** * @remarks * [This field is deprecated] * * The peak bandwidth of the EIP. Unit: Mbit/s. * * @example * 5 * * @deprecated */ eipBandwidth?: number; /** * @remarks * [This field is deprecated] * * The billing method for the EIP. Valid values: * * - `PayByBandwidth`: pay-by-bandwidth. * - `PayByTraffic`: pay-by-data-transfer. * * Default value: PayByBandwidth. * * @example * PayByBandwidth * * @deprecated */ eipInternetChargeType?: string; /** * @remarks * Specifies whether to enable auto scaling. * * - `true`: Enables auto scaling for the node pool. * - `false`: Disables auto scaling. When set to false, other configuration parameters in `auto_scaling` do not take effect. * * Default value: `false`. * * This parameter is required. * * @example * true */ enable?: boolean; /** * @remarks * [This field is deprecated] * * Specifies whether to associate an EIP. Valid values: * * - `true`: Associates an EIP. * - `false`: Does not associate an EIP. * * Default value: `false`. * * @example * true * * @deprecated */ isBondEip?: boolean; /** * @remarks * The maximum number of instances in the auto scaling group. * * This parameter is required. * * @example * 10 */ maxInstances?: number; /** * @remarks * The minimum number of instances in the auto scaling group. * * This parameter is required. * * @example * 0 */ minInstances?: number; /** * @remarks * The auto scaling type, classified by instance type. Valid values: * * - `cpu`: regular instance type. * - `gpu`: GPU instance type. * - `gpushare`: GPU shared type. * - `spot`: spot instance type. * * Default value: `cpu`. * * @example * cpu */ type?: string; static names(): { [key: string]: string } { return { eipBandwidth: 'eip_bandwidth', eipInternetChargeType: 'eip_internet_charge_type', enable: 'enable', isBondEip: 'is_bond_eip', maxInstances: 'max_instances', minInstances: 'min_instances', type: 'type', }; } static types(): { [key: string]: any } { return { eipBandwidth: 'number', eipInternetChargeType: 'string', enable: 'boolean', isBondEip: 'boolean', maxInstances: 'number', minInstances: 'number', type: 'string', }; } validate() { super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class NodepoolInterconnectConfig extends $dara.Model { /** * @remarks * **This field is deprecated.** * * The network bandwidth of the enhanced edge node pool. Unit: Mbps. * * @example * 10 * * @deprecated */ bandwidth?: number; /** * @remarks * **This field is deprecated.** * * The instance ID of the Cloud Connect Network (CCN) attached to the enhanced edge node pool. * * @example * ccn-qm5i0i0q9yi******* * * @deprecated */ ccnId?: string; /** * @remarks * **This field is deprecated.** * * The region of the Cloud Connect Network (CCN) instance bound to the enhanced edge node pool. * * @example * cn-shanghai * * @deprecated */ ccnRegionId?: string; /** * @remarks * **This field is deprecated.** * * The instance ID of the Cloud Enterprise Network (CEN) attached to the enhanced edge node pool. * * @example * cen-ey9k9nfhz0f******* * * @deprecated */ cenId?: string; /** * @remarks * **This field is deprecated.** * * The purchase duration of the enhanced edge node pool. Unit: months. * * @example * 1 * * @deprecated */ improvedPeriod?: string; static names(): { [key: string]: string } { return { bandwidth: 'bandwidth', ccnId: 'ccn_id', ccnRegionId: 'ccn_region_id', cenId: 'cen_id', improvedPeriod: 'improved_period', }; } static types(): { [key: string]: any } { return { bandwidth: 'number', ccnId: 'string', ccnRegionId: 'string', cenId: 'string', improvedPeriod: 'string', }; } validate() { super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class NodepoolKubernetesConfig extends $dara.Model { /** * @remarks * Specifies whether to install the CloudMonitor agent on ECS nodes. After installation, you can view monitoring information of the created ECS instances in the CloudMonitor console. We recommend that you enable this feature. Valid values: * * - `true`: Installs the CloudMonitor agent on ECS nodes. * - `false`: Does not install the CloudMonitor agent on ECS nodes. * * Default value: `false`. * * @example * true */ cmsEnabled?: boolean; /** * @remarks * The CPU management policy for nodes. The following two policies are supported for clusters of version 1.12.6 or later: * * - `static`: Allows pods with certain resource characteristics on the node to be granted enhanced CPU affinity and exclusivity. * - `none`: Enables the existing default CPU affinity scheme. * * Default value: `none`. * * @example * none */ cpuPolicy?: string; /** * @remarks * The node labels. Adds labels to the nodes in the Kubernetes cluster. */ labels?: Tag[]; /** * @remarks * The node name consists of three parts: prefix + node IP + suffix: * * - Both the prefix and suffix can consist of one or more parts separated by ".". Each part can contain lowercase letters, digits, and hyphens (-). The node name must start and end with a lowercase letter or digit. * - The node IP is the full private IP address of the node. * * The parameter contains four parts separated by commas. For example, if you pass in the string "customized,aliyun,ip,com" (where "customized" and "ip" are fixed strings, "aliyun" is the prefix, and "com" is the suffix), the node name is: aliyun.192.168.xxx.xxx.com. * * @example * customized,aliyun,ip,com */ nodeNameMode?: string; /** * @remarks * The container runtime. Valid values: * - `containerd`: Recommended. Supports all cluster versions. * - `Sandboxed-Container.runv`: Sandboxed container. Provides higher isolation. Supports clusters of version 1.24 or earlier. * - `docker`: Supports clusters of version 1.22 or earlier. * * Default value: `containerd` * * This parameter is required. * * @example * containerd */ runtime?: string; /** * @remarks * The container runtime version. * * This parameter is required. * * @example * 1.6.20 */ runtimeVersion?: string; /** * @remarks * The taint configuration. */ taints?: Taint[]; /** * @remarks * The node custom data. * * @example * MXM= */ userData?: string; static names(): { [key: string]: string } { return { cmsEnabled: 'cms_enabled', cpuPolicy: 'cpu_policy', labels: 'labels', nodeNameMode: 'node_name_mode', runtime: 'runtime', runtimeVersion: 'runtime_version', taints: 'taints', userData: 'user_data', }; } static types(): { [key: string]: any } { return { cmsEnabled: 'boolean', cpuPolicy: 'string', labels: { 'type': 'array', 'itemType': Tag }, nodeNameMode: 'string', runtime: 'string', runtimeVersion: 'string', taints: { 'type': 'array', 'itemType': Taint }, userData: 'string', }; } validate() { if(Array.isArray(this.labels)) { $dara.Model.validateArray(this.labels); } if(Array.isArray(this.taints)) { $dara.Model.validateArray(this.taints); } super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class NodepoolManagementAutoRepairPolicy extends $dara.Model { /** * @example * 5 */ maxParallelRepairingNodes?: string; /** * @example * 20% */ maxUnhealthyNodesThreshold?: string; /** * @remarks * Specifies whether to allow node restart. * * @example * true */ restartNode?: boolean; static names(): { [key: string]: string } { return { maxParallelRepairingNodes: 'max_parallel_repairing_nodes', maxUnhealthyNodesThreshold: 'max_unhealthy_nodes_threshold', restartNode: 'restart_node', }; } static types(): { [key: string]: any } { return { maxParallelRepairingNodes: 'string', maxUnhealthyNodesThreshold: 'string', restartNode: 'boolean', }; } validate() { super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class NodepoolManagementAutoUpgradePolicy extends $dara.Model { /** * @remarks * Specifies whether to allow automatic kubelet upgrade. * * @example * true */ autoUpgradeKubelet?: boolean; static names(): { [key: string]: string } { return { autoUpgradeKubelet: 'auto_upgrade_kubelet', }; } static types(): { [key: string]: any } { return { autoUpgradeKubelet: 'boolean', }; } validate() { super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class NodepoolManagementAutoVulFixPolicy extends $dara.Model { /** * @remarks * Specifies whether to allow node restart. * * @example * true */ restartNode?: boolean; /** * @remarks * The vulnerability levels that are allowed for automatic fix, separated by commas. * * @example * asap,nntf */ vulLevel?: string; static names(): { [key: string]: string } { return { restartNode: 'restart_node', vulLevel: 'vul_level', }; } static types(): { [key: string]: any } { return { restartNode: 'boolean', vulLevel: 'string', }; } validate() { super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class NodepoolManagementUpgradeConfig extends $dara.Model { /** * @remarks * Specifies whether to enable auto upgrade. Valid values: * * - `true`: Enable auto upgrade. * - `false`: Disable auto upgrade. * * @example * false */ autoUpgrade?: boolean; /** * @remarks * The maximum number of unavailable nodes. Valid values: [1,1000\\]. * * Default value: 1. * * @example * 0 */ maxUnavailable?: number; /** * @remarks * The number of extra nodes. * * @example * 0 */ surge?: number; /** * @remarks * The percentage of extra nodes. This parameter is mutually exclusive with `surge`. * * @example * 0 */ surgePercentage?: number; static names(): { [key: string]: string } { return { autoUpgrade: 'auto_upgrade', maxUnavailable: 'max_unavailable', surge: 'surge', surgePercentage: 'surge_percentage', }; } static types(): { [key: string]: any } { return { autoUpgrade: 'boolean', maxUnavailable: 'number', surge: 'number', surgePercentage: 'number', }; } validate() { super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class NodepoolManagement extends $dara.Model { /** * @remarks * Specifies whether to enable node self-healing ECS fault detection. */ autoFaultDiagnosis?: boolean; /** * @remarks * Specifies whether to enable automatic repair. This parameter takes effect only when `enable=true`. * * - `true`: Enable automatic repair. * - `false`: Disable automatic repair. * * @example * false */ autoRepair?: boolean; /** * @remarks * The auto repair node policy. */ autoRepairPolicy?: NodepoolManagementAutoRepairPolicy; /** * @remarks * Specifies whether to enable auto upgrade. * * @example * true */ autoUpgrade?: boolean; /** * @remarks * The auto upgrade policy. */ autoUpgradePolicy?: NodepoolManagementAutoUpgradePolicy; /** * @remarks * Specifies whether to automatically fix CVEs. * * @example * true */ autoVulFix?: boolean; /** * @remarks * The auto CVE fix policy. */ autoVulFixPolicy?: NodepoolManagementAutoVulFixPolicy; /** * @remarks * Specifies whether to enable node rotation. Only intelligent managed node pools support this feature, and it is enabled by default. Common node pools do not support this feature. */ driftEnabled?: boolean; /** * @remarks * Specifies whether to enable the managed node pool. Valid values: * * - `true`: Enable the managed node pool. * - `false`: Do not enable the managed node pool. Other related configurations take effect only when `enable=true`. * * @example * false */ enable?: boolean; /** * @remarks * The auto upgrade configuration. This parameter takes effect only when `enable=true`. * * @deprecated */ upgradeConfig?: NodepoolManagementUpgradeConfig; static names(): { [key: string]: string } { return { autoFaultDiagnosis: 'auto_fault_diagnosis', autoRepair: 'auto_repair', autoRepairPolicy: 'auto_repair_policy', autoUpgrade: 'auto_upgrade', autoUpgradePolicy: 'auto_upgrade_policy', autoVulFix: 'auto_vul_fix', autoVulFixPolicy: 'auto_vul_fix_policy', driftEnabled: 'drift_enabled', enable: 'enable', upgradeConfig: 'upgrade_config', }; } static types(): { [key: string]: any } { return { autoFaultDiagnosis: 'boolean', autoRepair: 'boolean', autoRepairPolicy: NodepoolManagementAutoRepairPolicy, autoUpgrade: 'boolean', autoUpgradePolicy: NodepoolManagementAutoUpgradePolicy, autoVulFix: 'boolean', autoVulFixPolicy: NodepoolManagementAutoVulFixPolicy, driftEnabled: 'boolean', enable: 'boolean', upgradeConfig: NodepoolManagementUpgradeConfig, }; } validate() { if(this.autoRepairPolicy && typeof (this.autoRepairPolicy as any).validate === 'function') { (this.autoRepairPolicy as any).validate(); } if(this.autoUpgradePolicy && typeof (this.autoUpgradePolicy as any).validate === 'function') { (this.autoUpgradePolicy as any).validate(); } if(this.autoVulFixPolicy && typeof (this.autoVulFixPolicy as any).validate === 'function') { (this.autoVulFixPolicy as any).validate(); } if(this.upgradeConfig && typeof (this.upgradeConfig as any).validate === 'function') { (this.upgradeConfig as any).validate(); } super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class NodepoolNodeComponentsConfig extends $dara.Model { /** * @remarks * The custom node component configuration. * * @example * {"cpuManagerPolicy":"static"} */ customConfig?: { [key: string]: any }; static names(): { [key: string]: string } { return { customConfig: 'custom_config', }; } static types(): { [key: string]: any } { return { customConfig: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' }, }; } validate() { if(this.customConfig) { $dara.Model.validateMap(this.customConfig); } super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class NodepoolNodeComponents extends $dara.Model { /** * @remarks * The node component configuration. */ config?: NodepoolNodeComponentsConfig; /** * @remarks * The node component name. * * @example * kubelet */ name?: string; /** * @remarks * The node component version. * * @example * 1.33.3-aliyun.1 */ version?: string; static names(): { [key: string]: string } { return { config: 'config', name: 'name', version: 'version', }; } static types(): { [key: string]: any } { return { config: NodepoolNodeComponentsConfig, name: 'string', version: 'string', }; } validate() { if(this.config && typeof (this.config as any).validate === 'function') { (this.config as any).validate(); } super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class NodepoolNodeConfig extends $dara.Model { /** * @remarks * The Kubelet parameter settings. */ kubeletConfiguration?: KubeletConfig; static names(): { [key: string]: string } { return { kubeletConfiguration: 'kubelet_configuration', }; } static types(): { [key: string]: any } { return { kubeletConfiguration: KubeletConfig, }; } validate() { if(this.kubeletConfiguration && typeof (this.kubeletConfiguration as any).validate === 'function') { (this.kubeletConfiguration as any).validate(); } super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class NodepoolNodepoolInfo extends $dara.Model { /** * @remarks * The node pool name. * * This parameter is required. * * @example * np-test */ name?: string; /** * @remarks * The ID of the resource group to which the node pool belongs. * * @example * rg-acfmyvw3wjm**** */ resourceGroupId?: string; /** * @remarks * The node pool type. Valid values: * * - `ess`: node pool. * - `edge`: edge node pool. * * @example * ess */ type?: string; static names(): { [key: string]: string } { return { name: 'name', resourceGroupId: 'resource_group_id', type: 'type', }; } static types(): { [key: string]: any } { return { name: 'string', resourceGroupId: 'string', type: 'string', }; } validate() { super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class NodepoolScalingGroupCpuOptions extends $dara.Model { /** * @remarks * Specifies whether to enable nested virtualization. Valid values: * disabled: Disable nested virtualization. * enabled: Enable nested virtualization. * * @example * enabled */ nestedVirtualization?: string; static names(): { [key: string]: string } { return { nestedVirtualization: 'nested_virtualization', }; } static types(): { [key: string]: any } { return { nestedVirtualization: 'string', }; } validate() { super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class NodepoolScalingGroupPrivatePoolOptions extends $dara.Model { /** * @remarks * The private node pool ID. * * @example * eap-bp67acfmxazb4**** */ id?: string; /** * @remarks * The private node pool type. The private pool capacity option for instance startup. After an elasticity assurance or capacity reservation takes effect, a private pool is generated for instance startup. Valid values: * * - `Open`: open mode. Automatically matches open-type private pool capacity. If no matching private pool capacity is available, public pool resources are used for instance startup. * * - `Target`: targeted mode. Uses the specified private pool capacity for instance startup. If the specified private pool capacity is unavailable, the instance fails to start. * * - `None`: none mode. The instance does not use private pool capacity for startup. * * @example * Open */ matchCriteria?: string; static names(): { [key: string]: string } { return { id: 'id', matchCriteria: 'match_criteria', }; } static types(): { [key: string]: any } { return { id: 'string', matchCriteria: 'string', }; } validate() { super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class NodepoolScalingGroupResourcePoolOptions extends $dara.Model { /** * @remarks * The list of private pool IDs, which are elasticity assurance IDs or capacity reservation IDs. Only Target mode private pool IDs can be passed in. Valid values of N: 1 to 20. */ privatePoolIds?: string[]; /** * @remarks * The resource pool policy used when creating instances. Resource pools include private pools generated after an elasticity assurance or capacity reservation takes effect, and public pools, for instance startup. Valid values: * PrivatePoolFirst: private pool first. When this policy is selected and resource_pool_options.private_pool_ids is specified, the specified private pools are used first. If no private pool is specified or the specified private pool capacity is insufficient, open-type private pools are automatically matched. If no matching private pool is available, public pool resources are used. * PrivatePoolOnly: private pool only. When this policy is selected, resource_pool_options.private_pool_ids must be specified. If the specified private pool capacity is insufficient, the instance fails to start. * None: no resource pool policy. * Default value: None. * * @example * PrivatePoolFirst */ strategy?: string; static names(): { [key: string]: string } { return { privatePoolIds: 'private_pool_ids', strategy: 'strategy', }; } static types(): { [key: string]: any } { return { privatePoolIds: { 'type': 'array', 'itemType': 'string' }, strategy: 'string', }; } validate() { if(Array.isArray(this.privatePoolIds)) { $dara.Model.validateArray(this.privatePoolIds); } super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class NodepoolScalingGroupSpotPriceLimit extends $dara.Model { /** * @remarks * The spot instance type. * * @example * ecs.c6.large */ instanceType?: string; /** * @remarks * The maximum price per instance. * * @example * 0.39 */ priceLimit?: string; static names(): { [key: string]: string } { return { instanceType: 'instance_type', priceLimit: 'price_limit', }; } static types(): { [key: string]: any } { return { instanceType: 'string', priceLimit: 'string', }; } validate() { super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class NodepoolScalingGroupTags extends $dara.Model { /** * @remarks * The tag key. * * @example * key */ key?: string; /** * @remarks * The tag value. * * @example * value */ value?: string; static names(): { [key: string]: string } { return { key: 'key', value: 'value', }; } static types(): { [key: string]: any } { return { key: 'string', value: 'string', }; } validate() { super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class NodepoolScalingGroup extends $dara.Model { /** * @remarks * Specifies whether to enable auto-renewal for the node pool. This parameter takes effect only when `instance_charge_type` is set to `PrePaid`. Valid values: * * - `true`: Enables auto-renewal. * - `false`: Disables auto-renewal. * * Default value: `true`. * * @example * false */ autoRenew?: boolean; /** * @remarks * The auto-renewal epoch for the node pool. This parameter takes effect and is required only when `instance_charge_type` is set to `PrePaid`. * * When `PeriodUnit=Month`, valid values: {1, 2, 3, 6, 12}. * * Default value: 1. * * @example * 0 */ autoRenewPeriod?: number; /** * @remarks * When `multi_az_policy` is set to `COST_OPTIMIZED`, specifies whether to allow automatic creation of pay-as-you-go instances to meet the required number of ECS instances when spot instances cannot be created due to price or inventory reasons. Valid values: * * - `true`: Allows automatic creation of pay-as-you-go instances to meet the required number of ECS instances. * - `false`: Does not allow automatic creation of pay-as-you-go instances to meet the required number of ECS instances. * * @example * true */ compensateWithOnDemand?: boolean; /** * @remarks * The CPU configuration options. */ cpuOptions?: NodepoolScalingGroupCpuOptions; /** * @remarks * The data cloud disk configuration for nodes in the node pool. */ dataDisks?: DataDisk[]; /** * @remarks * The deployment set ID. * * @example * ds-bp1d19mmbsv3jf6xxxxx */ deploymentsetId?: string; /** * @remarks * The desired number of nodes in the node pool. * * @example * 2 */ desiredSize?: number; /** * @remarks * The block device initialization configuration. */ diskInit?: DiskInit[]; /** * @remarks * The custom image ID. The system-provided image is used by default. * * @example * aliyun_2_1903_x64_20G_alibase_20200904.vhd */ imageId?: string; /** * @remarks * The operating system image type. Specify either this parameter or platform. Valid values: * * - `AliyunLinux`: Alinux2 image. * - `AliyunLinux3`: Alinux3 image. * - `AliyunLinux3Arm64`: Alinux3 image for ARM. * - `AliyunLinuxUEFI`: Alinux2 UEFI image. * - `CentOS`: CentOS image. * - `Windows`: Windows image. * - `WindowsCore`: WindowsCore image. * - `ContainerOS`: container-optimized image. * * @example * AliyunLinux */ imageType?: string; /** * @remarks * The billing method for nodes in the node pool. Valid values: * * - `PrePaid`: subscription. * - `PostPaid`: pay-as-you-go. * * Default value: `PostPaid`. * * This parameter is required. * * @example * PostPaid */ instanceChargeType?: string; /** * @remarks * The metadata access configuration for ECS instances. * This parameter is currently available only to accounts on the whitelist. Submit a ticket to request access. */ instanceMetadataOptions?: InstanceMetadataOptions; /** * @remarks * The instance types. * * This parameter is required. */ instanceTypes?: string[]; /** * @remarks * The billing method for public IP addresses. Valid values: * * - `PayByBandwidth`: pay-by-bandwidth. * - `PayByTraffic`: pay-by-data-transfer. * * @example * PayByBandwidth */ internetChargeType?: string; /** * @remarks * The maximum outbound bandwidth for node public IP addresses. Unit: Mbit/s. Valid values: [1,100]. * * @example * 10 */ internetMaxBandwidthOut?: number; /** * @remarks * The key pair name. Specify either this parameter or `login_password`. * * > For managed node pools, only `key_pair` is supported. * * @example * np-key */ keyPair?: string; /** * @remarks * Specifies whether scaled-out ECS instances log on as a non-root user. */ loginAsNonRoot?: boolean; /** * @remarks * The SSH logon password. Specify either this parameter or `key_pair`. 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. * * @example * Hello1234 */ loginPassword?: string; /** * @remarks * The multi-zone scaling policy for ECS instances in the scaling group. Valid values: * * - `PRIORITY`: Scales based on the vSwitches (VSwitchIds.N) that you define. When ECS instances cannot be created in the zone of a higher-priority vSwitch, the system automatically uses the next-priority vSwitch to create ECS instances. * * - `COST_OPTIMIZED`: Attempts to create instances in order of ascending vCPU unit price. When the scaling configuration sets the spot billing method for multiple instance types, spot instances are created first. You can use the `CompensateWithOnDemand` parameter to specify whether to automatically create pay-as-you-go instances when spot instances cannot be created due to insufficient inventory. * * >`COST_OPTIMIZED` takes effect only when the scaling configuration sets multiple instance types or uses spot instances. * * - `BALANCE`: Distributes ECS instances evenly across the active zones specified in the scaling group. If the zones become unbalanced due to insufficient inventory, you can call the RebalanceInstances operation to rebalance resources. For more information, see [RebalanceInstances](https://help.aliyun.com/document_detail/71516.html). * * Default value: `PRIORITY`. * * @example * COST_OPTIMIZED */ multiAzPolicy?: string; /** * @remarks * The minimum number of pay-as-you-go instances required by the scaling group. Valid values: [0,1000]. When the number of pay-as-you-go instances is less than this value, pay-as-you-go instances are created first. * * @example * 0 */ onDemandBaseCapacity?: number; /** * @remarks * The percentage of pay-as-you-go instances among the instances that exceed the minimum number of pay-as-you-go instances (`on_demand_base_capacity`). Valid values: [0,100]. * * @example * 20 */ onDemandPercentageAboveBaseCapacity?: number; /** * @remarks * The subscription duration for nodes in the node pool. This parameter takes effect and is required only when `instance_charge_type` is set to `PrePaid`. When `period_unit` is set to Month, valid values for `period`: {1, 2, 3, 6, 12}. * * Default value: 1. * * @example * 0 */ period?: number; /** * @remarks * The billing period unit for nodes in the node pool. This parameter must be specified when `instance_charge_type` is set to `PrePaid`. * * `Month`: Currently, only monthly billing is supported. * * @example * Month */ periodUnit?: string; /** * @remarks * The operating system distribution. Valid values: * * - `CentOS` * - `AliyunLinux` * - `Windows` * - `WindowsCore` * * Default value: `AliyunLinux`. * * @example * AliyunLinux * * @deprecated */ platform?: string; /** * @remarks * The private node pool configuration. */ privatePoolOptions?: NodepoolScalingGroupPrivatePoolOptions; /** * @remarks * The Worker RAM role name. * >Notice: Only ACK managed clusters of version 1.22 or later support configuring this parameter when creating a node pool. * * @example * example-role */ ramRoleName?: string; /** * @remarks * The list of RDS instances. */ rdsInstances?: string[]; /** * @remarks * The resource pool and resource pool policy used when creating instances. Note the following when you set this parameter: * This parameter takes effect only when creating pay-as-you-go instances. * This parameter cannot be set together with private_pool_options.match_criteria or private_pool_options.id. */ resourcePoolOptions?: NodepoolScalingGroupResourcePoolOptions; /** * @remarks * The scaling group mode. Valid values: * * - `release`: standard mode. Scales in or out by creating or releasing ECS instances based on resource usage. * - `recycle`: swift mode. Scales in or out by creating, stopping, or starting ECS instances, which improves the speed of subsequent scaling operations. (Stopped instances are not charged for compute resources, but storage fees still apply, except for instances with local disks.) * * Default value: `release`. * * @example * release */ scalingPolicy?: string; /** * @remarks * The security group ID for the node pool. Specify either this parameter or `security_group_ids`. We recommend that you use `security_group_ids`. * * @example * sg-2zeihch86ooz9io4**** */ securityGroupId?: string; /** * @remarks * The list of security group IDs. Specify either this parameter or `security_group_id`. We recommend that you use `security_group_ids`. When both `security_group_id` and `security_group_ids` are specified, `security_group_ids` takes precedence. */ securityGroupIds?: string[]; /** * @remarks * The number of available instance types. The scaling group creates spot instances across the lowest-cost instance types in a balanced manner. Valid values: [1,10]. * * @example * 5 */ spotInstancePools?: number; /** * @remarks * Specifies whether to enable spot instance supplementation. When enabled, the scaling group attempts to create new instances to replace spot instances that are about to be reclaimed. Valid values: * * - `true`: Enables spot instance supplementation. * - `false`: Disables spot instance supplementation. * * @example * false */ spotInstanceRemedy?: boolean; /** * @remarks * The market price range configuration for a single spot instance type. */ spotPriceLimit?: NodepoolScalingGroupSpotPriceLimit[]; /** * @remarks * The type of spot instance. Valid values: * - NoSpot: non-spot instance. * - SpotWithPriceLimit: spot instance with a price limit. * - SpotAsPriceGo: system automatically bids at the current market price. * * For more information, see [Spot instances](https://help.aliyun.com/document_detail/157759.html). * * @example * NoSpot */ spotStrategy?: string; /** * @remarks * Specifies whether to enable burst (performance burst) for the node system cloud disk. Valid values: * * - true: Enabled. * - false: Disabled. * * This parameter is supported only when `SystemDiskCategory` is set to `cloud_auto`. For more information, see [ESSD AutoPL cloud disk](https://help.aliyun.com/document_detail/368372.html). * * @example * true */ systemDiskBurstingEnabled?: boolean; /** * @remarks * The multiple cloud disk types for the system cloud disk. When a higher-priority cloud disk type is unavailable, the system automatically attempts the next-priority cloud disk type to create the system cloud disk. Valid values: * * - cloud: basic cloud disk. * - cloud_efficiency: ultra cloud disk. * - cloud_ssd: standard SSD. * - cloud_essd: ESSD. */ systemDiskCategories?: string[]; /** * @remarks * The type of the system cloud disk for nodes. Valid values: * * - `cloud_efficiency`: ultra cloud disk. * - `cloud_ssd`: standard SSD. * - `cloud_essd`: ESSD. * - `cloud_auto`: ESSD AutoPL cloud disk. * - `cloud_essd_entry`: ESSD Entry disk. * * Default value: `cloud_efficiency`. * * @example * cloud_efficiency */ systemDiskCategory?: string; /** * @remarks * The encryption algorithm for the node system cloud disk. Valid values: aes-256. * * @example * aes-256 */ systemDiskEncryptAlgorithm?: string; /** * @remarks * Specifies whether to encrypt the system cloud disk. Valid values: true: encrypted. false: not encrypted. */ systemDiskEncrypted?: boolean; /** * @remarks * The KMS key ID used by the node system cloud disk. * * @example * 0e478b7a-4262-4802-b8cb-00d3fb40**** */ systemDiskKmsKeyId?: string; /** * @remarks * The performance level of the system cloud disk for nodes. Applies only to ESSD cloud disks. * * - PL0: moderate maximum concurrent I/O performance with relatively stable read/write latency. * - PL1: moderate maximum concurrent I/O performance with relatively stable read/write latency. * - PL2: high maximum concurrent I/O performance with stable read/write latency. * - PL3: ultra-high maximum concurrent I/O performance with extremely stable read/write latency. * * @example * PL1 */ systemDiskPerformanceLevel?: string; /** * @remarks * The provisioned read/write IOPS for the node system cloud disk. Valid values: 0 to min{50,000, 1000 × capacity - baseline performance}. Baseline performance = min{1,800 + 50 × capacity, 50000}. * * This parameter is supported only when `SystemDiskCategory` is set to `cloud_auto`. For more information, see [ESSD AutoPL cloud disk](https://help.aliyun.com/document_detail/368372.html). * * @example * 1000 */ systemDiskProvisionedIops?: number; /** * @remarks * The size of the system cloud disk for nodes. Unit: GiB. * * Valid values: [40,500]. * * @example * 120 */ systemDiskSize?: number; /** * @remarks * The tags that are added only to ECS instances. * * Tag keys cannot be duplicated and can be up to 128 characters in length. Tag keys and tag values cannot start with "aliyun" or "acs:", or contain "https://" or "http://". */ tags?: NodepoolScalingGroupTags[]; /** * @remarks * The vSwitch IDs. * * This parameter is required. */ vswitchIds?: string[]; static names(): { [key: string]: string } { return { autoRenew: 'auto_renew', autoRenewPeriod: 'auto_renew_period', compensateWithOnDemand: 'compensate_with_on_demand', cpuOptions: 'cpu_options', dataDisks: 'data_disks', deploymentsetId: 'deploymentset_id', desiredSize: 'desired_size', diskInit: 'disk_init', imageId: 'image_id', imageType: 'image_type', instanceChargeType: 'instance_charge_type', instanceMetadataOptions: 'instance_metadata_options', instanceTypes: 'instance_types', internetChargeType: 'internet_charge_type', internetMaxBandwidthOut: 'internet_max_bandwidth_out', keyPair: 'key_pair', loginAsNonRoot: 'login_as_non_root', loginPassword: 'login_password', multiAzPolicy: 'multi_az_policy', onDemandBaseCapacity: 'on_demand_base_capacity', onDemandPercentageAboveBaseCapacity: 'on_demand_percentage_above_base_capacity', period: 'period', periodUnit: 'period_unit', platform: 'platform', privatePoolOptions: 'private_pool_options', ramRoleName: 'ram_role_name', rdsInstances: 'rds_instances', resourcePoolOptions: 'resource_pool_options', scalingPolicy: 'scaling_policy', securityGroupId: 'security_group_id', securityGroupIds: 'security_group_ids', spotInstancePools: 'spot_instance_pools', spotInstanceRemedy: 'spot_instance_remedy', spotPriceLimit: 'spot_price_limit', spotStrategy: 'spot_strategy', systemDiskBurstingEnabled: 'system_disk_bursting_enabled', systemDiskCategories: 'system_disk_categories', systemDiskCategory: 'system_disk_category', systemDiskEncryptAlgorithm: 'system_disk_encrypt_algorithm', systemDiskEncrypted: 'system_disk_encrypted', systemDiskKmsKeyId: 'system_disk_kms_key_id', systemDiskPerformanceLevel: 'system_disk_performance_level', systemDiskProvisionedIops: 'system_disk_provisioned_iops', systemDiskSize: 'system_disk_size', tags: 'tags', vswitchIds: 'vswitch_ids', }; } static types(): { [key: string]: any } { return { autoRenew: 'boolean', autoRenewPeriod: 'number', compensateWithOnDemand: 'boolean', cpuOptions: NodepoolScalingGroupCpuOptions, dataDisks: { 'type': 'array', 'itemType': DataDisk }, deploymentsetId: 'string', desiredSize: 'number', diskInit: { 'type': 'array', 'itemType': DiskInit }, imageId: 'string', imageType: 'string', instanceChargeType: 'string', instanceMetadataOptions: InstanceMetadataOptions, instanceTypes: { 'type': 'array', 'itemType': 'string' }, internetChargeType: 'string', internetMaxBandwidthOut: 'number', keyPair: 'string', loginAsNonRoot: 'boolean', loginPassword: 'string', multiAzPolicy: 'string', onDemandBaseCapacity: 'number', onDemandPercentageAboveBaseCapacity: 'number', period: 'number', periodUnit: 'string', platform: 'string', privatePoolOptions: NodepoolScalingGroupPrivatePoolOptions, ramRoleName: 'string', rdsInstances: { 'type': 'array', 'itemType': 'string' }, resourcePoolOptions: NodepoolScalingGroupResourcePoolOptions, scalingPolicy: 'string', securityGroupId: 'string', securityGroupIds: { 'type': 'array', 'itemType': 'string' }, spotInstancePools: 'number', spotInstanceRemedy: 'boolean', spotPriceLimit: { 'type': 'array', 'itemType': NodepoolScalingGroupSpotPriceLimit }, spotStrategy: 'string', systemDiskBurstingEnabled: 'boolean', systemDiskCategories: { 'type': 'array', 'itemType': 'string' }, systemDiskCategory: 'string', systemDiskEncryptAlgorithm: 'string', systemDiskEncrypted: 'boolean', systemDiskKmsKeyId: 'string', systemDiskPerformanceLevel: 'string', systemDiskProvisionedIops: 'number', systemDiskSize: 'number', tags: { 'type': 'array', 'itemType': NodepoolScalingGroupTags }, vswitchIds: { 'type': 'array', 'itemType': 'string' }, }; } validate() { if(this.cpuOptions && typeof (this.cpuOptions as any).validate === 'function') { (this.cpuOptions as any).validate(); } if(Array.isArray(this.dataDisks)) { $dara.Model.validateArray(this.dataDisks); } if(Array.isArray(this.diskInit)) { $dara.Model.validateArray(this.diskInit); } if(this.instanceMetadataOptions && typeof (this.instanceMetadataOptions as any).validate === 'function') { (this.instanceMetadataOptions as any).validate(); } if(Array.isArray(this.instanceTypes)) { $dara.Model.validateArray(this.instanceTypes); } if(this.privatePoolOptions && typeof (this.privatePoolOptions as any).validate === 'function') { (this.privatePoolOptions as any).validate(); } if(Array.isArray(this.rdsInstances)) { $dara.Model.validateArray(this.rdsInstances); } if(this.resourcePoolOptions && typeof (this.resourcePoolOptions as any).validate === 'function') { (this.resourcePoolOptions as any).validate(); } if(Array.isArray(this.securityGroupIds)) { $dara.Model.validateArray(this.securityGroupIds); } if(Array.isArray(this.spotPriceLimit)) { $dara.Model.validateArray(this.spotPriceLimit); } if(Array.isArray(this.systemDiskCategories)) { $dara.Model.validateArray(this.systemDiskCategories); } if(Array.isArray(this.tags)) { $dara.Model.validateArray(this.tags); } if(Array.isArray(this.vswitchIds)) { $dara.Model.validateArray(this.vswitchIds); } super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class NodepoolTeeConfig extends $dara.Model { /** * @remarks * Specifies whether the node pool is a confidential computing node pool. * * This parameter is required. * * @example * false */ teeEnable?: boolean; static names(): { [key: string]: string } { return { teeEnable: 'tee_enable', }; } static types(): { [key: string]: any } { return { teeEnable: 'boolean', }; } validate() { super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } } export class Nodepool extends $dara.Model { /** * @remarks * The auto scaling configuration for the node pool. */ autoScaling?: NodepoolAutoScaling; /** * @remarks * **This field is deprecated. Use desired_size instead.** * * The number of nodes in the node pool. * * @example * 1 * * @deprecated */ count?: number; /** * @remarks * **This field is deprecated.** * * The edge node pool configuration. * * @deprecated */ interconnectConfig?: NodepoolInterconnectConfig; /** * @remarks * The network type of the edge node pool. This parameter is valid only for node pools whose `type` is `edge`. Valid values: * * - `basic`: Basic. * - `private`: Dedicated. Supported in version 1.22 and later. * * @example * basic */ interconnectMode?: string; /** * @remarks * The cluster-related configuration. */ kubernetesConfig?: NodepoolKubernetesConfig; /** * @remarks * The managed node pool configuration. */ management?: NodepoolManagement; /** * @remarks * The maximum number of nodes allowed in the edge node pool. This parameter must be greater than or equal to 0. A value of 0 indicates no additional limit (limited only by the maximum number of nodes the cluster can accommodate, with no additional limit on the node pool itself). This value is typically greater than 0 for edge node pools. For ess-type node pools and default edge-type node pools, this value is 0. * * @example * 10 */ maxNodes?: number; /** * @remarks * The node component list. */ nodeComponents?: NodepoolNodeComponents[]; /** * @remarks * The node configuration. */ nodeConfig?: NodepoolNodeConfig; /** * @remarks * The node pool configuration. */ nodepoolInfo?: NodepoolNodepoolInfo; /** * @remarks * The scaling group configuration for the node pool. */ scalingGroup?: NodepoolScalingGroup; /** * @remarks * The confidential computing node pool configuration. */ teeConfig?: NodepoolTeeConfig; static names(): { [key: string]: string } { return { autoScaling: 'auto_scaling', count: 'count', interconnectConfig: 'interconnect_config', interconnectMode: 'interconnect_mode', kubernetesConfig: 'kubernetes_config', management: 'management', maxNodes: 'max_nodes', nodeComponents: 'node_components', nodeConfig: 'node_config', nodepoolInfo: 'nodepool_info', scalingGroup: 'scaling_group', teeConfig: 'tee_config', }; } static types(): { [key: string]: any } { return { autoScaling: NodepoolAutoScaling, count: 'number', interconnectConfig: NodepoolInterconnectConfig, interconnectMode: 'string', kubernetesConfig: NodepoolKubernetesConfig, management: NodepoolManagement, maxNodes: 'number', nodeComponents: { 'type': 'array', 'itemType': NodepoolNodeComponents }, nodeConfig: NodepoolNodeConfig, nodepoolInfo: NodepoolNodepoolInfo, scalingGroup: NodepoolScalingGroup, teeConfig: NodepoolTeeConfig, }; } validate() { if(this.autoScaling && typeof (this.autoScaling as any).validate === 'function') { (this.autoScaling as any).validate(); } if(this.interconnectConfig && typeof (this.interconnectConfig as any).validate === 'function') { (this.interconnectConfig as any).validate(); } if(this.kubernetesConfig && typeof (this.kubernetesConfig as any).validate === 'function') { (this.kubernetesConfig as any).validate(); } if(this.management && typeof (this.management as any).validate === 'function') { (this.management as any).validate(); } if(Array.isArray(this.nodeComponents)) { $dara.Model.validateArray(this.nodeComponents); } if(this.nodeConfig && typeof (this.nodeConfig as any).validate === 'function') { (this.nodeConfig as any).validate(); } if(this.nodepoolInfo && typeof (this.nodepoolInfo as any).validate === 'function') { (this.nodepoolInfo as any).validate(); } if(this.scalingGroup && typeof (this.scalingGroup as any).validate === 'function') { (this.scalingGroup as any).validate(); } if(this.teeConfig && typeof (this.teeConfig as any).validate === 'function') { (this.teeConfig as any).validate(); } super.validate(); } constructor(map?: { [key: string]: any }) { super(map); } }