Skip to content

18 files changed

+1227
-0
lines changed

docs/rules/README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -861,7 +861,22 @@ These rules enforce best practices and naming conventions:
861861
|aws_route53_record_invalid_set_identifier||
862862
|aws_route53_record_invalid_type||
863863
|aws_route53_record_invalid_zone_id||
864+
|aws_route53_resolver_dnssec_config_invalid_resource_id||
864865
|aws_route53_resolver_endpoint_invalid_direction||
866+
|aws_route53_resolver_firewall_config_invalid_firewall_fail_open||
867+
|aws_route53_resolver_firewall_config_invalid_resource_id||
868+
|aws_route53_resolver_firewall_rule_group_association_invalid_firewall_rule_group_id||
869+
|aws_route53_resolver_firewall_rule_group_association_invalid_mutation_protection||
870+
|aws_route53_resolver_firewall_rule_group_association_invalid_vpc_id||
871+
|aws_route53_resolver_firewall_rule_invalid_action||
872+
|aws_route53_resolver_firewall_rule_invalid_block_override_dns_type||
873+
|aws_route53_resolver_firewall_rule_invalid_block_override_domain||
874+
|aws_route53_resolver_firewall_rule_invalid_block_response||
875+
|aws_route53_resolver_firewall_rule_invalid_firewall_domain_list_id||
876+
|aws_route53_resolver_firewall_rule_invalid_firewall_rule_group_id||
877+
|aws_route53_resolver_query_log_config_association_invalid_resolver_query_log_config_id||
878+
|aws_route53_resolver_query_log_config_association_invalid_resource_id||
879+
|aws_route53_resolver_query_log_config_invalid_destination_arn||
865880
|aws_route53_resolver_rule_association_invalid_resolver_rule_id||
866881
|aws_route53_resolver_rule_association_invalid_vpc_id||
867882
|aws_route53_resolver_rule_invalid_domain_name||
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
// This file generated by `generator/`. DO NOT EDIT
2+
3+
package models
4+
5+
import (
6+
"log"
7+
8+
hcl "github.com/hashicorp/hcl/v2"
9+
"github.com/terraform-linters/tflint-plugin-sdk/tflint"
10+
)
11+
12+
// AwsRoute53ResolverDnssecConfigInvalidResourceIDRule checks the pattern is valid
13+
type AwsRoute53ResolverDnssecConfigInvalidResourceIDRule struct {
14+
resourceType string
15+
attributeName string
16+
max int
17+
min int
18+
}
19+
20+
// NewAwsRoute53ResolverDnssecConfigInvalidResourceIDRule returns new rule with default attributes
21+
func NewAwsRoute53ResolverDnssecConfigInvalidResourceIDRule() *AwsRoute53ResolverDnssecConfigInvalidResourceIDRule {
22+
return &AwsRoute53ResolverDnssecConfigInvalidResourceIDRule{
23+
resourceType: "aws_route53_resolver_dnssec_config",
24+
attributeName: "resource_id",
25+
max: 64,
26+
min: 1,
27+
}
28+
}
29+
30+
// Name returns the rule name
31+
func (r *AwsRoute53ResolverDnssecConfigInvalidResourceIDRule) Name() string {
32+
return "aws_route53_resolver_dnssec_config_invalid_resource_id"
33+
}
34+
35+
// Enabled returns whether the rule is enabled by default
36+
func (r *AwsRoute53ResolverDnssecConfigInvalidResourceIDRule) Enabled() bool {
37+
return true
38+
}
39+
40+
// Severity returns the rule severity
41+
func (r *AwsRoute53ResolverDnssecConfigInvalidResourceIDRule) Severity() string {
42+
return tflint.ERROR
43+
}
44+
45+
// Link returns the rule reference link
46+
func (r *AwsRoute53ResolverDnssecConfigInvalidResourceIDRule) Link() string {
47+
return ""
48+
}
49+
50+
// Check checks the pattern is valid
51+
func (r *AwsRoute53ResolverDnssecConfigInvalidResourceIDRule) 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 len(val) > r.max {
60+
runner.EmitIssueOnExpr(
61+
r,
62+
"resource_id must be 64 characters or less",
63+
attribute.Expr,
64+
)
65+
}
66+
if len(val) < r.min {
67+
runner.EmitIssueOnExpr(
68+
r,
69+
"resource_id must be 1 characters or higher",
70+
attribute.Expr,
71+
)
72+
}
73+
return nil
74+
})
75+
})
76+
}
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
// This file generated by `generator/`. DO NOT EDIT
2+
3+
package models
4+
5+
import (
6+
"fmt"
7+
"log"
8+
9+
hcl "github.com/hashicorp/hcl/v2"
10+
"github.com/terraform-linters/tflint-plugin-sdk/tflint"
11+
)
12+
13+
// AwsRoute53ResolverFirewallConfigInvalidFirewallFailOpenRule checks the pattern is valid
14+
type AwsRoute53ResolverFirewallConfigInvalidFirewallFailOpenRule struct {
15+
resourceType string
16+
attributeName string
17+
enum []string
18+
}
19+
20+
// NewAwsRoute53ResolverFirewallConfigInvalidFirewallFailOpenRule returns new rule with default attributes
21+
func NewAwsRoute53ResolverFirewallConfigInvalidFirewallFailOpenRule() *AwsRoute53ResolverFirewallConfigInvalidFirewallFailOpenRule {
22+
return &AwsRoute53ResolverFirewallConfigInvalidFirewallFailOpenRule{
23+
resourceType: "aws_route53_resolver_firewall_config",
24+
attributeName: "firewall_fail_open",
25+
enum: []string{
26+
"ENABLED",
27+
"DISABLED",
28+
},
29+
}
30+
}
31+
32+
// Name returns the rule name
33+
func (r *AwsRoute53ResolverFirewallConfigInvalidFirewallFailOpenRule) Name() string {
34+
return "aws_route53_resolver_firewall_config_invalid_firewall_fail_open"
35+
}
36+
37+
// Enabled returns whether the rule is enabled by default
38+
func (r *AwsRoute53ResolverFirewallConfigInvalidFirewallFailOpenRule) Enabled() bool {
39+
return true
40+
}
41+
42+
// Severity returns the rule severity
43+
func (r *AwsRoute53ResolverFirewallConfigInvalidFirewallFailOpenRule) Severity() string {
44+
return tflint.ERROR
45+
}
46+
47+
// Link returns the rule reference link
48+
func (r *AwsRoute53ResolverFirewallConfigInvalidFirewallFailOpenRule) Link() string {
49+
return ""
50+
}
51+
52+
// Check checks the pattern is valid
53+
func (r *AwsRoute53ResolverFirewallConfigInvalidFirewallFailOpenRule) Check(runner tflint.Runner) error {
54+
log.Printf("[TRACE] Check `%s` rule", r.Name())
55+
56+
return runner.WalkResourceAttributes(r.resourceType, r.attributeName, func(attribute *hcl.Attribute) error {
57+
var val string
58+
err := runner.EvaluateExpr(attribute.Expr, &val, nil)
59+
60+
return runner.EnsureNoError(err, func() error {
61+
found := false
62+
for _, item := range r.enum {
63+
if item == val {
64+
found = true
65+
}
66+
}
67+
if !found {
68+
runner.EmitIssueOnExpr(
69+
r,
70+
fmt.Sprintf(`"%s" is an invalid value as firewall_fail_open`, truncateLongMessage(val)),
71+
attribute.Expr,
72+
)
73+
}
74+
return nil
75+
})
76+
})
77+
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
// This file generated by `generator/`. DO NOT EDIT
2+
3+
package models
4+
5+
import (
6+
"log"
7+
8+
hcl "github.com/hashicorp/hcl/v2"
9+
"github.com/terraform-linters/tflint-plugin-sdk/tflint"
10+
)
11+
12+
// AwsRoute53ResolverFirewallConfigInvalidResourceIDRule checks the pattern is valid
13+
type AwsRoute53ResolverFirewallConfigInvalidResourceIDRule struct {
14+
resourceType string
15+
attributeName string
16+
max int
17+
min int
18+
}
19+
20+
// NewAwsRoute53ResolverFirewallConfigInvalidResourceIDRule returns new rule with default attributes
21+
func NewAwsRoute53ResolverFirewallConfigInvalidResourceIDRule() *AwsRoute53ResolverFirewallConfigInvalidResourceIDRule {
22+
return &AwsRoute53ResolverFirewallConfigInvalidResourceIDRule{
23+
resourceType: "aws_route53_resolver_firewall_config",
24+
attributeName: "resource_id",
25+
max: 64,
26+
min: 1,
27+
}
28+
}
29+
30+
// Name returns the rule name
31+
func (r *AwsRoute53ResolverFirewallConfigInvalidResourceIDRule) Name() string {
32+
return "aws_route53_resolver_firewall_config_invalid_resource_id"
33+
}
34+
35+
// Enabled returns whether the rule is enabled by default
36+
func (r *AwsRoute53ResolverFirewallConfigInvalidResourceIDRule) Enabled() bool {
37+
return true
38+
}
39+
40+
// Severity returns the rule severity
41+
func (r *AwsRoute53ResolverFirewallConfigInvalidResourceIDRule) Severity() string {
42+
return tflint.ERROR
43+
}
44+
45+
// Link returns the rule reference link
46+
func (r *AwsRoute53ResolverFirewallConfigInvalidResourceIDRule) Link() string {
47+
return ""
48+
}
49+
50+
// Check checks the pattern is valid
51+
func (r *AwsRoute53ResolverFirewallConfigInvalidResourceIDRule) 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 len(val) > r.max {
60+
runner.EmitIssueOnExpr(
61+
r,
62+
"resource_id must be 64 characters or less",
63+
attribute.Expr,
64+
)
65+
}
66+
if len(val) < r.min {
67+
runner.EmitIssueOnExpr(
68+
r,
69+
"resource_id must be 1 characters or higher",
70+
attribute.Expr,
71+
)
72+
}
73+
return nil
74+
})
75+
})
76+
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
// This file generated by `generator/`. DO NOT EDIT
2+
3+
package models
4+
5+
import (
6+
"log"
7+
8+
hcl "github.com/hashicorp/hcl/v2"
9+
"github.com/terraform-linters/tflint-plugin-sdk/tflint"
10+
)
11+
12+
// AwsRoute53ResolverFirewallRuleGroupAssociationInvalidFirewallRuleGroupIDRule checks the pattern is valid
13+
type AwsRoute53ResolverFirewallRuleGroupAssociationInvalidFirewallRuleGroupIDRule struct {
14+
resourceType string
15+
attributeName string
16+
max int
17+
min int
18+
}
19+
20+
// NewAwsRoute53ResolverFirewallRuleGroupAssociationInvalidFirewallRuleGroupIDRule returns new rule with default attributes
21+
func NewAwsRoute53ResolverFirewallRuleGroupAssociationInvalidFirewallRuleGroupIDRule() *AwsRoute53ResolverFirewallRuleGroupAssociationInvalidFirewallRuleGroupIDRule {
22+
return &AwsRoute53ResolverFirewallRuleGroupAssociationInvalidFirewallRuleGroupIDRule{
23+
resourceType: "aws_route53_resolver_firewall_rule_group_association",
24+
attributeName: "firewall_rule_group_id",
25+
max: 64,
26+
min: 1,
27+
}
28+
}
29+
30+
// Name returns the rule name
31+
func (r *AwsRoute53ResolverFirewallRuleGroupAssociationInvalidFirewallRuleGroupIDRule) Name() string {
32+
return "aws_route53_resolver_firewall_rule_group_association_invalid_firewall_rule_group_id"
33+
}
34+
35+
// Enabled returns whether the rule is enabled by default
36+
func (r *AwsRoute53ResolverFirewallRuleGroupAssociationInvalidFirewallRuleGroupIDRule) Enabled() bool {
37+
return true
38+
}
39+
40+
// Severity returns the rule severity
41+
func (r *AwsRoute53ResolverFirewallRuleGroupAssociationInvalidFirewallRuleGroupIDRule) Severity() string {
42+
return tflint.ERROR
43+
}
44+
45+
// Link returns the rule reference link
46+
func (r *AwsRoute53ResolverFirewallRuleGroupAssociationInvalidFirewallRuleGroupIDRule) Link() string {
47+
return ""
48+
}
49+
50+
// Check checks the pattern is valid
51+
func (r *AwsRoute53ResolverFirewallRuleGroupAssociationInvalidFirewallRuleGroupIDRule) 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 len(val) > r.max {
60+
runner.EmitIssueOnExpr(
61+
r,
62+
"firewall_rule_group_id must be 64 characters or less",
63+
attribute.Expr,
64+
)
65+
}
66+
if len(val) < r.min {
67+
runner.EmitIssueOnExpr(
68+
r,
69+
"firewall_rule_group_id must be 1 characters or higher",
70+
attribute.Expr,
71+
)
72+
}
73+
return nil
74+
})
75+
})
76+
}

0 commit comments

Comments
 (0)