in cloudstack/resource_cloudstack_instance.go [34:221]
func resourceCloudStackInstance() *schema.Resource {
return &schema.Resource{
Create: resourceCloudStackInstanceCreate,
Read: resourceCloudStackInstanceRead,
Update: resourceCloudStackInstanceUpdate,
Delete: resourceCloudStackInstanceDelete,
Importer: &schema.ResourceImporter{
State: resourceCloudStackInstanceImport,
},
Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
Optional: true,
Computed: true,
},
"display_name": {
Type: schema.TypeString,
Optional: true,
Computed: true,
},
"service_offering": {
Type: schema.TypeString,
Required: true,
},
"network_id": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ForceNew: true,
},
"ip_address": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ForceNew: true,
},
"template": {
Type: schema.TypeString,
Required: true,
ForceNew: true,
},
"root_disk_size": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
ForceNew: true,
},
"group": {
Type: schema.TypeString,
Optional: true,
Computed: true,
},
"affinity_group_ids": {
Type: schema.TypeSet,
Optional: true,
Elem: &schema.Schema{Type: schema.TypeString},
Set: schema.HashString,
ConflictsWith: []string{"affinity_group_names"},
},
"affinity_group_names": {
Type: schema.TypeSet,
Optional: true,
Elem: &schema.Schema{Type: schema.TypeString},
Set: schema.HashString,
ConflictsWith: []string{"affinity_group_ids"},
},
"security_group_ids": {
Type: schema.TypeSet,
Optional: true,
ForceNew: true,
Elem: &schema.Schema{Type: schema.TypeString},
Set: schema.HashString,
ConflictsWith: []string{"security_group_names"},
},
"security_group_names": {
Type: schema.TypeSet,
Optional: true,
ForceNew: true,
Elem: &schema.Schema{Type: schema.TypeString},
Set: schema.HashString,
ConflictsWith: []string{"security_group_ids"},
},
"project": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ForceNew: true,
},
"zone": {
Type: schema.TypeString,
Required: true,
ForceNew: true,
},
"keypair": &schema.Schema{
Type: schema.TypeString,
Optional: true,
ConflictsWith: []string{"keypairs"},
},
"keypairs": {
Type: schema.TypeList,
Optional: true,
Elem: &schema.Schema{Type: schema.TypeString},
ConflictsWith: []string{"keypair"},
},
"host_id": {
Type: schema.TypeString,
Optional: true,
},
"cluster_id": {
Type: schema.TypeString,
Optional: true,
},
"uefi": {
Type: schema.TypeBool,
Optional: true,
Default: false,
},
"start_vm": {
Type: schema.TypeBool,
Optional: true,
Default: true,
ForceNew: true,
},
"user_data": {
Type: schema.TypeString,
Optional: true,
StateFunc: func(v interface{}) string {
switch v.(type) {
case string:
hash := sha1.Sum([]byte(v.(string)))
return hex.EncodeToString(hash[:])
default:
return ""
}
},
},
"details": {
Type: schema.TypeMap,
Optional: true,
},
"properties": {
Type: schema.TypeMap,
Optional: true,
},
"nicnetworklist": {
Type: schema.TypeMap,
Optional: true,
},
"expunge": {
Type: schema.TypeBool,
Optional: true,
Default: false,
},
"pod_id": {
Type: schema.TypeString,
Optional: true,
},
"tags": tagsSchema(),
},
}
}