Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add data source aws_route53_resolver_firewall_config #25496

Merged
merged 23 commits into from
Nov 9, 2022
Merged
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
7bd3520
add data source aws_route53_resolver_firewall_config
albsilv-aws Jun 20, 2022
172d5ee
update changelog
albsilv-aws Jun 20, 2022
1c03e67
updated documentation
albsilv-aws Jun 20, 2022
58e85e7
added tests
albsilv-aws Jun 21, 2022
b688e7b
fix test function name
albsilv-aws Jun 21, 2022
39f80ee
fix file name
albsilv-aws Jun 21, 2022
3a5642c
fix test config function name
albsilv-aws Jun 21, 2022
3c57891
fix test config function name
albsilv-aws Jun 21, 2022
8a41c8d
updated documentation
albsilv-aws Jun 21, 2022
331bad9
updated documentation
albsilv-aws Jun 21, 2022
08f3249
renamed data source and test files
albsilv-aws Jun 21, 2022
b1523a4
documentation fixes
albsilv-aws Jun 21, 2022
1e0b566
fix setting of the resource_id attribute
albsilv-aws Jun 21, 2022
1cacba1
fix function naming
albsilv-aws Jun 21, 2022
2a70b10
alphabetize attributes
albsilv-aws Jun 21, 2022
d9aeb73
formatting and resource naming
albsilv-aws Jun 22, 2022
8baa41d
fix function name
albsilv-aws Jun 22, 2022
d26d340
fix test name
albsilv-aws Jun 23, 2022
9c8e83e
Merge branch 'main' into HEAD
ewbankkit Nov 9, 2022
6a04963
d/aws_route53_resolver_firewall_config: Alphabetize attributes.
ewbankkit Nov 9, 2022
f9daed4
d/aws_route53_resolver_firewall_config: Tidy up acceptance test confi…
ewbankkit Nov 9, 2022
86ec27a
r/aws_route53_resolver_firewall_config: Switch to 'WithoutTimeout' CR…
ewbankkit Nov 9, 2022
098bcf0
Fix markdownlint 'MD012/no-multiple-blanks Multiple consecutive blank…
ewbankkit Nov 9, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .changelog/25496.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:new-data-source
aws_route53_resolver_firewall_config
```
2 changes: 2 additions & 0 deletions internal/provider/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -824,6 +824,8 @@ func Provider() *schema.Provider {
"aws_route53_resolver_rule": route53resolver.DataSourceRule(),
"aws_route53_resolver_rules": route53resolver.DataSourceRules(),
silvaalbert marked this conversation as resolved.
Show resolved Hide resolved

"aws_route53_resolver_firewall_config": route53resolver.DataSourceResolverFirewallConfig(),

"aws_canonical_user_id": s3.DataSourceCanonicalUserID(),
"aws_s3_bucket": s3.DataSourceBucket(),
"aws_s3_object": s3.DataSourceObject(),
Expand Down
60 changes: 60 additions & 0 deletions internal/service/route53resolver/firewall_config_data_source.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package route53resolver

import (
"fmt"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/route53resolver"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/hashicorp/terraform-provider-aws/internal/conns"
)

func DataSourceResolverFirewallConfig() *schema.Resource {
silvaalbert marked this conversation as resolved.
Show resolved Hide resolved
return &schema.Resource{
Read: dataSourceResolverFirewallConfigRead,

Schema: map[string]*schema.Schema{
"resource_id": {
Type: schema.TypeString,
Required: true,
},
"firewall_fail_open": {
Type: schema.TypeString,
Computed: true,
},
"id": {
Type: schema.TypeString,
Computed: true,
},
"owner_id": {
Type: schema.TypeString,
Computed: true,
},
},
}
}

func dataSourceResolverFirewallConfigRead(d *schema.ResourceData, meta interface{}) error {
silvaalbert marked this conversation as resolved.
Show resolved Hide resolved
conn := meta.(*conns.AWSClient).Route53ResolverConn

input := &route53resolver.GetFirewallConfigInput{
ResourceId: aws.String(d.Get("resource_id").(string)),
}

output, err := conn.GetFirewallConfig(input)

if err != nil {
return fmt.Errorf("error getting Route53 Firewall Config: %w", err)
}

if output == nil {
return fmt.Errorf("no Route53 Firewall Config found matching criteria; try different search")
}

d.SetId(aws.StringValue(output.FirewallConfig.Id))
d.Set("firewall_fail_open", output.FirewallConfig.FirewallFailOpen)
d.Set("owner_id", output.FirewallConfig.OwnerId)
d.Set("resource_id", output.FirewallConfig.ResourceId)

return nil
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package route53resolver_test

import (
"regexp"
"testing"

"github.com/aws/aws-sdk-go/service/route53resolver"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-provider-aws/internal/acctest"
)

func TestAccRoute53ResolverFirewallConfigDataSource_basic(t *testing.T) {
dataSourceName := "data.aws_route53_resolver_firewall_config.test"

resource.Test(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t) },
ErrorCheck: acctest.ErrorCheck(t, route53resolver.EndpointsID),
ProviderFactories: acctest.ProviderFactories,
Steps: []resource.TestStep{
{
Config: testAccFirewallConfigDataSourceConfig_basic(),
Check: resource.ComposeTestCheckFunc(
resource.TestMatchResourceAttr(dataSourceName, "firewall_fail_open", regexp.MustCompile(`ENABLED|DISABLED`)),
resource.TestCheckResourceAttrSet(dataSourceName, "id"),
resource.TestCheckResourceAttrSet(dataSourceName, "owner_id"),
resource.TestCheckResourceAttrSet(dataSourceName, "resource_id"),
),
},
},
})
}

func testAccFirewallConfigDataSourceConfig_basic() string {
return `
resource "aws_vpc" "test" {
cidr_block = "10.0.0.0/16"
enable_dns_support = true
enable_dns_hostnames = true
}

resource "aws_route53_resolver_firewall_config" "test" {
resource_id = aws_vpc.test.id
firewall_fail_open = "ENABLED"
}

data "aws_route53_resolver_firewall_config" "test" {
resource_id = aws_vpc.test.id
}

`
}
34 changes: 34 additions & 0 deletions website/docs/d/route53_resolver_firewall_config.html.markdown
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
subcategory: "Route 53 Resolver"
layout: "aws"
page_title: "AWS: aws_route53_resolver_firewall_config"
description: |-
Provides details about a specific a Route 53 Resolver DNS Firewall config.
---

# Data Source: aws_route53_resolver_firewall_config

`aws_route53_resolver_firewall_config` provides details about a specific a Route 53 Resolver DNS Firewall config.

This data source allows to find a details about a specific a Route 53 Resolver DNS Firewall config.

## Example Usage

The following example shows how to get a firewall config using the VPC id.

```terraform
data "aws_route53_resolver_firewall_config" "example" {
resource_id = "vpc-exampleid"
}
```

## Argument Reference


* `resource_id` - (Required) The ID of the VPC from Amazon VPC that the configuration is for.

The following attribute is additionally exported:

* `firewall_fail_open` - Determines how DNS Firewall operates during failures, for example when all traffic that is sent to DNS Firewall fails to receive a reply.
* `id` - The ID of the firewall configuration.
* `owner_id` - The Amazon Web Services account ID of the owner of the VPC that this firewall configuration applies to.