Skip to content

Commit f05ebea

Browse files
committed
d/aws_route53_resolver_firewall_rule_group: 'id' -> 'firewall_rule_group_id' and switch to 'WithoutTimeout' CRUD handlers (#15090).
Acceptance test output: % make testacc TESTARGS='-run=TestAccRoute53ResolverFirewallRuleGroupDataSource_' PKG=route53resolver ACCTEST_PARALLELISM=2 ==> Checking that code complies with gofmt requirements... TF_ACC=1 go test ./internal/service/route53resolver/... -v -count 1 -parallel 2 -run=TestAccRoute53ResolverFirewallRuleGroupDataSource_ -timeout 180m === RUN TestAccRoute53ResolverFirewallRuleGroupDataSource_basic --- PASS: TestAccRoute53ResolverFirewallRuleGroupDataSource_basic (22.88s) PASS ok github.com/hashicorp/terraform-provider-aws/internal/service/route53resolver 30.541s
1 parent d9e13fd commit f05ebea

File tree

3 files changed

+53
-57
lines changed

3 files changed

+53
-57
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,95 +1,89 @@
11
package route53resolver
22

33
import (
4-
"fmt"
4+
"context"
55

66
"github.com/aws/aws-sdk-go/aws"
7-
"github.com/aws/aws-sdk-go/service/route53resolver"
7+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
88
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
99
"github.com/hashicorp/terraform-provider-aws/internal/conns"
1010
)
1111

1212
func DataSourceFirewallRuleGroup() *schema.Resource {
1313
return &schema.Resource{
14-
Read: dataSourceFirewallRuleGroupRead,
14+
ReadWithoutTimeout: dataSourceFirewallRuleGroupRead,
1515

1616
Schema: map[string]*schema.Schema{
17-
"id": {
18-
Type: schema.TypeString,
19-
Required: true,
20-
},
2117
"arn": {
2218
Type: schema.TypeString,
2319
Computed: true,
2420
},
25-
"name": {
21+
"creation_time": {
2622
Type: schema.TypeString,
2723
Computed: true,
2824
},
29-
"rule_count": {
30-
Type: schema.TypeInt,
25+
"creator_request_id": {
26+
Type: schema.TypeString,
3127
Computed: true,
3228
},
33-
"status": {
29+
"firewall_rule_group_id": {
30+
Type: schema.TypeString,
31+
Required: true,
32+
},
33+
"modification_time": {
3434
Type: schema.TypeString,
3535
Computed: true,
3636
},
37-
"status_message": {
37+
"name": {
3838
Type: schema.TypeString,
3939
Computed: true,
4040
},
4141
"owner_id": {
4242
Type: schema.TypeString,
4343
Computed: true,
4444
},
45-
"creator_request_id": {
46-
Type: schema.TypeString,
45+
"rule_count": {
46+
Type: schema.TypeInt,
4747
Computed: true,
4848
},
4949
"share_status": {
5050
Type: schema.TypeString,
5151
Computed: true,
5252
},
53-
"creation_time": {
53+
"status": {
5454
Type: schema.TypeString,
5555
Computed: true,
5656
},
57-
"modification_time": {
57+
"status_message": {
5858
Type: schema.TypeString,
5959
Computed: true,
6060
},
6161
},
6262
}
6363
}
6464

65-
func dataSourceFirewallRuleGroupRead(d *schema.ResourceData, meta interface{}) error {
65+
func dataSourceFirewallRuleGroupRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
6666
conn := meta.(*conns.AWSClient).Route53ResolverConn
6767

68-
input := &route53resolver.GetFirewallRuleGroupInput{
69-
FirewallRuleGroupId: aws.String(d.Get("id").(string)),
70-
}
71-
72-
output, err := conn.GetFirewallRuleGroup(input)
68+
id := d.Get("firewall_rule_group_id").(string)
69+
ruleGroup, err := FindFirewallRuleGroupByID(ctx, conn, id)
7370

7471
if err != nil {
75-
return fmt.Errorf("error getting Route53 Firewall Rule Group: %w", err)
76-
}
77-
78-
if output == nil {
79-
return fmt.Errorf("no Route53 Firewall Rule Group found matching criteria; try different search")
72+
return diag.Errorf("reading Route53 Resolver Firewall Rule Group (%s): %s", id, err)
8073
}
8174

82-
d.SetId(aws.StringValue(output.FirewallRuleGroup.Id))
83-
d.Set("arn", output.FirewallRuleGroup.Arn)
84-
d.Set("creation_time", output.FirewallRuleGroup.CreationTime)
85-
d.Set("creator_request_id", output.FirewallRuleGroup.CreatorRequestId)
86-
d.Set("modification_time", output.FirewallRuleGroup.ModificationTime)
87-
d.Set("name", output.FirewallRuleGroup.Name)
88-
d.Set("owner_id", output.FirewallRuleGroup.OwnerId)
89-
d.Set("rule_count", output.FirewallRuleGroup.RuleCount)
90-
d.Set("share_status", output.FirewallRuleGroup.ShareStatus)
91-
d.Set("status", output.FirewallRuleGroup.Status)
92-
d.Set("status_message", output.FirewallRuleGroup.StatusMessage)
75+
d.SetId(aws.StringValue(ruleGroup.Id))
76+
d.Set("arn", ruleGroup.Arn)
77+
d.Set("creation_time", ruleGroup.CreationTime)
78+
d.Set("creator_request_id", ruleGroup.CreatorRequestId)
79+
d.Set("firewall_rule_group_id", ruleGroup.Id)
80+
d.Set("modification_time", ruleGroup.ModificationTime)
81+
d.Set("name", ruleGroup.Name)
82+
d.Set("owner_id", ruleGroup.OwnerId)
83+
d.Set("rule_count", ruleGroup.RuleCount)
84+
d.Set("share_status", ruleGroup.ShareStatus)
85+
d.Set("status", ruleGroup.Status)
86+
d.Set("status_message", ruleGroup.StatusMessage)
9387

9488
return nil
9589
}
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,53 @@
11
package route53resolver_test
22

33
import (
4-
"regexp"
4+
"fmt"
55
"testing"
66

77
"github.com/aws/aws-sdk-go/service/route53resolver"
8+
sdkacctest "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest"
89
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
910
"github.com/hashicorp/terraform-provider-aws/internal/acctest"
1011
)
1112

1213
func TestAccRoute53ResolverFirewallRuleGroupDataSource_basic(t *testing.T) {
14+
rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)
1315
dataSourceName := "data.aws_route53_resolver_firewall_rule_group.test"
16+
resourceName := "aws_route53_resolver_firewall_rule_group.test"
1417

1518
resource.Test(t, resource.TestCase{
1619
PreCheck: func() { acctest.PreCheck(t); testAccPreCheck(t) },
1720
ErrorCheck: acctest.ErrorCheck(t, route53resolver.EndpointsID),
1821
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories,
1922
Steps: []resource.TestStep{
2023
{
21-
Config: testAccFirewallRuleGroupDataSourceConfig_basic(),
22-
Check: resource.ComposeTestCheckFunc(
23-
resource.TestCheckResourceAttrSet(dataSourceName, "id"),
24-
acctest.MatchResourceAttrRegionalARN(dataSourceName, "arn", "route53resolver", regexp.MustCompile(`firewall-rule-group/.+`)),
24+
Config: testAccFirewallRuleGroupDataSourceConfig_basic(rName),
25+
Check: resource.ComposeAggregateTestCheckFunc(
26+
resource.TestCheckResourceAttrPair(dataSourceName, "arn", resourceName, "arn"),
27+
resource.TestCheckResourceAttrPair(dataSourceName, "firewall_rule_group_id", resourceName, "id"),
2528
resource.TestCheckResourceAttrSet(dataSourceName, "creation_time"),
2629
resource.TestCheckResourceAttrSet(dataSourceName, "creator_request_id"),
2730
resource.TestCheckResourceAttrSet(dataSourceName, "modification_time"),
28-
resource.TestCheckResourceAttrSet(dataSourceName, "name"),
29-
resource.TestCheckResourceAttrSet(dataSourceName, "owner_id"),
30-
resource.TestCheckResourceAttrSet(dataSourceName, "rule_count"),
31-
resource.TestMatchResourceAttr(dataSourceName, "status", regexp.MustCompile(`COMPLETE|DELETING|UPDATING`)),
32-
resource.TestMatchResourceAttr(dataSourceName, "share_status", regexp.MustCompile(`NOT_SHARED|SHARED_WITH_ME|SHARED_BY_ME`)),
31+
resource.TestCheckResourceAttrPair(dataSourceName, "name", resourceName, "name"),
32+
resource.TestCheckResourceAttrPair(dataSourceName, "owner_id", resourceName, "owner_id"),
33+
resource.TestCheckResourceAttr(dataSourceName, "rule_count", "0"),
34+
resource.TestCheckResourceAttrPair(dataSourceName, "share_status", resourceName, "share_status"),
35+
resource.TestCheckResourceAttrSet(dataSourceName, "status"),
3336
resource.TestCheckResourceAttrSet(dataSourceName, "status_message"),
3437
),
3538
},
3639
},
3740
})
3841
}
3942

40-
func testAccFirewallRuleGroupDataSourceConfig_basic() string {
41-
return `
43+
func testAccFirewallRuleGroupDataSourceConfig_basic(rName string) string {
44+
return fmt.Sprintf(`
4245
resource "aws_route53_resolver_firewall_rule_group" "test" {
43-
name = "test"
46+
name = %[1]q
4447
}
4548
4649
data "aws_route53_resolver_firewall_rule_group" "test" {
47-
id = aws_route53_resolver_firewall_rule_group.test.id
50+
firewall_rule_group_id = aws_route53_resolver_firewall_rule_group.test.id
4851
}
49-
50-
`
52+
`, rName)
5153
}

website/docs/d/route53_resolver_firewall_rule_group.html.markdown

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,17 @@ This data source allows to retrieve details about a specific a Route 53 Resolver
1414

1515
## Example Usage
1616

17-
The following example shows how to get a firewall rule group from its id.
17+
The following example shows how to get a firewall rule group from its ID.
1818

1919
```terraform
2020
data "aws_route53_resolver_firewall_rule_group" "example" {
21-
id = "rslvr-frg-example"
21+
firewall_rule_group_id = "rslvr-frg-example"
2222
}
2323
```
2424

2525
## Argument Reference
2626

27-
* `id` - (Required) The ID of the rule group.
27+
* `firewall_rule_group_id` - (Required) The ID of the rule group.
2828

2929
The following attribute is additionally exported:
3030

0 commit comments

Comments
 (0)