in alibabacloudstack/resource_apsarastack_autoscaling_scalingconfiguration.go [20:223]
func resourceAlibabacloudStackEssScalingConfiguration() *schema.Resource {
resource := &schema.Resource{
Schema: map[string]*schema.Schema{
"status": {
Type: schema.TypeBool,
Optional: true,
Computed: true,
Deprecated: "Field 'status' is deprecated and will be removed in a future release. Please use new field 'active' instead.",
ConflictsWith: []string{"active"},
},
"active": {
Type: schema.TypeBool,
Optional: true,
Computed: true,
ConflictsWith: []string{"status"},
},
"enable": {
Type: schema.TypeBool,
Optional: true,
},
"scaling_group_id": {
Type: schema.TypeString,
ForceNew: true,
Required: true,
},
"image_id": {
Type: schema.TypeString,
Required: true,
},
"instance_type": {
Type: schema.TypeString,
Required: true,
ValidateFunc: validation.StringMatch(regexp.MustCompile(`^ecs\..*`), "prefix must be 'ecs.'"),
},
"instance_types": {
Type: schema.TypeList,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Optional: true,
Computed: true,
MaxItems: int(MaxScalingConfigurationInstanceTypes),
},
"security_group_ids": {
Type: schema.TypeList,
Required: true,
Elem: &schema.Schema{Type: schema.TypeString},
},
"deployment_set_id": {
Type: schema.TypeString,
Required: true,
},
"zone_id": {
Type: schema.TypeString,
Optional: true,
Computed: true,
},
"scaling_configuration_name": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ValidateFunc: validation.StringLenBetween(2, 40),
},
"internet_max_bandwidth_in": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
},
"system_disk_category": {
Type: schema.TypeString,
Optional: true,
Default: DiskCloudEfficiency,
ValidateFunc: validation.StringInSlice([]string{"cloud", "ephemeral_ssd", "cloud_ssd", "cloud_efficiency", "cloud_pperf", "cloud_sperf"}, false),
},
"system_disk_size": {
Type: schema.TypeInt,
Optional: true,
ValidateFunc: validation.IntBetween(40, 500),
},
"data_disk": {
Optional: true,
Type: schema.TypeList,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"size": {
Type: schema.TypeInt,
Optional: true,
},
"category": {
Type: schema.TypeString,
Optional: true,
Default: "cloud",
ValidateFunc: validation.StringInSlice([]string{"all", "cloud", "ephemeral_ssd", "cloud_efficiency", "cloud_ssd", "cloud_pperf", "cloud_sperf"}, false),
},
"snapshot_id": {
Type: schema.TypeString,
Optional: true,
},
"device": {
Type: schema.TypeString,
Optional: true,
},
"encrypted": {
Type: schema.TypeString,
Optional: true,
},
"kms_key_id": {
Type: schema.TypeString,
Optional: true,
},
"delete_with_instance": {
Type: schema.TypeBool,
Optional: true,
Default: true,
},
"description": {
Type: schema.TypeString,
Optional: true,
},
"auto_snapshot_policy_id": {
Type: schema.TypeString,
Optional: true,
},
"name": {
Type: schema.TypeString,
Optional: true,
},
},
},
},
"substitute": {
Type: schema.TypeString,
Optional: true,
Computed: true,
},
"system_disk_auto_snapshot_policy_id": {
Type: schema.TypeString,
Optional: true,
},
"is_outdated": {
Type: schema.TypeBool,
Optional: true,
Default: false,
},
"user_data": {
Type: schema.TypeString,
Optional: true,
},
"ram_role_name": {
Type: schema.TypeString,
Optional: true,
Computed: true,
Deprecated: "Field 'ram_role_name' is deprecated and will be removed in a future release. Please use new field 'role_name' instead.",
ConflictsWith: []string{"role_name"},
},
"role_name": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ConflictsWith: []string{"ram_role_name"},
},
"key_pair_name": {
Type: schema.TypeString,
Optional: true,
Computed: true,
Deprecated: "Field 'key_pair_name' is deprecated and will be removed in a future release. Please use new field 'key_name' instead.",
ConflictsWith: []string{"key_name"},
},
"key_name": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ConflictsWith: []string{"key_pair_name"},
},
"force_delete": {
Type: schema.TypeBool,
Optional: true,
Default: false,
},
"tags": {
Type: schema.TypeMap,
Optional: true,
},
"instance_name": {
Type: schema.TypeString,
Optional: true,
Default: "ESS-Instance",
ValidateFunc: validation.StringLenBetween(2, 128),
},
"override": {
Type: schema.TypeBool,
Optional: true,
Default: false,
},
"host_name": {
Type: schema.TypeString,
Optional: true,
},
},
}
setResourceFunc(resource, resourceAlibabacloudStackEssScalingConfigurationCreate,
resourceAlibabacloudStackEssScalingConfigurationRead, resourceAlibabacloudStackEssScalingConfigurationUpdate, resourceAlibabacloudStackEssScalingConfigurationDelete)
return resource
}