ipam_pools
Creates, updates, deletes or gets an ipam_pool
resource or lists ipam_pools
in a region
Overview
Name | ipam_pools |
Type | Resource |
Description | Resource Schema of AWS::EC2::IPAMPool Type |
Id | aws.ec2.ipam_pools |
Fields
Name | Datatype | Description |
---|---|---|
ipam_pool_id | string | Id of the IPAM Pool. |
address_family | string | The address family of the address space in this pool. Either IPv4 or IPv6. |
allocation_min_netmask_length | integer | The minimum allowed netmask length for allocations made from this pool. |
allocation_default_netmask_length | integer | The default netmask length for allocations made from this pool. This value is used when the netmask length of an allocation isn't specified. |
allocation_max_netmask_length | integer | The maximum allowed netmask length for allocations made from this pool. |
allocation_resource_tags | array | When specified, an allocation will not be allowed unless a resource has a matching set of tags. |
arn | string | The Amazon Resource Name (ARN) of the IPAM Pool. |
auto_import | boolean | Determines what to do if IPAM discovers resources that haven't been assigned an allocation. If set to true, an allocation will be made automatically. |
aws_service | string | Limits which service in Amazon Web Services that the pool can be used in. |
description | string | |
ipam_scope_id | string | The Id of the scope this pool is a part of. |
ipam_scope_arn | string | The Amazon Resource Name (ARN) of the scope this pool is a part of. |
ipam_scope_type | string | Determines whether this scope contains publicly routable space or space for a private network |
ipam_arn | string | The Amazon Resource Name (ARN) of the IPAM this pool is a part of. |
locale | string | The region of this pool. If not set, this will default to "None" which will disable non-custom allocations. If the locale has been specified for the source pool, this value must match. |
pool_depth | integer | The depth of this pool in the source pool hierarchy. |
provisioned_cidrs | array | A list of cidrs representing the address space available for allocation in this pool. |
public_ip_source | string | The IP address source for pools in the public scope. Only used for provisioning IP address CIDRs to pools in the public scope. Default is `byoip`. |
publicly_advertisable | boolean | Determines whether or not address space from this pool is publicly advertised. Must be set if and only if the pool is IPv6. |
source_ipam_pool_id | string | The Id of this pool's source. If set, all space provisioned in this pool must be free space provisioned in the parent pool. |
source_resource | object | The resource associated with this pool's space. Depending on the ResourceType, setting a SourceResource changes which space can be provisioned in this pool and which types of resources can receive allocations |
state | string | The state of this pool. This can be one of the following values: "create-in-progress", "create-complete", "modify-in-progress", "modify-complete", "delete-in-progress", or "delete-complete" |
state_message | string | An explanation of how the pool arrived at it current state. |
tags | array | An array of key-value pairs to apply to this resource. |
region | string | AWS region. |
Methods
Name | Accessible by | Required Params |
---|---|---|
create_resource | INSERT | IpamScopeId, AddressFamily, region |
delete_resource | DELETE | data__Identifier, region |
update_resource | UPDATE | data__Identifier, data__PatchDocument, region |
list_resources | SELECT | region |
get_resource | SELECT | data__Identifier, region |
SELECT
examples
Gets all ipam_pools
in a region.
SELECT
region,
ipam_pool_id,
address_family,
allocation_min_netmask_length,
allocation_default_netmask_length,
allocation_max_netmask_length,
allocation_resource_tags,
arn,
auto_import,
aws_service,
description,
ipam_scope_id,
ipam_scope_arn,
ipam_scope_type,
ipam_arn,
locale,
pool_depth,
provisioned_cidrs,
public_ip_source,
publicly_advertisable,
source_ipam_pool_id,
source_resource,
state,
state_message,
tags
FROM aws.ec2.ipam_pools
WHERE region = 'us-east-1';
Gets all properties from an individual ipam_pool
.
SELECT
region,
ipam_pool_id,
address_family,
allocation_min_netmask_length,
allocation_default_netmask_length,
allocation_max_netmask_length,
allocation_resource_tags,
arn,
auto_import,
aws_service,
description,
ipam_scope_id,
ipam_scope_arn,
ipam_scope_type,
ipam_arn,
locale,
pool_depth,
provisioned_cidrs,
public_ip_source,
publicly_advertisable,
source_ipam_pool_id,
source_resource,
state,
state_message,
tags
FROM aws.ec2.ipam_pools
WHERE region = 'us-east-1' AND data__Identifier = '<IpamPoolId>';
INSERT
example
Use the following StackQL query and manifest file to create a new ipam_pool
resource, using stack-deploy
.
- Required Properties
- All Properties
- Manifest
/*+ create */
INSERT INTO aws.ec2.ipam_pools (
AddressFamily,
IpamScopeId,
region
)
SELECT
'{{ AddressFamily }}',
'{{ IpamScopeId }}',
'{{ region }}';
/*+ create */
INSERT INTO aws.ec2.ipam_pools (
AddressFamily,
AllocationMinNetmaskLength,
AllocationDefaultNetmaskLength,
AllocationMaxNetmaskLength,
AllocationResourceTags,
AutoImport,
AwsService,
Description,
IpamScopeId,
Locale,
ProvisionedCidrs,
PublicIpSource,
PubliclyAdvertisable,
SourceIpamPoolId,
SourceResource,
Tags,
region
)
SELECT
'{{ AddressFamily }}',
'{{ AllocationMinNetmaskLength }}',
'{{ AllocationDefaultNetmaskLength }}',
'{{ AllocationMaxNetmaskLength }}',
'{{ AllocationResourceTags }}',
'{{ AutoImport }}',
'{{ AwsService }}',
'{{ Description }}',
'{{ IpamScopeId }}',
'{{ Locale }}',
'{{ ProvisionedCidrs }}',
'{{ PublicIpSource }}',
'{{ PubliclyAdvertisable }}',
'{{ SourceIpamPoolId }}',
'{{ SourceResource }}',
'{{ Tags }}',
'{{ region }}';
version: 1
name: stack name
description: stack description
providers:
- aws
globals:
- name: region
value: '{{ vars.AWS_REGION }}'
resources:
- name: ipam_pool
props:
- name: AddressFamily
value: '{{ AddressFamily }}'
- name: AllocationMinNetmaskLength
value: '{{ AllocationMinNetmaskLength }}'
- name: AllocationDefaultNetmaskLength
value: '{{ AllocationDefaultNetmaskLength }}'
- name: AllocationMaxNetmaskLength
value: '{{ AllocationMaxNetmaskLength }}'
- name: AllocationResourceTags
value:
- Key: '{{ Key }}'
Value: '{{ Value }}'
- name: AutoImport
value: '{{ AutoImport }}'
- name: AwsService
value: '{{ AwsService }}'
- name: Description
value: '{{ Description }}'
- name: IpamScopeId
value: '{{ IpamScopeId }}'
- name: Locale
value: '{{ Locale }}'
- name: ProvisionedCidrs
value:
- Cidr: '{{ Cidr }}'
- name: PublicIpSource
value: '{{ PublicIpSource }}'
- name: PubliclyAdvertisable
value: '{{ PubliclyAdvertisable }}'
- name: SourceIpamPoolId
value: '{{ SourceIpamPoolId }}'
- name: SourceResource
value:
ResourceId: '{{ ResourceId }}'
ResourceType: '{{ ResourceType }}'
ResourceRegion: '{{ ResourceRegion }}'
ResourceOwner: '{{ ResourceOwner }}'
- name: Tags
value:
- null
DELETE
example
/*+ delete */
DELETE FROM aws.ec2.ipam_pools
WHERE data__Identifier = '<IpamPoolId>'
AND region = 'us-east-1';
Permissions
To operate on the ipam_pools
resource, the following permissions are required:
Create
ec2:CreateIpamPool,
ec2:DescribeIpamPools,
ec2:ProvisionIpamPoolCidr,
ec2:GetIpamPoolCidrs,
ec2:CreateTags
Read
ec2:DescribeIpamPools,
ec2:GetIpamPoolCidrs
Update
ec2:ModifyIpamPool,
ec2:DescribeIpamPools,
ec2:GetIpamPoolCidrs,
ec2:ProvisionIpamPoolCidr,
ec2:DeprovisionIpamPoolCidr,
ec2:CreateTags,
ec2:DeleteTags
Delete
ec2:DeleteIpamPool,
ec2:DescribeIpamPools,
ec2:GetIpamPoolCidrs,
ec2:DeprovisionIpamPoolCidr,
ec2:DeleteTags
List
ec2:DescribeIpamPools