in alibabacloudstack/resource_apsarastack_hbase_cluster.go [17:219]
func resourceAlibabacloudStackHBaseInstance() *schema.Resource {
resource := &schema.Resource{
Timeouts: &schema.ResourceTimeout{
Create: schema.DefaultTimeout(30 * time.Minute),
Update: schema.DefaultTimeout(30 * time.Minute),
Delete: schema.DefaultTimeout(30 * time.Minute),
},
Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
Required: true,
ValidateFunc: validation.StringLenBetween(2, 128),
},
"zone_id": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ForceNew: true,
},
"engine": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
ValidateFunc: validation.StringInSlice([]string{"hbase", "hbaseue", "bds"}, false),
Default: "hbase",
},
"engine_version": {
Type: schema.TypeString,
Required: true,
ForceNew: true,
},
"master_instance_type": {
Type: schema.TypeString,
Required: true,
},
"master_instance_quantity": {
Type: schema.TypeInt,
Computed: true,
},
"core_instance_type": {
Type: schema.TypeString,
Required: true,
},
"core_instance_quantity": {
Type: schema.TypeInt,
ValidateFunc: validation.IntBetween(1, 200),
Optional: true,
Default: 2,
},
"core_disk_type": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
ValidateFunc: validation.StringInSlice([]string{"cloud_ssd", "cloud_essd_pl1", "cloud_efficiency", "local_hdd_pro", "local_ssd_pro", ""}, false),
DiffSuppressFunc: engineDiffSuppressFunc,
},
"core_disk_size": {
Type: schema.TypeInt,
Optional: true,
ValidateFunc: validation.Any(validation.IntBetween(20, 64000), validation.IntInSlice([]int{0})),
Default: 400,
DiffSuppressFunc: engineDiffSuppressFunc,
},
"pay_type": {
Type: schema.TypeString,
Optional: true,
ValidateFunc: validation.StringInSlice([]string{string(PostPaid), string(PrePaid)}, false),
Default: PostPaid,
},
"duration": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
ValidateFunc: validation.IntInSlice([]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36}),
DiffSuppressFunc: payTypePostPaidDiffSuppressFunc,
},
"auto_renew": {
Type: schema.TypeBool,
Optional: true,
ForceNew: true,
Computed: true,
DiffSuppressFunc: payTypePostPaidDiffSuppressFunc,
},
"vswitch_id": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
"cold_storage_size": {
Type: schema.TypeInt,
Optional: true,
ValidateFunc: validation.Any(validation.IntBetween(800, 1000000), validation.IntInSlice([]int{0})),
Default: 0,
},
"maintain_start_time": {
Type: schema.TypeString,
Optional: true,
Computed: true,
},
"maintain_end_time": {
Type: schema.TypeString,
Optional: true,
Computed: true,
},
"deletion_protection": {
Type: schema.TypeBool,
Optional: true,
Default: true,
},
"immediate_delete_flag": {
Type: schema.TypeBool,
Optional: true,
Default: false,
},
"tags": tagsSchema(),
"account": {
Type: schema.TypeString,
Optional: true,
ValidateFunc: validation.StringLenBetween(0, 128),
},
"password": {
Type: schema.TypeString,
Optional: true,
Sensitive: true,
ValidateFunc: validation.StringLenBetween(0, 128),
},
"ip_white": {
Type: schema.TypeString,
Optional: true,
Computed: true,
DiffSuppressFunc: whiteIpListDiffSuppressFunc,
},
"security_groups": {
Type: schema.TypeSet,
Optional: true,
Computed: true,
Elem: &schema.Schema{Type: schema.TypeString},
},
"ui_proxy_conn_addrs": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"conn_addr_port": {
Type: schema.TypeString,
Computed: true,
},
"conn_addr": {
Type: schema.TypeString,
Computed: true,
},
"net_type": {
Type: schema.TypeString,
Computed: true,
},
},
},
},
"zk_conn_addrs": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"conn_addr_port": {
Type: schema.TypeString,
Computed: true,
},
"conn_addr": {
Type: schema.TypeString,
Computed: true,
},
"net_type": {
Type: schema.TypeString,
Computed: true,
},
},
},
},
"slb_conn_addrs": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"conn_addr_port": {
Type: schema.TypeString,
Computed: true,
},
"conn_addr": {
Type: schema.TypeString,
Computed: true,
},
"net_type": {
Type: schema.TypeString,
Computed: true,
},
},
},
},
},
}
setResourceFunc(resource, resourceAlibabacloudStackHBaseInstanceCreate, resourceAlibabacloudStackHBaseInstanceRead, resourceAlibabacloudStackHBaseInstanceUpdate, resourceAlibabacloudStackHBaseInstanceDelete)
return resource
}