Ready to level-up your engineering skills? Join a Pulumi Workshop. Register Now

ReservedIpBlock

Provides a resource to create and manage blocks of reserved IP addresses in a project.

When a user provisions first device in a facility, Packet API automatically allocates IPv6/56 and private IPv4/25 blocks. The new device then gets IPv6 and private IPv4 addresses from those block. It also gets a public IPv4/31 address. Every new device in the project and facility will automatically get IPv6 and private IPv4 addresses from these pre-allocated blocks. The IPv6 and private IPv4 blocks can’t be created, only imported. With this resource, it’s possible to create either public IPv4 blocks or global IPv4 blocks.

Public blocks are allocated in a facility. Addresses from public blocks can only be assigned to devices in the facility. Public blocks can have mask from /24 (256 addresses) to /32 (1 address). If you create public block with this resource, you must fill the facility argmument.

Addresses from global blocks can be assigned in any facility. Global blocks can have mask from /30 (4 addresses), to /32 (1 address). If you create global block with this resource, you must specify type = “global_ipv4” and you must omit the facility argument.

Once IP block is allocated or imported, an address from it can be assigned to device with the packet.IpAttachment resource.

Create a ReservedIpBlock Resource

new ReservedIpBlock(name: string, args: ReservedIpBlockArgs, opts?: CustomResourceOptions);
def ReservedIpBlock(resource_name: str, opts: Optional[ResourceOptions] = None, description: Optional[str] = None, facility: Optional[str] = None, project_id: Optional[str] = None, quantity: Optional[int] = None, type: Optional[str] = None)
func NewReservedIpBlock(ctx *Context, name string, args ReservedIpBlockArgs, opts ...ResourceOption) (*ReservedIpBlock, error)
public ReservedIpBlock(string name, ReservedIpBlockArgs args, CustomResourceOptions? opts = null)
name string
The unique name of the resource.
args ReservedIpBlockArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name str
The unique name of the resource.
opts ResourceOptions
A bag of options that control this resource's behavior.
ctx Context
Context object for the current deployment.
name string
The unique name of the resource.
args ReservedIpBlockArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name string
The unique name of the resource.
args ReservedIpBlockArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.

ReservedIpBlock Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Programming Model docs.

Inputs

The ReservedIpBlock resource accepts the following input properties:

ProjectId string

The packet project ID where to allocate the address block

Quantity int

The number of allocated /32 addresses, a power of 2

Description string

Arbitrary description

Facility string

Facility where to allocate the public IP address block, makes sense only for type==public_ipv4, must be empty for type==global_ipv4

Type string

Either “global_ipv4” or “public_ipv4”, defaults to “public_ipv4” for backward compatibility

ProjectId string

The packet project ID where to allocate the address block

Quantity int

The number of allocated /32 addresses, a power of 2

Description string

Arbitrary description

Facility string

Facility where to allocate the public IP address block, makes sense only for type==public_ipv4, must be empty for type==global_ipv4

Type string

Either “global_ipv4” or “public_ipv4”, defaults to “public_ipv4” for backward compatibility

projectId string

The packet project ID where to allocate the address block

quantity number

The number of allocated /32 addresses, a power of 2

description string

Arbitrary description

facility Facility

Facility where to allocate the public IP address block, makes sense only for type==public_ipv4, must be empty for type==global_ipv4

type IpBlockType

Either “global_ipv4” or “public_ipv4”, defaults to “public_ipv4” for backward compatibility

project_id str

The packet project ID where to allocate the address block

quantity int

The number of allocated /32 addresses, a power of 2

description str

Arbitrary description

facility str

Facility where to allocate the public IP address block, makes sense only for type==public_ipv4, must be empty for type==global_ipv4

type str

Either “global_ipv4” or “public_ipv4”, defaults to “public_ipv4” for backward compatibility

Outputs

All input properties are implicitly available as output properties. Additionally, the ReservedIpBlock resource produces the following output properties:

Address string
AddressFamily int

Address family as integer (4 or 6)

Cidr int

length of CIDR prefix of the block as integer

CidrNotation string

Address and mask in CIDR notation, e.g. “147.229.15.30/31”

Gateway string
Global bool

boolean flag whether addresses from a block are global (i.e. can be assigned in any facility)

Id string
The provider-assigned unique ID for this managed resource.
Manageable bool
Management bool
Netmask string

Mask in decimal notation, e.g. “255.255.255.0”

Network string

Network IP address portion of the block specification

Public bool

boolean flag whether addresses from a block are public

Address string
AddressFamily int

Address family as integer (4 or 6)

Cidr int

length of CIDR prefix of the block as integer

CidrNotation string

Address and mask in CIDR notation, e.g. “147.229.15.30/31”

Gateway string
Global bool

boolean flag whether addresses from a block are global (i.e. can be assigned in any facility)

Id string
The provider-assigned unique ID for this managed resource.
Manageable bool
Management bool
Netmask string

Mask in decimal notation, e.g. “255.255.255.0”

Network string

Network IP address portion of the block specification

Public bool

boolean flag whether addresses from a block are public

address string
addressFamily number

Address family as integer (4 or 6)

cidr number

length of CIDR prefix of the block as integer

cidrNotation string

Address and mask in CIDR notation, e.g. “147.229.15.30/31”

gateway string
global boolean

boolean flag whether addresses from a block are global (i.e. can be assigned in any facility)

id string
The provider-assigned unique ID for this managed resource.
manageable boolean
management boolean
netmask string

Mask in decimal notation, e.g. “255.255.255.0”

network string

Network IP address portion of the block specification

public boolean

boolean flag whether addresses from a block are public

address str
address_family int

Address family as integer (4 or 6)

cidr int

length of CIDR prefix of the block as integer

cidr_notation str

Address and mask in CIDR notation, e.g. “147.229.15.30/31”

gateway str
global_ bool

boolean flag whether addresses from a block are global (i.e. can be assigned in any facility)

id str
The provider-assigned unique ID for this managed resource.
manageable bool
management bool
netmask str

Mask in decimal notation, e.g. “255.255.255.0”

network str

Network IP address portion of the block specification

public bool

boolean flag whether addresses from a block are public

Look up an Existing ReservedIpBlock Resource

Get an existing ReservedIpBlock resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

public static get(name: string, id: Input<ID>, state?: ReservedIpBlockState, opts?: CustomResourceOptions): ReservedIpBlock
@staticmethod
def get(resource_name: str, id: str, opts: Optional[ResourceOptions] = None, address: Optional[str] = None, address_family: Optional[int] = None, cidr: Optional[int] = None, cidr_notation: Optional[str] = None, description: Optional[str] = None, facility: Optional[str] = None, gateway: Optional[str] = None, global_: Optional[bool] = None, manageable: Optional[bool] = None, management: Optional[bool] = None, netmask: Optional[str] = None, network: Optional[str] = None, project_id: Optional[str] = None, public: Optional[bool] = None, quantity: Optional[int] = None, type: Optional[str] = None) -> ReservedIpBlock
func GetReservedIpBlock(ctx *Context, name string, id IDInput, state *ReservedIpBlockState, opts ...ResourceOption) (*ReservedIpBlock, error)
public static ReservedIpBlock Get(string name, Input<string> id, ReservedIpBlockState? state, CustomResourceOptions? opts = null)
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
resource_name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.

The following state arguments are supported:

Address string
AddressFamily int

Address family as integer (4 or 6)

Cidr int

length of CIDR prefix of the block as integer

CidrNotation string

Address and mask in CIDR notation, e.g. “147.229.15.30/31”

Description string

Arbitrary description

Facility string

Facility where to allocate the public IP address block, makes sense only for type==public_ipv4, must be empty for type==global_ipv4

Gateway string
Global bool

boolean flag whether addresses from a block are global (i.e. can be assigned in any facility)

Manageable bool
Management bool
Netmask string

Mask in decimal notation, e.g. “255.255.255.0”

Network string

Network IP address portion of the block specification

ProjectId string

The packet project ID where to allocate the address block

Public bool

boolean flag whether addresses from a block are public

Quantity int

The number of allocated /32 addresses, a power of 2

Type string

Either “global_ipv4” or “public_ipv4”, defaults to “public_ipv4” for backward compatibility

Address string
AddressFamily int

Address family as integer (4 or 6)

Cidr int

length of CIDR prefix of the block as integer

CidrNotation string

Address and mask in CIDR notation, e.g. “147.229.15.30/31”

Description string

Arbitrary description

Facility string

Facility where to allocate the public IP address block, makes sense only for type==public_ipv4, must be empty for type==global_ipv4

Gateway string
Global bool

boolean flag whether addresses from a block are global (i.e. can be assigned in any facility)

Manageable bool
Management bool
Netmask string

Mask in decimal notation, e.g. “255.255.255.0”

Network string

Network IP address portion of the block specification

ProjectId string

The packet project ID where to allocate the address block

Public bool

boolean flag whether addresses from a block are public

Quantity int

The number of allocated /32 addresses, a power of 2

Type string

Either “global_ipv4” or “public_ipv4”, defaults to “public_ipv4” for backward compatibility

address string
addressFamily number

Address family as integer (4 or 6)

cidr number

length of CIDR prefix of the block as integer

cidrNotation string

Address and mask in CIDR notation, e.g. “147.229.15.30/31”

description string

Arbitrary description

facility Facility

Facility where to allocate the public IP address block, makes sense only for type==public_ipv4, must be empty for type==global_ipv4

gateway string
global boolean

boolean flag whether addresses from a block are global (i.e. can be assigned in any facility)

manageable boolean
management boolean
netmask string

Mask in decimal notation, e.g. “255.255.255.0”

network string

Network IP address portion of the block specification

projectId string

The packet project ID where to allocate the address block

public boolean

boolean flag whether addresses from a block are public

quantity number

The number of allocated /32 addresses, a power of 2

type IpBlockType

Either “global_ipv4” or “public_ipv4”, defaults to “public_ipv4” for backward compatibility

address str
address_family int

Address family as integer (4 or 6)

cidr int

length of CIDR prefix of the block as integer

cidr_notation str

Address and mask in CIDR notation, e.g. “147.229.15.30/31”

description str

Arbitrary description

facility str

Facility where to allocate the public IP address block, makes sense only for type==public_ipv4, must be empty for type==global_ipv4

gateway str
global_ bool

boolean flag whether addresses from a block are global (i.e. can be assigned in any facility)

manageable bool
management bool
netmask str

Mask in decimal notation, e.g. “255.255.255.0”

network str

Network IP address portion of the block specification

project_id str

The packet project ID where to allocate the address block

public bool

boolean flag whether addresses from a block are public

quantity int

The number of allocated /32 addresses, a power of 2

type str

Either “global_ipv4” or “public_ipv4”, defaults to “public_ipv4” for backward compatibility

Package Details

Repository
https://github.com/pulumi/pulumi-packet
License
Apache-2.0
Notes
This Pulumi package is based on the packet Terraform Provider.