Skip to content

11 files changed

+737
-0
lines changed

docs/rules/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -963,6 +963,14 @@ These rules enforce best practices and naming conventions:
963963
|aws_route53_zone_invalid_comment||
964964
|aws_route53_zone_invalid_delegation_set_id||
965965
|aws_route53_zone_invalid_name||
966+
|aws_route53recoverycontrolconfig_cluster_invalid_name||
967+
|aws_route53recoverycontrolconfig_control_panel_invalid_cluster_arn||
968+
|aws_route53recoverycontrolconfig_control_panel_invalid_name||
969+
|aws_route53recoverycontrolconfig_routing_control_invalid_cluster_arn||
970+
|aws_route53recoverycontrolconfig_routing_control_invalid_control_panel_arn||
971+
|aws_route53recoverycontrolconfig_routing_control_invalid_name||
972+
|aws_route53recoverycontrolconfig_safety_rule_invalid_control_panel_arn||
973+
|aws_route53recoverycontrolconfig_safety_rule_invalid_name||
966974
|aws_s3_bucket_intelligent_tiering_configuration_invalid_status||
967975
|aws_s3_bucket_invalid_acceleration_status||
968976
|aws_s3_bucket_invalid_request_payer||
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
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+
// AwsRoute53recoverycontrolconfigClusterInvalidNameRule checks the pattern is valid
15+
type AwsRoute53recoverycontrolconfigClusterInvalidNameRule struct {
16+
resourceType string
17+
attributeName string
18+
max int
19+
min int
20+
pattern *regexp.Regexp
21+
}
22+
23+
// NewAwsRoute53recoverycontrolconfigClusterInvalidNameRule returns new rule with default attributes
24+
func NewAwsRoute53recoverycontrolconfigClusterInvalidNameRule() *AwsRoute53recoverycontrolconfigClusterInvalidNameRule {
25+
return &AwsRoute53recoverycontrolconfigClusterInvalidNameRule{
26+
resourceType: "aws_route53recoverycontrolconfig_cluster",
27+
attributeName: "name",
28+
max: 64,
29+
min: 1,
30+
pattern: regexp.MustCompile(`^\S+$`),
31+
}
32+
}
33+
34+
// Name returns the rule name
35+
func (r *AwsRoute53recoverycontrolconfigClusterInvalidNameRule) Name() string {
36+
return "aws_route53recoverycontrolconfig_cluster_invalid_name"
37+
}
38+
39+
// Enabled returns whether the rule is enabled by default
40+
func (r *AwsRoute53recoverycontrolconfigClusterInvalidNameRule) Enabled() bool {
41+
return true
42+
}
43+
44+
// Severity returns the rule severity
45+
func (r *AwsRoute53recoverycontrolconfigClusterInvalidNameRule) Severity() string {
46+
return tflint.ERROR
47+
}
48+
49+
// Link returns the rule reference link
50+
func (r *AwsRoute53recoverycontrolconfigClusterInvalidNameRule) Link() string {
51+
return ""
52+
}
53+
54+
// Check checks the pattern is valid
55+
func (r *AwsRoute53recoverycontrolconfigClusterInvalidNameRule) Check(runner tflint.Runner) error {
56+
log.Printf("[TRACE] Check `%s` rule", r.Name())
57+
58+
return runner.WalkResourceAttributes(r.resourceType, r.attributeName, func(attribute *hcl.Attribute) error {
59+
var val string
60+
err := runner.EvaluateExpr(attribute.Expr, &val, nil)
61+
62+
return runner.EnsureNoError(err, func() error {
63+
if len(val) > r.max {
64+
runner.EmitIssueOnExpr(
65+
r,
66+
"name must be 64 characters or less",
67+
attribute.Expr,
68+
)
69+
}
70+
if len(val) < r.min {
71+
runner.EmitIssueOnExpr(
72+
r,
73+
"name must be 1 characters or higher",
74+
attribute.Expr,
75+
)
76+
}
77+
if !r.pattern.MatchString(val) {
78+
runner.EmitIssueOnExpr(
79+
r,
80+
fmt.Sprintf(`"%s" does not match valid pattern %s`, truncateLongMessage(val), `^\S+$`),
81+
attribute.Expr,
82+
)
83+
}
84+
return nil
85+
})
86+
})
87+
}
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
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+
// AwsRoute53recoverycontrolconfigControlPanelInvalidClusterArnRule checks the pattern is valid
15+
type AwsRoute53recoverycontrolconfigControlPanelInvalidClusterArnRule struct {
16+
resourceType string
17+
attributeName string
18+
max int
19+
min int
20+
pattern *regexp.Regexp
21+
}
22+
23+
// NewAwsRoute53recoverycontrolconfigControlPanelInvalidClusterArnRule returns new rule with default attributes
24+
func NewAwsRoute53recoverycontrolconfigControlPanelInvalidClusterArnRule() *AwsRoute53recoverycontrolconfigControlPanelInvalidClusterArnRule {
25+
return &AwsRoute53recoverycontrolconfigControlPanelInvalidClusterArnRule{
26+
resourceType: "aws_route53recoverycontrolconfig_control_panel",
27+
attributeName: "cluster_arn",
28+
max: 256,
29+
min: 1,
30+
pattern: regexp.MustCompile(`^[A-Za-z0-9:\/_-]*$`),
31+
}
32+
}
33+
34+
// Name returns the rule name
35+
func (r *AwsRoute53recoverycontrolconfigControlPanelInvalidClusterArnRule) Name() string {
36+
return "aws_route53recoverycontrolconfig_control_panel_invalid_cluster_arn"
37+
}
38+
39+
// Enabled returns whether the rule is enabled by default
40+
func (r *AwsRoute53recoverycontrolconfigControlPanelInvalidClusterArnRule) Enabled() bool {
41+
return true
42+
}
43+
44+
// Severity returns the rule severity
45+
func (r *AwsRoute53recoverycontrolconfigControlPanelInvalidClusterArnRule) Severity() string {
46+
return tflint.ERROR
47+
}
48+
49+
// Link returns the rule reference link
50+
func (r *AwsRoute53recoverycontrolconfigControlPanelInvalidClusterArnRule) Link() string {
51+
return ""
52+
}
53+
54+
// Check checks the pattern is valid
55+
func (r *AwsRoute53recoverycontrolconfigControlPanelInvalidClusterArnRule) Check(runner tflint.Runner) error {
56+
log.Printf("[TRACE] Check `%s` rule", r.Name())
57+
58+
return runner.WalkResourceAttributes(r.resourceType, r.attributeName, func(attribute *hcl.Attribute) error {
59+
var val string
60+
err := runner.EvaluateExpr(attribute.Expr, &val, nil)
61+
62+
return runner.EnsureNoError(err, func() error {
63+
if len(val) > r.max {
64+
runner.EmitIssueOnExpr(
65+
r,
66+
"cluster_arn must be 256 characters or less",
67+
attribute.Expr,
68+
)
69+
}
70+
if len(val) < r.min {
71+
runner.EmitIssueOnExpr(
72+
r,
73+
"cluster_arn must be 1 characters or higher",
74+
attribute.Expr,
75+
)
76+
}
77+
if !r.pattern.MatchString(val) {
78+
runner.EmitIssueOnExpr(
79+
r,
80+
fmt.Sprintf(`"%s" does not match valid pattern %s`, truncateLongMessage(val), `^[A-Za-z0-9:\/_-]*$`),
81+
attribute.Expr,
82+
)
83+
}
84+
return nil
85+
})
86+
})
87+
}
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
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+
// AwsRoute53recoverycontrolconfigControlPanelInvalidNameRule checks the pattern is valid
15+
type AwsRoute53recoverycontrolconfigControlPanelInvalidNameRule struct {
16+
resourceType string
17+
attributeName string
18+
max int
19+
min int
20+
pattern *regexp.Regexp
21+
}
22+
23+
// NewAwsRoute53recoverycontrolconfigControlPanelInvalidNameRule returns new rule with default attributes
24+
func NewAwsRoute53recoverycontrolconfigControlPanelInvalidNameRule() *AwsRoute53recoverycontrolconfigControlPanelInvalidNameRule {
25+
return &AwsRoute53recoverycontrolconfigControlPanelInvalidNameRule{
26+
resourceType: "aws_route53recoverycontrolconfig_control_panel",
27+
attributeName: "name",
28+
max: 64,
29+
min: 1,
30+
pattern: regexp.MustCompile(`^\S+$`),
31+
}
32+
}
33+
34+
// Name returns the rule name
35+
func (r *AwsRoute53recoverycontrolconfigControlPanelInvalidNameRule) Name() string {
36+
return "aws_route53recoverycontrolconfig_control_panel_invalid_name"
37+
}
38+
39+
// Enabled returns whether the rule is enabled by default
40+
func (r *AwsRoute53recoverycontrolconfigControlPanelInvalidNameRule) Enabled() bool {
41+
return true
42+
}
43+
44+
// Severity returns the rule severity
45+
func (r *AwsRoute53recoverycontrolconfigControlPanelInvalidNameRule) Severity() string {
46+
return tflint.ERROR
47+
}
48+
49+
// Link returns the rule reference link
50+
func (r *AwsRoute53recoverycontrolconfigControlPanelInvalidNameRule) Link() string {
51+
return ""
52+
}
53+
54+
// Check checks the pattern is valid
55+
func (r *AwsRoute53recoverycontrolconfigControlPanelInvalidNameRule) Check(runner tflint.Runner) error {
56+
log.Printf("[TRACE] Check `%s` rule", r.Name())
57+
58+
return runner.WalkResourceAttributes(r.resourceType, r.attributeName, func(attribute *hcl.Attribute) error {
59+
var val string
60+
err := runner.EvaluateExpr(attribute.Expr, &val, nil)
61+
62+
return runner.EnsureNoError(err, func() error {
63+
if len(val) > r.max {
64+
runner.EmitIssueOnExpr(
65+
r,
66+
"name must be 64 characters or less",
67+
attribute.Expr,
68+
)
69+
}
70+
if len(val) < r.min {
71+
runner.EmitIssueOnExpr(
72+
r,
73+
"name must be 1 characters or higher",
74+
attribute.Expr,
75+
)
76+
}
77+
if !r.pattern.MatchString(val) {
78+
runner.EmitIssueOnExpr(
79+
r,
80+
fmt.Sprintf(`"%s" does not match valid pattern %s`, truncateLongMessage(val), `^\S+$`),
81+
attribute.Expr,
82+
)
83+
}
84+
return nil
85+
})
86+
})
87+
}
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
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+
// AwsRoute53recoverycontrolconfigRoutingControlInvalidClusterArnRule checks the pattern is valid
15+
type AwsRoute53recoverycontrolconfigRoutingControlInvalidClusterArnRule struct {
16+
resourceType string
17+
attributeName string
18+
max int
19+
min int
20+
pattern *regexp.Regexp
21+
}
22+
23+
// NewAwsRoute53recoverycontrolconfigRoutingControlInvalidClusterArnRule returns new rule with default attributes
24+
func NewAwsRoute53recoverycontrolconfigRoutingControlInvalidClusterArnRule() *AwsRoute53recoverycontrolconfigRoutingControlInvalidClusterArnRule {
25+
return &AwsRoute53recoverycontrolconfigRoutingControlInvalidClusterArnRule{
26+
resourceType: "aws_route53recoverycontrolconfig_routing_control",
27+
attributeName: "cluster_arn",
28+
max: 256,
29+
min: 1,
30+
pattern: regexp.MustCompile(`^[A-Za-z0-9:\/_-]*$`),
31+
}
32+
}
33+
34+
// Name returns the rule name
35+
func (r *AwsRoute53recoverycontrolconfigRoutingControlInvalidClusterArnRule) Name() string {
36+
return "aws_route53recoverycontrolconfig_routing_control_invalid_cluster_arn"
37+
}
38+
39+
// Enabled returns whether the rule is enabled by default
40+
func (r *AwsRoute53recoverycontrolconfigRoutingControlInvalidClusterArnRule) Enabled() bool {
41+
return true
42+
}
43+
44+
// Severity returns the rule severity
45+
func (r *AwsRoute53recoverycontrolconfigRoutingControlInvalidClusterArnRule) Severity() string {
46+
return tflint.ERROR
47+
}
48+
49+
// Link returns the rule reference link
50+
func (r *AwsRoute53recoverycontrolconfigRoutingControlInvalidClusterArnRule) Link() string {
51+
return ""
52+
}
53+
54+
// Check checks the pattern is valid
55+
func (r *AwsRoute53recoverycontrolconfigRoutingControlInvalidClusterArnRule) Check(runner tflint.Runner) error {
56+
log.Printf("[TRACE] Check `%s` rule", r.Name())
57+
58+
return runner.WalkResourceAttributes(r.resourceType, r.attributeName, func(attribute *hcl.Attribute) error {
59+
var val string
60+
err := runner.EvaluateExpr(attribute.Expr, &val, nil)
61+
62+
return runner.EnsureNoError(err, func() error {
63+
if len(val) > r.max {
64+
runner.EmitIssueOnExpr(
65+
r,
66+
"cluster_arn must be 256 characters or less",
67+
attribute.Expr,
68+
)
69+
}
70+
if len(val) < r.min {
71+
runner.EmitIssueOnExpr(
72+
r,
73+
"cluster_arn must be 1 characters or higher",
74+
attribute.Expr,
75+
)
76+
}
77+
if !r.pattern.MatchString(val) {
78+
runner.EmitIssueOnExpr(
79+
r,
80+
fmt.Sprintf(`"%s" does not match valid pattern %s`, truncateLongMessage(val), `^[A-Za-z0-9:\/_-]*$`),
81+
attribute.Expr,
82+
)
83+
}
84+
return nil
85+
})
86+
})
87+
}

0 commit comments

Comments
 (0)