Skip to content

Commit ef17ab4

Browse files
authored
resource/aws_ec2_traffic_mirror_filter: Add arn attribute (#13948)
References: - https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-resources-for-iam-policies - https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TrafficMirrorFilter.html (no arn or owner id field) Output from acceptance testing in AWS Commercial: ``` --- PASS: TestAccAWSEc2TrafficMirrorFilter_disappears (12.34s) --- PASS: TestAccAWSEc2TrafficMirrorFilter_tags (35.38s) --- PASS: TestAccAWSEc2TrafficMirrorFilter_basic (35.84s) ``` Output from acceptance testing in AWS GovCloud (US): ``` --- PASS: TestAccAWSEc2TrafficMirrorFilter_disappears (16.95s) --- PASS: TestAccAWSEc2TrafficMirrorFilter_basic (44.16s) --- PASS: TestAccAWSEc2TrafficMirrorFilter_tags (44.43s) ```
1 parent 40e2a37 commit ef17ab4

5 files changed

+23
-12
lines changed

.changelog/13948.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
resource/aws_ec2_traffic_mirror_filter: Add `arn` attribute.
3+
```

aws/resource_aws_ec2_traffic_mirror_filter.go

+15
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"log"
66

77
"github.com/aws/aws-sdk-go/aws"
8+
"github.com/aws/aws-sdk-go/aws/arn"
89
"github.com/aws/aws-sdk-go/service/ec2"
910
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1011
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
@@ -21,6 +22,10 @@ func resourceAwsEc2TrafficMirrorFilter() *schema.Resource {
2122
State: schema.ImportStatePassthrough,
2223
},
2324
Schema: map[string]*schema.Schema{
25+
"arn": {
26+
Type: schema.TypeString,
27+
Computed: true,
28+
},
2429
"description": {
2530
Type: schema.TypeString,
2631
Optional: true,
@@ -150,6 +155,16 @@ func resourceAwsEc2TrafficMirrorFilterRead(d *schema.ResourceData, meta interfac
150155
return fmt.Errorf("error setting network_services for filter %v: %s", d.Id(), err)
151156
}
152157

158+
arn := arn.ARN{
159+
Partition: meta.(*AWSClient).partition,
160+
Service: "ec2",
161+
Region: meta.(*AWSClient).region,
162+
AccountID: meta.(*AWSClient).accountid,
163+
Resource: fmt.Sprintf("traffic-mirror-filter/%s", d.Id()),
164+
}.String()
165+
166+
d.Set("arn", arn)
167+
153168
return nil
154169
}
155170

aws/resource_aws_ec2_traffic_mirror_filter_test.go

+3-12
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package aws
22

33
import (
44
"fmt"
5+
"regexp"
56
"testing"
67

78
"github.com/aws/aws-sdk-go/aws"
@@ -28,6 +29,7 @@ func TestAccAWSEc2TrafficMirrorFilter_basic(t *testing.T) {
2829
Config: testAccTrafficMirrorFilterConfig(description),
2930
Check: resource.ComposeTestCheckFunc(
3031
testAccCheckAWSEc2TrafficMirrorFilterExists(resourceName, &v),
32+
testAccMatchResourceAttrRegionalARN(resourceName, "arn", "ec2", regexp.MustCompile(`traffic-mirror-filter/tmf-.+`)),
3133
resource.TestCheckResourceAttr(resourceName, "description", description),
3234
resource.TestCheckResourceAttr(resourceName, "network_services.#", "1"),
3335
resource.TestCheckResourceAttr(resourceName, "tags.%", "0"),
@@ -122,7 +124,7 @@ func TestAccAWSEc2TrafficMirrorFilter_disappears(t *testing.T) {
122124
Config: testAccTrafficMirrorFilterConfig(description),
123125
Check: resource.ComposeTestCheckFunc(
124126
testAccCheckAWSEc2TrafficMirrorFilterExists(resourceName, &v),
125-
testAccCheckAWSEc2TrafficMirrorFilterDisappears(&v),
127+
testAccCheckResourceDisappears(testAccProvider, resourceAwsEc2TrafficMirrorFilter(), resourceName),
126128
),
127129
ExpectNonEmptyPlan: true,
128130
},
@@ -161,17 +163,6 @@ func testAccCheckAWSEc2TrafficMirrorFilterExists(name string, traffic *ec2.Traff
161163
}
162164
}
163165

164-
func testAccCheckAWSEc2TrafficMirrorFilterDisappears(traffic *ec2.TrafficMirrorFilter) resource.TestCheckFunc {
165-
return func(s *terraform.State) error {
166-
conn := testAccProvider.Meta().(*AWSClient).ec2conn
167-
_, err := conn.DeleteTrafficMirrorFilter(&ec2.DeleteTrafficMirrorFilterInput{
168-
TrafficMirrorFilterId: traffic.TrafficMirrorFilterId,
169-
})
170-
171-
return err
172-
}
173-
}
174-
175166
func testAccTrafficMirrorFilterConfig(description string) string {
176167
return fmt.Sprintf(`
177168
resource "aws_ec2_traffic_mirror_filter" "test" {

website/docs/index.html.markdown

+1
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,7 @@ for more information about connecting to alternate AWS endpoints or AWS compatib
265265
- [`aws_ebs_volume` data source](/docs/providers/aws/d/ebs_volume.html)
266266
- [`aws_ec2_capacity_reservation` resource](/docs/providers/aws/r/ec2_capacity_reservation.html)
267267
- [`aws_ec2_client_vpn_endpoint` resource](/docs/providers/aws/r/ec2_client_vpn_endpoint.html)
268+
- [`aws_ec2_traffic_mirror_filter` resource](/docs/providers/aws/r/ec2_traffic_mirror_filter.html)
268269
- [`aws_ec2_traffic_mirror_filter_rule` resource](/docs/providers/aws/r/ec2_traffic_mirror_filter_rule.html)
269270
- [`aws_ec2_traffic_mirror_session` resource](/docs/providers/aws/r/ec2_traffic_mirror_session.html)
270271
- [`aws_ec2_traffic_mirror_target` resource](/docs/providers/aws/r/ec2_traffic_mirror_target.html)

website/docs/r/ec2_traffic_mirror_filter.html.markdown

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ The following arguments are supported:
3535

3636
In addition to all arguments above, the following attributes are exported:
3737

38+
* `arn` - The ARN of the traffic mirror filter.
3839
* `id` - The name of the filter.
3940

4041
## Import

0 commit comments

Comments
 (0)