Skip to content

File tree

4 files changed

+89
-0
lines changed

4 files changed

+89
-0
lines changed

docs/rules/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -971,6 +971,7 @@ These rules enforce best practices and naming conventions:
971971
|aws_route53recoverycontrolconfig_routing_control_invalid_name||
972972
|aws_route53recoverycontrolconfig_safety_rule_invalid_control_panel_arn||
973973
|aws_route53recoverycontrolconfig_safety_rule_invalid_name||
974+
|aws_route53recoveryreadiness_resource_set_invalid_resource_set_type||
974975
|aws_s3_bucket_intelligent_tiering_configuration_invalid_status||
975976
|aws_s3_bucket_invalid_acceleration_status||
976977
|aws_s3_bucket_invalid_request_payer||
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
// This file generated by `generator/`. DO NOT EDIT
2+
3+
package models
4+
5+
import (
6+
"fmt"
7+
"log"
8+
"regexp"
9+
10+
hcl "github.com/hashicorp/hcl/v2"
11+
"github.com/terraform-linters/tflint-plugin-sdk/tflint"
12+
)
13+
14+
// AwsRoute53recoveryreadinessResourceSetInvalidResourceSetTypeRule checks the pattern is valid
15+
type AwsRoute53recoveryreadinessResourceSetInvalidResourceSetTypeRule struct {
16+
resourceType string
17+
attributeName string
18+
pattern *regexp.Regexp
19+
}
20+
21+
// NewAwsRoute53recoveryreadinessResourceSetInvalidResourceSetTypeRule returns new rule with default attributes
22+
func NewAwsRoute53recoveryreadinessResourceSetInvalidResourceSetTypeRule() *AwsRoute53recoveryreadinessResourceSetInvalidResourceSetTypeRule {
23+
return &AwsRoute53recoveryreadinessResourceSetInvalidResourceSetTypeRule{
24+
resourceType: "aws_route53recoveryreadiness_resource_set",
25+
attributeName: "resource_set_type",
26+
pattern: regexp.MustCompile(`^AWS::[A-Za-z0-9]+::[A-Za-z0-9]+$`),
27+
}
28+
}
29+
30+
// Name returns the rule name
31+
func (r *AwsRoute53recoveryreadinessResourceSetInvalidResourceSetTypeRule) Name() string {
32+
return "aws_route53recoveryreadiness_resource_set_invalid_resource_set_type"
33+
}
34+
35+
// Enabled returns whether the rule is enabled by default
36+
func (r *AwsRoute53recoveryreadinessResourceSetInvalidResourceSetTypeRule) Enabled() bool {
37+
return true
38+
}
39+
40+
// Severity returns the rule severity
41+
func (r *AwsRoute53recoveryreadinessResourceSetInvalidResourceSetTypeRule) Severity() string {
42+
return tflint.ERROR
43+
}
44+
45+
// Link returns the rule reference link
46+
func (r *AwsRoute53recoveryreadinessResourceSetInvalidResourceSetTypeRule) Link() string {
47+
return ""
48+
}
49+
50+
// Check checks the pattern is valid
51+
func (r *AwsRoute53recoveryreadinessResourceSetInvalidResourceSetTypeRule) Check(runner tflint.Runner) error {
52+
log.Printf("[TRACE] Check `%s` rule", r.Name())
53+
54+
return runner.WalkResourceAttributes(r.resourceType, r.attributeName, func(attribute *hcl.Attribute) error {
55+
var val string
56+
err := runner.EvaluateExpr(attribute.Expr, &val, nil)
57+
58+
return runner.EnsureNoError(err, func() error {
59+
if !r.pattern.MatchString(val) {
60+
runner.EmitIssueOnExpr(
61+
r,
62+
fmt.Sprintf(`"%s" does not match valid pattern %s`, truncateLongMessage(val), `^AWS::[A-Za-z0-9]+::[A-Za-z0-9]+$`),
63+
attribute.Expr,
64+
)
65+
}
66+
return nil
67+
})
68+
})
69+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import = "aws-sdk-go/models/apis/route53-recovery-readiness/2019-12-02/api-2.json"
2+
3+
mapping "aws_route53recoveryreadiness_cell" {
4+
tags = Tags
5+
}
6+
7+
mapping "aws_route53recoveryreadiness_readiness_check" {
8+
tags = Tags
9+
}
10+
11+
mapping "aws_route53recoveryreadiness_recovery_group" {
12+
tags = Tags
13+
}
14+
15+
mapping "aws_route53recoveryreadiness_resource_set" {
16+
resource_set_type = __stringPatternAWSAZaZ09AZaZ09
17+
tags = Tags
18+
}

rules/models/provider.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -899,6 +899,7 @@ var Rules = []tflint.Rule{
899899
NewAwsRoute53recoverycontrolconfigRoutingControlInvalidNameRule(),
900900
NewAwsRoute53recoverycontrolconfigSafetyRuleInvalidControlPanelArnRule(),
901901
NewAwsRoute53recoverycontrolconfigSafetyRuleInvalidNameRule(),
902+
NewAwsRoute53recoveryreadinessResourceSetInvalidResourceSetTypeRule(),
902903
NewAwsS3BucketIntelligentTieringConfigurationInvalidStatusRule(),
903904
NewAwsS3BucketInvalidAccelerationStatusRule(),
904905
NewAwsS3BucketInvalidRequestPayerRule(),

0 commit comments

Comments
 (0)