equinix-metal logo
Equinix Metal v3.2.1, Dec 30 21

equinix-metal.ReservedIpBlock

Explore with Pulumi AI

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

When a user provisions first device in a facility, Equinix Metal 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 equinix-metal.IpAttachment resource.

Example Usage

Allocate reserved IP blocks

using Pulumi;
using EquinixMetal = Pulumi.EquinixMetal;

class MyStack : Stack
{
    public MyStack()
    {
        // Allocate /31 block of max 2 public IPv4 addresses in Silicon Valley (sv15) facility for myproject
        var twoElasticAddresses = new EquinixMetal.ReservedIpBlock("twoElasticAddresses", new EquinixMetal.ReservedIpBlockArgs
        {
            ProjectId = local.Project_id,
            Facility = "sv15",
            Quantity = 2,
        });
        // Allocate 1 floating IP in Sillicon Valley (sv) metro
        var testReservedIpBlock = new EquinixMetal.ReservedIpBlock("testReservedIpBlock", new EquinixMetal.ReservedIpBlockArgs
        {
            ProjectId = local.Project_id,
            Type = "public_ipv4",
            Metro = "sv",
            Quantity = 1,
        });
        // Allocate 1 global floating IP, which can be assigned to device in any facility
        var testIndex_reservedIpBlockReservedIpBlock = new EquinixMetal.ReservedIpBlock("testIndex/reservedIpBlockReservedIpBlock", new EquinixMetal.ReservedIpBlockArgs
        {
            ProjectId = local.Project_id,
            Type = "global_ipv4",
            Quantity = 1,
        });
    }

}
package main

import (
	"github.com/pulumi/pulumi-equinix-metal/sdk/v3/go/equinix-metal"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := equinix - metal.NewReservedIpBlock(ctx, "twoElasticAddresses", &equinix-metal.ReservedIpBlockArgs{
			ProjectId: pulumi.Any(local.Project_id),
			Facility:  pulumi.String("sv15"),
			Quantity:  pulumi.Int(2),
		})
		if err != nil {
			return err
		}
		_, err = equinix - metal.NewReservedIpBlock(ctx, "testReservedIpBlock", &equinix-metal.ReservedIpBlockArgs{
			ProjectId: pulumi.Any(local.Project_id),
			Type:      pulumi.String("public_ipv4"),
			Metro:     pulumi.String("sv"),
			Quantity:  pulumi.Int(1),
		})
		if err != nil {
			return err
		}
		_, err = equinix - metal.NewReservedIpBlock(ctx, "testIndex_reservedIpBlockReservedIpBlock", &equinix-metal.ReservedIpBlockArgs{
			ProjectId: pulumi.Any(local.Project_id),
			Type:      pulumi.String("global_ipv4"),
			Quantity:  pulumi.Int(1),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

Coming soon!

import pulumi
import pulumi_equinix_metal as equinix_metal

# Allocate /31 block of max 2 public IPv4 addresses in Silicon Valley (sv15) facility for myproject
two_elastic_addresses = equinix_metal.ReservedIpBlock("twoElasticAddresses",
    project_id=local["project_id"],
    facility="sv15",
    quantity=2)
# Allocate 1 floating IP in Sillicon Valley (sv) metro
test_reserved_ip_block = equinix_metal.ReservedIpBlock("testReservedIpBlock",
    project_id=local["project_id"],
    type="public_ipv4",
    metro="sv",
    quantity=1)
# Allocate 1 global floating IP, which can be assigned to device in any facility
test_index_reserved_ip_block_reserved_ip_block = equinix_metal.ReservedIpBlock("testIndex/reservedIpBlockReservedIpBlock",
    project_id=local["project_id"],
    type="global_ipv4",
    quantity=1)
import * as pulumi from "@pulumi/pulumi";
import * as equinix_metal from "@pulumi/equinix-metal";

// Allocate /31 block of max 2 public IPv4 addresses in Silicon Valley (sv15) facility for myproject
const twoElasticAddresses = new equinix_metal.ReservedIpBlock("twoElasticAddresses", {
    projectId: local.project_id,
    facility: "sv15",
    quantity: 2,
});
// Allocate 1 floating IP in Sillicon Valley (sv) metro
const testReservedIpBlock = new equinix_metal.ReservedIpBlock("testReservedIpBlock", {
    projectId: local.project_id,
    type: "public_ipv4",
    metro: "sv",
    quantity: 1,
});
// Allocate 1 global floating IP, which can be assigned to device in any facility
const testIndex_reservedIpBlockReservedIpBlock = new equinix_metal.ReservedIpBlock("testIndex/reservedIpBlockReservedIpBlock", {
    projectId: local.project_id,
    type: "global_ipv4",
    quantity: 1,
});

Coming soon!

Allocate a block and run a device with public IPv4 from the block

using Pulumi;
using EquinixMetal = Pulumi.EquinixMetal;

class MyStack : Stack
{
    public MyStack()
    {
        // Allocate /31 block of max 2 public IPv4 addresses in Silicon Valley (sv15) facility
        var example = new EquinixMetal.ReservedIpBlock("example", new EquinixMetal.ReservedIpBlockArgs
        {
            ProjectId = local.Project_id,
            Facility = "sv15",
            Quantity = 2,
        });
        // Run a device with both public IPv4 from the block assigned
        var nodes = new EquinixMetal.Device("nodes", new EquinixMetal.DeviceArgs
        {
            ProjectId = local.Project_id,
            Facilities = 
            {
                "sv15",
            },
            Plan = "c3.small.x86",
            OperatingSystem = "ubuntu_20_04",
            Hostname = "test",
            BillingCycle = "hourly",
            IpAddresses = 
            {
                new EquinixMetal.Inputs.DeviceIpAddressArgs
                {
                    Type = "public_ipv4",
                    Cidr = 31,
                    ReservationIds = 
                    {
                        example.Id,
                    },
                },
                new EquinixMetal.Inputs.DeviceIpAddressArgs
                {
                    Type = "private_ipv4",
                },
            },
        });
    }

}
package main

import (
	"github.com/pulumi/pulumi-equinix-metal/sdk/v3/go/equinix-metal"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := equinix - metal.NewReservedIpBlock(ctx, "example", &equinix-metal.ReservedIpBlockArgs{
			ProjectId: pulumi.Any(local.Project_id),
			Facility:  pulumi.String("sv15"),
			Quantity:  pulumi.Int(2),
		})
		if err != nil {
			return err
		}
		_, err = equinix - metal.NewDevice(ctx, "nodes", &equinix-metal.DeviceArgs{
			ProjectId: pulumi.Any(local.Project_id),
			Facilities: pulumi.StringArray{
				pulumi.String("sv15"),
			},
			Plan:            pulumi.String("c3.small.x86"),
			OperatingSystem: pulumi.String("ubuntu_20_04"),
			Hostname:        pulumi.String("test"),
			BillingCycle:    pulumi.String("hourly"),
			IpAddresses: DeviceIpAddressArray{
				&DeviceIpAddressArgs{
					Type: pulumi.String("public_ipv4"),
					Cidr: pulumi.Int(31),
					ReservationIds: pulumi.StringArray{
						example.ID(),
					},
				},
				&DeviceIpAddressArgs{
					Type: pulumi.String("private_ipv4"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

Coming soon!

import pulumi
import pulumi_equinix_metal as equinix_metal

# Allocate /31 block of max 2 public IPv4 addresses in Silicon Valley (sv15) facility
example = equinix_metal.ReservedIpBlock("example",
    project_id=local["project_id"],
    facility="sv15",
    quantity=2)
# Run a device with both public IPv4 from the block assigned
nodes = equinix_metal.Device("nodes",
    project_id=local["project_id"],
    facilities=["sv15"],
    plan="c3.small.x86",
    operating_system="ubuntu_20_04",
    hostname="test",
    billing_cycle="hourly",
    ip_addresses=[
        equinix_metal.DeviceIpAddressArgs(
            type="public_ipv4",
            cidr=31,
            reservation_ids=[example.id],
        ),
        equinix_metal.DeviceIpAddressArgs(
            type="private_ipv4",
        ),
    ])
import * as pulumi from "@pulumi/pulumi";
import * as equinix_metal from "@pulumi/equinix-metal";

// Allocate /31 block of max 2 public IPv4 addresses in Silicon Valley (sv15) facility
const example = new equinix_metal.ReservedIpBlock("example", {
    projectId: local.project_id,
    facility: "sv15",
    quantity: 2,
});
// Run a device with both public IPv4 from the block assigned
const nodes = new equinix_metal.Device("nodes", {
    projectId: local.project_id,
    facilities: ["sv15"],
    plan: "c3.small.x86",
    operatingSystem: "ubuntu_20_04",
    hostname: "test",
    billingCycle: "hourly",
    ipAddresses: [
        {
            type: "public_ipv4",
            cidr: 31,
            reservationIds: [example.id],
        },
        {
            type: "private_ipv4",
        },
    ],
});

Coming soon!

Create ReservedIpBlock Resource

new ReservedIpBlock(name: string, args: ReservedIpBlockArgs, opts?: CustomResourceOptions);
@overload
def ReservedIpBlock(resource_name: str,
                    opts: Optional[ResourceOptions] = None,
                    description: Optional[str] = None,
                    facility: Optional[Union[str, Facility]] = None,
                    metro: Optional[str] = None,
                    project_id: Optional[str] = None,
                    quantity: Optional[int] = None,
                    tags: Optional[Sequence[str]] = None,
                    type: Optional[Union[str, IpBlockType]] = None)
@overload
def ReservedIpBlock(resource_name: str,
                    args: ReservedIpBlockArgs,
                    opts: Optional[ResourceOptions] = None)
func NewReservedIpBlock(ctx *Context, name string, args ReservedIpBlockArgs, opts ...ResourceOption) (*ReservedIpBlock, error)
public ReservedIpBlock(string name, ReservedIpBlockArgs args, CustomResourceOptions? opts = null)
public ReservedIpBlock(String name, ReservedIpBlockArgs args)
public ReservedIpBlock(String name, ReservedIpBlockArgs args, CustomResourceOptions options)
type: equinix-metal:ReservedIpBlock
properties: # The arguments to resource properties.
options: # 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.
resource_name str
The unique name of the resource.
args ReservedIpBlockArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control 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.
name String
The unique name of the resource.
args ReservedIpBlockArgs
The arguments to resource properties.
options 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 Architecture and Concepts docs.

Inputs

The ReservedIpBlock resource accepts the following input properties:

ProjectId string

The metal 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 | Pulumi.EquinixMetal.Facility

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

Metro string

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

Tags List<string>

String list of tags

Type string | Pulumi.EquinixMetal.IpBlockType

Either "global_ipv4" or "public_ipv4", defaults to "public_ipv4" for backward compatibility

ProjectId string

The metal 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

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

Metro string

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

Tags []string

String list of tags

Type string | IpBlockType

Either "global_ipv4" or "public_ipv4", defaults to "public_ipv4" for backward compatibility

projectId String

The metal project ID where to allocate the address block

quantity Integer

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

description String

Arbitrary description

facility String | Facility

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

metro String

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

tags List<String>

String list of tags

type String | IpBlockType

Either "global_ipv4" or "public_ipv4", defaults to "public_ipv4" for backward compatibility

projectId string

The metal 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 string | Facility

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

metro string

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

tags string[]

String list of tags

type string | IpBlockType

Either "global_ipv4" or "public_ipv4", defaults to "public_ipv4" for backward compatibility

project_id str

The metal 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

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

metro str

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

tags Sequence[str]

String list of tags

type str | IpBlockType

Either "global_ipv4" or "public_ipv4", defaults to "public_ipv4" for backward compatibility

projectId String

The metal 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 String | "ewr1" | "sjc1" | "dfw1" | "dfw2" | "ams1" | "nrt1" | "sea1" | "lax1" | "ord1" | "atl1" | "iad1" | "sin1" | "hkg1" | "syd1" | "mrs1" | "yyz1" | "fra2" | "am6" | "dc13" | "ch3" | "da3" | "da11" | "la4" | "ny5" | "sg1" | "sv15"

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

metro String

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

tags List<String>

String list of tags

type String | "global_ipv4" | "public_ipv4"

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 Integer

Address family as integer (4 or 6)

cidr Integer

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 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

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

Look up 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[Union[str, Facility]] = None,
        gateway: Optional[str] = None,
        global_: Optional[bool] = None,
        manageable: Optional[bool] = None,
        management: Optional[bool] = None,
        metro: Optional[str] = None,
        netmask: Optional[str] = None,
        network: Optional[str] = None,
        project_id: Optional[str] = None,
        public: Optional[bool] = None,
        quantity: Optional[int] = None,
        tags: Optional[Sequence[str]] = None,
        type: Optional[Union[str, IpBlockType]] = 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)
public static ReservedIpBlock get(String name, Output<String> id, ReservedIpBlockState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
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.
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 | Pulumi.EquinixMetal.Facility

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

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
Metro string

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

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 metal 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

Tags List<string>

String list of tags

Type string | Pulumi.EquinixMetal.IpBlockType

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

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

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
Metro string

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

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 metal 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

Tags []string

String list of tags

Type string | IpBlockType

Either "global_ipv4" or "public_ipv4", defaults to "public_ipv4" for backward compatibility

address String
addressFamily Integer

Address family as integer (4 or 6)

cidr Integer

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

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

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
metro String

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

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 metal project ID where to allocate the address block

public_ Boolean

boolean flag whether addresses from a block are public

quantity Integer

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

tags List<String>

String list of tags

type String | IpBlockType

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 string | Facility

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

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
metro string

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

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 metal 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

tags string[]

String list of tags

type string | 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

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

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
metro str

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

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 metal 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

tags Sequence[str]

String list of tags

type str | IpBlockType

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 String | "ewr1" | "sjc1" | "dfw1" | "dfw2" | "ams1" | "nrt1" | "sea1" | "lax1" | "ord1" | "atl1" | "iad1" | "sin1" | "hkg1" | "syd1" | "mrs1" | "yyz1" | "fra2" | "am6" | "dc13" | "ch3" | "da3" | "da11" | "la4" | "ny5" | "sg1" | "sv15"

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

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
metro String

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

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 metal 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

tags List<String>

String list of tags

type String | "global_ipv4" | "public_ipv4"

Either "global_ipv4" or "public_ipv4", defaults to "public_ipv4" for backward compatibility

Supporting Types

Facility

EWR1
ewr1
SJC1
sjc1
DFW1
dfw1
DFW2
dfw2
AMS1
ams1
NRT1
nrt1
SEA1
sea1
LAX1
lax1
ORD1
ord1
ATL1
atl1
IAD1
iad1
SIN1
sin1
HKG1
hkg1
SYD1
syd1
MRS1
mrs1
YYZ1
yyz1
FRA2
fra2
AM6
am6
DC13
dc13
CH3
ch3
DA3
da3
DA11
da11
LA4
la4
NY5
ny5
SG1
sg1
SV15
sv15
FacilityEWR1
ewr1
FacilitySJC1
sjc1
FacilityDFW1
dfw1
FacilityDFW2
dfw2
FacilityAMS1
ams1
FacilityNRT1
nrt1
FacilitySEA1
sea1
FacilityLAX1
lax1
FacilityORD1
ord1
FacilityATL1
atl1
FacilityIAD1
iad1
FacilitySIN1
sin1
FacilityHKG1
hkg1
FacilitySYD1
syd1
FacilityMRS1
mrs1
FacilityYYZ1
yyz1
FacilityFRA2
fra2
FacilityAM6
am6
FacilityDC13
dc13
FacilityCH3
ch3
FacilityDA3
da3
FacilityDA11
da11
FacilityLA4
la4
FacilityNY5
ny5
FacilitySG1
sg1
FacilitySV15
sv15
EWR1
ewr1
SJC1
sjc1
DFW1
dfw1
DFW2
dfw2
AMS1
ams1
NRT1
nrt1
SEA1
sea1
LAX1
lax1
ORD1
ord1
ATL1
atl1
IAD1
iad1
SIN1
sin1
HKG1
hkg1
SYD1
syd1
MRS1
mrs1
YYZ1
yyz1
FRA2
fra2
AM6
am6
DC13
dc13
CH3
ch3
DA3
da3
DA11
da11
LA4
la4
NY5
ny5
SG1
sg1
SV15
sv15
EWR1
ewr1
SJC1
sjc1
DFW1
dfw1
DFW2
dfw2
AMS1
ams1
NRT1
nrt1
SEA1
sea1
LAX1
lax1
ORD1
ord1
ATL1
atl1
IAD1
iad1
SIN1
sin1
HKG1
hkg1
SYD1
syd1
MRS1
mrs1
YYZ1
yyz1
FRA2
fra2
AM6
am6
DC13
dc13
CH3
ch3
DA3
da3
DA11
da11
LA4
la4
NY5
ny5
SG1
sg1
SV15
sv15
EWR1
ewr1
SJC1
sjc1
DFW1
dfw1
DFW2
dfw2
AMS1
ams1
NRT1
nrt1
SEA1
sea1
LAX1
lax1
ORD1
ord1
ATL1
atl1
IAD1
iad1
SIN1
sin1
HKG1
hkg1
SYD1
syd1
MRS1
mrs1
YYZ1
yyz1
FRA2
fra2
AM6
am6
DC13
dc13
CH3
ch3
DA3
da3
DA11
da11
LA4
la4
NY5
ny5
SG1
sg1
SV15
sv15
"ewr1"
ewr1
"sjc1"
sjc1
"dfw1"
dfw1
"dfw2"
dfw2
"ams1"
ams1
"nrt1"
nrt1
"sea1"
sea1
"lax1"
lax1
"ord1"
ord1
"atl1"
atl1
"iad1"
iad1
"sin1"
sin1
"hkg1"
hkg1
"syd1"
syd1
"mrs1"
mrs1
"yyz1"
yyz1
"fra2"
fra2
"am6"
am6
"dc13"
dc13
"ch3"
ch3
"da3"
da3
"da11"
da11
"la4"
la4
"ny5"
ny5
"sg1"
sg1
"sv15"
sv15

IpBlockType

GlobalIPv4
global_ipv4
PublicIPv4
public_ipv4
IpBlockTypeGlobalIPv4
global_ipv4
IpBlockTypePublicIPv4
public_ipv4
GlobalIPv4
global_ipv4
PublicIPv4
public_ipv4
GlobalIPv4
global_ipv4
PublicIPv4
public_ipv4
GLOBAL_I_PV4
global_ipv4
PUBLIC_I_PV4
public_ipv4
"global_ipv4"
global_ipv4
"public_ipv4"
public_ipv4

Import

This resource can be imported using an existing IP reservation ID

 $ pulumi import equinix-metal:index/reservedIpBlock:ReservedIpBlock metal_reserved_ip_block {existing_ip_reservation_id}

Package Details

Repository
Equinix Metal pulumi/pulumi-equinix-metal
License
Apache-2.0
Notes

This Pulumi package is based on the metal Terraform Provider.