in cloudstack/resource_cloudstack_network.go [35:159]
func resourceCloudStackNetwork() *schema.Resource {
aclidSchema := &schema.Schema{
Type: schema.TypeString,
Optional: true,
Default: none,
}
aclidSchema.StateFunc = func(v interface{}) string {
value := v.(string)
if value == none {
aclidSchema.ForceNew = true
} else {
aclidSchema.ForceNew = false
}
return value
}
return &schema.Resource{
Create: resourceCloudStackNetworkCreate,
Read: resourceCloudStackNetworkRead,
Update: resourceCloudStackNetworkUpdate,
Delete: resourceCloudStackNetworkDelete,
Importer: &schema.ResourceImporter{
State: importStatePassthrough,
},
Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
Required: true,
},
"display_text": {
Type: schema.TypeString,
Optional: true,
Computed: true,
},
"cidr": {
Type: schema.TypeString,
Required: true,
ForceNew: true,
},
"gateway": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ForceNew: true,
},
"startip": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ForceNew: true,
},
"endip": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ForceNew: true,
},
"network_domain": {
Type: schema.TypeString,
Optional: true,
Computed: true,
},
"network_offering": {
Type: schema.TypeString,
Required: true,
},
"vlan": {
Type: schema.TypeInt,
Optional: true,
ForceNew: true,
},
"vpc_id": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
"acl_id": aclidSchema,
"project": {
Type: schema.TypeString,
Optional: true,
Computed: true,
ForceNew: true,
},
"source_nat_ip": {
Type: schema.TypeBool,
Optional: true,
ForceNew: true,
},
"source_nat_ip_address": {
Type: schema.TypeString,
Computed: true,
},
"source_nat_ip_id": {
Type: schema.TypeString,
Computed: true,
},
"zone": {
Type: schema.TypeString,
Required: true,
ForceNew: true,
},
"tags": tagsSchema(),
},
}
}