Creates an IPAM.
IPAM is a VPC feature that you can use to automate your IP address management workflows including assigning, tracking, troubleshooting, and auditing IP addresses across AWS Regions and accounts throughout your AWS Organization. For more information, see What is IPAM? in the Amazon VPC IPAM User Guide.
https://docs.aws.amazon.com/vpc/latest/ipam/what-is-it-ipam.html
import { Ipam } from '@renovosolutions/cdk-library-aws-ipam'
new Ipam(scope: Construct, id: string, props: IpamProps)| Name | Type | Description |
|---|---|---|
scope |
constructs.Construct |
No description. |
id |
string |
No description. |
props |
IpamProps |
No description. |
- Type: constructs.Construct
- Type: string
- Type: IpamProps
| Name | Description |
|---|---|
toString |
Returns a string representation of this construct. |
public toString(): stringReturns a string representation of this construct.
| Name | Description |
|---|---|
isConstruct |
Checks if x is a construct. |
import { Ipam } from '@renovosolutions/cdk-library-aws-ipam'
Ipam.isConstruct(x: any)Checks if x is a construct.
- Type: any
Any object.
| Name | Type | Description |
|---|---|---|
node |
constructs.Node |
The tree node. |
cfnIpam |
aws-cdk-lib.aws_ec2.CfnIPAM |
The underlying IPAM resource. |
ipamId |
string |
The ID of the resulting IPAM resource. |
privateDefaultScopeId |
string |
The default private scope ID. |
publicDefaultScopeId |
string |
The default public scope ID. |
scopeCount |
number |
The number of scopes in this IPAM. |
public readonly node: Node;- Type: constructs.Node
The tree node.
public readonly cfnIpam: CfnIPAM;- Type: aws-cdk-lib.aws_ec2.CfnIPAM
The underlying IPAM resource.
public readonly ipamId: string;- Type: string
The ID of the resulting IPAM resource.
public readonly privateDefaultScopeId: string;- Type: string
The default private scope ID.
public readonly publicDefaultScopeId: string;- Type: string
The default public scope ID.
public readonly scopeCount: number;- Type: number
The number of scopes in this IPAM.
An IPAM Allocation.
In IPAM, an allocation is a CIDR assignment from an IPAM pool to another resource or IPAM pool.
import { IpamAllocation } from '@renovosolutions/cdk-library-aws-ipam'
new IpamAllocation(scope: Construct, id: string, props: IpamAllocationProps)| Name | Type | Description |
|---|---|---|
scope |
constructs.Construct |
No description. |
id |
string |
No description. |
props |
IpamAllocationProps |
No description. |
- Type: constructs.Construct
- Type: string
- Type: IpamAllocationProps
| Name | Description |
|---|---|
toString |
Returns a string representation of this construct. |
public toString(): stringReturns a string representation of this construct.
| Name | Description |
|---|---|
isConstruct |
Checks if x is a construct. |
import { IpamAllocation } from '@renovosolutions/cdk-library-aws-ipam'
IpamAllocation.isConstruct(x: any)Checks if x is a construct.
- Type: any
Any object.
| Name | Type | Description |
|---|---|---|
node |
constructs.Node |
The tree node. |
allocation |
aws-cdk-lib.aws_ec2.CfnIPAMAllocation |
The underlying IPAM Allocation resource. |
ipamPoolAllocationId |
string |
The ID of the allocation. |
public readonly node: Node;- Type: constructs.Node
The tree node.
public readonly allocation: CfnIPAMAllocation;- Type: aws-cdk-lib.aws_ec2.CfnIPAMAllocation
The underlying IPAM Allocation resource.
public readonly ipamPoolAllocationId: string;- Type: string
The ID of the allocation.
An IPAM Pool.
In IPAM, a pool is a collection of contiguous IP addresses CIDRs. Pools enable you to organize your IP addresses according to your routing and security needs. For example, if you have separate routing and security needs for development and production applications, you can create a pool for each.
import { IpamPool } from '@renovosolutions/cdk-library-aws-ipam'
new IpamPool(scope: Construct, id: string, props: IpamPoolProps)| Name | Type | Description |
|---|---|---|
scope |
constructs.Construct |
No description. |
id |
string |
No description. |
props |
IpamPoolProps |
No description. |
- Type: constructs.Construct
- Type: string
- Type: IpamPoolProps
| Name | Description |
|---|---|
toString |
Returns a string representation of this construct. |
provisionCidr |
Adds a CIDR to the pool. |
public toString(): stringReturns a string representation of this construct.
public provisionCidr(cidr: string): voidAdds a CIDR to the pool.
- Type: string
The CIDR to add to the pool.
| Name | Description |
|---|---|
isConstruct |
Checks if x is a construct. |
import { IpamPool } from '@renovosolutions/cdk-library-aws-ipam'
IpamPool.isConstruct(x: any)Checks if x is a construct.
- Type: any
Any object.
| Name | Type | Description |
|---|---|---|
node |
constructs.Node |
The tree node. |
arn |
string |
The ARN of the resulting IPAM Pool resource. |
ipamArn |
string |
The ARN of the IPAM this pool belongs to. |
ipamPoolId |
string |
The ID of the resulting IPAM Pool resource. |
ipamScopeArn |
string |
The ARN of the scope of the IPAM Pool. |
ipamScopeType |
string |
The IPAM scope type (public or private) of the scope of the IPAM Pool. |
pool |
aws-cdk-lib.aws_ec2.CfnIPAMPool |
The underlying IPAM Pool resource. |
poolDepth |
number |
The depth of pools in your IPAM pool. |
provisionedCidrs |
aws-cdk-lib.aws_ec2.CfnIPAMPool.ProvisionedCidrProperty[] |
The provisioned CIDRs for this pool. |
state |
string |
The state of the IPAM pool. |
stateMessage |
string |
A message related to the failed creation of an IPAM pool. |
allocationDefaultNetmaskLength |
number |
The default netmask length for allocations added to this pool. |
public readonly node: Node;- Type: constructs.Node
The tree node.
public readonly arn: string;- Type: string
The ARN of the resulting IPAM Pool resource.
public readonly ipamArn: string;- Type: string
The ARN of the IPAM this pool belongs to.
public readonly ipamPoolId: string;- Type: string
The ID of the resulting IPAM Pool resource.
public readonly ipamScopeArn: string;- Type: string
The ARN of the scope of the IPAM Pool.
public readonly ipamScopeType: string;- Type: string
The IPAM scope type (public or private) of the scope of the IPAM Pool.
public readonly pool: CfnIPAMPool;- Type: aws-cdk-lib.aws_ec2.CfnIPAMPool
The underlying IPAM Pool resource.
public readonly poolDepth: number;- Type: number
The depth of pools in your IPAM pool.
public readonly provisionedCidrs: ProvisionedCidrProperty[];- Type: aws-cdk-lib.aws_ec2.CfnIPAMPool.ProvisionedCidrProperty[]
The provisioned CIDRs for this pool.
public readonly state: string;- Type: string
The state of the IPAM pool.
public readonly stateMessage: string;- Type: string
A message related to the failed creation of an IPAM pool.
public readonly allocationDefaultNetmaskLength: number;- Type: number
The default netmask length for allocations added to this pool.
An IPAM Scope.
In IPAM, a scope is the highest-level container within IPAM. An IPAM contains two default scopes. Each scope represents the IP space for a single network. The private scope is intended for all private IP address space. The public scope is intended for all public IP address space. Scopes enable you to reuse IP addresses across multiple unconnected networks without causing IP address overlap or conflict.
import { IpamScope } from '@renovosolutions/cdk-library-aws-ipam'
new IpamScope(scope: Construct, id: string, props: IpamScopeProps)| Name | Type | Description |
|---|---|---|
scope |
constructs.Construct |
No description. |
id |
string |
No description. |
props |
IpamScopeProps |
No description. |
- Type: constructs.Construct
- Type: string
- Type: IpamScopeProps
| Name | Description |
|---|---|
toString |
Returns a string representation of this construct. |
public toString(): stringReturns a string representation of this construct.
| Name | Description |
|---|---|
isConstruct |
Checks if x is a construct. |
import { IpamScope } from '@renovosolutions/cdk-library-aws-ipam'
IpamScope.isConstruct(x: any)Checks if x is a construct.
- Type: any
Any object.
| Name | Type | Description |
|---|---|---|
node |
constructs.Node |
The tree node. |
arn |
string |
The ARN of the resulting IPAM Scope resource. |
ipamArn |
string |
The ARN of the IPAM this scope belongs to. |
ipamScopeId |
string |
The ID of the resulting IPAM Scope resource. |
isDefault |
aws-cdk-lib.IResolvable |
Indicates whether the scope is the default scope for the IPAM. |
poolCount |
number |
The number of pools in the scope. |
scope |
aws-cdk-lib.aws_ec2.CfnIPAMScope |
The underlying IPAM Scope resource. |
public readonly node: Node;- Type: constructs.Node
The tree node.
public readonly arn: string;- Type: string
The ARN of the resulting IPAM Scope resource.
public readonly ipamArn: string;- Type: string
The ARN of the IPAM this scope belongs to.
public readonly ipamScopeId: string;- Type: string
The ID of the resulting IPAM Scope resource.
public readonly isDefault: IResolvable;- Type: aws-cdk-lib.IResolvable
Indicates whether the scope is the default scope for the IPAM.
public readonly poolCount: number;- Type: number
The number of pools in the scope.
public readonly scope: CfnIPAMScope;- Type: aws-cdk-lib.aws_ec2.CfnIPAMScope
The underlying IPAM Scope resource.
Properties of an IPAM Allocation.
import { IpamAllocationProps } from '@renovosolutions/cdk-library-aws-ipam'
const ipamAllocationProps: IpamAllocationProps = { ... }| Name | Type | Description |
|---|---|---|
ipamPool |
IpamPool |
The IPAM pool from which you would like to allocate a CIDR. |
cidr |
string |
The CIDR you would like to allocate from the IPAM pool. Note the following:. |
description |
string |
A description of the pool allocation. |
netmaskLength |
number |
The netmask length of the CIDR you would like to allocate from the IPAM pool. Note the following:. |
public readonly ipamPool: IpamPool;- Type: IpamPool
The IPAM pool from which you would like to allocate a CIDR.
public readonly cidr: string;- Type: string
The CIDR you would like to allocate from the IPAM pool. Note the following:.
If there is no DefaultNetmaskLength allocation rule set on the pool, you must specify either the NetmaskLength or the CIDR.
If the DefaultNetmaskLength allocation rule is set on the pool, you can specify either the NetmaskLength or the CIDR and the DefaultNetmaskLength allocation rule will be ignored.
public readonly description: string;- Type: string
A description of the pool allocation.
public readonly netmaskLength: number;- Type: number
The netmask length of the CIDR you would like to allocate from the IPAM pool. Note the following:.
If there is no DefaultNetmaskLength allocation rule set on the pool, you must specify either the NetmaskLength or the CIDR.
If the DefaultNetmaskLength allocation rule is set on the pool, you can specify either the NetmaskLength or the CIDR and the DefaultNetmaskLength allocation rule will be ignored.
Properties of an IPAM Pool.
import { IpamPoolProps } from '@renovosolutions/cdk-library-aws-ipam'
const ipamPoolProps: IpamPoolProps = { ... }| Name | Type | Description |
|---|---|---|
addressFamily |
IpamPoolAddressFamily |
The address family of the pool, either IPv4 or IPv6. |
ipamScopeId |
string |
The IPAM scope this pool is associated with. |
allocationDefaultNetmaskLength |
number |
The default netmask length for allocations added to this pool. |
allocationMaxNetmaskLength |
number |
The maximum netmask length possible for CIDR allocations in this IPAM pool to be compliant. |
allocationMinNetmaskLength |
number |
The minimum netmask length required for CIDR allocations in this IPAM pool to be compliant. |
allocationResourceTags |
aws-cdk-lib.CfnTag[] |
Tags that are required for resources that use CIDRs from this IPAM pool. |
autoImport |
boolean |
If selected, IPAM will continuously look for resources within the CIDR range of this pool and automatically import them as allocations into your IPAM. |
description |
string |
The description of the pool. |
locale |
string |
The locale of the IPAM pool. |
provisionedCidrs |
aws-cdk-lib.aws_ec2.CfnIPAMPool.ProvisionedCidrProperty[] |
The CIDRs provisioned to the IPAM pool. |
sourceIpamPoolId |
string |
The ID of the source IPAM pool. |
tags |
aws-cdk-lib.CfnTag[] |
The key/value combination of tags to assign to the resource. |
public readonly addressFamily: IpamPoolAddressFamily;- Type: IpamPoolAddressFamily
The address family of the pool, either IPv4 or IPv6.
public readonly ipamScopeId: string;- Type: string
The IPAM scope this pool is associated with.
public readonly allocationDefaultNetmaskLength: number;- Type: number
The default netmask length for allocations added to this pool.
If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16.
public readonly allocationMaxNetmaskLength: number;- Type: number
The maximum netmask length possible for CIDR allocations in this IPAM pool to be compliant.
The maximum netmask length must be greater than the minimum netmask length. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128.
public readonly allocationMinNetmaskLength: number;- Type: number
The minimum netmask length required for CIDR allocations in this IPAM pool to be compliant.
The minimum netmask length must be less than the maximum netmask length. Possible netmask lengths for IPv4 addresses are 0 - 32. Possible netmask lengths for IPv6 addresses are 0 - 128.
public readonly allocationResourceTags: CfnTag[];- Type: aws-cdk-lib.CfnTag[]
Tags that are required for resources that use CIDRs from this IPAM pool.
Resources that do not have these tags will not be allowed to allocate space from the pool. If the resources have their tags changed after they have allocated space or if the allocation tagging requirements are changed on the pool, the resource may be marked as noncompliant.
public readonly autoImport: boolean;- Type: boolean
If selected, IPAM will continuously look for resources within the CIDR range of this pool and automatically import them as allocations into your IPAM.
The CIDRs that will be allocated for these resources must not already be allocated to other resources in order for the import to succeed. IPAM will import a CIDR regardless of its compliance with the pool's allocation rules, so a resource might be imported and subsequently marked as noncompliant. If IPAM discovers multiple CIDRs that overlap, IPAM will import the largest CIDR only. If IPAM discovers multiple CIDRs with matching CIDRs, IPAM will randomly import one of them only.
A locale must be set on the pool for this feature to work.
public readonly description: string;- Type: string
The description of the pool.
public readonly locale: string;- Type: string
The locale of the IPAM pool.
In IPAM, the locale is the AWS Region where you want to make an IPAM pool available for allocations.Only resources in the same Region as the locale of the pool can get IP address allocations from the pool. You can only allocate a CIDR for a VPC, for example, from an IPAM pool that shares a locale with the VPC’s Region. Note that once you choose a Locale for a pool, you cannot modify it. If you choose an AWS Region for locale that has not been configured as an operating Region for the IPAM, you'll get an error.
public readonly provisionedCidrs: ProvisionedCidrProperty[];- Type: aws-cdk-lib.aws_ec2.CfnIPAMPool.ProvisionedCidrProperty[]
The CIDRs provisioned to the IPAM pool.
A CIDR is a representation of an IP address and its associated network mask (or netmask) and refers to a range of IP addresses
public readonly sourceIpamPoolId: string;- Type: string
The ID of the source IPAM pool.
You can use this option to create an IPAM pool within an existing source pool.
public readonly tags: CfnTag[];- Type: aws-cdk-lib.CfnTag[]
The key/value combination of tags to assign to the resource.
Properties of the IPAM.
import { IpamProps } from '@renovosolutions/cdk-library-aws-ipam'
const ipamProps: IpamProps = { ... }| Name | Type | Description |
|---|---|---|
description |
string |
The description for the IPAM. |
operatingRegions |
string[] |
The operating Regions for an IPAM. |
tags |
aws-cdk-lib.CfnTag[] |
The key/value combination of tags to assign to the resource. |
public readonly description: string;- Type: string
The description for the IPAM.
public readonly operatingRegions: string[];- Type: string[]
- Default: Stack.of(this).region
The operating Regions for an IPAM.
Operating Regions are AWS Regions where the IPAM is allowed to manage IP address CIDRs. IPAM only discovers and monitors resources in the AWS Regions you select as operating Regions.
For more information about operating Regions, see Create an IPAM in the Amazon VPC IPAM User Guide.
public readonly tags: CfnTag[];- Type: aws-cdk-lib.CfnTag[]
The key/value combination of tags to assign to the resource.
Properties of an IPAM Scope.
import { IpamScopeProps } from '@renovosolutions/cdk-library-aws-ipam'
const ipamScopeProps: IpamScopeProps = { ... }| Name | Type | Description |
|---|---|---|
ipam |
Ipam |
The IPAM for which you're creating the scope. |
description |
string |
The description of the scope. |
tags |
aws-cdk-lib.CfnTag[] |
The key/value combination of tags to assign to the resource. |
public readonly ipam: Ipam;- Type: Ipam
The IPAM for which you're creating the scope.
public readonly description: string;- Type: string
The description of the scope.
public readonly tags: CfnTag[];- Type: aws-cdk-lib.CfnTag[]
The key/value combination of tags to assign to the resource.
| Name | Description |
|---|---|
IPV4 |
No description. |
IPV6 |
No description. |