Skip to content

Commit

Permalink
Merge pull request #6541 from r0bnet/fix-endpoint-delivery-rule-req-h…
Browse files Browse the repository at this point in the history
…eader-condition

Add missing request_header_condition flatten part
  • Loading branch information
tombuildsstuff committed Apr 21, 2020
2 parents c066106 + 0ae2d06 commit a846409
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 10 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package deliveryruleconditions

import (
"fmt"

"github.com/Azure/azure-sdk-for-go/services/cdn/mgmt/2019-04-15/cdn"
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/helper/validation"
Expand Down Expand Up @@ -93,32 +95,44 @@ func ExpandArmCdnEndpointConditionRequestHeader(input []interface{}) []cdn.Basic
return output
}

func FlattenArmCdnEndpointConditionRequestHeader(cc *cdn.DeliveryRuleRequestHeaderCondition) map[string]interface{} {
res := make(map[string]interface{}, 1)
func FlattenArmCdnEndpointConditionRequestHeader(input cdn.BasicDeliveryRuleCondition) (*map[string]interface{}, error) {
condition, ok := input.AsDeliveryRuleRequestHeaderCondition()
if !ok {
return nil, fmt.Errorf("expected a delivery rule request header condition")
}

if params := cc.Parameters; params != nil {
selector := ""
operator := ""
matchValues := make([]interface{}, 0)
negateCondition := false
transforms := make([]string, 0)
if params := condition.Parameters; params != nil {
if params.Selector != nil {
res["selector"] = *params.Selector
selector = *params.Selector
}

res["operator"] = string(params.Operator)
operator = string(params.Operator)

if params.NegateCondition != nil {
res["negate_condition"] = *params.NegateCondition
negateCondition = *params.NegateCondition
}

if params.MatchValues != nil {
res["match_values"] = schema.NewSet(schema.HashString, utils.FlattenStringSlice(params.MatchValues))
matchValues = utils.FlattenStringSlice(params.MatchValues)
}

if params.Transforms != nil {
transforms := make([]string, 0)
for _, transform := range *params.Transforms {
transforms = append(transforms, string(transform))
}
res["transforms"] = &transforms
}
}

return res
return &map[string]interface{}{
"selector": selector,
"operator": operator,
"match_values": schema.NewSet(schema.HashString, matchValues),
"negate_condition": negateCondition,
"transforms": transforms,
}, nil
}
7 changes: 7 additions & 0 deletions azurerm/internal/services/cdn/endpoint_delivery_rule.go
Original file line number Diff line number Diff line change
Expand Up @@ -411,6 +411,13 @@ func flattenDeliveryRuleConditions(conditions *[]cdn.BasicDeliveryRuleCondition)
return ok
},
},
"request_header_condition": {
flattenFunc: deliveryruleconditions.FlattenArmCdnEndpointConditionRequestHeader,
validateFunc: func(condition cdn.BasicDeliveryRuleCondition) bool {
_, ok := condition.AsDeliveryRuleRequestHeaderCondition()
return ok
},
},
"request_method_condition": {
flattenFunc: deliveryruleconditions.FlattenArmCdnEndpointConditionRequestMethod,
validateFunc: func(condition cdn.BasicDeliveryRuleCondition) bool {
Expand Down

0 comments on commit a846409

Please sign in to comment.