diff --git a/bigip/resource_bigip_ltm_policy.go b/bigip/resource_bigip_ltm_policy.go index 6e4c8daab..99e34459c 100644 --- a/bigip/resource_bigip_ltm_policy.go +++ b/bigip/resource_bigip_ltm_policy.go @@ -92,6 +92,11 @@ func resourceBigipLtmPolicy() *schema.Resource { Required: true, Description: "Rule name", }, + "description": { + Type: schema.TypeString, + Optional: true, + Description: "Specifies descriptive text that identifies the irule attached to policy.", + }, "action": { Type: schema.TypeList, Optional: true, @@ -1285,6 +1290,7 @@ func dataToPolicy(name string, d *schema.ResourceData) bigip.Policy { var polRule bigip.PolicyRule for _, item := range val.([]interface{}) { polRule.Name = item.(map[string]interface{})["name"].(string) + polRule.Description = item.(map[string]interface{})["description"].(string) var policyRulesActions []bigip.PolicyRuleAction for _, itemAction := range item.(map[string]interface{})["action"].([]interface{}) { var a bigip.PolicyRuleAction @@ -1403,6 +1409,9 @@ func flattenPolicyRules(rules []bigip.PolicyRule) []interface{} { if v.Name != "" { obj["name"] = v.Name } + if v.Description != "" { + obj["description"] = v.Description + } if len(v.Actions) > 0 { r := flattenPolicyRuleActions(v.Actions) diff --git a/docs/resources/bigip_ltm_policy.md b/docs/resources/bigip_ltm_policy.md index 11c71733f..633466cc0 100644 --- a/docs/resources/bigip_ltm_policy.md +++ b/docs/resources/bigip_ltm_policy.md @@ -54,11 +54,9 @@ resource "bigip_ltm_policy" "test-policy" { * `controls` - (Optional) Specifies the controls * `rule` - (Optional,type `list`) List of Rules can be applied using the policy. Each rule is block type with following arguments. - * `name` - (Required,type `string`) Name of Rule to be applied in policy. - + * `description` - (Optional) Specifies descriptive text that identifies the irule attached to policy. * `condition` - (Optional,type `set`) Block type. See [condition](#condition) block for more details. - * `action` - (Optional,type `set`) Block type. See [action](#action) block for more details. * `forward` - (Optional) This action will affect forwarding. diff --git a/examples/bigip_ltm_policy_issue794.tf b/examples/bigip_ltm_policy_issue794.tf index 644c10d3b..c19a4be9c 100644 --- a/examples/bigip_ltm_policy_issue794.tf +++ b/examples/bigip_ltm_policy_issue794.tf @@ -145,6 +145,7 @@ resource "bigip_ltm_policy" "policy_issue_838_tc1" { controls = ["forwarding"] rule { name = "rule6" + description = "rule6-create" action { forward = true connection = false diff --git a/go.mod b/go.mod index 47d7afee9..7072b3ca0 100644 --- a/go.mod +++ b/go.mod @@ -10,8 +10,8 @@ require ( github.com/Azure/azure-storage-blob-go v0.13.0 github.com/Azure/go-autorest/autorest v0.11.18 github.com/Azure/go-autorest/autorest/adal v0.9.13 - github.com/f5devcentral/go-bigip v0.0.0-20230824164833-0e0156dbe878 - github.com/f5devcentral/go-bigip/f5teem v0.0.0-20230824164833-0e0156dbe878 + github.com/f5devcentral/go-bigip v0.0.0-20230825175646-ebe63e33298c + github.com/f5devcentral/go-bigip/f5teem v0.0.0-20230825175646-ebe63e33298c github.com/google/uuid v1.3.0 github.com/hashicorp/terraform-plugin-sdk/v2 v2.25.0 github.com/stretchr/testify v1.8.4 diff --git a/go.sum b/go.sum index 6117af737..c068f41d0 100644 --- a/go.sum +++ b/go.sum @@ -480,10 +480,10 @@ github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= -github.com/f5devcentral/go-bigip v0.0.0-20230824164833-0e0156dbe878 h1:+n4ejONpTYfIkRsnKSpR7sEoYWknBRuZKfRmJp0mWCc= -github.com/f5devcentral/go-bigip v0.0.0-20230824164833-0e0156dbe878/go.mod h1:JZj/iVxDmEnGPyEwuNj7x0fuH2CtUBbD2J48MMp/SE8= -github.com/f5devcentral/go-bigip/f5teem v0.0.0-20230824164833-0e0156dbe878 h1:NiDT+oH4wnaiNKsMLCVPr0zsmogw2qid7jub0ljzU10= -github.com/f5devcentral/go-bigip/f5teem v0.0.0-20230824164833-0e0156dbe878/go.mod h1:r7o5I22EvO+fps2u10bz4ZUlTlNHopQSWzVcW19hK3U= +github.com/f5devcentral/go-bigip v0.0.0-20230825175646-ebe63e33298c h1:T9+v2O4pFkDjASOoPhSOoBKU5BhqIDg1ndZg1sGjLxs= +github.com/f5devcentral/go-bigip v0.0.0-20230825175646-ebe63e33298c/go.mod h1:JZj/iVxDmEnGPyEwuNj7x0fuH2CtUBbD2J48MMp/SE8= +github.com/f5devcentral/go-bigip/f5teem v0.0.0-20230825175646-ebe63e33298c h1:CxHMUixpOiK00IvO1ql2hEa5QPLfiV+/zy/izf98eGM= +github.com/f5devcentral/go-bigip/f5teem v0.0.0-20230825175646-ebe63e33298c/go.mod h1:r7o5I22EvO+fps2u10bz4ZUlTlNHopQSWzVcW19hK3U= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= diff --git a/vendor/github.com/f5devcentral/go-bigip/ltm.go b/vendor/github.com/f5devcentral/go-bigip/ltm.go index ab2b370e2..b0e626d57 100644 --- a/vendor/github.com/f5devcentral/go-bigip/ltm.go +++ b/vendor/github.com/f5devcentral/go-bigip/ltm.go @@ -747,18 +747,20 @@ type PolicyRules struct { } type PolicyRule struct { - Name string - FullPath string - Ordinal int - Conditions []PolicyRuleCondition - Actions []PolicyRuleAction + Name string + FullPath string + Ordinal int + Description string + Conditions []PolicyRuleCondition + Actions []PolicyRuleAction } type policyRuleDTO struct { - Name string `json:"name"` - Ordinal int `json:"ordinal"` - FullPath string `json:"fullPath,omitempty"` - Conditions struct { + Name string `json:"name"` + Ordinal int `json:"ordinal"` + FullPath string `json:"fullPath,omitempty"` + Description string `json:"description,omitempty"` + Conditions struct { Items []PolicyRuleCondition `json:"items,omitempty"` } `json:"conditionsReference,omitempty"` Actions struct { @@ -768,9 +770,10 @@ type policyRuleDTO struct { func (p *PolicyRule) MarshalJSON() ([]byte, error) { return json.Marshal(policyRuleDTO{ - Name: p.Name, - Ordinal: p.Ordinal, - FullPath: p.FullPath, + Name: p.Name, + Ordinal: p.Ordinal, + FullPath: p.FullPath, + Description: p.Description, Conditions: struct { Items []PolicyRuleCondition `json:"items,omitempty"` }{Items: p.Conditions}, @@ -792,6 +795,7 @@ func (p *PolicyRule) UnmarshalJSON(b []byte) error { p.Actions = dto.Actions.Items p.Conditions = dto.Conditions.Items p.FullPath = dto.FullPath + p.Description = dto.Description return nil } diff --git a/vendor/modules.txt b/vendor/modules.txt index f36cc04d6..2a2336c5f 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -42,10 +42,10 @@ github.com/apparentlymart/go-textseg/v13/textseg # github.com/davecgh/go-spew v1.1.1 ## explicit github.com/davecgh/go-spew/spew -# github.com/f5devcentral/go-bigip v0.0.0-20230824164833-0e0156dbe878 +# github.com/f5devcentral/go-bigip v0.0.0-20230825175646-ebe63e33298c ## explicit github.com/f5devcentral/go-bigip -# github.com/f5devcentral/go-bigip/f5teem v0.0.0-20230824164833-0e0156dbe878 +# github.com/f5devcentral/go-bigip/f5teem v0.0.0-20230825175646-ebe63e33298c ## explicit; go 1.13 github.com/f5devcentral/go-bigip/f5teem # github.com/fatih/color v1.13.0