in cloudstack/resource_cloudstack_security_group_rule.go [46:130]
func resourceCloudStackSecurityGroupRule() *schema.Resource {
return &schema.Resource{
Create: resourceCloudStackSecurityGroupRuleCreate,
Read: resourceCloudStackSecurityGroupRuleRead,
Update: resourceCloudStackSecurityGroupRuleUpdate,
Delete: resourceCloudStackSecurityGroupRuleDelete,
Schema: map[string]*schema.Schema{
"security_group_id": {
Type: schema.TypeString,
Required: true,
ForceNew: true,
},
"rule": {
Type: schema.TypeSet,
Required: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"cidr_list": {
Type: schema.TypeSet,
Optional: true,
Elem: &schema.Schema{Type: schema.TypeString},
Set: schema.HashString,
},
"protocol": {
Type: schema.TypeString,
Required: true,
},
"icmp_type": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
},
"icmp_code": {
Type: schema.TypeInt,
Optional: true,
Computed: true,
},
"ports": {
Type: schema.TypeSet,
Optional: true,
Elem: &schema.Schema{Type: schema.TypeString},
Set: schema.HashString,
},
"traffic_type": {
Type: schema.TypeString,
Optional: true,
Default: "ingress",
},
"user_security_group_list": {
Type: schema.TypeSet,
Optional: true,
Elem: &schema.Schema{Type: schema.TypeString},
Set: schema.HashString,
},
"uuids": {
Type: schema.TypeMap,
Computed: true,
},
},
},
},
"project": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
},
"parallelism": {
Type: schema.TypeInt,
Optional: true,
Default: 2,
},
},
}
}