awscc_ec2_ipam_pool (Resource)

Resource Schema of AWS::EC2::IPAMPool Type

Example Usage

Basic

data "aws_region" "current" {}

resource "awscc_ec2_ipam" "example" {
  operating_regions = [
    {
      region_name = data.aws_region.current.name
    }
  ]
}

resource "awscc_ec2_ipam_pool" "example" {
  address_family = "ipv4"
  description    = "example pool"
  ipam_scope_id  = awscc_ec2_ipam.example.private_default_scope_id
  locale         = data.aws_region.current.name

  tags = [{
    key   = "Modified By"
    value = "AWSCC"
  }]
}

Nested pools

data "aws_region" "current" {}

resource "awscc_ec2_ipam" "example" {
  operating_regions = [
    {
      region_name = data.aws_region.current.name
    }
  ]
}

resource "awscc_ec2_ipam_pool" "level1" {
  address_family = "ipv4"
  ipam_scope_id  = awscc_ec2_ipam.example.private_default_scope_id
  locale         = data.aws_region.current.name
}

resource "awscc_ec2_ipam_pool_cidr" "level1_cidr1" {
  ipam_pool_id = awscc_ec2_ipam_pool.level1.id
  cidr         = "10.0.0.0/16"
}

resource "awscc_ec2_ipam_pool" "level_2" {
  address_family      = "ipv4"
  ipam_scope_id       = awscc_ec2_ipam.example.private_default_scope_id
  locale              = data.aws_region.current.name
  source_ipam_pool_id = awscc_ec2_ipam_pool.level1.id
}

resource "awscc_ec2_ipam_pool_cidr" "level2_cidr1" {
  ipam_pool_id   = awscc_ec2_ipam_pool.level_2.id
  netmask_length = 24
}

Allocation specifications

data "aws_region" "current" {}

resource "awscc_ec2_ipam" "example" {
  operating_regions = [
    {
      region_name = data.aws_region.current.name
    }
  ]
}

resource "awscc_ec2_ipam_pool" "example" {
  address_family = "ipv4"
  ipam_scope_id  = awscc_ec2_ipam.example.private_default_scope_id
  locale         = data.aws_region.current.name

  allocation_default_netmask_length = 24
  allocation_max_netmask_length     = 25
  allocation_min_netmask_length     = 22

  allocation_resource_tags = [{
    key   = "CidrSource"
    value = "FromIPAM"
  }]
}

Auto import

data "aws_region" "current" {}

resource "awscc_ec2_ipam" "example" {
  operating_regions = [
    {
      region_name = data.aws_region.current.name
    }
  ]
}

resource "awscc_ec2_ipam_pool" "example" {
  address_family = "ipv4"
  auto_import    = true
  ipam_scope_id  = awscc_ec2_ipam.example.private_default_scope_id
  locale         = data.aws_region.current.name
}

Provisioned CIDRs

data "aws_region" "current" {}

resource "awscc_ec2_ipam" "example" {
  operating_regions = [
    {
      region_name = data.aws_region.current.name
    }
  ]
}

resource "awscc_ec2_ipam_pool" "example" {
  address_family = "ipv4"
  ipam_scope_id  = awscc_ec2_ipam.example.private_default_scope_id
  locale         = data.aws_region.current.name

  provisioned_cidrs = [
    {
      cidr = "10.0.0.0/16"
    }
  ]
}

IPv6 BYOIP publicly advertisable pools

data "aws_region" "current" {}

resource "awscc_ec2_ipam" "example" {
  operating_regions = [
    {
      region_name = data.aws_region.current.name
    }
  ]
}

resource "awscc_ec2_ipam_pool" "example" {
  address_family = "ipv6"
  ipam_scope_id  = awscc_ec2_ipam.example.public_default_scope_id
  locale         = data.aws_region.current.name

  aws_service           = "ec2"
  public_ip_source      = "byoip"
  publicly_advertisable = true
}

IPv6 Amazon public ip source

data "aws_region" "current" {}

resource "awscc_ec2_ipam" "example" {
  operating_regions = [
    {
      region_name = data.aws_region.current.name
    }
  ]
}

resource "awscc_ec2_ipam_pool" "example" {
  address_family = "ipv6"
  ipam_scope_id  = awscc_ec2_ipam.example.public_default_scope_id
  locale         = data.aws_region.current.name

  aws_service      = "ec2"
  public_ip_source = "amazon"
}

Schema

Required

Optional

Read-Only

Nested Schema for allocation_resource_tags

Required:

Nested Schema for provisioned_cidrs

Required:

Nested Schema for source_resource

Required:

Nested Schema for tags

Required:

Import

Import is supported using the following syntax:

$ terraform import awscc_ec2_ipam_pool.example <resource ID>