in alibabacloudstack/resource_apsarastack_db_instance.go [23:231]
func resourceAlibabacloudStackDBInstance() *schema.Resource {
resource := &schema.Resource{
Timeouts: &schema.ResourceTimeout{
Create: schema.DefaultTimeout(40 * time.Minute),
Update: schema.DefaultTimeout(30 * time.Minute),
Delete: schema.DefaultTimeout(20 * time.Minute),
},
Schema: map[string]*schema.Schema{
"engine": {
Type: schema.TypeString,
ForceNew: true,
Required: true,
},
"engine_version": {
Type: schema.TypeString,
ForceNew: true,
Required: true,
},
"zone_id_slave1": {
Type: schema.TypeString,
Optional: true,
},
"zone_id_slave2": {
Type: schema.TypeString,
Optional: true,
},
"tde_status": {
Type: schema.TypeBool,
Optional: true,
},
"enable_ssl": {
Type: schema.TypeBool,
Optional: true,
ForceNew: false,
},
"storage_type": {
Type: schema.TypeString,
ForceNew: true,
ValidateFunc: validation.StringInSlice([]string{"local_ssd", "cloud_ssd", "cloud_pperf", "cloud_sperf"}, false),
Optional: true,
Computed: true,
Deprecated: "Field 'storage_type' is deprecated and will be removed in a future release. Please use new field 'db_instance_storage_type' instead.",
ConflictsWith: []string{"db_instance_storage_type"},
},
"db_instance_storage_type": {
Type: schema.TypeString,
ForceNew: true,
ValidateFunc: validation.StringInSlice([]string{"local_ssd", "cloud_ssd", "cloud_pperf", "cloud_sperf"}, false),
Optional: true,
Computed: true,
ConflictsWith: []string{"storage_type"},
},
"encryption_key": {
Type: schema.TypeString,
Optional: true,
},
"encryption": {
Type: schema.TypeBool,
Optional: true,
ForceNew: true,
Default: false,
},
"instance_type": {
Type: schema.TypeString,
Optional: true,
Computed: true,
Deprecated: "Field 'instance_type' is deprecated and will be removed in a future release. Please use new field 'db_instance_class' instead.",
ConflictsWith: []string{"db_instance_class"},
},
"db_instance_class": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ConflictsWith: []string{"instance_type"},
},
"instance_storage": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
Deprecated: "Field 'instance_storage' is deprecated and will be removed in a future release. Please use new field 'db_instance_storage' instead.",
ConflictsWith: []string{"db_instance_storage"},
},
"db_instance_storage": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
ConflictsWith: []string{"instance_storage"},
},
"instance_charge_type": {
Type: schema.TypeString,
ValidateFunc: validation.StringInSlice([]string{string(Postpaid), string(Prepaid)}, false),
Optional: true,
Computed: true,
Deprecated: "Field 'instance_charge_type' is deprecated and will be removed in a future release. Please use new field 'payment_type' instead.",
ConflictsWith: []string{"payment_type"},
},
"payment_type": {
Type: schema.TypeString,
ValidateFunc: validation.StringInSlice([]string{string(Postpaid), string(Prepaid)}, false),
Optional: true,
Computed: true,
ConflictsWith: []string{"instance_charge_type"},
},
"period": {
Type: schema.TypeInt,
ValidateFunc: validation.IntInSlice([]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36}),
Optional: true,
Default: 1,
DiffSuppressFunc: PostPaidDiffSuppressFunc,
},
"monitoring_period": {
Type: schema.TypeInt,
ValidateFunc: validation.IntInSlice([]int{5, 60, 300}),
Optional: true,
Computed: true,
},
"auto_renew": {
Type: schema.TypeBool,
Optional: true,
Default: false,
DiffSuppressFunc: PostPaidDiffSuppressFunc,
},
"auto_renew_period": {
Type: schema.TypeInt,
ValidateFunc: validation.IntBetween(1, 12),
Optional: true,
Default: 1,
DiffSuppressFunc: PostPaidAndRenewDiffSuppressFunc,
},
"zone_id": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
Computed: true,
},
"vswitch_id": {
Type: schema.TypeString,
ForceNew: true,
Optional: true,
},
"instance_name": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ValidateFunc: validation.StringLenBetween(2, 256),
Deprecated: "Field 'instance_name' is deprecated and will be removed in a future release. Please use new field 'db_instance_description' instead.",
ConflictsWith: []string{"db_instance_description"},
},
"db_instance_description": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ValidateFunc: validation.StringLenBetween(2, 256),
ConflictsWith: []string{"instance_name"},
},
"connection_string": {
Type: schema.TypeString,
Computed: true,
},
"port": {
Type: schema.TypeString,
Computed: true,
},
"security_ips": {
Type: schema.TypeSet,
Elem: &schema.Schema{Type: schema.TypeString},
Computed: true,
Optional: true,
},
"security_ip_mode": {
Type: schema.TypeString,
ValidateFunc: validation.StringInSlice([]string{NormalMode, SafetyMode}, false),
Optional: true,
Default: NormalMode,
},
"parameters": {
Type: schema.TypeSet,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
Required: true,
},
"value": {
Type: schema.TypeString,
Required: true,
},
},
},
Set: parameterToHash,
Optional: true,
Computed: true,
},
"tags": tagsSchema(),
"maintain_time": {
Type: schema.TypeString,
Optional: true,
Computed: true,
},
"role_arn": {
Type: schema.TypeString,
Optional: true,
Computed: true,
},
},
}
setResourceFunc(resource, resourceAlibabacloudStackDBInstanceCreate, resourceAlibabacloudStackDBInstanceRead, resourceAlibabacloudStackDBInstanceUpdate, resourceAlibabacloudStackDBInstanceDelete)
return resource
}