diff --git a/.changelog/23195.txt b/.changelog/23195.txt new file mode 100644 index 000000000000..056d5c71ff5c --- /dev/null +++ b/.changelog/23195.txt @@ -0,0 +1,3 @@ +```release-note:bug +data_source/aws_vpc_ipam_pool: error if no pool found +``` diff --git a/internal/service/ec2/vpc_ipam_pool_data_source.go b/internal/service/ec2/vpc_ipam_pool_data_source.go index 1b9c226c2a5c..cf978aa54c2b 100644 --- a/internal/service/ec2/vpc_ipam_pool_data_source.go +++ b/internal/service/ec2/vpc_ipam_pool_data_source.go @@ -9,6 +9,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-provider-aws/internal/conns" tftags "github.com/hashicorp/terraform-provider-aws/internal/tags" + "github.com/hashicorp/terraform-provider-aws/internal/tfresource" ) func DataSourceVPCIpamPool() *schema.Resource { @@ -115,8 +116,8 @@ func dataSourceVPCIpamPoolRead(d *schema.ResourceData, meta interface{}) error { return err } - if output == nil || len(output.IpamPools) == 0 || output.IpamPools[0] == nil { - return nil + if len(output.IpamPools) == 0 || output.IpamPools[0] == nil { + return tfresource.SingularDataSourceFindError("EC2 VPC IPAM POOL", tfresource.NewEmptyResultError(input)) } if len(output.IpamPools) > 1 { diff --git a/website/docs/d/vpc_ipam_pool.html.markdown b/website/docs/d/vpc_ipam_pool.html.markdown index 173c6af5af2b..b8c6bc252b73 100644 --- a/website/docs/d/vpc_ipam_pool.html.markdown +++ b/website/docs/d/vpc_ipam_pool.html.markdown @@ -21,7 +21,17 @@ via RAM, and using that pool id to create a VPC with a CIDR derived from AWS IPAM. ```terraform -data "aws_vpc_ipam_pool" "test" {} +data "aws_vpc_ipam_pool" "test" { + filter { + name = "description" + values = ["*test*"] + } + + filter { + name = "address-family" + values = ["ipv4"] + } +} resource "aws_vpc" "test" { ipv4_ipam_pool_id = data.aws_vpc_ipam_pool.test.id