Skip to content

Commit a007c7d

Browse files

14 files changed

+983
-0
lines changed

docs/rules/README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,18 @@ These rules enforce best practices and naming conventions:
567567
|aws_glue_connection_invalid_connection_type||
568568
|aws_glue_crawler_invalid_security_configuration||
569569
|aws_glue_crawler_invalid_table_prefix||
570+
|aws_glue_dev_endpoint_invalid_role_arn||
571+
|aws_glue_dev_endpoint_invalid_worker_type||
572+
|aws_glue_ml_transform_invalid_glue_version||
573+
|aws_glue_ml_transform_invalid_worker_type||
574+
|aws_glue_registry_invalid_registry_name||
575+
|aws_glue_resource_policy_invalid_enable_hybrid||
576+
|aws_glue_schema_invalid_compatibility||
577+
|aws_glue_schema_invalid_data_format||
578+
|aws_glue_schema_invalid_schema_definition||
579+
|aws_glue_schema_invalid_schema_name||
570580
|aws_glue_trigger_invalid_type||
581+
|aws_glue_user_defined_function_invalid_owner_type||
571582
|aws_guardduty_detector_invalid_finding_publishing_frequency||
572583
|aws_guardduty_invite_accepter_invalid_detector_id||
573584
|aws_guardduty_ipset_invalid_detector_id||
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+
// AwsGlueDevEndpointInvalidRoleArnRule checks the pattern is valid
15+
type AwsGlueDevEndpointInvalidRoleArnRule struct {
16+
resourceType string
17+
attributeName string
18+
pattern *regexp.Regexp
19+
}
20+
21+
// NewAwsGlueDevEndpointInvalidRoleArnRule returns new rule with default attributes
22+
func NewAwsGlueDevEndpointInvalidRoleArnRule() *AwsGlueDevEndpointInvalidRoleArnRule {
23+
return &AwsGlueDevEndpointInvalidRoleArnRule{
24+
resourceType: "aws_glue_dev_endpoint",
25+
attributeName: "role_arn",
26+
pattern: regexp.MustCompile(`^arn:aws:iam::\d{12}:role/.*$`),
27+
}
28+
}
29+
30+
// Name returns the rule name
31+
func (r *AwsGlueDevEndpointInvalidRoleArnRule) Name() string {
32+
return "aws_glue_dev_endpoint_invalid_role_arn"
33+
}
34+
35+
// Enabled returns whether the rule is enabled by default
36+
func (r *AwsGlueDevEndpointInvalidRoleArnRule) Enabled() bool {
37+
return true
38+
}
39+
40+
// Severity returns the rule severity
41+
func (r *AwsGlueDevEndpointInvalidRoleArnRule) Severity() string {
42+
return tflint.ERROR
43+
}
44+
45+
// Link returns the rule reference link
46+
func (r *AwsGlueDevEndpointInvalidRoleArnRule) Link() string {
47+
return ""
48+
}
49+
50+
// Check checks the pattern is valid
51+
func (r *AwsGlueDevEndpointInvalidRoleArnRule) 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), `^arn:aws:iam::\d{12}:role/.*$`),
63+
attribute.Expr,
64+
)
65+
}
66+
return nil
67+
})
68+
})
69+
}
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
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+
// AwsGlueDevEndpointInvalidWorkerTypeRule checks the pattern is valid
14+
type AwsGlueDevEndpointInvalidWorkerTypeRule struct {
15+
resourceType string
16+
attributeName string
17+
enum []string
18+
}
19+
20+
// NewAwsGlueDevEndpointInvalidWorkerTypeRule returns new rule with default attributes
21+
func NewAwsGlueDevEndpointInvalidWorkerTypeRule() *AwsGlueDevEndpointInvalidWorkerTypeRule {
22+
return &AwsGlueDevEndpointInvalidWorkerTypeRule{
23+
resourceType: "aws_glue_dev_endpoint",
24+
attributeName: "worker_type",
25+
enum: []string{
26+
"Standard",
27+
"G.1X",
28+
"G.2X",
29+
},
30+
}
31+
}
32+
33+
// Name returns the rule name
34+
func (r *AwsGlueDevEndpointInvalidWorkerTypeRule) Name() string {
35+
return "aws_glue_dev_endpoint_invalid_worker_type"
36+
}
37+
38+
// Enabled returns whether the rule is enabled by default
39+
func (r *AwsGlueDevEndpointInvalidWorkerTypeRule) Enabled() bool {
40+
return true
41+
}
42+
43+
// Severity returns the rule severity
44+
func (r *AwsGlueDevEndpointInvalidWorkerTypeRule) Severity() string {
45+
return tflint.ERROR
46+
}
47+
48+
// Link returns the rule reference link
49+
func (r *AwsGlueDevEndpointInvalidWorkerTypeRule) Link() string {
50+
return ""
51+
}
52+
53+
// Check checks the pattern is valid
54+
func (r *AwsGlueDevEndpointInvalidWorkerTypeRule) Check(runner tflint.Runner) error {
55+
log.Printf("[TRACE] Check `%s` rule", r.Name())
56+
57+
return runner.WalkResourceAttributes(r.resourceType, r.attributeName, func(attribute *hcl.Attribute) error {
58+
var val string
59+
err := runner.EvaluateExpr(attribute.Expr, &val, nil)
60+
61+
return runner.EnsureNoError(err, func() error {
62+
found := false
63+
for _, item := range r.enum {
64+
if item == val {
65+
found = true
66+
}
67+
}
68+
if !found {
69+
runner.EmitIssueOnExpr(
70+
r,
71+
fmt.Sprintf(`"%s" is an invalid value as worker_type`, truncateLongMessage(val)),
72+
attribute.Expr,
73+
)
74+
}
75+
return nil
76+
})
77+
})
78+
}
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+
// AwsGlueMlTransformInvalidGlueVersionRule checks the pattern is valid
15+
type AwsGlueMlTransformInvalidGlueVersionRule struct {
16+
resourceType string
17+
attributeName string
18+
max int
19+
min int
20+
pattern *regexp.Regexp
21+
}
22+
23+
// NewAwsGlueMlTransformInvalidGlueVersionRule returns new rule with default attributes
24+
func NewAwsGlueMlTransformInvalidGlueVersionRule() *AwsGlueMlTransformInvalidGlueVersionRule {
25+
return &AwsGlueMlTransformInvalidGlueVersionRule{
26+
resourceType: "aws_glue_ml_transform",
27+
attributeName: "glue_version",
28+
max: 255,
29+
min: 1,
30+
pattern: regexp.MustCompile(`^\w+\.\w+$`),
31+
}
32+
}
33+
34+
// Name returns the rule name
35+
func (r *AwsGlueMlTransformInvalidGlueVersionRule) Name() string {
36+
return "aws_glue_ml_transform_invalid_glue_version"
37+
}
38+
39+
// Enabled returns whether the rule is enabled by default
40+
func (r *AwsGlueMlTransformInvalidGlueVersionRule) Enabled() bool {
41+
return true
42+
}
43+
44+
// Severity returns the rule severity
45+
func (r *AwsGlueMlTransformInvalidGlueVersionRule) Severity() string {
46+
return tflint.ERROR
47+
}
48+
49+
// Link returns the rule reference link
50+
func (r *AwsGlueMlTransformInvalidGlueVersionRule) Link() string {
51+
return ""
52+
}
53+
54+
// Check checks the pattern is valid
55+
func (r *AwsGlueMlTransformInvalidGlueVersionRule) 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+
"glue_version must be 255 characters or less",
67+
attribute.Expr,
68+
)
69+
}
70+
if len(val) < r.min {
71+
runner.EmitIssueOnExpr(
72+
r,
73+
"glue_version 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), `^\w+\.\w+$`),
81+
attribute.Expr,
82+
)
83+
}
84+
return nil
85+
})
86+
})
87+
}
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
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+
// AwsGlueMlTransformInvalidWorkerTypeRule checks the pattern is valid
14+
type AwsGlueMlTransformInvalidWorkerTypeRule struct {
15+
resourceType string
16+
attributeName string
17+
enum []string
18+
}
19+
20+
// NewAwsGlueMlTransformInvalidWorkerTypeRule returns new rule with default attributes
21+
func NewAwsGlueMlTransformInvalidWorkerTypeRule() *AwsGlueMlTransformInvalidWorkerTypeRule {
22+
return &AwsGlueMlTransformInvalidWorkerTypeRule{
23+
resourceType: "aws_glue_ml_transform",
24+
attributeName: "worker_type",
25+
enum: []string{
26+
"Standard",
27+
"G.1X",
28+
"G.2X",
29+
},
30+
}
31+
}
32+
33+
// Name returns the rule name
34+
func (r *AwsGlueMlTransformInvalidWorkerTypeRule) Name() string {
35+
return "aws_glue_ml_transform_invalid_worker_type"
36+
}
37+
38+
// Enabled returns whether the rule is enabled by default
39+
func (r *AwsGlueMlTransformInvalidWorkerTypeRule) Enabled() bool {
40+
return true
41+
}
42+
43+
// Severity returns the rule severity
44+
func (r *AwsGlueMlTransformInvalidWorkerTypeRule) Severity() string {
45+
return tflint.ERROR
46+
}
47+
48+
// Link returns the rule reference link
49+
func (r *AwsGlueMlTransformInvalidWorkerTypeRule) Link() string {
50+
return ""
51+
}
52+
53+
// Check checks the pattern is valid
54+
func (r *AwsGlueMlTransformInvalidWorkerTypeRule) Check(runner tflint.Runner) error {
55+
log.Printf("[TRACE] Check `%s` rule", r.Name())
56+
57+
return runner.WalkResourceAttributes(r.resourceType, r.attributeName, func(attribute *hcl.Attribute) error {
58+
var val string
59+
err := runner.EvaluateExpr(attribute.Expr, &val, nil)
60+
61+
return runner.EnsureNoError(err, func() error {
62+
found := false
63+
for _, item := range r.enum {
64+
if item == val {
65+
found = true
66+
}
67+
}
68+
if !found {
69+
runner.EmitIssueOnExpr(
70+
r,
71+
fmt.Sprintf(`"%s" is an invalid value as worker_type`, truncateLongMessage(val)),
72+
attribute.Expr,
73+
)
74+
}
75+
return nil
76+
})
77+
})
78+
}

0 commit comments

Comments
 (0)