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

com.pulumi.alicloud.ess.ScalingConfiguration Maven / Gradle / Ivy

There is a newer version: 3.63.0-alpha.1727424957
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.alicloud.ess;

import com.pulumi.alicloud.Utilities;
import com.pulumi.alicloud.ess.ScalingConfigurationArgs;
import com.pulumi.alicloud.ess.inputs.ScalingConfigurationState;
import com.pulumi.alicloud.ess.outputs.ScalingConfigurationDataDisk;
import com.pulumi.alicloud.ess.outputs.ScalingConfigurationInstancePatternInfo;
import com.pulumi.alicloud.ess.outputs.ScalingConfigurationInstanceTypeOverride;
import com.pulumi.alicloud.ess.outputs.ScalingConfigurationSpotPriceLimit;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Export;
import com.pulumi.core.annotations.ResourceType;
import com.pulumi.core.internal.Codegen;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.Object;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import javax.annotation.Nullable;

/**
 * Provides a ESS scaling configuration resource.
 * 
 * > **NOTE:** Several instance types have outdated in some regions and availability zones, such as `ecs.t1.*`, `ecs.s2.*`, `ecs.n1.*` and so on. If you want to keep them, you should set `is_outdated` to true. For more about the upgraded instance type, refer to `alicloud.ecs.getInstanceTypes` datasource.
 * 
 * > **NOTE:** Available since v1.39.0.
 * 
 * ## Example Usage
 * 
 * <!--Start PulumiCodeChooser -->
 * 
 * {@code
 * package generated_program;
 * 
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.random.integer;
 * import com.pulumi.random.IntegerArgs;
 * import com.pulumi.alicloud.AlicloudFunctions;
 * import com.pulumi.alicloud.inputs.GetZonesArgs;
 * import com.pulumi.alicloud.ecs.EcsFunctions;
 * import com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;
 * import com.pulumi.alicloud.ecs.inputs.GetImagesArgs;
 * import com.pulumi.alicloud.vpc.Network;
 * import com.pulumi.alicloud.vpc.NetworkArgs;
 * import com.pulumi.alicloud.vpc.Switch;
 * import com.pulumi.alicloud.vpc.SwitchArgs;
 * import com.pulumi.alicloud.ecs.SecurityGroup;
 * import com.pulumi.alicloud.ecs.SecurityGroupArgs;
 * import com.pulumi.alicloud.ecs.SecurityGroupRule;
 * import com.pulumi.alicloud.ecs.SecurityGroupRuleArgs;
 * import com.pulumi.alicloud.ess.ScalingGroup;
 * import com.pulumi.alicloud.ess.ScalingGroupArgs;
 * import com.pulumi.alicloud.ess.ScalingConfiguration;
 * import com.pulumi.alicloud.ess.ScalingConfigurationArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * 
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 * 
 *     public static void stack(Context ctx) {
 *         final var config = ctx.config();
 *         final var name = config.get("name").orElse("terraform-example");
 *         var defaultInteger = new Integer("defaultInteger", IntegerArgs.builder()
 *             .min(10000)
 *             .max(99999)
 *             .build());
 * 
 *         final var myName = String.format("%s-%s", name,defaultInteger.result());
 * 
 *         final var default = AlicloudFunctions.getZones(GetZonesArgs.builder()
 *             .availableDiskCategory("cloud_efficiency")
 *             .availableResourceCreation("VSwitch")
 *             .build());
 * 
 *         final var defaultGetInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()
 *             .availabilityZone(default_.zones()[0].id())
 *             .cpuCoreCount(2)
 *             .memorySize(4)
 *             .build());
 * 
 *         final var defaultGetImages = EcsFunctions.getImages(GetImagesArgs.builder()
 *             .nameRegex("^ubuntu_18.*64")
 *             .mostRecent(true)
 *             .owners("system")
 *             .build());
 * 
 *         var defaultNetwork = new Network("defaultNetwork", NetworkArgs.builder()
 *             .vpcName(myName)
 *             .cidrBlock("172.16.0.0/16")
 *             .build());
 * 
 *         var defaultSwitch = new Switch("defaultSwitch", SwitchArgs.builder()
 *             .vpcId(defaultNetwork.id())
 *             .cidrBlock("172.16.0.0/24")
 *             .zoneId(default_.zones()[0].id())
 *             .vswitchName(myName)
 *             .build());
 * 
 *         var defaultSecurityGroup = new SecurityGroup("defaultSecurityGroup", SecurityGroupArgs.builder()
 *             .name(myName)
 *             .vpcId(defaultNetwork.id())
 *             .build());
 * 
 *         var defaultSecurityGroupRule = new SecurityGroupRule("defaultSecurityGroupRule", SecurityGroupRuleArgs.builder()
 *             .type("ingress")
 *             .ipProtocol("tcp")
 *             .nicType("intranet")
 *             .policy("accept")
 *             .portRange("22/22")
 *             .priority(1)
 *             .securityGroupId(defaultSecurityGroup.id())
 *             .cidrIp("172.16.0.0/24")
 *             .build());
 * 
 *         var defaultScalingGroup = new ScalingGroup("defaultScalingGroup", ScalingGroupArgs.builder()
 *             .minSize(1)
 *             .maxSize(1)
 *             .scalingGroupName(myName)
 *             .removalPolicies(            
 *                 "OldestInstance",
 *                 "NewestInstance")
 *             .vswitchIds(defaultSwitch.id())
 *             .build());
 * 
 *         var defaultScalingConfiguration = new ScalingConfiguration("defaultScalingConfiguration", ScalingConfigurationArgs.builder()
 *             .scalingGroupId(defaultScalingGroup.id())
 *             .imageId(defaultGetImages.applyValue(getImagesResult -> getImagesResult.images()[0].id()))
 *             .instanceType(defaultGetInstanceTypes.applyValue(getInstanceTypesResult -> getInstanceTypesResult.instanceTypes()[0].id()))
 *             .securityGroupId(defaultSecurityGroup.id())
 *             .forceDelete(true)
 *             .active(true)
 *             .build());
 * 
 *     }
 * }
 * }
 * 
* <!--End PulumiCodeChooser --> * * ## Module Support * * You can use to the existing autoscaling module * to create a configuration, scaling group and lifecycle hook one-click. * * ## Import * * ESS scaling configuration can be imported using the id, e.g. * * ```sh * $ pulumi import alicloud:ess/scalingConfiguration:ScalingConfiguration example asg-abc123456 * ``` * */ @ResourceType(type="alicloud:ess/scalingConfiguration:ScalingConfiguration") public class ScalingConfiguration extends com.pulumi.resources.CustomResource { /** * Whether active current scaling configuration in the specified scaling group. Default to `false`. * */ @Export(name="active", refs={Boolean.class}, tree="[0]") private Output active; /** * @return Whether active current scaling configuration in the specified scaling group. Default to `false`. * */ public Output active() { return this.active; } /** * Performance mode of the t5 burstable instance. Valid values: 'Standard', 'Unlimited'. * */ @Export(name="creditSpecification", refs={String.class}, tree="[0]") private Output creditSpecification; /** * @return Performance mode of the t5 burstable instance. Valid values: 'Standard', 'Unlimited'. * */ public Output> creditSpecification() { return Codegen.optional(this.creditSpecification); } /** * DataDisk mappings to attach to ecs instance. See `data_disk` below for details. * */ @Export(name="dataDisks", refs={List.class,ScalingConfigurationDataDisk.class}, tree="[0,1]") private Output> dataDisks; /** * @return DataDisk mappings to attach to ecs instance. See `data_disk` below for details. * */ public Output>> dataDisks() { return Codegen.optional(this.dataDisks); } /** * Whether enable the specified scaling group(make it active) to which the current scaling configuration belongs. * */ @Export(name="enable", refs={Boolean.class}, tree="[0]") private Output enable; /** * @return Whether enable the specified scaling group(make it active) to which the current scaling configuration belongs. * */ public Output> enable() { return Codegen.optional(this.enable); } /** * The last scaling configuration will be deleted forcibly with deleting its scaling group. Default to false. * */ @Export(name="forceDelete", refs={Boolean.class}, tree="[0]") private Output forceDelete; /** * @return The last scaling configuration will be deleted forcibly with deleting its scaling group. Default to false. * */ public Output> forceDelete() { return Codegen.optional(this.forceDelete); } /** * Hostname of an ECS instance. * */ @Export(name="hostName", refs={String.class}, tree="[0]") private Output hostName; /** * @return Hostname of an ECS instance. * */ public Output> hostName() { return Codegen.optional(this.hostName); } /** * ID of an image file, indicating the image resource selected when an instance is enabled. * */ @Export(name="imageId", refs={String.class}, tree="[0]") private Output imageId; /** * @return ID of an image file, indicating the image resource selected when an instance is enabled. * */ public Output> imageId() { return Codegen.optional(this.imageId); } /** * Name of an image file, indicating the image resource selected when an instance is enabled. * */ @Export(name="imageName", refs={String.class}, tree="[0]") private Output imageName; /** * @return Name of an image file, indicating the image resource selected when an instance is enabled. * */ public Output> imageName() { return Codegen.optional(this.imageName); } /** * It has been deprecated from version 1.6.0. New resource `alicloud.ess.Attachment` replaces it. * * @deprecated * Field 'instance_ids' has been deprecated from provider version 1.6.0. New resource 'alicloud_ess_attachment' replaces it. * */ @Deprecated /* Field 'instance_ids' has been deprecated from provider version 1.6.0. New resource 'alicloud_ess_attachment' replaces it. */ @Export(name="instanceIds", refs={List.class,String.class}, tree="[0,1]") private Output> instanceIds; /** * @return It has been deprecated from version 1.6.0. New resource `alicloud.ess.Attachment` replaces it. * */ public Output>> instanceIds() { return Codegen.optional(this.instanceIds); } /** * Name of an ECS instance. Default to "ESS-Instance". It is valid from version 1.7.1. * */ @Export(name="instanceName", refs={String.class}, tree="[0]") private Output instanceName; /** * @return Name of an ECS instance. Default to "ESS-Instance". It is valid from version 1.7.1. * */ public Output> instanceName() { return Codegen.optional(this.instanceName); } /** * intelligent configuration mode. In this mode, you only need to specify the number of vCPUs, memory size, instance family, and maximum price. The system selects an instance type that is provided at the lowest price based on your configurations to create ECS instances. This mode is available only for scaling groups that reside in virtual private clouds (VPCs). This mode helps reduce the failures of scale-out activities caused by insufficient inventory of instance types. See `instance_pattern_info` below for details. * */ @Export(name="instancePatternInfos", refs={List.class,ScalingConfigurationInstancePatternInfo.class}, tree="[0,1]") private Output> instancePatternInfos; /** * @return intelligent configuration mode. In this mode, you only need to specify the number of vCPUs, memory size, instance family, and maximum price. The system selects an instance type that is provided at the lowest price based on your configurations to create ECS instances. This mode is available only for scaling groups that reside in virtual private clouds (VPCs). This mode helps reduce the failures of scale-out activities caused by insufficient inventory of instance types. See `instance_pattern_info` below for details. * */ public Output>> instancePatternInfos() { return Codegen.optional(this.instancePatternInfos); } /** * Resource type of an ECS instance. * */ @Export(name="instanceType", refs={String.class}, tree="[0]") private Output instanceType; /** * @return Resource type of an ECS instance. * */ public Output> instanceType() { return Codegen.optional(this.instanceType); } /** * specify the weight of instance type. See `instance_type_override` below for details. * */ @Export(name="instanceTypeOverrides", refs={List.class,ScalingConfigurationInstanceTypeOverride.class}, tree="[0,1]") private Output> instanceTypeOverrides; /** * @return specify the weight of instance type. See `instance_type_override` below for details. * */ public Output>> instanceTypeOverrides() { return Codegen.optional(this.instanceTypeOverrides); } /** * Resource types of an ECS instance. * */ @Export(name="instanceTypes", refs={List.class,String.class}, tree="[0,1]") private Output> instanceTypes; /** * @return Resource types of an ECS instance. * */ public Output>> instanceTypes() { return Codegen.optional(this.instanceTypes); } /** * Network billing type, Values: PayByBandwidth or PayByTraffic. Default to `PayByBandwidth`. * */ @Export(name="internetChargeType", refs={String.class}, tree="[0]") private Output internetChargeType; /** * @return Network billing type, Values: PayByBandwidth or PayByTraffic. Default to `PayByBandwidth`. * */ public Output> internetChargeType() { return Codegen.optional(this.internetChargeType); } /** * Maximum incoming bandwidth from the public network, measured in Mbps (Mega bit per second). The value range is [1,200]. * */ @Export(name="internetMaxBandwidthIn", refs={Integer.class}, tree="[0]") private Output internetMaxBandwidthIn; /** * @return Maximum incoming bandwidth from the public network, measured in Mbps (Mega bit per second). The value range is [1,200]. * */ public Output internetMaxBandwidthIn() { return this.internetMaxBandwidthIn; } /** * Maximum outgoing bandwidth from the public network, measured in Mbps (Mega bit per second). The value range for PayByBandwidth is [0,1024]. * */ @Export(name="internetMaxBandwidthOut", refs={Integer.class}, tree="[0]") private Output internetMaxBandwidthOut; /** * @return Maximum outgoing bandwidth from the public network, measured in Mbps (Mega bit per second). The value range for PayByBandwidth is [0,1024]. * */ public Output> internetMaxBandwidthOut() { return Codegen.optional(this.internetMaxBandwidthOut); } /** * It has been deprecated on instance resource. All the launched alicloud instances will be I/O optimized. * * @deprecated * Attribute io_optimized has been deprecated on instance resource. All the launched alicloud instances will be IO optimized. Suggest to remove it from your template. * */ @Deprecated /* Attribute io_optimized has been deprecated on instance resource. All the launched alicloud instances will be IO optimized. Suggest to remove it from your template. */ @Export(name="ioOptimized", refs={String.class}, tree="[0]") private Output ioOptimized; /** * @return It has been deprecated on instance resource. All the launched alicloud instances will be I/O optimized. * */ public Output> ioOptimized() { return Codegen.optional(this.ioOptimized); } /** * Whether to use outdated instance type. Default to false. * */ @Export(name="isOutdated", refs={Boolean.class}, tree="[0]") private Output isOutdated; /** * @return Whether to use outdated instance type. Default to false. * */ public Output> isOutdated() { return Codegen.optional(this.isOutdated); } /** * The name of key pair that can login ECS instance successfully without password. If it is specified, the password would be invalid. * */ @Export(name="keyName", refs={String.class}, tree="[0]") private Output keyName; /** * @return The name of key pair that can login ECS instance successfully without password. If it is specified, the password would be invalid. * */ public Output> keyName() { return Codegen.optional(this.keyName); } /** * An KMS encrypts password used to a db account. If the `password` is filled in, this field will be ignored. * */ @Export(name="kmsEncryptedPassword", refs={String.class}, tree="[0]") private Output kmsEncryptedPassword; /** * @return An KMS encrypts password used to a db account. If the `password` is filled in, this field will be ignored. * */ public Output> kmsEncryptedPassword() { return Codegen.optional(this.kmsEncryptedPassword); } /** * An KMS encryption context used to decrypt `kms_encrypted_password` before creating or updating a db account with `kms_encrypted_password`. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when `kms_encrypted_password` is set. * */ @Export(name="kmsEncryptionContext", refs={Map.class,String.class,Object.class}, tree="[0,1,2]") private Output> kmsEncryptionContext; /** * @return An KMS encryption context used to decrypt `kms_encrypted_password` before creating or updating a db account with `kms_encrypted_password`. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when `kms_encrypted_password` is set. * */ public Output>> kmsEncryptionContext() { return Codegen.optional(this.kmsEncryptionContext); } /** * Indicates whether to overwrite the existing data. Default to false. * */ @Export(name="override", refs={Boolean.class}, tree="[0]") private Output override; /** * @return Indicates whether to overwrite the existing data. Default to false. * */ public Output> override() { return Codegen.optional(this.override); } /** * The password of the ECS instance. The password must be 8 to 30 characters in length. It must contains at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include `() ~!{@literal @}#$%^&*-_+=\|{}[]:;'<>,.?/`, The password of Windows-based instances cannot start with a forward slash (/). * */ @Export(name="password", refs={String.class}, tree="[0]") private Output password; /** * @return The password of the ECS instance. The password must be 8 to 30 characters in length. It must contains at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include `() ~!{@literal @}#$%^&*-_+=\|{}[]:;'<>,.?/`, The password of Windows-based instances cannot start with a forward slash (/). * */ public Output> password() { return Codegen.optional(this.password); } /** * Specifies whether to use the password that is predefined in the image. If the PasswordInherit parameter is set to true, the `password` and `kms_encrypted_password` will be ignored. You must ensure that the selected image has a password configured. * */ @Export(name="passwordInherit", refs={Boolean.class}, tree="[0]") private Output passwordInherit; /** * @return Specifies whether to use the password that is predefined in the image. If the PasswordInherit parameter is set to true, the `password` and `kms_encrypted_password` will be ignored. You must ensure that the selected image has a password configured. * */ public Output> passwordInherit() { return Codegen.optional(this.passwordInherit); } /** * ID of resource group. * */ @Export(name="resourceGroupId", refs={String.class}, tree="[0]") private Output resourceGroupId; /** * @return ID of resource group. * */ public Output> resourceGroupId() { return Codegen.optional(this.resourceGroupId); } /** * Instance RAM role name. The name is provided and maintained by RAM. You can use `alicloud.ram.Role` to create a new one. * */ @Export(name="roleName", refs={String.class}, tree="[0]") private Output roleName; /** * @return Instance RAM role name. The name is provided and maintained by RAM. You can use `alicloud.ram.Role` to create a new one. * */ public Output> roleName() { return Codegen.optional(this.roleName); } /** * Name shown for the scheduled task. which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores `_`, hypens `-`, and decimal point `.`. If this parameter value is not specified, the default value is ScalingConfigurationId. * */ @Export(name="scalingConfigurationName", refs={String.class}, tree="[0]") private Output scalingConfigurationName; /** * @return Name shown for the scheduled task. which must contain 2-64 characters (English or Chinese), starting with numbers, English letters or Chinese characters, and can contain number, underscores `_`, hypens `-`, and decimal point `.`. If this parameter value is not specified, the default value is ScalingConfigurationId. * */ public Output scalingConfigurationName() { return this.scalingConfigurationName; } /** * ID of the scaling group of a scaling configuration. * */ @Export(name="scalingGroupId", refs={String.class}, tree="[0]") private Output scalingGroupId; /** * @return ID of the scaling group of a scaling configuration. * */ public Output scalingGroupId() { return this.scalingGroupId; } /** * ID of the security group used to create new instance. It is conflict with `security_group_ids`. * */ @Export(name="securityGroupId", refs={String.class}, tree="[0]") private Output securityGroupId; /** * @return ID of the security group used to create new instance. It is conflict with `security_group_ids`. * */ public Output> securityGroupId() { return Codegen.optional(this.securityGroupId); } /** * List IDs of the security group used to create new instances. It is conflict with `security_group_id`. * */ @Export(name="securityGroupIds", refs={List.class,String.class}, tree="[0,1]") private Output> securityGroupIds; /** * @return List IDs of the security group used to create new instances. It is conflict with `security_group_id`. * */ public Output>> securityGroupIds() { return Codegen.optional(this.securityGroupIds); } /** * Sets the maximum price hourly for instance types. See `spot_price_limit` below for details. * * > **NOTE:** Before enabling the scaling group, it must have a active scaling configuration. * * > **NOTE:** If the number of attached ECS instances by `instance_ids` is smaller than MinSize, the Auto Scaling Service will automatically create ECS Pay-As-You-Go instance to cater to MinSize. For example, MinSize=5 and 2 existing ECS instances has been attached to the scaling group. When the scaling group is enabled, it will create 3 instnaces automatically based on its current active scaling configuration. * * > **NOTE:** Restrictions on attaching ECS instances: * * - The attached ECS instances and the scaling group must have the same region and network type(`Classic` or `VPC`). * - The attached ECS instances and the instance with active scaling configurations must have the same instance type. * - The attached ECS instances must in the running state. * - The attached ECS instances has not been attached to other scaling groups. * - The attached ECS instances supports Subscription and Pay-As-You-Go payment methods. * * > **NOTE:** The last scaling configuration can't be set to inactive and deleted alone. * */ @Export(name="spotPriceLimits", refs={List.class,ScalingConfigurationSpotPriceLimit.class}, tree="[0,1]") private Output> spotPriceLimits; /** * @return Sets the maximum price hourly for instance types. See `spot_price_limit` below for details. * * > **NOTE:** Before enabling the scaling group, it must have a active scaling configuration. * * > **NOTE:** If the number of attached ECS instances by `instance_ids` is smaller than MinSize, the Auto Scaling Service will automatically create ECS Pay-As-You-Go instance to cater to MinSize. For example, MinSize=5 and 2 existing ECS instances has been attached to the scaling group. When the scaling group is enabled, it will create 3 instnaces automatically based on its current active scaling configuration. * * > **NOTE:** Restrictions on attaching ECS instances: * * - The attached ECS instances and the scaling group must have the same region and network type(`Classic` or `VPC`). * - The attached ECS instances and the instance with active scaling configurations must have the same instance type. * - The attached ECS instances must in the running state. * - The attached ECS instances has not been attached to other scaling groups. * - The attached ECS instances supports Subscription and Pay-As-You-Go payment methods. * * > **NOTE:** The last scaling configuration can't be set to inactive and deleted alone. * */ public Output>> spotPriceLimits() { return Codegen.optional(this.spotPriceLimits); } /** * The spot strategy for a Pay-As-You-Go instance. Valid values: `NoSpot`, `SpotAsPriceGo`, `SpotWithPriceLimit`. * */ @Export(name="spotStrategy", refs={String.class}, tree="[0]") private Output spotStrategy; /** * @return The spot strategy for a Pay-As-You-Go instance. Valid values: `NoSpot`, `SpotAsPriceGo`, `SpotWithPriceLimit`. * */ public Output> spotStrategy() { return Codegen.optional(this.spotStrategy); } /** * The another scaling configuration which will be active automatically and replace current configuration when setting `active` to 'false'. It is invalid when `active` is 'true'. * */ @Export(name="substitute", refs={String.class}, tree="[0]") private Output substitute; /** * @return The another scaling configuration which will be active automatically and replace current configuration when setting `active` to 'false'. It is invalid when `active` is 'true'. * */ public Output substitute() { return this.substitute; } /** * The id of auto snapshot policy for system disk. * */ @Export(name="systemDiskAutoSnapshotPolicyId", refs={String.class}, tree="[0]") private Output systemDiskAutoSnapshotPolicyId; /** * @return The id of auto snapshot policy for system disk. * */ public Output> systemDiskAutoSnapshotPolicyId() { return Codegen.optional(this.systemDiskAutoSnapshotPolicyId); } /** * Category of the system disk. The parameter value options are `ephemeral_ssd`, `cloud_efficiency`, `cloud_ssd`, `cloud_essd` and `cloud`. `cloud` only is used to some no I/O optimized instance. Default to `cloud_efficiency`. * */ @Export(name="systemDiskCategory", refs={String.class}, tree="[0]") private Output systemDiskCategory; /** * @return Category of the system disk. The parameter value options are `ephemeral_ssd`, `cloud_efficiency`, `cloud_ssd`, `cloud_essd` and `cloud`. `cloud` only is used to some no I/O optimized instance. Default to `cloud_efficiency`. * */ public Output> systemDiskCategory() { return Codegen.optional(this.systemDiskCategory); } /** * The description of the system disk. The description must be 2 to 256 characters in length and cannot start with http:// or https://. * */ @Export(name="systemDiskDescription", refs={String.class}, tree="[0]") private Output systemDiskDescription; /** * @return The description of the system disk. The description must be 2 to 256 characters in length and cannot start with http:// or https://. * */ public Output> systemDiskDescription() { return Codegen.optional(this.systemDiskDescription); } /** * Whether to encrypt the system disk. * */ @Export(name="systemDiskEncrypted", refs={Boolean.class}, tree="[0]") private Output systemDiskEncrypted; /** * @return Whether to encrypt the system disk. * */ public Output> systemDiskEncrypted() { return Codegen.optional(this.systemDiskEncrypted); } /** * The name of the system disk. It must be 2 to 128 characters in length. It must start with a letter and cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (_), and hyphens (-). Default value: null. * */ @Export(name="systemDiskName", refs={String.class}, tree="[0]") private Output systemDiskName; /** * @return The name of the system disk. It must be 2 to 128 characters in length. It must start with a letter and cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (_), and hyphens (-). Default value: null. * */ public Output> systemDiskName() { return Codegen.optional(this.systemDiskName); } /** * The performance level of the ESSD used as the system disk. * */ @Export(name="systemDiskPerformanceLevel", refs={String.class}, tree="[0]") private Output systemDiskPerformanceLevel; /** * @return The performance level of the ESSD used as the system disk. * */ public Output> systemDiskPerformanceLevel() { return Codegen.optional(this.systemDiskPerformanceLevel); } /** * Size of system disk, in GiB. Optional values: cloud: 20-500, cloud_efficiency: 20-500, cloud_ssd: 20-500, ephemeral_ssd: 20-500 The default value is max{40, ImageSize}. If this parameter is set, the system disk size must be greater than or equal to max{40, ImageSize}. * */ @Export(name="systemDiskSize", refs={Integer.class}, tree="[0]") private Output systemDiskSize; /** * @return Size of system disk, in GiB. Optional values: cloud: 20-500, cloud_efficiency: 20-500, cloud_ssd: 20-500, ephemeral_ssd: 20-500 The default value is max{40, ImageSize}. If this parameter is set, the system disk size must be greater than or equal to max{40, ImageSize}. * */ public Output> systemDiskSize() { return Codegen.optional(this.systemDiskSize); } /** * A mapping of tags to assign to the resource. It will be applied for ECS instances finally. * - Key: It can be up to 64 characters in length. It cannot begin with "aliyun", "http://", or "https://". It cannot be a null string. * - Value: It can be up to 128 characters in length. It cannot begin with "aliyun", "http://", or "https://" It can be a null string. * */ @Export(name="tags", refs={Map.class,String.class,Object.class}, tree="[0,1,2]") private Output> tags; /** * @return A mapping of tags to assign to the resource. It will be applied for ECS instances finally. * - Key: It can be up to 64 characters in length. It cannot begin with "aliyun", "http://", or "https://". It cannot be a null string. * - Value: It can be up to 128 characters in length. It cannot begin with "aliyun", "http://", or "https://" It can be a null string. * */ public Output>> tags() { return Codegen.optional(this.tags); } /** * User-defined data to customize the startup behaviors of the ECS instance and to pass data into the ECS instance. * */ @Export(name="userData", refs={String.class}, tree="[0]") private Output userData; /** * @return User-defined data to customize the startup behaviors of the ECS instance and to pass data into the ECS instance. * */ public Output> userData() { return Codegen.optional(this.userData); } /** * * @param name The _unique_ name of the resulting resource. */ public ScalingConfiguration(String name) { this(name, ScalingConfigurationArgs.Empty); } /** * * @param name The _unique_ name of the resulting resource. * @param args The arguments to use to populate this resource's properties. */ public ScalingConfiguration(String name, ScalingConfigurationArgs args) { this(name, args, null); } /** * * @param name The _unique_ name of the resulting resource. * @param args The arguments to use to populate this resource's properties. * @param options A bag of options that control this resource's behavior. */ public ScalingConfiguration(String name, ScalingConfigurationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("alicloud:ess/scalingConfiguration:ScalingConfiguration", name, args == null ? ScalingConfigurationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); } private ScalingConfiguration(String name, Output id, @Nullable ScalingConfigurationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("alicloud:ess/scalingConfiguration:ScalingConfiguration", name, state, makeResourceOptions(options, id)); } private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); } /** * Get an existing Host resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state * @param options Optional settings to control the behavior of the CustomResource. */ public static ScalingConfiguration get(String name, Output id, @Nullable ScalingConfigurationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { return new ScalingConfiguration(name, id, state, options); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy