in elbv2/listener.go [200:251]
func (elbv2 SDKClient) DescribeRules(listenerARN string) []Rule {
var rules []Rule
resp, err := elbv2.client.DescribeRules(
&awselbv2.DescribeRulesInput{
ListenerArn: aws.String(listenerARN),
},
)
if err != nil {
console.ErrorExit(err, "Could not describe ELB rules")
}
for _, r := range resp.Rules {
for _, c := range r.Conditions {
var field string
switch aws.StringValue(c.Field) {
case "host-header":
field = "HOST"
case "path-pattern":
field = "PATH"
}
for _, v := range c.Values {
priority, _ := strconv.Atoi(aws.StringValue(r.Priority))
rule := Rule{
ARN: aws.StringValue(r.RuleArn),
Priority: priority,
TargetGroupARN: aws.StringValue(r.Actions[0].TargetGroupArn),
Type: field,
Value: aws.StringValue(v),
}
rules = append(rules, rule)
}
}
if aws.BoolValue(r.IsDefault) == true {
rule := Rule{
TargetGroupARN: aws.StringValue(r.Actions[0].TargetGroupArn),
Type: "DEFAULT",
IsDefault: true,
}
rules = append(rules, rule)
}
}
return rules
}