Skip to content

Commit 39ddccd

Browse files
authored
Add route target types for aws_route rules (#169)
1 parent 259c050 commit 39ddccd

File tree

4 files changed

+19
-14
lines changed

4 files changed

+19
-14
lines changed

docs/rules/aws_route_not_specified_target.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,4 @@ It results in an error.
2828

2929
## How To Fix
3030

31-
Add a routing target. The [supported arguments](https://www.terraform.io/docs/providers/aws/r/route.html#argument-reference) are: `egress_only_gateway_id`, `gateway_id`, `instance_id`, `nat_gateway_id`, `network_interface_id`, `transit_gateway_id`, `vpc_peering_connection_id`.
31+
Add a routing target. See https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route#argument-reference

docs/rules/aws_route_specified_multiple_targets.md

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,4 @@ It results in an error.
3030

3131
## How To Fix
3232

33-
Check if two or more of the following attributes are specified:
34-
35-
- gateway_id
36-
- egress_only_gateway_id
37-
- nat_gateway_id
38-
- instance_id
39-
- vpc_peering_connection_id
40-
- network_interface_id
41-
- transit_gateway_id
33+
Remove the other targets so that there is only one target. See https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route#argument-reference

rules/aws_route_not_specified_target.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,7 @@ func (r *AwsRouteNotSpecifiedTargetRule) Link() string {
3939
return project.ReferenceLink(r.Name())
4040
}
4141

42-
// Check checks whether `gateway_id`, `egress_only_gateway_id`, `nat_gateway_id`, `instance_id`
43-
// `vpc_peering_connection_id`, `network_interface_id` or `vpc_endpoint_id` is defined in a resource
42+
// Check checks whether a target is defined in a resource
4443
func (r *AwsRouteNotSpecifiedTargetRule) Check(runner tflint.Runner) error {
4544
return runner.WalkResources(r.resourceType, func(resource *configs.Resource) error {
4645
body, _, diags := resource.Config.PartialContent(&hcl.BodySchema{
@@ -69,6 +68,12 @@ func (r *AwsRouteNotSpecifiedTargetRule) Check(runner tflint.Runner) error {
6968
{
7069
Name: "vpc_endpoint_id",
7170
},
71+
{
72+
Name: "carrier_gateway_id",
73+
},
74+
{
75+
Name: "local_gateway_id",
76+
},
7277
},
7378
})
7479
if diags.HasErrors() {

rules/aws_route_specified_multiple_targets.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,7 @@ func (r *AwsRouteSpecifiedMultipleTargetsRule) Link() string {
3939
return project.ReferenceLink(r.Name())
4040
}
4141

42-
// Check checks whether a resource defines `gateway_id`, `egress_only_gateway_id`, `nat_gateway_id`
43-
// `instance_id`, `vpc_peering_connection_id` or `network_interface_id` at the same time
42+
// Check checks whether a resource defines multiple targets
4443
func (r *AwsRouteSpecifiedMultipleTargetsRule) Check(runner tflint.Runner) error {
4544
return runner.WalkResources(r.resourceType, func(resource *configs.Resource) error {
4645
body, _, diags := resource.Config.PartialContent(&hcl.BodySchema{
@@ -66,6 +65,15 @@ func (r *AwsRouteSpecifiedMultipleTargetsRule) Check(runner tflint.Runner) error
6665
{
6766
Name: "transit_gateway_id",
6867
},
68+
{
69+
Name: "vpc_endpoint_id",
70+
},
71+
{
72+
Name: "carrier_gateway_id",
73+
},
74+
{
75+
Name: "local_gateway_id",
76+
},
6977
},
7078
})
7179
if diags.HasErrors() {

0 commit comments

Comments
 (0)