in alibabacloudstack/resource_apsarastack_adb_dbcluster.go [20:225]
func resourceAlibabacloudStackAdbDbCluster() *schema.Resource {
resource := &schema.Resource{
Timeouts: &schema.ResourceTimeout{
Create: schema.DefaultTimeout(50 * time.Minute),
Delete: schema.DefaultTimeout(50 * time.Minute),
Update: schema.DefaultTimeout(72 * time.Minute),
},
Schema: map[string]*schema.Schema{
"auto_renew_period": {
Type: schema.TypeInt,
Optional: true,
ValidateFunc: validation.IntInSlice([]int{1, 2, 3, 6, 12, 24, 36}),
Default: 1,
DiffSuppressFunc: adbPostPaidAndRenewDiffSuppressFunc,
},
"compute_resource": {
Type: schema.TypeString,
Optional: true,
DiffSuppressFunc: func(k, old, new string, d *schema.ResourceData) bool {
if v, ok := d.GetOk("mode"); ok && v.(string) == "reserver" {
return true
}
return false
},
},
/*"connection_string": {
Type: schema.TypeString,
Computed: true,
},*/
"db_cluster_category": {
Type: schema.TypeString,
Required: true,
ValidateFunc: validation.StringInSlice([]string{"Basic", "Cluster", "basic", "cluster"}, false),
},
"db_cluster_class": {
Type: schema.TypeString,
Optional: true,
Deprecated: "It duplicates with attribute db_node_class and is deprecated from 1.121.2.",
},
"storage_resource": {
Type: schema.TypeString,
Optional: true,
Computed: true,
},
"storage_type": {
Type: schema.TypeString,
Optional: true,
Computed: true,
},
"db_cluster_version": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
ValidateFunc: validation.StringInSlice([]string{"3.0"}, false),
Default: "3.0",
},
"cluster_type": {
Type: schema.TypeString,
Required: true,
ValidateFunc: validation.StringInSlice([]string{"analyticdb", "AnalyticdbOnPanguHybrid", "AnalyticdbOnPanguSSD"}, false),
},
"cpu_type": {
Type: schema.TypeString,
Required: true,
ValidateFunc: validation.StringInSlice([]string{"intel", "hygon"}, false),
},
"db_node_class": {
Type: schema.TypeString,
Optional: true,
Computed: true,
},
"db_node_count": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
},
"executor_count": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
},
"db_node_storage": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
},
"description": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ValidateFunc: validation.StringLenBetween(2, 256),
},
//"elastic_io_resource": {
// Type: schema.TypeInt,
// Optional: true,
// Default: 0,
// DiffSuppressFunc: func(k, old, new string, d *schema.ResourceData) bool {
// if v, ok := d.GetOk("mode"); ok && v.(string) == "reserver" {
// return true
// }
// return false
// },
//},
"maintain_time": {
Type: schema.TypeString,
Optional: true,
Computed: true,
},
"mode": {
Type: schema.TypeString,
Required: true,
ValidateFunc: validation.StringInSlice([]string{"reserver", "flexible"}, false),
},
"modify_type": {
Type: schema.TypeString,
Optional: true,
},
"payment_type": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ForceNew: true,
ValidateFunc: validation.StringInSlice([]string{"PayAsYouGo", "Subscription"}, false),
Deprecated: "Field 'payment_type' is deprecated and will be removed in a future release. Please use new field 'pay_type' instead.",
ConflictsWith: []string{"pay_type"},
},
"pay_type": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ForceNew: true,
ValidateFunc: validation.StringInSlice([]string{"PostPaid", "PrePaid"}, false),
ConflictsWith: []string{"payment_type"},
},
"period": {
Type: schema.TypeInt,
ValidateFunc: validation.IntInSlice([]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36}),
DiffSuppressFunc: adbPostPaidDiffSuppressFunc,
Optional: true,
},
"renewal_status": {
Type: schema.TypeString,
Optional: true,
ValidateFunc: validation.StringInSlice([]string{"AutoRenewal", "Normal", "NotRenewal"}, false),
Default: "NotRenewal",
DiffSuppressFunc: adbPostPaidDiffSuppressFunc,
},
"resource_group_id": {
Type: schema.TypeString,
Optional: true,
Computed: true,
},
"security_ips": {
Type: schema.TypeSet,
Optional: true,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
},
"status": {
Type: schema.TypeString,
Computed: true,
},
//"tags": tagsSchema(),
"vswitch_id": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
"instance_inner_connection": {
Type: schema.TypeString,
Deprecated: "Field 'instance_inner_connection' is deprecated and will be removed in a future release. Please use new field 'connection_string' instead.",
Computed: true,
},
"instance_inner_port": {
Type: schema.TypeString,
Deprecated: "Field 'instance_inner_port' is deprecated and will be removed in a future release. Please use new field 'port' instead.",
Computed: true,
},
"instance_vpc_id": {
Type: schema.TypeString,
Computed: true,
},
"connection_string": {
Type: schema.TypeString,
Computed: true,
},
"port": {
Type: schema.TypeString,
Computed: true,
},
"zone_id": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ForceNew: true,
},
},
}
setResourceFunc(resource, resourceAlibabacloudStackAdbDbClusterCreate,
resourceAlibabacloudStackAdbDbClusterRead,
resourceAlibabacloudStackAdbDbClusterUpdate,
resourceAlibabacloudStackAdbDbClusterDelete)
return resource
}