in cloudstack/resource_cloudstack_service_offering.go [30:102]
func resourceCloudStackServiceOffering() *schema.Resource {
return &schema.Resource{
Create: resourceCloudStackServiceOfferingCreate,
Read: resourceCloudStackServiceOfferingRead,
Update: resourceCloudStackServiceOfferingUpdate,
Delete: resourceCloudStackServiceOfferingDelete,
Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
Required: true,
},
"display_text": {
Type: schema.TypeString,
Required: true,
},
"cpu_number": {
Description: "Number of CPU cores",
Type: schema.TypeInt,
Optional: true,
ForceNew: true,
},
"cpu_speed": {
Description: "Speed of CPU in Mhz",
Type: schema.TypeInt,
Optional: true,
ForceNew: true,
},
"host_tags": {
Description: "The host tag for this service offering",
Type: schema.TypeString,
Optional: true,
},
"limit_cpu_use": {
Description: "Restrict the CPU usage to committed service offering",
Type: schema.TypeBool,
Optional: true,
ForceNew: true,
Default: false,
},
"memory": {
Description: "The total memory of the service offering in MB",
Type: schema.TypeInt,
Optional: true,
ForceNew: true,
},
"offer_ha": {
Description: "The HA for the service offering",
Type: schema.TypeBool,
Optional: true,
ForceNew: true,
Default: false,
},
"storage_type": {
Description: "The storage type of the service offering. Values are local and shared",
Type: schema.TypeString,
Optional: true,
ForceNew: true,
Default: "shared",
ValidateFunc: func(val interface{}, key string) (warns []string, errs []error) {
v := val.(string)
if v == "local" || v == "shared" {
return
}
errs = append(errs, fmt.Errorf("storage type should be either local or shared, got %s", v))
return
},
},
},
}
}